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

List:       kde-commits
Subject:    [digikam] utilities: drop KIOWrapper::renameDlg()
From:       Maik Qualmann <metzpinguin () gmail ! com>
Date:       2016-04-19 4:54:45
Message-ID: E1asNgT-0003JS-Uc () scm ! kde ! org
[Download RAW message or body]

Git commit 95ffe7eb617349ded2aec0869caa5a5ccc829850 by Maik Qualmann.
Committed on 19/04/2016 at 04:54.
Pushed by mqualmann into branch 'master'.

drop KIOWrapper::renameDlg()

M  +8    -13   utilities/assistants/common/dsavesettingswidget.cpp
M  +1    -3    utilities/assistants/common/dsavesettingswidget.h
M  +2    -34   utilities/assistants/expoblending/blendingdlg/expoblendingdlg.cpp
M  +38   -0    utilities/imageeditor/core/fileoperation.cpp
M  +4    -0    utilities/imageeditor/core/fileoperation.h
M  +8    -80   utilities/importui/backend/cameracontroller.cpp
M  +0    -35   utilities/kdesupport/kio/kiowrapper.cpp
M  +0    -13   utilities/kdesupport/kio/kiowrapper.h
M  +1    -21   utilities/queuemanager/manager/task.cpp

http://commits.kde.org/digikam/95ffe7eb617349ded2aec0869caa5a5ccc829850

diff --git a/utilities/assistants/common/dsavesettingswidget.cpp \
b/utilities/assistants/common/dsavesettingswidget.cpp index f6c058e..f64f0d4 100644
--- a/utilities/assistants/common/dsavesettingswidget.cpp
+++ b/utilities/assistants/common/dsavesettingswidget.cpp
@@ -51,8 +51,8 @@ public:
         conflictLabel       = 0;
         conflictButtonGroup = 0;
         formatComboBox      = 0;
+        storeDiffButton     = 0;
         overwriteButton     = 0;
-        promptButton        = 0;
         grid                = 0;
     }
 
@@ -65,8 +65,8 @@ public:
 
     QComboBox*    formatComboBox;
 
+    QRadioButton* storeDiffButton;
     QRadioButton* overwriteButton;
-    QRadioButton* promptButton;
 };
 
 DSaveSettingsWidget::DSaveSettingsWidget(QWidget* const parent)
@@ -100,17 +100,17 @@ DSaveSettingsWidget::DSaveSettingsWidget(QWidget* const parent)
     QWidget* const conflictBox = new QWidget(this);
     QVBoxLayout* const vlay    = new QVBoxLayout(conflictBox);
     d->conflictButtonGroup     = new QButtonGroup(conflictBox);
-    d->overwriteButton         = new QRadioButton(i18n("Overwrite automatically"), \
                conflictBox);
-    d->promptButton            = new QRadioButton(i18n("Open rename-file dialog"), \
conflictBox); +    d->storeDiffButton         = new QRadioButton(i18n("Store as a \
different name"), conflictBox); +    d->overwriteButton         = new \
QRadioButton(i18n("Overwrite automatically"),   conflictBox);  \
                d->conflictButtonGroup->addButton(d->overwriteButton, OVERWRITE);
-    d->conflictButtonGroup->addButton(d->promptButton,    ASKTOUSER);
+    d->conflictButtonGroup->addButton(d->storeDiffButton, DIFFNAME);
     d->conflictButtonGroup->setExclusive(true);
-    d->overwriteButton->setChecked(true);
+    d->storeDiffButton->setChecked(true);
 
     vlay->setContentsMargins(spacing, spacing, spacing, spacing);
     vlay->setSpacing(spacing);
+    vlay->addWidget(d->storeDiffButton);
     vlay->addWidget(d->overwriteButton);
-    vlay->addWidget(d->promptButton);
 
     d->grid->addWidget(d->formatLabel,    0, 0, 1, 1);
     d->grid->addWidget(d->formatComboBox, 0, 1, 1, 1);
@@ -153,11 +153,6 @@ void DSaveSettingsWidget::setFileFormat(OutputFormat f)
     d->formatComboBox->setCurrentIndex((int)f);
 }
 
-void DSaveSettingsWidget::setPromptButtonText(const QString& str)
-{
-    d->promptButton->setText(str);
-}
-
 DSaveSettingsWidget::ConflictRule DSaveSettingsWidget::conflictRule() const
 {
     return((ConflictRule)(d->conflictButtonGroup->checkedId()));
@@ -171,7 +166,7 @@ void DSaveSettingsWidget::setConflictRule(ConflictRule r)
 void DSaveSettingsWidget::readSettings(KConfigGroup& group)
 {
     setFileFormat((DSaveSettingsWidget::OutputFormat)group.readEntry("Output \
                Format", (int)(DSaveSettingsWidget::OUTPUT_PNG)));
-    setConflictRule((DSaveSettingsWidget::ConflictRule)group.readEntry("Conflict",   \
(int)(DSaveSettingsWidget::OVERWRITE))); +    \
setConflictRule((DSaveSettingsWidget::ConflictRule)group.readEntry("Conflict",    \
(int)(DSaveSettingsWidget::DIFFNAME)));  }
 
 void DSaveSettingsWidget::writeSettings(KConfigGroup& group)
diff --git a/utilities/assistants/common/dsavesettingswidget.h \
b/utilities/assistants/common/dsavesettingswidget.h index feb973f..1dfed21 100644
--- a/utilities/assistants/common/dsavesettingswidget.h
+++ b/utilities/assistants/common/dsavesettingswidget.h
@@ -51,7 +51,7 @@ public:
     enum ConflictRule
     {
         OVERWRITE = 0,
-        ASKTOUSER
+        DIFFNAME
     };
 
 public:
@@ -64,8 +64,6 @@ public:
     OutputFormat fileFormat() const;
     void setFileFormat(OutputFormat f);
 
-    void setPromptButtonText(const QString&);
-
     ConflictRule conflictRule() const;
     void setConflictRule(ConflictRule r);
 
diff --git a/utilities/assistants/expoblending/blendingdlg/expoblendingdlg.cpp \
b/utilities/assistants/expoblending/blendingdlg/expoblendingdlg.cpp index \
                8ec14d3..75d5c0e 100644
--- a/utilities/assistants/expoblending/blendingdlg/expoblendingdlg.cpp
+++ b/utilities/assistants/expoblending/blendingdlg/expoblendingdlg.cpp
@@ -71,7 +71,7 @@ extern "C"
 #include "dpreviewmanager.h"
 #include "dsavesettingswidget.h"
 #include "expoblendingmanager.h"
-#include "kiowrapper.h"
+#include "fileoperation.h"
 
 namespace Digikam
 {
@@ -458,42 +458,10 @@ void ExpoBlendingDlg::slotProcess()
 void ExpoBlendingDlg::saveItem(const QUrl& temp, const EnfuseSettings& settings)
 {
     QUrl newUrl = QUrl::fromLocalFile(temp.adjusted(QUrl::RemoveFilename).path() + \
                settings.targetFileName);
-    QFileInfo fi(newUrl.toLocalFile());
 
     if (d->saveSettingsBox->conflictRule() != DSaveSettingsWidget::OVERWRITE)
     {
-        if (fi.exists())
-        {
-            QPair<int, QString> resultAndDest =
-                    KIOWrapper::renameDlg(this,
-                                          i18n("A file named \"%1\" already exists. \
                Are you sure you want to overwrite it?", newUrl.fileName()),
-                                          temp,
-                                          newUrl);
-                    
-            int result   = resultAndDest.first;
-            QString dest = resultAndDest.second;
-
-            switch (result)
-            {
-                case KIOWrapper::Cancel:
-                case KIOWrapper::Skip:
-                {
-                    newUrl.clear();
-                    d->enfuseStack->setOnItem(settings.previewUrl, false);
-                    d->enfuseStack->processedItem(settings.previewUrl, false);
-
-                    break;
-                }
-                case KIOWrapper::Overwrite:
-                {
-                    // Nothing to do.
-                    break;
-                }
-                default:    // rename.
-                    newUrl = QUrl::fromLocalFile(dest);
-                    break;
-            }
-        }
+        newUrl = FileOperation::getUniqueFileUrl(newUrl);
     }
 
     qCDebug(DIGIKAM_GENERAL_LOG) << "Renaming " << temp << " to " << newUrl;
diff --git a/utilities/imageeditor/core/fileoperation.cpp \
b/utilities/imageeditor/core/fileoperation.cpp index 365e86b..18b2bc6 100644
--- a/utilities/imageeditor/core/fileoperation.cpp
+++ b/utilities/imageeditor/core/fileoperation.cpp
@@ -177,6 +177,44 @@ void FileOperation::openFilesWithDefaultApplication(const \
QList<QUrl>& urls, QWi  }
 }
 
+QUrl FileOperation::getUniqueFileUrl(const QUrl& orgUrl, bool* const newurl)
+{
+    QUrl destUrl(orgUrl);
+
+    if (newurl)
+        *newurl = false;
+
+    QFileInfo fi(destUrl.toLocalFile());
+
+    if (fi.exists())
+    {
+        int i          = 0;
+        bool fileFound = false;
+
+        do
+        {
+            QFileInfo nfi(destUrl.toLocalFile());
+
+            if (!nfi.exists())
+            {
+                fileFound = false;
+
+                if (newurl)
+                    *newurl = true;
+            }
+            else
+            {
+                destUrl = destUrl.adjusted(QUrl::RemoveFilename);
+                destUrl.setPath(destUrl.path() + fi.completeBaseName() + \
QString::fromUtf8("_%1.").arg(++i) + fi.completeSuffix()); +                fileFound \
= true; +            }
+        }
+        while (fileFound);
+    }
+
+    return destUrl;
+}
+
 KService::List FileOperation::servicesForOpenWith(const QList<QUrl>& urls)
 {
     // This code is inspired by KonqMenuActions:
diff --git a/utilities/imageeditor/core/fileoperation.h \
b/utilities/imageeditor/core/fileoperation.h index 6ef80a5..226653d 100644
--- a/utilities/imageeditor/core/fileoperation.h
+++ b/utilities/imageeditor/core/fileoperation.h
@@ -55,6 +55,10 @@ namespace FileOperation
      */
     DIGIKAM_EXPORT void openFilesWithDefaultApplication(const QList<QUrl>& urls, \
QWidget* const parentWidget);  
+    /** Get unique file url if file exist by appending a counter suffix or return \
original url. +     */
+    DIGIKAM_EXPORT QUrl getUniqueFileUrl(const QUrl& orgUrl, bool* const newurl = \
0); +
     /** Return list of service available on desktop to open files.
      */
     DIGIKAM_EXPORT KService::List servicesForOpenWith(const QList<QUrl>& urls);
diff --git a/utilities/importui/backend/cameracontroller.cpp \
b/utilities/importui/backend/cameracontroller.cpp index f219ce6..4a11b22 100644
--- a/utilities/importui/backend/cameracontroller.cpp
+++ b/utilities/importui/backend/cameracontroller.cpp
@@ -70,7 +70,7 @@ extern "C"
 #include "gpcamera.h"
 #include "umscamera.h"
 #include "jpegutils.h"
-#include "kiowrapper.h"
+#include "fileoperation.h"
 
 namespace Digikam
 {
@@ -823,96 +823,24 @@ void CameraController::slotCheckRename(const QString& folder, \
const QString& fil  const QString& script)
 {
     // this is the direct continuation of executeCommand, case \
                CameraCommand::cam_download
-    bool skip      = false;
-    bool cancel    = false;
-    bool overwrite = d->overwriteAll;
-    QString dest   = destination;
-
-    // Check if dest file already exist, unless we overwrite anyway
+    bool newurl  = false;
+    QString dest = FileOperation::getUniqueFileUrl(QUrl::fromLocalFile(destination), \
&newurl).toLocalFile();  
     QFileInfo info(dest);
 
-    if (!d->overwriteAll)
-    {
-
-        while (info.exists())
-        {
-            if (d->skipAll)
-            {
-                skip = true;
-                break;
-            }
-
-            QPair<int, QString> resultAndDest =
-                    KIOWrapper::renameDlg(d->parent,
-                                          i18nc("@title:window", "Rename File"),
-                                          QUrl::fromLocalFile(folder + \
                QLatin1String("/") + file),
-                                          QUrl::fromLocalFile(dest));
-
-            int result = resultAndDest.first;
-            dest       = resultAndDest.second;
-            info       = QFileInfo(dest);
-
-            switch (result)
-            {
-                case KIOWrapper::Cancel:
-                {
-                    cancel = true;
-                    break;
-                }
-
-                case KIOWrapper::Skip:
-                {
-                    skip = true;
-                    break;
-                }
-
-                case KIOWrapper::SkipAll:
-                {
-                    d->skipAll = true;
-                    skip       = true;
-                    break;
-                }
-
-                case KIOWrapper::Overwrite:
-                {
-                    overwrite = true;
-                    break;
-                }
-
-                case KIOWrapper::OverwriteAll:
-                {
-                    d->overwriteAll = true;
-                    overwrite       = true;
-                    break;
-                }
-
-                default:
-                    break;
-            }
-
-            if (cancel || skip || overwrite)
-            {
-                break;
-            }
-        }
-    }
-
-    if (cancel)
+    if (newurl)
     {
-        unlink(QFile::encodeName(temp).constData());
-        slotCancel();
-        emit signalSkipped(folder, file);
-        return;
+        sendLogMsg(xi18n("Rename file to <filename>%1</filename>", info.fileName()), \
DHistoryView::WarningEntry, folder, file);  }
-    else if (skip)
+/*
+    if (skip)
     {
         unlink(QFile::encodeName(temp).constData());
         sendLogMsg(xi18n("Skipped file <filename>%1</filename>", file), \
DHistoryView::WarningEntry, folder, file);  emit signalSkipped(folder, file);
         return;
     }
-
+*/
     // move the file to the destination file
     if (DMetadata::hasSidecar(temp))
     {
diff --git a/utilities/kdesupport/kio/kiowrapper.cpp \
b/utilities/kdesupport/kio/kiowrapper.cpp index 5f53171..52b5853 100644
--- a/utilities/kdesupport/kio/kiowrapper.cpp
+++ b/utilities/kdesupport/kio/kiowrapper.cpp
@@ -161,41 +161,6 @@ void KIOWrapper::slotGotPreview(const KFileItem& item, const \
QPixmap& pix)  emit gotPreview(item.url(), pix);
 }
 
-QPair<int, QString> KIOWrapper::renameDlg(QWidget* widget, const QString& caption, \
                const QUrl& src, const QUrl& dest)
-{
-    QPointer<KIO::RenameDialog> dlg = new KIO::RenameDialog(widget, caption,
-                                                            src, dest,
-                                                            \
                KIO::RenameDialog_Mode(KIO::M_MULTI |
-                                                            KIO::M_OVERWRITE |
-                                                            KIO::M_SKIP));
-    QPair<int, QString> pair;
-
-    switch (dlg->exec())
-    {
-        case KIO::Result_Cancel:
-            pair.first = Cancel;
-            break;
-        case KIO::Result_Skip:
-            pair.first = Skip;
-            break;
-        case KIO::Result_AutoSkip:
-            pair.first = SkipAll;
-            break;
-        case KIO::Result_Overwrite:
-            pair.first = Overwrite;
-            break;
-        default: // OverwriteAll
-            pair.first = OverwriteAll;
-            break;
-    }
-
-    pair.second = dlg->newDestUrl().toLocalFile();
-
-    delete dlg;
-
-    return pair;
-}
-
 bool KIOWrapper::run(const KService& service, const QList<QUrl>& urls, QWidget* \
const window)  {
 #if KIO_VERSION < QT_VERSION_CHECK(5,6,0)
diff --git a/utilities/kdesupport/kio/kiowrapper.h \
b/utilities/kdesupport/kio/kiowrapper.h index 8b6e3cf..c94bf4c 100644
--- a/utilities/kdesupport/kio/kiowrapper.h
+++ b/utilities/kdesupport/kio/kiowrapper.h
@@ -51,17 +51,6 @@ class DIGIKAM_EXPORT KIOWrapper : public QObject
 
 public:
 
-    enum RenameDlgResults
-    {
-        Cancel = 0,
-        Skip,
-        SkipAll,
-        Overwrite,
-        OverwriteAll
-    };
-
-public:
-
     KIOWrapper();
 
     void filePreview(const QList<QUrl>& urlList, const QSize& size, const \
QStringList* const enabledPlugins = 0); @@ -79,8 +68,6 @@ public:
 
     static QStringList previewJobAvailablePlugins();
 
-    static QPair<int, QString> renameDlg(QWidget* const widget, const QString& \
                caption, const QUrl& src, const QUrl& dest);
-
     static bool run(const KService& service, const QList<QUrl>& urls, QWidget* const \
                window);
     static bool run(const QString& exec, const QList<QUrl>& urls, QWidget* const \
window);  static bool run(const QUrl& url, QWidget* const window);
diff --git a/utilities/queuemanager/manager/task.cpp \
b/utilities/queuemanager/manager/task.cpp index 9be7245..c3f4f61 100644
--- a/utilities/queuemanager/manager/task.cpp
+++ b/utilities/queuemanager/manager/task.cpp
@@ -223,27 +223,7 @@ void Task::run()
     {
         if (d->settings.conflictRule != QueueSettings::OVERWRITE)
         {
-            int i          = 0;
-            bool fileFound = false;
-
-            do
-            {
-                QFileInfo nfi(dest.toLocalFile());
-
-                if (!nfi.exists())
-                {
-                    fileFound = false;
-                }
-                else
-                {
-                    i++;
-                    dest = dest.adjusted(QUrl::RemoveFilename);
-                    dest.setPath(dest.path() + fi.completeBaseName() + \
                QString::fromUtf8("_%1.").arg(i) + fi.completeSuffix());
-                    fileFound = true;
-                }
-            }
-            while (fileFound);
-
+            dest       = FileOperation::getUniqueFileUrl(dest);
             renameMess = i18n("(renamed to %1)", dest.fileName());
         }
         else


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

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