src/gui/dialogs/qfontdialog.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/src/gui/dialogs/qfontdialog.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/gui/dialogs/qfontdialog.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -174,6 +174,11 @@
 {
     Q_Q(QFontDialog);
 
+#ifdef Q_WS_MAC
+    nativeDialogInUse = false;
+    delegate = 0;
+#endif
+
     q->setSizeGripEnabled(true);
     q->setWindowTitle(QFontDialog::tr("Select Font"));
 
@@ -329,10 +334,6 @@
 
     familyList->setFocus();
     retranslateStrings();
-
-#ifdef Q_WS_MAC
-    delegate = 0;
-#endif
 }
 
 /*!
@@ -345,8 +346,7 @@
 #ifdef Q_WS_MAC
     Q_D(QFontDialog);
     if (d->delegate) {
-        QFontDialogPrivate::closeCocoaFontPanel(d->delegate);
-        QFontDialogPrivate::sharedFontPanelAvailable = true;
+        d->closeCocoaFontPanel();
         return;
     }
 #endif
@@ -428,14 +428,6 @@
 QFont QFontDialogPrivate::getFont(bool *ok, const QFont &initial, QWidget *parent,
                                   const QString &title, QFontDialog::FontDialogOptions options)
 {
-#ifdef Q_WS_MAC
-    if (!(options & QFontDialog::DontUseNativeDialog)
-            && QFontDialogPrivate::sharedFontPanelAvailable) {
-        return QFontDialogPrivate::execCocoaFontPanel(ok, initial, parent,
-                       title.isEmpty() ? QFontDialog::tr("Select Font") : title, options);
-    }
-#endif
-
     QFontDialog dlg(parent);
     dlg.setOptions(options);
     dlg.setCurrentFont(initial);
@@ -988,13 +980,10 @@
 */
 void QFontDialog::setVisible(bool visible)
 {
-    Q_D(QFontDialog);
-    if (visible) {
-        if (testAttribute(Qt::WA_WState_ExplicitShowHide) && !testAttribute(Qt::WA_WState_Hidden))
-            return;
-    } else if  (testAttribute(Qt::WA_WState_ExplicitShowHide) && testAttribute(Qt::WA_WState_Hidden))
+    if (testAttribute(Qt::WA_WState_ExplicitShowHide) && testAttribute(Qt::WA_WState_Hidden) != visible)
         return;
 #ifdef Q_WS_MAC
+    Q_D(QFontDialog);
     if (d->canBeNativeDialog()){
         if (d->setVisible_sys(visible)){
             d->nativeDialogInUse = true;