[Digikam-devel] extragear/graphics/digikam
Gilles Caulier
caulier.gilles at kdemail.net
Wed Jan 31 13:03:21 GMT 2007
SVN commit 628789 by cgilles:
digikam from trunk : report progress info to status progress bar when Batch Sync Metadata from current album is used instead a Progress dialog.
CCMAIL: digikam-devel at kde.org, "Luka Renko" <lure.net at gmail.com>, Marcel Wiesweg <marcel.wiesweg at gmx.de>
M +25 -20 digikam/digikamapp.cpp
M +6 -5 digikam/digikamapp.h
M +10 -1 digikam/digikamview.cpp
M +28 -68 utilities/batch/batchsyncmetadata.cpp
M +17 -18 utilities/batch/batchsyncmetadata.h
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #628788:628789
@@ -3,7 +3,7 @@
* Tom Albers <tomalbers at kde.nl>
* Caulier Gilles <caulier dot gilles at kdemail dot net>
* Date : 2002-16-10
- * Description : main interface implementation
+ * Description : main digiKam interface implementation
*
* Copyright 2002-2005 by Renchi Raju and Gilles Caulier
* Copyright 2006 by Tom Albers
@@ -339,13 +339,13 @@
mView->applySettings(mAlbumSettings);
connect(mView, SIGNAL(signal_albumSelected(bool)),
- this, SLOT(slot_albumSelected(bool)));
+ this, SLOT(slotAlbumSelected(bool)));
connect(mView, SIGNAL(signal_tagSelected(bool)),
- this, SLOT(slot_tagSelected(bool)));
+ this, SLOT(slotTagSelected(bool)));
connect(mView, SIGNAL(signal_imageSelected(const QPtrList<ImageInfo>&, bool, bool)),
- this, SLOT(slot_imageSelected(const QPtrList<ImageInfo>&, bool, bool)));
+ this, SLOT(slotImageSelected(const QPtrList<ImageInfo>&, bool, bool)));
}
void DigikamApp::setupStatusBar()
@@ -370,6 +370,9 @@
connect(mStatusNavigateBar, SIGNAL(signalLastItem()),
mView, SLOT(slotLastItem()));
+
+ connect(mStatusProgressBar, SIGNAL(signalCancelButtonPressed()),
+ this, SIGNAL(signalCancelButtonPressed()));
}
void DigikamApp::setupAccelerators()
@@ -510,7 +513,7 @@
SLOT(slotAlbumAddImages()),
actionCollection(),
"album_addImages");
- mAddImagesAction->setWhatsThis(i18n("This option adds new images to the current Album."));
+ mAddImagesAction->setWhatsThis(i18n("This option adds new items to the current Album."));
mAlbumImportAction = new KAction( i18n("Import Folders..."),
"albumfolder-importdir",
@@ -588,8 +591,8 @@
SLOT(slot_imageEdit()),
actionCollection(),
"image_edit");
- mImageViewAction->setWhatsThis(i18n("This option allows you to open the Image Editor with the "
- "currently selected image."));
+ mImageViewAction->setWhatsThis(i18n("This option allows you to open the editor with the "
+ "current selected item."));
mImageRenameAction = new KAction(i18n("Rename..."),
"pencil",
@@ -598,8 +601,8 @@
SLOT(slot_imageRename()),
actionCollection(),
"image_rename");
- mImageRenameAction->setWhatsThis(i18n("This option allows you to rename the filename of the currently selected "
- "image."));
+ mImageRenameAction->setWhatsThis(i18n("This option allows you to rename the filename "
+ "of the current selected item"));
// Pop up dialog to ask user whether to move to trash
mImageDeleteAction = new KAction(i18n("Delete"),
@@ -754,7 +757,8 @@
SLOT(slot_thumbSizePlus()),
actionCollection(),
"album_thumbSizeIncrease");
- mThumbSizePlusAction->setWhatsThis(i18n("This option allows you to increase the Album thumbnails size."));
+ mThumbSizePlusAction->setWhatsThis(i18n("This option allows you to increase "
+ "the Album thumbnails size."));
mThumbSizeMinusAction = new KAction(i18n("Decrease Thumbnail Size"),
"viewmag-",
@@ -763,7 +767,8 @@
SLOT(slot_thumbSizeMinus()),
actionCollection(),
"album_thumbSizeDecrease");
- mThumbSizeMinusAction->setWhatsThis(i18n("This option allows you to decrease the Album thumbnails size."));
+ mThumbSizeMinusAction->setWhatsThis(i18n("This option allows you to decrease "
+ "the Album thumbnails size."));
#if KDE_IS_VERSION(3,2,0)
mFullScreenAction = KStdAction::fullScreen(this, SLOT(slotToggleFullScreen()),
@@ -776,11 +781,12 @@
SLOT(slotToggleFullScreen()),
actionCollection(),
"full_screen");
- mFullScreenAction->setWhatsThis(i18n("This option allows you to toggle the main windows in full screen mode."));
+ mFullScreenAction->setWhatsThis(i18n("This option allows you to toggle the main window "
+ "in full screen mode."));
#endif
mQuitAction = KStdAction::quit(this,
- SLOT(slot_exit()),
+ SLOT(slotExit()),
actionCollection(),
"app_exit");
@@ -951,7 +957,7 @@
}
}
-void DigikamApp::slot_albumSelected(bool val)
+void DigikamApp::slotAlbumSelected(bool val)
{
Album *album = mAlbumManager->currentAlbum();
@@ -1048,7 +1054,7 @@
}
}
-void DigikamApp::slot_tagSelected(bool val)
+void DigikamApp::slotTagSelected(bool val)
{
Album *album = mAlbumManager->currentAlbum();
@@ -1095,7 +1101,7 @@
}
}
-void DigikamApp::slot_imageSelected(const QPtrList<ImageInfo>& list, bool hasPrev, bool hasNext)
+void DigikamApp::slotImageSelected(const QPtrList<ImageInfo>& list, bool hasPrev, bool hasNext)
{
QPtrList<ImageInfo> selection = list;
bool val = selection.isEmpty() ? false : true;
@@ -1131,7 +1137,7 @@
mStatusProgressBar->setProgressValue(count);
}
-void DigikamApp::slot_exit()
+void DigikamApp::slotExit()
{
close();
}
@@ -1279,7 +1285,6 @@
connect(cgui, SIGNAL(signalAlbumSettingsChanged()),
this, SLOT(slotSetupChanged()));
-
}
void DigikamApp::slotCameraConnect()
@@ -1479,12 +1484,12 @@
KIPI::PluginLoader::PluginList list = KipiPluginLoader_->pluginList();
for( KIPI::PluginLoader::PluginList::Iterator it = list.begin() ; it != list.end() ; ++it )
- {
+ {
KIPI::Plugin* plugin = (*it)->plugin();
if ( plugin )
dialog->insert( plugin->actionCollection(), (*it)->comment() );
- }
+ }
dialog->configure();
delete dialog;
--- trunk/extragear/graphics/digikam/digikam/digikamapp.h #628788:628789
@@ -3,7 +3,7 @@
* Tom Albers <tomalbers at kde.nl>
* Caulier Gilles <caulier dot gilles at kdemail dot net>
* Date : 2002-16-10
- * Description : main interface implementation
+ * Description : main digiKam interface implementation
*
* Copyright 2002-2005 by Renchi Raju and Gilles Caulier
* Copyright 2006 by Tom Albers
@@ -111,6 +111,7 @@
void signalLastItem();
void signalCopyAlbumItemsSelection();
void signalPasteAlbumItemsSelection();
+ void signalCancelButtonPressed();
protected:
@@ -133,10 +134,10 @@
private slots:
- void slot_albumSelected(bool val);
- void slot_tagSelected(bool val);
- void slot_imageSelected(const QPtrList<ImageInfo>&, bool, bool);
- void slot_exit();
+ void slotAlbumSelected(bool val);
+ void slotTagSelected(bool val);
+ void slotImageSelected(const QPtrList<ImageInfo>&, bool, bool);
+ void slotExit();
void slotShowTip();
void slotShowKipiHelp();
void slotDonateMoney();
--- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #628788:628789
@@ -749,10 +749,19 @@
BatchSyncMetadata *syncMetadata = new BatchSyncMetadata(this, album);
+ connect(syncMetadata, SIGNAL(signalProgressBarMode(int, const QString&)),
+ d->parent, SLOT(slotProgressBarMode(int, const QString&)));
+
+ connect(syncMetadata, SIGNAL(signalProgressValue(int)),
+ d->parent, SLOT(slotProgressValue(int)));
+
connect(syncMetadata, SIGNAL(signalComplete()),
this, SLOT(slotAlbumSyncPicturesMetadataDone()));
- syncMetadata->exec();
+ connect(d->parent, SIGNAL(signalCancelButtonPressed()),
+ syncMetadata, SLOT(slotAbort()));
+
+ syncMetadata->parseAlbum();
}
void DigikamView::slotAlbumSyncPicturesMetadataDone()
--- trunk/extragear/graphics/digikam/utilities/batch/batchsyncmetadata.cpp #628788:628789
@@ -22,14 +22,11 @@
// QT includes.
#include <qstring.h>
-#include <qtimer.h>
-#include <qdatetime.h>
// KDE includes.
#include <klocale.h>
#include <kapplication.h>
-#include <kiconloader.h>
// Local includes.
@@ -37,6 +34,7 @@
#include "album.h"
#include "imageinfojob.h"
#include "metadatahub.h"
+#include "statusprogressbar.h"
#include "batchsyncmetadata.h"
#include "batchsyncmetadata.moc"
@@ -52,23 +50,14 @@
cancel = false;
imageInfoJob = new ImageInfoJob();
album = 0;
+ count = 0;
imageInfo = 0;
- duration.start();
-
- okPix = KApplication::kApplication()->iconLoader()->loadIcon(
- "button_ok", KIcon::NoGroup, 32);
-
- warnPix = KApplication::kApplication()->iconLoader()->loadIcon(
- "messagebox_info", KIcon::NoGroup, 16);
}
bool cancel;
- QTime duration;
+ int count;
- QPixmap okPix;
- QPixmap warnPix;
-
Album *album;
ImageInfoJob *imageInfoJob;
@@ -78,32 +67,18 @@
ImageInfo *imageInfo;
};
-BatchSyncMetadata::BatchSyncMetadata(QWidget* parent, Album *album)
- : DProgressDlg(parent)
+BatchSyncMetadata::BatchSyncMetadata(QObject* parent, Album *album)
+ : QObject(parent)
{
d = new BatchSyncMetadataPriv;
d->album = album;
- setValue(0);
- setCaption(i18n("Sync Pictures Metadata"));
- setTitle(i18n("Parsing pictures"));
- setLabel(i18n("<b>Sync pictures metadata with digiKam database. Please wait...</b>"));
- setButtonText(i18n("&Abort"));
- resize(600, 300);
- QTimer::singleShot(500, this, SLOT(slotParseAlbum()));
}
-BatchSyncMetadata::BatchSyncMetadata(QWidget* parent, const ImageInfoList& list)
- : DProgressDlg(parent)
+BatchSyncMetadata::BatchSyncMetadata(QObject* parent, const ImageInfoList& list)
+ : QObject(parent)
{
d = new BatchSyncMetadataPriv;
d->imageInfoList = list;
- setValue(0);
- setCaption(i18n("Sync Pictures Metadata"));
- setTitle(i18n("Parsing pictures"));
- setLabel(i18n("<b>Sync pictures metadata with digiKam database. Please wait...</b>"));
- setButtonText(i18n("&Abort"));
- resize(600, 300);
- QTimer::singleShot(500, this, SLOT(slotParseList()));
}
BatchSyncMetadata::~BatchSyncMetadata()
@@ -111,7 +86,7 @@
delete d;
}
-void BatchSyncMetadata::slotParseAlbum()
+void BatchSyncMetadata::parseAlbum()
{
d->imageInfoJob->allItemsFromAlbum(d->album);
@@ -122,15 +97,23 @@
this, SLOT(slotComplete()));
}
+void BatchSyncMetadata::slotComplete()
+{
+ if (d->imageInfoList.isEmpty())
+ complete();
+}
+
void BatchSyncMetadata::slotAlbumParsed(const ImageInfoList& list)
{
d->imageInfoList = list;
- slotParseList();
+ parseList();
}
-void BatchSyncMetadata::slotParseList()
+void BatchSyncMetadata::parseList()
{
- setTotalSteps(d->imageInfoList.count());
+ emit signalProgressBarMode(StatusProgressBar::CancelProgressBarMode,
+ i18n("Sync pictures Metadata with database. Please wait..."));
+
d->imageInfo = d->imageInfoList.first();
parsePicture();
}
@@ -140,10 +123,11 @@
if (!d->imageInfo) // All is done.
{
complete();
+ slotAbort();
}
else if (d->cancel)
{
- abort();
+ complete();
}
else
{
@@ -151,10 +135,10 @@
// read in from database
fileHub.load(d->imageInfo);
// write out to file DMetadata
- bool result = fileHub.write(d->imageInfo->filePath());
+ fileHub.write(d->imageInfo->filePath());
- addedAction(result ? d->okPix : d->warnPix, d->imageInfo->kurl().filename());
- advance(1);
+ emit signalProgressValue((int)((d->count++/(float)d->imageInfoList.count())*100.0));
+
d->imageInfo = d->imageInfoList.next();
kapp->processEvents();
@@ -162,39 +146,15 @@
}
}
-void BatchSyncMetadata::slotComplete()
+void BatchSyncMetadata::slotAbort()
{
- if (d->imageInfoList.isEmpty())
- complete();
+ d->cancel = true;
+ d->imageInfoJob->stop();
}
-void BatchSyncMetadata::slotCancel()
-{
- abort();
- done(Cancel);
-}
-
-void BatchSyncMetadata::closeEvent(QCloseEvent *e)
-{
- abort();
- e->accept();
-}
-
void BatchSyncMetadata::complete()
{
- QTime t;
- t = t.addMSecs(d->duration.elapsed());
- setLabel(i18n("<b>Sync pictures metadata with digiKam database done</b>"));
- setTitle(i18n("Duration: %1").arg(t.toString()));
- setButtonText(i18n("&Close"));
- setValue(100);
- abort();
-}
-
-void BatchSyncMetadata::abort()
-{
- d->cancel = true;
- d->imageInfoJob->stop();
+ emit signalProgressBarMode(StatusProgressBar::TextMode, QString::null);
emit signalComplete();
}
--- trunk/extragear/graphics/digikam/utilities/batch/batchsyncmetadata.h #628788:628789
@@ -22,13 +22,14 @@
#ifndef BATCHSYNCMETADATA_H
#define BATCHSYNCMETADATA_H
+// Qt includes.
+
+#include <qobject.h>
+
// Local includes.
#include "imageinfo.h"
-#include "dprogressdlg.h"
-class QWidget;
-
class KURL;
namespace Digikam
@@ -37,42 +38,40 @@
class Album;
class BatchSyncMetadataPriv;
-class BatchSyncMetadata : public DProgressDlg
+class BatchSyncMetadata : public QObject
{
Q_OBJECT
public:
/** Constructor witch sync all metatada pictures from an Album */
- BatchSyncMetadata(QWidget* parent, Album *album);
+ BatchSyncMetadata(QObject* parent, Album *album);
/** Constructor witch sync all metatada from a pictures list */
- BatchSyncMetadata(QWidget* parent, const ImageInfoList& list);
+ BatchSyncMetadata(QObject* parent, const ImageInfoList& list);
~BatchSyncMetadata();
+ void parseList();
+ void parseAlbum();
+
signals:
void signalComplete();
+ void signalProgressValue(int);
+ void signalProgressBarMode(int, const QString&);
+public slots:
+
+ void slotAbort();
+
private:
- void complete();
- void abort();
void parsePicture();
+ void complete();
-protected:
-
- void closeEvent(QCloseEvent *e);
-
-protected slots:
-
- void slotCancel();
-
private slots:
- void slotParseList();
- void slotParseAlbum();
void slotAlbumParsed(const ImageInfoList&);
void slotComplete();
More information about the Digikam-devel
mailing list