Przeglądaj źródła

Add static function ctkConfirmExitDialog::confirmExit()

Julien Finet 14 lat temu
rodzic
commit
ee8dba5790

+ 8 - 0
Libs/Widgets/Testing/Cpp/ctkConfirmExitDialogTest1.cpp

@@ -73,6 +73,14 @@ int ctkConfirmExitDialogTest1(int argc, char * argv [] )
     std::cerr << "ctkConfirmExitDialog::exec failed:" << std::endl;
     return EXIT_FAILURE;
     }
+  
+  // test the static version
+  if (ctkConfirmExitDialog::confirmExit("DontShow") != true)
+    {
+    std::cerr << "ctkConfirmExitDialog::confirmExit failed:" << std::endl;
+    return EXIT_FAILURE;
+    }
+
   confirmDialog.setDontShowAnymore(false);
   // modal dialog
   confirmDialog.open();

+ 9 - 0
Libs/Widgets/ctkConfirmExitDialog.cpp

@@ -204,3 +204,12 @@ void ctkConfirmExitDialog::setVisible(bool visible)
     }
   this->Superclass::setVisible(visible);
 }
+
+//-----------------------------------------------------------------------------
+bool ctkConfirmExitDialog
+::confirmExit(const QString& dontShowAgainKey, QWidget* parentWidget)
+{
+  ctkConfirmExitDialog dialog(parentWidget);
+  dialog.setDontShowAnymoreSettingsKey(dontShowAgainKey);
+  return dialog.exec() == QDialog::Accepted;
+}

+ 15 - 1
Libs/Widgets/ctkConfirmExitDialog.h

@@ -38,18 +38,32 @@ public:
   ctkConfirmExitDialog(QWidget* newParent = 0);
   virtual ~ctkConfirmExitDialog();
 
+  /// Customize the pixmap
   void setPixmap(const QPixmap& pixmap);
+  
+  /// Customize the text
   void setText(const QString& text);
   
+  /// Synchronize the state of the checkbox "Don't show this message again"
+  /// with the given settings key.
   void setDontShowAnymoreSettingsKey(const QString& key);
   QString dontShowAnymoreSettingsKey()const;
   
+  /// Is the checkbox "Don't show this message again" checked ?
   bool dontShowAnymore()const;
 
+  /// Utility function that opens a dialog to confirm exit.
+  static bool confirmExit(const QString& dontShowAgainKey = QString(),
+                          QWidget* parentWidget = 0);
+
+  /// Reimplemented for internal reasons
   virtual void setVisible(bool visible);
+
 public slots:
+  /// reimplemented for internal reasons
   virtual void accept();
-  
+
+  /// Change the checkbox and the settings if any
   void setDontShowAnymore(bool dontShow);
 
 protected: