Bug 287102

Summary: Digikam does not show selected album at startup
Product: [Applications] digikam Reporter: Thomas Damgaard <thomasdn>
Component: Albums-MainViewAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, fredericg_99, reblaeufer
Priority: NOR    
Version: 2.1.1   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.0.0
Sentry Crash Report:

Description Thomas Damgaard 2011-11-20 20:33:03 UTC
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.
Comment 1 Thomas Damgaard 2011-11-20 21:04:12 UTC
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.
Comment 2 Frederic Grelot 2011-11-20 21:33:37 UTC
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)
Comment 3 caulier.gilles 2011-12-12 20:45:56 UTC
It still valid using last 2.4 ?

Gilles Caulier
Comment 4 Marcel Wiesweg 2012-02-21 17:46:25 UTC
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?
Comment 5 caulier.gilles 2012-02-21 17:53:32 UTC
yes, me, i can reproduce it each time on my desktop computer (the very fast machine (:=)))

Gilles Caulier
Comment 6 Marcel Wiesweg 2012-02-27 18:23:45 UTC
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.
Comment 7 caulier.gilles 2013-11-26 15:59:52 UTC
*** Bug 307330 has been marked as a duplicate of this bug. ***
Comment 8 caulier.gilles 2013-12-10 12:51:45 UTC
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()