[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [digikam] utilities/importui/main: refactor createSubAlbums()
From:       Andi Clemens <andi.clemens () googlemail ! com>
Date:       2012-12-31 16:19:19
Message-ID: 20121231161919.370CCA60C8 () git ! kde ! org
[Download RAW message or body]

Git commit ee99fb1f7dd9cf85ecde98e918d2c5a67ab13155 by Andi Clemens.
Committed on 31/12/2012 at 17:18.
Pushed by aclemens into branch 'master'.

refactor createSubAlbums()

M  +70   -64   utilities/importui/main/importui.cpp
M  +4    -0    utilities/importui/main/importui.h

http://commits.kde.org/digikam/ee99fb1f7dd9cf85ecde98e918d2c5a67ab13155

diff --git a/utilities/importui/main/importui.cpp b/utilities/importui/main/importui.cpp
index e1bfcfc..e9e65d0 100644
--- a/utilities/importui/main/importui.cpp
+++ b/utilities/importui/main/importui.cpp
@@ -2025,7 +2025,6 @@ bool ImportUI::downloadCameraItems(PAlbum* pAlbum, bool onlySelected, bool delet
 
         KUrl downloadUrl(url);
 
-        // Auto sub-albums creation based on file date.
         if (!createSubAlbums(downloadUrl, info))
         {
             return false;
@@ -2098,88 +2097,95 @@ bool ImportUI::downloadCameraItems(PAlbum* pAlbum, bool onlySelected, bool delet
 
 bool ImportUI::createSubAlbums(KUrl& downloadUrl, const CamItemInfo& info)
 {
-    QDateTime dateTime = info.mtime;
-    QString errMsg;
-
+    bool success = true;
     if (d->albumCustomizer->autoAlbumDateEnabled())
     {
-        QString dirName;
+        success &= createDateBasedSubAlbum(downloadUrl, info);
+    }
+    if (d->albumCustomizer->autoAlbumExtEnabled())
+    {
+        success &= createExtBasedSubAlbum(downloadUrl, info);
+    }
+    return success;
+}
 
-        switch (d->albumCustomizer->folderDateFormat())
-        {
-        case AlbumCustomizer::TextDateFormat:
-            dirName = dateTime.date().toString(Qt::TextDate);
-            break;
+bool ImportUI::createSubAlbum(KUrl &downloadUrl, const QString &subalbum, const QDate &date)
+{
+    QString errMsg;
+    if (!createAutoAlbum(downloadUrl, subalbum, date, errMsg))
+    {
+        KMessageBox::error(this, errMsg);
+        return false;
+    }
 
-        case AlbumCustomizer::LocalDateFormat:
-            dirName = dateTime.date().toString(Qt::LocalDate);
-            break;
+    downloadUrl.addPath(subalbum);
+    return true;
+}
 
-        case AlbumCustomizer::IsoDateFormat:
-            dirName = dateTime.date().toString(Qt::ISODate);
-            break;
+bool ImportUI::createDateBasedSubAlbum(KUrl &downloadUrl, const CamItemInfo &info)
+{
+    QString dirName;
+    QDateTime dateTime = info.mtime;
 
-        default:        // Custom
-            dirName = dateTime.date().toString(d->albumCustomizer->customDateFormat());
-            break;
-        }
+    switch (d->albumCustomizer->folderDateFormat())
+    {
+    case AlbumCustomizer::TextDateFormat:
+        dirName = dateTime.date().toString(Qt::TextDate);
+        break;
 
-        // See B.K.O #136927 : we need to support file system which do not
-        // handle upper case properly.
-        dirName = dirName.toLower();
+    case AlbumCustomizer::LocalDateFormat:
+        dirName = dateTime.date().toString(Qt::LocalDate);
+        break;
 
-        if (!createAutoAlbum(downloadUrl, dirName, dateTime.date(), errMsg))
-        {
-            KMessageBox::error(this, errMsg);
-            return false;
-        }
+    case AlbumCustomizer::IsoDateFormat:
+        dirName = dateTime.date().toString(Qt::ISODate);
+        break;
 
-        downloadUrl.addPath(dirName);
+    default:        // Custom
+        dirName = dateTime.date().toString(d->albumCustomizer->customDateFormat());
+        break;
     }
 
-    // Auto sub-albums creation based on file extensions.
+    // See B.K.O #136927 : we need to support file system which do not
+    // handle upper case properly.
+    dirName = dirName.toLower();
 
-    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(info.downloadName.isEmpty()
-                     ? info.name
-                     : info.downloadName);
+    return createSubAlbum(downloadUrl, dirName, dateTime.date());
+}
 
-        QString subAlbum = fi.suffix().toUpper();
+bool ImportUI::createExtBasedSubAlbum(KUrl& downloadUrl, const CamItemInfo &info)
+{
+    // We use the target file name to compute sub-albums name to take a care about
+    // conversion on the fly option.
+    QFileInfo fi(info.downloadName.isEmpty()
+                 ? info.name
+                 : info.downloadName);
 
-        if (fi.suffix().toUpper() == QString("JPEG") ||
-                fi.suffix().toUpper() == QString("JPE"))
-        {
-            subAlbum = QString("JPG");
-        }
+    QString subAlbum = fi.suffix().toUpper();
 
-        if (fi.suffix().toUpper() == QString("TIFF"))
-        {
-            subAlbum = QString("TIF");
-        }
+    if (fi.suffix().toUpper() == QString("JPEG") ||
+            fi.suffix().toUpper() == QString("JPE"))
+    {
+        subAlbum = QString("JPG");
+    }
 
-        if (fi.suffix().toUpper() == QString("MPEG") ||
-                fi.suffix().toUpper() == QString("MPE") ||
-                fi.suffix().toUpper() == QString("MPO"))
-        {
-            subAlbum = QString("MPG");
-        }
+    if (fi.suffix().toUpper() == QString("TIFF"))
+    {
+        subAlbum = QString("TIF");
+    }
 
-        // See B.K.O #136927 : we need to support file system which do not
-        // handle upper case properly.
-        subAlbum = subAlbum.toLower();
+    if (fi.suffix().toUpper() == QString("MPEG") ||
+            fi.suffix().toUpper() == QString("MPE") ||
+            fi.suffix().toUpper() == QString("MPO"))
+    {
+        subAlbum = QString("MPG");
+    }
 
-        if (!createAutoAlbum(downloadUrl, subAlbum, dateTime.date(), errMsg))
-        {
-            KMessageBox::error(this, errMsg);
-            return false;
-        }
+    // See B.K.O #136927 : we need to support file system which do not
+    // handle upper case properly.
+    subAlbum = subAlbum.toLower();
 
-        downloadUrl.addPath(subAlbum);
-    }
-    return true;
+    return createSubAlbum(downloadUrl, subAlbum, info.mtime.date());
 }
 
 void ImportUI::slotDeleteNew()
diff --git a/utilities/importui/main/importui.h b/utilities/importui/main/importui.h
index 3f5935a..edcd5d8 100644
--- a/utilities/importui/main/importui.h
+++ b/utilities/importui/main/importui.h
@@ -141,6 +141,10 @@ private:
     bool checkDiskSpace(PAlbum* pAlbum);
     bool downloadCameraItems(PAlbum *pAlbum, bool onlySelected, bool deleteAfter);
     bool createSubAlbums(KUrl &downloadUrl, const CamItemInfo &info);
+    bool createSubAlbum(KUrl &downloadUrl, const QString& subalbum,
+                        const QDate& date);
+    bool createDateBasedSubAlbum(KUrl &downloadUrl, const CamItemInfo& info);
+    bool createExtBasedSubAlbum(KUrl &downloadUrl, const CamItemInfo& info);
 
 private Q_SLOTS:
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic