SVN commit 497215 by cgilles:
digikam from stable : backport commits #496058 and #496316 from trunk: SVN commit 496058 by cgilles: digikam from trunk : simplify and fix dirty image flag if current image has changed. Removed m_dirtyImage flag witch cannot be use properly with any flag event from canvas (race condition). Sometimes IE/showfoto said if user want saving current image more than one time... SVN commit 496316 by cgilles: digikam from trunk : IE/ Showfoto : if current image is read only (RAW file for example), we need to use saveAs() method instead save() method. CCMAIL: [hidden email] M +5 -11 showfoto.cpp M +47 -49 showfoto.h --- branches/stable/extragear/graphics/digikam/showfoto/showfoto.cpp #497214:497215 @@ -5,6 +5,7 @@ * Description : * * Copyright 2004-2005 by Renchi Raju, Gilles Caulier + * Copyright 2006 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -97,7 +98,6 @@ m_BCGAction = 0; m_deleteItem2Trash = true; m_isReadOnly = false; - m_dirtyImage = false; m_fullScreen = false; m_fullScreenHideToolBar = false; m_fullScreenHideThumbBar = true; @@ -836,7 +836,7 @@ if (!m_currentItem) return true; - if (m_dirtyImage) + if (m_saveAction->isEnabled()) { int result = KMessageBox::warningYesNoCancel(this, @@ -861,7 +861,7 @@ else return false; } - m_dirtyImage = false; + return true; } @@ -923,7 +923,7 @@ m_canvas->setModified( false ); m_bar->invalidateThumb(m_currentItem); kapp->restoreOverrideCursor(); - slotOpenURL(m_currentItem->url()); + QTimer::singleShot(0, this, SLOT(slotOpenURL(m_currentItem->url()))); return true; } @@ -954,7 +954,6 @@ slotUpdateItemInfo(); QApplication::restoreOverrideCursor(); - m_dirtyImage = false; } void ShowFoto::toggleNavigation(int index) @@ -1132,7 +1131,6 @@ void ShowFoto::slotChanged(bool moreUndo, bool moreRedo) { - m_dirtyImage = true; m_resLabel->setText(QString::number(m_canvas->imageWidth()) + QString("x") + QString::number(m_canvas->imageHeight()) + @@ -1143,9 +1141,6 @@ m_undoAction->setEnabled(moreUndo); m_redoAction->setEnabled(moreRedo); m_saveAction->setEnabled(moreUndo); - - if (!m_isReadOnly) - m_saveAction->setEnabled(moreUndo); } void ShowFoto::slotAboutToShowUndoMenu() @@ -1461,9 +1456,8 @@ else { m_currentItem = m_bar->currentItem(); - slotOpenURL(m_currentItem->url()); + QTimer::singleShot(0, this, SLOT(slotOpenURL(m_currentItem->url()))); } - m_dirtyImage = false; } void ShowFoto::slotUpdateItemInfo(void) --- branches/stable/extragear/graphics/digikam/showfoto/showfoto.h #497214:497215 @@ -5,6 +5,7 @@ * Description : * * Copyright 2004-2005 by Renchi Raju, Gilles Caulier + * Copyright 2006 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -67,51 +68,6 @@ protected: void closeEvent(QCloseEvent* e); - -private slots: - - void slotOpenFile(); - void slotNext(); - void slotPrev(); - void slotLast(); - void slotFirst(); - void slotFilePrint(); - void slotOpenURL(const KURL& url); - void slotOpenFolder(const KURL& url); - void slotOpenFilesInFolder(); - - void slotDeleteCurrentItem(); - void slotFileProperties(); - - void slotToggleFullScreen(); - void slotToggleSlideShow(); - void slotAutoFit(); - void slotZoomChanged(float zoom); - void slotResize(); - void slotEscapePressed(); - void slotToggleShowBar(); - void slotViewHistogram(); - void slotChangeBCG(); - void slotImagePluginsHelp(); - - void slotChanged(bool, bool); - void slotSelected(bool); - void slotUpdateItemInfo(void); - - void slotAboutToShowUndoMenu(); - void slotAboutToShowRedoMenu(); - - void slotEditKeys(); - void slotConfToolbars(); - void slotNewToolbarConfig(); - void slotSetup(); - void slotContextMenu(); - - void slotDeleteCurrentItemResult( KIO::Job * job ); - - void slotSave() { save(); }; - void slotSaveAs() { saveAs(); }; - private: @@ -193,11 +149,8 @@ // If current image file format is only available in read only, // typicially all RAW image file formats. - bool m_isReadOnly; + bool m_isReadOnly; - // 'true' if current image have been modified, else 'false'. - bool m_dirtyImage; - int m_JPEGCompression; int m_PNGCompression; int m_itemsNb; @@ -209,6 +162,51 @@ bool m_fullScreenHideThumbBar; bool m_deleteItem2Trash; bool m_slideShowInFullScreen; + +private slots: + + void slotOpenFile(); + void slotNext(); + void slotPrev(); + void slotLast(); + void slotFirst(); + void slotFilePrint(); + void slotOpenURL(const KURL& url); + void slotOpenFolder(const KURL& url); + void slotOpenFilesInFolder(); + + void slotDeleteCurrentItem(); + void slotFileProperties(); + + void slotToggleFullScreen(); + void slotToggleSlideShow(); + void slotAutoFit(); + void slotZoomChanged(float zoom); + void slotResize(); + void slotEscapePressed(); + void slotToggleShowBar(); + void slotViewHistogram(); + void slotChangeBCG(); + void slotImagePluginsHelp(); + + void slotChanged(bool, bool); + void slotSelected(bool); + void slotUpdateItemInfo(void); + + void slotAboutToShowUndoMenu(); + void slotAboutToShowRedoMenu(); + + void slotEditKeys(); + void slotConfToolbars(); + void slotNewToolbarConfig(); + void slotSetup(); + void slotContextMenu(); + + void slotDeleteCurrentItemResult( KIO::Job * job ); + + void slotSave() { if (m_isReadOnly) saveAs(); else save(); }; + void slotSaveAs() { saveAs(); }; + }; #endif /* SHOWFOTO_H */ _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |