[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [k3b/save-document-data] src: Fix open project issue.
From:       Leslie Zhai <xiangzhai83 () gmail ! com>
Date:       2016-08-23 6:51:04
Message-ID: E1bc5Y8-0002Vh-S6 () code ! kde ! org
[Download RAW message or body]

Git commit 7fe2bbecc5b5ff386332cc0a8efa3d05d7f8edeb by Leslie Zhai.
Committed on 23/08/2016 at 06:50.
Pushed by lesliezhai into branch 'save-document-data'.

Fix open project issue.

M  +9    -10   src/k3bprojectmanager.cpp

http://commits.kde.org/k3b/7fe2bbecc5b5ff386332cc0a8efa3d05d7f8edeb

diff --git a/src/k3bprojectmanager.cpp b/src/k3bprojectmanager.cpp
index a498d83..74b8569 100644
--- a/src/k3bprojectmanager.cpp
+++ b/src/k3bprojectmanager.cpp
@@ -451,15 +451,13 @@ K3b::Doc* K3b::ProjectManager::openProject( const QUrl& url )
     QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );
 
     QTemporaryFile tmpfile;
+    tmpfile.setAutoRemove(false);
     KIO::StoredTransferJob* transferJob = KIO::storedGet( url );
-    connect( transferJob, &KJob::result, [&](KJob*) {
-        if( transferJob->error() != KJob::NoError ) {
-            tmpfile.open();
-            tmpfile.write( transferJob->data() );
-            tmpfile.close();
-        }
-    } );
-    transferJob->exec();
+    if (!transferJob->exec())
+        return NULL;
+    tmpfile.open();
+    tmpfile.write(transferJob->data());
+    tmpfile.close();
 
     // ///////////////////////////////////////////////
     // first check if it's a store or an old plain xml file
@@ -467,7 +465,7 @@ K3b::Doc* K3b::ProjectManager::openProject( const QUrl& url )
     QDomDocument xmlDoc;
 
     // try opening a store
-    KoStore* store = KoStore::createStore( &tmpfile, KoStore::Read );
+    KoStore* store = KoStore::createStore( tmpfile.fileName(), KoStore::Read );
     if( store ) {
         if( !store->bad() ) {
             // try opening the document inside the store
@@ -486,6 +484,7 @@ K3b::Doc* K3b::ProjectManager::openProject( const QUrl& url )
 
     if( !success ) {
         // try reading an old plain document
+        tmpfile.remove();
         if ( tmpfile.open() ) {
             //
             // First check if this is really an xml file beacuse if this is a very big file
@@ -507,7 +506,7 @@ K3b::Doc* K3b::ProjectManager::openProject( const QUrl& url )
             }
             if( xmlDoc.setContent( &tmpfile ) )
                 success = true;
-            tmpfile.close();
+            tmpfile.remove();
         }
     }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic