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

List:       kde-commits
Subject:    koffice/kexi
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2010-07-26 7:43:37
Message-ID: 20100726074337.ED363AC867 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1154758 by piggz:

Port of the KexiProjectListView from Q/K3 listview to Qts Model/View framework.
This is not 100% complete, but i am posting here to see if it is ok to commit and \
continue working in trunk. As is, this will add a second project navigator to the \
docker, below the old navigator.  This means it can be used side-by-side for \
comparison with the old version, and when ready, the old code can be removed.

Classes:
KexiProjectNavigator - main widget, which contains the treeview and some tool buttons
KexiProjectTreeView  - Treeview widget which contains the project model
KexiProjectModel     - The model describing the projects objects \
(tables/queries/forms/reports/scripts) KexiProjectModelItem - Individual model items

Known not to work/not yet implemented:
Removing items from the project
Asterix after names of modified items

 M  +51 -1     main/KexiMainWindow.cpp  
 M  +3 -0      main/KexiMainWindow_p.h  
 M  +4 -0      widget/CMakeLists.txt  
 AM            widget/KexiProjectModel.cpp   [License: LGPL (v2)]
 AM            widget/KexiProjectModel.h   [License: LGPL (v2)]
 AM            widget/KexiProjectModelItem.cpp   [License: LGPL (v2+)]
 AM            widget/KexiProjectModelItem.h   [License: LGPL (v2)]
 AM            widget/KexiProjectNavigator.cpp   [License: LGPL (v2+)]
 AM            widget/KexiProjectNavigator.h   [License: LGPL (v2+)]
 AM            widget/KexiProjectTreeView.cpp   [License: LGPL (v2+)]
 AM            widget/KexiProjectTreeView.h   [License: LGPL (v2+)]


--- trunk/koffice/kexi/main/KexiMainWindow.cpp #1154757:1154758
@@ -94,11 +94,13 @@
 #include "kexifinddialog.h"
 #include "kexisearchandreplaceiface.h"
 #include <kexi_global.h>
+#include "KexiProjectModel.h"
 
 #include <widget/KexiProjectListView.h>
 #include <widget/KexiPropertyEditorView.h>
 #include <widget/utils/kexirecordnavigator.h>
 #include <widget/utils/KexiDockableWidget.h>
+#include <widget/KexiProjectNavigator.h>
 #include <koproperty/EditorView.h>
 #include <koproperty/Set.h>
 
@@ -298,6 +300,7 @@
 //#ifdef KEXI_DEBUG_GUI
 // delete debugWindow;
 //#endif
+
     return 0;
 }
 
@@ -2087,7 +2090,22 @@
 
         KexiDockableWidget* navDockableWidget = new \
KexiDockableWidget(d->navDockWidget);  d->nav = new \
                KexiProjectListView(navDockableWidget);
-        navDockableWidget->setWidget(d->nav);
+        d->nav2 = new KexiProjectNavigator(navDockableWidget);
+        
+        //navDockableWidget->setWidget(d->nav);
+
+               
+        //TODO temp
+        QWidget *navi = new QWidget(navDockableWidget);
+        QVBoxLayout *navi_layout = new QVBoxLayout();
+        navi_layout->addWidget(d->nav);
+        navi_layout->addWidget(d->nav2);
+        navi->setLayout(navi_layout);
+
+        navDockableWidget->setWidget(navi);
+        //End TODO
+
+        
 //TODO REMOVE?  d->nav->installEventFilter(this);
         d->navDockWidget->setWindowTitle(d->nav->windowTitle());
         d->navDockWidget->setWidget(navDockableWidget);
@@ -2131,9 +2149,39 @@
         }
         connect(d->nav, SIGNAL(selectionChanged(KexiPart::Item*)),
                 this, SLOT(slotPartItemSelectedInNavigator(KexiPart::Item*)));
+        
         connect(d->navDockWidget, SIGNAL(visibilityChanged(bool)),
             this, SLOT(slotProjectNavigatorVisibilityChanged(bool)));
 
+        //Nav2 Signals
+        connect(d->nav2, SIGNAL(openItem(KexiPart::Item*, Kexi::ViewMode)),
+                this, SLOT(openObject(KexiPart::Item*, Kexi::ViewMode)));
+        connect(d->nav2, SIGNAL(openOrActivateItem(KexiPart::Item*, \
Kexi::ViewMode)), +                this, \
SLOT(openObjectFromNavigator(KexiPart::Item*, Kexi::ViewMode))); +        \
connect(d->nav2, SIGNAL(newItem(KexiPart::Info*)), +                this, \
SLOT(newObject(KexiPart::Info*))); +        connect(d->nav2, \
SIGNAL(removeItem(KexiPart::Item*)), +                this, \
SLOT(removeObject(KexiPart::Item*))); +        connect(d->nav2->model(), \
SIGNAL(renameItem(KexiPart::Item*, const QString&, bool&)), +                this, \
SLOT(renameObject(KexiPart::Item*, const QString&, bool&))); +        \
connect(d->nav2, SIGNAL(executeItem(KexiPart::Item*)), +                this, \
SLOT(executeItem(KexiPart::Item*))); +        connect(d->nav2, \
SIGNAL(exportItemToClipboardAsDataTable(KexiPart::Item*)), +                this, \
SLOT(copyItemToClipboardAsDataTable(KexiPart::Item*))); +        connect(d->nav2, \
SIGNAL(exportItemToFileAsDataTable(KexiPart::Item*)), +                this, \
SLOT(exportItemAsDataTable(KexiPart::Item*))); +        connect(d->nav2, \
SIGNAL(printItem(KexiPart::Item*)), +                this, \
SLOT(printItem(KexiPart::Item*))); +        connect(d->nav2, \
SIGNAL(pageSetupForItem(KexiPart::Item*)), +                this, \
SLOT(showPageSetupForItem(KexiPart::Item*))); +        connect(d->nav2, \
SIGNAL(selectionChanged(KexiPart::Item*)), +                this, \
SLOT(slotPartItemSelectedInNavigator(KexiPart::Item*))); +        if (d->prj) \
{//connect to the project +            connect(d->prj, SIGNAL(itemRemoved(const \
KexiPart::Item&)), +                    d->nav2, SLOT(slotRemoveItem(const \
KexiPart::Item&))); +        }
+
+        
 //  d->restoreNavigatorWidth();
     }
     if (d->prj->isConnected()) {
@@ -2143,6 +2191,8 @@
             showWarningContinueMessage(partManagerErrorMessages, QString(),
                                        "dontShowWarningsRelatedToPluginsLoading");
         }
+        d->nav2->setProject(d->prj, QString()/*all classes*/, \
&partManagerErrorMessages); +        
     }
     connect(d->prj, SIGNAL(newItemStored(KexiPart::Item&)), d->nav, \
SLOT(addItem(KexiPart::Item&)));  d->nav->setFocus();
--- trunk/koffice/kexi/main/KexiMainWindow_p.h #1154757:1154758
@@ -35,6 +35,7 @@
 #include <QHBoxLayout>
 
 #include <kexiutils/SmallToolButton.h>
+class KexiProjectNavigator;
 
 //! @short Main application's tabbed toolbar
 class KexiTabbedToolBar : public KTabWidget
@@ -298,6 +299,7 @@
         d->tabToRaise = -1;
     } else if (d->tabToRaise != tab) {
         d->tabRaiseTimer.start();
+
         d->tabToRaise = tab;
     }
     KTabWidget::mouseMoveEvent(event);
@@ -945,6 +947,7 @@
     KexiContextHelp *ctxHelp;
 #endif
     KexiProjectListView *nav;
+    KexiProjectNavigator *nav2;
     KexiTabbedToolBar *tabbedToolBar;
     KexiDockWidget *navDockWidget;
     KTabWidget *propEditorTabWidget;
--- trunk/koffice/kexi/widget/CMakeLists.txt #1154757:1154758
@@ -32,6 +32,10 @@
    kexiprjtypeselector.cpp
    KexiProjectListView.cpp 
    KexiProjectListViewItem.cpp 
+   KexiProjectModel.cpp
+   KexiProjectModelItem.cpp
+   KexiProjectNavigator.cpp
+   KexiProjectTreeView.cpp
 )
 
 


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

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