void AlbumModificationHelper::slotAlbumEdit(PAlbum* album) { if (!album || album->isRoot() || album->isAlbumRoot()) { return; } QString oldTitle(album->title()); QString oldComments(album->caption()); QString oldCategory(album->category()); QDate oldDate(album->date()); QStringList oldAlbumCategories(ApplicationSettings::instance()->getAlbumCategoryNames()); QString title, comments, category; QDate date; QStringList albumCategories; if (AlbumPropsEdit::editProps(album, title, comments, date, category, albumCategories)) { if (comments != oldComments) { album->setCaption(comments); } if (date != oldDate && date.isValid()) { album->setDate(date); } if (category != oldCategory) { album->setCategory(category); } ApplicationSettings::instance()->setAlbumCategoryNames(albumCategories); // Do this last : so that if anything else changed we can // successfuly save to the db with the old name if (title != oldTitle) { QString errMsg; if (!AlbumManager::instance()->renamePAlbum(album, title, errMsg)) { QMessageBox::critical(d->dialogParent, qApp->applicationName(), errMsg); } } // Resorting the tree View after changing metadata DigikamApp::instance()->view()->slotSortAlbums(ApplicationSettings::instance()->getAlbumSortRole()); } }
PAlbum* AlbumModificationHelper::slotAlbumNew(PAlbum* parent) { if (!parent) { kWarning() << "No parent album given"; return 0; } ApplicationSettings* settings = ApplicationSettings::instance(); if (!settings) { kWarning() << "could not get Album Settings"; return 0; } /* QDir libraryDir(settings->getAlbumLibraryPath()); if(!libraryDir.exists()) { KMessageBox::error(0, i18n("The album library has not been set correctly.\n" "Select \"Configure Digikam\" from the Settings " "menu and choose a folder to use for the album " "library.")); return; } */ // if we create an album under root, need to supply the album root path. QString albumRootPath; albumRootPath = CollectionManager::instance()->oneAlbumRootPath(); QString title; QString comments; QString category; QDate date; QStringList albumCategories; int parentSelector; if (!AlbumPropsEdit::createNew(parent, title, comments, date, category, albumCategories, parentSelector)) { return 0; } QStringList oldAlbumCategories(ApplicationSettings::instance()->getAlbumCategoryNames()); if (albumCategories != oldAlbumCategories) { ApplicationSettings::instance()->setAlbumCategoryNames(albumCategories); } QString errMsg; PAlbum* album = 0; if (parent->isRoot() || parentSelector == 1) { album = AlbumManager::instance()->createPAlbum(albumRootPath, title, comments, date, category, errMsg); } else { album = AlbumManager::instance()->createPAlbum(parent, title, comments, date, category, errMsg); } if (!album) { KMessageBox::error(0, errMsg); return 0; } return album; }