[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeutils/okteta/libs/kasten/core/io/filesystem
From: Friedrich W. H. Kossebau <kossebau () kde ! org>
Date: 2009-10-31 0:27:39
Message-ID: 1256948859.166313.11213.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1042893 by kossebau:
changed: make filesystemexportjob not just pass workFilePath to subclasses, but a \
QFile
M +2 -2 abstractfilesystemexportjob.cpp
M +2 -1 abstractfilesystemexportjob.h
M +35 -2 abstractfilesystemexportjob_p.cpp
M +4 -34 abstractfilesystemexportjob_p.h
M +1 -10 modelencoderfilesystemexportjob_p.cpp
--- trunk/KDE/kdeutils/okteta/libs/kasten/core/io/filesystem/abstractfilesystemexportjob.cpp \
#1042892:1042893 @@ -51,11 +51,11 @@
return d->selection();
}
-QString AbstractFileSystemExportJob::workFilePath() const
+QFile* AbstractFileSystemExportJob::file() const
{
Q_D( const AbstractFileSystemExportJob );
- return d->workFilePath();
+ return d->file();
}
QWidget* AbstractFileSystemExportJob::widget() const
{
--- trunk/KDE/kdeutils/okteta/libs/kasten/core/io/filesystem/abstractfilesystemexportjob.h \
#1042892:1042893 @@ -27,6 +27,7 @@
#include <abstractexportjob.h>
class KUrl;
+class QFile;
namespace Kasten
@@ -63,7 +64,7 @@
protected:
AbstractModel* model() const;
const AbstractModelSelection* selection() const;
- QString workFilePath() const;
+ QFile* file() const;
QWidget* widget() const;
protected:
--- trunk/KDE/kdeutils/okteta/libs/kasten/core/io/filesystem/abstractfilesystemexportjob_p.cpp \
#1042892:1042893 @@ -25,11 +25,44 @@
// KDE
#include <KIO/NetAccess>
#include <KLocale>
+#include <KTemporaryFile>
namespace Kasten
{
+void AbstractFileSystemExportJobPrivate::exportToFile()
+{
+ Q_Q( AbstractFileSystemExportJob );
+
+ bool isWorkFileOk;
+ if( mUrl.isLocalFile() )
+ {
+ mWorkFilePath = mUrl.path();
+ mFile = new QFile( mWorkFilePath );
+ isWorkFileOk = mFile->open( QIODevice::WriteOnly );
+ }
+ else
+ {
+ KTemporaryFile* temporaryFile = new KTemporaryFile;
+ isWorkFileOk = temporaryFile->open();
+
+ mWorkFilePath = temporaryFile->fileName();
+ mFile = temporaryFile;
+ }
+
+ if( isWorkFileOk )
+ q->startExportToFile();
+ else
+ {
+ q->setError( KJob::KilledJobError );
+ q->setErrorText( mFile ? mFile->errorString() : \
KIO::NetAccess::lastErrorString() ); + delete mFile;
+
+ q->completeExport( false );
+ }
+}
+
void AbstractFileSystemExportJobPrivate::completeExport( bool success )
{
Q_Q( AbstractFileSystemExportJob );
@@ -49,10 +82,10 @@
else
{
q->setError( KJob::KilledJobError );
- q->setErrorText( i18nc("@info","Problem while saving to local filesystem.") \
); + q->setErrorText( mFile->errorString() );
}
- removeWorkFile();
+ delete mFile;
q->emitResult();
}
--- trunk/KDE/kdeutils/okteta/libs/kasten/core/io/filesystem/abstractfilesystemexportjob_p.h \
#1042892:1042893 @@ -28,7 +28,6 @@
#include <abstractexportjob_p.h>
// KDE
#include <KUrl>
-#include <KTemporaryFile>
// Qt
#include <QtCore/QTimer>
@@ -53,13 +52,9 @@
public:
AbstractModel* model() const;
const AbstractModelSelection* selection() const;
- const QString& workFilePath() const;
+ QFile* file() const;
QWidget* widget() const;
- public:
- void prepareWorkFile();
- void removeWorkFile();
-
public: // slot
void exportToFile();
@@ -70,7 +65,7 @@
AbstractModel* const mModel;
const AbstractModelSelection* const mSelection;
const KUrl mUrl;
- KTemporaryFile* mTemporaryFile;
+ QFile* mFile;
QString mWorkFilePath;
QWidget* mWidget;
};
@@ -83,7 +78,7 @@
mModel( model ),
mSelection( selection ),
mUrl( url ),
- mTemporaryFile( 0 ),
+ mFile( 0 ),
mWidget( 0 )
{}
@@ -91,7 +86,7 @@
inline AbstractModel* AbstractFileSystemExportJobPrivate::model() \
const { return mModel; } inline const AbstractModelSelection* \
AbstractFileSystemExportJobPrivate::selection() const { return \
mSelection; }
-inline const QString& AbstractFileSystemExportJobPrivate::workFilePath() \
const { return mWorkFilePath; } +inline QFile* \
AbstractFileSystemExportJobPrivate::file() const { return \
mFile; } inline QWidget* AbstractFileSystemExportJobPrivate::widget() \
const { return mWidget; }
@@ -102,31 +97,6 @@
QTimer::singleShot( 0, q, SLOT(exportToFile()) );
}
-inline void AbstractFileSystemExportJobPrivate::exportToFile()
-{
- Q_Q( AbstractFileSystemExportJob );
-
- prepareWorkFile();
-
- q->startExportToFile();
}
-inline void AbstractFileSystemExportJobPrivate::prepareWorkFile()
-{
- if( mUrl.isLocalFile() )
- mWorkFilePath = mUrl.path();
- else
- {
- mTemporaryFile = new KTemporaryFile;
- mTemporaryFile->open();
- mWorkFilePath = mTemporaryFile->fileName();
- }
-}
-inline void AbstractFileSystemExportJobPrivate::removeWorkFile()
-{
- delete mTemporaryFile;
-}
-
-}
-
#endif
--- trunk/KDE/kdeutils/okteta/libs/kasten/core/io/filesystem/modelencoderfilesystemexportjob_p.cpp \
#1042892:1042893 @@ -36,17 +36,8 @@
{
Q_Q( ModelEncoderFileSystemExportJob );
- startExportToFile();
-
- QFile file( workFilePath() );
- if( ! file.open(QIODevice::WriteOnly) )
- {
- q->completeExport( false );
- return;
- }
-
ModelStreamEncodeThread* exportThread =
- new ModelStreamEncodeThread( q, &file, model(), selection(), mEncoder );
+ new ModelStreamEncodeThread( q, file(), model(), selection(), mEncoder );
exportThread->start();
while( ! exportThread->wait(100) )
QApplication::processEvents( QEventLoop::ExcludeUserInputEvents | \
QEventLoop::ExcludeSocketNotifiers, 100 );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic