summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-03-24 10:46:05 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-25 14:35:21 +0100
commit1f4a1b3618744c43a4e5dba792b93b08b5dcc36d (patch)
tree1e8a28cd5f851cd819c3963ca60a968c941c6e49
parent7beaf99c64cec1ce991c683c3f8ed71783eb9cfe (diff)
downloadqttools-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.cpp32
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()))