[Digikam-devel] extragear/graphics/digikam/libs/imageproperties
Gilles Caulier
caulier.gilles at kdemail.net
Thu Jan 4 08:32:27 GMT 2007
SVN commit 619734 by cgilles:
digiKam from trunk : add a button in Comments & Tags side bar to revert all changes from current image if nothing have been apply by user.
CCMAIL: digikam-devel at kde.org
M +39 -4 imagedescedittab.cpp
M +3 -0 imagedescedittab.h
M +18 -8 navigatebarwidget.cpp
M +5 -5 navigatebarwidget.h
--- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #619733:619734
@@ -92,6 +92,7 @@
ABCMenu = 0;
assignedTagsBtn = 0;
applyBtn = 0;
+ revertBtn = 0;
}
bool modified;
@@ -100,6 +101,7 @@
QToolButton *recentTagsBtn;
QToolButton *tagsSearchClearBtn;
QToolButton *assignedTagsBtn;
+ QToolButton *revertBtn;
QPopupMenu *ABCMenu;
@@ -166,7 +168,7 @@
d->tagsSearchEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
d->assignedTagsBtn = new QToolButton(tagsSearch);
- QToolTip::add(d->assignedTagsBtn, i18n("Already Assigned Tags"));
+ QToolTip::add(d->assignedTagsBtn, i18n("Already assigned tags"));
d->assignedTagsBtn->setIconSet(kapp->iconLoader()->loadIcon("tag-assigned",
KIcon::NoGroup, KIcon::SizeSmall,
KIcon::DefaultState, 0, true));
@@ -188,17 +190,29 @@
d->tagsView->setSelectionMode(QListView::Single);
d->tagsView->setResizeMode(QListView::LastColumn);
- // --------------------------------------------------
+ // Buttons -----------------------------------------
- d->applyBtn = new QPushButton(i18n("Apply Changes"), settingsArea);
+ QHBox *buttonsBox = new QHBox(settingsArea);
+ buttonsBox->setSpacing(KDialog::spacingHint());
+
+ d->revertBtn = new QToolButton(buttonsBox);
+ d->revertBtn->setIconSet(SmallIcon("reload_page"));
+ QToolTip::add(d->revertBtn, i18n("Revert all changes"));
+ d->revertBtn->setEnabled(false);
+
+ d->applyBtn = new QPushButton(i18n("Apply Changes"), buttonsBox);
+ d->applyBtn->setIconSet(SmallIcon("apply"));
d->applyBtn->setEnabled(false);
+ buttonsBox->setStretchFactor(d->applyBtn, 10);
+ // --------------------------------------------------
+
settingsLayout->addMultiCellWidget(commentsBox, 0, 0, 0, 1);
settingsLayout->addMultiCellWidget(dateBox, 1, 1, 0, 1);
settingsLayout->addMultiCellWidget(ratingBox, 2, 2, 0, 1);
settingsLayout->addMultiCellWidget(d->tagsView, 3, 3, 0, 1);
settingsLayout->addMultiCellWidget(tagsSearch, 4, 4, 0, 1);
- settingsLayout->addMultiCellWidget(d->applyBtn, 5, 5, 0, 1);
+ settingsLayout->addMultiCellWidget(buttonsBox, 5, 5, 0, 1);
settingsLayout->setRowStretch(3, 10);
// --------------------------------------------------
@@ -244,6 +258,9 @@
connect(d->applyBtn, SIGNAL(clicked()),
this, SLOT(slotApplyAllChanges()));
+
+ connect(d->revertBtn, SIGNAL(clicked()),
+ this, SLOT(slotRevertAllChanges()));
// Initalize ---------------------------------------------
@@ -415,14 +432,30 @@
d->modified = false;
d->applyBtn->setEnabled(false);
+ d->revertBtn->setEnabled(false);
updateRecentTags();
}
+void ImageDescEditTab::slotRevertAllChanges()
+{
+ if (!d->modified)
+ return;
+
+ if (!d->currInfo)
+ return;
+
+ setInfo(d->currInfo, d->navigateBar->getButtonsState());
+}
+
void ImageDescEditTab::setItem(ImageInfo *info, int itemType)
{
slotApplyAllChanges();
+ setInfo(info, itemType);
+}
+void ImageDescEditTab::setInfo(ImageInfo *info, int itemType)
+{
if (!info)
{
d->navigateBar->setFileName();
@@ -436,6 +469,7 @@
d->currInfo = info;
d->modified = false;
d->applyBtn->setEnabled(false);
+ d->revertBtn->setEnabled(false);
KURL fileURL;
fileURL.setPath(d->currInfo->filePath());
@@ -497,6 +531,7 @@
{
d->modified = true;
d->applyBtn->setEnabled(true);
+ d->revertBtn->setEnabled(true);
}
void ImageDescEditTab::setFocusToComments()
--- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.h #619733:619734
@@ -71,6 +71,8 @@
private:
+ void setInfo(ImageInfo *info, int itemType);
+
void updateTagsView();
void updateComments();
void updateRating();
@@ -90,6 +92,7 @@
private slots:
void slotApplyAllChanges();
+ void slotRevertAllChanges();
void slotModified();
void slotRightButtonClicked(QListViewItem *, const QPoint &, int);
void slotTagsSearchChanged();
--- trunk/extragear/graphics/digikam/libs/imageproperties/navigatebarwidget.cpp #619733:619734
@@ -1,9 +1,9 @@
/* ============================================================
- * Author: Gilles Caulier <caulier dot gilles at kdemail dot net>
- * Date : 2005-07-07
+ * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net>
+ * Date : 2005-07-07
* Description : A button bar to navigate between album items
*
- * 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
@@ -36,6 +36,7 @@
#include "imagepropertiessidebardb.h"
#include "navigatebarwidget.h"
+#include "navigatebarwidget.moc"
namespace Digikam
{
@@ -51,8 +52,11 @@
prevButton = 0;
nextButton = 0;
lastButton = 0;
+ itemType = NavigateBarWidget::ItemCurrent;
}
+ int itemType;
+
QPushButton *firstButton;
QPushButton *prevButton;
QPushButton *nextButton;
@@ -116,24 +120,26 @@
void NavigateBarWidget::setFileName(QString filename)
{
- d->filename->setText( filename );
+ d->filename->setText(filename);
}
QString NavigateBarWidget::getFileName()
{
- return ( d->filename->text() );
+ return (d->filename->text());
}
void NavigateBarWidget::setButtonsState(int itemType)
{
- if (itemType == ItemFirst)
+ d->itemType = itemType;
+
+ if (d->itemType == ItemFirst)
{
d->firstButton->setEnabled(false);
d->prevButton->setEnabled(false);
d->nextButton->setEnabled(true);
d->lastButton->setEnabled(true);
}
- else if (itemType == ItemLast)
+ else if (d->itemType == ItemLast)
{
d->firstButton->setEnabled(true);
d->prevButton->setEnabled(true);
@@ -149,6 +155,10 @@
}
}
+int NavigateBarWidget::getButtonsState()
+{
+ return (d->itemType);
+}
+
} // namespace Digikam
-#include "navigatebarwidget.moc"
--- trunk/extragear/graphics/digikam/libs/imageproperties/navigatebarwidget.h #619733:619734
@@ -1,9 +1,9 @@
/* ============================================================
- * Author: Gilles Caulier <caulier dot gilles at kdemail dot net>
- * Date : 2005-07-07
+ * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net>
+ * Date : 2005-07-07
* Description : A button bar to navigate between album items
*
- * 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
@@ -56,6 +56,7 @@
void setFileName(QString filename=QString::null);
QString getFileName();
void setButtonsState(int itemType);
+ int getButtonsState();
signals:
@@ -66,8 +67,7 @@
private :
- NavigateBarWidgetPriv* d;
-
+ NavigateBarWidgetPriv* d;
};
} // namespace Digikam
More information about the Digikam-devel
mailing list