[Digikam-devel] extragear/graphics/digikam/digikam
Gilles Caulier
caulier.gilles at kdemail.net
Sat Feb 3 19:55:01 GMT 2007
SVN commit 629800 by cgilles:
digikam from trunk: Preview Mode pop-up menu : add Rotate actions from JPEGLossLess kipi plugin like pop-up menu from Album gui
CCMAIL: digikam-devel at kde.org
M +43 -3 imagepreviewview.cpp
--- trunk/extragear/graphics/digikam/digikam/imagepreviewview.cpp #629799:629800
@@ -35,6 +35,11 @@
#include <kmimetype.h>
#include <kiconloader.h>
+// LibKipi includes.
+
+#include <libkipi/pluginloader.h>
+#include <libkipi/plugin.h>
+
// Local includes.
#include "ddebug.h"
@@ -144,7 +149,7 @@
if (!d->imageInfo)
return;
- // --------------------------------------------------------
+ //-- Open With Actions ------------------------------------
KURL url(d->imageInfo->kurl().path());
KMimeType::Ptr mimePtr = KMimeType::findByURL(url, 0, true, true);
@@ -165,7 +170,7 @@
serviceVector.push_back(ptr);
}
- // --------------------------------------------------------
+ //-- Navigate actions -------------------------------------------
DPopupMenu popmenu(this);
popmenu.insertItem(SmallIcon("back"), i18n("Back"), 10);
@@ -173,10 +178,45 @@
popmenu.insertItem(SmallIcon("forward"), i18n("Forward"), 11);
if (!d->hasNext) popmenu.setItemEnabled(11, false);
-
+
+ //-- Edit actions -----------------------------------------------
+
+ popmenu.insertSeparator();
popmenu.insertItem(SmallIcon("editimage"), i18n("Edit..."), 12);
popmenu.insertItem(i18n("Open With"), &openWithMenu, 13);
+ // Merge in the KIPI plugins actions ----------------------------
+
+ KIPI::PluginLoader* kipiPluginLoader = KIPI::PluginLoader::instance();
+ KIPI::PluginLoader::PluginList pluginList = kipiPluginLoader->pluginList();
+
+ for (KIPI::PluginLoader::PluginList::const_iterator it = pluginList.begin();
+ it != pluginList.end(); ++it)
+ {
+ KIPI::Plugin* plugin = (*it)->plugin();
+
+ if (plugin && (*it)->name() == "JPEGLossless")
+ {
+ DDebug() << "Found JPEGLossless plugin" << endl;
+
+ KActionPtrList actionList = plugin->actions();
+
+ for (KActionPtrList::const_iterator iter = actionList.begin();
+ iter != actionList.end(); ++iter)
+ {
+ KAction* action = *iter;
+
+ if (QString::fromLatin1(action->name())
+ == QString::fromLatin1("jpeglossless_rotate"))
+ {
+ action->plug(&popmenu);
+ }
+ }
+ }
+ }
+
+ //-- Trash action -------------------------------------------
+
popmenu.insertSeparator();
popmenu.insertItem(SmallIcon("edittrash"), i18n("Move to Trash"), 14);
More information about the Digikam-devel
mailing list