forked from qt-creator/qt-creator
Help: Unify help content loading and error message.
Task-number: QTCREATORBUG-12352 Change-Id: If74453e75cc8eaf27c114d0976099388be778fa6 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
|
||||
#include "bookmarkmanager.h"
|
||||
#include "helpconstants.h"
|
||||
#include "helpviewer.h"
|
||||
|
||||
#include <app/app_version.h>
|
||||
#include <coreplugin/helpmanager.h>
|
||||
@@ -55,6 +56,7 @@ LocalHelpManager::LocalHelpManager(QObject *parent)
|
||||
, m_needsCollectionFile(true)
|
||||
{
|
||||
m_instance = this;
|
||||
qRegisterMetaType<Help::Internal::LocalHelpManager::HelpData>("Help::Internal::LocalHelpManager::HelpData");
|
||||
}
|
||||
|
||||
LocalHelpManager::~LocalHelpManager()
|
||||
@@ -143,10 +145,85 @@ bool LocalHelpManager::isValidUrl(const QString &link)
|
||||
|| scheme == QLatin1String("https"));
|
||||
}
|
||||
|
||||
QByteArray LocalHelpManager::helpData(const QUrl &url)
|
||||
QByteArray LocalHelpManager::loadErrorMessage(const QUrl &url, const QString &errorString)
|
||||
{
|
||||
const char g_htmlPage[] =
|
||||
"<html>"
|
||||
"<head>"
|
||||
"<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">"
|
||||
"<title>%1</title>"
|
||||
"<style>"
|
||||
"body {padding: 3em 0em; background: #eeeeee;}"
|
||||
"hr {color: lightgray; width: 100%;}"
|
||||
"img {float: left; opacity: .8;}"
|
||||
"#box {background: white; border: 1px solid lightgray; width: 600px; padding: 60px; margin: auto;}"
|
||||
"h1 {font-size: 130%; font-weight: bold; border-bottom: 1px solid lightgray; margin-left: 48px;}"
|
||||
"h2 {font-size: 100%; font-weight: normal; border-bottom: 1px solid lightgray; margin-left: 48px;}"
|
||||
"p {font-size: 90%; margin-left: 48px;}"
|
||||
"</style>"
|
||||
"</head>"
|
||||
"<body>"
|
||||
"<div id=\"box\">"
|
||||
"<img "
|
||||
"src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACA"
|
||||
"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\""
|
||||
"width=\"32\" height=\"32\"/>"
|
||||
"<h1>%2</h1>"
|
||||
"<h2>%3</h2>"
|
||||
"%4"
|
||||
"</div>"
|
||||
"</body>"
|
||||
"</html>";
|
||||
|
||||
// some of the values we will replace %1...6 inside the former html
|
||||
const QString g_percent1 = QCoreApplication::translate("Help", "Error loading page");
|
||||
// percent2 will be the error details
|
||||
// percent3 will be the url of the page we got the error from
|
||||
const QString g_percent4 = QCoreApplication::translate("Help", "<p>Check that you have the corresponding "
|
||||
"documentation set installed.</p>");
|
||||
|
||||
return QString::fromLatin1(g_htmlPage).arg(g_percent1, errorString,
|
||||
QCoreApplication::translate("Help", "Error loading: %1").arg(url.toString()),
|
||||
g_percent4).toUtf8();
|
||||
}
|
||||
|
||||
LocalHelpManager::HelpData LocalHelpManager::helpData(const QUrl &url)
|
||||
{
|
||||
HelpData data;
|
||||
const QHelpEngineCore &engine = helpEngine();
|
||||
|
||||
return engine.findFile(url).isValid() ? engine.fileData(url)
|
||||
: tr("Could not load \"%1\".").arg(url.toString()).toUtf8();
|
||||
data.resolvedUrl = engine.findFile(url);
|
||||
if (data.resolvedUrl.isValid()) {
|
||||
data.data = engine.fileData(data.resolvedUrl);
|
||||
data.mimeType = HelpViewer::mimeFromUrl(data.resolvedUrl);
|
||||
if (data.mimeType.isEmpty())
|
||||
data.mimeType = QLatin1String("application/octet-stream");
|
||||
} else {
|
||||
data.data = loadErrorMessage(url, QCoreApplication::translate(
|
||||
"Help", "The page could not be found"));
|
||||
data.mimeType = QLatin1String("text/html");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user