Added: icon database support
This commit is contained in:
		
							parent
							
								
									4dd399f537
								
							
						
					
					
						commit
						253365d25e
					
				@ -3,6 +3,7 @@ using System;
 | 
				
			|||||||
using System.Drawing;
 | 
					using System.Drawing;
 | 
				
			||||||
using System.Drawing.Imaging;
 | 
					using System.Drawing.Imaging;
 | 
				
			||||||
using System.IO;
 | 
					using System.IO;
 | 
				
			||||||
 | 
					using System.Windows.Forms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace BookmarkManager
 | 
					namespace BookmarkManager
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -30,14 +31,6 @@ namespace BookmarkManager
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if (isNew) Initialise();
 | 
					            if (isNew) Initialise();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //if (File.Exists(filename))
 | 
					 | 
				
			||||||
            //{
 | 
					 | 
				
			||||||
            //    File.Delete("test.db3");
 | 
					 | 
				
			||||||
            //}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public bool AddIcon(string id, Image image)
 | 
					        public bool AddIcon(string id, Image image)
 | 
				
			||||||
@ -52,14 +45,17 @@ namespace BookmarkManager
 | 
				
			|||||||
            command.Connection = dbConnection;
 | 
					            command.Connection = dbConnection;
 | 
				
			||||||
            command.CommandText = "INSERT INTO icons (id, content) VALUES (@id, @content)";
 | 
					            command.CommandText = "INSERT INTO icons (id, content) VALUES (@id, @content)";
 | 
				
			||||||
            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
					            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
				
			||||||
            command.Parameters.Add("@content", SqliteType.Blob, 20).Value = ImageToBytes(image);
 | 
					            command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                command.ExecuteNonQuery();
 | 
					                command.ExecuteNonQuery();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -89,8 +85,11 @@ namespace BookmarkManager
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                command.ExecuteNonQuery();
 | 
					                command.ExecuteNonQuery();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -103,30 +102,30 @@ namespace BookmarkManager
 | 
				
			|||||||
            if (dbConnection == null) return null;
 | 
					            if (dbConnection == null) return null;
 | 
				
			||||||
            if (string.IsNullOrWhiteSpace(id)) return null;
 | 
					            if (string.IsNullOrWhiteSpace(id)) return null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!HasIcon(id)) return null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            byte[] iconBytes = null;
 | 
					            byte[] iconBytes = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            SqliteCommand command = new SqliteCommand();
 | 
					            SqliteCommand command = new SqliteCommand();
 | 
				
			||||||
            command.Connection = dbConnection;
 | 
					            command.Connection = dbConnection;
 | 
				
			||||||
            command.CommandText = "SELECT content FROM icons WHERE @id";
 | 
					            command.CommandText = "SELECT content FROM icons WHERE id = @id";
 | 
				
			||||||
            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
					            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                using (var reader = command.ExecuteReader())
 | 
					                var rs = command.ExecuteScalar();
 | 
				
			||||||
 | 
					                if (rs != null)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    while (reader.Read())
 | 
					                    iconBytes = (byte[])rs;
 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        if (reader["content"] != null && !Convert.IsDBNull(reader["content"]))
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            iconBytes = (byte[])reader["content"];
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                command.Dispose();
 | 
					                command.Dispose();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -141,8 +140,11 @@ namespace BookmarkManager
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                img = Image.FromStream(new MemoryStream(iconBytes));
 | 
					                img = Image.FromStream(new MemoryStream(iconBytes));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -154,33 +156,30 @@ namespace BookmarkManager
 | 
				
			|||||||
            if (dbConnection == null) return false;
 | 
					            if (dbConnection == null) return false;
 | 
				
			||||||
            if (string.IsNullOrWhiteSpace(id)) return false;
 | 
					            if (string.IsNullOrWhiteSpace(id)) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int rv = 0;
 | 
					            string rs = string.Empty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            SqliteCommand command = new SqliteCommand();
 | 
					            SqliteCommand command = new SqliteCommand();
 | 
				
			||||||
            command.Connection = dbConnection;
 | 
					            command.Connection = dbConnection;
 | 
				
			||||||
            command.CommandText = "SELECT COUNT(1) AS count FROM icons WHERE @id";
 | 
					            command.CommandText = "SELECT COUNT(1) AS count FROM icons WHERE id = @id";
 | 
				
			||||||
            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
					            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                using (var reader = command.ExecuteReader())
 | 
					                rs = command.ExecuteScalar()?.ToString() ?? string.Empty;
 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    while (reader.Read())
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        if (reader["count"] != null && !Convert.IsDBNull(reader["count"]))
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            rv = (int)reader["count"];
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                command.Dispose();
 | 
					                command.Dispose();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            int rv;
 | 
				
			||||||
 | 
					            if (!int.TryParse(rs, out rv)) rv = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return (rv > 0);
 | 
					            return (rv > 0);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -196,14 +195,17 @@ namespace BookmarkManager
 | 
				
			|||||||
            command.Connection = dbConnection;
 | 
					            command.Connection = dbConnection;
 | 
				
			||||||
            command.CommandText = "UPDATE icons SET content = @content WHERE id = @id";
 | 
					            command.CommandText = "UPDATE icons SET content = @content WHERE id = @id";
 | 
				
			||||||
            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
					            command.Parameters.Add("@id", SqliteType.Text).Value = id;
 | 
				
			||||||
            command.Parameters.Add("@content", SqliteType.Blob, 20).Value = ImageToBytes(image);
 | 
					            command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                command.ExecuteNonQuery();
 | 
					                command.ExecuteNonQuery();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -221,8 +223,11 @@ namespace BookmarkManager
 | 
				
			|||||||
                command.ExecuteNonQuery();
 | 
					                command.ExecuteNonQuery();
 | 
				
			||||||
                command.Dispose();
 | 
					                command.Dispose();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception)
 | 
					            catch (Exception exc)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					//#if DEBUG
 | 
				
			||||||
 | 
					//                MessageBox.Show(exc.Message);
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -239,6 +244,5 @@ namespace BookmarkManager
 | 
				
			|||||||
            return stream.ToArray();
 | 
					            return stream.ToArray();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -44,13 +44,13 @@ namespace FizzyLauncher
 | 
				
			|||||||
            jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
 | 
					            jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (iconDatabase == null) iconDatabase = new IconDatabase(Path.ChangeExtension(Application.ExecutablePath, "db"));
 | 
					            if (iconDatabase == null) iconDatabase = new IconDatabase(Path.ChangeExtension(Application.ExecutablePath, "db"));
 | 
				
			||||||
            iconDatabase.AddIcon(Guid.NewGuid().ToString(), UIResource.arrow_down);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.AutoScaleMode = AutoScaleMode.None;
 | 
					            this.AutoScaleMode = AutoScaleMode.None;
 | 
				
			||||||
            this.StartPosition = FormStartPosition.WindowsDefaultLocation;
 | 
					            this.StartPosition = FormStartPosition.WindowsDefaultLocation;
 | 
				
			||||||
            this.ClientSize = new System.Drawing.Size(300, 580);
 | 
					            this.ClientSize = new System.Drawing.Size(300, 580);
 | 
				
			||||||
            //this.Visible = false;
 | 
					            //this.Visible = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            treeView1.IconDatabase = iconDatabase;
 | 
				
			||||||
            treeView1.RootContextMenu = rootContextMenu;
 | 
					            treeView1.RootContextMenu = rootContextMenu;
 | 
				
			||||||
            treeView1.FolderContextMenu = folderContextMenu;
 | 
					            treeView1.FolderContextMenu = folderContextMenu;
 | 
				
			||||||
            treeView1.PageContextMenu = pageContextMenu;
 | 
					            treeView1.PageContextMenu = pageContextMenu;
 | 
				
			||||||
@ -76,7 +76,6 @@ namespace FizzyLauncher
 | 
				
			|||||||
            //ThreadControl.SetVisible(this, false);
 | 
					            //ThreadControl.SetVisible(this, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await LoadAppSession(jsonfigFilename);
 | 
					            await LoadAppSession(jsonfigFilename);
 | 
				
			||||||
            //await InitialiseIconDB(iconDBFilename);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            InvalidateAppSession();
 | 
					            InvalidateAppSession();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -207,10 +207,8 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
        protected const string DEFAULT_NEW_FOLDER_NAME = "New Folder";
 | 
					        protected const string DEFAULT_NEW_FOLDER_NAME = "New Folder";
 | 
				
			||||||
        protected const string PATH_SEPARATOR = "\n";
 | 
					        protected const string PATH_SEPARATOR = "\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public event EventHandler OnNodeChanged = null;
 | 
					        public event EventHandler OnNodeChanged = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //protected IconDatabase iconDatabase = null;
 | 
					 | 
				
			||||||
        protected TreeNode draggingNode = null;
 | 
					        protected TreeNode draggingNode = null;
 | 
				
			||||||
        protected bool hasChanged = false;
 | 
					        protected bool hasChanged = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -616,9 +614,9 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
        //    this.HasChanged = false;
 | 
					        //    this.HasChanged = false;
 | 
				
			||||||
        //}
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void AddItem(BookmarkItem item)
 | 
					        public TreeNode AddItem(BookmarkItem item)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            int iconIndex = addIcon(item);
 | 
					            int iconIndex = FindIcon(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            TreeNode tn = new TreeNode(item.SiteName, iconIndex, iconIndex);
 | 
					            TreeNode tn = new TreeNode(item.SiteName, iconIndex, iconIndex);
 | 
				
			||||||
            tn.Tag = item;
 | 
					            tn.Tag = item;
 | 
				
			||||||
@ -629,22 +627,23 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
            ThreadControl.Add(tn2, tn);
 | 
					            ThreadControl.Add(tn2, tn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.HasChanged = true;
 | 
					            this.HasChanged = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return tn;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public TreeNode AddItem(TreeNode treeNode, BookmarkItem item)
 | 
					        public TreeNode AddItem(TreeNode treeNode, BookmarkItem item)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (treeNode == null)
 | 
					            if (treeNode == null) return null;
 | 
				
			||||||
            {
 | 
					            if (item == null) return null;
 | 
				
			||||||
                return null;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int iconIndex = addIcon(item);
 | 
					            int iconIndex = FindIcon(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            TreeNode tn = new TreeNode(item.SiteName, iconIndex, iconIndex);
 | 
					            TreeNode tn = new TreeNode(item.SiteName, iconIndex, iconIndex);
 | 
				
			||||||
            tn.Tag = item;
 | 
					            tn.Tag = item;
 | 
				
			||||||
            tn.ToolTipText = item.ToString();
 | 
					            tn.ToolTipText = item.ToString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            treeNode.Nodes.Add(tn);
 | 
					            //treeNode.Nodes.Add(tn);
 | 
				
			||||||
 | 
					            ThreadControl.Add(treeNode, tn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.HasChanged = true;
 | 
					            this.HasChanged = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -859,14 +858,12 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public new void Sort() => Sort(this.SelectedNode);
 | 
					        public new void Sort() => Sort(this.SelectedNode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void UpdateItem(TreeNode treeNode, BookmarkItem item, Image image)
 | 
					        public void UpdateItem(TreeNode treeNode, BookmarkItem item)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (treeNode == null)
 | 
					            if (treeNode == null) return;
 | 
				
			||||||
            {
 | 
					            if (item == null) return;
 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int iconIndex = addIcon(item);
 | 
					            int iconIndex = FindIcon(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            treeNode.Text = item.SiteName;
 | 
					            treeNode.Text = item.SiteName;
 | 
				
			||||||
            treeNode.ImageIndex = iconIndex;
 | 
					            treeNode.ImageIndex = iconIndex;
 | 
				
			||||||
@ -878,9 +875,30 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected int addIcon(BookmarkItem viewModel)
 | 
					        protected int FindIcon(BookmarkItem item)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return (int)IconSet.Default;
 | 
					            if (this.IconDatabase == null) return (int)IconSet.Default;
 | 
				
			||||||
 | 
					            if (item == null) return (int)IconSet.Default;
 | 
				
			||||||
 | 
					            if (string.IsNullOrWhiteSpace(item.SiteName)) return (int)IconSet.Default;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            string iconID = Crypto.GetSHA256Hash(item?.SiteName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Image image = this.IconDatabase.FindIcon(iconID);
 | 
				
			||||||
 | 
					            if (image == null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return (int)IconSet.Default;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (this.ImageList.Images.ContainsKey(iconID))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                this.ImageList.Images.RemoveByKey(iconID);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ThreadControl.Add(this, this.ImageList, iconID, image);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return this.ImageList.Images.IndexOfKey(iconID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //return (int)IconSet.Default;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //protected int addIcon(BookmarkItemViewModel viewModel) => addIcon(viewModel.ToModel());
 | 
					        //protected int addIcon(BookmarkItemViewModel viewModel) => addIcon(viewModel.ToModel());
 | 
				
			||||||
@ -976,27 +994,6 @@ namespace RyzStudio.Windows.Forms
 | 
				
			|||||||
            return tn;
 | 
					            return tn;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //protected bool IsNodeChild(TreeNode dragNode, TreeNode dropNode)
 | 
					 | 
				
			||||||
        //{
 | 
					 | 
				
			||||||
        //    TreeNode tn = dropNode;
 | 
					 | 
				
			||||||
        //    while (true)
 | 
					 | 
				
			||||||
        //    {
 | 
					 | 
				
			||||||
        //        if (tn.Parent == null)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            break;
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        if (tn.Equals(dragNode))
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            return true;
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        tn = tn.Parent;
 | 
					 | 
				
			||||||
        //    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //    return false;
 | 
					 | 
				
			||||||
        //}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        protected void TraverseBookmarkList(List<BookmarkItem> rs, TreeNode node)
 | 
					        protected void TraverseBookmarkList(List<BookmarkItem> rs, TreeNode node)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            foreach (TreeNode tn in node.Nodes)
 | 
					            foreach (TreeNode tn in node.Nodes)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user