forked from qt-creator/qt-creator
add/unify i/o error handling
lots of use of Utils::FileSaver and Utils::FileReader Task-number: QTCREATORBUG-1619
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user