summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/coreplugin/helpmanager.cpp21
-rw-r--r--src/plugins/coreplugin/helpmanager.h3
2 files changed, 22 insertions, 2 deletions
diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp
index 6fbb3f0ac1..da2151a4d0 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 6346f9be2e..9d40102386 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;