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

List:       kde-commits
Subject:    [labplot] src/commonfrontend: Made the deletion of multiple objects in project explorer undo/redoabl
From:       Alexander Semke <alexander.semke () web ! de>
Date:       2016-12-07 19:52:06
Message-ID: E1cEiG6-0001Bz-AL () code ! kde ! org
[Download RAW message or body]

Git commit 38fbf89edc9f72a9271f2b187d661798b6de2ebc by Alexander Semke.
Committed on 07/12/2016 at 19:51.
Pushed by asemke into branch 'master'.

Made the deletion of multiple objects in project explorer undo/redoable.

M  +9    -4    src/commonfrontend/ProjectExplorer.cpp
M  +2    -2    src/commonfrontend/ProjectExplorer.h

https://commits.kde.org/labplot/38fbf89edc9f72a9271f2b187d661798b6de2ebc

diff --git a/src/commonfrontend/ProjectExplorer.cpp \
b/src/commonfrontend/ProjectExplorer.cpp index 101ac956..e19f5cec 100644
--- a/src/commonfrontend/ProjectExplorer.cpp
+++ b/src/commonfrontend/ProjectExplorer.cpp
@@ -237,7 +237,7 @@ void ProjectExplorer::setModel(AspectTreeModel* treeModel) {
 	QTimer::singleShot(0, this, SLOT(resizeHeader()));
 }
 
-void ProjectExplorer::setProject( const Project* project) {
+void ProjectExplorer::setProject(Project* project) {
 	connect(project, SIGNAL(aspectAdded(const AbstractAspect*)), this, \
SLOT(aspectAdded(const AbstractAspect*)));  connect(project, \
SIGNAL(requestSaveState(QXmlStreamWriter*)), this, SLOT(save(QXmlStreamWriter*)));  \
connect(project, SIGNAL(requestLoadState(XmlStreamReader*)), this, \
SLOT(load(XmlStreamReader*))); @@ -525,11 +525,16 @@ void \
ProjectExplorer::collapseSelected() {  
 void ProjectExplorer::deleteSelected() {
 	QModelIndexList items = m_treeView->selectionModel()->selectedIndexes();
-	// TODO: Delete selected aspects
-	foreach(QModelIndex index, items) {
-		AbstractAspect *aspect = static_cast<AbstractAspect *>(index.internalPointer());
+	if (!items.size())
+		return;
+
+	m_project->beginMacro(i18n("Porject Explorer: removed %1 selected \
objects.").arg(items.size()/4)); +	for (int i=0; i<items.size()/4; ++i) {
+		const QModelIndex& index = items.at(i*4);
+		AbstractAspect* aspect = static_cast<AbstractAspect*>(index.internalPointer());
 		aspect->remove();
 	}
+	m_project->endMacro();
 }
 
 //##############################################################################
diff --git a/src/commonfrontend/ProjectExplorer.h \
b/src/commonfrontend/ProjectExplorer.h index b4db0cad..528b992c 100644
--- a/src/commonfrontend/ProjectExplorer.h
+++ b/src/commonfrontend/ProjectExplorer.h
@@ -53,7 +53,7 @@ class ProjectExplorer : public QWidget {
 
 		void setCurrentAspect(const AbstractAspect*);
 		void setModel(AspectTreeModel*);
-		void setProject(const Project*);
+		void setProject(Project*);
 		QModelIndex currentIndex() const;
 
 	private:
@@ -64,7 +64,7 @@ class ProjectExplorer : public QWidget {
 		bool filter(const QModelIndex&, const QString&);
 		int m_columnToHide;
 		QTreeView* m_treeView;
-		const Project* m_project;
+		Project* m_project;
 
 		QAction* caseSensitiveAction;
 		QAction* matchCompleteWordAction;


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

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