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... To the team : I have checked indeep all cases in IE and showfoto when current image is changed and with all user interactions : - changing current image; - save and saveas; - removing current image; - Loading images/folder (showfoto) All seam to work fine now. Please, check if all working fine for you. If yes, this commit must be backported to stable... CCMAIL: [hidden email] M +4 -12 showfoto/showfoto.cpp M +0 -3 showfoto/showfoto.h M +2 -7 utilities/imageeditor/editor/imagewindow.cpp M +0 -3 utilities/imageeditor/editor/imagewindow.h --- trunk/extragear/graphics/digikam/showfoto/showfoto.cpp #496057:496058 @@ -105,7 +105,6 @@ m_fullScreenHideToolBar = false; m_fullScreenHideThumbBar = true; m_isReadOnly = false; - m_dirtyImage = false; m_config = kapp->config(); m_config->setGroup("ImageViewer Settings"); @@ -662,8 +661,6 @@ } toggleActions(true); } - - } void ShowFoto::slotFirst() @@ -839,7 +836,7 @@ } m_canvas->setModified( false ); - + // add the file to the list of images if it's not there already Digikam::ThumbBarItem* foundItem = m_bar->findItemByURL(saveAsURL); m_bar->invalidateThumb(foundItem); @@ -849,6 +846,7 @@ m_bar->setSelected(foundItem); kapp->restoreOverrideCursor(); + return true; } @@ -857,7 +855,7 @@ if (!m_currentItem) return true; - if (m_dirtyImage) + if (m_saveAction->isEnabled()) { int result = KMessageBox::warningYesNoCancel(this, i18n("The image '%1\' has been modified.\n" @@ -930,9 +928,8 @@ m_canvas->setModified( false ); m_bar->invalidateThumb(m_currentItem); kapp->restoreOverrideCursor(); - slotOpenURL(m_currentItem->url()); + QTimer::singleShot(0, this, SLOT(slotOpenURL(m_currentItem->url()))); - m_dirtyImage = false; return true; } @@ -972,8 +969,6 @@ slotUpdateItemInfo(); QApplication::restoreOverrideCursor(); - - m_dirtyImage = false; } void ShowFoto::toggleNavigation(int index) @@ -1149,7 +1144,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()) + @@ -1507,8 +1501,6 @@ m_currentItem = m_bar->currentItem(); slotOpenURL(m_currentItem->url()); } - - m_dirtyImage = false; } void ShowFoto::slotUpdateItemInfo(void) --- trunk/extragear/graphics/digikam/showfoto/showfoto.h #496057:496058 @@ -84,9 +84,6 @@ // typicially all RAW image file formats. bool m_isReadOnly; - // 'true' if current image have been modified, else 'false'. - bool m_dirtyImage; - int m_itemsNb; SlideShow *m_slideShow; --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.cpp #496057:496058 @@ -107,7 +107,6 @@ m_fullScreen = false; m_fullScreenHideToolBar = false; m_isReadOnly = false; - m_dirtyImage = false; m_view = 0L; m_ICCSettings = new ICCSettingsContainer(); @@ -667,8 +666,6 @@ { m_fileDelete->setEnabled(true); } - - m_dirtyImage = false; } void ImageWindow::slotLoadNext() @@ -849,7 +846,6 @@ void ImageWindow::slotChanged(bool moreUndo, bool moreRedo) { - m_dirtyImage = true; m_resLabel->setText(QString::number(m_canvas->imageWidth()) + QString("x") + QString::number(m_canvas->imageHeight()) + @@ -1051,7 +1047,6 @@ QTimer::singleShot(0, this, SLOT(slotLoadCurrent())); kapp->restoreOverrideCursor(); - m_dirtyImage = false; return true; } @@ -1245,7 +1240,6 @@ kapp->restoreOverrideCursor(); QTimer::singleShot(0, this, SLOT(slotLoadCurrent())); - m_dirtyImage = false; return true; } @@ -1348,7 +1342,7 @@ bool ImageWindow::promptUserSave() { - if (m_dirtyImage) + if (m_saveAction->isEnabled()) { int result = KMessageBox::warningYesNoCancel(this, i18n("The image \"%1\" has been modified.\n" @@ -1367,6 +1361,7 @@ } else if (result == KMessageBox::No) { + m_saveAction->setEnabled(false); return true; } else --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.h #496057:496058 @@ -90,9 +90,6 @@ // typicially all RAW image file formats. bool m_isReadOnly; - // 'true' if current image have been modified, else 'false'. - bool m_dirtyImage; - QPopupMenu *m_contextMenu; QSplitter *m_splitter; _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |