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

List:       kde-commits
Subject:    KDE/kdegraphics/gwenview
From:       Aurélien Gâteau <aurelien.gateau () free ! fr>
Date:       2007-06-30 22:54:12
Message-ID: 1183244052.020516.1807.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 681946 by gateau:

More work on rotation, rough skeleton implemented.


 M  +31 -0     app/mainwindow.cpp  
 M  +2 -0      lib/CMakeLists.txt  
 A             lib/abstractimageoperation.cpp   [License: GPL (v2+)]
 A             lib/abstractimageoperation.h   [License: GPL (v2+)]
 A             lib/transformimageoperation.cpp   [License: GPL (v2+)]
 A             lib/transformimageoperation.h   [License: GPL (v2+)]


--- trunk/KDE/kdegraphics/gwenview/app/mainwindow.cpp #681945:681946
@@ -65,6 +65,7 @@
 #include <lib/mimetypeutils.h>
 #include <lib/sorteddirmodel.h>
 #include <lib/thumbnailview.h>
+#include <lib/transformimageoperation.h>
 
 namespace Gwenview {
 
@@ -472,6 +473,28 @@
 			return item->mimetype();
 		}
 	}
+
+	void applyImageOperation(AbstractImageOperation* op) {
+		QItemSelection selection = mThumbnailView->selectionModel()->selection();
+		QModelIndexList indexList = selection.indexes();
+		Q_ASSERT(indexList.count() > 0);
+		if (indexList.count() > 1) {
+			Q_FOREACH(QModelIndex index, indexList) {
+				KFileItem* item = mDirModel->itemForIndex(index);
+				KUrl url = item->url();
+				Document::Ptr doc = DocumentFactory::instance()->load(url);
+				op->apply(doc);
+				// TODO: Batch dialog, showing progress and errors
+				if (doc->isModified()) {
+					doc->save(url, doc->format());
+				}
+			}
+		} else {
+			KFileItem* item = mDirModel->itemForIndex(indexList[0]);
+			Document::Ptr doc = DocumentFactory::instance()->load(item->url());
+			op->apply(doc);
+		}
+	}
 };
 
 
@@ -773,18 +796,26 @@
 
 
 void MainWindow::rotateLeft() {
+	TransformImageOperation op(TransformImageOperation::RotateLeft);
+	d->applyImageOperation(&op);
 }
 
 
 void MainWindow::rotateRight() {
+	TransformImageOperation op(TransformImageOperation::RotateRight);
+	d->applyImageOperation(&op);
 }
 
 
 void MainWindow::mirror() {
+	TransformImageOperation op(TransformImageOperation::Mirror);
+	d->applyImageOperation(&op);
 }
 
 
 void MainWindow::flip() {
+	TransformImageOperation op(TransformImageOperation::Flip);
+	d->applyImageOperation(&op);
 }
 
 
--- trunk/KDE/kdegraphics/gwenview/lib/CMakeLists.txt #681945:681946
@@ -1,5 +1,6 @@
 set(gwenviewlib_SRCS
 	abstractdocumentimpl.cpp
+	abstractimageoperation.cpp
     archiveutils.cpp
 	document.cpp
 	documentfactory.cpp
@@ -16,6 +17,7 @@
 	sorteddirmodel.cpp
     thumbnailview.cpp
 	transupp.c
+	transformimageoperation.cpp
     )
 kde4_automoc(${gwenviewlib_SRCS})
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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