Version: 0.8.0-beta2 (using KDE KDE 3.4.1) Installed from: Gentoo Packages OS: Linux Saving a 6 Megapixel scan to PNG format can take a while, and DigiKam (as well as Showfoto) shows no progress while saving. A progress bar would be nice.
SVN commit 501938 by cgilles: Digikam 0.9.0 from trunk : - New abstraction layer for image editor tools : image print, image resize, and slide show tools are migrated to a new dedicaced subfolder. - New IO file acess progress bar to displaying image file loading and saving operations. Only Loading image progress rules is complete. Saving image progress still to do. CCMAIL: digikam-devel@kde.org CCBUG: 116154 M +1 -0 showfoto/Makefile.am M +11 -5 showfoto/showfoto.cpp M +2 -1 showfoto/showfoto.h M +1 -1 utilities/imageeditor/Makefile.am M +7 -3 utilities/imageeditor/editor/Makefile.am D utilities/imageeditor/editor/imageprint.cpp D utilities/imageeditor/editor/imageprint.h D utilities/imageeditor/editor/imageresizedlg.cpp D utilities/imageeditor/editor/imageresizedlg.h M +6 -2 utilities/imageeditor/editor/imagewindow.cpp M +3 -1 utilities/imageeditor/editor/imagewindow.h A utilities/imageeditor/editor/iofileprogressbar.cpp [License: GPL] A utilities/imageeditor/editor/iofileprogressbar.h [License: GPL] D utilities/imageeditor/editor/slideshow.cpp D utilities/imageeditor/editor/slideshow.h A utilities/imageeditor/tools (directory) A utilities/imageeditor/tools/Makefile.am A utilities/imageeditor/tools/imageprint.cpp utilities/imageeditor/editor/imageprint.cpp#501877 A utilities/imageeditor/tools/imageprint.h utilities/imageeditor/editor/imageprint.h#501877 A utilities/imageeditor/tools/imageresizedlg.cpp utilities/imageeditor/editor/imageresizedlg.cpp#501877 A utilities/imageeditor/tools/imageresizedlg.h utilities/imageeditor/editor/imageresizedlg.h#501877 A utilities/imageeditor/tools/slideshow.cpp utilities/imageeditor/editor/slideshow.cpp#501877 A utilities/imageeditor/tools/slideshow.h utilities/imageeditor/editor/slideshow.h#501877 --- trunk/extragear/graphics/digikam/showfoto/Makefile.am #501937:501938 @@ -15,6 +15,7 @@ -I$(top_srcdir)/digikam/digikam \ -I$(top_srcdir)/digikam/utilities/imageeditor/canvas \ -I$(top_srcdir)/digikam/utilities/imageeditor/editor \ + -I$(top_srcdir)/digikam/utilities/imageeditor/tools \ -I$(top_srcdir)/digikam/utilities/splashscreen \ $(LIBKEXIF_CFLAGS) $(all_includes) --- trunk/extragear/graphics/digikam/showfoto/showfoto.cpp #501937:501938 @@ -93,6 +93,7 @@ #include "setupeditor.h" #include "setupimgplugins.h" #include "slideshow.h" +#include "iofileprogressbar.h" #include "iccsettingscontainer.h" #include "iofilesettingscontainer.h" #include "savingcontextcontainer.h" @@ -166,7 +167,8 @@ m_splitter->setOpaqueResize(false); setCentralWidget(widget); - m_nameLabel = new QLabel(statusBar()); + + m_nameLabel = new Digikam::IOFileProgressBar(statusBar()); m_nameLabel->setAlignment(Qt::AlignCenter); statusBar()->addWidget(m_nameLabel,1); m_zoomLabel = new QLabel(statusBar()); @@ -265,8 +267,8 @@ connect(m_canvas, SIGNAL(signalSavingFinished(const QString &, bool)), this, SLOT(slotSavingFinished(const QString &, bool))); - connect(m_canvas, SIGNAL(signalSavingProgress(const QString& filePath, float progress)), - this, SLOT(slotSavingProgress(const QString& filePath, float progress))); + connect(m_canvas, SIGNAL(signalSavingProgress(const QString&, float)), + this, SLOT(slotSavingProgress(const QString&, float))); connect(m_slideShow, SIGNAL(finished()), m_slideShowAction, SLOT(activate()) ); @@ -1053,12 +1055,16 @@ void ShowFoto::slotLoadingStarted(const QString &filename) { - //TODO + //TODO: Disable actions as appropriate + + m_nameLabel->progressBarVisible(true); + QApplication::setOverrideCursor(Qt::WaitCursor); } void ShowFoto::slotLoadingFinished(const QString &filename, bool success, bool isReadOnly) { //TODO: handle success == false + m_nameLabel->progressBarVisible(false); m_isReadOnly = isReadOnly; slotUpdateItemInfo(); QApplication::restoreOverrideCursor(); @@ -1066,7 +1072,7 @@ void ShowFoto::slotLoadingProgress(const QString& filePath, float progress) { - //TODO + m_nameLabel->setProgressValue((int)(progress*100.0)); } void ShowFoto::toggleNavigation(int index) --- trunk/extragear/graphics/digikam/showfoto/showfoto.h #501937:501938 @@ -58,6 +58,7 @@ class SavingContextContainer; class SplashScreen; class SlideShow; +class IOFileProgressBar; } namespace ShowFoto @@ -89,7 +90,6 @@ int m_itemsNb; - QLabel *m_nameLabel; QLabel *m_zoomLabel; QLabel *m_resLabel; @@ -142,6 +142,7 @@ KSelectAction *m_viewHistogramAction; + Digikam::IOFileProgressBar *m_nameLabel; Digikam::ImagePluginLoader *m_imagePluginLoader; Digikam::ThumbBarView *m_bar; Digikam::ThumbBarItem *m_currentItem; --- trunk/extragear/graphics/digikam/utilities/imageeditor/Makefile.am #501937:501938 @@ -1 +1 @@ -SUBDIRS = icons canvas editor +SUBDIRS = icons canvas tools editor --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/Makefile.am #501937:501938 @@ -3,16 +3,19 @@ noinst_LTLIBRARIES = libdimgeditor.la libshowfoto.la libdimgeditor_la_SOURCES = editorwindow.cpp imageiface.cpp imagewidget.cpp \ - imagewindow.cpp imageresizedlg.cpp imageprint.cpp + imagewindow.cpp iofileprogressbar.cpp libdimgeditor_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_KDEPRINT) \ $(LIBKEXIF_LIBS) -libshowfoto_la_SOURCES = editorwindow.cpp imageiface.cpp imagewidget.cpp \ - imageresizedlg.cpp slideshow.cpp imageprint.cpp +libdimgeditor_la_LIBADD = $(top_srcdir)/digikam/utilities/imageeditor/tools/libdimgeditortools.la +libshowfoto_la_SOURCES = editorwindow.cpp imageiface.cpp imagewidget.cpp iofileprogressbar.cpp + libshowfoto_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_KDEPRINT) +libshowfoto_la_LIBADD = $(top_srcdir)/digikam/utilities/imageeditor/tools/libdimgeditortools.la + INCLUDES= -I$(top_srcdir)/digikam/digikam \ -I$(top_srcdir)/digikam/libs/widgets \ -I$(top_srcdir)/digikam/libs/dimg \ @@ -21,6 +24,7 @@ -I$(top_srcdir)/digikam/libs/threadimageio \ -I$(top_srcdir)/digikam/utilities/splashscreen \ -I$(top_srcdir)/digikam/utilities/imageeditor/canvas \ + -I$(top_srcdir)/digikam/utilities/imageeditor/tools \ $(LIBKEXIF_CFLAGS) $(all_includes) digikaminclude_HEADERS = imageiface.h imagewidget.h --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.cpp #501937:501938 @@ -81,6 +81,7 @@ #include "imageinfo.h" #include "imagepropertiessidebardb.h" #include "tagspopupmenu.h" +#include "iofileprogressbar.h" #include "iccsettingscontainer.h" #include "iofilesettingscontainer.h" #include "savingcontextcontainer.h" @@ -135,7 +136,7 @@ m_splitter->setOpaqueResize(false); setCentralWidget(widget); - m_nameLabel = new QLabel(statusBar()); + m_nameLabel = new IOFileProgressBar(statusBar()); m_nameLabel->setAlignment(Qt::AlignCenter); statusBar()->addWidget(m_nameLabel,1); m_zoomLabel = new QLabel(statusBar()); @@ -644,6 +645,8 @@ void ImageWindow::slotLoadingStarted(const QString &filename) { //TODO: Disable actions as appropriate + + m_nameLabel->progressBarVisible(true); QApplication::setOverrideCursor(Qt::WaitCursor); } @@ -652,6 +655,7 @@ //TODO: enable actions as appropriate //TODO: handle success == false + m_nameLabel->progressBarVisible(false); QApplication::restoreOverrideCursor(); m_isReadOnly = isReadOnly; @@ -711,7 +715,7 @@ void ImageWindow::slotLoadingProgress(const QString& filePath, float progress) { - //TODO: progress display in status bar + m_nameLabel->setProgressValue((int)(progress*100.0)); } void ImageWindow::slotLoadNext() --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.h #501937:501938 @@ -55,6 +55,7 @@ class ICCSettingsContainer; class IOFileSettingsContainer; class SavingContextContainer; +class IOFileProgressBar; class ImageWindow : public EditorWindow { @@ -99,7 +100,6 @@ QSplitter *m_splitter; - QLabel* m_nameLabel; QLabel* m_zoomLabel; QLabel* m_resLabel; @@ -156,6 +156,8 @@ ImagePropertiesSideBarDB *m_rightSidebar; SavingContextContainer *m_savingContext; + + IOFileProgressBar *m_nameLabel; static ImageWindow *m_instance;
Image editor and showFoto progress bar during loading/saving image file operations is fully implemented in digiKam 0.9.0 alpha from svn trunk. I can close this file Gilles Caulier