[Digikam-devel] [Bug 140234] thumbnail click default action
Gilles Caulier
caulier.gilles at kdemail.net
Fri Jan 19 09:56:29 GMT 2007
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=140234
caulier.gilles kdemail net changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From caulier.gilles kdemail net 2007-01-19 10:56 -------
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
More information about the Digikam-devel
mailing list