forked from qt-creator/qt-creator
Lazy start the full text search indexer. Fix missing progress for more
the one run of the indexer. Reviewed-by: ck
This commit is contained in:
@@ -101,13 +101,14 @@ HelpPlugin::HelpPlugin()
|
|||||||
m_centralWidget(0),
|
m_centralWidget(0),
|
||||||
m_helpViewerForSideBar(0),
|
m_helpViewerForSideBar(0),
|
||||||
m_mode(0),
|
m_mode(0),
|
||||||
m_shownLastPages(false),
|
|
||||||
m_contentItem(0),
|
m_contentItem(0),
|
||||||
m_indexItem(0),
|
m_indexItem(0),
|
||||||
m_searchItem(0),
|
m_searchItem(0),
|
||||||
m_bookmarkItem(0),
|
m_bookmarkItem(0),
|
||||||
m_rightPaneSideBar(0),
|
m_rightPaneSideBar(0),
|
||||||
isInitialised(false)
|
m_progress(0),
|
||||||
|
isInitialised(false),
|
||||||
|
firstModeChange(true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -636,6 +637,11 @@ void HelpPlugin::extensionsInitialized()
|
|||||||
|
|
||||||
connect(m_helpEngine, SIGNAL(setupFinished()), this,
|
connect(m_helpEngine, SIGNAL(setupFinished()), this,
|
||||||
SLOT(updateFilterComboBox()));
|
SLOT(updateFilterComboBox()));
|
||||||
|
|
||||||
|
// explicit disconnect the full text search indexer, we connect and start
|
||||||
|
// it later once we really need it, e.g. the full text search is opened...
|
||||||
|
disconnect(m_helpEngine, SIGNAL(setupFinished()), m_helpEngine->searchEngine(),
|
||||||
|
SLOT(indexDocumentation()));
|
||||||
connect(m_helpEngine->searchEngine(), SIGNAL(indexingStarted()), this,
|
connect(m_helpEngine->searchEngine(), SIGNAL(indexingStarted()), this,
|
||||||
SLOT(indexingStarted()));
|
SLOT(indexingStarted()));
|
||||||
connect(m_helpEngine->searchEngine(), SIGNAL(indexingFinished()), this,
|
connect(m_helpEngine->searchEngine(), SIGNAL(indexingFinished()), this,
|
||||||
@@ -720,11 +726,16 @@ QString HelpPlugin::indexFilter() const
|
|||||||
|
|
||||||
void HelpPlugin::modeChanged(Core::IMode *mode)
|
void HelpPlugin::modeChanged(Core::IMode *mode)
|
||||||
{
|
{
|
||||||
if (mode == m_mode && !m_shownLastPages) {
|
if (mode == m_mode && firstModeChange) {
|
||||||
m_shownLastPages = true;
|
firstModeChange = false;
|
||||||
|
|
||||||
qApp->processEvents();
|
qApp->processEvents();
|
||||||
qApp->setOverrideCursor(Qt::WaitCursor);
|
qApp->setOverrideCursor(Qt::WaitCursor);
|
||||||
|
|
||||||
m_centralWidget->setLastShownPages();
|
m_centralWidget->setLastShownPages();
|
||||||
|
connect(m_helpEngine, SIGNAL(setupFinished()), m_helpEngine->searchEngine(),
|
||||||
|
SLOT(indexDocumentation()));
|
||||||
|
QMetaObject::invokeMethod(m_helpEngine, "setupFinished", Qt::QueuedConnection);
|
||||||
qApp->restoreOverrideCursor();
|
qApp->restoreOverrideCursor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -789,20 +800,25 @@ void HelpPlugin::updateViewerComboBoxIndex(int index)
|
|||||||
|
|
||||||
void HelpPlugin::indexingStarted()
|
void HelpPlugin::indexingStarted()
|
||||||
{
|
{
|
||||||
Core::ICore::instance()->progressManager() ->addTask(m_progress.future(),
|
Q_ASSERT(!m_progress);
|
||||||
|
m_progress = new QFutureInterface<void>();
|
||||||
|
Core::ICore::instance()->progressManager() ->addTask(m_progress->future(),
|
||||||
tr("Indexing"), QLatin1String("Help.Indexer"));
|
tr("Indexing"), QLatin1String("Help.Indexer"));
|
||||||
m_progress.setProgressRange(0, 2);
|
m_progress->setProgressRange(0, 2);
|
||||||
m_progress.setProgressValueAndText(1, tr("Indexing Documentation..."));
|
m_progress->setProgressValueAndText(1, tr("Indexing Documentation..."));
|
||||||
m_progress.reportStarted();
|
m_progress->reportStarted();
|
||||||
|
|
||||||
m_watcher.setFuture(m_progress.future());
|
m_watcher.setFuture(m_progress->future());
|
||||||
connect(&m_watcher, SIGNAL(canceled()), m_helpEngine->searchEngine(),
|
connect(&m_watcher, SIGNAL(canceled()), m_helpEngine->searchEngine(),
|
||||||
SLOT(cancelIndexing()));
|
SLOT(cancelIndexing()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HelpPlugin::indexingFinished()
|
void HelpPlugin::indexingFinished()
|
||||||
{
|
{
|
||||||
m_progress.reportFinished();
|
m_progress->reportFinished();
|
||||||
|
|
||||||
|
delete m_progress;
|
||||||
|
m_progress = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HelpViewer* HelpPlugin::viewerForContextMode()
|
HelpViewer* HelpPlugin::viewerForContextMode()
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ private:
|
|||||||
CentralWidget *m_centralWidget;
|
CentralWidget *m_centralWidget;
|
||||||
HelpViewer *m_helpViewerForSideBar;
|
HelpViewer *m_helpViewerForSideBar;
|
||||||
HelpMode *m_mode;
|
HelpMode *m_mode;
|
||||||
bool m_shownLastPages;
|
|
||||||
|
|
||||||
Core::SideBarItem *m_contentItem;
|
Core::SideBarItem *m_contentItem;
|
||||||
Core::SideBarItem *m_indexItem;
|
Core::SideBarItem *m_indexItem;
|
||||||
@@ -176,9 +175,10 @@ private:
|
|||||||
QStringList filesToRegister;
|
QStringList filesToRegister;
|
||||||
|
|
||||||
QFutureWatcher<void> m_watcher;
|
QFutureWatcher<void> m_watcher;
|
||||||
QFutureInterface<void> m_progress;
|
QFutureInterface<void> *m_progress;
|
||||||
|
|
||||||
bool isInitialised;
|
bool isInitialised;
|
||||||
|
bool firstModeChange;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user