diff options
Diffstat (limited to 'src/plugins/macros/macro.cpp')
-rw-r--r-- | src/plugins/macros/macro.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/plugins/macros/macro.cpp b/src/plugins/macros/macro.cpp index 5c9f7996ce..81ddda5822 100644 --- a/src/plugins/macros/macro.cpp +++ b/src/plugins/macros/macro.cpp @@ -35,6 +35,8 @@ #include <coreplugin/coreconstants.h> +#include <utils/fileutils.h> + #include <QtCore/QFileInfo> #include <QtCore/QDataStream> @@ -101,10 +103,10 @@ Macro& Macro::operator=(const Macro &other) return *this; } -void Macro::load(QString fileName) +bool Macro::load(QString fileName) { if (d->events.count()) - return; // the macro is not empty + return true; // the macro is not empty // Take the current filename if the parameter is null if (fileName.isNull()) @@ -123,10 +125,12 @@ void Macro::load(QString fileName) macroEvent.load(stream); append(macroEvent); } + return true; } + return false; } -void Macro::loadHeader(const QString &fileName) +bool Macro::loadHeader(const QString &fileName) { d->fileName = fileName; QFile file(fileName); @@ -134,21 +138,27 @@ void Macro::loadHeader(const QString &fileName) QDataStream stream(&file); stream >> d->version; stream >> d->description; + return true; } + return false; } -void Macro::save(const QString &fileName) +bool Macro::save(const QString &fileName, QWidget *parent) { - QFile file(fileName); - if (file.open(QFile::WriteOnly)) { - QDataStream stream(&file); + Utils::FileSaver saver(fileName); + if (!saver.hasError()) { + QDataStream stream(saver.file()); stream << d->version; stream << d->description; foreach (const MacroEvent &event, d->events) { event.save(stream); } - d->fileName = fileName; + saver.setResult(&stream); } + if (!saver.finalize(parent)) + return false; + d->fileName = fileName; + return true; } QString Macro::displayName() const |