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

List:       kde-commits
Subject:    koffice
From:       Cyrille Berger <cyb () lepi ! org>
Date:       2010-03-02 17:51:45
Message-ID: 1267552305.948752.3343.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1098025 by berger:

Fix: saving of dockers position after call to hide dockers

This also move Krita's code for hidding dockers to KoMainWindow, it should
allow other application to have this functionnality

BUG:222643


 M  +9 -29     krita/ui/kis_view2.cpp  
 M  +0 -1      krita/ui/kis_view2.h  
 M  +29 -0     libs/main/KoMainWindow.cpp  
 M  +4 -0      libs/main/KoMainWindow.h  


--- trunk/koffice/krita/ui/kis_view2.cpp #1098024:1098025
@@ -172,7 +172,6 @@
     KisPerspectiveGridManager * perspectiveGridManager;
     KisPaintingAssistantsManager* paintingAssistantManager;
     KoFavoriteResourceManager* favoriteResourceManager;
-    QVector<QDockWidget*> hiddenDockwidgets;
 };
 
 
@@ -188,13 +187,17 @@
     m_d->totalRefresh->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_R));
     connect(m_d->totalRefresh, SIGNAL(triggered()), this, SLOT(slotTotalRefresh()));
 
-    m_d->toggleDockers = new KToggleAction(i18n("Show Dockers"), this);
-    m_d->toggleDockers->setChecked(true);
-    actionCollection()->addAction("toggledockers", m_d->toggleDockers);
+    if (shell()) {
+        m_d->toggleDockers = new KToggleAction(i18n("Show Dockers"), this);
+        m_d->toggleDockers->setChecked(true);
+        actionCollection()->addAction("toggledockers", m_d->toggleDockers);
 
 
-    m_d->toggleDockers->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_H));
-    connect(m_d->toggleDockers, SIGNAL(toggled(bool)), this, \
SLOT(toggleDockers(bool))); +        \
m_d->toggleDockers->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_H)); +        \
connect(m_d->toggleDockers, SIGNAL(toggled(bool)), shell(), \
SLOT(toggleDockersVisibility(bool))); +    } else {
+        m_d->toggleDockers = 0;
+    }
 
     setComponentData(KisFactory2::componentData(), false);
 
@@ -757,29 +760,6 @@
     m_d->canvas->resetCanvas(cfg.useOpenGL());
 }
 
-void KisView2::toggleDockers(bool toggle)
-{
-    Q_UNUSED(toggle);
-    if (m_d->hiddenDockwidgets.isEmpty()){
-        foreach(QObject* widget, mainWindow()->children()) {
-            if (widget->inherits("QDockWidget")) {
-                QDockWidget* dw = static_cast<QDockWidget*>(widget);
-                if (dw->isVisible()) {
-                    dw->hide();
-                    m_d->hiddenDockwidgets << dw;
-                }
-            }
-        }
-    }
-    else {
-        foreach(QDockWidget* dw, m_d->hiddenDockwidgets) {
-            dw->show();
-        }
-        m_d->hiddenDockwidgets.clear();
-    }
-
-}
-
 void KisView2::resizeEvent ( QResizeEvent * event )
 {
     dbgUI << "resize: " << event->oldSize() << " to " << event->size() << "main \
                window" << mainWindow()->size();
--- trunk/koffice/krita/ui/kis_view2.h #1098024:1098025
@@ -195,7 +195,6 @@
     void slotEditPalette();
     void slotImageSizeChanged();
     void slotTotalRefresh();
-    void toggleDockers(bool toggle);
 
 private:
 
--- trunk/koffice/libs/main/KoMainWindow.cpp #1098024:1098025
@@ -211,6 +211,7 @@
     QMap<QDockWidget*, bool> dockWidgetVisibilityMap;
     KoDockerManager *dockerManager;
     QList<QDockWidget*> dockWidgets;
+    QList<QDockWidget*> hiddenDockwidgets; // List of dockers hiddent by the call to \
hideDocker  };
 
 KoMainWindow::KoMainWindow(const KComponentData &componentData)
@@ -1036,6 +1037,11 @@
 void KoMainWindow::closeEvent(QCloseEvent *e)
 {
     if (queryClose()) {
+        // Reshow the docker that were temporarely hidden before saving settings
+        foreach(QDockWidget* dw, d->hiddenDockwidgets) {
+            dw->show();
+        }
+        d->hiddenDockwidgets.clear();
         saveWindowSettings();
         setRootDocument(0);
         if (!d->dockWidgetVisibilityMap.isEmpty()) { // re-enable dockers for \
persistency @@ -1880,6 +1886,29 @@
     return d->dockerManager;
 }
 
+void KoMainWindow::toggleDockersVisibility(bool v) const
+{
+    Q_UNUSED(v);
+    qDebug() << "toggleDockersVisibility";
+    if (d->hiddenDockwidgets.isEmpty()){
+        foreach(QObject* widget, children()) {
+            if (widget->inherits("QDockWidget")) {
+                QDockWidget* dw = static_cast<QDockWidget*>(widget);
+                if (dw->isVisible()) {
+                    dw->hide();
+                    d->hiddenDockwidgets << dw;
+                }
+            }
+        }
+    }
+    else {
+        foreach(QDockWidget* dw, d->hiddenDockwidgets) {
+            dw->show();
+        }
+        d->hiddenDockwidgets.clear();
+    }
+}
+
 KRecentFilesAction *KoMainWindow::recentAction() const
 {
     return d->recent;
--- trunk/koffice/libs/main/KoMainWindow.h #1098024:1098025
@@ -322,6 +322,10 @@
 
     void slotProgress(int value);
 
+    /**
+     * Hide the dockers
+     */
+    void toggleDockersVisibility(bool v) const;
 
 private:
 


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

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