------- 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=135307 Summary: After deleting a file, user comments entered for pictures apply to the wrong picture Product: digikam Version: unspecified Platform: Gentoo Packages OS/Version: Linux Status: NEW Severity: normal Priority: NOR Component: general AssignedTo: digikam-devel kde org ReportedBy: kde-dev emailgoeshere com Version: 0.9.0 beta 2 (using KDE KDE 3.5.4) Installed from: Gentoo Packages OS: Linux Here's something repeatable. It takes four pictures to see it, called A, B, C, and D. 1) Have the four in one album, and click on A to open it in the digiKam Image Editor. 2) Type in a Comment, then hit Page Down to go to picture B. Hit the Delete key and delete the picture. 3) Picture C shows up. Type in a comment, and hit Page Down to go to Picture D. 4) Close the digiKam Image Editor and look at the pictures in digiKam's main view. You'll see that the comment you typed in for picture C will have overwritten the previous comment for picture A, and picture C's comment field will be empty. I'm not sure if you kept adding comments to later pictures if it would always be one behind, or if any other metadata gets overwritten too. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
------- 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=135307 kde-dev emailgoeshere com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major ------- Additional Comments From kde-dev emailgoeshere com 2006-10-08 23:53 ------- I'm giving it major severity initially because it's a metadata/file corruption issue. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Jeff Mitchell-3
------- 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=135307 ------- Additional Comments From kde-dev emailgoeshere com 2006-10-09 00:11 ------- Also, after deleting picture B, if picture C had tags, those tags are unchecked in the digiKam Image Editor when it is displayed. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Jeff Mitchell-3
------- 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=135307 marcel.wiesweg gmx de changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Additional Comments From marcel.wiesweg gmx de 2006-10-09 15:57 ------- SVN commit 593901 by mwiesweg: - in deleteCurrentItem, set d->imageInfoCurrent and d->imageInfoList to new image as well - add loadCurrentList for shared code of loadURL and loadImageInfos, so that loadURL can now properly set d->imageInfoList to empty list BUG: 135307 M +1 -0 NEWS M +43 -22 utilities/imageeditor/editor/imagewindow.cpp M +1 -0 utilities/imageeditor/editor/imagewindow.h --- trunk/extragear/graphics/digikam/NEWS #593900:593901 @ -300,5 +300,6 @ 176 ==> 134869 : High CPU usage while displaying ICC Profile. 177 ==> 134761 : a rotated RAW image get saved straight with an inconsistent Exif orientation 178 ==> 135236 : Right-click menu rename function cuts to the first period (not the extention one) +179 ==> 135307 : After deleting a file, user comments entered for pictures apply to the wrong picture ---------------------------------------------------------------------------------------------------- --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.cpp #593900:593901 @ -370,51 +370,64 @ void ImageWindow::loadURL(const KURL::List& urlList, const KURL& urlCurrent, const QString& caption, bool allowSaving, AlbumIconView* view) { - // if window is iconified, show it - if (isMinimized()) - { - KWin::deIconifyWindow(winId()); - } - - if (!promptUserSave(d->urlCurrent)) - return; - - setCaption(i18n("digiKam Image Editor - %1").arg(caption)); - - d->view = view; d->urlList = urlList; d->urlCurrent = urlCurrent; - d->allowSaving = allowSaving; + d->imageInfoList = ImageInfoList(); + d->imageInfoCurrent = 0; - m_saveAction->setEnabled(false); - m_revertAction->setEnabled(false); - m_undoAction->setEnabled(false); - m_redoAction->setEnabled(false); - - QTimer::singleShot(0, this, SLOT(slotLoadCurrent())); + loadCurrentList(caption, allowSaving, view); } void ImageWindow::loadImageInfos(const ImageInfoList &imageInfoList, ImageInfo *imageInfoCurrent, const QString& caption, bool allowSaving, AlbumIconView* view) { + // the ownership of the list's objects is passed to us d->imageInfoList = imageInfoList; d->imageInfoCurrent = imageInfoCurrent; d->imageInfoList.setAutoDelete(true); // create URL list - KURL::List urlList; + d->urlList = KURL::List(); ImageInfoListIterator it(d->imageInfoList); ImageInfo *info; for (; (info = it.current()); ++it) { - urlList.append(info->kurl()); + d->urlList.append(info->kurl()); } - loadURL(urlList, imageInfoCurrent->kurl(), caption, allowSaving, view); + d->urlCurrent = d->imageInfoCurrent->kurl(); + + loadCurrentList(caption, allowSaving, view); } +void ImageWindow::loadCurrentList(const QString& caption, bool allowSaving, AlbumIconView* view) +{ + // this method contains the code shared by loadURL and loadImageInfos + + // if window is iconified, show it + if (isMinimized()) + { + KWin::deIconifyWindow(winId()); + } + + if (!promptUserSave(d->urlCurrent)) + return; + + setCaption(i18n("digiKam Image Editor - %1").arg(caption)); + + d->view = view; + d->allowSaving = allowSaving; + + m_saveAction->setEnabled(false); + m_revertAction->setEnabled(false); + m_undoAction->setEnabled(false); + m_redoAction->setEnabled(false); + + QTimer::singleShot(0, this, SLOT(slotLoadCurrent())); +} + void ImageWindow::slotLoadCurrent() { KURL::List::iterator it = d->urlList.find(d->urlCurrent); @ -880,6 +893,9 @ useTrash = !permanently; } + // bring all (sidebar) to a defined state without letting them sit on the deleted file + emit signalNoCurrentItem(); + if (!SyncJob::del(d->urlCurrent, useTrash)) { QString errMsg(SyncJob::lastErrorMsg()); @ -891,6 +907,7 @ KURL CurrentToRemove = d->urlCurrent; KURL::List::iterator it = d->urlList.find(d->urlCurrent); + int index = d->imageInfoList.find(d->imageInfoCurrent); if (it != d->urlList.end()) { @ -900,7 +917,9 @ KURL urlNext = *(++it); d->urlCurrent = urlNext; + d->imageInfoCurrent = d->imageInfoList.at(index + 1); d->urlList.remove(CurrentToRemove); + d->imageInfoList.remove(index); slotLoadCurrent(); return; } @ -910,7 +929,9 @ KURL urlPrev = *(--it); d->urlCurrent = urlPrev; + d->imageInfoCurrent = d->imageInfoList.at(index - 1); d->urlList.remove(CurrentToRemove); + d->imageInfoList.remove(index); slotLoadCurrent(); return; } --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.h #593900:593901 @ -82,6 +82,7 @ private: + void loadCurrentList(const QString& caption, bool allowSaving, AlbumIconView* view); void closeEvent(QCloseEvent* e); void setupActions(); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Jeff Mitchell-3
------- 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=135307 ------- Additional Comments From marcel.wiesweg gmx de 2006-10-09 16:04 ------- SVN commit 593903 by mwiesweg: - get rid of SyncJob here, use standard AlbumThumbnailLoader and change menu entry when icon is available. The event loop of SyncJob caused a bug very difficult to find, when the ImageLoaded event was actually received in the event loop opened by SyncJob, called from handling the ImageLoadingStarted event in the end. All assumptions about the order of events are thwarted. - Handle the AlbumsCleared signal from AlbumManager here as well CCBUG: 135307 M +27 -3 imagedescedittab.cpp M +1 -0 imagedescedittab.h --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #593902:593903 @ -62,7 +62,6 @ #include "album.h" #include "albumsettings.h" #include "tagcreatedlg.h" -#include "syncjob.h" #include "navigatebarwidget.h" #include "imageinfo.h" #include "ratingwidget.h" @ -281,6 +280,9 @ connect(man, SIGNAL(signalAlbumRenamed(Album*)), this, SLOT(slotAlbumRenamed(Album*))); + connect(man, SIGNAL(signalAlbumsCleared()), + this, SLOT(slotAlbumsCleared())); + connect(man, SIGNAL(signalAlbumIconChanged(Album*)), this, SLOT(slotAlbumIconChanged(Album*))); @ -497,6 +499,7 @ updateRating(); updateDate(); updateTagsView(); + update(); } void ImageDescEditTab::updateTagsView() @ -788,6 +791,11 @ album->removeExtraData(this); } +void ImageDescEditTab::slotAlbumsCleared() +{ + d->tagsView->clear(); +} + void ImageDescEditTab::slotAlbumIconChanged(Album* a) { if (!a || a->isRoot() || a->type() != Album::TAG) @ -844,12 +852,20 @ if(!album || album->type() != Album::TAG) return; + // update item in tags tree QCheckListItem* item = (QCheckListItem*)album->extraData(this); if(!item) return; item->setPixmap(0, thumbnail); + + // update item in recent tags popup menu, if found therein + QPopupMenu *menu = d->recentTagsBtn->popup(); + if (menu->indexOf(album->id()) != -1) + { + menu->changeItem(album->id(), thumbnail, menu->text(album->id())); + } } void ImageDescEditTab::slotThumbnailLost(Album *) @ -915,9 +931,17 @ TAlbum* album = albumMan->findTAlbum(*it); if (album) { - QPixmap pix = SyncJob::getTagThumbnail(album); + AlbumThumbnailLoader *loader = AlbumThumbnailLoader::instance(); + QPixmap icon; + if (!loader->getTagThumbnail(album, icon)) + { + if (icon.isNull()) + { + icon = loader->getStandardTagIcon(album, 20); + } + } QString text = album->title() + " (" + ((TAlbum*)album->parent())->prettyURL() + ")"; - menu->insertItem(pix, text, album->id()); + menu->insertItem(icon, text, album->id()); } } } --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.h #593902:593903 @ -109,6 +109,7 @ void slotAlbumDeleted(Album* a); void slotAlbumIconChanged(Album* a); void slotAlbumRenamed(Album* a); + void slotAlbumsCleared(); void slotGotThumbnailFromIcon(Album *album, const QPixmap& thumbnail); void slotThumbnailLost(Album *album); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |