From 490d0209cbda1f79b81e9686d05c551a3893f9e7 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sun, 22 Nov 2015 11:24:19 +0100 Subject: [PATCH] Some optimization. --- src/miscellaneous/iofactory.cpp | 2 +- src/miscellaneous/iofactory.h | 2 +- .../standard/gui/formstandardimportexport.cpp | 24 ++++++------------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/miscellaneous/iofactory.cpp b/src/miscellaneous/iofactory.cpp index a10565eea..b9e952d03 100755 --- a/src/miscellaneous/iofactory.cpp +++ b/src/miscellaneous/iofactory.cpp @@ -92,7 +92,7 @@ QByteArray IOFactory::readTextFile(const QString &file_path) { } } -void IOFactory::writeTextFile(const QString &file_path, const QByteArray &data) { +void IOFactory::writeTextFile(const QString &file_path, const QByteArray &data, const QString &encoding) { QFile input_file(file_path); QTextStream stream(&input_file); diff --git a/src/miscellaneous/iofactory.h b/src/miscellaneous/iofactory.h index 3331b5b06..c80c6539b 100755 --- a/src/miscellaneous/iofactory.h +++ b/src/miscellaneous/iofactory.h @@ -52,7 +52,7 @@ class IOFactory { // Throws exception when no such file exists. static QByteArray readTextFile(const QString &file_path); - static void writeTextFile(const QString &file_path, const QByteArray &data); + static void writeTextFile(const QString &file_path, const QByteArray &data, const QString &encoding = "UTF-8"); // Copies file, overwrites destination. static bool copyFile(const QString &source, const QString &destination); diff --git a/src/services/standard/gui/formstandardimportexport.cpp b/src/services/standard/gui/formstandardimportexport.cpp index d8e4cf418..9c10ac444 100755 --- a/src/services/standard/gui/formstandardimportexport.cpp +++ b/src/services/standard/gui/formstandardimportexport.cpp @@ -24,6 +24,8 @@ #include "gui/feedmessageviewer.h" #include "gui/feedsview.h" #include "gui/dialogs/formmain.h" +#include "exceptions/ioexception.h" + #include #include @@ -208,23 +210,13 @@ void FormStandardImportExport::exportFeeds() { bool result_export = m_model->exportToOMPL20(result_data); if (result_export) { - // Save exported data. - QFile output_file(m_ui->m_lblSelectFile->label()->text()); + try { + IOFactory::writeTextFile(m_ui->m_lblSelectFile->label()->text(), result_data); - if (output_file.open(QIODevice::Unbuffered | QIODevice::Truncate | QIODevice::WriteOnly)) { - QTextStream stream(&output_file); - - stream.setCodec("UTF-8"); - stream << QString::fromUtf8(result_data); - output_file.flush(); - output_file.close(); - - m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, tr("Feeds were exported successfully."), - tr("Feeds were exported successfully.")); + m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, tr("Feeds were exported successfully."), tr("Feeds were exported successfully.")); } - else { - m_ui->m_lblResult->setStatus(WidgetWithStatus::Error, tr("Cannot write into destination file."), - tr("Cannot write into destination file.")); + catch (IOException &ex) { + m_ui->m_lblResult->setStatus(WidgetWithStatus::Error, tr("Cannot write into destination file."), ex.message()); } } else { @@ -241,8 +233,6 @@ void FormStandardImportExport::importFeeds() { QString output_message; if (m_serviceRoot->mergeImportExportModel(m_model, output_message)) { - // TODO: Hate this global access, what about signal? - qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->expandAll(); m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, output_message, output_message); } else {