Version: 2.1.1 (using KDE 4.7.2) OS: Linux When I start up Digikam it remembers which album I had selected when I closed digikam last time I used it. That is a nice feature -- especially when you have a large photo collection like me. However, even though it remembers the album and pre-selects it in the My Albums list on the right, it does not show the photo previews this album in the main window. Instead, it appears that it shows images from some previous search or something like that. Maybe a tag search? Anyway, this does not make sense when I am in the Albums tab and an album is selected. Reproducible: Always Steps to Reproduce: Start digikam. Navigate to an album in My Albums. Close digikam. Start digikam again. Actual Results: Selected album is still selected in My Albums, but the contents of this album is not shown in the main view. Instead some other images are shown. Expected Results: Selected album should still be selected in My Albums, and the contents of this album should be shown in the main window.
More info: It appears that what is shown is the result of a previous Fuzzy search. I think it can be reproduced more reliably this way: Steps to Reproduce: 1: Start digikam. 2: Do a fuzzy search that returns some images. 3: Go to My Albums. 4: Navigate to an album in My Albums. 5: Close digikam. 6: Start digikam again.
I can confirm this bug : the result shown if that of a previous fuzzy search also. I'm running latest git as of now. (2011/11/20)
It still valid using last 2.4 ? Gilles Caulier
I could not reproduce this with current git (to be 2.6.0) with the given recipe. Anyone still confirming this problem? Any hint how to reproduce? If yes, can you reproduce each time?
yes, me, i can reproduce it each time on my desktop computer (the very fast machine (:=))) Gilles Caulier
Hm I still cannot reproduce. Assume it is 100% reproducable by the recipe from #1, and does _not_ happen if a fuzzy search had not been selected prviously. Then there must be some persistent difference in either the digikamrc file, or the digikam4.db. The easiest check would be to compare copies of the digikamrc file after case 1 and case 2; if no difference, then copies of the db files should be compared; if still no difference, we'll have something to think.
*** Bug 307330 has been marked as a duplicate of this bug. ***
Git commit 7aa8ffde3f05c36857ee0e36d0131be0affa9b54 by Veaceslav Munteanu. Committed on 10/12/2013 at 00:59. Pushed by munteanu into branch 'master'. Fix wrong album selected when restoring selection on start-up M +1 -5 digikam/album/albumtreeview.cpp M +5 -1 digikam/date/datefolderview.cpp http://commits.kde.org/digikam/7aa8ffde3f05c36857ee0e36d0131be0affa9b54 diff --git a/digikam/album/albumtreeview.cpp b/digikam/album/albumtreeview.cpp index 6504743..ba882dd 100644 --- a/digikam/album/albumtreeview.cpp +++ b/digikam/album/albumtreeview.cpp @@ -542,9 +542,9 @@ void AbstractAlbumTreeView::slotCurrentChanged() { QList<Album*> selected = selectedAlbums<Album>(selectionModel(), m_albumFilterModel); + if(selected.isEmpty()) return; - emit currentAlbumChanged(selected.first()); } @@ -951,10 +951,6 @@ void AbstractAlbumTreeView::doSaveState() currentIndex = QString::number(selectedAlbum->id()); } - // kDebug() << "selection: " << selection; - // kDebug() << "expansion: " << expansion; - // kDebug() << "currentIndex: " << currentIndex; - configGroup.writeEntry(entryName(d->configSelectionEntry), selection); configGroup.writeEntry(entryName(d->configExpansionEntry), expansion); configGroup.writeEntry(entryName(d->configCurrentIndexEntry), currentIndex); diff --git a/digikam/date/datefolderview.cpp b/digikam/date/datefolderview.cpp index f5e40d4..02486c2 100644 --- a/digikam/date/datefolderview.cpp +++ b/digikam/date/datefolderview.cpp @@ -84,7 +84,6 @@ DateFolderView::DateFolderView(QWidget* const parent, DateAlbumModel* const date d->dateTreeView = new DateAlbumTreeView(this); d->dateTreeView->setAlbumModel(dateAlbumModel); - d->dateTreeView->setSelectAlbumOnClick(true); d->dateTreeView->setAlbumManagerCurrentAlbum(true); d->monthview = new MonthWidget(this); @@ -156,6 +155,11 @@ void DateFolderView::slotSelectionChanged(Album* selectedAlbum) d->monthview->setActive(true); d->monthview->setYearMonth(date.year(), date.month()); } + + if (d->active) + { + AlbumManager::instance()->setCurrentAlbums(QList<Album*>() << dalbum); + } } void DateFolderView::slotAllAlbumsLoaded()