[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