Summary: | Duplicate rotation/flip entries in image menu, shortcuts not working | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Wonko <wonko> |
Component: | Usability-Keyboard | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | caulier.gilles, dilfridge, dodonvictor, johu, wonko |
Priority: | NOR | ||
Version: | 3.0.0 | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 3.0.0 | |
Sentry Crash Report: | |||
Attachments: |
Image Menu
Image menu |
Description
Wonko
2012-06-29 11:19:14 UTC
2 time in image menu ? Impossible... Can you take a screen-shot please ? Gilles Caulier Created attachment 72213 [details]
Image Menu
Here's a screenshot of the Image menu.
Where entries for rotation, mirroring and automatic rotation/mirroring appear two times in the image menu ??? Please switch application in English and take another shot. Note : here actions appear only one time in menu and keyboard shortcuts work fine... Gilles Caulier Created attachment 72215 [details]
Image menu
Okay, it's English now.
If you think it's a Gentoo-specific issue, I can file the bug on bugs.gentoo.org instead,
In your screenshot, where menu is duplicated about image rotate/flip actions ? Gilles Caulier Um, it's the highlighted 'Rotate' entry in the middle, repeated 7 lines below. Same for 'Flip' and 'Auto Rorate/Flip Using Exif Information'. Rotate and Flip both have non-working keyboard shortcuts. ok, sorry, the preview of screenshot give bu gizilla been uncomplete on my screen. Well, it's a Gentoo problem. menu is duplicated because JPEGLossLess kipi-plugin is loaded in digiKam. digiKam 2.6.0 do not load it because i provide an core solution instead. digiKam check name of plugin and if it JPEGLossLess, it drop it from loader. I don't know why it load plugin on your computer... Solution for you : got to digiKam Setup/kipi and disable JPEGLossLess tool. Gilles Caulier In digiKam source code, plugin is disabled here : https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/kipiiface/kipipluginloader.cpp#L160 ...and plugin name is declared here in kipi-plugins : https://projects.kde.org/projects/extragear/graphics/kipi-plugins/repository/revisions/master/entry/jpeglossless/plugin/plugin_jpeglossless.cpp#L99 Gilles Caulier Okay, thanks! I disabled the plugin, and all is fine now. I reported this on Gentoo's bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=424071 I dont see how this can be a Gentoo bug, because we dont touch any of the relevant code. (Actually we dont apply any patches at all to 2.6.0, digikam or kipi-plugins.) That said, I can reproduce the effect just fine, and with KDebugdialog I get the confirmation that it indeed loads JPEGLossless: digikam(5763)/KIPI (loading) KIPIJPEGLossLessPlugin::Plugin_JPEGLossless::Plugin_JPEGLossless: Plugin_JPEGLossless plugin loaded digikam(5763)/KIPI (loading) KIPI::PluginLoader::Info::plugin: Loaded plugin "JPEGLossless" PS. Please reopen. It's not always that easy. :) Whatever :) Please try with last 2.7.0... Just to be sure, change application language to English and restart it. Go to Help Menu to change i18n Gilles Caulier So I installed 2.7.0. The lossless JPEG plugin is still available. But when I enable it again, there are not two entries for rotation/flipping any more. But I still get a message about ambiguous keystrokes when I use Ctrl-Shift-Left/Right. The 'configure shortcuts' dialog has two entries for rotation, named 'Left' and 'Rotated Left' (and of course the same for right). I thought one came from the lossless JPEG plugin, but even when disabled, both are there. When I set both to their defaults (Ctrl-Shift-Left for 'Left', and nothing for 'Rotated Left'), I still get the message that Ctrl-Shift-Left is ambiguous, but I do not know why, there is no other Ctrl-Shift-Left shortcut defined. So I set 'Left' to Ctrl-Left, and the shortcut works now. And I set 'Rotated Left' to Ctrl-Alt-Left, so I can trigger both actions via keyboard, whatever the difference may be, I see none. And even now, when I press the default, but unassigned Ctrl-Shift-Left sequence, I get the ambiguity dialog. I can confirm the problem with digikam-2.7.0, kipi-plugins-2.7.0 (and libkipi-4.8.95 from KDE 4.9rc1). I can also confirm that manually disabling the JPEGLossless plugin in the Digikam configuration dialog "fixes" things. No clue why the plugin is loaded though. For me with this libkipi version and digiKam 2.8.0, it's not reproducible... Gilles Caulier > For me with this libkipi version and digiKam 2.8.0, it's not reproducible...
>
OK... please give me a few days, I'll try to get to the bottom of this.
I just noticed that I had still kipi-plugins2.6.0 installed, and upgraded to 2.7.0. Now the Ctrl-Shift-Left shortcut is working, when the lossless JPEG plugin is enabled, and does nothing when it is deactivated. I no longer get the ambuguity dialog, unless I restore the shortcuts to their default values (Ctrl-Shift-Left for the 'Left' action, nothing for 'Rotated Left'). Summary: Either the lossless JPEG plugin needs to be deactivated, or the shortcut for 'Left' needs to be changed from Ctrl-Shift-Left to make this shortcut work. Why is the Plugin still around, when this feature is available directly in Digikam? Does it work different, or does it have additional features? Git commit a97ed4b9aaf4d27194507a140afb5f0522ec5c1a by Andi Clemens. Committed on 13/10/2012 at 18:34. Pushed by aclemens into branch 'master'. No need to duplicate actions here, they have already been added to the global action collection. M +1 -1 digikam/items/digikamimageview.cpp M +0 -36 digikam/utils/contextmenuhelper.cpp M +0 -7 digikam/utils/contextmenuhelper.h M +1 -1 digikam/views/imagepreviewview.cpp http://commits.kde.org/digikam/a97ed4b9aaf4d27194507a140afb5f0522ec5c1a This is NOT fixed in 3.0.0-rc yet. And, it is actually a libkipi bug: in libkipi the plugin name from the ignore list is compared against the LOCALIZED plugin name (which here in a german installation is "Verlustfreies JPEG"; of course this won't be found in the ignore list). Analysis done: I patched libkipi-4.9.95 pluginloader.cpp to add a debug output also if a plugin is NOT found in the ignore list: 315 if (d->ignoredPlugins.contains(name)) 316 { 317 kDebug(51001) << "Plugin " << name << " is in the ignore list from host application"; 318 continue; 319 } else { 320 kDebug(51001) << "Plugin " << name << " is NOT in the ignore list from host application"; 321 } The resulting messages are: [...] digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "Piwigo-Export" is NOT in the ignore list from host application digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "SmugMug-Import/Export" is NOT in the ignore list from host application digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "Verlustfreies JPEG" is NOT in the ignore list from host application digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "KioExportImport" is NOT in the ignore list from host application digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "Bildbetrachter" is NOT in the ignore list from host application digikam(19796)/KIPI (loading) KIPI::PluginLoader::init: Plugin "Shwup-Export" is NOT in the ignore list from host application Reading the docs, libkipi should probably use KService::untranslatedGenericName instead of KService::name ... (In reply to comment #22) > Reading the docs, libkipi should probably use > KService::untranslatedGenericName instead of KService::name ... ... except that KService::untranslatedGenericName returns empty string for all kipi plugins. :( OK here's how to fix this (2 steps required): 1) in each kipi-plugin service .desktop file, add a line as for example UntranslatedGenericName=JPEGLossless (with the respective untranslated name of the plugin) 2) apply the following patch to libkipi (debug output not required of course): diff -ruN libkipi-4.9.95.orig/libkipi/pluginloader.cpp libkipi-4.9.95/libkipi/pluginloader.cpp --- libkipi-4.9.95.orig/libkipi/pluginloader.cpp 2012-12-17 16:03:59.000000000 +0100 +++ libkipi-4.9.95/libkipi/pluginloader.cpp 2013-01-02 23:08:12.000000000 +0100 @@ -302,6 +302,7 @@ { KService::Ptr service = *iter; QString name = service->name(); + QString uname = service->untranslatedGenericName(); QString library = service->library(); QStringList reqFeatures = service->property(QString::fromLatin1("X-KIPI-ReqFeatures")).toStringList(); int binVersion = service->property(QString::fromLatin1("X-KIPI-BinaryVersion")).toInt(); @@ -312,10 +313,12 @@ continue; } - if (d->ignoredPlugins.contains(name)) + if (d->ignoredPlugins.contains(uname)) { - kDebug(51001) << "Plugin " << name << " is in the ignore list from host application"; + kDebug(51001) << "Plugin " << name << "(generic name " << uname << ") is in the ignore list from host application"; continue; + } else { + kDebug(51001) << "Plugin " << name << "(generic name " << uname << ") is NOT in the ignore list from host application"; } if (binVersion != kipi_binary_version) Victor, Do you see the investigations from Andreas in this file ? Gilles Caulier Ping? I will investigate the problem and apply the patch to libkipi and to all kipi-plugins. Andreas, thank you very much for your input and for the patch. Victor. On Sun, Jan 27, 2013 at 6:04 PM, Andreas K. Huettel <dilfridge@gentoo.org>wrote: > https://bugs.kde.org/show_bug.cgi?id=302740 > > --- Comment #26 from Andreas K. Huettel <dilfridge@gentoo.org> --- > Ping? > > -- > You are receiving this mail because: > You are the assignee for the bug. > _______________________________________________ > Digikam-devel mailing list > Digikam-devel@kde.org > https://mail.kde.org/mailman/listinfo/digikam-devel > Git commit 0e25e3ee73cf4048b6d97ccc496bad5b1a1fd577 by Victor Dodon. Committed on 28/01/2013 at 09:57. Pushed by dodon into branch 'master'. Check the untranslatedGenericName service property when loading plugins BUGS: 302740 CCMAIL: dilfridge@gentoo.org CCMAIL: caulier.gilles@gmail.com M +6 -5 libkipi/pluginloader.cpp M +1 -0 tests/kxmlhelloworld/plugin/kipiplugin_kxmlhelloworld.desktop.cmake http://commits.kde.org/libkipi/0e25e3ee73cf4048b6d97ccc496bad5b1a1fd577 |