[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