From be357c4736ad70b6d5c8907931ef08c55320f0dc Mon Sep 17 00:00:00 2001 From: kh1 <qt-info@nokia.com> Date: Fri, 10 Sep 2010 14:09:08 +0200 Subject: [PATCH] Monitor the collection file for doc updates during sdk update. Reviewed-by: ck --- src/plugins/coreplugin/helpmanager.cpp | 21 +++++++++++++++++++-- src/plugins/coreplugin/helpmanager.h | 3 +++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp index 6fbb3f0ac16..da2151a4d09 100644 --- a/src/plugins/coreplugin/helpmanager.cpp +++ b/src/plugins/coreplugin/helpmanager.cpp @@ -35,6 +35,7 @@ #include <QtCore/QDebug> #include <QtCore/QDir> #include <QtCore/QFileInfo> +#include <QtCore/QFileSystemWatcher> #include <QtCore/QStringList> #include <QtHelp/QHelpEngineCore> @@ -94,7 +95,8 @@ HelpManager* HelpManager::instance() QString HelpManager::collectionFilePath() { - return QDir::cleanPath(Core::ICore::instance()->userResourcePath() + QLatin1String("/helpcollection.qhc")); + return QDir::cleanPath(Core::ICore::instance()->userResourcePath() + + QLatin1String("/helpcollection.qhc")); } void HelpManager::registerDocumentation(const QStringList &files) @@ -392,7 +394,7 @@ void HelpManager::setupHelpManager() // this might come from the installer const QLatin1String key("AddedDocs"); - const QString &addedDocs = m_helpEngine->customValue(key).toString(); + const QString addedDocs = m_helpEngine->customValue(key).toString(); if (!addedDocs.isEmpty()) { m_helpEngine->removeCustomValue(key); m_filesToRegister += addedDocs.split(QLatin1Char(';')); @@ -407,9 +409,24 @@ void HelpManager::setupHelpManager() for (it = m_customValues.constBegin(); it != m_customValues.constEnd(); ++it) setCustomValue(it.key(), it.value()); + m_collectionWatcher = new QFileSystemWatcher(QStringList() << collectionFilePath(), + this); + connect(m_collectionWatcher, SIGNAL(fileChanged(QString)), this, + SLOT(collectionFileModified())); + emit setupFinished(); } +void HelpManager::collectionFileModified() +{ + const QLatin1String key("AddedDocs"); + const QString addedDocs = m_helpEngine->customValue(key).toString(); + if (!addedDocs.isEmpty()) { + m_helpEngine->removeCustomValue(key); + registerDocumentation(addedDocs.split(QLatin1Char(';'))); + } +} + // -- private void HelpManager::verifyDocumenation() diff --git a/src/plugins/coreplugin/helpmanager.h b/src/plugins/coreplugin/helpmanager.h index 6346f9be2e1..9d40102386c 100644 --- a/src/plugins/coreplugin/helpmanager.h +++ b/src/plugins/coreplugin/helpmanager.h @@ -41,6 +41,7 @@ #include <QtCore/QVariant> #include <QtCore/QByteArray> +QT_FORWARD_DECLARE_CLASS(QFileSystemWatcher) QT_FORWARD_DECLARE_CLASS(QHelpEngineCore) QT_FORWARD_DECLARE_CLASS(QSqlQuery) @@ -93,6 +94,7 @@ signals: private slots: void setupHelpManager(); + void collectionFileModified(); private: void verifyDocumenation(); @@ -100,6 +102,7 @@ private: private: bool m_needsSetup; QHelpEngineCore *m_helpEngine; + QFileSystemWatcher *m_collectionWatcher; QStringList m_filesToRegister; QStringList m_nameSpacesToUnregister; -- GitLab