QObject* GCF::Components::HelpSystemComponent::fetchObject(const QString& completeName) const { QStringList comps = completeName.split('.'); GCF::Components::HelpSystemComponent* that = const_cast<GCF::Components::HelpSystemComponent*>(this); if(comps.last() == "controller") return that; if(comps.last() == "helpEngine") { if( !d->helpEngine ) { qDebug("Help Collection File is: %s", qPrintable(d->helpCollectionFile)); d->helpEngine = new QHelpEngine(d->helpCollectionFile, that); bool success = d->helpEngine->setupData(); if( !success ) qDebug("Could not initialize help engine"); d->contentModel = d->helpEngine->contentModel(); d->contentWidget = d->helpEngine->contentWidget(); d->indexModel = d->helpEngine->indexModel(); d->indexWidget = d->helpEngine->indexWidget(); d->helpSearchEngine = d->helpEngine->searchEngine(); d->helpSearchEngine->reindexDocumentation(); d->searchPanel = new QWidget; QVBoxLayout* layout = new QVBoxLayout(d->searchPanel); layout->setMargin(5); layout->addWidget( d->helpSearchEngine->queryWidget() ); layout->addWidget( d->helpSearchEngine->resultWidget() ); d->indexPanel = new QWidget; QLabel* lf = new QLabel("&Look For"); d->indexFilterLineEdit = new QLineEdit; lf->setBuddy(d->indexFilterLineEdit); d->indexFilterLineEdit->installEventFilter(that); layout = new QVBoxLayout(d->indexPanel); layout->setMargin(5); layout->addWidget(lf); layout->addWidget(d->indexFilterLineEdit); layout->addWidget(d->indexWidget); connect(d->indexWidget, SIGNAL(linkActivated(QUrl,QString)), d->helpView, SLOT(showHelp(QUrl))); connect(d->indexWidget, SIGNAL(linksActivated(QMap<QString, QUrl>,QString)), d->helpView, SLOT(showHelp(QMap<QString, QUrl>,QString))); connect(d->helpSearchEngine->resultWidget(), SIGNAL(requestShowLink(QUrl)), d->helpView, SLOT(showHelp(QUrl))); connect(d->helpSearchEngine->queryWidget(), SIGNAL(search()), this, SLOT(slotBeginSearch())); connect(d->indexFilterLineEdit, SIGNAL(textEdited(const QString&)), d->indexWidget, SLOT(filterIndices(const QString&))); connect(d->indexFilterLineEdit, SIGNAL(returnPressed()), d->indexWidget, SLOT(activateCurrentItem())); connect(d->contentWidget, SIGNAL(clicked(const QModelIndex&)), this,SLOT(slotContentItemClicked(const QModelIndex&))); } return d->helpEngine; }
void KSSearchLine::slotQueueSearch(const QString &criteria) { m_latestCriteria = criteria; m_searchQueue++; QTimer::singleShot(1000, this, SLOT(slotBeginSearch())); }