Пример #1
0
        private void UpdateProvidedModsDialog(TooManyModsProvideKraken tooManyProvides, TaskCompletionSource <CkanModule> task)
        {
            toomany_source = task;
            ChooseProvidedModsLabel.Text =
                String.Format(
                    "Module {0} is provided by more than one available module, please choose one of the following mods:",
                    tooManyProvides.requested);

            ChooseProvidedModsListView.Items.Clear();

            ChooseProvidedModsListView.ItemChecked += ChooseProvidedModsListView_ItemChecked;

            foreach (CkanModule module in tooManyProvides.modules)
            {
                ListViewItem item = new ListViewItem()
                {
                    Tag     = module,
                    Checked = false,
                    Text    = Manager.Cache.IsMaybeCachedZip(module)
                        ? $"{module.name} {module.version} (cached)"
                        : $"{module.name} {module.version} ({module.download.Host ?? ""}, {CkanModule.FmtSize(module.download_size)})"
                };
                ListViewItem.ListViewSubItem description = new ListViewItem.ListViewSubItem()
                {
                    Text = module.@abstract
                };

                item.SubItems.Add(description);
                ChooseProvidedModsListView.Items.Add(item);
            }
            ChooseProvidedModsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            ChooseProvidedModsContinueButton.Enabled = false;
        }
Пример #2
0
        private void UpdateProvidedModsDialog(TooManyModsProvideKraken tooManyProvides, TaskCompletionSource <CkanModule> task)
        {
            toomany_source = task;
            ChooseProvidedModsLabel.Text = String.Format(
                Properties.Resources.MainInstallProvidedBy,
                tooManyProvides.requested
                );

            ChooseProvidedModsListView.Items.Clear();

            ChooseProvidedModsListView.ItemChecked += ChooseProvidedModsListView_ItemChecked;

            foreach (CkanModule module in tooManyProvides.modules)
            {
                ListViewItem item = new ListViewItem()
                {
                    Tag     = module,
                    Checked = false,
                    Text    = Manager.Cache.IsMaybeCachedZip(module)
                        ? string.Format(Properties.Resources.MainChangesetCached, module.name, module.version)
                        : string.Format(Properties.Resources.MainChangesetHostSize, module.name, module.version, module.download.Host ?? "", CkanModule.FmtSize(module.download_size))
                };
                ListViewItem.ListViewSubItem description = new ListViewItem.ListViewSubItem()
                {
                    Text = module.@abstract
                };

                item.SubItems.Add(description);
                ChooseProvidedModsListView.Items.Add(item);
            }
            ChooseProvidedModsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            ChooseProvidedModsContinueButton.Enabled = false;
        }
Пример #3
0
        private void UpdateProvidedModsDialog(TooManyModsProvideKraken tooManyProvides)
        {
            ChooseProvidedModsLabel.Text =
                String.Format(
                    "Module {0} is provided by more than one available module, please choose one of the following mods:",
                    tooManyProvides.requested);

            ChooseProvidedModsListView.Items.Clear();

            ChooseProvidedModsListView.ItemChecked += ChooseProvidedModsListView_ItemChecked;

            foreach (CkanModule module in tooManyProvides.modules)
            {
                ListViewItem item = new ListViewItem {
                    Tag = module, Checked = true, Text = module.name
                };


                ListViewItem.ListViewSubItem description =
                    new ListViewItem.ListViewSubItem {
                    Text = module.@abstract
                };

                item.SubItems.Add(description);
                ChooseProvidedModsListView.Items.Add(item);
            }
        }
Пример #4
0
        public async Task <CkanModule> TooManyModsProvide(TooManyModsProvideKraken kraken)
        {
            // We want LMtHIT to be the last user selection. If we alter this handling a too many provides
            // it needs to be reset so a potential second too many provides doesn't use the wrong mod.
            GUIMod mod;

            var module = await TooManyModsProvideCore(kraken);

            if (module == null &&
                last_mod_to_have_install_toggled.TryPeek(out mod))
            {
                MarkModForInstall(mod.Identifier, true);
            }
            Util.Invoke(this, () =>
            {
                tabController.SetTabLock(false);
                tabController.HideTab("ChooseProvidedModsTabPage");
                tabController.ShowTab("ManageModsTabPage");
            });

            if (module != null)
            {
                MarkModForInstall(module.identifier);
            }

            last_mod_to_have_install_toggled.TryPop(out mod);
            return(module);
        }
Пример #5
0
 private CkanModule TooManyModsProvideCore(TooManyModsProvideKraken kraken)
 {
     tabController.ShowTab("ChooseProvidedModsTabPage", 3);
     ChooseProvidedMods.LoadProviders(kraken.requested, kraken.modules, Manager.Cache);
     tabController.SetTabLock(true);
     return(ChooseProvidedMods.Wait());
 }
Пример #6
0
        public async Task<CfanModule> TooManyModsProvide(TooManyModsProvideKraken kraken)
        {
            //We want LMtHIT to be the last user selection. If we alter this handling a too many provides
            // it needs to be reset so a potential second too many provides doesn't use the wrong mod.
            GUIMod mod;

            TaskCompletionSource<CfanModule> task = new TaskCompletionSource<CfanModule>();
            Util.Invoke(this, () =>
            {
                UpdateProvidedModsDialog(kraken, task);
                m_TabController.ShowTab("ChooseProvidedModsTabPage", 3);
                m_TabController.SetTabLock(true);
            });
            var module = await task.Task;

            if (module == null)
            {
                last_mod_to_have_install_toggled.TryPeek(out mod);
                MarkModForInstall(mod.Identifier,uncheck:true);
            }
            Util.Invoke(this, () =>
            {
                m_TabController.SetTabLock(false);

                m_TabController.HideTab("ChooseProvidedModsTabPage");

                m_TabController.ShowTab("ManageModsTabPage");
            });

            if(module!=null)
                MarkModForInstall(module.identifier);

            last_mod_to_have_install_toggled.TryPop(out mod);
            return module;
        }
Пример #7
0
        public async Task<CkanModule> TooManyModsProvide(TooManyModsProvideKraken kraken)
        {
            //We want LMtHIT to be the last user selection. If we alter this handling a too many provides
            // it needs to be reset so a potential second too many provides doesn't use the wrong mod.
            GUIMod mod;

            TaskCompletionSource<CkanModule> task = new TaskCompletionSource<CkanModule>();
            Util.Invoke(this, () =>
            {
                UpdateProvidedModsDialog(kraken, task);
                m_TabController.ShowTab("ChooseProvidedModsTabPage", 3);
                m_TabController.SetTabLock(true);
            });
            var module = await task.Task;

            if (module == null)
            {
                last_mod_to_have_install_toggled.TryPeek(out mod);
                MarkModForInstall(mod.Identifier,uninstall:true);
            }
            Util.Invoke(this, () =>
            {
                m_TabController.SetTabLock(false);

                m_TabController.HideTab("ChooseProvidedModsTabPage");

                m_TabController.ShowTab("ManageModsTabPage");
            });

            if(module!=null)
                MarkModForInstall(module.identifier);

            last_mod_to_have_install_toggled.TryPop(out mod);
            return module;
        }
Пример #8
0
        private void UpdateProvidedModsDialog(TooManyModsProvideKraken tooManyProvides, TaskCompletionSource <CfanModule> task)
        {
            toomany_source = task;
            ChooseProvidedModsLabel.Text =
                String.Format(
                    "Module {0} is provided by more than one available module, please choose one of the following mods:",
                    tooManyProvides.requested);

            ChooseProvidedModsListView.Items.Clear();

            ChooseProvidedModsListView.ItemChecked += ChooseProvidedModsListView_ItemChecked;

            foreach (CfanModule module in tooManyProvides.modules)
            {
                ListViewItem item = new ListViewItem {
                    Tag = module, Checked = false, Text = module.title
                };


                ListViewItem.ListViewSubItem description =
                    new ListViewItem.ListViewSubItem {
                    Text = module.@abstract
                };

                item.SubItems.Add(description);
                ChooseProvidedModsListView.Items.Add(item);
            }
            ChooseProvidedModsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            ChooseProvidedModsContinueButton.Enabled = false;
        }
Пример #9
0
        private async Task <CkanModule> TooManyModsProvideCore(TooManyModsProvideKraken kraken)
        {
            TaskCompletionSource <CkanModule> task = new TaskCompletionSource <CkanModule>();

            Util.Invoke(this, () =>
            {
                UpdateProvidedModsDialog(kraken, task);
                tabController.ShowTab("ChooseProvidedModsTabPage", 3);
                tabController.SetTabLock(true);
            });
            return(await task.Task);
        }
Пример #10
0
        private void UpdateProvidedModsDialog(TooManyModsProvideKraken tooManyProvides, TaskCompletionSource<CkanModule> task)
        {
            toomany_source = task;
            ChooseProvidedModsLabel.Text =
                String.Format(
                    "Module {0} is provided by more than one available module, please choose one of the following mods:",
                    tooManyProvides.requested);

            ChooseProvidedModsListView.Items.Clear();

            ChooseProvidedModsListView.ItemChecked += ChooseProvidedModsListView_ItemChecked;

            foreach (Module module in tooManyProvides.modules)
            {
                ListViewItem item = new ListViewItem {Tag = module, Checked = false, Text = module.name};

                ListViewItem.ListViewSubItem description =
                    new ListViewItem.ListViewSubItem {Text = module.@abstract};

                item.SubItems.Add(description);
                ChooseProvidedModsListView.Items.Add(item);
            }
            ChooseProvidedModsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            ChooseProvidedModsContinueButton.Enabled = false;
        }