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

List:       kde-commits
Subject:    branches/extragear/kde3/graphics/digikam/utilities/cameragui
From:       Gilles Caulier <caulier.gilles () gmail ! com>
Date:       2009-05-25 13:37:32
Message-ID: 1243258652.164829.10635.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 972686 by cgilles:

backport commit #972580 from KDE4


 M  +60 -81    cameraui.cpp  
 M  +3 -0      cameraui.h  


--- branches/extragear/kde3/graphics/digikam/utilities/cameragui/cameraui.cpp \
#972685:972686 @@ -133,6 +133,7 @@
 
     CameraUIPriv()
     {
+        deleteAfter        = false;
         busy               = false;
         closed             = false;
         helpMenu           = 0;
@@ -164,6 +165,7 @@
         freeSpaceWidget    = 0;
     }
 
+    bool                          deleteAfter;
     bool                          busy;
     bool                          closed;
 
@@ -1306,13 +1308,7 @@
     // Only needs to be disabled while downloading
     d->advBox->setEnabled(false);
 
-    if (deleteAfter)
-    {
-        if (onlySelected)
-            slotDeleteSelected();
-        else
-            slotDeleteAll();
-    }
+    d->deleteAfter = deleteAfter;
 }
 
 void CameraUI::slotDownloaded(const QString& folder, const QString& file, int \
status) @@ -1326,6 +1322,13 @@
         int curr = d->progress->progress();
         d->progress->setProgress(curr+1);
     }
+
+    // Download all items is complete.
+    if (d->progress->progress() == d->progress->totalSteps())
+    {
+        if (d->deleteAfter)
+            deleteItems(true, true);
+    }
 }
 
 void CameraUI::slotSkipped(const QString& folder, const QString& file)
@@ -1386,30 +1389,61 @@
     d->progress->setProgress(curr+1);
 }
 
-void CameraUI::slotDeleteSelected()
+void CameraUI::checkItem4Deletion(CameraIconViewItem* iconItem, QStringList& \
folders, QStringList& files, +                                  QStringList& \
deleteList, QStringList& lockedList)  {
+    if (iconItem->itemInfo()->writePermissions != 0)  // Item not locked ?
+    {
+        QString folder = iconItem->itemInfo()->folder;
+        QString file   = iconItem->itemInfo()->name;
+        folders.append(folder);
+        files.append(file);
+        deleteList.append(folder + QString("/") + file);
+    }
+    else
+    {
+        lockedList.append(iconItem->itemInfo()->name);
+    }
+}
+
+void CameraUI::deleteItems(bool onlySelected, bool onlyDownloaded)
+{
     QStringList folders;
     QStringList files;
     QStringList deleteList;
     QStringList lockedList;
 
-    for (IconItem* item = d->view->firstItem(); item;
-         item = item->nextItem())
+    for (IconItem* item = d->view->firstItem(); item; item = item->nextItem())
     {
-        CameraIconViewItem* iconItem = static_cast<CameraIconViewItem*>(item);
-        if (iconItem->isSelected())
+        CameraIconViewItem* iconItem = dynamic_cast<CameraIconViewItem*>(item);
+        if (iconItem)
         {
-            if (iconItem->itemInfo()->writePermissions != 0)  // Item not locked ?
+            if (onlySelected)
             {
-                QString folder = iconItem->itemInfo()->folder;
-                QString file   = iconItem->itemInfo()->name;
-                folders.append(folder);
-                files.append(file);
-                deleteList.append(folder + QString("/") + file);
+                if (iconItem->isSelected())
+                {
+                    if (onlyDownloaded)
+                    {
+                        if (iconItem->isDownloaded())
+                            checkItem4Deletion(iconItem, folders, files, deleteList, \
lockedList); +                    }
+                    else
+                    {
+                        checkItem4Deletion(iconItem, folders, files, deleteList, \
lockedList); +                    }
+                }
             }
-            else
+            else    // All items
             {
-                lockedList.append(iconItem->itemInfo()->name);
+                if (onlyDownloaded)
+                {
+                    if (iconItem->isDownloaded())
+                        checkItem4Deletion(iconItem, folders, files, deleteList, \
lockedList); +                }
+                else
+                {
+                    checkItem4Deletion(iconItem, folders, files, deleteList, \
lockedList); +                }
             }
         }
     }
@@ -1456,69 +1490,14 @@
     }
 }
 
-void CameraUI::slotDeleteAll()
+void CameraUI::slotDeleteSelected()
 {
-    QStringList folders;
-    QStringList files;
-    QStringList deleteList;
-    QStringList lockedList;
+    deleteItems(true, false);
+}
 
-    for (IconItem* item = d->view->firstItem(); item;
-         item = item->nextItem())
-    {
-        CameraIconViewItem* iconItem = static_cast<CameraIconViewItem*>(item);
-        if (iconItem->itemInfo()->writePermissions != 0)  // Item not locked ?
-        {
-            QString folder = iconItem->itemInfo()->folder;
-            QString file   = iconItem->itemInfo()->name;
-            folders.append(folder);
-            files.append(file);
-            deleteList.append(folder + QString("/") + file);
-        }
-        else
-        {
-            lockedList.append(iconItem->itemInfo()->name);
-        }
-    }
-
-    // If we want to delete some locked files, just give a feedback to user.
-    if (!lockedList.isEmpty())
-    {
-        QString infoMsg(i18n("The items listed below are locked by camera \
                (read-only). "
-                             "These items will not be deleted. If you really want to \
                delete these items, "
-                             "please unlock them and try again."));
-        KMessageBox::informationList(this, infoMsg, lockedList, \
                i18n("Information"));
-    }
-
-    if (folders.isEmpty())
-        return;
-
-    QString warnMsg(i18n("About to delete this image. "
-                         "Deleted files are unrecoverable. "
-                         "Are you sure?",
-                         "About to delete these %n images. "
-                         "Deleted files are unrecoverable. "
-                         "Are you sure?",
-                         deleteList.count()));
-    if (KMessageBox::warningContinueCancelList(this, warnMsg,
-                                               deleteList,
-                                               i18n("Warning"),
-                                               i18n("Delete"))
-        ==  KMessageBox::Continue)
-    {
-        QStringList::iterator itFolder = folders.begin();
-        QStringList::iterator itFile   = files.begin();
-
-        d->progress->setProgress(0);
-        d->progress->setTotalSteps(deleteList.count());
-        d->progress->show();
-
-        for ( ; itFolder != folders.end(); ++itFolder, ++itFile)
-        {
-            d->controller->deleteFile(*itFolder, *itFile);
-            d->currentlyDeleting.append(*itFolder + *itFile);
-        }
-    }
+void CameraUI::slotDeleteAll()
+{
+    deleteItems(false, false);
 }
 
 void CameraUI::slotDeleted(const QString& folder, const QString& file, bool status)
--- branches/extragear/kde3/graphics/digikam/utilities/cameragui/cameraui.h \
#972685:972686 @@ -92,6 +92,9 @@
                          const QDate& date, QString& errMsg);
     void addFileExtension(const QString& ext);
     void finishDialog();
+    void deleteItems(bool onlySelected, bool onlyDownloaded);
+    void checkItem4Deletion(CameraIconViewItem* iconItem, QStringList& folders, \
QStringList& files, +                            QStringList& deleteList, \
QStringList& lockedList);  
 private slots:
 


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

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