Merge pull request 'release/0.6.0' (#2) from release/0.6.0 into master
Reviewed-on: #2
This commit is contained in:
commit
527c87889e
51
AppResource.Designer.cs
generated
51
AppResource.Designer.cs
generated
@ -19,7 +19,7 @@ namespace BookmarkManager {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class AppResource {
|
internal class AppResource {
|
||||||
@ -61,20 +61,38 @@ namespace BookmarkManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Ray Lam.
|
/// Looks up a localized string similar to .
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string app_author {
|
internal static string AppAuthorURL {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("app_author", resourceCulture);
|
return ResourceManager.GetString("AppAuthorURL", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Bookmark Manager.
|
/// Looks up a localized string similar to https://www.hiimray.co.uk.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string app_name {
|
internal static string AppCompanyURL {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("app_name", resourceCulture);
|
return ResourceManager.GetString("AppCompanyURL", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-bookmark-manager.
|
||||||
|
/// </summary>
|
||||||
|
internal static string AppHelpURL {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("AppHelpURL", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-bookmark-manager.
|
||||||
|
/// </summary>
|
||||||
|
internal static string AppProductURL {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("AppProductURL", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,6 +186,16 @@ namespace BookmarkManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icon_64 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icon_64", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -207,14 +235,5 @@ namespace BookmarkManager {
|
|||||||
return ((System.Drawing.Bitmap)(obj));
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-bookmark-manager.
|
|
||||||
/// </summary>
|
|
||||||
internal static string url_help {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("url_help", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,18 +112,24 @@
|
|||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.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>
|
||||||
<data name="app_author" xml:space="preserve">
|
<data name="AppAuthorURL" xml:space="preserve">
|
||||||
<value>Ray Lam</value>
|
<value />
|
||||||
</data>
|
</data>
|
||||||
<data name="app_name" xml:space="preserve">
|
<data name="AppCompanyURL" xml:space="preserve">
|
||||||
<value>Bookmark Manager</value>
|
<value>https://www.hiimray.co.uk</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<data name="AppHelpURL" xml:space="preserve">
|
||||||
|
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
|
||||||
|
</data>
|
||||||
|
<data name="AppProductURL" xml:space="preserve">
|
||||||
|
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="arrow_down_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="arrow_down_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Resources\arrow-down-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Resources\arrow-down-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@ -151,6 +157,9 @@
|
|||||||
<data name="hexagon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="hexagon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Resources\hexagon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Resources\hexagon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@ -163,7 +172,4 @@
|
|||||||
<data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Resources\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Resources\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="url_help" xml:space="preserve">
|
|
||||||
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
395
BookmarkForm.cs
395
BookmarkForm.cs
@ -1,395 +0,0 @@
|
|||||||
using BookmarkManager;
|
|
||||||
using bzit.bomg.Models;
|
|
||||||
using FizzyLauncher.Models;
|
|
||||||
using RyzStudio;
|
|
||||||
using RyzStudio.IO;
|
|
||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using RyzStudio.Windows.ThemedForms;
|
|
||||||
using System;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
|
|
||||||
namespace FizzyLauncher
|
|
||||||
{
|
|
||||||
public class BookmarkForm : TDialogForm
|
|
||||||
{
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private TButton button1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
|
||||||
private TTextBox textBox1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
|
||||||
private Label label2;
|
|
||||||
private Label label3;
|
|
||||||
private TMemoBox memoBox1;
|
|
||||||
private TMemoBox memoBox2;
|
|
||||||
private Label label4;
|
|
||||||
private TButtonTextBox textBox2;
|
|
||||||
private PictureBox pictureBox1;
|
|
||||||
private PictureBox pictureBox2;
|
|
||||||
|
|
||||||
private ToolTip toolTip1;
|
|
||||||
private System.ComponentModel.IContainer components;
|
|
||||||
|
|
||||||
protected WebParser webParser = null;
|
|
||||||
protected WebClient webClient = null;
|
|
||||||
protected AppSession appSession = null;
|
|
||||||
|
|
||||||
|
|
||||||
public BookmarkForm(AppSession session, BookmarkItem model, Image icon) : base()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
appSession = session;
|
|
||||||
|
|
||||||
textBox1.Text = model.SiteName?.Trim() ?? string.Empty;
|
|
||||||
textBox2.Text = model.SiteAddress?.Trim() ?? string.Empty;
|
|
||||||
textBox2.SetIcon("search");
|
|
||||||
memoBox1.Text = model.SiteDescription?.Trim() ?? string.Empty;
|
|
||||||
memoBox2.Text = model.Notes?.Trim() ?? string.Empty;
|
|
||||||
pictureBox1.Image = icon;
|
|
||||||
|
|
||||||
textBox2.SetTooltipText(toolTip1, "Retrieve web page information");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
this.components = new System.ComponentModel.Container();
|
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
|
||||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
|
||||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
|
||||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
|
||||||
this.memoBox1 = new RyzStudio.Windows.ThemedForms.TMemoBox();
|
|
||||||
this.memoBox2 = new RyzStudio.Windows.ThemedForms.TMemoBox();
|
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
|
||||||
this.textBox2 = new RyzStudio.Windows.ThemedForms.TButtonTextBox();
|
|
||||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
|
||||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
|
||||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// label1
|
|
||||||
//
|
|
||||||
this.label1.AutoSize = true;
|
|
||||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label1.Location = new System.Drawing.Point(10, 21);
|
|
||||||
this.label1.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label1.Size = new System.Drawing.Size(29, 34);
|
|
||||||
this.label1.TabIndex = 153;
|
|
||||||
this.label1.Text = "Title";
|
|
||||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// button1
|
|
||||||
//
|
|
||||||
this.button1.AcceptButton = null;
|
|
||||||
this.button1.ActiveImage = null;
|
|
||||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.button1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.button1.HoverImage = null;
|
|
||||||
this.button1.IdleImage = null;
|
|
||||||
this.button1.LabelText = "&Save";
|
|
||||||
this.button1.Location = new System.Drawing.Point(241, 469);
|
|
||||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.button1.Size = new System.Drawing.Size(128, 32);
|
|
||||||
this.button1.TabIndex = 4;
|
|
||||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator1
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
|
|
||||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
|
||||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator1.TabIndex = 188;
|
|
||||||
this.tHorizontalSeparator1.TabStop = false;
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator2
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator2.Location = new System.Drawing.Point(10, 223);
|
|
||||||
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
|
||||||
this.tHorizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator2.TabIndex = 190;
|
|
||||||
this.tHorizontalSeparator2.TabStop = false;
|
|
||||||
//
|
|
||||||
// textBox1
|
|
||||||
//
|
|
||||||
this.textBox1.AcceptButton = null;
|
|
||||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.textBox1.Location = new System.Drawing.Point(110, 20);
|
|
||||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.textBox1.Name = "textBox1";
|
|
||||||
this.textBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.textBox1.ReadOnly = false;
|
|
||||||
this.textBox1.Size = new System.Drawing.Size(222, 34);
|
|
||||||
this.textBox1.TabIndex = 0;
|
|
||||||
this.textBox1.UseSystemPasswordChar = false;
|
|
||||||
//
|
|
||||||
// label2
|
|
||||||
//
|
|
||||||
this.label2.AutoSize = true;
|
|
||||||
this.label2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label2.Location = new System.Drawing.Point(10, 67);
|
|
||||||
this.label2.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label2.Name = "label2";
|
|
||||||
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label2.Size = new System.Drawing.Size(49, 34);
|
|
||||||
this.label2.TabIndex = 193;
|
|
||||||
this.label2.Text = "Address";
|
|
||||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// label3
|
|
||||||
//
|
|
||||||
this.label3.AutoSize = true;
|
|
||||||
this.label3.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label3.Location = new System.Drawing.Point(10, 113);
|
|
||||||
this.label3.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label3.Name = "label3";
|
|
||||||
this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label3.Size = new System.Drawing.Size(67, 34);
|
|
||||||
this.label3.TabIndex = 195;
|
|
||||||
this.label3.Text = "Description";
|
|
||||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// memoBox1
|
|
||||||
//
|
|
||||||
this.memoBox1.AcceptButton = null;
|
|
||||||
this.memoBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.memoBox1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.memoBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.memoBox1.Location = new System.Drawing.Point(110, 112);
|
|
||||||
this.memoBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
|
|
||||||
this.memoBox1.Name = "memoBox1";
|
|
||||||
this.memoBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.memoBox1.ReadOnly = false;
|
|
||||||
this.memoBox1.Size = new System.Drawing.Size(259, 105);
|
|
||||||
this.memoBox1.TabIndex = 2;
|
|
||||||
//
|
|
||||||
// memoBox2
|
|
||||||
//
|
|
||||||
this.memoBox2.AcceptButton = null;
|
|
||||||
this.memoBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.memoBox2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.memoBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.memoBox2.Location = new System.Drawing.Point(110, 251);
|
|
||||||
this.memoBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
|
|
||||||
this.memoBox2.Name = "memoBox2";
|
|
||||||
this.memoBox2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.memoBox2.ReadOnly = false;
|
|
||||||
this.memoBox2.Size = new System.Drawing.Size(259, 180);
|
|
||||||
this.memoBox2.TabIndex = 3;
|
|
||||||
//
|
|
||||||
// label4
|
|
||||||
//
|
|
||||||
this.label4.AutoSize = true;
|
|
||||||
this.label4.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label4.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label4.Location = new System.Drawing.Point(10, 252);
|
|
||||||
this.label4.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label4.Name = "label4";
|
|
||||||
this.label4.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label4.Size = new System.Drawing.Size(38, 34);
|
|
||||||
this.label4.TabIndex = 198;
|
|
||||||
this.label4.Text = "Notes";
|
|
||||||
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// textBox2
|
|
||||||
//
|
|
||||||
this.textBox2.AcceptButton = null;
|
|
||||||
this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.textBox2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.textBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.textBox2.HighlightImage = null;
|
|
||||||
this.textBox2.Location = new System.Drawing.Point(110, 66);
|
|
||||||
this.textBox2.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.textBox2.Name = "textBox2";
|
|
||||||
this.textBox2.NormalImage = null;
|
|
||||||
this.textBox2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.textBox2.Size = new System.Drawing.Size(259, 34);
|
|
||||||
this.textBox2.TabIndex = 1;
|
|
||||||
this.textBox2.UseSystemPasswordChar = false;
|
|
||||||
this.textBox2.OnButtonClick += new System.EventHandler(this.textBox2_OnButtonClick);
|
|
||||||
//
|
|
||||||
// pictureBox1
|
|
||||||
//
|
|
||||||
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.pictureBox1.ErrorImage = null;
|
|
||||||
this.pictureBox1.InitialImage = null;
|
|
||||||
this.pictureBox1.Location = new System.Drawing.Point(337, 21);
|
|
||||||
this.pictureBox1.Name = "pictureBox1";
|
|
||||||
this.pictureBox1.Size = new System.Drawing.Size(32, 34);
|
|
||||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
|
||||||
this.pictureBox1.TabIndex = 201;
|
|
||||||
this.pictureBox1.TabStop = false;
|
|
||||||
//
|
|
||||||
// pictureBox2
|
|
||||||
//
|
|
||||||
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.pictureBox2.ErrorImage = null;
|
|
||||||
this.pictureBox2.InitialImage = null;
|
|
||||||
this.pictureBox2.Location = new System.Drawing.Point(196, 469);
|
|
||||||
this.pictureBox2.Name = "pictureBox2";
|
|
||||||
this.pictureBox2.Size = new System.Drawing.Size(32, 32);
|
|
||||||
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
|
||||||
this.pictureBox2.TabIndex = 202;
|
|
||||||
this.pictureBox2.TabStop = false;
|
|
||||||
//
|
|
||||||
// BookmarkForm
|
|
||||||
//
|
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
this.ClientSize = new System.Drawing.Size(384, 521);
|
|
||||||
this.Controls.Add(this.pictureBox2);
|
|
||||||
this.Controls.Add(this.pictureBox1);
|
|
||||||
this.Controls.Add(this.textBox2);
|
|
||||||
this.Controls.Add(this.memoBox2);
|
|
||||||
this.Controls.Add(this.label4);
|
|
||||||
this.Controls.Add(this.memoBox1);
|
|
||||||
this.Controls.Add(this.label3);
|
|
||||||
this.Controls.Add(this.label2);
|
|
||||||
this.Controls.Add(this.textBox1);
|
|
||||||
this.Controls.Add(this.tHorizontalSeparator2);
|
|
||||||
this.Controls.Add(this.tHorizontalSeparator1);
|
|
||||||
this.Controls.Add(this.button1);
|
|
||||||
this.Controls.Add(this.label1);
|
|
||||||
this.KeyPreview = true;
|
|
||||||
this.MinimumSize = new System.Drawing.Size(400, 560);
|
|
||||||
this.Name = "BookmarkForm";
|
|
||||||
this.Text = "Edit Bookmark";
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnShown(EventArgs e)
|
|
||||||
{
|
|
||||||
base.OnShown(e);
|
|
||||||
|
|
||||||
textBox2.Focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public BookmarkResult Model
|
|
||||||
{
|
|
||||||
get => new BookmarkResult()
|
|
||||||
{
|
|
||||||
Item = new BookmarkItem()
|
|
||||||
{
|
|
||||||
SiteName = textBox1.Text?.Trim() ?? string.Empty,
|
|
||||||
SiteAddress = textBox2.Text?.Trim() ?? string.Empty,
|
|
||||||
SiteDescription = memoBox1.Text?.Trim() ?? string.Empty,
|
|
||||||
Notes = memoBox2.Text?.Trim() ?? string.Empty
|
|
||||||
},
|
|
||||||
Icon = pictureBox1.Image
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected new bool IsBusy
|
|
||||||
{
|
|
||||||
get => base.IsBusy;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
base.IsBusy = value;
|
|
||||||
|
|
||||||
UIControl.SetValue(pictureBox2, (this.IsBusy ? UIResource1.loading_block : null));
|
|
||||||
|
|
||||||
UIControl.SetEnable(textBox1, !this.IsBusy);
|
|
||||||
UIControl.SetEnable(textBox2, !this.IsBusy);
|
|
||||||
UIControl.SetEnable(memoBox1, !this.IsBusy);
|
|
||||||
UIControl.SetEnable(memoBox2, !this.IsBusy);
|
|
||||||
UIControl.SetEnable(button1, !this.IsBusy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
|
||||||
{
|
|
||||||
this.DialogResult = DialogResult.OK;
|
|
||||||
this.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void textBox2_OnButtonClick(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
await Task.Run(() =>
|
|
||||||
{
|
|
||||||
if (IsBusy) return;
|
|
||||||
|
|
||||||
IsBusy = true;
|
|
||||||
|
|
||||||
if (webParser == null) webParser = new WebParser();
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(textBox1.Text))
|
|
||||||
{
|
|
||||||
IsBusy = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
BookmarkResult rs = webParser.RetrieveDetails(textBox2.Text, appSession.IgnoreSSL);
|
|
||||||
if (rs == null)
|
|
||||||
{
|
|
||||||
IsBusy = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rs.Item == null) rs.Item = new BookmarkItem();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(rs.Item.SiteName)) UIControl.SetText(textBox1.TextBox, rs.Item.SiteName);
|
|
||||||
if (!string.IsNullOrWhiteSpace(rs.Item.SiteDescription)) UIControl.SetText(memoBox1.TextBox, rs.Item.SiteDescription);
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs.IconURL))
|
|
||||||
{
|
|
||||||
UIControl.Clear(pictureBox1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UIControl.SetValue(pictureBox1, webParser.RetrieveImage(rs.IconURL));
|
|
||||||
}
|
|
||||||
|
|
||||||
IsBusy = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,21 +2,23 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net6.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows8.0</TargetFramework>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<NoWin32Manifest>true</NoWin32Manifest>
|
<NoWin32Manifest>true</NoWin32Manifest>
|
||||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||||
<SignAssembly>false</SignAssembly>
|
<SignAssembly>false</SignAssembly>
|
||||||
<AssemblyName>bookmarkmanager</AssemblyName>
|
<AssemblyName>bukkubuddy</AssemblyName>
|
||||||
<Authors>Ray Lam</Authors>
|
<Authors>Ray Lam</Authors>
|
||||||
<Company>Hi, I'm Ray</Company>
|
<Company>Hi, I'm Ray</Company>
|
||||||
<Product>Bookmark Manager</Product>
|
<Product>BukkuBuddy</Product>
|
||||||
<Copyright>Ray Lam</Copyright>
|
<Copyright>Ray Lam</Copyright>
|
||||||
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.0.0</FileVersion>
|
<FileVersion>1.0.0.0</FileVersion>
|
||||||
<Version>0.5.0.012</Version>
|
<Version>0.6.0.972</Version>
|
||||||
<PackageId>bookmarkmanager</PackageId>
|
<PackageId>bukkubuddy</PackageId>
|
||||||
<RunAnalyzersDuringLiveAnalysis>True</RunAnalyzersDuringLiveAnalysis>
|
<RunAnalyzersDuringLiveAnalysis>True</RunAnalyzersDuringLiveAnalysis>
|
||||||
|
<SupportedOSPlatformVersion>8.0</SupportedOSPlatformVersion>
|
||||||
|
<Description>BukkuBuddy Bookmark Manager</Description>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
@ -32,19 +34,25 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Remove="#\**" />
|
<Compile Remove="#\**" />
|
||||||
|
<Compile Remove="Classes\**" />
|
||||||
<Compile Remove="DTO\**" />
|
<Compile Remove="DTO\**" />
|
||||||
|
<Compile Remove="Net\**" />
|
||||||
<Compile Remove="References\**" />
|
<Compile Remove="References\**" />
|
||||||
<Compile Remove="Resources\UI\**" />
|
<Compile Remove="Resources\UI\**" />
|
||||||
<Compile Remove="RyzStudio\**" />
|
<Compile Remove="RyzStudio\**" />
|
||||||
<Compile Remove="Text\**" />
|
<Compile Remove="Text\**" />
|
||||||
<EmbeddedResource Remove="#\**" />
|
<EmbeddedResource Remove="#\**" />
|
||||||
|
<EmbeddedResource Remove="Classes\**" />
|
||||||
<EmbeddedResource Remove="DTO\**" />
|
<EmbeddedResource Remove="DTO\**" />
|
||||||
|
<EmbeddedResource Remove="Net\**" />
|
||||||
<EmbeddedResource Remove="References\**" />
|
<EmbeddedResource Remove="References\**" />
|
||||||
<EmbeddedResource Remove="Resources\UI\**" />
|
<EmbeddedResource Remove="Resources\UI\**" />
|
||||||
<EmbeddedResource Remove="RyzStudio\**" />
|
<EmbeddedResource Remove="RyzStudio\**" />
|
||||||
<EmbeddedResource Remove="Text\**" />
|
<EmbeddedResource Remove="Text\**" />
|
||||||
<None Remove="#\**" />
|
<None Remove="#\**" />
|
||||||
|
<None Remove="Classes\**" />
|
||||||
<None Remove="DTO\**" />
|
<None Remove="DTO\**" />
|
||||||
|
<None Remove="Net\**" />
|
||||||
<None Remove="References\**" />
|
<None Remove="References\**" />
|
||||||
<None Remove="Resources\UI\**" />
|
<None Remove="Resources\UI\**" />
|
||||||
<None Remove="RyzStudio\**" />
|
<None Remove="RyzStudio\**" />
|
||||||
@ -56,6 +64,7 @@
|
|||||||
<Compile Remove="Models\TileModel.cs" />
|
<Compile Remove="Models\TileModel.cs" />
|
||||||
<Compile Remove="NewForm.cs" />
|
<Compile Remove="NewForm.cs" />
|
||||||
<Compile Remove="OpenFileForm.cs" />
|
<Compile Remove="OpenFileForm.cs" />
|
||||||
|
<Compile Remove="PasswordForm.cs" />
|
||||||
<Compile Remove="Windows\Forms\BookmarkTreeViewSNode.cs" />
|
<Compile Remove="Windows\Forms\BookmarkTreeViewSNode.cs" />
|
||||||
<Compile Remove="Windows\Forms\EditGroupForm.cs" />
|
<Compile Remove="Windows\Forms\EditGroupForm.cs" />
|
||||||
<Compile Remove="Windows\Forms\EditTileFolderForm.cs" />
|
<Compile Remove="Windows\Forms\EditTileFolderForm.cs" />
|
||||||
@ -70,6 +79,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Remove="NewForm.resx" />
|
<EmbeddedResource Remove="NewForm.resx" />
|
||||||
<EmbeddedResource Remove="OpenFileForm.resx" />
|
<EmbeddedResource Remove="OpenFileForm.resx" />
|
||||||
|
<EmbeddedResource Remove="PasswordForm.resx" />
|
||||||
<EmbeddedResource Remove="Windows\Forms\EditGroupForm.resx" />
|
<EmbeddedResource Remove="Windows\Forms\EditGroupForm.resx" />
|
||||||
<EmbeddedResource Remove="Windows\Forms\EditTileFolderForm.resx" />
|
<EmbeddedResource Remove="Windows\Forms\EditTileFolderForm.resx" />
|
||||||
<EmbeddedResource Remove="Windows\Forms\EditTileForm.resx" />
|
<EmbeddedResource Remove="Windows\Forms\EditTileForm.resx" />
|
||||||
@ -87,8 +97,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="RyzStudio\IO\FileType.cs" />
|
<Content Include="favicon.ico" />
|
||||||
<Compile Include="RyzStudio\IO\SharpZipLib.cs" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -99,8 +108,7 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="UpdateIconsForm.cs" />
|
<Compile Update="UpdateIconsForm.cs" />
|
||||||
<Compile Update="FindForm.cs" />
|
<Compile Update="FindForm.cs" />
|
||||||
<Compile Update="BookmarkForm.cs" />
|
<Compile Update="EditBookmarkForm.cs" />
|
||||||
<Compile Update="PasswordForm.cs" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -111,19 +119,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.46" />
|
<PackageReference Include="HtmlAgilityPack" Version="1.11.61" />
|
||||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="5.0.10" />
|
<PackageReference Include="RyzStudio" Version="8.1.2.249" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.614" />
|
||||||
<PackageReference Include="SharpZipLib" Version="1.3.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Ryz3core">
|
|
||||||
<HintPath>References\Ryz3core.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Ryz3ui">
|
|
||||||
<HintPath>References\Ryz3ui.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
@ -1,15 +0,0 @@
|
|||||||
using bzit.bomg.Models;
|
|
||||||
using System.Drawing;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class BookmarkResult
|
|
||||||
{
|
|
||||||
public BookmarkItem Item { get; set; } = null;
|
|
||||||
|
|
||||||
public string IconURL { get; set; } = null;
|
|
||||||
|
|
||||||
public Image Icon { get; set; } = null;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Security.Cryptography;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class Crypto
|
|
||||||
{
|
|
||||||
public static string GetSHA256Hash(string text)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(text)) return string.Empty;
|
|
||||||
|
|
||||||
using (var sha = SHA256.Create())
|
|
||||||
{
|
|
||||||
byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(text));
|
|
||||||
|
|
||||||
return BitConverter.ToString(hash).Replace("-", string.Empty) + "+" + text.Length.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,220 +0,0 @@
|
|||||||
using Microsoft.Data.Sqlite;
|
|
||||||
using System;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class IconDatabase
|
|
||||||
{
|
|
||||||
protected string dbFilename = null;
|
|
||||||
protected SqliteConnection dbConnection = null;
|
|
||||||
|
|
||||||
|
|
||||||
public IconDatabase(string filename)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(filename)) return;
|
|
||||||
|
|
||||||
dbFilename = filename;
|
|
||||||
|
|
||||||
bool isNew = !File.Exists(dbFilename);
|
|
||||||
|
|
||||||
SqliteConnectionStringBuilder builder = new SqliteConnectionStringBuilder();
|
|
||||||
builder.DataSource = dbFilename;
|
|
||||||
builder.Cache = SqliteCacheMode.Private;
|
|
||||||
builder.Mode = SqliteOpenMode.ReadWriteCreate;
|
|
||||||
|
|
||||||
dbConnection = new SqliteConnection(builder.ToString());
|
|
||||||
dbConnection.Open();
|
|
||||||
|
|
||||||
if (isNew) Initialise();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool AddIcon(string id, Image image)
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return false;
|
|
||||||
if (string.IsNullOrWhiteSpace(id)) return false;
|
|
||||||
|
|
||||||
if (image == null) return DeleteIcon(id);
|
|
||||||
if (HasIcon(id)) return UpdateIcon(id, image);
|
|
||||||
|
|
||||||
SqliteCommand command = new SqliteCommand();
|
|
||||||
command.Connection = dbConnection;
|
|
||||||
command.CommandText = "INSERT INTO icons (id, content) VALUES (@id, @content)";
|
|
||||||
command.Parameters.Add("@id", SqliteType.Text).Value = id;
|
|
||||||
command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close()
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return;
|
|
||||||
|
|
||||||
dbConnection.Close();
|
|
||||||
dbConnection.Dispose();
|
|
||||||
dbConnection = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DeleteIcon(string id)
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return false;
|
|
||||||
if (string.IsNullOrWhiteSpace(id)) return false;
|
|
||||||
|
|
||||||
SqliteCommand command = new SqliteCommand();
|
|
||||||
command.Connection = dbConnection;
|
|
||||||
command.CommandText = "DELETE FROM icons WHERE id = @id";
|
|
||||||
command.Parameters.Add("@id", SqliteType.Text).Value = id;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Image FindIcon(string id)
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return null;
|
|
||||||
if (string.IsNullOrWhiteSpace(id)) return null;
|
|
||||||
|
|
||||||
if (!HasIcon(id)) return null;
|
|
||||||
|
|
||||||
byte[] iconBytes = null;
|
|
||||||
|
|
||||||
SqliteCommand command = new SqliteCommand();
|
|
||||||
command.Connection = dbConnection;
|
|
||||||
command.CommandText = "SELECT content FROM icons WHERE id = @id";
|
|
||||||
command.Parameters.Add("@id", SqliteType.Text).Value = id;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var rs = command.ExecuteScalar();
|
|
||||||
if (rs != null)
|
|
||||||
{
|
|
||||||
iconBytes = (byte[])rs;
|
|
||||||
}
|
|
||||||
|
|
||||||
command.Dispose();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iconBytes == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Image img = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
img = Image.FromStream(new MemoryStream(iconBytes));
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return img;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool HasIcon(string id)
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return false;
|
|
||||||
if (string.IsNullOrWhiteSpace(id)) return false;
|
|
||||||
|
|
||||||
string rs = string.Empty;
|
|
||||||
|
|
||||||
SqliteCommand command = new SqliteCommand();
|
|
||||||
command.Connection = dbConnection;
|
|
||||||
command.CommandText = "SELECT COUNT(1) AS count FROM icons WHERE id = @id";
|
|
||||||
command.Parameters.Add("@id", SqliteType.Text).Value = id;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
rs = command.ExecuteScalar()?.ToString() ?? string.Empty;
|
|
||||||
|
|
||||||
command.Dispose();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int rv;
|
|
||||||
if (!int.TryParse(rs, out rv)) rv = 0;
|
|
||||||
|
|
||||||
return (rv > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool UpdateIcon(string id, Image image)
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return false;
|
|
||||||
if (string.IsNullOrWhiteSpace(id)) return false;
|
|
||||||
|
|
||||||
if (image == null) return DeleteIcon(id);
|
|
||||||
if (!HasIcon(id)) return AddIcon(id, image);
|
|
||||||
|
|
||||||
SqliteCommand command = new SqliteCommand();
|
|
||||||
command.Connection = dbConnection;
|
|
||||||
command.CommandText = "UPDATE icons SET content = @content WHERE id = @id";
|
|
||||||
command.Parameters.Add("@id", SqliteType.Text).Value = id;
|
|
||||||
command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected bool Initialise()
|
|
||||||
{
|
|
||||||
if (dbConnection == null) return false;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
SqliteCommand command = new SqliteCommand("CREATE TABLE icons (id TEXT PRIMARY KEY, content BLOB)", dbConnection);
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
command.Dispose();
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected byte[] ImageToBytes(Image image)
|
|
||||||
{
|
|
||||||
ImageConverter imageConverter = new ImageConverter();
|
|
||||||
return (byte[])imageConverter.ConvertTo(image, typeof(byte[]));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class Result
|
|
||||||
{
|
|
||||||
public static Result Create() => new Result()
|
|
||||||
{
|
|
||||||
IsSuccess = true,
|
|
||||||
Message = null
|
|
||||||
};
|
|
||||||
|
|
||||||
public static Result Create(bool isSuccess) => new Result()
|
|
||||||
{
|
|
||||||
IsSuccess = isSuccess,
|
|
||||||
Message = null
|
|
||||||
};
|
|
||||||
|
|
||||||
public static Result Create(bool isSuccess, string message) => new Result()
|
|
||||||
{
|
|
||||||
IsSuccess = isSuccess,
|
|
||||||
Message = message
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
public bool IsSuccess { get; set; } = false;
|
|
||||||
|
|
||||||
public string Message { get; set; }
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public interface ISupportedFile
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
bool IsEncryptionSupported { get; set; }
|
|
||||||
|
|
||||||
List<string> SupportedExtensions { get; }
|
|
||||||
|
|
||||||
bool IsSupported(string filename);
|
|
||||||
|
|
||||||
bool IsEncrypted(string filename);
|
|
||||||
|
|
||||||
Result Load(BookmarkTreeView treeview, string filename, string password);
|
|
||||||
|
|
||||||
Result Save(BookmarkTreeView treeview, string filename, string password);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,83 +0,0 @@
|
|||||||
using bzit.bomg.Models;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using RyzStudio.IO;
|
|
||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class JSNXSupportedFile : SupportedFileBase
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public JSNXSupportedFile()
|
|
||||||
{
|
|
||||||
supportedExtensions = new List<string>() { ".jsnx" };
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public override bool IsEncryptionSupported { get; set; } = true;
|
|
||||||
|
|
||||||
public override bool IsEncrypted(string filename) => SharpZipLib.IsZipEncrypted(filename);
|
|
||||||
|
|
||||||
public override Result Load(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
treeview.Clear();
|
|
||||||
|
|
||||||
if (!SharpZipLib.TestArchive(filename, password))
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, is password correct?");
|
|
||||||
}
|
|
||||||
|
|
||||||
string sourceCode = SharpZipLib.ReadSingle(filename, password, "bookmarks.json");
|
|
||||||
if (string.IsNullOrWhiteSpace(sourceCode))
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, unexpected format");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<BookmarkItem> rs = JsonConvert.DeserializeObject<List<BookmarkItem>>(sourceCode);
|
|
||||||
if (rs == null)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, incorrect format");
|
|
||||||
}
|
|
||||||
|
|
||||||
//// load bookmark items
|
|
||||||
//ThreadControl.SetValue(progressBar1, 0, rs.Count);
|
|
||||||
|
|
||||||
for (int i = 0; i < rs.Count; i++)
|
|
||||||
{
|
|
||||||
// ThreadControl.SetValue(progressBar1, (i + 1));
|
|
||||||
|
|
||||||
if (treeview.InvokeRequired)
|
|
||||||
{
|
|
||||||
treeview.Invoke(new MethodInvoker(() => {
|
|
||||||
treeview.AddItem(rs[i]);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
treeview.AddItem(rs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//treeview.SetNoChanges();
|
|
||||||
|
|
||||||
return Result.Create(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override Result Save(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
List<BookmarkItem> rs = treeview.GetBookmarkList();
|
|
||||||
if (rs.Count <= 0)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "No bookmarks to save");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool rv = SharpZipLib.CreateSingle(filename, password, "bookmarks.json", JsonConvert.SerializeObject(rs));
|
|
||||||
|
|
||||||
return Result.Create(rv);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
using bzit.bomg.Models;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using RyzStudio.IO;
|
|
||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class JSONSupportedFile : SupportedFileBase
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public JSONSupportedFile()
|
|
||||||
{
|
|
||||||
supportedExtensions = new List<string>() { ".json" };
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public override bool IsEncryptionSupported { get; set; } = false;
|
|
||||||
|
|
||||||
public override bool IsEncrypted(string filename) => false;
|
|
||||||
|
|
||||||
public override Result Load(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
treeview.Clear();
|
|
||||||
|
|
||||||
string sourceCode = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
sourceCode = System.IO.File.ReadAllText(filename);
|
|
||||||
}
|
|
||||||
catch (Exception exc)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file (" + exc.Message + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(sourceCode))
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, unexpected format");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<BookmarkItem> rs = JsonConvert.DeserializeObject<List<BookmarkItem>>(sourceCode);
|
|
||||||
if (rs == null)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, incorrect format");
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < rs.Count; i++)
|
|
||||||
{
|
|
||||||
if (treeview.InvokeRequired)
|
|
||||||
{
|
|
||||||
treeview.Invoke(new MethodInvoker(() => {
|
|
||||||
treeview.AddItem(rs[i]);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
treeview.AddItem(rs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result.Create(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override Result Save(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
List<BookmarkItem> rs = treeview.GetBookmarkList();
|
|
||||||
if (rs.Count <= 0)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "No bookmarks to save");
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
System.IO.File.WriteAllText(filename, JsonConvert.SerializeObject(rs));
|
|
||||||
}
|
|
||||||
catch (Exception exc)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not write file (" + exc.Message + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result.Create(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,176 +0,0 @@
|
|||||||
using bzit.bomg.Models;
|
|
||||||
using RyzStudio.IO;
|
|
||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Text;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.Xml;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class RYZSupportedFile : SupportedFileBase
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public RYZSupportedFile()
|
|
||||||
{
|
|
||||||
supportedExtensions = new List<string>() { ".ryz" };
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public override bool IsEncryptionSupported { get; set; } = true;
|
|
||||||
|
|
||||||
public override bool IsEncrypted(string filename) => SharpZipLib.IsZipEncrypted(filename);
|
|
||||||
|
|
||||||
public override Result Load(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
treeview.Clear();
|
|
||||||
|
|
||||||
if (!SharpZipLib.TestArchive(filename, password))
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, is password correct?");
|
|
||||||
}
|
|
||||||
|
|
||||||
string sourceCode = SharpZipLib.ReadSingle(filename, password, "bookmarks.xml");
|
|
||||||
if (string.IsNullOrWhiteSpace(sourceCode))
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not read file, unexpected format");
|
|
||||||
}
|
|
||||||
|
|
||||||
// load xml
|
|
||||||
XmlDocument xmlDocument = new XmlDocument();
|
|
||||||
xmlDocument.LoadXml(sourceCode);
|
|
||||||
|
|
||||||
// parse
|
|
||||||
XmlNode xnl = xmlDocument.SelectSingleNode("bomg/b/g");
|
|
||||||
if (xnl == null)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "Could not load file, unexpected format");
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
BookmarkItem item = new BookmarkItem();
|
|
||||||
|
|
||||||
foreach (XmlNode xn2 in xn.ChildNodes)
|
|
||||||
{
|
|
||||||
switch (xn2.LocalName)
|
|
||||||
{
|
|
||||||
case "name":
|
|
||||||
item.SiteName = xn2.InnerText?.Trim();
|
|
||||||
break;
|
|
||||||
case "address":
|
|
||||||
item.SiteAddress = xn2.InnerText?.Trim();
|
|
||||||
break;
|
|
||||||
case "description":
|
|
||||||
item.SiteDescription = xn2.InnerText?.Trim();
|
|
||||||
break;
|
|
||||||
case "notes":
|
|
||||||
item.Notes = xn2.InnerText?.Trim();
|
|
||||||
break;
|
|
||||||
//case "created":
|
|
||||||
// bi.Created = xn2.InnerText?.Trim();
|
|
||||||
// break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// fix fullpath and name
|
|
||||||
if (item.SiteName.Contains("|"))
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.Append("\\");
|
|
||||||
sb.Append(System.Web.HttpUtility.UrlEncode(rootName));
|
|
||||||
sb.Append("\\");
|
|
||||||
|
|
||||||
string[] pathParts = item.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("\\");
|
|
||||||
}
|
|
||||||
|
|
||||||
item.SiteName = System.Web.HttpUtility.UrlDecode(pathParts[(pathParts.Length - 1)] ?? string.Empty);
|
|
||||||
item.TreeviewPath = sb.ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item.SiteName = System.Web.HttpUtility.UrlDecode(item.SiteName);
|
|
||||||
item.TreeviewPath = string.Format("\\{0}\\", System.Web.HttpUtility.UrlEncode(rootName));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (treeview.InvokeRequired)
|
|
||||||
{
|
|
||||||
treeview.Invoke(new MethodInvoker(() =>
|
|
||||||
{
|
|
||||||
treeview.AddItem(item);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
treeview.AddItem(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result.Create(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override Result Save(BookmarkTreeView treeview, string filename, string password)
|
|
||||||
{
|
|
||||||
List<BookmarkItem> rs = treeview.GetBookmarkList();
|
|
||||||
if (rs.Count <= 0)
|
|
||||||
{
|
|
||||||
return Result.Create(false, "No bookmarks to save");
|
|
||||||
}
|
|
||||||
|
|
||||||
return Result.Create(false, "Saving in this format is no longer supported");
|
|
||||||
|
|
||||||
//MemoryStream ms = new MemoryStream();
|
|
||||||
//XmlTextWriter writer = new XmlTextWriter(ms, Encoding.UTF8);
|
|
||||||
|
|
||||||
//writer.Formatting = Formatting.Indented;
|
|
||||||
//writer.WriteStartDocument();
|
|
||||||
//writer.WriteStartElement("bomg");
|
|
||||||
//writer.WriteStartElement("b");
|
|
||||||
//writer.WriteStartElement("g");
|
|
||||||
//writer.WriteAttributeString("name", treeview.Nodes[0].Text);
|
|
||||||
|
|
||||||
//foreach (BookmarkItem item in rs)
|
|
||||||
//{
|
|
||||||
// writer.WriteStartElement("m");
|
|
||||||
// writer.WriteElementString("name", item.TreeviewPath);
|
|
||||||
// writer.WriteElementString("address", item.SiteAddress);
|
|
||||||
// writer.WriteElementString("description", item.SiteDescription);
|
|
||||||
// writer.WriteElementString("created", "200101010000");
|
|
||||||
// writer.WriteEndElement();
|
|
||||||
//}
|
|
||||||
|
|
||||||
//writer.WriteEndElement();
|
|
||||||
//writer.WriteEndElement();
|
|
||||||
//writer.WriteEndElement();
|
|
||||||
//writer.WriteEndDocument();
|
|
||||||
//writer.Flush();
|
|
||||||
|
|
||||||
//ms.Position = 0;
|
|
||||||
//StreamReader sr = new StreamReader(ms);
|
|
||||||
|
|
||||||
//string sourceCode = sr.ReadToEnd();
|
|
||||||
|
|
||||||
//sr.Close();
|
|
||||||
//sr.Dispose();
|
|
||||||
|
|
||||||
//writer.Close();
|
|
||||||
//writer.Dispose();
|
|
||||||
|
|
||||||
//bool rv = SharpZipLib.CreateSingle(filename, password, "bookmarks.xml", sourceCode);
|
|
||||||
|
|
||||||
//return Result.Create(rv);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
using RyzStudio.Windows.Forms;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public abstract class SupportedFileBase : ISupportedFile
|
|
||||||
{
|
|
||||||
protected List<string> supportedExtensions = new List<string>();
|
|
||||||
|
|
||||||
|
|
||||||
public SupportedFileBase()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public virtual bool IsEncryptionSupported { get; set; } = false;
|
|
||||||
|
|
||||||
public List<string> SupportedExtensions { get => supportedExtensions; }
|
|
||||||
|
|
||||||
|
|
||||||
public virtual bool IsSupported(string filename)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(filename))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportedExtensions == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportedExtensions.Count <= 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return supportedExtensions.Contains(Path.GetExtension(filename)?.Trim()?.ToLower());
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual bool IsEncrypted(string filename) => false;
|
|
||||||
|
|
||||||
public virtual Result Load(BookmarkTreeView treeview, string filename, string password) => Result.Create(false);
|
|
||||||
|
|
||||||
public virtual Result Save(BookmarkTreeView treeview, string filename, string password) => Result.Create(false);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
431
EditBookmarkForm.cs
Normal file
431
EditBookmarkForm.cs
Normal file
@ -0,0 +1,431 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using BookmarkManager.Services;
|
||||||
|
using bzit.bomg.Models;
|
||||||
|
using RyzStudio.Windows.Forms;
|
||||||
|
using RyzStudio.Windows.ThemedForms;
|
||||||
|
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
|
||||||
|
|
||||||
|
namespace FizzyLauncher
|
||||||
|
{
|
||||||
|
public class EditBookmarkForm : Form
|
||||||
|
{
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private ThClearableTextBox textBox1;
|
||||||
|
private Label label2;
|
||||||
|
private Label label3;
|
||||||
|
private ThToolbarMemoBox memoBox1;
|
||||||
|
private Label label4;
|
||||||
|
private ThHiButtonTextBox textBox2;
|
||||||
|
private PictureBox pictureBox1;
|
||||||
|
private PictureBox pictureBox2;
|
||||||
|
private ToolTip toolTip1;
|
||||||
|
private System.ComponentModel.IContainer components;
|
||||||
|
private ThClearableTextBox textBox3;
|
||||||
|
private ThUserControl thUserControl1;
|
||||||
|
private Label label5;
|
||||||
|
|
||||||
|
|
||||||
|
private readonly WebProvider _webProvider;
|
||||||
|
private BookmarkModel result = null;
|
||||||
|
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||||
|
private bool _isBusy = false;
|
||||||
|
|
||||||
|
|
||||||
|
public EditBookmarkForm(BookmarkModel model = null)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
UISetup.Dialog(this);
|
||||||
|
|
||||||
|
this.Text = (result == null) ? "Add Bookmark" : "Edit Bookmark";
|
||||||
|
|
||||||
|
result = model;
|
||||||
|
|
||||||
|
_webProvider = new WebProvider();
|
||||||
|
_webProvider.IgnoreSSL = true;
|
||||||
|
|
||||||
|
if (result != null)
|
||||||
|
{
|
||||||
|
textBox1.Text = model.Title?.Trim() ?? string.Empty;
|
||||||
|
textBox2.Text = model.Address?.Trim() ?? string.Empty;
|
||||||
|
textBox3.Text = model.Description?.Trim() ?? string.Empty;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pictureBox1.Image = model.Icon;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
memoBox1.Text = model.Notes?.Trim() ?? string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
components = new System.ComponentModel.Container();
|
||||||
|
label1 = new Label();
|
||||||
|
textBox1 = new ThClearableTextBox();
|
||||||
|
label2 = new Label();
|
||||||
|
label3 = new Label();
|
||||||
|
memoBox1 = new ThToolbarMemoBox();
|
||||||
|
label4 = new Label();
|
||||||
|
textBox2 = new ThHiButtonTextBox();
|
||||||
|
pictureBox1 = new PictureBox();
|
||||||
|
toolTip1 = new ToolTip(components);
|
||||||
|
pictureBox2 = new PictureBox();
|
||||||
|
textBox3 = new ThClearableTextBox();
|
||||||
|
thUserControl1 = new ThUserControl();
|
||||||
|
label5 = new Label();
|
||||||
|
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.BackColor = Color.Transparent;
|
||||||
|
label1.ForeColor = SystemColors.ControlText;
|
||||||
|
label1.Location = new Point(10, 21);
|
||||||
|
label1.Margin = new Padding(0);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label1.Size = new Size(29, 23);
|
||||||
|
label1.TabIndex = 153;
|
||||||
|
label1.Text = "Title";
|
||||||
|
label1.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
textBox1.BackColor = Color.Transparent;
|
||||||
|
textBox1.ClearedValue = "";
|
||||||
|
textBox1.EnableReactiveVisual = true;
|
||||||
|
textBox1.Font = new Font("Segoe UI", 9F);
|
||||||
|
textBox1.Icon = "O";
|
||||||
|
textBox1.IconSize = 13F;
|
||||||
|
textBox1.Location = new Point(109, 20);
|
||||||
|
textBox1.Name = "textBox1";
|
||||||
|
textBox1.Size = new Size(260, 32);
|
||||||
|
textBox1.TabIndex = 0;
|
||||||
|
textBox1.TabStop = false;
|
||||||
|
textBox1.UseSystemPasswordChar = false;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.BackColor = Color.Transparent;
|
||||||
|
label2.ForeColor = SystemColors.ControlText;
|
||||||
|
label2.Location = new Point(10, 61);
|
||||||
|
label2.Margin = new Padding(0);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label2.Size = new Size(49, 23);
|
||||||
|
label2.TabIndex = 193;
|
||||||
|
label2.Text = "Address";
|
||||||
|
label2.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
label3.AutoSize = true;
|
||||||
|
label3.BackColor = Color.Transparent;
|
||||||
|
label3.ForeColor = SystemColors.ControlText;
|
||||||
|
label3.Location = new Point(10, 104);
|
||||||
|
label3.Margin = new Padding(0);
|
||||||
|
label3.Name = "label3";
|
||||||
|
label3.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label3.Size = new Size(67, 23);
|
||||||
|
label3.TabIndex = 195;
|
||||||
|
label3.Text = "Description";
|
||||||
|
label3.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// memoBox1
|
||||||
|
//
|
||||||
|
memoBox1.AllowDrop = true;
|
||||||
|
memoBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
memoBox1.BackColor = Color.Transparent;
|
||||||
|
memoBox1.ClearedValue = "";
|
||||||
|
memoBox1.EnableReactiveVisual = true;
|
||||||
|
memoBox1.Font = new Font("Segoe UI", 9F);
|
||||||
|
memoBox1.Location = new Point(110, 196);
|
||||||
|
memoBox1.Name = "memoBox1";
|
||||||
|
memoBox1.ReadOnly = false;
|
||||||
|
memoBox1.ScrollBars = ScrollBars.Vertical;
|
||||||
|
memoBox1.Size = new Size(259, 232);
|
||||||
|
memoBox1.TabIndex = 3;
|
||||||
|
memoBox1.TabStop = false;
|
||||||
|
memoBox1.WordWrap = false;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
label4.AutoSize = true;
|
||||||
|
label4.BackColor = Color.Transparent;
|
||||||
|
label4.ForeColor = SystemColors.ControlText;
|
||||||
|
label4.Location = new Point(10, 196);
|
||||||
|
label4.Margin = new Padding(0);
|
||||||
|
label4.Name = "label4";
|
||||||
|
label4.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label4.Size = new Size(38, 23);
|
||||||
|
label4.TabIndex = 198;
|
||||||
|
label4.Text = "Notes";
|
||||||
|
label4.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// textBox2
|
||||||
|
//
|
||||||
|
textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
textBox2.BackColor = Color.Transparent;
|
||||||
|
textBox2.EnableReactiveVisual = true;
|
||||||
|
textBox2.Font = new Font("Segoe UI", 9F);
|
||||||
|
textBox2.Icon = "M";
|
||||||
|
textBox2.IconSize = 13F;
|
||||||
|
textBox2.Location = new Point(110, 62);
|
||||||
|
textBox2.Name = "textBox2";
|
||||||
|
textBox2.Size = new Size(259, 32);
|
||||||
|
textBox2.TabIndex = 1;
|
||||||
|
textBox2.TabStop = false;
|
||||||
|
textBox2.UseSystemPasswordChar = false;
|
||||||
|
textBox2.OnButtonClick += textBox2_OnButtonClick;
|
||||||
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
pictureBox1.BackColor = Color.White;
|
||||||
|
pictureBox1.ErrorImage = null;
|
||||||
|
pictureBox1.InitialImage = null;
|
||||||
|
pictureBox1.Location = new Point(113, 150);
|
||||||
|
pictureBox1.Name = "pictureBox1";
|
||||||
|
pictureBox1.Size = new Size(32, 32);
|
||||||
|
pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
|
||||||
|
pictureBox1.TabIndex = 201;
|
||||||
|
pictureBox1.TabStop = false;
|
||||||
|
pictureBox1.MouseDoubleClick += pictureBox1_MouseDoubleClick;
|
||||||
|
//
|
||||||
|
// pictureBox2
|
||||||
|
//
|
||||||
|
pictureBox2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
|
pictureBox2.BackColor = Color.Transparent;
|
||||||
|
pictureBox2.ErrorImage = null;
|
||||||
|
pictureBox2.InitialImage = null;
|
||||||
|
pictureBox2.Location = new Point(10, 396);
|
||||||
|
pictureBox2.Name = "pictureBox2";
|
||||||
|
pictureBox2.Size = new Size(32, 32);
|
||||||
|
pictureBox2.SizeMode = PictureBoxSizeMode.CenterImage;
|
||||||
|
pictureBox2.TabIndex = 202;
|
||||||
|
pictureBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// textBox3
|
||||||
|
//
|
||||||
|
textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
textBox3.BackColor = Color.Transparent;
|
||||||
|
textBox3.ClearedValue = "";
|
||||||
|
textBox3.EnableReactiveVisual = true;
|
||||||
|
textBox3.Font = new Font("Segoe UI", 9F);
|
||||||
|
textBox3.Icon = "O";
|
||||||
|
textBox3.IconSize = 13F;
|
||||||
|
textBox3.Location = new Point(109, 104);
|
||||||
|
textBox3.Name = "textBox3";
|
||||||
|
textBox3.Size = new Size(260, 32);
|
||||||
|
textBox3.TabIndex = 203;
|
||||||
|
textBox3.TabStop = false;
|
||||||
|
textBox3.UseSystemPasswordChar = false;
|
||||||
|
//
|
||||||
|
// thUserControl1
|
||||||
|
//
|
||||||
|
thUserControl1.BackColor = Color.Transparent;
|
||||||
|
thUserControl1.EnableReactiveVisual = true;
|
||||||
|
thUserControl1.Location = new Point(109, 146);
|
||||||
|
thUserControl1.Name = "thUserControl1";
|
||||||
|
thUserControl1.Size = new Size(40, 40);
|
||||||
|
thUserControl1.TabIndex = 204;
|
||||||
|
thUserControl1.TabStop = false;
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
label5.AutoSize = true;
|
||||||
|
label5.BackColor = Color.Transparent;
|
||||||
|
label5.ForeColor = SystemColors.ControlText;
|
||||||
|
label5.Location = new Point(10, 146);
|
||||||
|
label5.Margin = new Padding(0);
|
||||||
|
label5.Name = "label5";
|
||||||
|
label5.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label5.Size = new Size(30, 23);
|
||||||
|
label5.TabIndex = 195;
|
||||||
|
label5.Text = "Icon";
|
||||||
|
label5.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// dialogFooter1
|
||||||
|
//
|
||||||
|
dialogFooter1.BackColor = Color.FromArgb(240, 240, 240);
|
||||||
|
dialogFooter1.Button1Text = "&OK";
|
||||||
|
dialogFooter1.Dialog = this;
|
||||||
|
dialogFooter1.Dock = DockStyle.Bottom;
|
||||||
|
dialogFooter1.Location = new Point(0, 437);
|
||||||
|
dialogFooter1.Name = "dialogFooter1";
|
||||||
|
dialogFooter1.Size = new Size(384, 84);
|
||||||
|
//
|
||||||
|
// EditBookmarkForm
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
BackColor = Color.White;
|
||||||
|
ClientSize = new Size(384, 521);
|
||||||
|
Controls.Add(dialogFooter1);
|
||||||
|
Controls.Add(textBox3);
|
||||||
|
Controls.Add(pictureBox2);
|
||||||
|
Controls.Add(pictureBox1);
|
||||||
|
Controls.Add(textBox2);
|
||||||
|
Controls.Add(memoBox1);
|
||||||
|
Controls.Add(label4);
|
||||||
|
Controls.Add(label5);
|
||||||
|
Controls.Add(label3);
|
||||||
|
Controls.Add(label2);
|
||||||
|
Controls.Add(textBox1);
|
||||||
|
Controls.Add(label1);
|
||||||
|
Controls.Add(thUserControl1);
|
||||||
|
KeyPreview = true;
|
||||||
|
MinimumSize = new Size(400, 560);
|
||||||
|
Name = "EditBookmarkForm";
|
||||||
|
Text = "Edit Bookmark";
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnShown(EventArgs e)
|
||||||
|
{
|
||||||
|
base.OnShown(e);
|
||||||
|
|
||||||
|
textBox2.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnClosing(CancelEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnClosing(e);
|
||||||
|
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
e.Cancel = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BookmarkModel Result
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (result == null)
|
||||||
|
{
|
||||||
|
result = new BookmarkModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
result.Title = textBox1.Text?.Trim() ?? string.Empty;
|
||||||
|
result.Address = textBox2.Text?.Trim() ?? string.Empty;
|
||||||
|
result.Description = textBox3.Text?.Trim() ?? string.Empty;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result.Icon = pictureBox1.Image;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
result.Notes = memoBox1.Text?.Trim() ?? string.Empty;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool IsBusy
|
||||||
|
{
|
||||||
|
get => _isBusy;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_isBusy = value;
|
||||||
|
|
||||||
|
UIControl.SetEnable(textBox1, !this.IsBusy);
|
||||||
|
UIControl.SetEnable(textBox2, !this.IsBusy);
|
||||||
|
UIControl.SetEnable(textBox3, !this.IsBusy);
|
||||||
|
UIControl.SetValue(pictureBox2, (this.IsBusy ? RyzStudio.Windows.ThemedForms.Resource2.loading_block : null));
|
||||||
|
UIControl.SetEnable(memoBox1, !this.IsBusy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private async void textBox2_OnButtonClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(textBox2.Text))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.IsBusy = true;
|
||||||
|
|
||||||
|
if (!textBox2.Text.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) && !textBox2.Text.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
textBox2.Text = "http://" + textBox2.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
var document = await _webProvider.RetrieveHtmlDocument(textBox2.Text);
|
||||||
|
if (document == null)
|
||||||
|
{
|
||||||
|
this.IsBusy = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
textBox1.Text = _webProvider.ParseTitle(document);
|
||||||
|
textBox3.Text = _webProvider.ParseMetaDescription(document);
|
||||||
|
pictureBox1.Image = await _webProvider.RetrieveImage(document);
|
||||||
|
|
||||||
|
this.IsBusy = false;
|
||||||
|
|
||||||
|
textBox2.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void pictureBox1_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Button == MouseButtons.Left)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(textBox2.Text))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.IsBusy = true;
|
||||||
|
|
||||||
|
if (!textBox2.Text.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) && !textBox2.Text.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
textBox2.Text = "http://" + textBox2.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
var document = await _webProvider.RetrieveHtmlDocument(textBox2.Text);
|
||||||
|
if (document == null)
|
||||||
|
{
|
||||||
|
this.IsBusy = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pictureBox1.Image = await _webProvider.RetrieveImage(document);
|
||||||
|
|
||||||
|
this.IsBusy = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
125
FindForm.cs
125
FindForm.cs
@ -1,28 +1,36 @@
|
|||||||
using RyzStudio.Windows.Forms;
|
using System;
|
||||||
using RyzStudio.Windows.ThemedForms;
|
using System.Collections.Generic;
|
||||||
using System;
|
using System.Linq;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using bzit.bomg.Models;
|
||||||
|
using RyzStudio.Windows.Forms;
|
||||||
|
using RyzStudio.Windows.ThemedForms;
|
||||||
|
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
|
||||||
|
|
||||||
namespace FizzyLauncher
|
namespace FizzyLauncher
|
||||||
{
|
{
|
||||||
public class FindForm : TDialogForm
|
public class FindForm : Form
|
||||||
{
|
{
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private TButton button2;
|
private ThButton button2;
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
||||||
private TButton button1;
|
private ThButton button1;
|
||||||
private TTextBox textBox1;
|
private ThClearableTextBox textBox1;
|
||||||
|
|
||||||
|
|
||||||
private BookmarkTreeView treeView1 = null;
|
private BookmarkTreeView treeView1 = null;
|
||||||
private bool findNextNew = false;
|
private int findPosition = -1;
|
||||||
|
|
||||||
|
|
||||||
public FindForm(BookmarkTreeView treeView)
|
public FindForm(BookmarkTreeView treeView)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = true;
|
||||||
|
|
||||||
treeView1 = treeView;
|
treeView1 = treeView;
|
||||||
|
|
||||||
textBox1.PreviewKeyDown += textBox1_PreviewKeyDown;
|
textBox1.PreviewKeyDown += textBox1_PreviewKeyDown;
|
||||||
@ -31,10 +39,10 @@ namespace FizzyLauncher
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.button2 = new RyzStudio.Windows.ThemedForms.TButton();
|
this.button2 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
this.textBox1 = new ThClearableTextBox();
|
||||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
this.button1 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
@ -92,10 +100,7 @@ namespace FizzyLauncher
|
|||||||
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||||
this.textBox1.Location = new System.Drawing.Point(121, 20);
|
this.textBox1.Location = new System.Drawing.Point(121, 20);
|
||||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.textBox1.Name = "textBox1";
|
this.textBox1.Name = "textBox1";
|
||||||
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
|
|
||||||
this.textBox1.ReadOnly = false;
|
|
||||||
this.textBox1.Size = new System.Drawing.Size(328, 35);
|
this.textBox1.Size = new System.Drawing.Size(328, 35);
|
||||||
this.textBox1.TabIndex = 0;
|
this.textBox1.TabIndex = 0;
|
||||||
this.textBox1.UseSystemPasswordChar = false;
|
this.textBox1.UseSystemPasswordChar = false;
|
||||||
@ -141,16 +146,12 @@ namespace FizzyLauncher
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Browsable(false)]
|
|
||||||
public string Password => textBox1.Text;
|
|
||||||
|
|
||||||
|
|
||||||
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||||
{
|
{
|
||||||
switch (e.KeyCode)
|
switch (e.KeyCode)
|
||||||
{
|
{
|
||||||
case Keys.Enter:
|
case Keys.Enter:
|
||||||
if (findNextNew)
|
if (findPosition < 0)
|
||||||
{
|
{
|
||||||
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
|
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
|
||||||
}
|
}
|
||||||
@ -163,37 +164,91 @@ namespace FizzyLauncher
|
|||||||
case Keys.Escape:
|
case Keys.Escape:
|
||||||
this.Close();
|
this.Close();
|
||||||
break;
|
break;
|
||||||
default: break;
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Find first.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
private void button1_MouseClick(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Button == MouseButtons.Left)
|
if (e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
|
if (string.IsNullOrWhiteSpace(textBox1.Text))
|
||||||
if (treeView1.Nodes.Count <= 0) return;
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
findNextNew = false;
|
if (treeView1.Nodes.Count <= 0)
|
||||||
treeView1.FindTextNode(treeView1.Nodes[0], textBox1.Text?.Trim());
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
findPosition = -1;
|
||||||
|
|
||||||
|
var nodeList = treeView1.ToNodeList<BookmarkModel>();
|
||||||
|
|
||||||
|
var node = nodeList.Where(x => x.Value.Title.Contains(textBox1.Text?.Trim())).Select(x => x.Key).FirstOrDefault();
|
||||||
|
if (node != null)
|
||||||
|
{
|
||||||
|
findPosition = 0;
|
||||||
|
|
||||||
|
treeView1.SelectedNode = node;
|
||||||
|
treeView1.SelectedNode.EnsureVisible();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Find next.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
private void button2_MouseClick(object sender, MouseEventArgs e)
|
private void button2_MouseClick(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Button == MouseButtons.Left)
|
if (e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
|
if (string.IsNullOrWhiteSpace(textBox1.Text))
|
||||||
if (treeView1.Nodes.Count <= 0) return;
|
|
||||||
|
|
||||||
if (treeView1.SelectedNode == null) treeView1.SelectedNode = treeView1.Nodes[0];
|
|
||||||
|
|
||||||
findNextNew = false;
|
|
||||||
|
|
||||||
bool rv = treeView1.FindTextNode(treeView1.SelectedNode, textBox1.Text?.Trim());
|
|
||||||
if (!rv)
|
|
||||||
{
|
{
|
||||||
findNextNew = true;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (treeView1.Nodes.Count <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (treeView1.SelectedNode == null)
|
||||||
|
{
|
||||||
|
treeView1.SelectedNode = treeView1.Nodes[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
var nodeList = treeView1.ToNodeList<BookmarkModel>();
|
||||||
|
|
||||||
|
var node = nodeList.Where(x => x.Value.Title.Contains(textBox1.Text?.Trim())).Select(x => x.Key)?.ToList() ?? new List<TreeNode>();
|
||||||
|
if (node != null)
|
||||||
|
{
|
||||||
|
//var pos = nodeList.FindIndex(x => x.Key == treeView1.SelectedNode);
|
||||||
|
//if (pos < 0)
|
||||||
|
//{
|
||||||
|
// findPosition = -1;
|
||||||
|
//} else {
|
||||||
|
// findPosition = pos;
|
||||||
|
//}
|
||||||
|
|
||||||
|
findPosition++;
|
||||||
|
|
||||||
|
if (findPosition >= node.Count)
|
||||||
|
{
|
||||||
|
findPosition = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
treeView1.SelectedNode = node[findPosition];
|
||||||
|
treeView1.SelectedNode.EnsureVisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
733
MainForm.Designer.cs
generated
733
MainForm.Designer.cs
generated
@ -32,604 +32,478 @@ namespace FizzyLauncher
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
|
toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.rootContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
rootContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||||
this.addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.folderContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
folderContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||||
this.addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.pageContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
pageContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||||
this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
|
||||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
menuStrip1.SuspendLayout();
|
||||||
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
|
rootContextMenu.SuspendLayout();
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
folderContextMenu.SuspendLayout();
|
||||||
this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
|
pageContextMenu.SuspendLayout();
|
||||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
SuspendLayout();
|
||||||
this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
|
|
||||||
this.menuStrip1.SuspendLayout();
|
|
||||||
this.rootContextMenu.SuspendLayout();
|
|
||||||
this.folderContextMenu.SuspendLayout();
|
|
||||||
this.pageContextMenu.SuspendLayout();
|
|
||||||
this.toolStrip1.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
//
|
||||||
// saveFileDialog1
|
// saveFileDialog1
|
||||||
//
|
//
|
||||||
this.saveFileDialog1.DefaultExt = "jsnx";
|
saveFileDialog1.DefaultExt = "jsnx";
|
||||||
this.saveFileDialog1.Filter = "Bookmarks files (*.jsnx)|*.jsnx|Bookmarks files (*.ryz)|*.ryz";
|
saveFileDialog1.Filter = "Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
|
||||||
this.saveFileDialog1.Title = "Save bookmarks file";
|
saveFileDialog1.Title = "Save bookmarks file";
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, toolStripMenuItem1, viewToolStripMenuItem, toolsToolStripMenuItem, helpToolStripMenuItem1 });
|
||||||
this.fileToolStripMenuItem,
|
menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.toolStripMenuItem1,
|
menuStrip1.Name = "menuStrip1";
|
||||||
this.viewToolStripMenuItem,
|
menuStrip1.Size = new System.Drawing.Size(300, 24);
|
||||||
this.toolsToolStripMenuItem,
|
menuStrip1.TabIndex = 2;
|
||||||
this.helpToolStripMenuItem1});
|
menuStrip1.MenuActivate += menuStrip1_MenuActivate;
|
||||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.menuStrip1.Name = "menuStrip1";
|
|
||||||
this.menuStrip1.Size = new System.Drawing.Size(300, 24);
|
|
||||||
this.menuStrip1.TabIndex = 2;
|
|
||||||
//
|
//
|
||||||
// fileToolStripMenuItem
|
// fileToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, closeToolStripMenuItem, toolStripMenuItem14, saveToolStripMenuItem, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
|
||||||
this.newToolStripMenuItem,
|
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||||
this.openToolStripMenuItem,
|
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||||
this.toolStripMenuItem13,
|
fileToolStripMenuItem.Text = "&File";
|
||||||
this.closeToolStripMenuItem,
|
|
||||||
this.toolStripMenuItem14,
|
|
||||||
this.saveToolStripMenuItem,
|
|
||||||
this.saveAsToolStripMenuItem,
|
|
||||||
this.toolStripMenuItem15,
|
|
||||||
this.exitToolStripMenuItem2});
|
|
||||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
|
||||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
|
||||||
this.fileToolStripMenuItem.Text = "&File";
|
|
||||||
//
|
//
|
||||||
// newToolStripMenuItem
|
// newToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.newToolStripMenuItem.Image = global::BookmarkManager.AppResource.file;
|
newToolStripMenuItem.Image = BookmarkManager.AppResource.file;
|
||||||
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
|
newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||||
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
|
||||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.newToolStripMenuItem.Text = "&New";
|
newToolStripMenuItem.Text = "&New";
|
||||||
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
|
newToolStripMenuItem.Click += newToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// openToolStripMenuItem
|
// openToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.openToolStripMenuItem.Image = global::BookmarkManager.AppResource.folder;
|
openToolStripMenuItem.Image = BookmarkManager.AppResource.folder;
|
||||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||||
this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
|
||||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.openToolStripMenuItem.Text = "&Open";
|
openToolStripMenuItem.Text = "&Open";
|
||||||
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
openToolStripMenuItem.Click += openToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem13
|
// toolStripMenuItem13
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem13.Name = "toolStripMenuItem13";
|
toolStripMenuItem13.Name = "toolStripMenuItem13";
|
||||||
this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
||||||
//
|
//
|
||||||
// closeToolStripMenuItem
|
// closeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
|
closeToolStripMenuItem.Name = "closeToolStripMenuItem";
|
||||||
this.closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.closeToolStripMenuItem.Text = "&Close";
|
closeToolStripMenuItem.Text = "&Close";
|
||||||
this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
|
closeToolStripMenuItem.Click += closeToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem14
|
// toolStripMenuItem14
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem14.Name = "toolStripMenuItem14";
|
toolStripMenuItem14.Name = "toolStripMenuItem14";
|
||||||
this.toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
|
toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
|
||||||
//
|
//
|
||||||
// saveToolStripMenuItem
|
// saveToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.saveToolStripMenuItem.Image = global::BookmarkManager.AppResource.save;
|
saveToolStripMenuItem.Image = BookmarkManager.AppResource.save;
|
||||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||||
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S;
|
||||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.saveToolStripMenuItem.Text = "&Save";
|
saveToolStripMenuItem.Text = "&Save";
|
||||||
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// saveAsToolStripMenuItem
|
// saveAsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||||
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.saveAsToolStripMenuItem.Text = "Save &As...";
|
saveAsToolStripMenuItem.Text = "Save &As...";
|
||||||
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
|
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem15
|
// toolStripMenuItem15
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem15.Name = "toolStripMenuItem15";
|
toolStripMenuItem15.Name = "toolStripMenuItem15";
|
||||||
this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
||||||
//
|
//
|
||||||
// exitToolStripMenuItem2
|
// exitToolStripMenuItem2
|
||||||
//
|
//
|
||||||
this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
||||||
this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
||||||
this.exitToolStripMenuItem2.Text = "E&xit";
|
exitToolStripMenuItem2.Text = "E&xit";
|
||||||
this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
|
exitToolStripMenuItem2.Click += exitToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem1
|
// toolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { findToolStripMenuItem });
|
||||||
this.findToolStripMenuItem});
|
toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
|
||||||
this.toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
|
toolStripMenuItem1.Text = "&Edit";
|
||||||
this.toolStripMenuItem1.Text = "&Edit";
|
|
||||||
//
|
//
|
||||||
// findToolStripMenuItem
|
// findToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.findToolStripMenuItem.Image = global::BookmarkManager.AppResource.search;
|
findToolStripMenuItem.Image = BookmarkManager.AppResource.search;
|
||||||
this.findToolStripMenuItem.Name = "findToolStripMenuItem";
|
findToolStripMenuItem.Name = "findToolStripMenuItem";
|
||||||
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
findToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F;
|
||||||
this.findToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
|
findToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
|
||||||
this.findToolStripMenuItem.Text = "&Find";
|
findToolStripMenuItem.Text = "&Find";
|
||||||
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
findToolStripMenuItem.Click += findToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// viewToolStripMenuItem
|
// viewToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { expandAllToolStripMenuItem, collapseAllToolStripMenuItem, toolStripSeparator1, alwaysOnTopToolStripMenuItem });
|
||||||
this.expandAllToolStripMenuItem,
|
viewToolStripMenuItem.Name = "viewToolStripMenuItem";
|
||||||
this.collapseAllToolStripMenuItem,
|
viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||||
this.toolStripSeparator1,
|
viewToolStripMenuItem.Text = "&View";
|
||||||
this.alwaysOnTopToolStripMenuItem});
|
|
||||||
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
|
|
||||||
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
|
||||||
this.viewToolStripMenuItem.Text = "&View";
|
|
||||||
//
|
//
|
||||||
// expandAllToolStripMenuItem
|
// expandAllToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
|
expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
|
||||||
this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||||
this.expandAllToolStripMenuItem.Text = "&Expand All";
|
expandAllToolStripMenuItem.Text = "&Expand All";
|
||||||
this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click);
|
expandAllToolStripMenuItem.Click += expandAllToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// collapseAllToolStripMenuItem
|
// collapseAllToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
|
collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
|
||||||
this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||||
this.collapseAllToolStripMenuItem.Text = "&Collapse All";
|
collapseAllToolStripMenuItem.Text = "&Collapse All";
|
||||||
this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click);
|
collapseAllToolStripMenuItem.Click += collapseAllToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
|
toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
|
||||||
//
|
//
|
||||||
// alwaysOnTopToolStripMenuItem
|
// alwaysOnTopToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
|
alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
|
||||||
this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||||
this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
|
alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
|
||||||
this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click);
|
alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolsToolStripMenuItem
|
// toolsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem9, toolStripSeparator2, optionsToolStripMenuItem });
|
||||||
this.toolStripMenuItem9,
|
toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||||
this.toolStripSeparator2,
|
toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||||
this.optionsToolStripMenuItem});
|
toolsToolStripMenuItem.Text = "&Tools";
|
||||||
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
|
||||||
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
|
||||||
this.toolsToolStripMenuItem.Text = "&Tools";
|
|
||||||
//
|
//
|
||||||
// toolStripMenuItem9
|
// toolStripMenuItem9
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
|
toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||||
this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22);
|
toolStripMenuItem9.Size = new System.Drawing.Size(168, 22);
|
||||||
this.toolStripMenuItem9.Text = "Update &Icons";
|
toolStripMenuItem9.Text = "Update &Icons";
|
||||||
this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click);
|
toolStripMenuItem9.Click += toolStripMenuItem9_Click;
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
this.toolStripSeparator2.Size = new System.Drawing.Size(165, 6);
|
toolStripSeparator2.Size = new System.Drawing.Size(165, 6);
|
||||||
//
|
//
|
||||||
// optionsToolStripMenuItem
|
// optionsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.optionsToolStripMenuItem.Image = global::BookmarkManager.AppResource.settings;
|
optionsToolStripMenuItem.Image = BookmarkManager.AppResource.settings;
|
||||||
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||||
this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12)));
|
optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
|
||||||
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||||
this.optionsToolStripMenuItem.Text = "&Options";
|
optionsToolStripMenuItem.Text = "&Options";
|
||||||
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
|
optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// helpToolStripMenuItem1
|
// helpToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewHelpToolStripMenuItem1, toolStripMenuItem16, aboutToolStripMenuItem1 });
|
||||||
this.viewHelpToolStripMenuItem1,
|
helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
||||||
this.toolStripMenuItem16,
|
helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
||||||
this.aboutToolStripMenuItem1});
|
helpToolStripMenuItem1.Text = "&Help";
|
||||||
this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
|
||||||
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
|
||||||
this.helpToolStripMenuItem1.Text = "&Help";
|
|
||||||
//
|
//
|
||||||
// viewHelpToolStripMenuItem1
|
// viewHelpToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.viewHelpToolStripMenuItem1.Image = global::BookmarkManager.AppResource.help_circle;
|
viewHelpToolStripMenuItem1.Image = BookmarkManager.AppResource.help_circle;
|
||||||
this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
||||||
this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||||
this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||||
this.viewHelpToolStripMenuItem1.Text = "&View Help";
|
viewHelpToolStripMenuItem1.Text = "&View Help";
|
||||||
this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click);
|
viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem16
|
// toolStripMenuItem16
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem16.Name = "toolStripMenuItem16";
|
toolStripMenuItem16.Name = "toolStripMenuItem16";
|
||||||
this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
||||||
//
|
//
|
||||||
// aboutToolStripMenuItem1
|
// aboutToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
||||||
this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||||
this.aboutToolStripMenuItem1.Text = "&About";
|
aboutToolStripMenuItem1.Text = "&About";
|
||||||
this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click);
|
aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// openFileDialog1
|
// openFileDialog1
|
||||||
//
|
//
|
||||||
this.openFileDialog1.DefaultExt = "jsnx";
|
openFileDialog1.DefaultExt = "jsnx";
|
||||||
this.openFileDialog1.Filter = "All supported files (*.jsnx;*.ryz)|*.jsnx;*.ryz|Bookmarks files (*.jsnx)|*.jsnx|B" +
|
openFileDialog1.Filter = "All supported files|*.json;*.jsonfig;*.jsnx|Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
|
||||||
"ookmarks files (*.ryz)|*.ryz";
|
openFileDialog1.Title = "Open bookmarks file";
|
||||||
this.openFileDialog1.Title = "Open bookmarks file";
|
|
||||||
//
|
//
|
||||||
// rootContextMenu
|
// rootContextMenu
|
||||||
//
|
//
|
||||||
this.rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem, addFolderToolStripMenuItem, toolStripMenuItem2, editToolStripMenuItem, toolStripMenuItem3, sortToolStripMenuItem });
|
||||||
this.addPageToolStripMenuItem,
|
rootContextMenu.Name = "rootContextMenu";
|
||||||
this.addFolderToolStripMenuItem,
|
rootContextMenu.Size = new System.Drawing.Size(133, 104);
|
||||||
this.toolStripMenuItem2,
|
|
||||||
this.editToolStripMenuItem,
|
|
||||||
this.toolStripMenuItem3,
|
|
||||||
this.sortToolStripMenuItem});
|
|
||||||
this.rootContextMenu.Name = "rootContextMenu";
|
|
||||||
this.rootContextMenu.Size = new System.Drawing.Size(133, 104);
|
|
||||||
//
|
//
|
||||||
// addPageToolStripMenuItem
|
// addPageToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.addPageToolStripMenuItem.Name = "addPageToolStripMenuItem";
|
addPageToolStripMenuItem.Name = "addPageToolStripMenuItem";
|
||||||
this.addPageToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
addPageToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||||
this.addPageToolStripMenuItem.Text = "Add &Page";
|
addPageToolStripMenuItem.Text = "Add &Page";
|
||||||
this.addPageToolStripMenuItem.Click += new System.EventHandler(this.addPageToolStripMenuItem_Click);
|
addPageToolStripMenuItem.Click += addPageToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// addFolderToolStripMenuItem
|
// addFolderToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem";
|
addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem";
|
||||||
this.addFolderToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
addFolderToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||||
this.addFolderToolStripMenuItem.Text = "Add &Folder";
|
addFolderToolStripMenuItem.Text = "Add &Folder";
|
||||||
this.addFolderToolStripMenuItem.Click += new System.EventHandler(this.addFolderToolStripMenuItem_Click);
|
addFolderToolStripMenuItem.Click += addFolderToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem2
|
// toolStripMenuItem2
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(129, 6);
|
toolStripMenuItem2.Size = new System.Drawing.Size(129, 6);
|
||||||
//
|
//
|
||||||
// editToolStripMenuItem
|
// editToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
editToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||||
this.editToolStripMenuItem.Text = "&Edit";
|
editToolStripMenuItem.Text = "&Edit";
|
||||||
this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click);
|
editToolStripMenuItem.Click += editToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem3
|
// toolStripMenuItem3
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||||
this.toolStripMenuItem3.Size = new System.Drawing.Size(129, 6);
|
toolStripMenuItem3.Size = new System.Drawing.Size(129, 6);
|
||||||
//
|
//
|
||||||
// sortToolStripMenuItem
|
// sortToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.sortToolStripMenuItem.Name = "sortToolStripMenuItem";
|
sortToolStripMenuItem.Name = "sortToolStripMenuItem";
|
||||||
this.sortToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
sortToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||||
this.sortToolStripMenuItem.Text = "&Sort";
|
sortToolStripMenuItem.Text = "&Sort";
|
||||||
this.sortToolStripMenuItem.Click += new System.EventHandler(this.sortToolStripMenuItem_Click);
|
sortToolStripMenuItem.Click += sortToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// folderContextMenu
|
// folderContextMenu
|
||||||
//
|
//
|
||||||
this.folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem1, addFolderToolStripMenuItem1, toolStripMenuItem4, openAllToolStripMenuItem, editToolStripMenuItem1, deleteToolStripMenuItem, toolStripMenuItem5, sortToolStripMenuItem1, toolStripMenuItem6, moveUpToolStripMenuItem, moveDownToolStripMenuItem });
|
||||||
this.addPageToolStripMenuItem1,
|
folderContextMenu.Name = "folderContextMenu";
|
||||||
this.addFolderToolStripMenuItem1,
|
folderContextMenu.Size = new System.Drawing.Size(139, 198);
|
||||||
this.toolStripMenuItem4,
|
|
||||||
this.openAllToolStripMenuItem,
|
|
||||||
this.editToolStripMenuItem1,
|
|
||||||
this.deleteToolStripMenuItem,
|
|
||||||
this.toolStripMenuItem5,
|
|
||||||
this.sortToolStripMenuItem1,
|
|
||||||
this.toolStripMenuItem6,
|
|
||||||
this.moveUpToolStripMenuItem,
|
|
||||||
this.moveDownToolStripMenuItem});
|
|
||||||
this.folderContextMenu.Name = "folderContextMenu";
|
|
||||||
this.folderContextMenu.Size = new System.Drawing.Size(139, 198);
|
|
||||||
//
|
//
|
||||||
// addPageToolStripMenuItem1
|
// addPageToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1";
|
addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1";
|
||||||
this.addPageToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
addPageToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.addPageToolStripMenuItem1.Text = "Add &Page";
|
addPageToolStripMenuItem1.Text = "Add &Page";
|
||||||
this.addPageToolStripMenuItem1.Click += new System.EventHandler(this.addPageToolStripMenuItem1_Click);
|
addPageToolStripMenuItem1.Click += addPageToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// addFolderToolStripMenuItem1
|
// addFolderToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1";
|
addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1";
|
||||||
this.addFolderToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
addFolderToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.addFolderToolStripMenuItem1.Text = "Add &Folder";
|
addFolderToolStripMenuItem1.Text = "Add &Folder";
|
||||||
this.addFolderToolStripMenuItem1.Click += new System.EventHandler(this.addFolderToolStripMenuItem1_Click);
|
addFolderToolStripMenuItem1.Click += addFolderToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem4
|
// toolStripMenuItem4
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||||
this.toolStripMenuItem4.Size = new System.Drawing.Size(135, 6);
|
toolStripMenuItem4.Size = new System.Drawing.Size(135, 6);
|
||||||
//
|
//
|
||||||
// openAllToolStripMenuItem
|
// openAllToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.openAllToolStripMenuItem.Image = global::BookmarkManager.AppResource.bookmark;
|
openAllToolStripMenuItem.Image = BookmarkManager.AppResource.bookmark;
|
||||||
this.openAllToolStripMenuItem.Name = "openAllToolStripMenuItem";
|
openAllToolStripMenuItem.Name = "openAllToolStripMenuItem";
|
||||||
this.openAllToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
openAllToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||||
this.openAllToolStripMenuItem.Text = "&Open All";
|
openAllToolStripMenuItem.Text = "&Open All";
|
||||||
this.openAllToolStripMenuItem.Click += new System.EventHandler(this.openAllToolStripMenuItem_Click);
|
openAllToolStripMenuItem.Click += openAllToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// editToolStripMenuItem1
|
// editToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.editToolStripMenuItem1.Name = "editToolStripMenuItem1";
|
editToolStripMenuItem1.Name = "editToolStripMenuItem1";
|
||||||
this.editToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
editToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.editToolStripMenuItem1.Text = "&Edit";
|
editToolStripMenuItem1.Text = "&Edit";
|
||||||
this.editToolStripMenuItem1.Click += new System.EventHandler(this.editToolStripMenuItem1_Click);
|
editToolStripMenuItem1.Click += editToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// deleteToolStripMenuItem
|
// deleteToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.deleteToolStripMenuItem.Image = global::BookmarkManager.AppResource.trash;
|
deleteToolStripMenuItem.Image = BookmarkManager.AppResource.trash;
|
||||||
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
|
deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
|
||||||
this.deleteToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
deleteToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||||
this.deleteToolStripMenuItem.Text = "&Delete";
|
deleteToolStripMenuItem.Text = "&Delete";
|
||||||
this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click);
|
deleteToolStripMenuItem.Click += deleteToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem5
|
// toolStripMenuItem5
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
|
toolStripMenuItem5.Name = "toolStripMenuItem5";
|
||||||
this.toolStripMenuItem5.Size = new System.Drawing.Size(135, 6);
|
toolStripMenuItem5.Size = new System.Drawing.Size(135, 6);
|
||||||
//
|
//
|
||||||
// sortToolStripMenuItem1
|
// sortToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.sortToolStripMenuItem1.Name = "sortToolStripMenuItem1";
|
sortToolStripMenuItem1.Name = "sortToolStripMenuItem1";
|
||||||
this.sortToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
sortToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.sortToolStripMenuItem1.Text = "&Sort";
|
sortToolStripMenuItem1.Text = "&Sort";
|
||||||
this.sortToolStripMenuItem1.Click += new System.EventHandler(this.sortToolStripMenuItem1_Click);
|
sortToolStripMenuItem1.Click += sortToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem6
|
// toolStripMenuItem6
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
|
toolStripMenuItem6.Name = "toolStripMenuItem6";
|
||||||
this.toolStripMenuItem6.Size = new System.Drawing.Size(135, 6);
|
toolStripMenuItem6.Size = new System.Drawing.Size(135, 6);
|
||||||
//
|
//
|
||||||
// moveUpToolStripMenuItem
|
// moveUpToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.moveUpToolStripMenuItem.Image = global::BookmarkManager.AppResource.arrow_up_circle;
|
moveUpToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_up_circle;
|
||||||
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
|
moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
|
||||||
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
moveUpToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||||
this.moveUpToolStripMenuItem.Text = "Move &Up";
|
moveUpToolStripMenuItem.Text = "Move &Up";
|
||||||
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click);
|
moveUpToolStripMenuItem.Click += moveUpToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// moveDownToolStripMenuItem
|
// moveDownToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.moveDownToolStripMenuItem.Image = global::BookmarkManager.AppResource.arrow_down_circle;
|
moveDownToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_down_circle;
|
||||||
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
|
moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
|
||||||
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
moveDownToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||||
this.moveDownToolStripMenuItem.Text = "Move &Down";
|
moveDownToolStripMenuItem.Text = "Move &Down";
|
||||||
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click);
|
moveDownToolStripMenuItem.Click += moveDownToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// pageContextMenu
|
// pageContextMenu
|
||||||
//
|
//
|
||||||
this.pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { openToolStripMenuItem1, toolStripMenuItem7, editToolStripMenuItem2, deleteToolStripMenuItem1, toolStripMenuItem8, moveUpToolStripMenuItem1, moveDownToolStripMenuItem1 });
|
||||||
this.openToolStripMenuItem1,
|
pageContextMenu.Name = "pageContextMenu";
|
||||||
this.toolStripMenuItem7,
|
pageContextMenu.Size = new System.Drawing.Size(139, 126);
|
||||||
this.editToolStripMenuItem2,
|
|
||||||
this.deleteToolStripMenuItem1,
|
|
||||||
this.toolStripMenuItem8,
|
|
||||||
this.moveUpToolStripMenuItem1,
|
|
||||||
this.moveDownToolStripMenuItem1});
|
|
||||||
this.pageContextMenu.Name = "pageContextMenu";
|
|
||||||
this.pageContextMenu.Size = new System.Drawing.Size(139, 126);
|
|
||||||
//
|
//
|
||||||
// openToolStripMenuItem1
|
// openToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.openToolStripMenuItem1.Image = global::BookmarkManager.AppResource.bookmark;
|
openToolStripMenuItem1.Image = BookmarkManager.AppResource.bookmark;
|
||||||
this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
|
openToolStripMenuItem1.Name = "openToolStripMenuItem1";
|
||||||
this.openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.openToolStripMenuItem1.Text = "&Open";
|
openToolStripMenuItem1.Text = "&Open";
|
||||||
this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
|
openToolStripMenuItem1.Click += openToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem7
|
// toolStripMenuItem7
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
|
toolStripMenuItem7.Name = "toolStripMenuItem7";
|
||||||
this.toolStripMenuItem7.Size = new System.Drawing.Size(135, 6);
|
toolStripMenuItem7.Size = new System.Drawing.Size(135, 6);
|
||||||
//
|
//
|
||||||
// editToolStripMenuItem2
|
// editToolStripMenuItem2
|
||||||
//
|
//
|
||||||
this.editToolStripMenuItem2.Name = "editToolStripMenuItem2";
|
editToolStripMenuItem2.Name = "editToolStripMenuItem2";
|
||||||
this.editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22);
|
editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22);
|
||||||
this.editToolStripMenuItem2.Text = "&Edit";
|
editToolStripMenuItem2.Text = "&Edit";
|
||||||
this.editToolStripMenuItem2.Click += new System.EventHandler(this.editToolStripMenuItem2_Click);
|
editToolStripMenuItem2.Click += editToolStripMenuItem2_Click;
|
||||||
//
|
//
|
||||||
// deleteToolStripMenuItem1
|
// deleteToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.deleteToolStripMenuItem1.Image = global::BookmarkManager.AppResource.trash;
|
deleteToolStripMenuItem1.Image = BookmarkManager.AppResource.trash;
|
||||||
this.deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
|
deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
|
||||||
this.deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.deleteToolStripMenuItem1.Text = "&Delete";
|
deleteToolStripMenuItem1.Text = "&Delete";
|
||||||
this.deleteToolStripMenuItem1.Click += new System.EventHandler(this.deleteToolStripMenuItem1_Click);
|
deleteToolStripMenuItem1.Click += deleteToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem8
|
// toolStripMenuItem8
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
|
toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||||
this.toolStripMenuItem8.Size = new System.Drawing.Size(135, 6);
|
toolStripMenuItem8.Size = new System.Drawing.Size(135, 6);
|
||||||
//
|
//
|
||||||
// moveUpToolStripMenuItem1
|
// moveUpToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.moveUpToolStripMenuItem1.Image = global::BookmarkManager.AppResource.arrow_up_circle;
|
moveUpToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_up_circle;
|
||||||
this.moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1";
|
moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1";
|
||||||
this.moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.moveUpToolStripMenuItem1.Text = "Move &Up";
|
moveUpToolStripMenuItem1.Text = "Move &Up";
|
||||||
this.moveUpToolStripMenuItem1.Click += new System.EventHandler(this.moveUpToolStripMenuItem1_Click);
|
moveUpToolStripMenuItem1.Click += moveUpToolStripMenuItem1_Click;
|
||||||
//
|
//
|
||||||
// moveDownToolStripMenuItem1
|
// moveDownToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.moveDownToolStripMenuItem1.Image = global::BookmarkManager.AppResource.arrow_down_circle;
|
moveDownToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_down_circle;
|
||||||
this.moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1";
|
moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1";
|
||||||
this.moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||||
this.moveDownToolStripMenuItem1.Text = "Move &Down";
|
moveDownToolStripMenuItem1.Text = "Move &Down";
|
||||||
this.moveDownToolStripMenuItem1.Click += new System.EventHandler(this.moveDownToolStripMenuItem1_Click);
|
moveDownToolStripMenuItem1.Click += moveDownToolStripMenuItem1_Click;
|
||||||
//
|
|
||||||
// toolStrip1
|
|
||||||
//
|
|
||||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.toolStripButton1,
|
|
||||||
this.toolStripButton2,
|
|
||||||
this.toolStripSeparator3,
|
|
||||||
this.toolStripButton3,
|
|
||||||
this.toolStripSeparator4,
|
|
||||||
this.toolStripButton4});
|
|
||||||
this.toolStrip1.Location = new System.Drawing.Point(0, 24);
|
|
||||||
this.toolStrip1.Name = "toolStrip1";
|
|
||||||
this.toolStrip1.Size = new System.Drawing.Size(300, 25);
|
|
||||||
this.toolStrip1.TabIndex = 4;
|
|
||||||
this.toolStrip1.Text = "toolStrip1";
|
|
||||||
//
|
|
||||||
// toolStripButton1
|
|
||||||
//
|
|
||||||
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.toolStripButton1.Image = global::BookmarkManager.AppResource.file;
|
|
||||||
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.ToolTipText = "New";
|
|
||||||
this.toolStripButton1.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
|
|
||||||
//
|
|
||||||
// toolStripButton2
|
|
||||||
//
|
|
||||||
this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.toolStripButton2.Image = global::BookmarkManager.AppResource.folder;
|
|
||||||
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton2.Name = "toolStripButton2";
|
|
||||||
this.toolStripButton2.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.toolStripButton2.Text = "Open";
|
|
||||||
this.toolStripButton2.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
|
||||||
//
|
|
||||||
// toolStripSeparator3
|
|
||||||
//
|
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
|
||||||
this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripButton3
|
|
||||||
//
|
|
||||||
this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.toolStripButton3.Image = global::BookmarkManager.AppResource.save;
|
|
||||||
this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton3.Name = "toolStripButton3";
|
|
||||||
this.toolStripButton3.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.toolStripButton3.Text = "Save";
|
|
||||||
this.toolStripButton3.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
|
||||||
//
|
|
||||||
// toolStripSeparator4
|
|
||||||
//
|
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
|
||||||
this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripButton4
|
|
||||||
//
|
|
||||||
this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.toolStripButton4.Image = global::BookmarkManager.AppResource.search;
|
|
||||||
this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton4.Name = "toolStripButton4";
|
|
||||||
this.toolStripButton4.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.toolStripButton4.Text = "Find";
|
|
||||||
this.toolStripButton4.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
|
||||||
//
|
//
|
||||||
// treeView1
|
// treeView1
|
||||||
//
|
//
|
||||||
this.treeView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
treeView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.treeView1.Location = new System.Drawing.Point(0, 49);
|
treeView1.Location = new System.Drawing.Point(0, 24);
|
||||||
this.treeView1.Name = "treeView1";
|
treeView1.Name = "treeView1";
|
||||||
this.treeView1.Size = new System.Drawing.Size(300, 531);
|
treeView1.OnChanged = null;
|
||||||
this.treeView1.TabIndex = 5;
|
treeView1.Size = new System.Drawing.Size(300, 556);
|
||||||
|
treeView1.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))));
|
BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
|
||||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
this.ClientSize = new System.Drawing.Size(300, 580);
|
ClientSize = new System.Drawing.Size(300, 580);
|
||||||
this.Controls.Add(this.treeView1);
|
Controls.Add(treeView1);
|
||||||
this.Controls.Add(this.toolStrip1);
|
Controls.Add(menuStrip1);
|
||||||
this.Controls.Add(this.menuStrip1);
|
DoubleBuffered = true;
|
||||||
this.DoubleBuffered = true;
|
ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
MainMenuStrip = menuStrip1;
|
||||||
this.MainMenuStrip = this.menuStrip1;
|
Name = "MainForm";
|
||||||
this.Name = "MainForm";
|
Text = "BukkuBuddy";
|
||||||
this.Text = "Bookmark Manager";
|
menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.ResumeLayout(false);
|
menuStrip1.PerformLayout();
|
||||||
this.menuStrip1.PerformLayout();
|
rootContextMenu.ResumeLayout(false);
|
||||||
this.rootContextMenu.ResumeLayout(false);
|
folderContextMenu.ResumeLayout(false);
|
||||||
this.folderContextMenu.ResumeLayout(false);
|
pageContextMenu.ResumeLayout(false);
|
||||||
this.pageContextMenu.ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
this.toolStrip1.ResumeLayout(false);
|
PerformLayout();
|
||||||
this.toolStrip1.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -688,13 +562,6 @@ namespace FizzyLauncher
|
|||||||
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton2;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton3;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton4;
|
|
||||||
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
|
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1299
MainForm.cs
1299
MainForm.cs
File diff suppressed because it is too large
Load Diff
647
MainForm.resx
647
MainForm.resx
@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
@ -75,305 +135,302 @@
|
|||||||
<metadata name="pageContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="pageContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>1137, 17</value>
|
<value>1137, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>1290, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<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">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
||||||
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAASwAAAKgAAADhAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAABgAAAC+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAADExMSozMzPYMzMztDMzM2g3NzccAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAANTU1PzQ1NfA1Njb+NjY2/jMzM/8zMzP/NDQ0zzMzM4I1NTU1AAAAAQAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDRTMzMz+EFCQv6ovb7/yebn/6C1tv9yfn//QURE/TMz
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
M/8zMzP/NDQ06zIyMqIzMzNVNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA/wAAAP8AAAD/AAAA/wIG
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzM28zMzP+VVhY/cXX2P/S7/D/0O7v/9Du
|
B/8hVmP/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||||
7//Q7u//zuzt/7DIyf+CkZH/UlhY/jMzM/8zMzP/MzMz+DIyMrszMzNvNTU1HQAAAAAAAAAAAAAAAAAA
|
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDMjIykzU1Nf9rb2/+zuLj/9nx
|
AP8AAAD/AgYH/z+kvf9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7zW1/+Ro6P/Ymtr/zc4OP4zMzP/MzMz/zQ0
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
NNYzMzOIMzMzPAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAgzMzOqOTk5/3yC
|
AAAAAADiAAAA/wAAAP8AAAD/IVZk/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
gv7U6er/3PLz/9Tv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8rn
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
6P+gtbb/cn5//0JFRf0zMzP/MzMz/zQ0NOwyMjKiMzMzVTc3Nw4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2EzI0
|
AAAAAAAAAAAAAAAAAAAAAAD6AAAA/wAAAP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
NMU9PT3/iZGS/9jv7//c8vP/2/Lz/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/87s7f+wyMn/gpGR/1JYWP4zMzP/MzMz/zMzM/gyMjK7MzMzbzMz
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||||
Mx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||||
AAAwMDAlNDQ03kFBQf+dqKj/2/Ly/9zy8//c8vP/1/Dx/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+71db/jJ2e/11l
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
Zv82Nzf+MzMz/zMzM/8zMzOGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
AAAAAAAAAAAAADExMTk0NDTsS0tL/qy6uv/c8vP/3PLz/9zy8//c8vP/0u/w/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7//Q7u//0O7v/9Du7//I5OX/nLGx/z5BQf4yMzPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAANDQ0TzQ0NPZWV1f9uMjI/9zy8//c8vP/3PLz/9zy8//a8vL/0O7v/9Du
|
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/2ZvcP8yMzP9MzMzDwAAAAAAAAAAAAAAAAAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzNkNTU1/FxdXf3C09T/3PLz/9zy8//c8vP/3PLz/9zy
|
AAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//W8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/4ucnP8zMzP/MzMzRgAA
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQ0NIA0NDT/Zmlp/svd3v/c8vP/3PLz/9zy
|
AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7DI
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||||
yP8zMzP/MzMzgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCQHMzMzpTU1Nf9zeXn/0ubn/9zy
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8/+QpKX/Xmts/8Db3P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//A29z/Xmts/5Ckpf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/87r7P86Ozv+MzMzvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLREyMjLANTU1/4OL
|
AP8AAACqAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
i//Y7u//3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9jx8v8bHx//AAAA/xUYGP+Zr6//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5mvr/8VGBj/AAAA/xsfH//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/9dZWX/NDQ09jMzMwUAAAAAAAAAAAAAAAAAAAAAMDAwIDQ0
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOgAAAD/AAAA/wAA
|
||||||
NNc2Njb/lJ+f/9vx8v/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Xw8f8WGRn/AAAA/wAA
|
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
AP8BAQH/X2xt/8vo6f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/X2xt/wEBAf8AAAD/AAAA/xYZ
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+BkJD/MzMz/zU1NTUAAAAAAAAAAAAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABYX/AAe6/wAHuv8AB7r/AAe6/wAHt/8AAR7/AAAA/wAA
|
||||||
AAAyMjIuNDQ05TY2Nv+gra3/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv
|
AF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8P8WGRn/AAAA/xcXF/8AAAD/AAAA/ykvL/+vycr/0O7v/9Du7//Q7u//0O7v/6/Jyv8pLy//AAAA/wAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
AP8XFxf/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+lu7v/MzMz/zQ0
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAF
|
||||||
NHEAAAAAAAAAAAAAAAAzMzPkNjc3/rDBwf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
df8AAAD/AAAApgAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/2/Lz/9Du7/8WGRn/AAAA/6mpqf+QkJD/BgYG/wAAAP8HCAj/dYaH/9Du7//Q7u//g5aX/woL
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
C/8AAAD/BAQE/39/f/+oqKj/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
|
||||||
7//I5eb/NTU1/jQ0NK0AAAAAAAAAAAAAAAA0NDS3Nzc3/tnu7//d8/T/3fPz/93z8//c8vP/3PLz/9zy
|
6P8ACej/AAe4/wAABP4AAAHjAAAAEQAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7/8WGRn/AAAA/6qqqv//////ysrK/yQkJP8AAAD/AAAA/0JM
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
TP9CTEz/AAAA/wAAAP8kJCT/ysrK//////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//UlhY/zQ0NOoAAAABAAAAAAAAAAAzMzN9MzMz/7/R0v/d8/T/3fPz/93z
|
AP8ABqb/AAno/wAJ6P8ACd3/AAEh/gAAAP4AAACZAAAAdwAAAE4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1vDx/9Du7/8WGRn/AAAA/6qqqv////////////Pz
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8/9hYWH/AAAA/wAAAP8AAAD/AAAA/2FhYf/z8/P///////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//d4SE/zMzM/8wMDAlAAAAAAAAAAAzMzNBMzMz/5yp
|
AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8AA1T/AAAA/wAAAP8AAAD/AAAA/wAAAOwAAAD/AAAA/wAA
|
||||||
qf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq
|
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
qv//////////////////////qamp/xEREf8RERH/qamp//////////////////////+qqqr/AAAA/xYZ
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m6+v/zMzM/8yMjJgAAAAAAAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAI2f8AAAH/BQMC/3JHJP8WDQf/AAAA/wAA
|
||||||
AAA5OTkJNDQ0+nR8fP/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du
|
AGsAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7/8WGRn/AAAA/6qqqv////////////////////////////Ly8v/y8vL/////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/zMz
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ABGH/AAAA/ycY
|
||||||
M/8zMzObAAAAAAAAAAAAAAAAMzMzyEZISP3d8vP/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
Df8AAAD/AAAAswAAAAEAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/0u/w/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
|
||||||
7//Q7u//0O7v/0ZKSv40NDTYAAAAAAAAAAAAAAAAMzMzjTMzM//K3N3/3fPz/93z8//c8vP/3PLz/9zy
|
6P8ACeH/AAIp/wAAAP8BAQDwAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/2x3d/8zMzP+Li4uFgAAAAAAAAAAMjIyUjMzM/+ntbX/3fPz/93z
|
AP8ABqb/AAno/wAJ6P8ACej/AAfB/wAAB/8AAAHxAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du7/8WGRn/AAAA/6qqqv//////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5Gjo/8zMzP/MzMzUAAAAAAAAAAAMTExFTMz
|
AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAFg/8AAAD/AAAAtQAAAAEAAAD/AAAA/wAA
|
||||||
M/5/iYn/3fPz/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7/8WGRn/AAAA/6qq
|
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7bP0P8zMzP/MzMziwAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABXn/AAeq/wAHqv8AB6r/AAeq/wAHqf8AASH/AAAA/wAA
|
||||||
AAAAAAAAAAAAADMzM9pRVVX+3fP0/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du
|
AHMAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7v89Pj/+NDQ0xgAAAAAAAAAAAAAAADIyMp0zMzP/0eXm/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
AP8AAAD/AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8+JxT/VzYc/1c2
|
||||||
7//Q7u//0O7v/9Du7/9ia2v/NDQ0+zMzMwoAAAAAAAAAADQ0NGIzMzP/r8DA/93z8//d8/P/3PLz/9zy
|
HP9TMxv/DAgE/wEBAf8KCgr/AAAA/wAAAMIAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Glpf/MzMz/zU1NT8AAAAAAAAAADQ0NCczMzP/iZWV/93z
|
AP91SCX/pGU0/6RlNP+kZTT/glAp/wMCAf8BAQH/AQEB5gAAABIAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du7/8WGRn/AAAA/6qqqv//////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+rwsP/MzMz/zQ0NHsAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP91SCX/pGU0/6RlNP+kZTT/pGU0/1Q0G/8AAAD/AAAAvwAAAAAAAAD/AAAA/wAA
|
||||||
AAE0NDTqW2Fh/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq
|
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/Nzc3/jQ0
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9dOh7/g1Eq/4NRKv+DUSr/g1Eq/4FQKf8WDgf/AAAA/wAA
|
||||||
NLcAAAAAAAAAAAAAAAA0NDStNjY2/tbs7f/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1/Dx/9Du
|
AGAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7/+dsrL/Njc3/jMzM+QAAAAAAAAAAAAAAAAzMzNzMzMz/7jKyv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
AP8AAAD/AAAA/wAAAOkAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/2vLy/9Du7/8gJCX/AAAA/5ubm///////////////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////+ampr/AAAA/yElJf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9VVVX/d3d3/3Jy
|
||||||
7//Q7u//0O7v/4ydnv80NDT/NTU16TIyMjMAAAAAAAAAAAAAAAAzMzM3MzMz/5Gen//d8/P/3PLz/9zy
|
cv8HBwf/AAAA+wAAAJkAAACIAAAAiAAAAFwAAAD/AAAA/wAAAP8AAAD/NIec/03J6P86mK//MoKW/zGA
|
||||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P9OWlr/AAAA/xQUFP9jY2P/ZmZm/2ZmZv9mZmb/ZmZm/2Zm
|
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||||
Zv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2NjY/8TExP/AAAA/1BbXP/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXaI/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//P7e7/gpGR/zMzM/80NDTcMjIyJAAAAAAAAAAAAAAAAAAAAAAzMzMFNDQ09mZt
|
AP+2trb///////r6+v8nJyf+AAAA/QAAAEUAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/FDU9/wIE
|
||||||
bv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f+71tf/GBsb/wAAAP8AAAD/AAAA/wAA
|
Bf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/GBsb/7zX2P/Q7u//0O7v/9Du
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8vo6f9pc3P/MzMz/zMzM8czMzMUAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP+2trb////////////Nzc3/BQUF/gEBAekAAAAXAAAAAAAAAAAAAAD/AAAA/wAA
|
||||||
AAAAAAAAMzMzvzs8PP7b8PH/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8//R7u//xODh/3KD
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
g/9MV1f/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0xXV/9zhIT/xODh/9Du
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//xeHi/1lhYf8zMzP/NDQ0rTk5OQkAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+2trb/////////////////ioqK/wAAAP8AAAC1AAAAAQAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAMzMzgzMzM/+/09T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
AAAAAAD/AAAA/wAAAP8AAAD/AAAA/w0iKP8ve43/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
|
||||||
8//V8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
tf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/S09P/jMzM/8zMzORAAAAAgAA
|
tf88nbX/PJ21/zydtf88nbX/N5Cm/wAAAP8AAAD/AAAA/wAAAP+2trb//////////////////f39/0RE
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIySDMzM/+bqqr/3fPz/9zy8//c8vP/3PLz/9zy
|
RP8AAAD/AAAAZwAAAAAAAAD/AAAA/wAAAP8AAAD/ECox/1DQ8P9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//b8vP/0u/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7PMzf9DRkf9MzMz/jIy
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP+2trb/////////
|
||||||
MnUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIzM/1yfH3/3fPz/9zy
|
/////////////+Xl5f8TExP+AQEB9gAAACkAAAD/AAAA/wAAAP8AAAD/MYCT/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//pbu7/zk7
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||||
O/00NDT5MjIyVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIz
|
AP8YGBj/IiIi/yIiIv8iIiL/IiIi/yIiIv8NDQ3/AAAA/wAAAMkAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||||
M9BAQkL+qry8/9Xq6//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9fx8v/Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||||
7/+Ro6P/NTU1/jQ1Ne0xMTE5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAADnAAAA3QAAAN0AAADdAAAA3QAAAN0AAADdAAAA3QAAALIAAAD6AAAA/wAA
|
||||||
AAAAAAAAAAAAADMzM4YzMzP/MzMz/zc4OP5qcXL/nq2u/8vf4P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
AP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//X8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//z+3u/3+Njf8zMzP/NDQ03jAwMCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4WNDQ0XjMzM6o0NDT1MzMz/zQ0NP9TVlb+ipWV/7rL
|
AAAAAADjAAAA/wAAAP8AAAD/IVdl/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
y//a7/D/3PLz/9zy8//c8vP/2PHy/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//M6er/bHd3/zMzM/80NDTLLi4uFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkJNTU1RDMz
|
AAAAAAAAAAAAAAAAAAAAAACpAAAA/wAAAP8AAAD/AwcI/z+kvv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
M5E0NDTlMzMz/zMzM/9GSEj9eIGC/6q5uv/U6er/3PLz/9vy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8jl5v9faGj/MzMz/zIyMrEzMzMKAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNAAAA/wAAAP8AAAD/AAAA/wMHCP8hV2X/MYCU/zGA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAANTU1KzMzM3cyNDTFMzMz/jMzM/82Njb+Ymlp/5elpf/F2tv/2fHy/9Lv
|
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||||
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/09VVf4zMzP/MzMzm0BAQAQAAAAAAAAAAAAA
|
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uFjQ0NF4zMzOqNDQ09TMz
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
M/8zMzP/TFBQ/oSQkP+vw8P/z+vs/9Du7//Q7u//0O7v/9Du7/+1zs//RUlJ/TMzM/40NDSAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAOTk5CTU1NUQzMzORNDQ05TMzM/8zMzP/PT8//Wx1dv+Yq6z/xuLj/6e9vv87PT39NDQ0+jMz
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
M1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAABgAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATU1NTUzMzOCMzMzzjMzM/8zMzP/NTY2/jU2
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
Nv41NTXwNTU1PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAKkAAADiAAAA+gAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
NxwzMzNoMzMztDMzM9gxMTEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//g////wAA//8AP///AAD//gAH//8AAP/8
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAf/xBMAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBAAA
|
||||||
AAD//wAA//AAAA//AAD/4AAAAf8AAP/AAAAAPwAA/4AAAAAfAAD/AAAAAB8AAP4AAAAADwAA/AAAAAAP
|
AAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/
|
||||||
AADwAAAAAA8AAOAAAAAADwAAwAAAAAAHAACAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAMAAAAA
|
8QQAAAAAAP/xBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAA
|
||||||
AAAAAwAAAAAAAAADAAAAAAAAAAMAAIAAAAAAAwAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAwAAAAAAB
|
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
|
||||||
AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAOAAAAAAAAAA4AAAAAAAAADgAAAAAAEAAOAA
|
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAAfxBAAA
|
||||||
AAAAAwAA8AAAAAAHAADwAAAAAA8AAPAAAAAAPwAA8AAAAAB/AAD4AAAAAP8AAPgAAAAB/wAA/AAAAAP/
|
AAAAA/EEAAAAAAAB8QQAAAAAAAHxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAA//EEAAAAAAD/
|
||||||
AAD/gAAAB/8AAP/4AAAP/wAA//8AAD//AAD//+AAf/8AAP///AD//wAA////wf//AAAoAAAAIAAAAEAA
|
8QQAAAAAAP/xBAAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBMAAAAAA//EE8AAAAAH/8QQoAAAAIAAAAEAA
|
||||||
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAtgAAAO8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAyMjJCOTo65jk7O6oyMjJWNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAALUAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAPsAAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAMjIyVzg4OPmKmpv+eomJ/kVKSvY1Njb8PD09xDIyMmszMzMeAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAD7AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NW5BQkL6tcXG/9Hu7//Q7u//0O7v/7vV1v+LnJ3/WF9f9jQ1
|
AP8CBgf/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
|
||||||
Nf06OzvfNDQ0iTMzMzwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
EP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4ODiDTU5O+sDS0v/Y8fL/0O7v/9Du7//Q7u//0O7v/9Du
|
AP8AAAD/HElU/07L6v9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//xODh/5ywsP9pc3P4ODk5+jg5OfA3NzemMjIyTSQkJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMFOTk5qVdaWvjK3d3/3PLz/9Pv8P/Q7u//0O7v/9Du
|
AAAAAADhAAAA/wEDBP9Nyun/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6en/ore4/3F9ffs+QED4Nzc39zs8PLIyMjJcNzc3DgAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrDDo8PMBobGz40eXm/9zy8//b8vP/0O7v/9Du
|
AAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t7v+vx8f/fYyN/kBD
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAA
|
||||||
Q/czMzN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2NhM8Pj7Pdnx8+NXq6//c8vP/3PLz/9fw
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
|
||||||
7//Q7u//i5yc/zs8PLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NjYhOzw84YGIiPrY7+//3PLz/9zy
|
AP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8
|
||||||
7//Q7u//0O7v/9Du7/+vx8f/ODk58gAAAAEAAAAAAAAAAAAAAAAAAAAAMzMzLTo7O+2PmZn82vHy/9zy
|
Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9vy8/9+kJD/m7Gy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m7Gy/36Q
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
kP/Q7u//0O7v/9Du7//Q7u//0O7v/83q6/83Nzf7NDQ0JwAAAAAAAAAAAAAAADIyMkI6Ojr2nKio/dzy
|
9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/xASEv8CAgL/Y3Fx/83q6//Q7u//0O7v/9Du7//Q7u//zerr/2Nx
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
cf8CAgL/EBIS/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/1RaWvMyMjJhAAAAAAAAAAAyMjJbNzg4+qm4
|
9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAA+cAAAD/AAAA/wgU
|
||||||
uP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//V8PH/DxER/xYWFv8AAAD/LzU2/7bQ0f/Q7u//0O7v/7bQ
|
F/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
0f8vNTX/AAAA/xYWFv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//fYyM/jk5OaIAAAAAAAAAADg5
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAGo/8ACMn/AAjJ/wAHuP8AAAr7AAACdgAA
|
||||||
OeyisrL/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P8PERH/cnJy/62trf8QERH/DA0N/4eb
|
AP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
nP+OoqP/DxER/w4ODv+lpaX/cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+it7j/Ozw84gAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAe8/wAJ6P8ACej/AANK+QAA
|
||||||
AAAAAAAAOzw8tpmnp//d8/T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/0e7v/w8REf9ycnL//////97e
|
CMcAAAADAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
3v84ODj/AAAA/wAAAP84ODj/3t7e//////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8Xh
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAF
|
||||||
4v80NDT+MzMzFAAAAAAzMzNzb3d3993z9P/d8/P/3PLz/9zy8//c8vP/3PLz/9vy8//Q7u//DxER/3Jy
|
iv8AAAX7BgMBuQMCAJQAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
cv////////////r6+v9/f3//f39///r6+v///////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAH
|
||||||
7//Q7u//0O7v/0ZKSvQyMjJMAAAAADIyMjhDRET43fLz/93z8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du
|
vP8ACeL/AQEH/y0cDv8IBQP+BwQBvgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7/8PERH/cnJy////////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAA
|
||||||
7//Q7u//0O7v/9Du7//Q7u//bnp6+jU1NYcAAAAAMzMzBTU2NvnL3d7/3fPz/9zy8//c8vP/3PLz/9zy
|
AP8AAAD/AAe8/wAJ6P8CBVr/EAoM/wQDAfAAAAAZAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8//Y8fL/0O7v/w8REf9ycnL///////////////////////////////////////////9ycnL/DxER/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Upqf/PD09zAAAAAAAAAAAPT4+zqq4uf/d8/P/3PLz/9zy
|
9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAJ3/8AAR3/AAADsQAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW
|
||||||
8//c8vP/3PLz/9jx8v/Q7u//DxER/3Jycv///////////////////////////////////////////3Jy
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
cv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v81NTX6KysrBgAAAAA0NDSJgouM+93z
|
9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAHvP8ACej/AAno/wAHu/8AAAT7AAAARQAAAP8AAAD/CBQX/1LW
|
||||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du7/8PERH/cnJy////////////////////////////////////
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//z+3u/zw+Pvg0NDQ2AAAAADQ0
|
9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/BQQU/wYEGf8BARf/AAEX/gAABf4AAAT2AAAA/wAA
|
||||||
NE5RVFT13fPz/93z8//c8vP/3PLz/9zy8//Y8fL/0O7v/w8REf9ycnL/////////////////////////
|
AP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
//////////////////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//X2dn9TQ0
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP9YNhz/bUMj/1s4Hf8EAwL/BwcH/gcH
|
||||||
NHEAAAAAMzMzFDU1Nf7U6er/3fPz/9zy8//c8vP/3PLz/9ry8v/Q7u//DxER/3Jycv//////////////
|
B8EAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
/////////////////////////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/4VSKv+kZTT/pGU0/1s5
|
||||||
7/+Hl5f/PD09tAAAAAAAAAAAOzw84rTFxv/d8/P/3PLz/9zy8//c8vP/2/Lz/9Du7/8PERH/cnJy////
|
Hv8FAwL+AAAAJgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/RywX/1c2
|
||||||
7//Q7u//0O7v/5KkpP84OTnsAAAAAAAAAAA4Ojqjj5uc/t3z8//c8vP/3PLz/9zy8//c8vP/0+/w/xkc
|
HP9XNhz/VzUc/wkGA/4GAwG3AAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
HP9bW1v///////////////////////////////////////////9aWlr/GRwc/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
|
||||||
7//Q7u//0O7v/9Du7/+Xqqv/NjY2+zQ0NGMAAAAAAAAAADQ0NGNiZ2f13fPz/9zy8//c8vP/3PLz/9zy
|
AP9CPz7/UE1L/w8MCv0JBgPcCgYDtQUDApwAAAD/AAAA/wgUF/87mbD/JWFv/yFWY/8hVmP/IVZj/yFW
|
||||||
8//W8PH/Xmts/wAAAP8ODw//EBER/xAREf8QERH/EBER/xAREf8QERH/Dg8P/wAAAP9fbW7/0O7v/9Du
|
Y/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/wkY
|
||||||
7//Q7u//0O7v/9Du7//Q7u//i5yc/TY3N/c0NDRJAAAAAAAAAAAAAAAAMjIyKTk6Ovva8PD/3PLz/9zy
|
HP8AAAD/AAAA/8/Pz//9/f3/MTEx+AgICKUAAAAAAAAAAAAAAP8AAAD/AgYH/wAAAP8AAAD/AAAA/wAA
|
||||||
8//c8vP/3PLz/9vy8//P6+z/gJOT/1ZiYv9TX2D/U19g/1NfYP9TX2D/U19g/1NfYP9WYmL/gZOU/87s
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7f/Q7u//0O7v/9Du7//Q7u//z+3u/3mIiPw3ODjyMTExOQAAAAAAAAAAAAAAAAAAAAAAAAABODk58sDS
|
AP8AAAD/AAAA/wAAAP8AAAD/z8/P///////d3d3/CQkJ+gAAAFkAAAAAAAAA/wAAAP8AAAD/FztE/z2f
|
||||||
0//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
uP9HudX/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp6v9ncXL5Nzk55jY2NiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
1v9Hudb/R7nW/0e51v8UND3/AAAA/wAAAP/Pz8////////////+goKD/BQUF9AAAAB8AAAD/AAAA/wIE
|
||||||
AAA7Pj69nKqr/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
Bf9R0/T/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//I5eb/XGRk+Ds8PNU3NzcXAAAAAAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/1NTU/9mZmb/ZmZm/2ZmZv8MDAz+CgoKyAAA
|
||||||
AAAAAAAAAAAAADMzM3hCRET3jZqb/r/S0v/b8vL/3PLz/9zy8//c8vP/2/Lz/9Lv8P/Q7u//0O7v/9Du
|
AP8AAAD/BQwN/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wdzd/0tRUfc5OjrAKysrDAAAAAAAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAArAAAAJkAAACZAAAAmQAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlw5OjqwNjc39kZISPeAiov7tMXG/9ju7v/c8vP/2vLz/9Lv
|
AJkAAACCAAAA5gAAAP8BAwT/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v9DRkb4OTs7qjMzMwUAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEMzMzPDc3N5Q4OTnqOjs7+211
|
AAAAAAAAAAAAAAAAAAAAAACtAAAA/wAAAP8dS1b/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
dvijsrL/z+Tl/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+wyMj/PT4/+Dc3N5UAAAACAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAD7AAAA/wAAAP8BAwT/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
|
||||||
AAA1NTUrMzMzdzo7O840NDT+V1xc9o6cnP+60dL/0e7v/9Du7//Q7u//pry8/zg5Ofo3Nzd4AAAAAAAA
|
EP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAD7AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMx4yMjJrOjs7wjU1NftGS0vzfImK/IiYmf42Nzf6MjIyVwAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAACsAAAA4QAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlY5OzuqOTo65jIy
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
MkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wB///4AB//4A
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAAtQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAB+AAAAfAAAAHwAA
|
||||||
AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAwAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA
|
AB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
|
||||||
AACAAAAAwAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//8AB///4A////wf/KAAAABgA
|
AAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAH4AAAB/AAAAfKAAAABgA
|
||||||
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAAtAAAAO4AAAD/AAAA/wAA
|
||||||
AAAAAAAAOz4+Vzs8PO1DRkavMjIyUS4uLgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz9pX2Nj78Le3/+rwsP/d4SF8EVI
|
AAAAAAAAAAAAAAAAACsAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
SO1CRUXQODg4ci8vLxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAALUAAAD/Dygu/z2f
|
||||||
AAAAAAAAAAAAAUJERotxd3fz0+rr/9Du7//Q7u//0O7v/9Du7/+2z9D/hJOU9k1SUus+QEDjPD4+hzIy
|
t/9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAA
|
||||||
MjMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEQkNDq4WPj/Pa8PH/1fDx/9Du
|
AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAO4AAAD/PZ+4/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+/2tv/j6Ch/VdeXu8/QUHoQUNDnC8vLxsAAAAAAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAC4uLgtFSEjEl6Oj9tvy8v/c8vP/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//I5eb/eYaH/Tk5OXUAAAAAAAAAAAAAAAAAAAAAOTk5EkVISNKmsrP53PLz/9zy
|
9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||||
8//Z8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//ssrL/0NH
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
|
||||||
R74AAAAAAAAAAAAAAAAwMDAgRkhI4q++wP3c8vP/3PLz/9zy8/+kuLn/anh5/8zp6v/Q7u//0O7v/9Du
|
AAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//zOnq/2p4ef+gt7j/0O7v/9Du7//Q7u//z+zt/z9BQuoAAAAAAAAAADQ0NCxHSUnnvtDQ/dzy
|
9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAAC8AAAARAAAAEQAAABEAAAAOQAAAP8AAAD/Q6/K/1LW
|
||||||
8//c8vP/3PLz/9zy8/90hIX/AAAA/y4zM/+0zs//0O7v/9Du7/+0zs//LjMz/wAAAP9zhIT/0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
|
||||||
7//Q7u//0O7v/1JYWOowMDAgAAAAADs9PezH2tv/3fPz/9zy8//c8vP/3PLz/9vy8/9zhIT/S0tL/2Zn
|
AP8AARz4AANQ6wADUOsAAi3zAAAJ2gAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Z/8NDg7/iJyd/4icnf8NDg7/Zmdn/0tLS/9zhIT/0O7v/9Du7//Q7u//0O7v/36NjfY1NTVcAAAAAENG
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAJ2/8AARnvAAAALQAA
|
||||||
RtDN4eH/3fPz/9zy8//c8vP/3PLz/9rx8v9zhIT/VFVV//////+rq6v/DxAQ/w8QEP+rq6v//////1RV
|
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/6W7u/9CRkalAAAAAD5AQIutvL3+3fPz/9zy8//c8vP/3PLz/9jx
|
9/9S1vf/JmNy/wAAAP8AA1T/AAno/wEDSfwHBArkCAYDtQAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||||
8v9zhIT/VFVV////////////5eXl/+Xl5f///////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/8jk
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAnl/wcF
|
||||||
5f9BQ0PgAAAAADIyMkeDjY3x3fPz/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV////////////////////
|
E/8uHQ74DAcDkgAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
/////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/9GS0vsMzMzDzc3Nw5VWFnt3fPz/9zy
|
9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAHrv8BAQ/6AAAADAAAAP8AAAD/Q6/K/1LW
|
||||||
8//c8vP/3PLz/9bw8f9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
|
||||||
7//Q7u//0O7v/9Du7/9teXnvNDQ0RQAAAABARETi1+vs/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV////
|
AP8AA0n/AAjJ/wAIyf8AA035AAARmAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
/////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+Xqqv+P0FBigAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8MBwr/IBQb/woHFP8DAxP+AgIL+AAA
|
||||||
AABBRESoucvL/9zy8//c8vP/3PLz/9fx8f9zhIT/VFVV/////////////////////////////////1RV
|
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/Q0VFzwAAAAA1NTVckp6e993z8//c8vP/3PLz/9nx
|
9/9S1vf/JmNy/wAAAP87JBP/pGU0/5tfMf8TDQj+BQUFbwAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||||
8v9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8aEw3/STUl/z4q
|
||||||
7/+2z9D/Oz097AAAAAA1NTUiYWho7N3z8//c8vP/3PLz/9zy8/+OoaL/HR4e/4iIiP+IiIj/iIiI/4iI
|
Gv4fEwr7BwUC2gAAAP8AAAD/Q67J/0a41P9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
|
||||||
iP+IiIj/iIiI/xwdHf+Po6T/0O7v/9Du7//Q7u//0O7v/67Fxv5CRUXpMzMzMgAAAAAAAAAAQUND69zx
|
xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP9DQ0P/ubm5/wcHB/kAAABXAAAAOQAAAP8AAAD/CBUZ/wAA
|
||||||
8v/c8vP/3PLz/9zy8//T7u//b39//0dQUP9HUFD/R1BQ/0dQUP9HUFD/R1BQ/3CAgP/P7e7/0O7v/9Du
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
7//Q7u//n7S0/D9BQeQyMjIkAAAAAAAAAAAAAAAAREZGwMPW1//c8vP/3PLz/9zy8//b8vP/0e7v/9Du
|
AP9QUFD//////5WVlfoUFBS8AAAAAAAAAP8AAAD/FzxF/0Ouyf9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
|
||||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Spab4P0FB1zExMRUAAAAAAAAAAAAA
|
1v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/IVZj/wAAAP9cXFz///////////9ERETwCgoKZQAA
|
||||||
AAAAAAAAOTk5dYiUlPzV6+z/3PLz/9zy8//c8vP/2PHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
AP8AAAD/QavF/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//z+3u/3yLi/ZBQ0PFLi4uCwAAAAAAAAAAAAAAAAAAAAAAAAAALy8vG0FDQ5xAQkLnZGlq7KCu
|
9/9S1vf/JmNy/wAAAP8GBgb5ExMT7xMTE+8QEBDxCgoK3gAAAPQAAAD/PaC5/1LW9/9S1vf/Utb3/1LW
|
||||||
rvzO4+P/3PLz/9jx8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//O6+z/anV28kBBQ6xAQEAEAAAAAAAA
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU1Ijs7O3VCRETWUVVV7oyWl/a5zM3/0u7v/9Du
|
AAAAAAAAAAAAAAAAALYAAAD/ECow/z2fuP9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
|
||||||
7//Q7u//0O7v/8vp6f9gaGjwPkFBnQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAACwAAAD3AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAMTExFTU4OGBDR0e+SEpK63F8fPChtrf/wd3e/1FXV+88QUFyAAAAAAAA
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAtgAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAALi4uCzIyMlFDRkavOzw87Ts+PlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAAAAAAAAAAAAAAAIAA
|
||||||
/0H+AP9B+AAPQfAAA0HgAANBwAADQYAAA0EAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA
|
D0EAAA9BAAAPQQAAD0EAAA9BAAAPQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA
|
||||||
AEGAAABBwAABQcAAA0HAAAdBwAAPQfgAH0H/AH9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
AEEAAABBAAABQQAAAEEAAABBAAAPQQAAD0EAAA9BgAAPQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpRUXhaYWLXUFVVsEFERE9AQEAIAAAAAAAA
|
AAAAAAAAAAAAAAAAAAAAAAAbAQMEuQECAvkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRaWo6jsLHw0O7v/8vo6f+mvLz4cHt721Va
|
AP8BAgLtAAAACwAAAAAAAAAAAQMEugYPEfspbH3/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxy
|
||||||
W8FGSkp1NTU1GAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVA1VbW622xsf21vDx/9Du7//Q7u//0O7v/9Du
|
hP8cSVT/AAAA/wAAABgAAAAAAAAAAAECAvkqbn//Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//O7O3/rMPE/XSAgeNXXV3INTU1IgAAAAAAAAAAJCQkB1leXru/0dH63PLz/9Pv8P/Q7u//0O7v/9Du
|
9/9S1vf/NIme/wAAAP8AAAAYAAAAAAAAAAAAAAD/LXWH/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//0O7v/9Du7//Q7u//ts/Q/0pQUHkAAAAALS0tEVthYcrJ3d793PLz/9vy8/9MVVX/tM7P/9Du
|
9/9S1vf/Utb3/zSJnv8AAAD/AAAAGAAAAAAAAAAAAAAA/y11h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
7//Q7u//tM7P/0xVVf/Q7u//0O7v/8/t7v9VW1u3AAAAAFheXtDR5ub/3PLz/9zy8//Y8fL/KCoq/zg7
|
9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wACHakAAiGgAAIbjgAAAP8tdYf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||||
O/+JnJz/iZyc/zc6Ov8oKir/0O7v/9Du7//Q7u//Y2tr0QAAAABocHHL3fPz/9zy8//c8vP/1vDx/z1A
|
9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8AB8X/AAer+wACJKIAAAD/LXWH/1LW9/9S1vf/Utb3/1LW
|
||||||
QP/39/f/aWtr/2lra//39/f/PUBA/9Du7//Q7u//0O7v/3yKiuUzMzMZUVhYqdjt7v/c8vP/3PLz/9Tw
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/AAjR/wcGKfYSCwXIAAAA/y11h/9S1vf/Utb3/1LW
|
||||||
8f89QED//////////////////////z1AQP/Q7u//0O7v/9Du7/+ovsD9QENDW0JFRV27zs/93PLz/9zy
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAI0v8KCUv9DwgIeQAAAP8tdYf/Utb3/1LW
|
||||||
8//U8PD/PUBA//////////////////////89QED/0O7v/9Du7//Q7u//y+jp/1FYWKY1NTUYkp6f6tzy
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8LCmX/AQVi/gECFugAAAD/LXWH/1LW
|
||||||
8//c8vP/1fDx/z1AQP//////////////////////PUBA/9Du7//Q7u//0O7v/9Du7/9eZ2fHAAAAAHN6
|
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/gVAp/1U3If8aFxXcAAAA/y11
|
||||||
etXc8vP/3PLz/9fx8f88Pz///////////////////////zw/P//Q7u//0O7v/9Du7//C3t7/UFdXzgAA
|
h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/0o/Nf8uIRb4DQkF0gAA
|
||||||
AABaYGC52/Ly/9zy8//a8vP/e4qL/zxAQP89QUH/PUFB/zxAQP98i4z/0O7v/9Du7/+81tf+U1pazTMz
|
AP8XPEX/EzE4/xArMf8QKzH/ECsx/xArMf8QKzH/ECsx/xArMf8QKzH/Chsg/wAAAP/n5+f/RkZG3AAA
|
||||||
MxQAAAAASlBQfMfb3P/c8vP/3PLz/9Xw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+vx8f6T1VVvjMz
|
ABYAAAD/ESwy/0rA3v9NyOf/Tcjn/03I5/9NyOf/Tcjn/03I5/9NyOf/Tcjn/zGAk/8AAAD/qamp/6Oj
|
||||||
MwoAAAAAAAAAADU1NSJbYmLJhpGS5r3P0P3a8fH/1O/w/9Du7//Q7u//0O7v/9Du7/+htrf0TVNTqlVV
|
o/8jIyPKAAEB/CRfbv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAA
|
||||||
VQMAAAAAAAAAAAAAAAAAAAAAAAAAADk5ORJGS0tiXGNjuneAgN+htLT3yeXm/9Du7/+TpabvS09PmgAA
|
AFYAAABEAAAAQAEDBLsGDxL7Km1+/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/HElU/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAIQURET1FXV7BaYWLXSlFReAAA
|
AP8AAAAYAAAAAAAAAAAAAAAcAQMEuwEBAvoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAA+D+sQfAHrEHAAaxBgAGsQQABrEEAAaxBAACsQQAArEEAAKxBAACsQYAA
|
AP8BAgLtAAAACwAAAAAAAAAAAAOsQQADrEEAA6xBAAOsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
|
||||||
rEGAAKxBgAGsQYADrEHgD6xB/B+sQQ==
|
rEEAAKxBAACsQQAArEEAA6xBAAOsQQ==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
26
Models/AppOptions.cs
Normal file
26
Models/AppOptions.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using bzit.bomg.Models;
|
||||||
|
|
||||||
|
namespace FizzyLauncher.Models
|
||||||
|
{
|
||||||
|
public class AppOptions
|
||||||
|
{
|
||||||
|
public bool RestorePosition { get; set; } = true;
|
||||||
|
|
||||||
|
public bool AlwaysOnTop { get; set; } = false;
|
||||||
|
|
||||||
|
public string RunCommand { get; set; } = "{0}";
|
||||||
|
|
||||||
|
//public bool IgnoreSSL { get; set; } = false;
|
||||||
|
|
||||||
|
public Point StartPosition { get; set; } = Point.Empty;
|
||||||
|
|
||||||
|
public int Width { get; set; } = 0;
|
||||||
|
|
||||||
|
public int Height { get; set; } = 0;
|
||||||
|
|
||||||
|
public List<BookmarkModel> Items { get; set; } = new List<BookmarkModel>();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,26 +0,0 @@
|
|||||||
namespace FizzyLauncher.Models
|
|
||||||
{
|
|
||||||
public class AppSession
|
|
||||||
{
|
|
||||||
public enum AutoSaveOption
|
|
||||||
{
|
|
||||||
Prompt = 0,
|
|
||||||
Yes,
|
|
||||||
No
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public bool EnableAutoPosition { get; set; } = true;
|
|
||||||
|
|
||||||
public bool AlwaysOnTop { get; set; } = false;
|
|
||||||
|
|
||||||
public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt;
|
|
||||||
|
|
||||||
public string RunCommand { get; set; } = "{0}";
|
|
||||||
|
|
||||||
public bool IgnoreSSL { get; set; } = false;
|
|
||||||
|
|
||||||
public bool ShowToolbar { get; set; } = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
using BookmarkManager;
|
|
||||||
using System;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace bzit.bomg.Models
|
|
||||||
{
|
|
||||||
public class BookmarkItem
|
|
||||||
{
|
|
||||||
public string SiteName { get; set; }
|
|
||||||
|
|
||||||
public string SiteAddress { get; set; }
|
|
||||||
|
|
||||||
public string SiteDescription { get; set; }
|
|
||||||
|
|
||||||
public string TreeviewPath { get; set; }
|
|
||||||
|
|
||||||
public string Notes { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public new string ToString()
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(this.SiteName))
|
|
||||||
{
|
|
||||||
sb.AppendLine("Name");
|
|
||||||
sb.AppendLine(this.SiteName + Environment.NewLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(this.SiteAddress))
|
|
||||||
{
|
|
||||||
sb.AppendLine("Address");
|
|
||||||
sb.AppendLine(this.SiteAddress + Environment.NewLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(this.SiteDescription))
|
|
||||||
{
|
|
||||||
sb.AppendLine("Description");
|
|
||||||
sb.AppendLine(this.SiteDescription + Environment.NewLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(this.Notes))
|
|
||||||
{
|
|
||||||
sb.AppendLine("Notes");
|
|
||||||
sb.AppendLine(this.Notes + Environment.NewLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string ToHash() => Crypto.GetSHA256Hash(this.SiteAddress);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
60
Models/BookmarkModel.cs
Normal file
60
Models/BookmarkModel.cs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace bzit.bomg.Models
|
||||||
|
{
|
||||||
|
public class BookmarkModel
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; } = Guid.NewGuid();
|
||||||
|
|
||||||
|
public string Title { get; set; }
|
||||||
|
|
||||||
|
public string Address { get; set; }
|
||||||
|
|
||||||
|
public string Description { get; set; }
|
||||||
|
|
||||||
|
public string IconId { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public Image Icon { get; set; }
|
||||||
|
|
||||||
|
public string Path { get; set; }
|
||||||
|
|
||||||
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public new string ToString()
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(this.Title))
|
||||||
|
{
|
||||||
|
sb.AppendLine("Name");
|
||||||
|
sb.AppendLine(this.Title + Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(this.Address))
|
||||||
|
{
|
||||||
|
sb.AppendLine("Address");
|
||||||
|
sb.AppendLine(this.Address + Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(this.Description))
|
||||||
|
{
|
||||||
|
sb.AppendLine("Description");
|
||||||
|
sb.AppendLine(this.Description + Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(this.Notes))
|
||||||
|
{
|
||||||
|
sb.AppendLine("Notes");
|
||||||
|
sb.AppendLine(this.Notes + Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
49
Models/R4SaveFileModel.cs
Normal file
49
Models/R4SaveFileModel.cs
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace BookmarkManager.Models
|
||||||
|
{
|
||||||
|
public class R4SaveFileModel
|
||||||
|
{
|
||||||
|
public string SiteName { get; set; }
|
||||||
|
|
||||||
|
public string SiteAddress { get; set; }
|
||||||
|
|
||||||
|
public string SiteDescription { get; set; }
|
||||||
|
|
||||||
|
public string TreeviewPath { get; set; }
|
||||||
|
|
||||||
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string Path
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(TreeviewPath))
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
var path = this.TreeviewPath?.Trim('\\')?.Trim() ?? string.Empty;
|
||||||
|
if (!path.Contains("\\"))
|
||||||
|
{
|
||||||
|
return path?.Trim() ?? string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
|
var parts = path.Split("\\");
|
||||||
|
for (var i = 1; i < parts.Length; i++)
|
||||||
|
{
|
||||||
|
var item = System.Web.HttpUtility.UrlDecode(parts[i]);
|
||||||
|
|
||||||
|
sb.Append(item);
|
||||||
|
sb.Append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.ToString()?.Trim() ?? string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
283
Net/WebParser.cs
283
Net/WebParser.cs
@ -1,283 +0,0 @@
|
|||||||
using bzit.bomg.Models;
|
|
||||||
using HtmlAgilityPack;
|
|
||||||
using RyzStudio.Net;
|
|
||||||
using System;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
|
|
||||||
namespace BookmarkManager
|
|
||||||
{
|
|
||||||
public class WebParser
|
|
||||||
{
|
|
||||||
protected HttpWeb webClient = null;
|
|
||||||
protected WebClient webClient2 = null;
|
|
||||||
|
|
||||||
|
|
||||||
public BookmarkResult RetrieveDetails(string url, bool ignoreSSL)
|
|
||||||
{
|
|
||||||
string sourceCode = retrieveSourceCode(url, ignoreSSL);
|
|
||||||
if (string.IsNullOrWhiteSpace(sourceCode))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
BookmarkResult rs = new BookmarkResult();
|
|
||||||
rs.Item = new BookmarkItem();
|
|
||||||
|
|
||||||
HtmlDocument document = new HtmlDocument();
|
|
||||||
document.LoadHtml(sourceCode);
|
|
||||||
|
|
||||||
rs.Item.SiteName = parseSiteTitle(document);
|
|
||||||
rs.Item.SiteAddress = url;
|
|
||||||
rs.Item.SiteDescription = parseSiteDescription(document);
|
|
||||||
rs.IconURL = parseSiteIcon(document);
|
|
||||||
|
|
||||||
// resolve relative URL
|
|
||||||
if (!string.IsNullOrWhiteSpace(rs.IconURL))
|
|
||||||
{
|
|
||||||
Uri iconAddressURI;
|
|
||||||
bool rv = Uri.TryCreate(new Uri(url), rs.IconURL, out iconAddressURI);
|
|
||||||
if (rv)
|
|
||||||
{
|
|
||||||
rs.IconURL = iconAddressURI.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return rs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Bitmap RetrieveImage(string url)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(url))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (webClient2 == null) webClient2 = new WebClient();
|
|
||||||
webClient2.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
byte[] byteData = webClient2.DownloadData(url);
|
|
||||||
|
|
||||||
if (!RyzStudio.IO.FileType.IsImage(byteData))
|
|
||||||
{
|
|
||||||
throw new Exception("Not a supported image");
|
|
||||||
}
|
|
||||||
|
|
||||||
Image img = Image.FromStream(new MemoryStream(byteData));
|
|
||||||
|
|
||||||
return new Bitmap(img, 16, 16);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected string retrieveSourceCode(string url, bool ignoreSSL)
|
|
||||||
{
|
|
||||||
if (webClient == null) webClient = new HttpWeb();
|
|
||||||
webClient.IgnoreSSL = ignoreSSL;
|
|
||||||
|
|
||||||
string sourceCode;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int statusCode = webClient.GetResponse(out sourceCode, url);
|
|
||||||
if ((statusCode == 200) || (statusCode == 301) || (statusCode == 302))
|
|
||||||
{
|
|
||||||
return sourceCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected string parseSiteDescription(HtmlDocument doc)
|
|
||||||
{
|
|
||||||
string rs = null;
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@name='description']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@property='og:description']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@name='twitter:description']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@property='og:description']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@itemprop='description']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rs;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected string parseSiteIcon(HtmlDocument doc)
|
|
||||||
{
|
|
||||||
string rs = null;
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'shortcut icon']", "href", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'icon']", "href", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon']", "href", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon-precomposed']", "href", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'twitter:image']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[translate(@itemprop, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'image']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = "/favicon.ico";
|
|
||||||
}
|
|
||||||
|
|
||||||
return rs;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected string parseSiteTitle(HtmlDocument doc)
|
|
||||||
{
|
|
||||||
string rs = null;
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue(doc, "//title", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@property='og:title']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@name='twitter:title']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@property='og:site_name']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
rs = parseTagValue_Attr(doc, "//meta[@itemprop='name']", "content", string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rs?.Trim() ?? string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected string parseTagValue(HtmlDocument doc, string xpath, string defaultValue = "")
|
|
||||||
{
|
|
||||||
HtmlNodeCollection hnc = doc.DocumentNode.SelectNodes(xpath);
|
|
||||||
if (hnc == null)
|
|
||||||
{
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hnc.Count <= 0)
|
|
||||||
{
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (HtmlNode hn in hnc)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(hn.InnerHtml))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
string rs = WebUtility.HtmlDecode(hn.InnerHtml)?.Replace("\r", "")?.Replace("\n", " ")?.Trim();
|
|
||||||
if (string.IsNullOrWhiteSpace(rs))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rs;
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected string parseTagValue_Attr(HtmlDocument doc, string xpath, string attr, string defaultValue = "")
|
|
||||||
{
|
|
||||||
HtmlNodeCollection hnc = doc.DocumentNode.SelectNodes(xpath);
|
|
||||||
if (hnc == null)
|
|
||||||
{
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hnc.Count <= 0)
|
|
||||||
{
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (HtmlNode hn in hnc)
|
|
||||||
{
|
|
||||||
if (hn.Attributes[attr] == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(hn.Attributes[attr].Value))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return System.Web.HttpUtility.HtmlDecode(hn.Attributes[attr].Value?.Trim());
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
583
OptionsForm.cs
583
OptionsForm.cs
@ -1,379 +1,310 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using FizzyLauncher.Models;
|
using FizzyLauncher.Models;
|
||||||
|
using RyzStudio.Windows.Forms;
|
||||||
using RyzStudio.Windows.ThemedForms;
|
using RyzStudio.Windows.ThemedForms;
|
||||||
using RyzStudio.Windows.ThemedForms.PickerBox;
|
using RyzStudio.Windows.ThemedForms.PickerBox;
|
||||||
|
|
||||||
namespace FizzyLauncher
|
namespace FizzyLauncher
|
||||||
{
|
{
|
||||||
public class OptionsForm : TDialogForm
|
public class OptionsForm : Form
|
||||||
{
|
{
|
||||||
private System.Windows.Forms.Label label1;
|
private FlowLayoutPanel flowLayoutPanel1;
|
||||||
private TButton button1;
|
private TTogglePanel panel1;
|
||||||
private TYesNoPickerBox pickerBox1;
|
private TTogglePanel panel3;
|
||||||
private System.Windows.Forms.Label label6;
|
private ThYesNoPickerBox yesNoPickerBox1;
|
||||||
private TYesNoPickerBox pickerBox2;
|
|
||||||
private System.Windows.Forms.Label label7;
|
|
||||||
private System.Windows.Forms.Label label8;
|
|
||||||
private TPickerBox pickerBox3;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
|
|
||||||
private TTextBox textBox1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
|
||||||
private TYesNoPickerBox pickerBox4;
|
|
||||||
private Label label2;
|
private Label label2;
|
||||||
private TYesNoPickerBox pickerBox5;
|
private TTogglePanel panel2;
|
||||||
|
private ThYesNoPickerBox thYesNoPickerBox1;
|
||||||
|
private Label label1;
|
||||||
|
private ThYesNoPickerBox yesNoPickerBox2;
|
||||||
private Label label3;
|
private Label label3;
|
||||||
protected MainForm parentForm = null;
|
private RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox textBox1;
|
||||||
|
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||||
|
private AppOptions _appSession = null;
|
||||||
|
|
||||||
|
|
||||||
public OptionsForm(MainForm parent) : base()
|
public OptionsForm(AppOptions appSession)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
parentForm = parent;
|
UISetup.Dialog(this);
|
||||||
|
|
||||||
pickerBox3.ComboBox.Items.Clear();
|
_appSession = appSession;
|
||||||
foreach (string item in Enum.GetNames(typeof(AppSession.AutoSaveOption)))
|
|
||||||
|
if (_appSession != null)
|
||||||
{
|
{
|
||||||
pickerBox3.ComboBox.Items.Add(item);
|
yesNoPickerBox1.Value = _appSession.RestorePosition;
|
||||||
|
|
||||||
|
yesNoPickerBox2.Value = _appSession.AlwaysOnTop;
|
||||||
|
|
||||||
|
textBox1.Text = _appSession.RunCommand ?? string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pickerBox3.ComboBox.Items.Count > 0) pickerBox3.ComboBox.SelectedIndex = 0;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
flowLayoutPanel1 = new FlowLayoutPanel();
|
||||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
panel1 = new TTogglePanel();
|
||||||
this.pickerBox1 = new TYesNoPickerBox();
|
yesNoPickerBox1 = new ThYesNoPickerBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
label2 = new Label();
|
||||||
this.pickerBox2 = new TYesNoPickerBox();
|
panel2 = new TTogglePanel();
|
||||||
this.label7 = new System.Windows.Forms.Label();
|
yesNoPickerBox2 = new ThYesNoPickerBox();
|
||||||
this.label8 = new System.Windows.Forms.Label();
|
thYesNoPickerBox1 = new ThYesNoPickerBox();
|
||||||
this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TPickerBox();
|
label1 = new Label();
|
||||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
panel3 = new TTogglePanel();
|
||||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
textBox1 = new RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox();
|
||||||
this.tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
label3 = new Label();
|
||||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||||
this.pickerBox4 = new TYesNoPickerBox();
|
flowLayoutPanel1.SuspendLayout();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
panel1.SuspendLayout();
|
||||||
this.pickerBox5 = new TYesNoPickerBox();
|
panel2.SuspendLayout();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
panel3.SuspendLayout();
|
||||||
this.SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// label1
|
// flowLayoutPanel1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
flowLayoutPanel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
flowLayoutPanel1.AutoScroll = true;
|
||||||
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.label1.Location = new System.Drawing.Point(10, 235);
|
flowLayoutPanel1.Controls.Add(panel1);
|
||||||
this.label1.Margin = new System.Windows.Forms.Padding(0);
|
flowLayoutPanel1.Controls.Add(panel2);
|
||||||
this.label1.Name = "label1";
|
flowLayoutPanel1.Controls.Add(panel3);
|
||||||
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
|
||||||
this.label1.Size = new System.Drawing.Size(109, 34);
|
flowLayoutPanel1.Location = new System.Drawing.Point(8, 12);
|
||||||
this.label1.TabIndex = 153;
|
flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||||
this.label1.Text = "Custom Command";
|
flowLayoutPanel1.Size = new System.Drawing.Size(436, 412);
|
||||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
flowLayoutPanel1.TabIndex = 194;
|
||||||
|
flowLayoutPanel1.WrapContents = false;
|
||||||
|
flowLayoutPanel1.Resize += flowLayoutPanel1_Resize;
|
||||||
//
|
//
|
||||||
// button1
|
// panel1
|
||||||
//
|
//
|
||||||
this.button1.AcceptButton = null;
|
panel1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||||
this.button1.ActiveImage = null;
|
panel1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
panel1.Controls.Add(yesNoPickerBox1);
|
||||||
this.button1.BackColor = System.Drawing.Color.Transparent;
|
panel1.Controls.Add(label2);
|
||||||
this.button1.HoverImage = null;
|
panel1.ExpandedHeight = 100;
|
||||||
this.button1.IdleImage = null;
|
panel1.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
|
||||||
this.button1.LabelText = "&Save";
|
panel1.IsOpen = true;
|
||||||
this.button1.Location = new System.Drawing.Point(241, 469);
|
panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
panel1.Margin = new Padding(0);
|
||||||
this.button1.Name = "button1";
|
panel1.Name = "panel1";
|
||||||
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
panel1.PaddingBottom = 0;
|
||||||
this.button1.Size = new System.Drawing.Size(128, 32);
|
panel1.PaddingLeft = 4;
|
||||||
this.button1.TabIndex = 6;
|
panel1.Size = new System.Drawing.Size(401, 77);
|
||||||
this.button1.TabStop = false;
|
panel1.TabIndex = 0;
|
||||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
panel1.Title = "On Start-Up";
|
||||||
|
panel1.TitleContextMenuStrip = null;
|
||||||
|
panel1.TitleCursor = Cursors.Default;
|
||||||
//
|
//
|
||||||
// pickerBox1
|
// yesNoPickerBox1
|
||||||
//
|
//
|
||||||
this.pickerBox1.AcceptButton = null;
|
yesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
yesNoPickerBox1.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.pickerBox1.BackColor = System.Drawing.Color.Transparent;
|
yesNoPickerBox1.EnableReactiveVisual = true;
|
||||||
this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
yesNoPickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
this.pickerBox1.Location = new System.Drawing.Point(285, 127);
|
yesNoPickerBox1.Location = new System.Drawing.Point(307, 22);
|
||||||
this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
yesNoPickerBox1.Name = "yesNoPickerBox1";
|
||||||
this.pickerBox1.Name = "pickerBox1";
|
yesNoPickerBox1.SelectedIndex = 1;
|
||||||
this.pickerBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
yesNoPickerBox1.Size = new System.Drawing.Size(84, 34);
|
||||||
this.pickerBox1.Size = new System.Drawing.Size(84, 35);
|
yesNoPickerBox1.TabIndex = 197;
|
||||||
this.pickerBox1.TabIndex = 2;
|
yesNoPickerBox1.TabStop = false;
|
||||||
this.pickerBox1.TabStop = false;
|
yesNoPickerBox1.Value = true;
|
||||||
this.pickerBox1.Value = true;
|
|
||||||
//
|
|
||||||
// label6
|
|
||||||
//
|
|
||||||
this.label6.AutoSize = true;
|
|
||||||
this.label6.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label6.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label6.Location = new System.Drawing.Point(10, 127);
|
|
||||||
this.label6.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label6.Name = "label6";
|
|
||||||
this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label6.Size = new System.Drawing.Size(145, 34);
|
|
||||||
this.label6.TabIndex = 182;
|
|
||||||
this.label6.Text = "Auto Position On Start-Up";
|
|
||||||
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// pickerBox2
|
|
||||||
//
|
|
||||||
this.pickerBox2.AcceptButton = null;
|
|
||||||
this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.pickerBox2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.pickerBox2.Location = new System.Drawing.Point(285, 168);
|
|
||||||
this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
|
||||||
this.pickerBox2.Name = "pickerBox2";
|
|
||||||
this.pickerBox2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.pickerBox2.Size = new System.Drawing.Size(84, 35);
|
|
||||||
this.pickerBox2.TabIndex = 3;
|
|
||||||
this.pickerBox2.TabStop = false;
|
|
||||||
this.pickerBox2.Value = true;
|
|
||||||
//
|
|
||||||
// label7
|
|
||||||
//
|
|
||||||
this.label7.AutoSize = true;
|
|
||||||
this.label7.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label7.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label7.Location = new System.Drawing.Point(10, 168);
|
|
||||||
this.label7.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label7.Name = "label7";
|
|
||||||
this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label7.Size = new System.Drawing.Size(89, 34);
|
|
||||||
this.label7.TabIndex = 184;
|
|
||||||
this.label7.Text = "Always-On-Top";
|
|
||||||
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// label8
|
|
||||||
//
|
|
||||||
this.label8.AutoSize = true;
|
|
||||||
this.label8.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label8.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label8.Location = new System.Drawing.Point(10, 21);
|
|
||||||
this.label8.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label8.Name = "label8";
|
|
||||||
this.label8.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label8.Size = new System.Drawing.Size(60, 34);
|
|
||||||
this.label8.TabIndex = 186;
|
|
||||||
this.label8.Text = "Auto Save";
|
|
||||||
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// pickerBox3
|
|
||||||
//
|
|
||||||
this.pickerBox3.AcceptButton = null;
|
|
||||||
this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.pickerBox3.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.pickerBox3.Location = new System.Drawing.Point(285, 21);
|
|
||||||
this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
|
||||||
this.pickerBox3.Name = "pickerBox3";
|
|
||||||
this.pickerBox3.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.pickerBox3.Size = new System.Drawing.Size(84, 35);
|
|
||||||
this.pickerBox3.TabIndex = 0;
|
|
||||||
this.pickerBox3.TabStop = false;
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator1
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
|
|
||||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
|
||||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator1.TabIndex = 188;
|
|
||||||
this.tHorizontalSeparator1.TabStop = false;
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator2
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator2.Location = new System.Drawing.Point(10, 59);
|
|
||||||
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
|
||||||
this.tHorizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator2.TabIndex = 190;
|
|
||||||
this.tHorizontalSeparator2.TabStop = false;
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator3
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator3.Location = new System.Drawing.Point(10, 206);
|
|
||||||
this.tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator3.Name = "tHorizontalSeparator3";
|
|
||||||
this.tHorizontalSeparator3.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator3.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator3.TabIndex = 191;
|
|
||||||
this.tHorizontalSeparator3.TabStop = false;
|
|
||||||
//
|
|
||||||
// textBox1
|
|
||||||
//
|
|
||||||
this.textBox1.AcceptButton = null;
|
|
||||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.textBox1.Location = new System.Drawing.Point(192, 234);
|
|
||||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.textBox1.Name = "textBox1";
|
|
||||||
this.textBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.textBox1.ReadOnly = false;
|
|
||||||
this.textBox1.Size = new System.Drawing.Size(177, 35);
|
|
||||||
this.textBox1.TabIndex = 4;
|
|
||||||
this.textBox1.TabStop = false;
|
|
||||||
this.textBox1.UseSystemPasswordChar = false;
|
|
||||||
//
|
|
||||||
// pickerBox4
|
|
||||||
//
|
|
||||||
this.pickerBox4.AcceptButton = null;
|
|
||||||
this.pickerBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.pickerBox4.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.pickerBox4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.pickerBox4.Location = new System.Drawing.Point(285, 279);
|
|
||||||
this.pickerBox4.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
|
||||||
this.pickerBox4.Name = "pickerBox4";
|
|
||||||
this.pickerBox4.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.pickerBox4.Size = new System.Drawing.Size(84, 35);
|
|
||||||
this.pickerBox4.TabIndex = 5;
|
|
||||||
this.pickerBox4.TabStop = false;
|
|
||||||
this.pickerBox4.Value = true;
|
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
label2.AutoSize = true;
|
||||||
this.label2.BackColor = System.Drawing.Color.Transparent;
|
label2.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.label2.Location = new System.Drawing.Point(10, 279);
|
label2.Location = new System.Drawing.Point(1, 22);
|
||||||
this.label2.Margin = new System.Windows.Forms.Padding(0);
|
label2.Margin = new Padding(0);
|
||||||
this.label2.Name = "label2";
|
label2.Name = "label2";
|
||||||
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
label2.Padding = new Padding(0, 8, 0, 0);
|
||||||
this.label2.Size = new System.Drawing.Size(95, 34);
|
label2.Size = new System.Drawing.Size(92, 23);
|
||||||
this.label2.TabIndex = 193;
|
label2.TabIndex = 196;
|
||||||
this.label2.Text = "Ignore SSL Errors";
|
label2.Text = "Restore Position";
|
||||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
//
|
//
|
||||||
// pickerBox5
|
// panel2
|
||||||
//
|
//
|
||||||
this.pickerBox5.AcceptButton = null;
|
panel2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||||
this.pickerBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
panel2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||||
this.pickerBox5.BackColor = System.Drawing.Color.Transparent;
|
panel2.Controls.Add(yesNoPickerBox2);
|
||||||
this.pickerBox5.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
panel2.Controls.Add(thYesNoPickerBox1);
|
||||||
this.pickerBox5.Location = new System.Drawing.Point(285, 85);
|
panel2.Controls.Add(label1);
|
||||||
this.pickerBox5.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
panel2.ExpandedHeight = 100;
|
||||||
this.pickerBox5.Name = "pickerBox5";
|
panel2.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
|
||||||
this.pickerBox5.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
panel2.IsOpen = true;
|
||||||
this.pickerBox5.Size = new System.Drawing.Size(84, 35);
|
panel2.Location = new System.Drawing.Point(0, 77);
|
||||||
this.pickerBox5.TabIndex = 1;
|
panel2.Margin = new Padding(0);
|
||||||
this.pickerBox5.TabStop = false;
|
panel2.Name = "panel2";
|
||||||
this.pickerBox5.Value = true;
|
panel2.PaddingBottom = 0;
|
||||||
|
panel2.PaddingLeft = 4;
|
||||||
|
panel2.Size = new System.Drawing.Size(401, 77);
|
||||||
|
panel2.TabIndex = 2;
|
||||||
|
panel2.Title = "Appearance";
|
||||||
|
panel2.TitleContextMenuStrip = null;
|
||||||
|
panel2.TitleCursor = Cursors.Default;
|
||||||
|
//
|
||||||
|
// yesNoPickerBox2
|
||||||
|
//
|
||||||
|
yesNoPickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
yesNoPickerBox2.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
yesNoPickerBox2.EnableReactiveVisual = true;
|
||||||
|
yesNoPickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
|
yesNoPickerBox2.Location = new System.Drawing.Point(307, 22);
|
||||||
|
yesNoPickerBox2.Name = "yesNoPickerBox2";
|
||||||
|
yesNoPickerBox2.SelectedIndex = 1;
|
||||||
|
yesNoPickerBox2.Size = new System.Drawing.Size(84, 34);
|
||||||
|
yesNoPickerBox2.TabIndex = 198;
|
||||||
|
yesNoPickerBox2.TabStop = false;
|
||||||
|
yesNoPickerBox2.Value = true;
|
||||||
|
//
|
||||||
|
// thYesNoPickerBox1
|
||||||
|
//
|
||||||
|
thYesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
thYesNoPickerBox1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
thYesNoPickerBox1.EnableReactiveVisual = true;
|
||||||
|
thYesNoPickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
|
thYesNoPickerBox1.Location = new System.Drawing.Point(508, 22);
|
||||||
|
thYesNoPickerBox1.Name = "thYesNoPickerBox1";
|
||||||
|
thYesNoPickerBox1.SelectedIndex = 1;
|
||||||
|
thYesNoPickerBox1.Size = new System.Drawing.Size(84, 34);
|
||||||
|
thYesNoPickerBox1.TabIndex = 197;
|
||||||
|
thYesNoPickerBox1.TabStop = false;
|
||||||
|
thYesNoPickerBox1.Value = true;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
label1.Location = new System.Drawing.Point(1, 22);
|
||||||
|
label1.Margin = new Padding(0);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label1.Size = new System.Drawing.Size(85, 23);
|
||||||
|
label1.TabIndex = 196;
|
||||||
|
label1.Text = "Always On Top";
|
||||||
|
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
panel3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||||
|
panel3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||||
|
panel3.Controls.Add(textBox1);
|
||||||
|
panel3.Controls.Add(label3);
|
||||||
|
panel3.ExpandedHeight = 100;
|
||||||
|
panel3.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
|
||||||
|
panel3.IsOpen = true;
|
||||||
|
panel3.Location = new System.Drawing.Point(0, 154);
|
||||||
|
panel3.Margin = new Padding(0);
|
||||||
|
panel3.Name = "panel3";
|
||||||
|
panel3.PaddingBottom = 0;
|
||||||
|
panel3.PaddingLeft = 4;
|
||||||
|
panel3.Size = new System.Drawing.Size(401, 77);
|
||||||
|
panel3.TabIndex = 1;
|
||||||
|
panel3.Title = "Behaviour";
|
||||||
|
panel3.TitleContextMenuStrip = null;
|
||||||
|
panel3.TitleCursor = Cursors.Default;
|
||||||
|
//
|
||||||
|
// textBox1
|
||||||
|
//
|
||||||
|
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
textBox1.ClearedValue = "{0}";
|
||||||
|
textBox1.EnableReactiveVisual = true;
|
||||||
|
textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
|
textBox1.Icon = "O";
|
||||||
|
textBox1.IconSize = 13F;
|
||||||
|
textBox1.Location = new System.Drawing.Point(161, 21);
|
||||||
|
textBox1.Name = "textBox1";
|
||||||
|
textBox1.Size = new System.Drawing.Size(230, 32);
|
||||||
|
textBox1.TabIndex = 203;
|
||||||
|
textBox1.TabStop = false;
|
||||||
|
textBox1.UseSystemPasswordChar = false;
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
this.label3.AutoSize = true;
|
label3.AutoSize = true;
|
||||||
this.label3.BackColor = System.Drawing.Color.Transparent;
|
label3.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
|
label3.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.label3.Location = new System.Drawing.Point(10, 85);
|
label3.Location = new System.Drawing.Point(1, 21);
|
||||||
this.label3.Margin = new System.Windows.Forms.Padding(0);
|
label3.Margin = new Padding(0);
|
||||||
this.label3.Name = "label3";
|
label3.Name = "label3";
|
||||||
this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
label3.Padding = new Padding(0, 8, 0, 0);
|
||||||
this.label3.Size = new System.Drawing.Size(112, 34);
|
label3.Size = new System.Drawing.Size(88, 23);
|
||||||
this.label3.TabIndex = 195;
|
label3.TabIndex = 199;
|
||||||
this.label3.Text = "Show Toolbar Menu";
|
label3.Text = "Run Command";
|
||||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// dialogFooter1
|
||||||
|
//
|
||||||
|
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
|
||||||
|
dialogFooter1.Button1Text = "&Save";
|
||||||
|
dialogFooter1.Dialog = this;
|
||||||
|
dialogFooter1.Dock = DockStyle.Bottom;
|
||||||
|
dialogFooter1.Location = new System.Drawing.Point(0, 437);
|
||||||
|
dialogFooter1.Name = "dialogFooter1";
|
||||||
|
dialogFooter1.Size = new System.Drawing.Size(444, 84);
|
||||||
//
|
//
|
||||||
// OptionsForm
|
// OptionsForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(384, 521);
|
BackColor = System.Drawing.Color.White;
|
||||||
this.Controls.Add(this.pickerBox5);
|
ClientSize = new System.Drawing.Size(444, 521);
|
||||||
this.Controls.Add(this.label3);
|
Controls.Add(dialogFooter1);
|
||||||
this.Controls.Add(this.pickerBox4);
|
Controls.Add(flowLayoutPanel1);
|
||||||
this.Controls.Add(this.label2);
|
MinimumSize = new System.Drawing.Size(460, 560);
|
||||||
this.Controls.Add(this.textBox1);
|
Name = "OptionsForm";
|
||||||
this.Controls.Add(this.tHorizontalSeparator3);
|
Text = "Options";
|
||||||
this.Controls.Add(this.tHorizontalSeparator2);
|
flowLayoutPanel1.ResumeLayout(false);
|
||||||
this.Controls.Add(this.tHorizontalSeparator1);
|
panel1.ResumeLayout(false);
|
||||||
this.Controls.Add(this.pickerBox3);
|
panel1.PerformLayout();
|
||||||
this.Controls.Add(this.label8);
|
panel2.ResumeLayout(false);
|
||||||
this.Controls.Add(this.pickerBox2);
|
panel2.PerformLayout();
|
||||||
this.Controls.Add(this.label7);
|
panel3.ResumeLayout(false);
|
||||||
this.Controls.Add(this.pickerBox1);
|
panel3.PerformLayout();
|
||||||
this.Controls.Add(this.label6);
|
ResumeLayout(false);
|
||||||
this.Controls.Add(this.button1);
|
|
||||||
this.Controls.Add(this.label1);
|
|
||||||
this.MinimumSize = new System.Drawing.Size(400, 560);
|
|
||||||
this.Name = "OptionsForm";
|
|
||||||
this.Text = "Options";
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnShown(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnShown(e);
|
base.OnLoad(e);
|
||||||
|
|
||||||
if (parentForm == null)
|
flowLayoutPanel1_Resize(null, e);
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parentForm.CurrentSession == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pickerBox3.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave;
|
|
||||||
pickerBox1.Value = parentForm.CurrentSession.EnableAutoPosition;
|
|
||||||
pickerBox2.Value = parentForm.CurrentSession.AlwaysOnTop;
|
|
||||||
textBox1.Text = parentForm.CurrentSession.RunCommand ?? string.Empty;
|
|
||||||
pickerBox4.Value = parentForm.CurrentSession.IgnoreSSL;
|
|
||||||
pickerBox5.Value = parentForm.CurrentSession.ShowToolbar;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
private void flowLayoutPanel1_Resize(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (parentForm != null)
|
var width = flowLayoutPanel1.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth;
|
||||||
|
|
||||||
|
foreach (var item in flowLayoutPanel1.Controls.OfType<Control>())
|
||||||
{
|
{
|
||||||
if (parentForm.CurrentSession == null) parentForm.CurrentSession = new AppSession();
|
item.Width = width;
|
||||||
|
|
||||||
parentForm.CurrentSession.AutoSave = (AppSession.AutoSaveOption)pickerBox3.ComboBox.SelectedIndex;
|
|
||||||
parentForm.CurrentSession.EnableAutoPosition = pickerBox1.Value;
|
|
||||||
parentForm.CurrentSession.AlwaysOnTop = pickerBox2.Value;
|
|
||||||
parentForm.CurrentSession.RunCommand = textBox1.Text?.Trim();
|
|
||||||
parentForm.CurrentSession.IgnoreSSL = pickerBox4.Value;
|
|
||||||
parentForm.CurrentSession.ShowToolbar = pickerBox5.Value;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.DialogResult = DialogResult.OK;
|
public AppOptions Result
|
||||||
this.Close();
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_appSession == null)
|
||||||
|
{
|
||||||
|
_appSession = new AppOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
_appSession.RestorePosition = yesNoPickerBox1.Value;
|
||||||
|
|
||||||
|
_appSession.AlwaysOnTop = yesNoPickerBox2.Value;
|
||||||
|
|
||||||
|
_appSession.RunCommand = textBox1.Text ?? string.Empty;
|
||||||
|
|
||||||
|
return _appSession;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
147
PasswordForm.cs
147
PasswordForm.cs
@ -1,147 +0,0 @@
|
|||||||
using RyzStudio.Windows.ThemedForms;
|
|
||||||
using System;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
|
|
||||||
namespace FizzyLauncher
|
|
||||||
{
|
|
||||||
public class PasswordForm : TDialogForm
|
|
||||||
{
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private TButton button1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
|
||||||
private TTextBox textBox1;
|
|
||||||
|
|
||||||
|
|
||||||
public PasswordForm()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
textBox1.TextBox.MaxLength = 255;
|
|
||||||
textBox1.PreviewKeyDown += textBox1_PreviewKeyDown;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
|
||||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
|
||||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// label1
|
|
||||||
//
|
|
||||||
this.label1.AutoSize = true;
|
|
||||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.label1.Location = new System.Drawing.Point(10, 21);
|
|
||||||
this.label1.Margin = new System.Windows.Forms.Padding(0);
|
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
|
||||||
this.label1.Size = new System.Drawing.Size(57, 34);
|
|
||||||
this.label1.TabIndex = 153;
|
|
||||||
this.label1.Text = "Password";
|
|
||||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
|
||||||
//
|
|
||||||
// button1
|
|
||||||
//
|
|
||||||
this.button1.ActiveImage = null;
|
|
||||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.button1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.button1.HoverImage = null;
|
|
||||||
this.button1.IdleImage = null;
|
|
||||||
this.button1.LabelText = "&OK";
|
|
||||||
this.button1.Location = new System.Drawing.Point(321, 99);
|
|
||||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.button1.Size = new System.Drawing.Size(128, 32);
|
|
||||||
this.button1.TabIndex = 1;
|
|
||||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator1
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 67);
|
|
||||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
|
||||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
|
||||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(444, 22);
|
|
||||||
this.tHorizontalSeparator1.TabIndex = 188;
|
|
||||||
this.tHorizontalSeparator1.TabStop = false;
|
|
||||||
//
|
|
||||||
// textBox1
|
|
||||||
//
|
|
||||||
this.textBox1.AcceptButton = this.button1;
|
|
||||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
|
||||||
this.textBox1.Location = new System.Drawing.Point(121, 20);
|
|
||||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.textBox1.Name = "textBox1";
|
|
||||||
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
|
|
||||||
this.textBox1.ReadOnly = false;
|
|
||||||
this.textBox1.Size = new System.Drawing.Size(328, 35);
|
|
||||||
this.textBox1.TabIndex = 0;
|
|
||||||
this.textBox1.UseSystemPasswordChar = true;
|
|
||||||
//
|
|
||||||
// PasswordForm
|
|
||||||
//
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
|
||||||
this.ClientSize = new System.Drawing.Size(464, 151);
|
|
||||||
this.Controls.Add(this.textBox1);
|
|
||||||
this.Controls.Add(this.tHorizontalSeparator1);
|
|
||||||
this.Controls.Add(this.button1);
|
|
||||||
this.Controls.Add(this.label1);
|
|
||||||
this.MinimumSize = new System.Drawing.Size(480, 190);
|
|
||||||
this.Name = "PasswordForm";
|
|
||||||
this.Text = "Password";
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnShown(EventArgs e)
|
|
||||||
{
|
|
||||||
base.OnShown(e);
|
|
||||||
|
|
||||||
textBox1.Focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[Browsable(false)]
|
|
||||||
public string Password => textBox1.Text;
|
|
||||||
|
|
||||||
|
|
||||||
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
|
||||||
{
|
|
||||||
switch (e.KeyCode)
|
|
||||||
{
|
|
||||||
case Keys.Enter:
|
|
||||||
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
|
|
||||||
break;
|
|
||||||
case Keys.Escape:
|
|
||||||
this.Close();
|
|
||||||
break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.Button == MouseButtons.Left)
|
|
||||||
{
|
|
||||||
this.DialogResult = DialogResult.OK;
|
|
||||||
this.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
<root>
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
Binary file not shown.
@ -1,75 +0,0 @@
|
|||||||
{
|
|
||||||
"runtimeTarget": {
|
|
||||||
"name": ".NETCoreApp,Version=v6.0/win-x64",
|
|
||||||
"signature": ""
|
|
||||||
},
|
|
||||||
"compilationOptions": {},
|
|
||||||
"targets": {
|
|
||||||
".NETCoreApp,Version=v6.0": {},
|
|
||||||
".NETCoreApp,Version=v6.0/win-x64": {
|
|
||||||
"Ryz3core/0.1.5.035": {
|
|
||||||
"dependencies": {
|
|
||||||
"HtmlAgilityPack": "1.11.46",
|
|
||||||
"System.Data.SQLite.Core": "1.0.117"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"Ryz3core.dll": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"HtmlAgilityPack/1.11.46": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/netstandard2.0/HtmlAgilityPack.dll": {
|
|
||||||
"assemblyVersion": "1.11.46.0",
|
|
||||||
"fileVersion": "1.11.46.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Stub.System.Data.SQLite.Core.NetStandard/1.0.117": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/netstandard2.1/System.Data.SQLite.dll": {
|
|
||||||
"assemblyVersion": "1.0.117.0",
|
|
||||||
"fileVersion": "1.0.117.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"native": {
|
|
||||||
"runtimes/win-x64/native/SQLite.Interop.dll": {
|
|
||||||
"fileVersion": "1.0.117.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"System.Data.SQLite.Core/1.0.117": {
|
|
||||||
"dependencies": {
|
|
||||||
"Stub.System.Data.SQLite.Core.NetStandard": "1.0.117"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"libraries": {
|
|
||||||
"Ryz3core/0.1.5.035": {
|
|
||||||
"type": "project",
|
|
||||||
"serviceable": false,
|
|
||||||
"sha512": ""
|
|
||||||
},
|
|
||||||
"HtmlAgilityPack/1.11.46": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-dLMn4EVfJBHWmWK4Uh0XGD76FPLHI0qr2Tm0s1m/xmgiHb1JUb9zB8AzO8HtrkBBlMN6JfCUBYddhqC0hZNR+g==",
|
|
||||||
"path": "htmlagilitypack/1.11.46",
|
|
||||||
"hashPath": "htmlagilitypack.1.11.46.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Stub.System.Data.SQLite.Core.NetStandard/1.0.117": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-x1zzPC/A4MmiKGDLoxLE6O5KLu7Kz7dyzhPQzlqYFTFcXmXAtM7hNNWpGw5yLEz833AnGbd/kxoitXArgR4YyA==",
|
|
||||||
"path": "stub.system.data.sqlite.core.netstandard/1.0.117",
|
|
||||||
"hashPath": "stub.system.data.sqlite.core.netstandard.1.0.117.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Data.SQLite.Core/1.0.117": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-lGfOhA3QQod9XhdWYqLgNgbgq5uZnVG6DtnhDAdPisbLpTTgZBNbeGnp+GWt8C+3EyaqBYTGJWXcxHlHKwo05A==",
|
|
||||||
"path": "system.data.sqlite.core/1.0.117",
|
|
||||||
"hashPath": "system.data.sqlite.core.1.0.117.nupkg.sha512"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Resources/icon-64.png
Normal file
BIN
Resources/icon-64.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
@ -1,56 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace RyzStudio.IO
|
|
||||||
{
|
|
||||||
public class FileType
|
|
||||||
{
|
|
||||||
protected static readonly byte[] BMP = { 66, 77 };
|
|
||||||
protected static readonly byte[] GIF = { 71, 73, 70, 56 };
|
|
||||||
protected static readonly byte[] ICO = { 0, 0, 1, 0 };
|
|
||||||
protected static readonly byte[] JPG = { 255, 216, 255 };
|
|
||||||
protected static readonly byte[] PNG = { 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82 };
|
|
||||||
|
|
||||||
public static bool IsImage(byte[] byteArray)
|
|
||||||
{
|
|
||||||
if (byteArray == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Length <= 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Take(2).SequenceEqual(BMP))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Take(4).SequenceEqual(GIF))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Take(4).SequenceEqual(ICO))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Take(3).SequenceEqual(JPG))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArray.Take(16).SequenceEqual(PNG))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,241 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using ICSharpCode.SharpZipLib.Zip;
|
|
||||||
|
|
||||||
namespace RyzStudio.IO
|
|
||||||
{
|
|
||||||
public class SharpZipLib
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
public static bool IsZipEncrypted(string filename)
|
|
||||||
{
|
|
||||||
bool rv = false;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ZipInputStream readStream = new ZipInputStream(System.IO.File.OpenRead(filename));
|
|
||||||
|
|
||||||
ZipEntry theEntry = null;
|
|
||||||
while ((theEntry = readStream.GetNextEntry()) != null)
|
|
||||||
{
|
|
||||||
if (theEntry.IsCrypted)
|
|
||||||
{
|
|
||||||
rv = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
readStream.Close();
|
|
||||||
readStream.Dispose();
|
|
||||||
readStream = null;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
//public static void AddFile(ZipOutputStream zipStream, string filename, string prefixPath = null)
|
|
||||||
//{
|
|
||||||
// byte[] buffer = new byte[4096];
|
|
||||||
|
|
||||||
// string f1 = "";
|
|
||||||
// if (prefixPath != null)
|
|
||||||
// {
|
|
||||||
// f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\";
|
|
||||||
// f1 = f1.Replace(prefixPath, "").TrimEnd('\\') + "\\";
|
|
||||||
// f1 = f1 + Path.GetFileName(filename);
|
|
||||||
// f1 = f1.TrimStart('\\');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ZipEntry entry = new ZipEntry(f1);
|
|
||||||
// entry.DateTime = DateTime.Now;
|
|
||||||
|
|
||||||
// zipStream.PutNextEntry(entry);
|
|
||||||
|
|
||||||
// FileStream fs = File.OpenRead(filename);
|
|
||||||
|
|
||||||
// int sourceBytes;
|
|
||||||
|
|
||||||
// do
|
|
||||||
// {
|
|
||||||
// sourceBytes = fs.Read(buffer, 0, buffer.Length);
|
|
||||||
// zipStream.Write(buffer, 0, sourceBytes);
|
|
||||||
// }
|
|
||||||
// while (sourceBytes > 0);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public static void AddFolder(ZipOutputStream zipstream, string folderpath, string prefixpath = null)
|
|
||||||
//{
|
|
||||||
// foreach (string fn in Directory.GetFiles(folderpath, "*.*", System.IO.SearchOption.AllDirectories))
|
|
||||||
// {
|
|
||||||
// AddFile(zipstream, fn, prefixpath);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
public static string ReadSingle(string filename, string password, string entryFilename)
|
|
||||||
{
|
|
||||||
string rv = null;
|
|
||||||
|
|
||||||
int size = 2048;
|
|
||||||
byte[] buffer = new byte[size];
|
|
||||||
int bufferSize = 0;
|
|
||||||
|
|
||||||
ZipEntry readEntry = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
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(entryFilename))
|
|
||||||
{
|
|
||||||
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);
|
|
||||||
rv = sr.ReadToEnd();
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
readStream.Flush();
|
|
||||||
readStream.Close();
|
|
||||||
readStream.Dispose();
|
|
||||||
readStream = null;
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool TestArchive(string filename, string password = null)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(filename))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!File.Exists(filename))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ZipEntry readEntry = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ZipInputStream readStream = new ZipInputStream(System.IO.File.OpenRead(filename));
|
|
||||||
readStream.Password = password;
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
readEntry = readStream.GetNextEntry();
|
|
||||||
if (readEntry == null)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//break;
|
|
||||||
}
|
|
||||||
|
|
||||||
readStream.Close();
|
|
||||||
readStream.Dispose();
|
|
||||||
readStream = null;
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool CreateSingle(string filename, string password, string entryFilename, string content)
|
|
||||||
{
|
|
||||||
int size = 2048;
|
|
||||||
byte[] buffer = new byte[size];
|
|
||||||
int bufferSize = 0;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ZipOutputStream zipStream = new ZipOutputStream(File.Create(filename));
|
|
||||||
zipStream.SetLevel(9);
|
|
||||||
zipStream.Password = password;
|
|
||||||
|
|
||||||
// stream
|
|
||||||
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content));
|
|
||||||
ms.Position = 0;
|
|
||||||
|
|
||||||
// write file entry
|
|
||||||
zipStream.PutNextEntry(new ZipEntry(entryFilename));
|
|
||||||
|
|
||||||
buffer = new byte[size];
|
|
||||||
bufferSize = 0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
bufferSize = ms.Read(buffer, 0, buffer.Length);
|
|
||||||
zipStream.Write(buffer, 0, bufferSize);
|
|
||||||
}
|
|
||||||
while (bufferSize > 0);
|
|
||||||
|
|
||||||
ms.Flush();
|
|
||||||
ms.Close();
|
|
||||||
ms.Dispose();
|
|
||||||
ms = null;
|
|
||||||
|
|
||||||
zipStream.Finish();
|
|
||||||
zipStream.Flush();
|
|
||||||
zipStream.Close();
|
|
||||||
zipStream.Dispose();
|
|
||||||
zipStream = null;
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
355
Services/WebProvider.cs
Normal file
355
Services/WebProvider.cs
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Net;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using HtmlAgilityPack;
|
||||||
|
using RyzStudio.Net;
|
||||||
|
|
||||||
|
namespace BookmarkManager.Services
|
||||||
|
{
|
||||||
|
public class WebProvider
|
||||||
|
{
|
||||||
|
private readonly WebClientProvider _webClientProvider;
|
||||||
|
|
||||||
|
|
||||||
|
public WebProvider()
|
||||||
|
{
|
||||||
|
_webClientProvider = new WebClientProvider();
|
||||||
|
_webClientProvider.Timeout = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool IgnoreSSL
|
||||||
|
{
|
||||||
|
get => _webClientProvider.IgnoreSSL;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_webClientProvider.IgnoreSSL = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<HtmlAgilityPack.HtmlDocument> RetrieveHtmlDocument(string url)
|
||||||
|
{
|
||||||
|
var sourceCode = await this.RetrieveSourceCode(url);
|
||||||
|
if (string.IsNullOrWhiteSpace(sourceCode))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var document = new HtmlAgilityPack.HtmlDocument();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
document.LoadHtml(sourceCode);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return document;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> RetrieveSourceCode(string url)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(url))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Uri.TryCreate(url, UriKind.Absolute, out Uri uri))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.Net.Http.HttpResponseMessage response;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
response = await _webClientProvider.Get(url?.Trim());
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sourceCode = "";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
sourceCode = await response?.Content?.ReadAsStringAsync();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(sourceCode))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sourceCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Image> RetrieveImage(string url)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(url))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Uri.TryCreate(url, UriKind.Absolute, out Uri uri))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.Net.Http.HttpResponseMessage response;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
response = await _webClientProvider.Get(url?.Trim());
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var stream = await response?.Content?.ReadAsStreamAsync();
|
||||||
|
|
||||||
|
Image result = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = Image.FromStream(stream);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Image> RetrieveImage(HtmlAgilityPack.HtmlDocument document)
|
||||||
|
{
|
||||||
|
var iconUrl = this.ParseFavicon(document);
|
||||||
|
if (string.IsNullOrWhiteSpace(iconUrl))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return await this.RetrieveImage(iconUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ParseTitle(HtmlAgilityPack.HtmlDocument document)
|
||||||
|
{
|
||||||
|
string result = null;
|
||||||
|
|
||||||
|
result = ParseTagValue(document, "//title", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@property='og:title']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@name='twitter:title']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@property='og:site_name']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@itemprop='name']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ParseMetaDescription(HtmlAgilityPack.HtmlDocument document)
|
||||||
|
{
|
||||||
|
string result = null;
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@name='description']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@property='og:description']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@name='twitter:description']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@property='og:description']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[@itemprop='description']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ParseFavicon(HtmlAgilityPack.HtmlDocument document)
|
||||||
|
{
|
||||||
|
string result = null;
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'shortcut icon']", "href", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'icon']", "href", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon']", "href", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon-precomposed']", "href", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'twitter:image']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ParseTagValue_Attr(document, "//meta[translate(@itemprop, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'image']", "content", string.Empty)?.Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "/favicon.ico";
|
||||||
|
}
|
||||||
|
|
||||||
|
private string ParseTagValue(HtmlAgilityPack.HtmlDocument document, string xPath, string defaultValue = "")
|
||||||
|
{
|
||||||
|
var hnc = document.DocumentNode.SelectNodes(xPath);
|
||||||
|
if (hnc == null)
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hnc.Count <= 0)
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (HtmlNode hn in hnc)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(hn.InnerHtml))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = WebUtility.HtmlDecode(hn.InnerHtml)?.Replace("\r", "")?.Replace("\n", " ")?.Trim();
|
||||||
|
if (string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string ParseTagValue_Attr(HtmlAgilityPack.HtmlDocument document, string xPath, string attr, string defaultValue = "")
|
||||||
|
{
|
||||||
|
var hnc = document.DocumentNode.SelectNodes(xPath);
|
||||||
|
if (hnc == null)
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hnc.Count <= 0)
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (HtmlNode hn in hnc)
|
||||||
|
{
|
||||||
|
if (hn.Attributes[attr] == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(hn.Attributes[attr].Value))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return System.Web.HttpUtility.HtmlDecode(hn.Attributes[attr].Value?.Trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,359 +1,438 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.ComponentModel;
|
||||||
using System.Net;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using BookmarkManager;
|
using BookmarkManager.Services;
|
||||||
using bzit.bomg.Models;
|
using bzit.bomg.Models;
|
||||||
using FizzyLauncher.Models;
|
|
||||||
using RyzStudio;
|
|
||||||
using RyzStudio.IO;
|
|
||||||
using RyzStudio.Windows.Forms;
|
using RyzStudio.Windows.Forms;
|
||||||
using RyzStudio.Windows.ThemedForms;
|
using RyzStudio.Windows.ThemedForms;
|
||||||
using RyzStudio.Windows.ThemedForms.PickerBox;
|
using RyzStudio.Windows.ThemedForms.PickerBox;
|
||||||
|
|
||||||
namespace FizzyLauncher
|
namespace FizzyLauncher
|
||||||
{
|
{
|
||||||
public class UpdateIconsForm : TDialogForm
|
public class UpdateIconsForm : Form
|
||||||
{
|
{
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private TButton button1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
|
||||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
||||||
private Label label2;
|
private Label label2;
|
||||||
private PictureBox pictureBox2;
|
private PictureBox pictureBox2;
|
||||||
|
private ThYesNoPickerBox pickerBox1;
|
||||||
private ToolTip toolTip1;
|
private ThButton button2;
|
||||||
private System.ComponentModel.IContainer components;
|
private RyzStudio.Windows.ThemedForms.ThProgressBar progressBar1;
|
||||||
|
|
||||||
protected BookmarkTreeView bookmarkTreeView = null;
|
|
||||||
protected IconDatabase iconDatabase = null;
|
|
||||||
protected AppSession appSession = null;
|
|
||||||
|
|
||||||
protected WebParser webParser = null;
|
|
||||||
protected WebClient webClient = null;
|
|
||||||
private TYesNoPickerBox pickerBox1;
|
|
||||||
private TButton button2;
|
|
||||||
|
|
||||||
|
|
||||||
private RyzStudio.Windows.ThemedForms.TProgressBar progressBar1;
|
private readonly WebProvider _webProvider;
|
||||||
protected bool requestCancellation = false;
|
private BookmarkTreeView _treeView;
|
||||||
|
private bool _isBusy = false;
|
||||||
|
private Label label4;
|
||||||
|
private THorizontalSeparator tHorizontalSeparator3;
|
||||||
|
private ThButton button3;
|
||||||
|
private ThProgressBar progressBar2;
|
||||||
|
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||||
|
private bool _requestCancel = false;
|
||||||
|
|
||||||
|
|
||||||
public UpdateIconsForm(AppSession session, BookmarkTreeView treeView, IconDatabase database)
|
public UpdateIconsForm(BookmarkTreeView treeView)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
bookmarkTreeView = treeView;
|
UISetup.Dialog(this);
|
||||||
iconDatabase = database;
|
|
||||||
appSession = session;
|
|
||||||
|
|
||||||
pickerBox1.ComboBox.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
|
_webProvider = new WebProvider();
|
||||||
|
_webProvider.IgnoreSSL = true;
|
||||||
|
|
||||||
|
_treeView = treeView;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
label1 = new Label();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
tHorizontalSeparator2 = new THorizontalSeparator();
|
||||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
label2 = new Label();
|
||||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
pictureBox2 = new PictureBox();
|
||||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
pickerBox1 = new ThYesNoPickerBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
button2 = new ThButton();
|
||||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
progressBar1 = new ThProgressBar();
|
||||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
label4 = new Label();
|
||||||
this.pickerBox1 = new RyzStudio.Windows.ThemedForms.PickerBox.TYesNoPickerBox();
|
tHorizontalSeparator3 = new THorizontalSeparator();
|
||||||
this.button2 = new RyzStudio.Windows.ThemedForms.TButton();
|
button3 = new ThButton();
|
||||||
this.progressBar1 = new RyzStudio.Windows.ThemedForms.TProgressBar();
|
progressBar2 = new ThProgressBar();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||||
this.SuspendLayout();
|
((ISupportInitialize)pictureBox2).BeginInit();
|
||||||
//
|
SuspendLayout();
|
||||||
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
label1.AutoSize = true;
|
||||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
label1.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.label1.Location = new System.Drawing.Point(10, 21);
|
label1.Location = new System.Drawing.Point(10, 20);
|
||||||
this.label1.Margin = new System.Windows.Forms.Padding(0);
|
label1.Margin = new Padding(0);
|
||||||
this.label1.Name = "label1";
|
label1.Name = "label1";
|
||||||
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
label1.Padding = new Padding(0, 8, 0, 0);
|
||||||
this.label1.Size = new System.Drawing.Size(133, 34);
|
label1.Size = new System.Drawing.Size(156, 23);
|
||||||
this.label1.TabIndex = 153;
|
label1.TabIndex = 153;
|
||||||
this.label1.Text = "Find Missing Icons Only";
|
label1.Text = "Update Missing Icons (Only)";
|
||||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
//
|
//
|
||||||
// button1
|
|
||||||
//
|
|
||||||
this.button1.AcceptButton = null;
|
|
||||||
this.button1.ActiveImage = null;
|
|
||||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.button1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.button1.HoverImage = null;
|
|
||||||
this.button1.IdleImage = null;
|
|
||||||
this.button1.LabelText = "&Close";
|
|
||||||
this.button1.Location = new System.Drawing.Point(241, 469);
|
|
||||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
|
||||||
this.button1.Size = new System.Drawing.Size(128, 32);
|
|
||||||
this.button1.TabIndex = 2;
|
|
||||||
this.button1.TabStop = false;
|
|
||||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator1
|
|
||||||
//
|
|
||||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
|
||||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
|
|
||||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
|
||||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
|
||||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
|
||||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
|
||||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
|
|
||||||
this.tHorizontalSeparator1.TabIndex = 188;
|
|
||||||
this.tHorizontalSeparator1.TabStop = false;
|
|
||||||
//
|
|
||||||
// tHorizontalSeparator2
|
// tHorizontalSeparator2
|
||||||
//
|
//
|
||||||
this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
tHorizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||||
this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||||
this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
tHorizontalSeparator2.Location = new System.Drawing.Point(10, 64);
|
||||||
this.tHorizontalSeparator2.Location = new System.Drawing.Point(10, 59);
|
tHorizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
|
||||||
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||||
this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
||||||
this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
||||||
this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
tHorizontalSeparator2.Size = new System.Drawing.Size(424, 22);
|
||||||
this.tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
|
tHorizontalSeparator2.TabIndex = 190;
|
||||||
this.tHorizontalSeparator2.TabIndex = 190;
|
tHorizontalSeparator2.TabStop = false;
|
||||||
this.tHorizontalSeparator2.TabStop = false;
|
//
|
||||||
//
|
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
label2.AutoSize = true;
|
||||||
this.label2.BackColor = System.Drawing.Color.Transparent;
|
label2.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.label2.Location = new System.Drawing.Point(10, 85);
|
label2.Location = new System.Drawing.Point(10, 136);
|
||||||
this.label2.Margin = new System.Windows.Forms.Padding(0);
|
label2.Margin = new Padding(0);
|
||||||
this.label2.Name = "label2";
|
label2.Name = "label2";
|
||||||
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
label2.Padding = new Padding(0, 8, 0, 0);
|
||||||
this.label2.Size = new System.Drawing.Size(52, 34);
|
label2.Size = new System.Drawing.Size(231, 23);
|
||||||
this.label2.TabIndex = 195;
|
label2.TabIndex = 195;
|
||||||
this.label2.Text = "Progress";
|
label2.Text = "Retrieve supported icons from bookmarks.";
|
||||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
//
|
//
|
||||||
// pictureBox2
|
// pictureBox2
|
||||||
//
|
//
|
||||||
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
pictureBox2.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
|
pictureBox2.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.pictureBox2.ErrorImage = null;
|
pictureBox2.ErrorImage = null;
|
||||||
this.pictureBox2.InitialImage = null;
|
pictureBox2.InitialImage = null;
|
||||||
this.pictureBox2.Location = new System.Drawing.Point(196, 469);
|
pictureBox2.Location = new System.Drawing.Point(402, 294);
|
||||||
this.pictureBox2.Name = "pictureBox2";
|
pictureBox2.Name = "pictureBox2";
|
||||||
this.pictureBox2.Size = new System.Drawing.Size(32, 32);
|
pictureBox2.Size = new System.Drawing.Size(32, 32);
|
||||||
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
pictureBox2.SizeMode = PictureBoxSizeMode.CenterImage;
|
||||||
this.pictureBox2.TabIndex = 202;
|
pictureBox2.TabIndex = 202;
|
||||||
this.pictureBox2.TabStop = false;
|
pictureBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
// pickerBox1
|
// pickerBox1
|
||||||
//
|
//
|
||||||
this.pickerBox1.AcceptButton = null;
|
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
pickerBox1.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.pickerBox1.BackColor = System.Drawing.Color.Transparent;
|
pickerBox1.EnableReactiveVisual = true;
|
||||||
this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
this.pickerBox1.Location = new System.Drawing.Point(285, 21);
|
pickerBox1.Location = new System.Drawing.Point(350, 20);
|
||||||
this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 10, 10, 0);
|
pickerBox1.Name = "pickerBox1";
|
||||||
this.pickerBox1.Name = "pickerBox1";
|
pickerBox1.SelectedIndex = 1;
|
||||||
this.pickerBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
pickerBox1.Size = new System.Drawing.Size(84, 35);
|
||||||
this.pickerBox1.SelectedIndex = 1;
|
pickerBox1.TabIndex = 0;
|
||||||
this.pickerBox1.Size = new System.Drawing.Size(84, 35);
|
pickerBox1.TabStop = false;
|
||||||
this.pickerBox1.TabIndex = 0;
|
pickerBox1.Value = true;
|
||||||
this.pickerBox1.TabStop = false;
|
//
|
||||||
this.pickerBox1.Value = true;
|
|
||||||
//
|
|
||||||
// button2
|
// button2
|
||||||
//
|
//
|
||||||
this.button2.AcceptButton = null;
|
button2.ActiveImage = null;
|
||||||
this.button2.ActiveImage = null;
|
button2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
button2.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.button2.BackColor = System.Drawing.Color.Transparent;
|
button2.EnableMenuOnClick = false;
|
||||||
this.button2.HoverImage = null;
|
button2.EnableReactiveVisual = true;
|
||||||
this.button2.IdleImage = null;
|
button2.HoverImage = null;
|
||||||
this.button2.LabelText = "&Run";
|
button2.IdleImage = null;
|
||||||
this.button2.Location = new System.Drawing.Point(241, 168);
|
button2.LabelText = "&Run";
|
||||||
this.button2.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
button2.Location = new System.Drawing.Point(306, 136);
|
||||||
this.button2.Name = "button2";
|
button2.Name = "button2";
|
||||||
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
button2.Size = new System.Drawing.Size(128, 32);
|
||||||
this.button2.Size = new System.Drawing.Size(128, 32);
|
button2.TabIndex = 1;
|
||||||
this.button2.TabIndex = 1;
|
button2.TabStop = false;
|
||||||
this.button2.TabStop = false;
|
button2.MouseClick += button2_MouseClick;
|
||||||
this.button2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button2_MouseClick);
|
//
|
||||||
//
|
|
||||||
// progressBar1
|
// progressBar1
|
||||||
//
|
//
|
||||||
this.progressBar1.AcceptButton = null;
|
progressBar1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
progressBar1.BackColor = System.Drawing.Color.Transparent;
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
progressBar1.BarColour = System.Drawing.Color.FromArgb(79, 202, 130);
|
||||||
this.progressBar1.BackColor = System.Drawing.Color.Transparent;
|
progressBar1.BarTextColour = System.Drawing.Color.Black;
|
||||||
this.progressBar1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
progressBar1.EnableReactiveVisual = false;
|
||||||
this.progressBar1.Location = new System.Drawing.Point(10, 119);
|
progressBar1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
this.progressBar1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
|
progressBar1.Location = new System.Drawing.Point(10, 96);
|
||||||
this.progressBar1.Name = "progressBar1";
|
progressBar1.Maximum = 100;
|
||||||
this.progressBar1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
progressBar1.Minimum = 0;
|
||||||
this.progressBar1.Size = new System.Drawing.Size(359, 33);
|
progressBar1.Name = "progressBar1";
|
||||||
this.progressBar1.TabIndex = 206;
|
progressBar1.ProgressText = "50/100";
|
||||||
this.progressBar1.TabStop = false;
|
progressBar1.ShowProgressText = true;
|
||||||
//
|
progressBar1.Size = new System.Drawing.Size(424, 20);
|
||||||
|
progressBar1.TabIndex = 206;
|
||||||
|
progressBar1.TabStop = false;
|
||||||
|
progressBar1.Value = 50;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
label4.AutoSize = true;
|
||||||
|
label4.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
label4.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
label4.Location = new System.Drawing.Point(10, 250);
|
||||||
|
label4.Margin = new Padding(0);
|
||||||
|
label4.Name = "label4";
|
||||||
|
label4.Padding = new Padding(0, 8, 0, 0);
|
||||||
|
label4.Size = new System.Drawing.Size(83, 23);
|
||||||
|
label4.TabIndex = 208;
|
||||||
|
label4.Text = "Clear all icons.";
|
||||||
|
label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// tHorizontalSeparator3
|
||||||
|
//
|
||||||
|
tHorizontalSeparator3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||||
|
tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||||
|
tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
tHorizontalSeparator3.Location = new System.Drawing.Point(10, 178);
|
||||||
|
tHorizontalSeparator3.Margin = new Padding(0, 10, 0, 0);
|
||||||
|
tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||||
|
tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
|
||||||
|
tHorizontalSeparator3.Name = "tHorizontalSeparator3";
|
||||||
|
tHorizontalSeparator3.Size = new System.Drawing.Size(424, 22);
|
||||||
|
tHorizontalSeparator3.TabIndex = 207;
|
||||||
|
tHorizontalSeparator3.TabStop = false;
|
||||||
|
//
|
||||||
|
// button3
|
||||||
|
//
|
||||||
|
button3.ActiveImage = null;
|
||||||
|
button3.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
button3.EnableMenuOnClick = false;
|
||||||
|
button3.EnableReactiveVisual = true;
|
||||||
|
button3.HoverImage = null;
|
||||||
|
button3.IdleImage = null;
|
||||||
|
button3.LabelText = "Clear &All";
|
||||||
|
button3.Location = new System.Drawing.Point(306, 250);
|
||||||
|
button3.Name = "button3";
|
||||||
|
button3.Size = new System.Drawing.Size(128, 32);
|
||||||
|
button3.TabIndex = 209;
|
||||||
|
button3.TabStop = false;
|
||||||
|
button3.MouseClick += button3_MouseClick;
|
||||||
|
//
|
||||||
|
// progressBar2
|
||||||
|
//
|
||||||
|
progressBar2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
progressBar2.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
progressBar2.BarColour = System.Drawing.Color.FromArgb(79, 193, 203);
|
||||||
|
progressBar2.BarTextColour = System.Drawing.Color.Black;
|
||||||
|
progressBar2.EnableReactiveVisual = false;
|
||||||
|
progressBar2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||||
|
progressBar2.Location = new System.Drawing.Point(10, 210);
|
||||||
|
progressBar2.Maximum = 100;
|
||||||
|
progressBar2.Minimum = 0;
|
||||||
|
progressBar2.Name = "progressBar2";
|
||||||
|
progressBar2.ProgressText = "50/100";
|
||||||
|
progressBar2.ShowProgressText = true;
|
||||||
|
progressBar2.Size = new System.Drawing.Size(424, 20);
|
||||||
|
progressBar2.TabIndex = 210;
|
||||||
|
progressBar2.TabStop = false;
|
||||||
|
progressBar2.Value = 50;
|
||||||
|
//
|
||||||
|
// dialogFooter1
|
||||||
|
//
|
||||||
|
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
|
||||||
|
dialogFooter1.Button1Text = "&Close";
|
||||||
|
dialogFooter1.Dialog = null;
|
||||||
|
dialogFooter1.Dock = DockStyle.Bottom;
|
||||||
|
dialogFooter1.Location = new System.Drawing.Point(0, 437);
|
||||||
|
dialogFooter1.Name = "dialogFooter1";
|
||||||
|
dialogFooter1.Size = new System.Drawing.Size(444, 84);
|
||||||
|
//
|
||||||
// UpdateIconsForm
|
// UpdateIconsForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(384, 521);
|
BackColor = System.Drawing.Color.White;
|
||||||
this.Controls.Add(this.progressBar1);
|
ClientSize = new System.Drawing.Size(444, 521);
|
||||||
this.Controls.Add(this.button2);
|
Controls.Add(dialogFooter1);
|
||||||
this.Controls.Add(this.pickerBox1);
|
Controls.Add(progressBar2);
|
||||||
this.Controls.Add(this.pictureBox2);
|
Controls.Add(button3);
|
||||||
this.Controls.Add(this.label2);
|
Controls.Add(label4);
|
||||||
this.Controls.Add(this.tHorizontalSeparator2);
|
Controls.Add(tHorizontalSeparator3);
|
||||||
this.Controls.Add(this.tHorizontalSeparator1);
|
Controls.Add(progressBar1);
|
||||||
this.Controls.Add(this.button1);
|
Controls.Add(button2);
|
||||||
this.Controls.Add(this.label1);
|
Controls.Add(pickerBox1);
|
||||||
this.KeyPreview = true;
|
Controls.Add(pictureBox2);
|
||||||
this.MinimumSize = new System.Drawing.Size(400, 560);
|
Controls.Add(label2);
|
||||||
this.Name = "UpdateIconsForm";
|
Controls.Add(tHorizontalSeparator2);
|
||||||
this.Text = "Update Icons";
|
Controls.Add(label1);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
KeyPreview = true;
|
||||||
this.ResumeLayout(false);
|
MinimumSize = new System.Drawing.Size(460, 560);
|
||||||
this.PerformLayout();
|
Name = "UpdateIconsForm";
|
||||||
|
Text = "Update Icons";
|
||||||
|
((ISupportInitialize)pictureBox2).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnLoad(e);
|
base.OnLoad(e);
|
||||||
|
|
||||||
comboBox1_SelectedIndexChanged(null, null);
|
var model = _treeView.ToNodeList<BookmarkModel>();
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected new bool IsBusy
|
|
||||||
{
|
|
||||||
get => base.IsBusy;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
base.IsBusy = value;
|
|
||||||
|
|
||||||
UIControl.SetValue(pictureBox2, (this.IsBusy ? UIResource1.loading_block : null));
|
|
||||||
|
|
||||||
UIControl.SetEnable(pickerBox1, !this.IsBusy);
|
|
||||||
button2.LabelText = (this.IsBusy ? "&Stop" : "&Run");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (IsBusy)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<BookmarkItem> bookmarkList = GetBookmarkFilteredList();
|
|
||||||
|
|
||||||
progressBar1.ProgressBar.Reset(bookmarkList.Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void button2_MouseClick(object sender, MouseEventArgs e)
|
|
||||||
{
|
|
||||||
await Task.Run(() =>
|
|
||||||
{
|
|
||||||
if (IsBusy)
|
|
||||||
{
|
|
||||||
requestCancellation = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
IsBusy = true;
|
|
||||||
|
|
||||||
WebParser webParser = new WebParser();
|
|
||||||
List<BookmarkItem> bookmarkList = GetBookmarkFilteredList();
|
|
||||||
|
|
||||||
progressBar1.ProgressBar.Reset(bookmarkList.Count);
|
|
||||||
|
|
||||||
for (int i=0; i<bookmarkList.Count; i++)
|
|
||||||
{
|
|
||||||
progressBar1.ProgressBar.Value = (i + 1);
|
|
||||||
|
|
||||||
if (requestCancellation) break;
|
|
||||||
|
|
||||||
BookmarkItem item = bookmarkList[i];
|
|
||||||
|
|
||||||
BookmarkResult result = webParser.RetrieveDetails(item.SiteAddress, appSession.IgnoreSSL);
|
|
||||||
if (result == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(result.IconURL))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requestCancellation) break;
|
|
||||||
|
|
||||||
Image favicon = webParser.RetrieveImage(result.IconURL);
|
|
||||||
if (favicon == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
iconDatabase.AddIcon(item.ToHash(), favicon);
|
|
||||||
}
|
|
||||||
|
|
||||||
IsBusy = false;
|
|
||||||
requestCancellation = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
|
||||||
{
|
|
||||||
this.DialogResult = DialogResult.OK;
|
|
||||||
this.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected List<BookmarkItem> GetBookmarkFilteredList()
|
|
||||||
{
|
|
||||||
List<BookmarkItem> rs = bookmarkTreeView.GetBookmarkList();
|
|
||||||
|
|
||||||
// remove empty
|
|
||||||
for (int i = 0; i < rs.Count; i++)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(rs[i].SiteAddress))
|
|
||||||
{
|
|
||||||
rs.Remove(rs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pickerBox1.Value)
|
if (pickerBox1.Value)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < rs.Count; i++)
|
model = model.Where(x => x.Value.Icon == null)?.ToList() ?? new List<KeyValuePair<TreeNode, BookmarkModel>>();
|
||||||
{
|
|
||||||
if (iconDatabase.HasIcon(rs[i].ToHash()))
|
|
||||||
{
|
|
||||||
rs.Remove(rs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rs;
|
progressBar1.Minimum = 0;
|
||||||
|
progressBar1.Value = 0;
|
||||||
|
progressBar1.Maximum = model.Count;
|
||||||
|
|
||||||
|
progressBar2.Minimum = 0;
|
||||||
|
progressBar2.Value = 0;
|
||||||
|
progressBar2.Maximum = model.Count;
|
||||||
|
|
||||||
|
pickerBox1.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnClosing(CancelEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnClosing(e);
|
||||||
|
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
e.Cancel = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected bool IsBusy
|
||||||
|
{
|
||||||
|
get => _isBusy;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_isBusy = value;
|
||||||
|
|
||||||
|
UIControl.SetEnable(pickerBox1, !this.IsBusy);
|
||||||
|
UIControl.Invoke(button2, (x) =>
|
||||||
|
{
|
||||||
|
button2.LabelText = (this.IsBusy ? "&Stop" : "&Run");
|
||||||
|
});
|
||||||
|
UIControl.Invoke(button3, (x) =>
|
||||||
|
{
|
||||||
|
button3.LabelText = (this.IsBusy ? "&Stop" : "Clear &All");
|
||||||
|
});
|
||||||
|
UIControl.SetValue(pictureBox2, (this.IsBusy ? RyzStudio.Windows.ThemedForms.Resource2.loading_block : null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private async void button2_MouseClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
await Task.Run(async () =>
|
||||||
|
{
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
_requestCancel = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.IsBusy = true;
|
||||||
|
|
||||||
|
var model = _treeView.ToNodeList<BookmarkModel>();
|
||||||
|
|
||||||
|
if (pickerBox1.Value)
|
||||||
|
{
|
||||||
|
model = model.Where(x => x.Value.Icon == null)?.ToList() ?? new List<KeyValuePair<TreeNode, BookmarkModel>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
progressBar1.Minimum = 0;
|
||||||
|
progressBar1.Value = 0;
|
||||||
|
progressBar1.Maximum = model.Count;
|
||||||
|
|
||||||
|
foreach (var item in model)
|
||||||
|
{
|
||||||
|
progressBar1.Value++;
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(item.Value.Address))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_requestCancel)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var document = await _webProvider.RetrieveHtmlDocument(item.Value.Address);
|
||||||
|
if (document == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_requestCancel)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var image = await _webProvider.RetrieveImage(document);
|
||||||
|
if (image == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var newModel = item.Value;
|
||||||
|
newModel.Icon = image;
|
||||||
|
|
||||||
|
_treeView.UpdateNode(item.Key, newModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
_requestCancel = false;
|
||||||
|
|
||||||
|
this.IsBusy = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void button3_MouseClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
await Task.Run(() =>
|
||||||
|
{
|
||||||
|
if (this.IsBusy)
|
||||||
|
{
|
||||||
|
_requestCancel = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.IsBusy = true;
|
||||||
|
|
||||||
|
var model = _treeView.ToNodeList<BookmarkModel>();
|
||||||
|
|
||||||
|
progressBar2.Minimum = 0;
|
||||||
|
progressBar2.Value = 0;
|
||||||
|
progressBar2.Maximum = model.Count;
|
||||||
|
|
||||||
|
foreach (var item in model)
|
||||||
|
{
|
||||||
|
progressBar2.Value++;
|
||||||
|
|
||||||
|
if (item.Value.Icon == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_requestCancel)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var newModel = item.Value;
|
||||||
|
newModel.Icon = null;
|
||||||
|
|
||||||
|
_treeView.UpdateNode(item.Key, newModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
_requestCancel = false;
|
||||||
|
|
||||||
|
this.IsBusy = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
@ -57,7 +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>
|
||||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +1,15 @@
|
|||||||
; Script generated by the Inno Setup Script Wizard.
|
; Script generated by the Inno Setup Script Wizard.
|
||||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||||
|
|
||||||
#define MyAppName "Bookmark Manager"
|
#define MyAppName "BukkuBuddy Bookmark Manager"
|
||||||
#define MyAppVersion "0.5.0.012"
|
#define MyAppVersion "0.6.0.716"
|
||||||
#define MyAppPublisher "Hi, I'm Ray"
|
#define MyAppPublisher "Hi, I'm Ray"
|
||||||
#define MyAppURL "https://www.hiimray.co.uk/software-bookmark-manager"
|
#define MyAppURL "https://www.hiimray.co.uk/software-bookmark-manager"
|
||||||
#define MyAppExeName "bookmarkmanager.exe"
|
#define MyAppExeName "bukkubuddy.exe"
|
||||||
|
|
||||||
#define AppSourcePath "L:\gitea-hiimray\bookmark-manager-r4\bin\Release\64"
|
#define AppSourcePath "L:\gitea-hiimray\bookmark-manager-r4\bin"
|
||||||
#define AppReleasePath "L:\gitea-hiimray\bookmark-manager-r4\bin\Release"
|
#define AppReleasePath "L:\gitea-hiimray\bookmark-manager-r4\bin"
|
||||||
#define AppReleaseName "bookmark-manager"
|
#define AppReleaseName "bukkubuddy-installer"
|
||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
||||||
@ -39,8 +39,7 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
|
|||||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "{#AppSourcePath}\bookmarkmanager.exe"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "{#AppSourcePath}\bukkubuddy.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "{#AppSourcePath}\e_sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion
|
|
||||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
|
18
build.bat
18
build.bat
@ -1,7 +1,17 @@
|
|||||||
rmdir /s /q "bin\Release\"
|
RMDIR /s /q "bin\"
|
||||||
dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\64\"
|
RMDIR /s /q "obj\"
|
||||||
|
|
||||||
|
MKDIR bin
|
||||||
|
|
||||||
|
dotnet restore skye.sln
|
||||||
|
dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\"
|
||||||
|
|
||||||
"C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss"
|
"C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss"
|
||||||
|
|
||||||
cd "bin\Release\64\"
|
"C:\B\Portable Files\7-Zip (Portable)\23.01\App\7-Zip64\7z.exe" a -t7z "bin\bukkubuddy.7z" ".\bin\bukkubuddy.exe" -mx9
|
||||||
"C:\B\Portable Files\PeaZip (Portable)\v6.5.1\App\PeaZip\res\7z\7z.exe" a -t7z "..\bookmark-manager.7z" "*" -mx9
|
|
||||||
|
RMDIR /s /q "bin\debug"
|
||||||
|
RMDIR /s /q "bin\release"
|
||||||
|
RMDIR /s /q "obj\"
|
||||||
|
|
||||||
|
PAUSE
|
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue
Block a user