[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-18 23:40:49
Message-ID: 1263858049.566824.12071.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1076862 by staniek:

Main Window
*Added tabbar for the project navigator



 M  +6 -0      doc/dev/CHANGELOG-Kexi-js  
 M  +44 -1     main/KexiMainWindow.cpp  
 M  +2 -0      main/KexiMainWindow.h  
 M  +2 -0      main/KexiMainWindow_p.h  


--- trunk/koffice/kexi/doc/dev/CHANGELOG-Kexi-js #1076861:1076862
@@ -63,6 +63,12 @@
 
 ~~~~~~~~~~~~~~~~ 2.2 alpha 1 ~~~~~~~~~~~~~~~~
 
+2010-01-18
+Main Window
+*Added tabbar for the project navigator
+TODO: make it work also when the pane on the right/top/bottom
+TODO: support propeditor
+
 2010-01-17
 Main Window
 *Added view menu to the statusbar (but disabled for now)
--- trunk/koffice/kexi/main/KexiMainWindow.cpp #1076861:1076862
@@ -69,6 +69,7 @@
 #include <krecentdocument.h>
 #include <KMenu>
 #include <KXMLGUIFactory>
+#include <KMultiTabBar>
 
 #include <kexidb/connection.h>
 #include <kexidb/utils.h>
@@ -1952,10 +1953,26 @@
     d->tabbedToolBar = new KexiTabbedToolBar(tabbedToolBarContainer);
     tabbedToolBarContainerLyr->addWidget(d->tabbedToolBar);
 
+    QWidget *mainWidgetContainer = new QWidget();
+    vlyr->addWidget(mainWidgetContainer, 1);
+    QHBoxLayout *mainWidgetContainerLyr = new QHBoxLayout(mainWidgetContainer);
+    mainWidgetContainerLyr->setContentsMargins(0, 0, 0, 0);
+    mainWidgetContainerLyr->setSpacing(0);
+
+    KMultiTabBar *mtbar = new KMultiTabBar(KMultiTabBar::Left);
+    mtbar->setStyle(KMultiTabBar::KDEV3ICON);
+    mainWidgetContainerLyr->addWidget(mtbar, 0);
+    d->multiTabBars.insert(mtbar->position(), mtbar);
+
     d->mainWidget = new KexiMainWidget();
-    vlyr->addWidget(d->mainWidget, 1);
     d->mainWidget->setParent(this);
+    mainWidgetContainerLyr->addWidget(d->mainWidget, 1);
 
+    mtbar = new KMultiTabBar(KMultiTabBar::Right);
+    mtbar->setStyle(KMultiTabBar::KDEV3ICON);
+    mainWidgetContainerLyr->addWidget(mtbar, 0);
+    d->multiTabBars.insert(mtbar->position(), mtbar);
+
     d->statusBar = new KexiStatusBar(this);
 #if 0 // still disabled, see KexiStatusBar
     connect(d->statusBar->m_showNavigatorAction, SIGNAL(triggered(bool)),
@@ -1978,6 +1995,30 @@
         d->propEditorDockWidget->setVisible(set);
 }
 
+void KexiMainWindow::slotProjectNavigatorVisibilityChanged(bool visible)
+{
+    KMultiTabBar *mtbar = d->multiTabBars[KMultiTabBar::Left];
+    int id = 0; //todo
+    if (visible) {
+        mtbar->removeTab(id);
+    }
+    else {
+        QString t(d->navDockWidget->windowTitle());
+        t.remove('&');
+        mtbar->appendTab(QPixmap(), id, t);
+        KMultiTabBarTab *tab = mtbar->tab(0);
+        connect(tab, SIGNAL(clicked(int)), this, \
SLOT(slotMultiTabBarTabClicked(int))); +    }
+}
+
+void KexiMainWindow::slotMultiTabBarTabClicked(int id)
+{
+    if (id == 0) { // todo
+        slotProjectNavigatorVisibilityChanged(true);
+        d->navDockWidget->show();
+    }
+}
+
 static Qt::DockWidgetArea loadDockAreaSetting(KConfigGroup& group, const char* \
configEntry, Qt::DockWidgetArea defaultArea)  {
         const QString areaName = group.readEntry(configEntry).toLower();
@@ -2073,6 +2114,8 @@
         }
         connect(d->nav, SIGNAL(selectionChanged(KexiPart::Item*)),
                 this, SLOT(slotPartItemSelectedInNavigator(KexiPart::Item*)));
+        connect(d->navDockWidget, SIGNAL(visibilityChanged(bool)),
+            this, SLOT(slotProjectNavigatorVisibilityChanged(bool)));
 
 //  d->restoreNavigatorWidth();
     }
--- trunk/koffice/kexi/main/KexiMainWindow.h #1076861:1076862
@@ -705,6 +705,8 @@
 
     void slotSetProjectNavigatorVisible(bool set);
     void slotSetPropertyEditorVisible(bool set);
+    void slotProjectNavigatorVisibilityChanged(bool visible);
+    void slotMultiTabBarTabClicked(int id);
 
 private:
     class MessageHandler;
--- trunk/koffice/kexi/main/KexiMainWindow_p.h #1076861:1076862
@@ -1093,6 +1093,8 @@
 
 //2.0: unused  KMdi::MdiMode mdiModeToSwitchAfterRestart;
 
+    QMap<KMultiTabBar::KMultiTabBarPosition, KMultiTabBar*> multiTabBars;
+
 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