diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-03-24 10:46:05 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-25 14:35:21 +0100 |
commit | 1f4a1b3618744c43a4e5dba792b93b08b5dcc36d (patch) | |
tree | 1e8a28cd5f851cd819c3963ca60a968c941c6e49 | |
parent | 7beaf99c64cec1ce991c683c3f8ed71783eb9cfe (diff) | |
download | qttools-1f4a1b3618744c43a4e5dba792b93b08b5dcc36d.tar.gz |
Populate Qt Assistant's TOC from documentation directory.
Task-number: QTBUG-37643
Change-Id: I8c17dc02e8d6c17c88dde24454f09dba76f32148
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
-rw-r--r-- | src/assistant/assistant/mainwindow.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp index ac32e3c2a..8ab353cec 100644 --- a/src/assistant/assistant/mainwindow.cpp +++ b/src/assistant/assistant/mainwindow.cpp @@ -67,6 +67,9 @@ #include <QtCore/QTextStream> #include <QtCore/QTimer> #include <QtCore/QBuffer> +#include <QtCore/QLibraryInfo> +#include <QtCore/QFileInfo> +#include <QtCore/QDir> #include <QtWidgets/QAction> #include <QtWidgets/QComboBox> @@ -95,6 +98,8 @@ QT_BEGIN_NAMESPACE +enum { warnAboutMissingModules = 0 }; + MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) : QMainWindow(parent) , m_bookmarkWidget(0) @@ -427,17 +432,38 @@ static const char *docs[] = { "qtwinextras" }; +static QStringList newQtDocumentation() +{ + QStringList result; + const QDir docDirectory(QLibraryInfo::location(QLibraryInfo::DocumentationPath)); + const QFileInfoList entries = docDirectory.entryInfoList(QStringList(QStringLiteral("*.qch")), + QDir::Files, QDir::Name); + if (!entries.isEmpty()) { + result.reserve(entries.size()); + foreach (const QFileInfo &fi, entries) + result.append(fi.baseName()); + return result; + } + if (warnAboutMissingModules) + qWarning() << "No documentation found in " << QDir::toNativeSeparators(docDirectory.absolutePath()); + const int docCount = int(sizeof(docs) / sizeof(docs[0])); + result.reserve(docCount); + for (int d = 0; d < docCount; ++d) + result.append(QLatin1String(docs[d])); + return result; +} + void MainWindow::lookForNewQtDocumentation() { - enum { warnAboutMissingModules = 0 }; TRACE_OBJ HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); - const int docCount = int(sizeof(docs) / sizeof(docs[0])); + const QStringList docs = newQtDocumentation(); + const int docCount = docs.size(); QList<QtDocInstaller::DocInfo> qtDocInfos; qtDocInfos.reserve(docCount); for (int d = 0; d < docCount; ++d) { - const QString doc = QLatin1String(docs[d]); + const QString &doc = docs.at(d); const QtDocInstaller::DocInfo docInfo(doc, helpEngine.qtDocInfo(doc)); qtDocInfos.append(docInfo); if (warnAboutMissingModules && (docInfo.second.isEmpty() || docInfo.second.first().isEmpty())) |