[Digikam-devel] extragear/graphics/digikam/utilities/cameragui

Gilles Caulier caulier.gilles at free.fr
Tue Apr 11 13:58:30 BST 2006


SVN commit 528578 by cgilles:

digikam from trunk : camera controller improvements : no need to display an error dialog if an operation have been cancelled by user.

CCMAIL: digikam-devel at kde.org

 M  +41 -22    cameracontroller.cpp  


--- trunk/extragear/graphics/digikam/utilities/cameragui/cameracontroller.cpp #528577:528578
@@ -141,6 +141,7 @@
     bool                    close;
     bool                    overwriteAll;
     bool                    skipAll;
+    bool                    canceled;
     
     int                     downloadTotal;
     
@@ -348,7 +349,7 @@
     
                     if (fixDateTime || setPhotographerId || setCredits)
                     {
-                        sendInfo(i18n("Set Metadata tags to file %1...").arg(file));
+                        sendInfo(i18n("Setting Metadata tags to file %1...").arg(file));
                         DMetadata metadata(tempURL.path());
                         
                         if (fixDateTime)
@@ -491,7 +492,6 @@
     QApplication::postEvent(parent, event);
 }
 
-
 void CameraThread::sendInfo(const QString& msg)
 {
     CameraEvent* event = new CameraEvent(CameraEvent::gp_infomsg);
@@ -508,6 +508,7 @@
 {
     d = new CameraControllerPriv;	
     d->parent        = parent;
+    d->canceled      = false;
     d->close         = false;
     d->overwriteAll  = false;
     d->skipAll       = false;
@@ -536,7 +537,8 @@
     }
     
     d->camera->cancel();
-    d->close = true;
+    d->canceled = true;
+    d->close    = true;
 
     while (d->thread->running())
         d->thread->wait();
@@ -548,6 +550,7 @@
 
 void CameraController::slotConnect()
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_connect;
     d->cmdQueue.enqueue(cmd);
@@ -555,6 +558,7 @@
 
 void CameraController::listFolders()
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_listfolders;
     d->cmdQueue.enqueue(cmd);
@@ -562,6 +566,7 @@
 
 void CameraController::listFiles(const QString& folder)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_listfiles;
     cmd->map.insert("folder", QVariant(folder));
@@ -570,6 +575,7 @@
 
 void CameraController::getThumbnail(const QString& folder, const QString& file)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_thumbnail;
     cmd->map.insert("folder", QVariant(folder));
@@ -579,6 +585,7 @@
 
 void CameraController::getExif(const QString& folder, const QString& file)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_exif;
     cmd->map.insert("folder", QVariant(folder));
@@ -600,6 +607,7 @@
                                 bool setCredits, const QString& credit, 
                                 const QString& source, const QString& copyright)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_download;
     cmd->map.insert("folder", QVariant(folder));
@@ -620,6 +628,7 @@
 
 void CameraController::deleteFile(const QString& folder, const QString& file)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_delete;
     cmd->map.insert("folder", QVariant(folder));
@@ -629,6 +638,7 @@
 
 void CameraController::openFile(const QString& folder, const QString& file)
 {
+    d->canceled = false;
     CameraCommand *cmd = new CameraCommand;
     cmd->action = CameraCommand::gp_open;
     cmd->map.insert("folder", QVariant(folder));
@@ -639,6 +649,7 @@
 
 void CameraController::slotCancel()
 {
+    d->canceled = true;
     d->cmdQueue.flush();   
     d->camera->cancel();
 }
@@ -671,7 +682,8 @@
     }
     case (CameraEvent::gp_infomsg) :
     {
-        emit signalInfoMsg(QDeepCopy<QString>(event->msg));
+        if (!d->canceled)
+            emit signalInfoMsg(QDeepCopy<QString>(event->msg));
         break;
     }
     case (CameraEvent::gp_listedfolders) :
@@ -732,17 +744,20 @@
 
         QString msg = i18n("Failed to download file %1.").arg(file);
         
-        if (d->cmdQueue.isEmpty())
+        if (!d->canceled)
         {
-            KMessageBox::error(d->parent, msg);
+            if (d->cmdQueue.isEmpty())
+            {
+                KMessageBox::error(d->parent, msg);
+            }
+            else
+            {
+                msg += i18n(" Do you want to continue?");
+                int result = KMessageBox::warningContinueCancel(d->parent, msg);
+                if (result != KMessageBox::Continue)
+                    slotCancel();
+            }
         }
-        else
-        {
-            msg += i18n(" Do you want to continue?");
-            int result = KMessageBox::warningContinueCancel(d->parent, msg);
-            if (result != KMessageBox::Continue)
-                slotCancel();
-        }
 
         d->timer->start(50);
         emit signalDownloaded(folder, file);
@@ -764,17 +779,20 @@
 
         QString msg = i18n("Failed to delete file %1.").arg(file);
         
-        if (d->cmdQueue.isEmpty())
+        if (!d->canceled)
         {
-            KMessageBox::error(d->parent, msg);
+            if (d->cmdQueue.isEmpty())
+            {
+                KMessageBox::error(d->parent, msg);
+            }
+            else
+            {
+                msg += i18n(" Do you want to continue?");
+                int result = KMessageBox::warningContinueCancel(d->parent, msg);
+                if (result != KMessageBox::Continue)
+                    slotCancel();
+            }
         }
-        else
-        {
-            msg += i18n(" Do you want to continue?");
-            int result = KMessageBox::warningContinueCancel(d->parent, msg);
-            if (result != KMessageBox::Continue)
-                slotCancel();
-        }
 
         d->timer->start(50);
         break;
@@ -850,6 +868,7 @@
         if (!d->overwriteAll)
         {
             struct stat info;
+            
             while (::stat(QFile::encodeName(dest), &info) == 0)
             {
                 if (d->skipAll)



More information about the Digikam-devel mailing list