121 lines
3.4 KiB
C#
121 lines
3.4 KiB
C#
|
using System;
|
||
|
using System.ComponentModel;
|
||
|
using System.Windows.Forms;
|
||
|
|
||
|
namespace bzit.bomg
|
||
|
{
|
||
|
public partial class UpdateIconForm : Form
|
||
|
{
|
||
|
private MainForm parentForm = null;
|
||
|
private BackgroundWorker mainThread = null;
|
||
|
|
||
|
public UpdateIconForm(MainForm parent)
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
|
||
|
parentForm = parent;
|
||
|
|
||
|
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
|
||
|
|
||
|
mainThread = new BackgroundWorker();
|
||
|
mainThread.WorkerReportsProgress = mainThread.WorkerSupportsCancellation = true;
|
||
|
mainThread.DoWork += mainThread_DoWork;
|
||
|
mainThread.RunWorkerCompleted += mainThread_OnCompleted;
|
||
|
}
|
||
|
|
||
|
protected override void OnShown(EventArgs e)
|
||
|
{
|
||
|
base.OnShown(e);
|
||
|
|
||
|
int nodeCount = (int)parentForm.treeView1.NodeCountCalc;
|
||
|
progressBar1.Minimum = 0;
|
||
|
progressBar1.Value = 0;
|
||
|
progressBar1.Maximum = nodeCount;
|
||
|
|
||
|
label2.Text = string.Concat("0", "/", nodeCount.ToString());
|
||
|
}
|
||
|
|
||
|
protected override void OnClosing(CancelEventArgs e)
|
||
|
{
|
||
|
base.OnClosing(e);
|
||
|
|
||
|
if (mainThread.IsBusy)
|
||
|
{
|
||
|
e.Cancel = true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void btnRun_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
if (mainThread.IsBusy)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
btnRun.Enabled = false;
|
||
|
pictureBox1.Image = Properties.Resources.aniZomq2x32;
|
||
|
mainThread.RunWorkerAsync();
|
||
|
}
|
||
|
|
||
|
private void mainThread_DoWork(object sender, DoWorkEventArgs e)
|
||
|
{
|
||
|
TreeNode[] nodeList = parentForm.treeView1.NodeList;
|
||
|
for (int i=0; i< nodeList.Length; i++)
|
||
|
{
|
||
|
if (progressBar1.InvokeRequired)
|
||
|
{
|
||
|
progressBar1.Invoke(new Action(() => progressBar1.Value = (i + 1) ));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
progressBar1.Value = (i + 1);
|
||
|
}
|
||
|
|
||
|
if (label2.InvokeRequired)
|
||
|
{
|
||
|
label2.Invoke(new Action(() => label2.Text = string.Concat((i + 1).ToString(), "/", progressBar1.Maximum.ToString())));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
label2.Text = string.Concat((i + 1).ToString(), "/", progressBar1.Maximum.ToString());
|
||
|
}
|
||
|
|
||
|
TreeNode node = nodeList[i];
|
||
|
if (node == null)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (node.Tag == null)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (!(node.Tag is BookmarkItem))
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
BookmarkItem bookmarkItem = (BookmarkItem)node.Tag;
|
||
|
if (bookmarkItem == null)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
bookmarkItem.GetFaviconAddress();
|
||
|
if (bookmarkItem.IconData == null)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
parentForm.treeView1.AddIcon(bookmarkItem);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void mainThread_OnCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||
|
{
|
||
|
pictureBox1.Image = null;
|
||
|
btnRun.Enabled = true;
|
||
|
}
|
||
|
}
|
||
|
}
|