[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