[Digikam-devel] extragear/graphics/digikam/libs/dialogs

Gilles Caulier caulier.gilles at gmail.com
Thu Jun 21 10:18:44 BST 2007


SVN commit 678388 by cgilles:

digikam/libs/dialogs is now ported completly to KDE4
CCMAIL: digikam-devel at kde.org


 M  +44 -28    ctrlpaneldlg.cpp  
 M  +5 -1      imagedlgbase.cpp  
 M  +7 -10     imageguidedlg.cpp  


--- trunk/extragear/graphics/digikam/libs/dialogs/ctrlpaneldlg.cpp #678387:678388
@@ -100,8 +100,10 @@
 };
 
 CtrlPanelDlg::CtrlPanelDlg(QWidget* parent, QString title, QString name,
-                           bool loadFileSettings, bool tryAction, bool progressBar,
-                           int separateViewMode, Q3Frame* bannerFrame)
+                           bool loadFileSettings, 
+                           bool tryAction, 
+                           bool progressBar,
+                           int separateViewMode)
             : KDialog(parent)
 {
     kapp->setOverrideCursor( Qt::WaitCursor );
@@ -198,12 +200,18 @@
 
 void CtrlPanelDlg::setAboutData(KAboutData *about)
 {
+    disconnect(this, SIGNAL(helpClicked()),
+               this, SLOT(slotHelp()));
+
     d->aboutData            = about;
-    QPushButton *helpButton = actionButton( Help );
+    KPushButton *helpButton = button( Help );
     KHelpMenu* helpMenu     = new KHelpMenu(this, d->aboutData, false);
-    helpMenu->menu()->removeItemAt(0);
-    helpMenu->menu()->insertItem(i18n("digiKam Handbook"), this, SLOT(slotHelp()), 0, -1, 0);
-    helpButton->setPopup( helpMenu->menu() );
+    helpMenu->menu()->removeAction(helpMenu->menu()->actions().first());
+    QAction *handbook       = new QAction(i18n("digiKam Handbook"), this);
+    connect(handbook, SIGNAL(triggered(bool)),
+            this, SLOT(slotHelp()));
+    helpMenu->menu()->insertAction(helpMenu->menu()->actions().first(), handbook);
+    helpButton->setDelayedMenu( helpMenu->menu() );
 }
 
 void CtrlPanelDlg::abortPreview()
@@ -249,8 +257,10 @@
 
        kapp->restoreOverrideCursor();
     }
-    
-    saveDialogSize(d->name + QString(" Tool Dialog"));
+
+    KSharedConfig::Ptr config = KGlobal::config();
+    KConfigGroup group = config->group(d->name + QString(" Tool Dialog"));
+    saveDialogSize(group);
     done(Cancel);
 }
 
@@ -264,7 +274,9 @@
        kapp->restoreOverrideCursor();
     }
 
-    saveDialogSize(d->name + QString(" Tool Dialog"));
+    KSharedConfig::Ptr config = KGlobal::config();
+    KConfigGroup group = config->group(d->name + QString(" Tool Dialog"));
+    saveDialogSize(group);
     e->accept();
 }
 
@@ -291,8 +303,6 @@
 
     if (d->aboutData)
         KToolInvocation::invokeHelp(d->name, "digikam");
-    else
-        KDialog::slotHelp();
 }
 
 void CtrlPanelDlg::slotTimer()
@@ -306,7 +316,8 @@
     d->timer = new QTimer( this );
     connect( d->timer, SIGNAL(timeout()),
              this, SLOT(slotEffect()) );
-    d->timer->start(500, true);
+    d->timer->setSingleShot(true);
+    d->timer->start(500);
 }
 
 void CtrlPanelDlg::slotEffect()
@@ -342,7 +353,10 @@
 {
     d->currentRenderingMode = CtrlPanelDlgPriv::FinalRendering;
     DDebug() << "Final " << d->name << " started..." << endl;
-    saveDialogSize(d->name + QString(" Tool Dialog"));
+
+    KSharedConfig::Ptr config = KGlobal::config();
+    KConfigGroup group = config->group(d->name + QString(" Tool Dialog"));
+    saveDialogSize(group);
     writeUserSettings();
 
     m_imagePreviewWidget->setEnable(false);
@@ -365,11 +379,11 @@
     prepareFinal();
 }
 
-void CtrlPanelDlg::customEvent(QCustomEvent *event)
+void CtrlPanelDlg::customEvent(QEvent *event)
 {
     if (!event) return;
 
-    DImgThreadedFilter::EventData *ed = (DImgThreadedFilter::EventData*) event->data();
+    DImgThreadedFilter::EventData *ed = (DImgThreadedFilter::EventData*) event;
 
     if (!ed) return;
 
@@ -425,29 +439,31 @@
 // Backport KDialog::keyPressEvent() implementation from KDELibs to ignore Enter/Return Key events 
 // to prevent any conflicts between dialog keys events and SpinBox keys events.
 
+// TODO: KDE4PORT: Check if this code work fine with KDE4::KDialog()
+
 void CtrlPanelDlg::keyPressEvent(QKeyEvent *e)
 {
-    if ( e->state() == 0 )
+    if ( e->modifiers() == 0 )
     {
         switch ( e->key() )
         {
-        case Qt::Key_Escape:
-            e->accept();
-            reject();
-        break;
-        case Qt::Key_Enter:            
-        case Qt::Key_Return:     
-            e->ignore();              
-        break;
-        default:
-            e->ignore();
-            return;
+            case Qt::Key_Escape:
+                e->accept();
+                reject();
+            break;
+            case Qt::Key_Enter:
+            case Qt::Key_Return:
+                e->ignore();
+            break;
+            default:
+                e->ignore();
+                return;
         }
     }
     else
     {
         // accept the dialog when Ctrl-Return is pressed
-        if ( e->state() == Qt::ControlModifier &&
+        if ( e->modifiers() == Qt::ControlModifier &&
             (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) )
         {
             e->accept();
--- trunk/extragear/graphics/digikam/libs/dialogs/imagedlgbase.cpp #678387:678388
@@ -98,7 +98,8 @@
 };
 
 ImageDlgBase::ImageDlgBase(QWidget* parent, QString title, QString name, 
-                           bool loadFileSettings, bool tryAction)
+                           bool loadFileSettings, 
+                           bool tryAction)
             : KDialog(parent)
 {
     setButtons(Help|Default|User1|User2|User3|Try|Ok|Cancel);
@@ -238,6 +239,9 @@
 
 void ImageDlgBase::setAboutData(KAboutData *about)
 {
+    disconnect(this, SIGNAL(helpClicked()),
+               this, SLOT(slotHelp()));
+
     d->aboutData = about;
     KPushButton *helpButton = button( Help );
     KHelpMenu* helpMenu = new KHelpMenu(this, d->aboutData, false);
--- trunk/extragear/graphics/digikam/libs/dialogs/imageguidedlg.cpp #678387:678388
@@ -299,16 +299,10 @@
 
 ImageGuideDlg::~ImageGuideDlg()
 {
-    if (d->timer)
-       delete d->timer;
-
-    if (m_threadedFilter)
-       delete m_threadedFilter;
-
-    if (d->aboutData)
-       delete d->aboutData;
-
+    delete d->aboutData;
+    delete d->timer;
     delete d->settingsSideBar;
+    delete m_threadedFilter;
     delete d;
 }
 
@@ -364,6 +358,9 @@
 
 void ImageGuideDlg::setAboutData(KAboutData *about)
 {
+    disconnect(this, SIGNAL(helpClicked()),
+               this, SLOT(slotHelp()));
+
     d->aboutData            = about;
     KPushButton *helpButton = button( Help );
     KHelpMenu* helpMenu     = new KHelpMenu(this, d->aboutData, false);
@@ -440,7 +437,7 @@
 
        kapp->restoreOverrideCursor();
     }
-    
+
     writeSettings();
     done(Cancel);
 }



More information about the Digikam-devel mailing list