[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim/KDE/4.14] kmail: Avoid to open 2 collection properties dialog for same collection.
From:       Montel Laurent <montel () kde ! org>
Date:       2014-12-01 12:39:55
Message-ID: E1XvQGh-0004Nv-Nl () scm ! kde ! org
[Download RAW message or body]

Git commit bd4d07e2259bb7bf0f7790b4cc5956b4d7d523aa by Montel Laurent.
Committed on 01/12/2014 at 12:39.
Pushed by mlaurent into branch 'KDE/4.14'.

Avoid to open 2 collection properties dialog for same collection.

Fix signal/slot

M  +2    -2    kmail/kmmainwidget.cpp
M  +9    -3    kmail/manageshowcollectionproperties.cpp
M  +6    -0    kmail/manageshowcollectionproperties.h

http://commits.kde.org/kdepim/bd4d07e2259bb7bf0f7790b4cc5956b4d7d523aa

diff --git a/kmail/kmmainwidget.cpp b/kmail/kmmainwidget.cpp
index 681107c..637f85c 100644
--- a/kmail/kmmainwidget.cpp
+++ b/kmail/kmmainwidget.cpp
@@ -3164,7 +3164,7 @@ void KMMainWidget::setupActions()
     // slotExpireFolder() and FolderViewItem::slotShowExpiryProperties().
     mExpireFolderAction = new KAction(i18n("&Expiration Settings"), this);
     actionCollection()->addAction(QLatin1String("expire"), mExpireFolderAction );
-    connect(mExpireFolderAction, SIGNAL(triggered(bool)), \
mManageShowCollectionProperties, SLOT(slotExpireFolder())); +    \
connect(mExpireFolderAction, SIGNAL(triggered(bool)), this, \
SLOT(slotExpireFolder()));  
 
     mAkonadiStandardActionManager->interceptAction( \
Akonadi::StandardMailActionManager::MoveToTrash ); @@ -3486,7 +3486,7 @@ void \
KMMainWidget::setupActions()  {
         mExpireConfigAction = new KAction( i18n( "Expire..." ), this );
         actionCollection()->addAction( \
                QLatin1String("expire_settings"),mExpireConfigAction );
-        connect( mExpireConfigAction, SIGNAL(triggered(bool)), this, \
SLOT(slotShowExpiryProperties()) ); +        connect( mExpireConfigAction, \
SIGNAL(triggered(bool)), mManageShowCollectionProperties, \
SLOT(slotShowExpiryProperties()) );  }
 
     {
diff --git a/kmail/manageshowcollectionproperties.cpp \
b/kmail/manageshowcollectionproperties.cpp index 21d0de4..b1fcdb5 100644
--- a/kmail/manageshowcollectionproperties.cpp
+++ b/kmail/manageshowcollectionproperties.cpp
@@ -70,9 +70,14 @@ void ManageShowCollectionProperties::showCollectionProperties( \
const QString &pa  {
     if ( !mMainWidget->currentFolder() )
         return;
-
+    if (mHashDialogBox.contains(mMainWidget->currentFolder()->collection().id())) {
+        if (mHashDialogBox.value(mMainWidget->currentFolder()->collection().id())) {
+            mHashDialogBox.value(mMainWidget->currentFolder()->collection().id())->activateWindow();
 +            mHashDialogBox.value(mMainWidget->currentFolder()->collection().id())->raise();
 +            return;
+        }
+    }
     if ( Solid::Networking::status() == Solid::Networking::Unconnected ) {
-
         KMessageBox::information(
                     mMainWidget,
                     i18n( "Network is unconnected. Folder information cannot be \
updated." ) ); @@ -185,7 +190,7 @@ void \
                ManageShowCollectionProperties::slotCollectionPropertiesFinished( \
                KJob *job
                                             << QLatin1String( \
                "KMail::CollectionShortcutPage" )
                                             << QLatin1String( \
"KMail::CollectionMaintenancePage" );  
-    Akonadi::CollectionPropertiesDialog *dlg = new \
Akonadi::CollectionPropertiesDialog( collection, pages, mMainWidget ); +    \
QPointer<Akonadi::CollectionPropertiesDialog> dlg = new \
                Akonadi::CollectionPropertiesDialog( collection, pages, mMainWidget \
                );
     dlg->setCaption( i18nc( "@title:window", "Properties of Folder %1", \
collection.name() ) );  
 
@@ -194,4 +199,5 @@ void \
ManageShowCollectionProperties::slotCollectionPropertiesFinished( KJob *job  \
dlg->setCurrentPage( pageToShow );  }
     dlg->show();
+    mHashDialogBox.insert(collection.id(), dlg);
 }
diff --git a/kmail/manageshowcollectionproperties.h \
b/kmail/manageshowcollectionproperties.h index 3f4132f..a2605a3 100644
--- a/kmail/manageshowcollectionproperties.h
+++ b/kmail/manageshowcollectionproperties.h
@@ -23,6 +23,11 @@
 #include <foldercollection.h>
 
 #include <progresswidget/progressmanager.h>
+
+namespace Akonadi {
+class CollectionPropertiesDialog;
+}
+
 class KJob;
 class KMMainWidget;
 class ManageShowCollectionProperties : public QObject
@@ -47,6 +52,7 @@ private:
     void showCollectionPropertiesContinued(const QString &pageToShow, \
QPointer<KPIM::ProgressItem> progressItem);  
 private:
+    QHash<Akonadi::Collection::Id, QPointer<Akonadi::CollectionPropertiesDialog> > \
mHashDialogBox;  KMMainWidget *mMainWidget;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic