[Digikam-devel] [Bug 116154] Show progress bar while saving large files

Gilles Caulier caulier.gilles at free.fr
Tue Jan 24 11:55:21 GMT 2006


------- 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=116154         




------- Additional Comments From caulier.gilles free fr  2006-01-24 12:55 -------
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;



More information about the Digikam-devel mailing list