Summary: | thumbnail click default action | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Birkir A. Barkarson <birkirb> |
Component: | Thumbs-Image | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 0.9.1 | |
Sentry Crash Report: | |||
Attachments: | mockup of the wizard |
Description
Birkir A. Barkarson
2007-01-18 10:27:07 UTC
I'd also like the same right click context menu to be available as in the thumbnail view. I need this for "open with" on which my entire workflow is based. Besides this, it would be very good to have the viewer and thumbnails in a tiled view, so that thumbs are always available while viewing pictures. Note that F3 does open the picture viewer instead of editor. A mouse click should do this as well. It's actually one of the reasons that we stick with F-Spot at home- the wife browses with the mouse and opening the editor is NOT what she wants. While I do think that Viewer should be the default, I would settle for having it configurable. *** This bug has been confirmed by popular vote. *** IMO, this should be configurable. Default action could be (like in context menu) : - view - edit in Digikam Editor - open with a specific application (from the list we have in open with) Configurable would be nice. But I am not in favour of another pop-up menu for this. Shouldn't something like this do the job: - single left-click: view - double left-click: edit in Digikam Editor - right-click: gives you a popup with many choices (i.e., just the present behaviour for this). Single/double left-click would configurable (i.e. exchangable etc.), maybe even with modifiers (Shift, Alt) to suit all needs? If that behaviour will be changed, then please *only* if it's configurable in settings (like Fabien's Comment #4). If you work with pictures you always want the editor. Obviously it's vice-versa if you just want to look at the pictures. So a configuration option in the settings can solve the conflict (please no pop-up). Shift, Alt, Ctrl... click-options are ok -if configurable-, but I don't like double-clicks at all (well, that's personal taste) Totally agree with Daniel... Unforget these points : 1/ Simple/double click is configurable in KDE control pannel. 2/ Pop-up menu used to configure an application is always depreciate. 3/ If you edit a picture in Gimp or Krita, when you will save the picture you will lost the metadata (EXIF/IPTC/XMP)(This point will be certainly fixed in the future... I hope) 4/ Gimp do not support 16 bits color depth. Don't claim me if you loose picture quality. ==> this is why, in the future settings, the current behaviours will be set by default : digiKam image editor will be always open by default using simple/double click. Gilles Regarding Gilles comments, please do not mistake this for a simple/double click discussion (there is another bug somewhere for that, which like you say is configurable in the control panel and is not an issue here). The issue here is that on a double click (or simple click if so configured) the Digikam Editor is brought up, whereas many users expect the Viewer. In my case I often mistakenly double click a say 8 MB RAW image and it can take the editor up to 10 seconds to load the image, when all I wanted to do was view the image which takes about 1 second. Of course I should know the editor will come up but non the less I often click it in haste and it is very very annoying. Quite a few people have expressed similar sentiments which is why I posted this wish. So the request is to make the following changes: Add a configuration option in Digikam settings to allow a selection such as, Thumbnail click action: [ ] Open image in Viewer [ ] Open image in Editor Also, if possible, when right-clicking on an image in the Viewer bring up the same menu as is in the thumbnail view right-click. No popups should be necessary and I don't think points 3 and 4 are being discussed here so they shouldn't be a concern (it's not a discussion about which Editor to open, only Viewer/Editor as default). Sincerely, BAB I'm also favour to open _by default_ view mode and not editor (configurable of course). I'm not sure but maybe an view/edit mode button in the menu and taskbar? Usually we look at pictures, sometime I'm in editing mode an then changing the action associated to a click without searching in settings. Achim Created attachment 19325 [details]
mockup of the wizard
Perhaps a configuration wizard could be run at first digikam run, with a simple
choice like 'Normal user / Expert user' which then will load 2 differents sets
of settings, perhaps with an option to directly access the configuration dialog
by pressing next (and perhaps for normal users other wizard pages to let them
configure their camera and other settings with more explanations ?
(I did not find anything else than 'Normal user' but it's probably not the good
word)
Loïc, No. The configuration must be still placed at an homogenous place : in setup dialog, especially in "Albums Setings" page. Gilles Gilles, My suggestion is not to replace the setup dialog but just to add a wizard at first digikam run to take the user by hand and choose a default configuration. As Daniel said in the mailing list or in bko, there is more or less two type of users : pro/expert users and the others. If you have a default configuration designed for the experts, 'normal users' and specialy beginners will think the application is not for them (they'll want the double click to open the viewer and not the editor, and so on ...). So a simple first start wizard (there is one for first KDE start, if I remember well) will help. In fact there is a beginning of first start wizard : the dialog to choose the folder where the photos will be. And it could also be extended to let the 'Normal' user choose is camera. Like this with he will have his main options setup without having to search in the menues / dialog or the manual. Expert users won't need to be 'taken by the hand' like that so they'll choose 'Expert', their photo folder and they'll go to the normal setup dialog to choose their options. Loïc @Loïc: I like Wizards but only where necessary;) There's no real need for it here IMO. We just have to agree what's the default and make it configurable. Assumed that digikam is (or will) be the prefered default photo application in all distro. I'm sure that there are much more people that more often view their pictures than editing them. To IMO the default is easy: view-as-default. No wizard necessary IMO. IMO a settings option for default action Album would be fine to satisfy all user-preferences in this regard (where I'd still prefer to have current mode as default, but it's not important to me if I can change it in the settings :-) ) If the options in the settings are well explained, that's sufficient and there's no need for a "Install Wizard" - just my point of view. If you *really* think that a wizard is necessary, I guess one should open a separate wish for that, so it can be discussed independend of the question "open viewer<->editor". (Personally I don't think there's a need for it. As a new user one often cannot judge what consequences a setting has before one acquires some experience with the new program - like knowing the difference between "viewer" and "editor" for example. I guess, a choice between "normal" and "pro" would only lead most to choose "pro" because it usually means "more options" and that's what most prefer even if not really needed) SVN commit 625157 by cgilles: digiKam from trunk : New option in Album Setup dialog page to choose the right action to do when user right click on Album Icon View if current item is a picture : - Show the embeded image preview (default). - Load the image in editor. BUG: 140234 M +7 -3 digikam/albumiconview.cpp M +23 -6 digikam/albumsettings.cpp M +10 -1 digikam/albumsettings.h M +13 -2 digikam/albumwidgetstack.cpp M +5 -1 digikam/albumwidgetstack.h M +2 -0 digikam/imagepreviewview.cpp M +1 -0 digikam/imagepreviewview.h M +8 -11 digikam/imagepreviewwidget.cpp M +4 -5 digikam/imagepreviewwidget.h M +30 -15 utilities/setup/setupgeneral.cpp M +4 -4 utilities/setup/setupgeneral.h --- trunk/extragear/graphics/digikam/digikam/albumiconview.cpp #625156:625157 @@ -449,7 +449,10 @@ { if (!item) return; - slotDisplayItem(static_cast<AlbumIconItem *>(item)); + if (d->albumSettings->getItemRightClickAction() == AlbumSettings::ShowPreview) + signalPreviewItem(static_cast<AlbumIconItem *>(item)); + else + slotDisplayItem(static_cast<AlbumIconItem *>(item)); } void AlbumIconView::slotRightButtonClicked(const QPoint& pos) @@ -599,7 +602,7 @@ // Merge in the KIPI plugins actions ---------------------------- - KIPI::PluginLoader* kipiPluginLoader = KIPI::PluginLoader::instance(); + KIPI::PluginLoader* kipiPluginLoader = KIPI::PluginLoader::instance(); KIPI::PluginLoader::PluginList pluginList = kipiPluginLoader->pluginList(); for (KIPI::PluginLoader::PluginList::const_iterator it = pluginList.begin(); @@ -845,7 +848,8 @@ if (!dialog.confirmDeleteList(urlList, DeleteDialogMode::Files, deletePermanently ? - DeleteDialogMode::NoChoiceDeletePermanently : DeleteDialogMode::NoChoiceTrash)) + DeleteDialogMode::NoChoiceDeletePermanently : + DeleteDialogMode::NoChoiceTrash)) return; bool useTrash = !dialog.shouldDelete(); --- trunk/extragear/graphics/digikam/digikam/albumsettings.cpp #625156:625157 @@ -5,7 +5,7 @@ * Description : albums settings interface * * Copyright 2003-2004 by Renchi Raju and Gilles Caulier - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -33,8 +33,8 @@ // Local includes. #include "thumbnailsize.h" +#include "rawfiles.h" #include "albumsettings.h" -#include "rawfiles.h" namespace Digikam { @@ -106,8 +106,9 @@ KConfig *config; - AlbumSettings::AlbumSortOrder albumSortOrder; - AlbumSettings::ImageSortOrder imageSortOrder; + AlbumSettings::AlbumSortOrder albumSortOrder; + AlbumSettings::ImageSortOrder imageSortOrder; + AlbumSettings::ItemRightClickAction itemRightClickAction; }; @@ -145,8 +146,9 @@ d->albumCollectionNames.append(i18n("Miscellaneous")); d->albumCollectionNames.sort(); - d->albumSortOrder = AlbumSettings::ByFolder; - d->imageSortOrder = AlbumSettings::ByIName; + d->albumSortOrder = AlbumSettings::ByFolder; + d->imageSortOrder = AlbumSettings::ByIName; + d->itemRightClickAction = AlbumSettings::ShowPreview; d->imageFilefilter = "*.png *.jpg *.jpeg *.jpe *.tif *.tiff *.gif *.bmp *.xpm *.ppm *.pnm *.xcf *.pcx"; d->movieFilefilter = "*.mpeg *.mpg *.mpo *.mpe *.avi *.mov *.wmf *.asf"; @@ -224,6 +226,10 @@ d->imageSortOrder = AlbumSettings::ImageSortOrder(config->readNumEntry("Image Sort Order", (int)AlbumSettings::ByIName)); + d->itemRightClickAction = AlbumSettings::ItemRightClickAction(config->readNumEntry( + "Item Right Click Action", + (int)AlbumSettings::ShowPreview)); + d->imageFilefilter = config->readEntry("File Filter", d->imageFilefilter); d->movieFilefilter = config->readEntry("Movie File Filter", d->movieFilefilter); d->audioFilefilter = config->readEntry("Audio File Filter", d->audioFilefilter); @@ -305,6 +311,7 @@ config->writeEntry("Album Collections", d->albumCollectionNames); config->writeEntry("Album Sort Order", (int)d->albumSortOrder); config->writeEntry("Image Sort Order", (int)d->imageSortOrder); + config->writeEntry("Item Right Click Action", (int)d->itemRightClickAction); config->writeEntry("File Filter", d->imageFilefilter); config->writeEntry("Movie File Filter", d->movieFilefilter); config->writeEntry("Audio File Filter", d->audioFilefilter); @@ -451,6 +458,16 @@ return d->imageSortOrder; } +void AlbumSettings::setItemRightClickAction(const ItemRightClickAction action) +{ + d->itemRightClickAction = action; +} + +AlbumSettings::ItemRightClickAction AlbumSettings::getItemRightClickAction() const +{ + return d->itemRightClickAction; +} + void AlbumSettings::setImageFileFilter(const QString& filter) { d->imageFilefilter = filter; --- trunk/extragear/graphics/digikam/digikam/albumsettings.h #625156:625157 @@ -5,7 +5,7 @@ * Description : albums settings interface * * Copyright 2003-2004 by Renchi Raju and Gilles Caulier - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -53,6 +53,12 @@ ByIRating }; + enum ItemRightClickAction + { + ShowPreview = 0, + StartEditor + }; + AlbumSettings(); ~AlbumSettings(); @@ -82,6 +88,9 @@ void setImageSortOrder(const ImageSortOrder order); ImageSortOrder getImageSortOrder() const; + void setItemRightClickAction(const ItemRightClickAction action); + ItemRightClickAction getItemRightClickAction() const; + void setImageFileFilter(const QString& filter); QString getImageFileFilter() const; --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.cpp #625156:625157 @@ -4,7 +4,7 @@ * Description : A widget stack to embedded album content view * or the current image preview. * - * Copyright 2006 by Gilles Caulier + * Copyright 2006-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -89,6 +89,9 @@ connect(d->imagePreviewView, SIGNAL( editImageSignal() ), this, SIGNAL( editImageSignal() ) ); + + connect(d->imagePreviewView, SIGNAL( previewLoadedSignal() ), + this, SLOT( slotPreviewLoaded() ) ); } AlbumWidgetStack::~AlbumWidgetStack() @@ -140,8 +143,11 @@ if (previewMode() == MediaPlayerMode) setPreviewItem(); - setPreviewMode(AlbumWidgetStack::PreviewImageMode); imagePreviewWidget()->setImagePath(url.path()); + + // NOTE: No need to toggle imediatly in PreviewImageMode here, + // because we will recieve a signal for that when the image preview will be loaded. + // This will prevent a flicker effect with the old image preview loaded in stack. } } } @@ -163,4 +169,9 @@ raiseWidget(mode); } +void AlbumWidgetStack::slotPreviewLoaded() +{ + setPreviewMode(AlbumWidgetStack::PreviewImageMode); +} + } // namespace Digikam --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.h #625156:625157 @@ -4,7 +4,7 @@ * Description : A widget stack to embedded album content view * or the current image preview. * - * Copyright 2006 by Gilles Caulier + * Copyright 2006-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -74,6 +74,10 @@ void slotEscapePreview(); +private slots: + + void slotPreviewLoaded(); + private: AlbumWidgetStackPriv* d; --- trunk/extragear/graphics/digikam/digikam/imagepreviewview.cpp #625156:625157 @@ -126,12 +126,14 @@ { d->backButton->setEnabled(true); d->editButton->setEnabled(true); + emit previewLoadedSignal(); } void ImagePreviewView::slotPreviewFailed() { d->backButton->setEnabled(true); d->editButton->setEnabled(false); + emit previewLoadedSignal(); } } // NameSpace Digikam --- trunk/extragear/graphics/digikam/digikam/imagepreviewview.h #625156:625157 @@ -50,6 +50,7 @@ void backToAlbumSignal(); void editImageSignal(); + void previewLoadedSignal(); public slots: --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.cpp #625156:625157 @@ -1,9 +1,9 @@ /* ============================================================ - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2006-06-13 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2006-06-13 * Description : a widget to display an image preview * - * Copyright 2006 Gilles Caulier + * Copyright 2006-2007 Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -52,16 +52,16 @@ ImagePreviewWidgetPriv() { - previewThread = 0; + previewThread = 0; } - QString path; + QString path; - QPixmap pixmap; + QPixmap pixmap; - QImage preview; + QImage preview; - PreviewLoadThread *previewThread; + PreviewLoadThread *previewThread; }; ImagePreviewWidget::ImagePreviewWidget(QWidget *parent) @@ -84,14 +84,11 @@ ImagePreviewWidget::~ImagePreviewWidget() { delete d->previewThread; - delete d; } void ImagePreviewWidget::setImagePath( const QString& path ) { - if (path == d->path) return; - setCursor( KCursor::waitCursor() ); d->path = path; --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.h #625156:625157 @@ -1,9 +1,9 @@ /* ============================================================ - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2006-06-13 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2006-06-13 * Description : a widget to display an image preview * - * Copyright 2006 Gilles Caulier + * Copyright 2006-2007 Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -59,7 +59,7 @@ void previewStarted(); void previewComplete(); void previewFailed(); - + public slots: void slotThemeChanged(); @@ -81,7 +81,6 @@ private: ImagePreviewWidgetPriv* d; - }; } // NameSpace Digikam --- trunk/extragear/graphics/digikam/utilities/setup/setupgeneral.cpp #625156:625157 @@ -1,11 +1,11 @@ /* ============================================================ - * Author: Renchi Raju <renchi@pooh.tam.uiuc.edu> - * Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2003-02-01 + * Authors: Renchi Raju <renchi@pooh.tam.uiuc.edu> + * Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2003-02-01 * Description : general configuration setup tab * * Copyright 2003-2004 by Renchi Raju - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -50,6 +50,7 @@ #include "albumsettings.h" #include "setupgeneral.h" +#include "setupgeneral.moc" namespace Digikam { @@ -60,15 +61,16 @@ SetupGeneralPriv() { - albumPathEdit = 0; - iconShowNameBox = 0; - iconShowSizeBox = 0; - iconShowDateBox = 0; - iconShowModDateBox = 0; - iconShowResolutionBox = 0; - iconShowCommentsBox = 0; - iconShowTagsBox = 0; - iconShowRatingBox = 0; + albumPathEdit = 0; + iconShowNameBox = 0; + iconShowSizeBox = 0; + iconShowDateBox = 0; + iconShowModDateBox = 0; + iconShowResolutionBox = 0; + iconShowCommentsBox = 0; + iconShowTagsBox = 0; + iconShowRatingBox = 0; + rightClickActionComboBox = 0; } QCheckBox *iconShowNameBox; @@ -80,6 +82,8 @@ QCheckBox *iconShowTagsBox; QCheckBox *iconShowRatingBox; + QComboBox *rightClickActionComboBox; + KURLRequester *albumPathEdit; KDialogBase *mainDialog; @@ -152,7 +156,7 @@ d->iconShowTagsBox = new QCheckBox(iconTextGroup); d->iconShowTagsBox->setText(i18n("Show digiKam &tags")); QWhatsThis::add( d->iconShowTagsBox, i18n("<p>Set this option to show digiKam tags " - "below image thumbnail.")); + "below image thumbnail.")); tagSettingsLayout->addWidget(d->iconShowTagsBox, 5, 0); d->iconShowRatingBox = new QCheckBox(iconTextGroup); @@ -167,6 +171,13 @@ "below image thumbnail.")); tagSettingsLayout->addWidget(d->iconShowResolutionBox, 7, 0); + QLabel *rightClickLabel = new QLabel(i18n("Right Click Action:"), iconTextGroup); + d->rightClickActionComboBox = new QComboBox(false, iconTextGroup); + d->rightClickActionComboBox->insertItem(i18n("Show embedded preview"), AlbumSettings::ShowPreview); + d->rightClickActionComboBox->insertItem(i18n("Start image editor"), AlbumSettings::StartEditor); + tagSettingsLayout->addMultiCellWidget(rightClickLabel, 8 ,8, 0, 0); + tagSettingsLayout->addMultiCellWidget(d->rightClickActionComboBox, 8, 8, 1, 3); + layout->addWidget(iconTextGroup); // -------------------------------------------------------- @@ -198,6 +209,9 @@ settings->setIconShowComments(d->iconShowCommentsBox->isChecked()); settings->setIconShowRating(d->iconShowRatingBox->isChecked()); + settings->setItemRightClickAction((AlbumSettings::ItemRightClickAction) + d->rightClickActionComboBox->currentItem()); + settings->saveSettings(); } @@ -217,6 +231,8 @@ d->iconShowResolutionBox->setChecked(settings->getIconShowResolution()); d->iconShowCommentsBox->setChecked(settings->getIconShowComments()); d->iconShowRatingBox->setChecked(settings->getIconShowRating()); + + d->rightClickActionComboBox->setCurrentItem((int)settings->getItemRightClickAction()); } void SetupGeneral::slotChangeAlbumPath(const QString &result) @@ -256,4 +272,3 @@ } // namespace Digikam -#include "setupgeneral.moc" --- trunk/extragear/graphics/digikam/utilities/setup/setupgeneral.h #625156:625157 @@ -1,11 +1,11 @@ /* ============================================================ - * Author: Renchi Raju <renchi@pooh.tam.uiuc.edu> - * Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2003-02-01 + * Authors: Renchi Raju <renchi@pooh.tam.uiuc.edu> + * Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2003-02-01 * Description : general configuration setup tab * * Copyright 2003-2004 by Renchi Raju - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General Hi Gilles, You named the new setting "right click action" which in my ears means clicking with the right (not left) button. I assume you ment something like "correct"? Maybe it's just my bad english, but I'd suggest to name it just "click action"... And what about making it also configurable that: - single click: "Show embedded preview"/"Start image editor" - double click: "Start image editor"/""Show embedded preview" ("Double click action") (And I agree with Daniel: "Click action" or maybe "Left click action" or "Mouse click action"; maybe the first is the simplest, while the second more explicit. "Left mouse click action" might be the most precise, but longest ;-) Arnd >And what about making it also configurable that: > - single click: "Show embedded preview"/"Start image editor" > - double click: "Start image editor"/""Show embedded preview" > ("Double click action") No. If you read my previous message, you can see than simple or double click is set in KDE control pannel. We cannot differentiate properlly this way in digiKam. Also, i think it can be difficult to use by new user... >"Click action" ==> fixed in svn (:=)))... Gilles Yes I read your message (#7, point 1), but again forgot about that (sorry ...). I am still a FVWM user and there not used to the KDE control panel. So all fine with me ;-). That's great ! Thanks Gilles. Could I ask one more wish ? Would it be difficult to have a 3rd choice : "open using first <<open with>> application" ? :) Or at least provide the right click menu that is under the thumbnails :-| That would really make my life much easier! Dennis, You want mean provide the popup-menu in Preview mode like in thumbnail mode ? Gilles I think the 3rd choice might be overboard (it's more complicated and there are issues concerning image compatability and such), however showing the right-click pop-up thumbnail menu is a good idea since no right click options are provided in the Viewer/Preview mode. Fabien, Birkir is right. The "Open With..." menu content is build on the fly depending of item mime type. We cannot provide an option like this in Setup. Gilles On Friday 19 January 2007 19:05, Gilles Caulier wrote:
[bugs.kde.org quoted mail]
Yes exactly! The very same pop-up menu as exists in thumbnail view. I hope it
can easily be called from preview mode. That would really be great,
especially because it has an "open with" option.
Dennis
>
> Gilles
About #24 Yes, I know that :) This is why I suggested to use first "open with application" to open the file for the option... If I well remember, it was the case for video files (before your recent changes for video support) : the first application was used to open it. But, I can understand this option might appear not very clear (although I think it could be useful) :) |