[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