private void addFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ChannelFolder channelFolder = new ChannelFolder(Properties.Resources.NewChannelFolder);
            TreeNode      treeNode      = MakeTreeNodeFromChannel(channelFolder);

            treeNode.Expand();

            if (this.treeViewChannel.SelectedNode == null || this.treeViewChannel.SelectedNode.Parent == null)
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.Tag;
                parentChannelFolder.Add(channelFolder);
                this.treeViewChannel.Nodes.Add(treeNode);
            }
            else if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder)
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Tag;
                parentChannelFolder.Add(channelFolder);
                this.treeViewChannel.SelectedNode.Nodes.Add(treeNode);
                this.treeViewChannel.SelectedNode.Expand();
            }
            else
            {
                ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Parent.Tag;
                TreeNode      parentTreeNode      = this.treeViewChannel.SelectedNode.Parent;
                int           indexChannel        = parentChannelFolder.ChannelList.IndexOf(this.treeViewChannel.SelectedNode.Tag as Channel);
                int           indexTreeNode       = parentTreeNode.Nodes.IndexOf(this.treeViewChannel.SelectedNode);

                channelFolder.Parent = parentChannelFolder;
                parentChannelFolder.ChannelList.Insert(indexChannel, channelFolder);
                this.treeViewChannel.SelectedNode.Parent.Nodes.Insert(indexTreeNode, treeNode);
            }
        }
        internal void InsertChannels(Stream fileStream, ChannelFolder parentChannel, TreeNodeCollection parentTreeNodeCollection)
        {
            ChannelFolder channels = (ChannelFolder)Channel.Deserialize(fileStream);

            if (parentChannel == null)
            {
                parentChannel = MainForm.rootChannelFolder;
            }
            if (parentTreeNodeCollection == null)
            {
                parentTreeNodeCollection = this.treeViewChannel.Nodes;
            }

            // First level: we add to the existing folder
            // Second level: we adjust the parent
            foreach (Channel channel in channels.ChannelList)
            {
                parentChannel.Add(channel);

                TreeNode treeNode = MakeTreeNodeFromChannel(channel);

                if (channel is ChannelFolder)
                {
                    RecursedFillTree(channel as ChannelFolder, treeNode.Nodes);
                }

                parentTreeNodeCollection.Add(treeNode);
            }

            MainForm.UpdateChannelNumber();
        }
        internal void AddChannelToFavorite(ChannelFolder channelFolder, Channel[] channels)
        {
            TreeNode           parentTreeNode           = channelFolder.Tag as TreeNode;
            TreeNodeCollection parentTreeNodeCollection = (parentTreeNode == null ? this.treeViewChannel.Nodes : parentTreeNode.Nodes);

            foreach (Channel channel in channels)
            {
                channelFolder.Add(channel);
                parentTreeNodeCollection.Add(MakeTreeNodeFromChannel(channel));
            }
        }