コード例 #1
0
        private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction)
        {
            if (reqAction == UserFinishedRequestedAction.Next)
            {
                var results = IdentifyChanges(false);
                // TODO: make possible to only have series filled out!
                // we require at least the series to be filled for all enabled ones
                var invalids = results.Count(pr => !pr.parser.Matches.ContainsKey(DBSeries.cParsedName) || string.IsNullOrEmpty(pr.parser.Matches[DBSeries.cParsedName]));
                invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cEpisodeIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cEpisodeIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired])));
                invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cSeasonIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cSeasonIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired])));

                if (invalids == 0)
                {
                    if (UserFinishedEditing != null)
                    {
                        UserFinishedEditing(new UserInputResults(results, null), reqAction);
                    }
                }
                else
                {
                    MessageBox.Show("All Enabled results need at least the Series and [Season/Episode or AirDate] Filled out!", "Unable to continue", MessageBoxButtons.OK);
                    return;
                }
            }
            else if (reqAction == UserFinishedRequestedAction.Cancel)
            {
                if (UserFinishedEditing != null)
                {
                    UserFinishedEditing(null, reqAction);
                }
            }

            // we no longer need to listen to navigate event
            ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate);
        }
コード例 #2
0
ファイル: ImportPanelEpID.cs プロジェクト: framug/mptvseries
        private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction)
        {
            if (reqAction == UserFinishedRequestedAction.Next)
            {
                isFinished = true;
            }

            if (UserFinishedEditing != null)
            {
                UserFinishedEditing(null, reqAction);
            }

            // we no longer need to listen to navigate event
            ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate);
        }
コード例 #3
0
        private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction)
        {
            if (UserFinishedEditing == null)
            {
                return;
            }

            if (reqAction == UserFinishedRequestedAction.Next)
            {
                // check if cells are in a dirty status
                // TODO: if so, force focus on 1st cell of active row to register changes
                if (dataGridViewIdentifySeries.IsCurrentRowDirty)
                {
                    string currentCol = dataGridViewIdentifySeries.CurrentCell.OwningColumn.Name;

                    // only interested in the dropdowncomboboxes
                    if (currentCol == colOSeries || currentCol == colAction)
                    {
                        string       message = "The series '{0}' is still in edit mode. Finish changes, then click Next again.";
                        DialogResult result  = MessageBox.Show(string.Format(message, dataGridViewIdentifySeries.CurrentRow.Cells[colSeries].Value), "Unfinished Changes", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
                        if (result == DialogResult.Retry)
                        {
                            return;
                        }
                    }
                }
                UserFinishedEditing(new UserInputResults(givenResults, getApprovedResults()), reqAction);
            }
            else
            {
                UserFinishedEditing(null, reqAction);
            }

            // we no longer need to listen to navigate event
            ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate);
        }
コード例 #4
0
ファイル: GUIConfiguration.cs プロジェクト: barneh/mptvseries
        private void ImportWizard_OnFinishedEditingEpisodes(UserInputResults inputResults, UserFinishedRequestedAction requestAction)
        {
            switch (requestAction)
            {
                case UserFinishedRequestedAction.Cancel:                   
                    ParsingWizardProgress.DeInit();
                    break;

                case UserFinishedRequestedAction.Next:
                    ParsingWizardHost.RemoveDetailsPanel(ParsingWizardEpIDPage);
                    ParsingWizardHost.ShowDetailsPanel(ParsingWizardProgress);
                    ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false);
                    break;

                case UserFinishedRequestedAction.ShowMe:
                    // it was requested, tell the progress wizard to show it
                    ParsingWizardHost.RemoveDetailsPanel(ParsingWizardProgress);
                    ParsingWizardHost.ShowDetailsPanel(ParsingWizardEpIDPage);
                    ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false);
                    ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, true);
                    break;

                default:
                    break;
            }
        }
コード例 #5
0
ファイル: GUIConfiguration.cs プロジェクト: barneh/mptvseries
        private void ImportWizard_OnFinishedSeriesID(UserInputResults inputResults, UserFinishedRequestedAction requestAction)
        {
            ParsingWizardSeriesIDPage.UserFinishedEditing -= new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID);

            ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage);

            if (requestAction == UserFinishedRequestedAction.Next)
            {
                m_parser = new OnlineParsing(this);

                // and give it to the wizard
                ParsingWizardHost.Init();

                // now show generic progress details (remove seriesIDPage)
                ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage);                                
                ParsingWizardHost.ShowDetailsPanel(ParsingWizardProgress);
                ParsingWizardProgress.Init();

                ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false);
                ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false);

                ParsingWizardHost.ImportFinished += new EventHandler(ImportWizard_OnFinished);          

                // only now do we set up the parser itself and fire it off
                ImportWizardParseParams.m_userInputResult = inputResults;

                // this will be requested by the the parsing engine at the appropriate time
                ImportWizardParseParams.UserEpisodeMatcher = ParsingWizardEpIDPage;
                ImportWizardParseParams.m_files = ParsingWizardParsingPage.allFoundFiles; // else they will be marked as removed

                ParsingWizardEpIDPage.UserFinishedEditing += new UserFinishedEditingDelegate(ImportWizard_OnFinishedEditingEpisodes);

                // finally fire it off
                m_timingStart = DateTime.Now;                
                m_parser.Start(ImportWizardParseParams);
            }
            else if (requestAction == UserFinishedRequestedAction.Prev)
            {
                // unregister events
                ParsingWizardSeriesIDPage.UserFinishedEditing -= new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID);
                ParsingWizardSeriesIDPage.SeriesGridPopulated -= new ImportPanelSeriesID.SeriesGridPopulatedDelegate(ImportWizard_OnSeriesGridPopulated);

                // remove existing panel and show previous one
                ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false);
                ParsingWizardHost.ShowDetailsPanel(ParsingWizardParsingPage);
                ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage);
                ParsingWizardParsingPage.Init();
                ParsingWizardSeriesIDPage.ClearResults();                                
            }
            else if (requestAction == UserFinishedRequestedAction.Cancel)
            {
                
            }
        }
コード例 #6
0
ファイル: GUIConfiguration.cs プロジェクト: barneh/mptvseries
        private void ImportWizard_OnFinishedLocalParsing(UserInputResults values, UserFinishedRequestedAction reqAction)
        {
            ParsingWizardParsingPage.ParsingGridPopulated -= new ImportPanelParsing.ParsingGridPopulatedDelegate(ImportWizard_OnParsingGridPopulated);

            ParsingWizardHost.RemoveDetailsPanel(ParsingWizardParsingPage);
            if (reqAction == UserFinishedRequestedAction.Next)
            {
                ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false);
                ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false);

                // show the seriesIdentification Page
                ParsingWizardHost.RemoveDetailsPanel(ParsingWizardParsingPage);
                ParsingWizardHost.ShowDetailsPanel(ParsingWizardSeriesIDPage);
                
                ParsingWizardSeriesIDPage.SeriesGridPopulated += new ImportPanelSeriesID.SeriesGridPopulatedDelegate(ImportWizard_OnSeriesGridPopulated);
                ParsingWizardSeriesIDPage.UserFinishedEditing += new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID);

                ParsingWizardSeriesIDPage.Init(values.ParseResults);                                
            }
            else if (reqAction == UserFinishedRequestedAction.Cancel)
            {
                
            }
        }
コード例 #7
0
        private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction)
        {
            if (UserFinishedEditing == null) return;

            if (reqAction == UserFinishedRequestedAction.Next)
            {
                // check if cells are in a dirty status
                // TODO: if so, force focus on 1st cell of active row to register changes
                if (dataGridViewIdentifySeries.IsCurrentRowDirty)
                {
                    string currentCol = dataGridViewIdentifySeries.CurrentCell.OwningColumn.Name;

                    // only interested in the dropdowncomboboxes
                    if (currentCol == colOSeries || currentCol == colAction)
                    {
                        string message = "The series '{0}' is still in edit mode. Finish changes, then click Next again.";
                        DialogResult result = MessageBox.Show(string.Format(message, dataGridViewIdentifySeries.CurrentRow.Cells[colSeries].Value), "Unfinished Changes", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
                        if (result == DialogResult.Retry) return;
                    }
                    
                }
                UserFinishedEditing(new UserInputResults(givenResults, getApprovedResults()), reqAction);
            }
            else
                UserFinishedEditing(null, reqAction);

            // we no longer need to listen to navigate event
            ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate);
        }
コード例 #8
0
        private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction)
        {
            if (reqAction == UserFinishedRequestedAction.Next)
            {
                var results = IdentifyChanges(false);
                // TODO: make possible to only have series filled out!
                // we require at least the series to be filled for all enabled ones
                var invalids = results.Count(pr => !pr.parser.Matches.ContainsKey(DBSeries.cParsedName) || string.IsNullOrEmpty(pr.parser.Matches[DBSeries.cParsedName]));
                invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cEpisodeIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cEpisodeIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired])));
                invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cSeasonIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cSeasonIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired])));

                if (invalids == 0)
                {
                    if (UserFinishedEditing != null)
                        UserFinishedEditing(new UserInputResults(results, null), reqAction);
                }
                else
                {
                    MessageBox.Show("All Enabled results need at least the Series and [Season/Episode or AirDate] Filled out!", "Unable to continue", MessageBoxButtons.OK);
                    return;
                }
            }
            else if (reqAction == UserFinishedRequestedAction.Cancel)
            {
                if (UserFinishedEditing != null)
                    UserFinishedEditing(null, reqAction);
            }

            // we no longer need to listen to navigate event
            ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate);
        }