summaryrefslogtreecommitdiff
path: root/src/plugins/help
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-30 15:15:15 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-04-18 14:10:14 +0200
commit45c9cf7a1298feed925d18596c30ac9c6cd1dac5 (patch)
tree6f484122011b76a5f3a2f1915b7b308b1f5058ea /src/plugins/help
parentfae7dc9584b4e2f2192f8b7a71c428fcaa2ddb70 (diff)
downloadqt-creator-45c9cf7a1298feed925d18596c30ac9c6cd1dac5.tar.gz
add/unify i/o error handling
lots of use of Utils::FileSaver and Utils::FileReader Task-number: QTCREATORBUG-1619
Diffstat (limited to 'src/plugins/help')
-rw-r--r--src/plugins/help/generalsettingspage.cpp13
-rw-r--r--src/plugins/help/helpviewer.cpp26
2 files changed, 22 insertions, 17 deletions
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 222717a97e..668a86dae3 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -43,6 +43,8 @@
#include <coreplugin/helpmanager.h>
#include <coreplugin/icore.h>
+#include <utils/fileutils.h>
+
#include <QtCore/QCoreApplication>
#include <QtCore/QSettings>
#include <QtCore/QTextStream>
@@ -267,10 +269,15 @@ void GeneralSettingsPage::exportBookmarks()
if (!fileName.endsWith(suffix))
fileName.append(suffix);
- QFile file(fileName);
- if (file.open(QIODevice::WriteOnly)) {
+ Utils::FileSaver saver(fileName);
+ if (!saver.hasError()) {
XbelWriter writer(LocalHelpManager::bookmarkManager().treeBookmarkModel());
- writer.writeToFile(&file);
+ writer.writeToFile(saver.file());
+ saver.setResult(&writer);
+ }
+ if (!saver.finalize()) {
+ m_ui->errorLabel->setVisible(true);
+ m_ui->errorLabel->setText(saver.errorString());
}
}
diff --git a/src/plugins/help/helpviewer.cpp b/src/plugins/help/helpviewer.cpp
index 6877cb3d98..856c9080af 100644
--- a/src/plugins/help/helpviewer.cpp
+++ b/src/plugins/help/helpviewer.cpp
@@ -34,13 +34,18 @@
#include "helpconstants.h"
#include "localhelpmanager.h"
+#include <coreplugin/icore.h>
+
+#include <utils/fileutils.h>
+
#include <QtCore/QFileInfo>
#include <QtCore/QStringBuilder>
-#include <QtCore/QTemporaryFile>
+#include <QtCore/QDir>
#include <QtCore/QUrl>
#include <QtGui/QApplication>
#include <QtGui/QDesktopServices>
+#include <QtGui/QMainWindow>
#include <QtGui/QMouseEvent>
#include <QtHelp/QHelpEngine>
@@ -131,19 +136,12 @@ bool HelpViewer::launchWithExternalApp(const QUrl &url)
const QString& path = resolvedUrl.path();
if (!canOpenPage(path)) {
- QTemporaryFile tmpTmpFile;
- if (!tmpTmpFile.open())
- return false;
-
- const QString &extension = QFileInfo(path).completeSuffix();
- QFile actualTmpFile(tmpTmpFile.fileName() % QLatin1String(".")
- % extension);
- if (!actualTmpFile.open(QIODevice::ReadWrite | QIODevice::Truncate))
- return false;
-
- actualTmpFile.write(helpEngine.fileData(resolvedUrl));
- actualTmpFile.close();
- return QDesktopServices::openUrl(QUrl(actualTmpFile.fileName()));
+ Utils::TempFileSaver saver(QDir::tempPath()
+ + QLatin1String("/qtchelp_XXXXXX.") + QFileInfo(path).completeSuffix());
+ if (!saver.hasError())
+ saver.write(helpEngine.fileData(resolvedUrl));
+ if (saver.finalize(Core::ICore::instance()->mainWindow()))
+ return QDesktopServices::openUrl(QUrl(saver.fileName()));
}
}
return false;