[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