DatabaseUrl DatabaseUrl::fromFileUrl(const KUrl& fileUrl, const KUrl& albumRoot, const DatabaseParameters& parameters) { CollectionLocation location = CollectionManager::instance()->locationForAlbumRoot(albumRoot); return fromFileUrl(fileUrl, albumRoot, location.id(), parameters); }
DatabaseUrl DatabaseUrl::fromAlbumAndName(const QString& name, const QString& album, const KUrl& albumRoot, const DatabaseParameters& parameters) { CollectionLocation location = CollectionManager::instance()->locationForAlbumRoot(albumRoot); return fromAlbumAndName(name, album, albumRoot, location.id(), parameters); }
void AlbumManager::addAlbumRoot(const CollectionLocation& location) { PAlbum* album = d->albumRootAlbumHash.value(location.id()); if (!album) { // Create a PAlbum for the Album Root. QString label = d->labelForAlbumRootAlbum(location); album = new PAlbum(location.id(), label); qCDebug(DIGIKAM_GENERAL_LOG) << "Added root album called: " << album->title(); // insert album root created into hash d->albumRootAlbumHash.insert(location.id(), album); } }
DImageHistory ImageScanner::resolvedImageHistory(const DImageHistory& history, bool mustBeAvailable) { DImageHistory h; foreach (const DImageHistory::Entry& e, history.entries()) { // Copy entry, without referredImages DImageHistory::Entry entry; entry.action = e.action; // resolve referredImages foreach (const HistoryImageId& id, e.referredImages) { QList<qlonglong> imageIds = resolveHistoryImageId(id); // append each image found in collection to referredImages foreach (qlonglong imageId, imageIds) { ImageInfo info(imageId); if (info.isNull()) { continue; } if (mustBeAvailable) { CollectionLocation location = CollectionManager::instance()->locationForAlbumRootId(info.albumRootId()); if (!location.isAvailable()) { continue; } } HistoryImageId newId = info.historyImageId(); newId.setType(id.m_type); entry.referredImages << newId; } } // add to history h.entries() << entry; }
void ScanController::hintAtMoveOrCopyOfAlbum(const PAlbum* album, const QString& dstPath, const QString& newAlbumName) { // get album root and album from dst path CollectionLocation location = CollectionManager::instance()->locationForPath(dstPath); if (location.isNull()) { kWarning() << "hintAtMoveOrCopyOfAlbum: Destination path" << dstPath << "does not point to an available location."; return; } QString relativeDstPath = CollectionManager::instance()->album(location, dstPath); QList<AlbumCopyMoveHint> newHints = hintsForAlbum(album, location.id(), relativeDstPath, newAlbumName.isNull() ? album->title() : newAlbumName); QMutexLocker lock(&d->mutex); d->albumHints << newHints; }
void AlbumManager::removeAlbumRoot(const CollectionLocation& location) { // retrieve and remove from hash PAlbum* const album = d->albumRootAlbumHash.take(location.id()); if (album) { // delete album and all its children removePAlbum(album); } }
void AlbumManager::slotCollectionLocationPropertiesChanged(const CollectionLocation& location) { PAlbum* const album = d->albumRootAlbumHash.value(location.id()); if (album) { QString newLabel = d->labelForAlbumRootAlbum(location); if (album->title() != newLabel) { album->setTitle(newLabel); emit signalAlbumRenamed(album); } } }
bool AlbumManager::handleCollectionStatusChange(const CollectionLocation& location, int oldStatus) { enum Action { Add, Remove, DoNothing }; Action action = DoNothing; switch (oldStatus) { case CollectionLocation::LocationNull: case CollectionLocation::LocationHidden: case CollectionLocation::LocationUnavailable: { switch (location.status()) { case CollectionLocation::LocationNull: // not possible break; case CollectionLocation::LocationHidden: action = Remove; break; case CollectionLocation::LocationAvailable: action = Add; break; case CollectionLocation::LocationUnavailable: if (d->showOnlyAvailableAlbums) { action = Remove; } else { action = Add; } break; case CollectionLocation::LocationDeleted: action = Remove; break; } break; } case CollectionLocation::LocationAvailable: { switch (location.status()) { case CollectionLocation::LocationNull: case CollectionLocation::LocationHidden: case CollectionLocation::LocationDeleted: action = Remove; break; case CollectionLocation::LocationUnavailable: if (d->showOnlyAvailableAlbums) { action = Remove; } break; case CollectionLocation::LocationAvailable: // not possible break; } break; } case CollectionLocation::LocationDeleted: // not possible break; } if (action == Add && !d->albumRootAlbumHash.value(location.id())) { // This is the only place where album root albums are added addAlbumRoot(location); return true; } else if (action == Remove && d->albumRootAlbumHash.value(location.id())) { removeAlbumRoot(location); return true; } return false; }
QString ToolTipFiller::albumTipContents(PAlbum* const album, int count) { if (!album) { return QString(); } QString str; ApplicationSettings* const settings = ApplicationSettings::instance(); DToolTipStyleSheet cnt(settings->getToolTipsFont()); QString tip = cnt.tipHeader; if (settings->getToolTipsShowAlbumTitle() || settings->getToolTipsShowAlbumDate() || settings->getToolTipsShowAlbumCollection() || settings->getToolTipsShowAlbumCategory() || settings->getToolTipsShowAlbumCaption()) { tip += cnt.headBeg + i18n("Album Properties") + cnt.headEnd; if (settings->getToolTipsShowAlbumTitle()) { tip += cnt.cellBeg + i18n("Name:") + cnt.cellMid; tip += album->title() + cnt.cellEnd; } if (settings->getShowFolderTreeViewItemsCount()) { tip += cnt.cellBeg + i18n("Items:") + cnt.cellMid; tip += QString::number(count) + cnt.cellEnd; } if (settings->getToolTipsShowAlbumCollection()) { tip += cnt.cellBeg + i18n("Collection:") + cnt.cellMid; CollectionLocation col = CollectionManager::instance()->locationForAlbumRootId(album->albumRootId()); tip += !col.isNull() ? col.label() : QString() + cnt.cellEnd; } if (settings->getToolTipsShowAlbumDate()) { QDate date = album->date(); str = KGlobal::locale()->formatDate(date, KLocale::ShortDate); tip += cnt.cellBeg + i18n("Date:") + cnt.cellMid + str + cnt.cellEnd; } if (settings->getToolTipsShowAlbumCategory()) { str = album->category(); if (str.isEmpty()) { str = QString("---"); } tip += cnt.cellSpecBeg + i18n("Category:") + cnt.cellSpecMid + cnt.breakString(str) + cnt.cellSpecEnd; } if (settings->getToolTipsShowAlbumCaption()) { str = album->caption(); if (str.isEmpty()) { str = QString("---"); } tip += cnt.cellSpecBeg + i18n("Caption:") + cnt.cellSpecMid + cnt.breakString(str) + cnt.cellSpecEnd; } if (settings->getToolTipsShowAlbumPreview()) { tip += cnt.cellSpecBeg + i18n("Preview:") + cnt.cellSpecMid + cnt.imageAsBase64(AlbumThumbnailLoader::instance()->getAlbumThumbnailDirectly(album).toImage()) + //cnt.imageAsBase64(AlbumThumbnailLoader::instance()->getAlbumPreviewDirectly(album, ThumbnailSize::Medium)) + cnt.cellSpecEnd; } } tip += cnt.tipFooter; return tip; }