Salome HOME
Small optimization of compressing
authorvsv <vsv@opencascade.com>
Mon, 22 Oct 2018 14:04:25 +0000 (17:04 +0300)
committervsv <vsv@opencascade.com>
Mon, 22 Oct 2018 14:04:25 +0000 (17:04 +0300)
src/XGUI/XGUI_CompressFiles.cpp
src/XGUI/XGUI_Workshop.cpp

index 49682b461688375751833a7be76cdd72a9e59404..ebcddc95fe72297637e37d2dc18f53ccf934c182 100644 (file)
@@ -38,14 +38,13 @@ bool XGUI_CompressFiles::compress(const QString& theFile, std::list<std::string>
     for (aIt = theFiles.cbegin(); aIt != theFiles.cend(); ++aIt) {
       QString aPathName((*aIt).c_str());
       QFile aSrcFile(aPathName);
+      QFileInfo aInfo(aSrcFile);
+      quint64 aSize = aInfo.size();
       if (aSrcFile.open(QIODevice::ReadOnly)) {
-        QFileInfo aInfo(aSrcFile);
-        quint64 aSize = aInfo.size();
         QString aName =
           aPathName.right(aPathName.length() - aPathName.lastIndexOf(QDir::separator()) - 1);
 
-        aOutStream << aName << aSize;
-        aOutStream << qCompress(aSrcFile.readAll());
+        aOutStream << aName << aSize << qCompress(aSrcFile.readAll());
         aSrcFile.close();
       }
       else {
index 735d8d51668d0c51c51c9f3ed014bda90c35b13f..a9e69145c5dc764b6888f27c856da3c7d93c527c 100755 (executable)
@@ -947,7 +947,8 @@ void XGUI_Workshop::openFile(const QString& theDirectory)
   aSession->closeAll();
 
   clearTemporaryDir();
-  XGUI_CompressFiles::uncompress(myCurrentFile, myTmpDir.path());
+  if (!XGUI_CompressFiles::uncompress(myCurrentFile, myTmpDir.path()))
+    return;
 
   aSession->load(myTmpDir.path().toLatin1().constData());
   myObjectBrowser->rebuildDataTree();
@@ -1065,7 +1066,8 @@ bool XGUI_Workshop::onSave()
 
   std::list<std::string> aFiles;
   saveDocument(myTmpDir.path(), aFiles);
-  XGUI_CompressFiles::compress(myCurrentFile, aFiles);
+  if (!XGUI_CompressFiles::compress(myCurrentFile, aFiles))
+    return false;
 
   updateCommandStatus();
 #ifndef HAVE_SALOME