Author: jghali
Date: Tue Sep  4 23:16:09 2018
New Revision: 22667

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22667
Log:
refactor util_file.cpp's getVectorFileFromData()

Modified:
    trunk/Scribus/scribus/util_file.cpp

Modified: trunk/Scribus/scribus/util_file.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22667&path=/trunk/Scribus/scribus/util_file.cpp
==============================================================================
--- trunk/Scribus/scribus/util_file.cpp (original)
+++ trunk/Scribus/scribus/util_file.cpp Tue Sep  4 23:16:09 2018
@@ -20,6 +20,7 @@
 #include <QFileInfo>
 #include <QString>
 #include <QProcess>
+#include <QScopedPointer>
 #include <QTemporaryFile>
 
 #include "fileloader.h"
@@ -241,43 +242,46 @@
 PageItem*  getVectorFileFromData(ScribusDoc *doc, QByteArray &data, const 
QString& ext, double x, double y, double w, double h)
 {
        PageItem* retObj = nullptr;
-       QTemporaryFile *tempFile = new QTemporaryFile(QDir::tempPath() + 
"/scribus_temp_XXXXXX." + ext);
-       if (tempFile->open())
-       {
-               QString fileName = getLongPathName(tempFile->fileName());
-               if (!fileName.isEmpty())
-               {
-                       tempFile->write(data);
-                       tempFile->close();
-                       FileLoader *fileLoader = new FileLoader(fileName);
-                       int testResult = fileLoader->testFile();
-                       delete fileLoader;
-                       if (testResult != -1)
-                       {
-                               const FileFormat * fmt = 
LoadSavePlugin::getFormatById(testResult);
-                               if (fmt)
-                               {
-                                       doc->m_Selection->clear();
-                                       doc->m_Selection->delaySignalsOn();
-                                       fmt->setupTargets(doc, nullptr, 
nullptr, nullptr, &(PrefsManager::instance()->appPrefs.fontPrefs.AvailFonts));
-                                       fmt->loadFile(fileName, 
LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted);
-                                       if (!doc->m_Selection->isEmpty())
-                                       {
-                                               retObj = 
doc->groupObjectsSelection();
-                                               
retObj->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
-                                               retObj->setXYPos(x, y, true);
-                                               if ((w >= 0) && (h >= 0))
-                                                       
retObj->setWidthHeight(w, h, true);
-                                               retObj->updateClip();
-                                               retObj->update();
-                                       }
-                                       doc->m_Selection->clear();
-                                       doc->m_Selection->delaySignalsOff();
-                               }
-                       }
-               }
-       }
-       delete tempFile;
+
+       QScopedPointer<QTemporaryFile> tempFile(new 
QTemporaryFile(QDir::tempPath() + "/scribus_temp_XXXXXX." + ext));
+       if (!tempFile->open())
+               return nullptr;
+
+       QString fileName = getLongPathName(tempFile->fileName());
+       if (fileName.isEmpty())
+               return nullptr;
+
+       tempFile->write(data);
+       tempFile->close();
+
+       FileLoader *fileLoader = new FileLoader(fileName);
+       int testResult = fileLoader->testFile();
+       delete fileLoader;
+
+       if (testResult == -1)
+               return nullptr;
+
+       const FileFormat * fmt = LoadSavePlugin::getFormatById(testResult);
+       if (!fmt)
+               return nullptr;
+
+       doc->m_Selection->clear();
+       doc->m_Selection->delaySignalsOn();
+       fmt->setupTargets(doc, nullptr, nullptr, nullptr, 
&(PrefsManager::instance()->appPrefs.fontPrefs.AvailFonts));
+       fmt->loadFile(fileName, 
LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted);
+       if (!doc->m_Selection->isEmpty())
+       {
+               retObj = doc->groupObjectsSelection();
+               retObj->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
+               retObj->setXYPos(x, y, true);
+               if ((w >= 0) && (h >= 0))
+                       retObj->setWidthHeight(w, h, true);
+               retObj->updateClip();
+               retObj->update();
+       }
+       doc->m_Selection->clear();
+       doc->m_Selection->delaySignalsOff();
+
        return retObj;
 }
 


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to