Git commit fde13f8803a0a044b4ae748ae27f55c9a6222184 by Andi Clemens. Committed on 31/12/2012 at 16:54. Pushed by aclemens into branch 'master'. refactor downloadCameraItems() M +88 -76 utilities/importui/main/importui.cpp M +1 -0 utilities/importui/main/importui.h http://commits.kde.org/digikam/fde13f8803a0a044b4ae748ae27f55c9a6222184 diff --git a/utilities/importui/main/importui.cpp b/utilities/importui/main= /importui.cpp index 77e5eee..b9e1cbe 100644 --- a/utilities/importui/main/importui.cpp +++ b/utilities/importui/main/importui.cpp @@ -2024,85 +2024,11 @@ bool ImportUI::downloadCameraItems(PAlbum* pAlbum, = bool onlySelected, bool delet dateTime =3D info.mtime; = KUrl downloadUrl(url); - QString errMsg; = // Auto sub-albums creation based on file date. - - if (d->albumCustomizer->autoAlbumDateEnabled()) - { - QString dirName; - - switch (d->albumCustomizer->folderDateFormat()) - { - case AlbumCustomizer::TextDateFormat: - dirName =3D dateTime.date().toString(Qt::TextDate); - break; - - case AlbumCustomizer::LocalDateFormat: - dirName =3D dateTime.date().toString(Qt::LocalDate); - break; - - case AlbumCustomizer::IsoDateFormat: - dirName =3D dateTime.date().toString(Qt::ISODate); - break; - - default: // Custom - dirName =3D dateTime.date().toString(d->albumCustomizer->c= ustomDateFormat()); - break; - } - - // See B.K.O #136927 : we need to support file system which do= not - // handle upper case properly. - dirName =3D dirName.toLower(); - - if (!createAutoAlbum(downloadUrl, dirName, dateTime.date(), er= rMsg)) - { - KMessageBox::error(this, errMsg); - return false; - } - - downloadUrl.addPath(dirName); - } - - // Auto sub-albums creation based on file extensions. - - if (d->albumCustomizer->autoAlbumExtEnabled()) + if (!createSubAlbums(downloadUrl, info)) { - // We use the target file name to compute sub-albums name to t= ake a care about - // conversion on the fly option. - QFileInfo fi(downloadName.isEmpty() ? settings.file : download= Name); - - QString subAlbum =3D fi.suffix().toUpper(); - - if (fi.suffix().toUpper() =3D=3D QString("JPEG") || - fi.suffix().toUpper() =3D=3D QString("JPE")) - { - subAlbum =3D QString("JPG"); - } - - if (fi.suffix().toUpper() =3D=3D QString("TIFF")) - { - subAlbum =3D QString("TIF"); - } - - if (fi.suffix().toUpper() =3D=3D QString("MPEG") || - fi.suffix().toUpper() =3D=3D QString("MPE") || - fi.suffix().toUpper() =3D=3D QString("MPO")) - { - subAlbum =3D QString("MPG"); - } - - // See B.K.O #136927 : we need to support file system which do= not - // handle upper case properly. - subAlbum =3D subAlbum.toLower(); - - if (!createAutoAlbum(downloadUrl, subAlbum, dateTime.date(), e= rrMsg)) - { - KMessageBox::error(this, errMsg); - return false; - } - - downloadUrl.addPath(subAlbum); + return false; } = d->foldersToScan << downloadUrl.toLocalFile(); @@ -2170,6 +2096,92 @@ bool ImportUI::downloadCameraItems(PAlbum* pAlbum, b= ool onlySelected, bool delet return true; } = +bool ImportUI::createSubAlbums(KUrl& downloadUrl, const CamItemInfo& info) +{ + QString downloadName =3D info.downloadName; + QDateTime dateTime =3D info.mtime; + + QString errMsg; + + if (d->albumCustomizer->autoAlbumDateEnabled()) + { + QString dirName; + + switch (d->albumCustomizer->folderDateFormat()) + { + case AlbumCustomizer::TextDateFormat: + dirName =3D dateTime.date().toString(Qt::TextDate); + break; + + case AlbumCustomizer::LocalDateFormat: + dirName =3D dateTime.date().toString(Qt::LocalDate); + break; + + case AlbumCustomizer::IsoDateFormat: + dirName =3D dateTime.date().toString(Qt::ISODate); + break; + + default: // Custom + dirName =3D dateTime.date().toString(d->albumCustomizer->custo= mDateFormat()); + break; + } + + // See B.K.O #136927 : we need to support file system which do not + // handle upper case properly. + dirName =3D dirName.toLower(); + + if (!createAutoAlbum(downloadUrl, dirName, dateTime.date(), errMsg= )) + { + KMessageBox::error(this, errMsg); + return false; + } + + downloadUrl.addPath(dirName); + } + + // Auto sub-albums creation based on file extensions. + + if (d->albumCustomizer->autoAlbumExtEnabled()) + { + // We use the target file name to compute sub-albums name to take = a care about + // conversion on the fly option. + QFileInfo fi(downloadName.isEmpty() ? info.name : downloadName); + + QString subAlbum =3D fi.suffix().toUpper(); + + if (fi.suffix().toUpper() =3D=3D QString("JPEG") || + fi.suffix().toUpper() =3D=3D QString("JPE")) + { + subAlbum =3D QString("JPG"); + } + + if (fi.suffix().toUpper() =3D=3D QString("TIFF")) + { + subAlbum =3D QString("TIF"); + } + + if (fi.suffix().toUpper() =3D=3D QString("MPEG") || + fi.suffix().toUpper() =3D=3D QString("MPE") || + fi.suffix().toUpper() =3D=3D QString("MPO")) + { + subAlbum =3D QString("MPG"); + } + + // See B.K.O #136927 : we need to support file system which do not + // handle upper case properly. + subAlbum =3D subAlbum.toLower(); + + if (!createAutoAlbum(downloadUrl, subAlbum, dateTime.date(), errMs= g)) + { + KMessageBox::error(this, errMsg); + return false; + } + + downloadUrl.addPath(subAlbum); + } + return true; +} + void ImportUI::slotDeleteNew() { slotSelectNew(); diff --git a/utilities/importui/main/importui.h b/utilities/importui/main/i= mportui.h index 38d1a81..3f5935a 100644 --- a/utilities/importui/main/importui.h +++ b/utilities/importui/main/importui.h @@ -140,6 +140,7 @@ private: = bool checkDiskSpace(PAlbum* pAlbum); bool downloadCameraItems(PAlbum *pAlbum, bool onlySelected, bool delet= eAfter); + bool createSubAlbums(KUrl &downloadUrl, const CamItemInfo &info); = private Q_SLOTS: =