This commit is contained in:
Ray 2019-04-21 18:53:56 +01:00
parent 988857d91c
commit ad535144bd
16 changed files with 622 additions and 339 deletions

View File

@ -137,7 +137,9 @@ namespace bzit.bomg
this.textBox2.Name = "textBox2"; this.textBox2.Name = "textBox2";
this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox2.Size = new System.Drawing.Size(259, 32); this.textBox2.Size = new System.Drawing.Size(259, 32);
this.textBox2.SubmitButton = this.button1;
this.textBox2.TabIndex = 0; this.textBox2.TabIndex = 0;
this.textBox2.UseSystemPasswordChar = false;
// //
// textBox1 // textBox1
// //
@ -149,7 +151,9 @@ namespace bzit.bomg
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(259, 32); this.textBox1.Size = new System.Drawing.Size(259, 32);
this.textBox1.SubmitButton = this.button2;
this.textBox1.TabIndex = 2; this.textBox1.TabIndex = 2;
this.textBox1.UseSystemPasswordChar = false;
// //
// horizontalSeparator1 // horizontalSeparator1
// //

26
MainForm.Designer.cs generated
View File

@ -91,6 +91,7 @@ namespace bzit.bomg
this.openMenuBarItem = new System.Windows.Forms.ToolStripButton(); this.openMenuBarItem = new System.Windows.Forms.ToolStripButton();
this.saveMenuBarItem = new System.Windows.Forms.ToolStripButton(); this.saveMenuBarItem = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.rootTreeNodeMenu = new System.Windows.Forms.ContextMenuStrip(this.components); this.rootTreeNodeMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripMenuItem();
@ -98,7 +99,6 @@ namespace bzit.bomg
this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView(); this.treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
this.pageTreeNodeMenu.SuspendLayout(); this.pageTreeNodeMenu.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
@ -451,8 +451,8 @@ namespace bzit.bomg
// //
// openFileDialog // openFileDialog
// //
this.openFileDialog.DefaultExt = "ryz"; this.openFileDialog.DefaultExt = "jsnx";
this.openFileDialog.Filter = "Bookmarks files|*.ryz"; this.openFileDialog.Filter = "Bookmarks files (*.jsnx)|*.jsnx|Bookmarks files (*.ryz)|*.ryz";
this.openFileDialog.Title = "Open bookmarks file"; this.openFileDialog.Title = "Open bookmarks file";
// //
// folderTreeNodeMenu // folderTreeNodeMenu
@ -604,6 +604,16 @@ namespace bzit.bomg
this.toolStripSeparator9.Name = "toolStripSeparator9"; this.toolStripSeparator9.Name = "toolStripSeparator9";
this.toolStripSeparator9.Size = new System.Drawing.Size(6, 25); this.toolStripSeparator9.Size = new System.Drawing.Size(6, 25);
// //
// toolStripButton1
//
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
this.toolStripButton1.Text = "toolStripButton1";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// rootTreeNodeMenu // rootTreeNodeMenu
// //
this.rootTreeNodeMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.rootTreeNodeMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -654,16 +664,6 @@ namespace bzit.bomg
this.toolStripMenuItem22.Text = "&Sort"; this.toolStripMenuItem22.Text = "&Sort";
this.toolStripMenuItem22.Click += new System.EventHandler(this.sortContextMenu_Click); this.toolStripMenuItem22.Click += new System.EventHandler(this.sortContextMenu_Click);
// //
// toolStripButton1
//
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
this.toolStripButton1.Text = "toolStripButton1";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// treeView1 // treeView1
// //
this.treeView1.AllowDrop = true; this.treeView1.AllowDrop = true;

View File

@ -5,8 +5,12 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.IO; using System.IO;
using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml;
using static RyzStudio.Windows.Forms.BookmarkTreeView; using static RyzStudio.Windows.Forms.BookmarkTreeView;
using TextBoxForm = RyzStudio.Windows.ThemedForms.TextBoxForm;
namespace bzit.bomg namespace bzit.bomg
{ {
@ -22,8 +26,6 @@ namespace bzit.bomg
protected AppMode appMode = AppMode.Clear; protected AppMode appMode = AppMode.Clear;
protected string sessionFilename = null; protected string sessionFilename = null;
//protected SessionFileFormat sessionFileFormat = null;
public MainForm() public MainForm()
{ {
InitializeComponent(); InitializeComponent();
@ -218,6 +220,7 @@ namespace bzit.bomg
set set
{ {
appMode = value; appMode = value;
switch (value) switch (value)
{ {
case AppMode.Clear: case AppMode.Clear:
@ -271,8 +274,24 @@ namespace bzit.bomg
/// <param name="e"></param> /// <param name="e"></param>
private void newMenuItem_Click(object sender, EventArgs e) private void newMenuItem_Click(object sender, EventArgs e)
{ {
NewSessionForm newSessionForm = new NewSessionForm(this); TextBoxForm newSessionForm = new TextBoxForm("New Session", "Name");
newSessionForm.ShowDialog(); string rv = newSessionForm.ShowDialog();
if (string.IsNullOrWhiteSpace(rv))
{
return;
}
if (this.ApplicationMode == AppMode.Clear)
{
}
else
{
}
//treeView1.HasChanged.ToString()
} }
/// <summary> /// <summary>
@ -284,9 +303,9 @@ namespace bzit.bomg
{ {
if (openFileDialog.ShowDialog() == DialogResult.OK) if (openFileDialog.ShowDialog() == DialogResult.OK)
{ {
sessionFilename = openFileDialog.FileName; //##sessionFilename = openFileDialog.FileName;
OpenBookmarkFile(sessionFilename); loadBookmarkFile(openFileDialog.FileName, openFileDialog.FilterIndex);
} }
} }
@ -486,33 +505,9 @@ namespace bzit.bomg
#endregion #endregion
protected void OpenBookmarkFile(string filename)
{
//treeView1.HasChanged = false;
//if (RyzStudio.IO.SharpZipLib.IsZipEncrypted(filename))
//{
// PasswordForm oPassword = new PasswordForm(this);
// sessionFileFormat.passkey = oPassword.ShowDialog();
// if (sessionFileFormat.passkey.Equals(""))
// {
// return;
// }
//}
//else
//{
// sessionFileFormat.passkey = "";
//}
//bool rv = sessionFileFormat.loadFromRyz(filename);
//if (rv)
//{
// this.Text = Path.GetFileNameWithoutExtension(filename) + " - " + Properties.Resources.app_name;
// this.ApplicationMode = AppMode.Open;
// treeView1.HasChanged = false;
//}
}
protected bool SaveBookmarkFile() protected bool SaveBookmarkFile()
{ {
@ -553,8 +548,250 @@ namespace bzit.bomg
return rv; return rv;
} }
protected void loadBookmarkFile(string filename, int filterIndex)
{
switch (filterIndex)
{
case 1:
if (RyzStudio.IO.SharpZipLib.IsZipEncrypted(filename))
{
PasswordForm passwordForm = new PasswordForm(this);
string password = string.Empty;
protected void saveBookmarkFile(string filename) while (true)
{
password = passwordForm.ShowDialog();
if (string.IsNullOrWhiteSpace(password))
{
break;
}
if (RyzStudio.IO.SharpZipLib.TestZipEncrypted(filename, password))
{
loadBookmarkFile_ForJSNX(filename, password);
break;
}
}
}
else
{
loadBookmarkFile_ForJSNX(filename);
}
break;
case 2:
if (RyzStudio.IO.SharpZipLib.IsZipEncrypted(filename))
{
PasswordForm passwordForm = new PasswordForm(this);
string password = string.Empty;
while (true)
{
password = passwordForm.ShowDialog();
if (string.IsNullOrWhiteSpace(password))
{
break;
}
if (RyzStudio.IO.SharpZipLib.TestZipEncrypted(filename, password))
{
loadBookmarkFile_ForRYZ(filename, password);
break;
}
}
}
else
{
loadBookmarkFile_ForRYZ(filename);
}
break;
default:
break;
}
}
protected void loadBookmarkFile_ForJSNX(string filename, string password = "")
{
int size = 2048;
byte[] buffer = new byte[size];
int bufferSize = 0;
List<BookmarkItemViewModel> rs = null;
ZipEntry readEntry = null;
ZipInputStream readStream = new ZipInputStream(File.OpenRead(filename));
readStream.Password = password;
while (true)
{
readEntry = readStream.GetNextEntry();
if (readEntry == null)
{
break;
}
if (string.IsNullOrWhiteSpace(readEntry.Name))
{
continue;
}
if (!readEntry.IsFile)
{
continue;
}
if (!readEntry.Name.Equals("bookmarks.json"))
{
continue;
}
MemoryStream ms = new MemoryStream();
buffer = new byte[size];
bufferSize = 0;
do
{
bufferSize = readStream.Read(buffer, 0, buffer.Length);
ms.Write(buffer, 0, bufferSize);
}
while (bufferSize > 0);
ms.Position = 0;
StreamReader sr = new StreamReader(ms);
rs = JsonConvert.DeserializeObject<List<BookmarkItemViewModel>>(sr.ReadToEnd());
break;
}
treeView1.AddItem(rs);
}
protected void loadBookmarkFile_ForRYZ(string filename, string password = "")
{
int size = 2048;
byte[] buffer = new byte[size];
int bufferSize = 0;
List<BookmarkItemViewModel> rs = new List<BookmarkItemViewModel>();
ZipEntry readEntry = null;
ZipInputStream readStream = new ZipInputStream(File.OpenRead(filename));
readStream.Password = password;
while (true)
{
readEntry = readStream.GetNextEntry();
if (readEntry == null)
{
break;
}
if (string.IsNullOrWhiteSpace(readEntry.Name))
{
continue;
}
if (!readEntry.IsFile)
{
continue;
}
if (!readEntry.Name.Equals("bookmarks.xml"))
{
continue;
}
MemoryStream ms = new MemoryStream();
buffer = new byte[size];
bufferSize = 0;
do
{
bufferSize = readStream.Read(buffer, 0, buffer.Length);
ms.Write(buffer, 0, bufferSize);
}
while (bufferSize > 0);
ms.Position = 0;
// read stream
StreamReader sr = new StreamReader(ms);
// load xml
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(sr.ReadToEnd());
// parse
XmlNode xnl = xmlDocument.SelectSingleNode("bomg/b/g");
if (xnl == null)
{
break;
}
string rootName = (xnl.Attributes["name"] == null) ? "Bookmarks" : (string.IsNullOrWhiteSpace(xnl.Attributes["name"].InnerText) ? "Bookmarks" : xnl.Attributes["name"].InnerText.Trim());
foreach (XmlNode xn in xnl.ChildNodes)
{
BookmarkItemViewModel viewModel = new BookmarkItemViewModel();
foreach (XmlNode xn2 in xn.ChildNodes)
{
switch (xn2.LocalName)
{
case "name":
viewModel.SiteName = xn2.InnerText?.Trim();
break;
case "address":
viewModel.SiteAddress = xn2.InnerText?.Trim();
break;
case "description":
viewModel.SiteDescription = xn2.InnerText?.Trim();
break;
//case "created":
// bi.Created = xn2.InnerText?.Trim();
// break;
default:
break;
}
}
// fix fullpath and name
if (viewModel.SiteName.Contains("|"))
{
StringBuilder sb = new StringBuilder();
sb.Append("\\");
sb.Append(System.Web.HttpUtility.UrlEncode(rootName));
sb.Append("\\");
string[] pathParts = viewModel.SiteName.Split('|');
for (int i = 0; i < (pathParts.Length - 1); i++)
{
sb.Append(pathParts[i]);
//sb.Append(System.Web.HttpUtility.UrlDecode(pathParts[i]));
sb.Append("\\");
}
viewModel.SiteName = System.Web.HttpUtility.UrlDecode(pathParts[(pathParts.Length - 1)] ?? string.Empty);
viewModel.TreeviewPath = sb.ToString();
}
else
{
viewModel.SiteName = System.Web.HttpUtility.UrlDecode(viewModel.SiteName);
viewModel.TreeviewPath = string.Format("\\{0}\\", System.Web.HttpUtility.UrlEncode(rootName));
}
rs.Add(viewModel);
}
break;
}
treeView1.AddItem(rs);
}
protected void saveBookmarkFile(string filename, string password = "")
{ {
List<BookmarkItemViewModel> rs = treeView1.GetBookmarkList(); List<BookmarkItemViewModel> rs = treeView1.GetBookmarkList();
@ -564,12 +801,13 @@ namespace bzit.bomg
ZipOutputStream zipStream = new ZipOutputStream(File.Create(filename)); ZipOutputStream zipStream = new ZipOutputStream(File.Create(filename));
zipStream.SetLevel(9); zipStream.SetLevel(9);
zipStream.Password = password;
// make readable // stream
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(rs))); MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(rs)));
ms.Position = 0; ms.Position = 0;
// write new document xml // write file entry
zipStream.PutNextEntry(new ZipEntry("bookmarks.json")); zipStream.PutNextEntry(new ZipEntry("bookmarks.json"));
buffer = new byte[size]; buffer = new byte[size];
@ -815,9 +1053,10 @@ namespace bzit.bomg
{ {
List<BookmarkItemViewModel> rs = treeView1.GetBookmarkList(); List<BookmarkItemViewModel> rs = treeView1.GetBookmarkList();
string filename = @"N:\test.jsnx"; //string filename = @"N:\test.jsnx";
saveBookmarkFile(filename); //saveBookmarkFile(filename, string.Empty);
//loadBookmarkFile(filename, string.Empty);
} }
} }

View File

@ -157,14 +157,14 @@
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHZSURBVDhPjZM7SxxRGIY1qfwPClaCICFkZUsRxELQQkmK YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHZSURBVDhPjZM7SxxRGIY1qfwPClaCICFkZUsRxELQQkmK
EAjEQsHOCxYpFSttZFmWNJJOsAik2yKwBAkJiu6i4g0iYrGbvbmzO5dzzszE1+87OOOOay4fPEyx5332 EAjEQsHOCxYpFSttZFmWNJJOsAik2C6wBAkJiu6i4g0iYrGbvbmzO5dzzszE1+87OOOOay4fPEyx5332
PWfmtDVNJxEj4v+gm3hCtEzMcRwjk8n89n0fjyGlRCKRWKe1j0riHLYsC7Zth9TrddRqNRSLRS0pFApI PWfmtDVNJxEj4v+gm3hCtEzMcRwjk8n89n0fjyGlRCKRWKe1j0riHLYsC7Zth9TrddRqNRSLRS0pFApI
JpMtknYizguEEFBK6SdjmiYMw0CpVNICagn+k1QqFUj0aIFXz0Fe72pBIOFAo9FAuVyObIfhjE7TaIE4 JpMtknYizguEEFBK6SdjmiYMw0CpVNICagn+k1QqFUj0aIFXz0Fe72pBIOFAo9FAuVyObIfhjE7TaIE4
m4M4ng4XeJ6n9x1spVKp6Cb5fP5ecHM122Eevhnc/zS0IU+mIA9eQ16swq1+g+9aEQk34fOoVqv3Ank6 m4M4ng4XeJ6n9x1spVKp6Cb5fP5ecHM122Eevhnc/zS0IU+mIA9eQ16swq1+g+9aEQk34fOoVqv3Ank6
+UGdzkCez8O9XIX6uQSxPw5r+wXE4WKkCW+Hz4RFoQB49dQ5mPgszxdIsEaCZTi5l3Cy7+B7Si9kXNfV +UGdzkCez8O9XIX6uQSxPw5r+wXE4WKkCW+Hz4RFoQB49dQ5mPgszxdIsEaCZTi5l3Cy7+B7Si9kXNfV
58ISJhTwXO+NPRO5UaiLZaiz97C+9sE1jsIwwy2Cw+U2EYG1MzwismOwvz+Hud1L9WNQv77oUAA3YDjc 58ISJhTwXO+NPRO5UaiLZaiz97C+9sE1jsIwwy2Cw+U2EYG1MzwismOwvz+Hud1L9WNQv77oUAA3YDjc
Kvgx8Da72fPRlxV4hDhZgbzaagk3ExHQhB/SQ5pbNMO/cUanabQgnU7fPBT8Cf7sOaPTd9NPr8f+22UK Kvgx8Da72fPRlxV4hDhZgbzaagk3ExHQhB/SQ5pbNMO/cUanabQgnU7fPBT8Cf7sOaPTd9NPr8f+22UK
uLszJmX49obTRfQTbP0fKNzWdQu5+pvuDaXQ3AAAAABJRU5ErkJggg== uLszJmX49obTRfQTbP0fKNzWdQuznZvllfjFsQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -1,51 +0,0 @@
using System;
using System.Windows.Forms;
namespace bzit.bomg
{
public partial class NewSessionForm : Form
{
private MainForm parentForm = null;
public NewSessionForm(MainForm form)
{
InitializeComponent();
parentForm = form;
}
private void button2_Click(object sender, EventArgs e)
{
if (parentForm == null)
{
return;
}
if (string.IsNullOrEmpty(textBox2.Text))
{
return;
}
parentForm.treeView1.Clear();
parentForm.treeView1.Nodes.Add("", textBox2.Text.Trim(), 0, 0);
parentForm.ApplicationMode = MainForm.AppMode.New;
this.Close();
}
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
button2_Click(sender, null);
break;
case Keys.Escape:
this.Close();
break;
default: break;
}
}
}
}

View File

@ -28,62 +28,77 @@ namespace bzit.bomg
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PasswordForm)); this.button2 = new RyzStudio.Windows.ThemedForms.Button();
this.label1 = new System.Windows.Forms.Label(); this.horizontalSeparator1 = new RyzStudio.Windows.Forms.HorizontalSeparator();
this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox1 = new RyzStudio.Windows.ThemedForms.TextBox();
this.btnSave = new RyzStudio.Windows.Forms.BigButton(); this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout(); this.SuspendLayout();
// //
// label1 // button2
// //
this.label1.AutoSize = true; this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label1.Location = new System.Drawing.Point(12, 12); this.button2.BackColor = System.Drawing.Color.Transparent;
this.label1.Margin = new System.Windows.Forms.Padding(3); this.button2.DefaultImage = null;
this.label1.Name = "label1"; this.button2.DownImage = null;
this.label1.Size = new System.Drawing.Size(91, 13); this.button2.LabelText = "&OK";
this.label1.TabIndex = 0; this.button2.Location = new System.Drawing.Point(264, 77);
this.label1.Text = "Enter a password"; this.button2.Name = "button2";
this.button2.OverImage = null;
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button2.Size = new System.Drawing.Size(108, 32);
this.button2.TabIndex = 1;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// horizontalSeparator1
//
this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.horizontalSeparator1.Location = new System.Drawing.Point(12, 62);
this.horizontalSeparator1.Margin = new System.Windows.Forms.Padding(3, 10, 3, 10);
this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
this.horizontalSeparator1.Name = "horizontalSeparator1";
this.horizontalSeparator1.Size = new System.Drawing.Size(360, 2);
this.horizontalSeparator1.TabIndex = 73;
// //
// textBox1 // textBox1
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(12, 31); this.textBox1.BackColor = System.Drawing.Color.Transparent;
this.textBox1.Location = new System.Drawing.Point(96, 15);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.PasswordChar = '*'; this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(280, 21); this.textBox1.Size = new System.Drawing.Size(276, 32);
this.textBox1.SubmitButton = this.button2;
this.textBox1.TabIndex = 0; this.textBox1.TabIndex = 0;
this.textBox1.UseSystemPasswordChar = true; this.textBox1.UseSystemPasswordChar = false;
this.textBox1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.textBox1_PreviewKeyDown);
// //
// btnSave // label2
// //
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true;
this.btnSave.BackColor = System.Drawing.Color.WhiteSmoke; this.label2.Location = new System.Drawing.Point(12, 25);
this.btnSave.Location = new System.Drawing.Point(196, 67); this.label2.Margin = new System.Windows.Forms.Padding(3);
this.btnSave.MaximumSize = new System.Drawing.Size(120, 32); this.label2.Name = "label2";
this.btnSave.MinimumSize = new System.Drawing.Size(32, 32); this.label2.Size = new System.Drawing.Size(53, 13);
this.btnSave.Name = "btnSave"; this.label2.TabIndex = 71;
this.btnSave.Padding = new System.Windows.Forms.Padding(4); this.label2.Text = "Password";
this.btnSave.Size = new System.Drawing.Size(96, 32);
this.btnSave.TabIndex = 23;
this.btnSave.Value = "&OK";
this.btnSave.Click += new System.EventHandler(this.button2_Click);
// //
// PasswordForm // PasswordForm
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White; this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(304, 111); this.ClientSize = new System.Drawing.Size(384, 121);
this.Controls.Add(this.btnSave); this.Controls.Add(this.button2);
this.Controls.Add(this.horizontalSeparator1);
this.Controls.Add(this.textBox1); this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1); this.Controls.Add(this.label2);
this.Font = new System.Drawing.Font("Tahoma", 8.25F); this.Font = new System.Drawing.Font("Tahoma", 8.25F);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(400, 160);
this.Name = "PasswordForm"; this.Name = "PasswordForm";
this.ShowIcon = false;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
@ -94,9 +109,9 @@ namespace bzit.bomg
} }
#endregion #endregion
private RyzStudio.Windows.ThemedForms.Button button2;
private System.Windows.Forms.Label label1; private RyzStudio.Windows.Forms.HorizontalSeparator horizontalSeparator1;
private System.Windows.Forms.TextBox textBox1; private RyzStudio.Windows.ThemedForms.TextBox textBox1;
private RyzStudio.Windows.Forms.BigButton btnSave; private System.Windows.Forms.Label label2;
} }
} }

View File

@ -21,11 +21,6 @@ namespace bzit.bomg
return; return;
} }
if (string.IsNullOrEmpty(textBox1.Text))
{
return;
}
this.Close(); this.Close();
} }
@ -33,9 +28,6 @@ namespace bzit.bomg
{ {
switch (e.KeyCode) switch (e.KeyCode)
{ {
case Keys.Enter:
button2_Click(sender, null);
break;
case Keys.Escape: case Keys.Escape:
this.Close(); this.Close();
break; break;

View File

@ -117,29 +117,4 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzjMmFRJ7V6TmMy+AkZqRWAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR63jyYXp+f9M2fX/OZHM8yNgnF0AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeq4c+g5vj/N9Ly/0bW9v86k831IlqYYhlS
tw0cXb8NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvl9pcOZ3dzpji9v9S3PX/Rdn2/zaP
zPQ0gs/oNYPS6B9dplMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyU2TRFqeHKT7fl3l3Z
8v9N2/b/Wt33/1TY9f8tf833H1ehWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOY
2oaI3fT/aeD2/3Li9/9e3/b/VNr2/zd+zfMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA6oN2vqO75/33m+P+Z6Pj/fdHw/3/i9v8+l9nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAALZXZZlzA6v2i8Pv/f9Tw/33H7P9Pot31IG21WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAokNhwbsns/8nz+/9WueftJITNSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAALJXaAjCY2olFquHLKpXaYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//+sQf//rEH//6xB4f+sQeD/rEHgH6xB4A+sQfAHrEH8B6xB/AesQfwHrEH+D6xB/h+sQf//
rEH//6xB//+sQQ==
</value>
</data>
</root> </root>

View File

@ -1,75 +1,123 @@
using System; namespace RyzStudio.IO
{
using System;
using System.IO; using System.IO;
using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Zip;
namespace RyzStudio.IO
{
public class SharpZipLib public class SharpZipLib
{ {
/// <summary> public static bool IsZipEncrypted(string filename)
/// Is zip file encrypted
/// </summary>
/// <param name="fn">Filename</param>
/// <returns>Is encrypted</returns>
public static bool IsZipEncrypted(string fn)
{ {
bool ret_val = false; bool rv = false;
try try
{ {
ZipInputStream zipIn = new ZipInputStream(System.IO.File.OpenRead(fn)); ZipInputStream zipStream = new ZipInputStream(File.OpenRead(filename));
ZipEntry theEntry = null;
while ((theEntry = zipIn.GetNextEntry()) != null) ZipEntry zipEntry = null;
while ((zipEntry = zipStream.GetNextEntry()) != null)
{ {
if (theEntry.IsCrypted) if (zipEntry.IsCrypted)
{ {
ret_val = true; rv = true;
} }
break; break;
} }
zipIn.Close(); zipStream.Close();
} }
catch catch
{ {
// do nothing // do nothing
} }
return ret_val; return rv;
} }
public static void AddFile(ZipOutputStream zipstream, string filename, string prefixpath = null) public static bool TestZipEncrypted(string filename, string password)
{
bool rv = false;
int size = 2;
byte[] buffer = new byte[size];
int bufferSize = 0;
ZipEntry readEntry = null;
ZipInputStream readStream = new ZipInputStream(File.OpenRead(filename));
readStream.Password = password;
while (true)
{
readEntry = readStream.GetNextEntry();
if (readEntry == null)
{
break;
}
if (string.IsNullOrWhiteSpace(readEntry.Name))
{
continue;
}
if (!readEntry.IsFile)
{
continue;
}
if (readEntry.Size <= 0)
{
continue;
}
try
{
bufferSize = readStream.Read(buffer, 0, buffer.Length);
rv = true;
}
catch
{
break;
}
break;
}
return rv;
}
public static void AddFile(ZipOutputStream zipStream, string filename, string prefixPath = null)
{ {
byte[] buffer = new byte[4096]; byte[] buffer = new byte[4096];
string f1 = ""; string f1 = "";
if (prefixpath != null) if (prefixPath != null)
{ {
f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\"; f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\";
f1 = f1.Replace(prefixpath, "").TrimEnd('\\') + "\\"; f1 = f1.Replace(prefixPath, "").TrimEnd('\\') + "\\";
f1 = f1 + Path.GetFileName(filename); f1 = f1 + Path.GetFileName(filename);
f1 = f1.TrimStart('\\'); f1 = f1.TrimStart('\\');
} }
ZipEntry entry = new ZipEntry(f1); ZipEntry zipEntry = new ZipEntry(f1);
entry.DateTime = DateTime.Now; zipEntry.DateTime = DateTime.Now;
zipstream.PutNextEntry(entry); zipStream.PutNextEntry(zipEntry);
FileStream fs = File.OpenRead(filename); FileStream fileStream = File.OpenRead(filename);
int sourceBytes; int sourceBytes;
do do
{ {
sourceBytes = fs.Read(buffer, 0, buffer.Length); sourceBytes = fileStream.Read(buffer, 0, buffer.Length);
zipstream.Write(buffer, 0, sourceBytes); zipStream.Write(buffer, 0, sourceBytes);
} }
while (sourceBytes > 0); while (sourceBytes > 0);
} }
public static void AddFolder(ZipOutputStream zipstream, string folderpath, string prefixpath = null) public static void AddFolder(ZipOutputStream zipStream, string folderPath, string prefixPath = null)
{ {
foreach (string fn in Directory.GetFiles(folderpath, "*.*", System.IO.SearchOption.AllDirectories)) foreach (string fn in Directory.GetFiles(folderPath, "*.*", System.IO.SearchOption.AllDirectories))
{ {
AddFile(zipstream, fn, prefixpath); AddFile(zipStream, fn, prefixPath);
} }
} }
} }

View File

@ -100,5 +100,7 @@
[Browsable(false)] [Browsable(false)]
public ButtonStyle StyleDefault { get; set; } = new ButtonStyle(Color.White, Color.Black); public ButtonStyle StyleDefault { get; set; } = new ButtonStyle(Color.White, Color.Black);
public void PerformClick() => this.OnClick(null);
} }
} }

View File

@ -15,6 +15,7 @@
InitializeComponent(); InitializeComponent();
this.Margin = new Padding(10, 6, 10, 6); this.Margin = new Padding(10, 6, 10, 6);
textBox1.PreviewKeyDown += textBox_PreviewKeyDown;
} }
protected override void OnResize(EventArgs e) protected override void OnResize(EventArgs e)
@ -33,6 +34,24 @@
textBox1.Focus(); textBox1.Focus();
} }
protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
if (this.SubmitButton != null)
{
this.SubmitButton.PerformClick();
}
break;
//case Keys.Escape:
// this.Close();
// break;
default: break;
}
}
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
[Category("Appearance")] [Category("Appearance")]
public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; } public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; }
@ -41,6 +60,14 @@
[Category("Appearance")] [Category("Appearance")]
public new string Text { get => textBox1.Text; set => textBox1.Text = value; } public new string Text { get => textBox1.Text; set => textBox1.Text = value; }
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
[Category("Appearance")]
public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; }
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
[Category("Appearance")]
public Button SubmitButton { get; set; } = null;
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } } public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } }

View File

@ -1,6 +1,6 @@
namespace bzit.bomg namespace RyzStudio.Windows.ThemedForms
{ {
partial class NewSessionForm partial class TextBoxForm
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
@ -28,23 +28,40 @@ namespace bzit.bomg
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.textBox2 = new RyzStudio.Windows.ThemedForms.TextBox(); this.textBox1 = new RyzStudio.Windows.ThemedForms.TextBox();
this.button2 = new RyzStudio.Windows.ThemedForms.Button();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.horizontalSeparator1 = new RyzStudio.Windows.Forms.HorizontalSeparator(); this.horizontalSeparator1 = new RyzStudio.Windows.Forms.HorizontalSeparator();
this.button2 = new RyzStudio.Windows.ThemedForms.Button();
this.SuspendLayout(); this.SuspendLayout();
// //
// textBox2 // textBox1
// //
this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.textBox2.BackColor = System.Drawing.Color.Transparent; this.textBox1.BackColor = System.Drawing.Color.Transparent;
this.textBox2.Location = new System.Drawing.Point(96, 15); this.textBox1.Location = new System.Drawing.Point(96, 15);
this.textBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox2.Name = "textBox2"; this.textBox1.Name = "textBox1";
this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox2.Size = new System.Drawing.Size(276, 32); this.textBox1.Size = new System.Drawing.Size(276, 32);
this.textBox2.TabIndex = 68; this.textBox1.SubmitButton = this.button2;
this.textBox1.TabIndex = 0;
this.textBox1.UseSystemPasswordChar = false;
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button2.BackColor = System.Drawing.Color.Transparent;
this.button2.DefaultImage = null;
this.button2.DownImage = null;
this.button2.LabelText = "&OK";
this.button2.Location = new System.Drawing.Point(264, 77);
this.button2.Name = "button2";
this.button2.OverImage = null;
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button2.Size = new System.Drawing.Size(108, 32);
this.button2.TabIndex = 1;
this.button2.Click += new System.EventHandler(this.button2_Click);
// //
// label2 // label2
// //
@ -60,40 +77,26 @@ namespace bzit.bomg
// //
this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.horizontalSeparator1.Location = new System.Drawing.Point(12, 63); this.horizontalSeparator1.Location = new System.Drawing.Point(12, 62);
this.horizontalSeparator1.Margin = new System.Windows.Forms.Padding(3, 10, 3, 10); this.horizontalSeparator1.Margin = new System.Windows.Forms.Padding(3, 10, 3, 10);
this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
this.horizontalSeparator1.Name = "horizontalSeparator1"; this.horizontalSeparator1.Name = "horizontalSeparator1";
this.horizontalSeparator1.Size = new System.Drawing.Size(360, 2); this.horizontalSeparator1.Size = new System.Drawing.Size(360, 2);
this.horizontalSeparator1.TabIndex = 69; this.horizontalSeparator1.TabIndex = 69;
// //
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button2.BackColor = System.Drawing.Color.Transparent;
this.button2.DefaultImage = null;
this.button2.DownImage = null;
this.button2.LabelText = "&OK";
this.button2.Location = new System.Drawing.Point(264, 78);
this.button2.Name = "button2";
this.button2.OverImage = null;
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button2.Size = new System.Drawing.Size(108, 32);
this.button2.TabIndex = 70;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// NewSessionForm // NewSessionForm
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White; this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(384, 122); this.ClientSize = new System.Drawing.Size(384, 121);
this.Controls.Add(this.button2); this.Controls.Add(this.button2);
this.Controls.Add(this.horizontalSeparator1); this.Controls.Add(this.horizontalSeparator1);
this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1);
this.Controls.Add(this.label2); this.Controls.Add(this.label2);
this.Font = new System.Drawing.Font("Tahoma", 8.25F); this.Font = new System.Drawing.Font("Tahoma", 8.25F);
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(400, 160);
this.Name = "NewSessionForm"; this.Name = "NewSessionForm";
this.ShowIcon = false; this.ShowIcon = false;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
@ -105,7 +108,7 @@ namespace bzit.bomg
} }
#endregion #endregion
private RyzStudio.Windows.ThemedForms.TextBox textBox2; private RyzStudio.Windows.ThemedForms.TextBox textBox1;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private RyzStudio.Windows.Forms.HorizontalSeparator horizontalSeparator1; private RyzStudio.Windows.Forms.HorizontalSeparator horizontalSeparator1;
private RyzStudio.Windows.ThemedForms.Button button2; private RyzStudio.Windows.ThemedForms.Button button2;

View File

@ -0,0 +1,67 @@
using System;
using System.Windows.Forms;
namespace RyzStudio.Windows.ThemedForms
{
public partial class TextBoxForm : Form
{
public TextBoxForm(string title, string labelText, string defaultValue)
{
InitializeComponent();
this.Text = title;
label2.Text = labelText;
textBox1.Text = defaultValue;
}
public TextBoxForm(string title, string labelText, string defaultValue, bool password)
{
InitializeComponent();
this.Text = title;
label2.Text = labelText;
textBox1.Text = defaultValue;
textBox1.UseSystemPasswordChar = password;
}
public TextBoxForm(string title, string labelText)
{
InitializeComponent();
this.Text = title;
label2.Text = labelText;
}
public TextBoxForm(string title, string labelText, bool password)
{
InitializeComponent();
this.Text = title;
label2.Text = labelText;
textBox1.UseSystemPasswordChar = password;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
this.Close();
break;
default: break;
}
}
public new string ShowDialog()
{
base.ShowDialog();
return textBox1.Text;
}
}
}

View File

@ -198,6 +198,21 @@ namespace RyzStudio.Windows.Forms
return node.Nodes.Add(encodePath(name), name, (int)IconSet.Folder1, (int)IconSet.Folder2); return node.Nodes.Add(encodePath(name), name, (int)IconSet.Folder1, (int)IconSet.Folder2);
} }
public void AddItem(List<BookmarkItemViewModel> viewModelList)
{
this.Clear();
if (viewModelList == null)
{
return;
}
foreach (BookmarkItemViewModel item in viewModelList)
{
AddItem(item);
}
}
public void AddItem(BookmarkItemViewModel viewModel) public void AddItem(BookmarkItemViewModel viewModel)
{ {
int iconIndex = addIcon(viewModel); int iconIndex = addIcon(viewModel);
@ -296,7 +311,10 @@ namespace RyzStudio.Windows.Forms
return rs; return rs;
} }
traverseBookmarkList(rs, this.Nodes[0]); foreach (TreeNode item in this.Nodes)
{
traverseBookmarkList(rs, item);
}
return rs; return rs;
} }
@ -403,13 +421,19 @@ namespace RyzStudio.Windows.Forms
public void Clear() public void Clear()
{ {
//nodeCount = 0;
//NodeCountUpdate(nodeCount);
this.Nodes.Clear(); this.Nodes.Clear();
this.HasChanged = true; this.HasChanged = true;
} }
public void Clear(string name)
{
this.Nodes.Clear();
this.Nodes.Add("", name?.Trim(), (int)IconSet.Root, (int)IconSet.Root);
this.HasChanged = true;
}
#endregion #endregion
#region integrated behaviour #region integrated behaviour
@ -491,22 +515,6 @@ namespace RyzStudio.Windows.Forms
this.HasChanged = true; this.HasChanged = true;
base.OnBeforeLabelEdit(e); base.OnBeforeLabelEdit(e);
//if (e.Node == null)
//{
// e.CancelEdit = true;
//}
//else
//{
// if (e.Node.Tag == null)
// {
// // do it
// }
// else
// {
// e.CancelEdit = true;
// }
//}
} }
protected override void OnAfterLabelEdit(NodeLabelEditEventArgs e) protected override void OnAfterLabelEdit(NodeLabelEditEventArgs e)
@ -627,14 +635,8 @@ namespace RyzStudio.Windows.Forms
base.OnPreviewKeyDown(e); base.OnPreviewKeyDown(e);
} }
//protected virtual void NodeCountUpdate(ulong v)
//{
// this.OnNodeCountUpdate?.Invoke(v);
//}
#endregion #endregion
protected int addIcon(BookmarkItemViewModel viewModel) => addIcon(viewModel.ToModel()); protected int addIcon(BookmarkItemViewModel viewModel) => addIcon(viewModel.ToModel());
protected int addIcon(BookmarkItemModel model) protected int addIcon(BookmarkItemModel model)
@ -672,11 +674,12 @@ namespace RyzStudio.Windows.Forms
protected TreeNode addFolderPath(string path) protected TreeNode addFolderPath(string path)
{ {
TreeNode tn = this.Nodes[0]; TreeNode tn = null;
if (tn == null) //TreeNode tn = this.Nodes[0];
{ //if (tn == null)
return tn; //{
} // return tn;
//}
if (string.IsNullOrWhiteSpace(path)) if (string.IsNullOrWhiteSpace(path))
{ {
@ -694,19 +697,29 @@ namespace RyzStudio.Windows.Forms
return tn; return tn;
} }
foreach (string item in folderList) for (int i=0; i<folderList.Length; i++)
{ {
if (tn.Nodes.ContainsKey(item)) string item = folderList[i];
if (i <= 0)
{ {
// do nothing if (!this.Nodes.ContainsKey(item))
{
this.Nodes.Add(item, decodePath(item), (int)IconSet.Root, (int)IconSet.Root);
}
tn = this.Nodes[item];
} }
else else
{ {
tn.Nodes.Add(item, item, (int)IconSet.Folder1, (int)IconSet.Folder2); if (!tn.Nodes.ContainsKey(item))
{
tn.Nodes.Add(item, decodePath(item), (int)IconSet.Folder1, (int)IconSet.Folder2);
} }
tn = tn.Nodes[item]; tn = tn.Nodes[item];
} }
}
return tn; return tn;
} }
@ -792,55 +805,5 @@ namespace RyzStudio.Windows.Forms
return false; return false;
} }
//protected void traverseNodeList(ref TreeNode[] results, TreeNode node)
//{
// foreach (TreeNode tn in node.Nodes)
// {
// if (tn.Tag == null)
// {
// traverseNodeList(ref results, tn);
// }
// else
// {
// Array.Resize(ref results, (results.Length + 1));
// results[(results.Length - 1)] = tn;
// }
// }
//}
//protected void traverseNodeCount(ref ulong results, TreeNode node)
//{
// foreach (TreeNode tn in node.Nodes)
// {
// if (tn.Tag == null)
// {
// traverseNodeCount(ref results, tn);
// }
// else
// {
// results++;
// }
// }
//}
//protected virtual void OnAddFolderNode(TreeNode node) { }
//protected virtual void OnAddItemNode(TreeNode node) { }
////protected string PathEncode(string text) { return RyzStudio.String.EncodeTo64(text); }
//protected string PathDecode(string text) { return RyzStudio.String.DecodeFrom64(text); }
} }
} }

View File

@ -161,7 +161,6 @@
<Compile Include="UpdateIconForm.Designer.cs"> <Compile Include="UpdateIconForm.Designer.cs">
<DependentUpon>UpdateIconForm.cs</DependentUpon> <DependentUpon>UpdateIconForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="SessionFileFormat.cs" />
<Compile Include="Data\IconDatabase.cs" /> <Compile Include="Data\IconDatabase.cs" />
<Compile Include="BookmarkEditForm.cs"> <Compile Include="BookmarkEditForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
@ -175,11 +174,11 @@
<Compile Include="FindForm.Designer.cs"> <Compile Include="FindForm.Designer.cs">
<DependentUpon>FindForm.cs</DependentUpon> <DependentUpon>FindForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="NewSessionForm.cs"> <Compile Include="RyzStudio\Windows\ThemedForms\TextBoxForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="NewSessionForm.Designer.cs"> <Compile Include="RyzStudio\Windows\ThemedForms\TextBoxForm.Designer.cs">
<DependentUpon>NewSessionForm.cs</DependentUpon> <DependentUpon>TextBoxForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="PasswordForm.cs"> <Compile Include="PasswordForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
@ -242,8 +241,8 @@
<EmbeddedResource Include="FindForm.resx"> <EmbeddedResource Include="FindForm.resx">
<DependentUpon>FindForm.cs</DependentUpon> <DependentUpon>FindForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="NewSessionForm.resx"> <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TextBoxForm.resx">
<DependentUpon>NewSessionForm.cs</DependentUpon> <DependentUpon>TextBoxForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="PasswordForm.resx"> <EmbeddedResource Include="PasswordForm.resx">
<DependentUpon>PasswordForm.cs</DependentUpon> <DependentUpon>PasswordForm.cs</DependentUpon>