[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegraphics/gwenview
From: Aurélien Gâteau <agateau () kde ! org>
Date: 2010-05-04 20:57:37
Message-ID: 20100504210151.888B6AC8B0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1122851 by gateau:
Added SaveJob::{old,new}Url() and export it in gwenviewlib
M +5 -6 app/gvcore.cpp
M +2 -1 lib/document/abstractdocumentimpl.h
M +4 -3 lib/document/document.cpp
M +20 -8 lib/document/savejob.cpp
M +6 -1 lib/document/savejob.h
--- trunk/KDE/kdegraphics/gwenview/app/gvcore.cpp #1122850:1122851
@@ -28,7 +28,6 @@
#include <QList>
#include <QProgressDialog>
#include <QStandardItemModel>
-#include <QtConcurrentMap>
#include <QToolButton>
#include <QWidget>
@@ -45,6 +44,7 @@
#include <lib/binder.h>
#include <lib/document/documentfactory.h>
#include <lib/document/documentjob.h>
+#include <lib/document/savejob.h>
#include <lib/gwenviewconfig.h>
#include <lib/historymodel.h>
#include <lib/messagebubble.h>
@@ -290,11 +290,10 @@
}
-void GvCore::slotSaveResult(KJob* job) {
- // FIXME: That code relies on Document::save() behavior: we need a public
- // SaveJob instead, with oldUrl() and newUrl() methods.
- KUrl oldUrl = job->property("oldUrl").value<KUrl>();
- KUrl newUrl = job->property("newUrl").value<KUrl>();
+void GvCore::slotSaveResult(KJob* _job) {
+ SaveJob* job = static_cast<SaveJob*>(_job);
+ KUrl oldUrl = job->oldUrl();
+ KUrl newUrl = job->newUrl();
if (job->error()) {
QString name = newUrl.fileName().isEmpty() ? newUrl.pathOrUrl() : \
newUrl.fileName();
--- trunk/KDE/kdegraphics/gwenview/lib/document/abstractdocumentimpl.h \
#1122850:1122851 @@ -69,6 +69,8 @@
virtual void stopAnimation() {}
+ Document* document() const;
+
Q_SIGNALS:
void imageRectUpdated(const QRect&);
void metaInfoLoaded();
@@ -78,7 +80,6 @@
void editorUpdated();
protected:
- Document* document() const;
void setDocumentImage(const QImage& image);
void setDocumentImageSize(const QSize& size);
void setDocumentKind(MimeTypeUtils::Kind);
--- trunk/KDE/kdegraphics/gwenview/lib/document/document.cpp #1122850:1122851
@@ -35,6 +35,7 @@
#include "emptydocumentimpl.h"
#include "imagemetainfomodel.h"
#include "loadingdocumentimpl.h"
+#include "savejob.h"
namespace Gwenview {
@@ -240,9 +241,9 @@
setErrorString(job->errorString());
} else {
d->mUndoStack.setClean();
- KUrl oldUrl = d->mUrl;
- d->mUrl = job->property("newUrl").value<KUrl>();
- saved(oldUrl, d->mUrl);
+ SaveJob* saveJob = static_cast<SaveJob*>(job);
+ d->mUrl = saveJob->newUrl();
+ saved(saveJob->oldUrl(), d->mUrl);
}
}
--- trunk/KDE/kdegraphics/gwenview/lib/document/savejob.cpp #1122850:1122851
@@ -44,7 +44,8 @@
struct SaveJobPrivate {
DocumentLoadedImpl* mImpl;
- KUrl mUrl;
+ KUrl mOldUrl;
+ KUrl mNewUrl;
QByteArray mFormat;
QScopedPointer<KTemporaryFile> mTemporaryFile;
QScopedPointer<KSaveFile> mSaveFile;
@@ -54,7 +55,8 @@
SaveJob::SaveJob(DocumentLoadedImpl* impl, const KUrl& url, const QByteArray& \
format) : d(new SaveJobPrivate) {
d->mImpl = impl;
- d->mUrl = url;
+ d->mOldUrl = impl->document()->url();
+ d->mNewUrl = url;
d->mFormat = format;
}
@@ -72,7 +74,7 @@
}
if (!d->mSaveFile->finalize()) {
- setErrorText(i18nc("@info", "Could not overwrite file, check that you have the \
necessary rights to write in <filename>%1</filename>.", d->mUrl.pathOrUrl())); \
+ setErrorText(i18nc("@info", "Could not overwrite file, check that you have the \
necessary rights to write in <filename>%1</filename>.", d->mNewUrl.pathOrUrl())); \
setError(UserDefinedError + 3); }
}
@@ -81,8 +83,8 @@
void SaveJob::doStart() {
QString fileName;
- if (d->mUrl.isLocalFile()) {
- fileName = d->mUrl.toLocalFile();
+ if (d->mNewUrl.isLocalFile()) {
+ fileName = d->mNewUrl.toLocalFile();
} else {
d->mTemporaryFile.reset(new KTemporaryFile);
d->mTemporaryFile->setAutoRemove(true);
@@ -93,7 +95,7 @@
d->mSaveFile.reset(new KSaveFile(fileName));
if (!d->mSaveFile->open()) {
- KUrl dirUrl = d->mUrl;
+ KUrl dirUrl = d->mNewUrl;
dirUrl.setFileName(QString());
setError(UserDefinedError + 1);
setErrorText(i18nc("@info", "Could not open file for writing, check that you have \
the necessary rights in <filename>%1</filename>.", dirUrl.pathOrUrl())); @@ -114,10 \
+116,10 @@ return;
}
- if (d->mUrl.isLocalFile()) {
+ if (d->mNewUrl.isLocalFile()) {
emitResult();
} else {
- KIO::Job* job = KIO::copy(KUrl::fromPath(d->mTemporaryFile->fileName()), d->mUrl);
+ KIO::Job* job = KIO::copy(KUrl::fromPath(d->mTemporaryFile->fileName()), \
d->mNewUrl); job->ui()->setWindow(KApplication::kApplication()->activeWindow());
addSubjob(job);
}
@@ -132,4 +134,14 @@
}
+KUrl SaveJob::oldUrl() const {
+ return d->mOldUrl;
+}
+
+
+KUrl SaveJob::newUrl() const {
+ return d->mNewUrl;
+}
+
+
} // namespace
--- trunk/KDE/kdegraphics/gwenview/lib/document/savejob.h #1122850:1122851
@@ -21,6 +21,8 @@
#ifndef SAVEJOB_H
#define SAVEJOB_H
+#include <lib/gwenviewlib_export.h>
+
// Qt
// KDE
@@ -36,13 +38,16 @@
class DocumentLoadedImpl;
class SaveJobPrivate;
-class SaveJob : public DocumentJob {
+class GWENVIEWLIB_EXPORT SaveJob : public DocumentJob {
Q_OBJECT
public:
SaveJob(DocumentLoadedImpl* impl, const KUrl& url, const QByteArray& format);
~SaveJob();
void saveInternal();
+ KUrl oldUrl() const;
+ KUrl newUrl() const;
+
protected Q_SLOTS:
virtual void doStart();
virtual void slotResult(KJob*);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic