[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