Summary: | Disable the button "Back" after changing album library path, if not it crashes DigiKam. | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Tung NGUYEN <ntung> |
Component: | Albums-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles |
Priority: | VHI | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.5.0 |
Description
Tung NGUYEN
2005-11-14 14:52:49 UTC
imho we have to resolve these issues before releasing, I will have a look this weekend, but I'm unsure I can fix it on my own. Thank you very much. --- Tung. SVN commit 481653 by jahrens: Oh Tung, how do you find all these stupid bugs? Cool :) The album history wasn't cleared if another album library path was set. BUG: 116344 M +13 -4 albumhistory.cpp M +1 -0 albumhistory.h M +2 -0 digikamapp.cpp M +7 -0 digikamview.cpp M +1 -0 digikamview.h --- trunk/extragear/graphics/digikam/digikam/albumhistory.cpp #481652:481653 @@ -66,18 +66,27 @@ AlbumHistory::~AlbumHistory() { + clearHistory(); + + delete m_backwardStack; + delete m_forwardStack; +} + +void AlbumHistory::clearHistory() +{ AlbumStack::iterator iter = m_backwardStack->begin(); AlbumStack::iterator end = m_backwardStack->end(); for(; iter != end; ++iter) delete *iter; - + m_backwardStack->clear(); + iter = m_forwardStack->begin(); end = m_forwardStack->end(); for(; iter != end; ++iter) delete *iter; - - delete m_backwardStack; - delete m_forwardStack; + m_forwardStack->clear(); + + m_moving = false; } void AlbumHistory::addAlbum(Album *album, QWidget *widget) --- trunk/extragear/graphics/digikam/digikam/albumhistory.h #481652:481653 @@ -47,6 +47,7 @@ void addAlbum(Album *album, QWidget *widget = 0); void deleteAlbum(Album *album); + void clearHistory(); void back(Album **album, QWidget **widget, unsigned int steps=1); void forward(Album **album, QWidget **widget, unsigned int steps=1); void getCurrentAlbum(Album **album, QWidget **widget) const; --- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #481652:481653 @@ -934,6 +934,8 @@ void DigikamApp::slotSetupChanged() { + if(mAlbumSettings->getAlbumLibraryPath() != mAlbumManager->getLibraryPath()) + mView->clearHistory(); mAlbumManager->setLibraryPath(mAlbumSettings->getAlbumLibraryPath()); mAlbumManager->startScan(); --- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #481652:481653 @@ -353,6 +353,13 @@ } } +void DigikamView::clearHistory() +{ + mAlbumHistory->clearHistory(); + mParent->enableAlbumBackwardHistory(false); + mParent->enableAlbumForwardHistory(false); +} + void DigikamView::getBackwardHistory(QStringList &titles) { mAlbumHistory->getBackwardHistory(titles); --- trunk/extragear/graphics/digikam/digikam/digikamview.h #481652:481653 @@ -67,6 +67,7 @@ void applySettings(const AlbumSettings* settings); + void clearHistory(); void getForwardHistory(QStringList &titles); void getBackwardHistory(QStringList &titles); |