def GetYesNo( win, message, title = 'Are you sure?', yes_label = 'yes', no_label = 'no', auto_yes_time = None, auto_no_time = None, check_for_cancelled = False ): with ClientGUITopLevelWindowsPanels.DialogCustomButtonQuestion( win, title ) as dlg: panel = ClientGUIScrolledPanelsButtonQuestions.QuestionYesNoPanel( dlg, message, yes_label = yes_label, no_label = no_label ) dlg.SetPanel( panel ) if auto_yes_time is None and auto_no_time is None: return dlg.exec() if not check_for_cancelled else ( dlg.exec(), dlg.WasCancelled() ) else: if auto_yes_time is not None: job = HG.client_controller.CallLaterQtSafe( dlg, auto_yes_time, 'dialog auto-yes', dlg.done, QW.QDialog.Accepted ) elif auto_no_time is not None: job = HG.client_controller.CallLaterQtSafe( dlg, auto_no_time, 'dialog auto-no', dlg.done, QW.QDialog.Rejected ) try: return dlg.exec() if not check_for_cancelled else ( dlg.exec(), dlg.WasCancelled() ) finally: job.Cancel()
def GetInterstitialFilteringAnswer( win, label ): with ClientGUITopLevelWindowsPanels.DialogCustomButtonQuestion( win, label ) as dlg: panel = ClientGUIScrolledPanelsButtonQuestions.QuestionCommitInterstitialFilteringPanel( dlg, label ) dlg.SetPanel( panel ) result = dlg.exec() return result
def GetFinishFilteringAnswer( win, label ): with ClientGUITopLevelWindowsPanels.DialogCustomButtonQuestion( win, label ) as dlg: panel = ClientGUIScrolledPanelsButtonQuestions.QuestionFinishFilteringPanel( dlg, label ) dlg.SetPanel( panel ) result = ( dlg.exec(), dlg.WasCancelled() ) return result
def GetFinishArchiveDeleteFilteringAnswer( win, kept_label, deletion_options ): with ClientGUITopLevelWindowsPanels.DialogCustomButtonQuestion( win, 'filtering done?' ) as dlg: panel = ClientGUIScrolledPanelsButtonQuestions.QuestionArchiveDeleteFinishFilteringPanel( dlg, kept_label, deletion_options ) dlg.SetPanel( panel ) result = dlg.exec() location_context = panel.GetLocationContext() was_cancelled = dlg.WasCancelled() return ( result, location_context, was_cancelled )
def GetYesYesNo( win, message, title = 'Are you sure?', yes_tuples = None, no_label = 'no' ): with ClientGUITopLevelWindowsPanels.DialogCustomButtonQuestion( win, title ) as dlg: panel = ClientGUIScrolledPanelsButtonQuestions.QuestionYesYesNoPanel( dlg, message, yes_tuples = yes_tuples, no_label = no_label ) dlg.SetPanel( panel ) if dlg.exec() == QW.QDialog.Accepted: return panel.GetValue() else: raise HydrusExceptions.CancelledException( 'Dialog cancelled.' )