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

List:       kde-commits
Subject:    koffice/kexi
From:       Jarosław Staniek <staniek () kde ! org>
Date:       2010-01-24 1:04:33
Message-ID: 1264295073.690974.32058.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1079297 by staniek:

Main Window
*Make property editor pane's tabbar show properly when switching between windows \
being in design/view modes, make is also behave properly when propery pane is \
collapsed



 M  +1 -0      doc/dev/CHANGELOG-Kexi-js  
 M  +8 -15     main/KexiMainWindow.cpp  
 M  +33 -1     main/KexiMainWindow_p.h  


--- trunk/koffice/kexi/doc/dev/CHANGELOG-Kexi-js #1079296:1079297
@@ -65,6 +65,7 @@
 2010-01-23
 Main Window
 *Added tabbar for the property editor pane
+*Make property editor pane's tabbar show properly when switching between windows \
being in design/view modes, make is also behave properly when propery pane is \
collapsed  
 2010-01-19
 Forms
--- trunk/koffice/kexi/main/KexiMainWindow.cpp #1079296:1079297
@@ -1995,9 +1995,6 @@
         d->propEditorDockWidget->setVisible(set);
 }
 
-#define PROJECT_NAVIGATOR_TABBAR_ID 0
-#define PROPERTY_EDITOR_TABBAR_ID 1
-
 void KexiMainWindow::slotProjectNavigatorVisibilityChanged(bool visible)
 {
     KMultiTabBar *mtbar = d->multiTabBars[KMultiTabBar::Left];
@@ -2016,18 +2013,11 @@
 
 void KexiMainWindow::slotPropertyEditorVisibilityChanged(bool visible)
 {
-    KMultiTabBar *mtbar = d->multiTabBars[KMultiTabBar::Right];
-    int id = PROPERTY_EDITOR_TABBAR_ID;
-    if (visible) {
-        mtbar->removeTab(id);
-    }
-    else {
-        QString t(d->propEditorDockWidget->windowTitle());
-        t.remove('&');
-        mtbar->appendTab(QPixmap(), id, t);
-        KMultiTabBarTab *tab = mtbar->tab(id);
-        connect(tab, SIGNAL(clicked(int)), this, \
                SLOT(slotMultiTabBarTabClicked(int)));
-    }
+    if (!d->enable_slotPropertyEditorVisibilityChanged)
+        return;
+    d->setPropertyEditorTabBarVisible(!visible);
+    if (!visible)
+        d->propertyEditorCollapsed = true;
 }
 
 void KexiMainWindow::slotMultiTabBarTabClicked(int id)
@@ -2039,6 +2029,7 @@
     else if (id == PROPERTY_EDITOR_TABBAR_ID) {
         slotPropertyEditorVisibilityChanged(true);
         d->propEditorDockWidget->show();
+        d->propertyEditorCollapsed = false;
     }
 }
 
@@ -2241,7 +2232,9 @@
               ds->setSeparatorPosInPercent(d->config->readEntry("RightDockPosition", \
80));  #endif
             }*/
+        d->enable_slotPropertyEditorVisibilityChanged = false;
         d->propEditorDockWidget->setVisible(false);
+        d->enable_slotPropertyEditorVisibilityChanged = true;
     }
 }
 
--- trunk/koffice/kexi/main/KexiMainWindow_p.h #1079296:1079297
@@ -27,6 +27,9 @@
 # define KEXI_NO_PENDING_DIALOGS
 #endif
 
+#define PROJECT_NAVIGATOR_TABBAR_ID 0
+#define PROPERTY_EDITOR_TABBAR_ID 1
+
 #include <KToolBar>
 #include <QGroupBox>
 #include <QHBoxLayout>
@@ -581,6 +584,8 @@
         forceHideProjectNavigatorOnCreation = false;
         navWasVisibleBeforeProjectClosing = false;
         saveSettingsForShowProjectNavigator = true;
+        propertyEditorCollapsed = false;
+        enable_slotPropertyEditorVisibilityChanged = true;
     }
     ~Private() {
         qDeleteAll(m_openedCustomObjectsForItem);
@@ -774,9 +779,33 @@
         const bool visible = (viewMode == Kexi::DesignViewMode)
             && ((currentWindow && currentWindow->propertySet()) || \
info->isPropertyEditorAlwaysVisibleInDesignMode());  kDebug() << "visible == " << \
                visible;
-        propEditorDockWidget->setVisible(visible);
+        enable_slotPropertyEditorVisibilityChanged = false;
+        if (visible && propertyEditorCollapsed) { // used when we're switching back \
to a window with propeditor available but collapsed +            \
propEditorDockWidget->setVisible(!visible); +            \
setPropertyEditorTabBarVisible(true); +        }
+        else {
+            propEditorDockWidget->setVisible(visible);
+            setPropertyEditorTabBarVisible(false);
+        }
+        enable_slotPropertyEditorVisibilityChanged = true;
     }
 
+    void setPropertyEditorTabBarVisible(bool visible) {
+        KMultiTabBar *mtbar = multiTabBars[KMultiTabBar::Right];
+        int id = PROPERTY_EDITOR_TABBAR_ID;
+        if (!visible) {
+            mtbar->removeTab(id);
+        }
+        else if (!mtbar->tab(id)) {
+            QString t(propEditorDockWidget->windowTitle());
+            t.remove('&');
+            mtbar->appendTab(QPixmap(), id, t);
+            KMultiTabBarTab *tab = mtbar->tab(id);
+            QObject::connect(tab, SIGNAL(clicked(int)), wnd, \
SLOT(slotMultiTabBarTabClicked(int))); +        }
+    }
+
 //2.0: unused
 #if 0
     void restoreNavigatorWidth() {
@@ -1094,7 +1123,10 @@
 //2.0: unused  KMdi::MdiMode mdiModeToSwitchAfterRestart;
 
     QMap<KMultiTabBar::KMultiTabBarPosition, KMultiTabBar*> multiTabBars;
+    bool propertyEditorCollapsed;
 
+    bool enable_slotPropertyEditorVisibilityChanged;
+
 private:
     //! @todo move to KexiProject
     KexiWindowDict windows;


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

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