Esempio n. 1
0
        public void UpdateGameFileTags(IEnumerable <IGameFile> gameFiles, IEnumerable <ITagData> tags)
        {
            ITagData[] changedTagsAll = new ITagData[] { };

            foreach (IGameFile gameFile in gameFiles)
            {
                ITagData[] existingTags = DataCache.Instance.TagMapLookup.GetTags(gameFile);

                var addTags    = tags.Except(existingTags);
                var removeTags = existingTags.Except(tags);

                foreach (var tag in addTags)
                {
                    AddGameFileTag(new IGameFile[] { gameFile }, tag, out _);
                }

                foreach (var tag in removeTags)
                {
                    RemoveGameFileTag(new IGameFile[] { gameFile }, tag);
                }

                changedTagsAll = changedTagsAll.Union(addTags.Union(removeTags)).ToArray();
            }

            TagMapLookup.Refresh(changedTagsAll);
        }
Esempio n. 2
0
        private void RebuildTagToolStrip()
        {
            GameFileViewControl currentControl = GetCurrentViewControl();

            if (currentControl != null)
            {
                List <ITagData> addTags    = new List <ITagData>();
                List <ITagData> removeTags = new List <ITagData>();

                Tags = DataSourceAdapter.GetTags().OrderBy(x => x.Name).ToArray();

                foreach (var gameFile in SelectedItems(currentControl))
                {
                    if (gameFile.GameFileID.HasValue)
                    {
                        var gameFileTags      = TagMapLookup.GetTags(gameFile);
                        var currentRemoveTags = Tags.Where(x => gameFileTags.Any(y => y.TagID == x.TagID));
                        var currentAddTags    = Tags.Except(currentRemoveTags);

                        addTags    = addTags.Union(currentAddTags).ToList();
                        removeTags = removeTags.Union(currentRemoveTags).ToList();
                    }
                }

                ToolStripMenuItem tagToolStrip       = mnuLocal.Items.Cast <ToolStripItem>().FirstOrDefault(x => x.Text == "Tag") as ToolStripMenuItem;
                ToolStripMenuItem removeTagToolStrip = mnuLocal.Items.Cast <ToolStripItem>().FirstOrDefault(x => x.Text == "Remove Tag") as ToolStripMenuItem;

                if (tagToolStrip != null)
                {
                    BuildTagToolStrip(tagToolStrip, addTags, tagToolStripItem_Click);
                    BuildTagToolStrip(removeTagToolStrip, removeTags, removeTagToolStripItem_Click);
                }
            }
        }
Esempio n. 3
0
        public void Init(IDataSourceAdapter adapter)
        {
            DataSourceAdapter = adapter;
            AppConfiguration  = new AppConfiguration(adapter);
            TagMapLookup      = new TagMapLookup(adapter);
            DefaultImage      = Image.FromFile(Path.Combine(LauncherPath.GetDataDirectory(), "TileImages", "DoomLauncherTile.png"));

            UpdateTags();
        }
Esempio n. 4
0
        private void SetupTabs()
        {
            List <ITabView> tabViews = new List <ITabView>();

            ColumnConfig[] colConfig = GetColumnConfig();
            TagMapLookup = new TagMapLookup(DataSourceAdapter);

            tabViews.Add(CreateTabViewRecent(colConfig));
            tabViews.Add(CreateTabViewLocal(colConfig));
            tabViews.Add(CreateTabViewUntagged(colConfig));
            tabViews.Add(CreateTabViewIwad(colConfig));
            tabViews.Add(CreateTabViewIdGames(colConfig));
            tabViews.AddRange(CreateTagTabs(DefaultColumnTextFields, colConfig));

            m_tabHandler = new TabHandler(tabControl);
            m_tabHandler.SetTabs(tabViews);
        }
Esempio n. 5
0
        private void SetupTabs()
        {
            List <ITabView> tabViews = new List <ITabView>();

            ColumnConfig[] colConfig = GetColumnConfig();

            TagMapLookup = new TagMapLookup(DataSourceAdapter);

            ColumnField[] columnTextFields = DefaultColumnTextFields;

            OptionsTabViewCtrl tabViewRecent = new OptionsTabViewCtrl(s_recentKey, s_recentKey, DataSourceAdapter, DefaultGameFileSelectFields, TagMapLookup);

            tabViewRecent.SetColumnConfig(columnTextFields, colConfig);
            tabViewRecent.GameFileViewControl.SetContextMenuStrip(mnuLocal);
            tabViewRecent.GameFileViewControl.AllowDrop = true;
            tabViewRecent.Options            = new GameFileGetOptions();
            tabViewRecent.Options.Limit      = 10;
            tabViewRecent.Options.OrderBy    = OrderType.Desc;
            tabViewRecent.Options.OrderField = GameFileFieldType.Downloaded;

            SetGameFileViewEvents(tabViewRecent.GameFileViewControl, true);

            tabViews.Add(tabViewRecent);

            LocalTabViewCtrl tabViewLocal = new LocalTabViewCtrl(s_localKey, s_localKey, DataSourceAdapter, DefaultGameFileSelectFields, TagMapLookup);

            tabViewLocal.SetColumnConfig(columnTextFields, colConfig);
            tabViewLocal.GameFileViewControl.SetContextMenuStrip(mnuLocal);
            tabViewLocal.GameFileViewControl.AllowDrop = true;
            SetGameFileViewEvents(tabViewLocal.GameFileViewControl, true);

            tabViews.Add(tabViewLocal);

            columnTextFields = new ColumnField[]
            {
                new ColumnField("FileName", "File"),
                new ColumnField("Title", "Title"),
                new ColumnField("LastPlayed", "Last Played")
            };

            IWadTabViewCtrl tabViewIwads = new IWadTabViewCtrl(s_iwadKey, s_iwadKey, DataSourceAdapter, DefaultGameFileSelectFields, TagMapLookup);

            tabViewIwads.SetColumnConfig(columnTextFields, colConfig);
            tabViewIwads.GameFileViewControl.SetContextMenuStrip(mnuLocal);
            tabViewIwads.GameFileViewControl.AllowDrop = true;
            SetGameFileViewEvents(tabViewIwads.GameFileViewControl, true);

            tabViews.Add(tabViewIwads);

            columnTextFields = new ColumnField[]
            {
                new ColumnField("Title", "Title"),
                new ColumnField("Author", "Author"),
                new ColumnField("Description", "Description"),
                new ColumnField("Rating", "Rating"),
            };

            IdGamesDataSourceAdapter = new IdGamesDataAdapater(AppConfiguration.IdGamesUrl, AppConfiguration.ApiPage, AppConfiguration.MirrorUrl);
            IdGamesTabViewCtrl tabViewIdGames = new IdGamesTabViewCtrl(s_idGamesKey, s_idGamesKey, IdGamesDataSourceAdapter, DefaultGameFileSelectFields);

            tabViewIdGames.SetColumnConfig(columnTextFields, colConfig);
            tabViewIdGames.GameFileViewControl.SetContextMenuStrip(mnuIdGames);
            SetGameFileViewEvents(tabViewIdGames.GameFileViewControl, false);

            tabViews.Add(tabViewIdGames);

            tabViews.AddRange(CreateTagTabs(DefaultColumnTextFields, colConfig));

            m_tabHandler = new TabHandler(tabControl);
            m_tabHandler.SetTabs(tabViews);
        }