From 30a0379feea53e19e2ec8500b646003b632223a5 Mon Sep 17 00:00:00 2001 From: kh1 <qt-info@nokia.com> Date: Fri, 30 Jul 2010 13:48:24 +0200 Subject: [PATCH] Reregister a help file if creation time is newer. Reviewed-by: ck --- src/plugins/coreplugin/helpmanager.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp index 02bd88acffd..587a094c238 100644 --- a/src/plugins/coreplugin/helpmanager.cpp +++ b/src/plugins/coreplugin/helpmanager.cpp @@ -31,6 +31,7 @@ #include "icore.h" +#include <QtCore/QDateTime> #include <QtCore/QDebug> #include <QtCore/QDir> #include <QtCore/QFileInfo> @@ -119,6 +120,18 @@ void HelpManager::registerDocumentation(const QStringList &files) qWarning() << "Error registering namespace '" << nameSpace << "' from file '" << file << "':" << m_helpEngine->error(); } + } else { + const QLatin1String key("CreationDate"); + const QString &newDate = m_helpEngine->metaData(file, key).toString(); + const QString &oldDate = m_helpEngine->metaData( + m_helpEngine->documentationFileName(nameSpace), key).toString(); + if (QDateTime::fromString(newDate, Qt::ISODate) + > QDateTime::fromString(oldDate, Qt::ISODate)) { + if (m_helpEngine->unregisterDocumentation(nameSpace)) { + docsChanged = true; + m_helpEngine->registerDocumentation(file); + } + } } } if (docsChanged) @@ -313,16 +326,11 @@ void HelpManager::setupHelpManager() void HelpManager::verifyDocumenation() { - QStringList nameSpacesToUnregister; const QStringList ®isteredDocs = m_helpEngine->registeredDocumentations(); foreach (const QString &nameSpace, registeredDocs) { - const QString &file = m_helpEngine->documentationFileName(nameSpace); - if (!QFileInfo(file).exists()) - nameSpacesToUnregister.append(nameSpace); + if (!QFileInfo(m_helpEngine->documentationFileName(nameSpace)).exists()) + m_nameSpacesToUnregister.append(nameSpace); } - - if (!nameSpacesToUnregister.isEmpty()) - unregisterDocumentation(nameSpacesToUnregister); } } // Core -- GitLab