public void UpdateTrayFolders()
        {
            // SYNC COLLECTION >> FOLDERS
            StackPanel rows = MainWindow._instance._folderStackPanel as StackPanel;

            int count = 0;

            for (int i = 0; i < rows.Children.Count; i++)
            {
                StackPanel folders = rows.Children[i] as StackPanel;

                for (int j = 0; j < folders.Children.Count; j++)
                {
                    count++;
                }
            }

            // update only if we counted a diferent amount of folders (aka something was added or removed)
            if (count != foldersListitem.Items.Count)
            {
                foldersListitem.Items.Clear();

                for (int i = 0; i < rows.Children.Count; i++)
                {
                    StackPanel folders = rows.Children[i] as StackPanel;

                    for (int j = 0; j < folders.Children.Count; j++)
                    {
                        FolderTile ft = folders.Children[j] as FolderTile;

                        MenuItem subItem = new MenuItem();
                        subItem.Header = ft.MyConfig.ChannelName.Split(" > ")[^ 1];
        private void UpdateFolderGrid(bool forceUpdate = false)
        {
            int itemsPerRow = (int)((float)_folderStackPanel.ActualWidth / 104);

            if (_old == itemsPerRow && !forceUpdate)
            {
                return;                                      // dont update if its not needed, duh.
            }
            Tiles.Clear();
            _folderStackPanel.Children.Clear();
            StackPanel row = NewFolderRow();

            int itemsCount = chConfig.list.Count;
            int index      = 0;

            foreach (var ch in chConfig.list)
            {
                FolderTile ft = new FolderTile(ch.Value);
                row.Children.Add(ft);
                Tiles.Add(ch.Value.ChannelId, ft);

                int col = index % itemsPerRow;

                if (col == (itemsPerRow - 1))
                {
                    _folderStackPanel.Children.Add(row);
                    row = NewFolderRow();
                }

                if (index == (itemsCount - 1))
                {
                    _folderStackPanel.Children.Add(row);
                }

                index++;
            }

            _old = itemsPerRow;
        }