From: Friedemann Kleint Date: Mon, 24 Mar 2014 09:46:05 +0000 (+0100) Subject: Populate Qt Assistant's TOC from documentation directory. X-Git-Tag: upstream/5.2.95+rc1~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1f4a1b3618744c43a4e5dba792b93b08b5dcc36d;p=platform%2Fupstream%2Fqttools.git Populate Qt Assistant's TOC from documentation directory. Task-number: QTBUG-37643 Change-Id: I8c17dc02e8d6c17c88dde24454f09dba76f32148 Reviewed-by: Jerome Pasion Reviewed-by: Topi Reiniƶ Reviewed-by: Karsten Heimrich --- diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp index ac32e3c..8ab353c 100644 --- a/src/assistant/assistant/mainwindow.cpp +++ b/src/assistant/assistant/mainwindow.cpp @@ -67,6 +67,9 @@ #include #include #include +#include +#include +#include #include #include @@ -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 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()))