QT_BEGIN_NAMESPACE IndexWindow::IndexWindow(QHelpEngine *helpEngine, QWidget *parent) : QWidget(parent) { m_helpEngine = helpEngine; QVBoxLayout *layout = new QVBoxLayout(this); QLabel *l = new QLabel(tr("&Look for:")); layout->addWidget(l); m_searchLineEdit = new QLineEdit(); l->setBuddy(m_searchLineEdit); connect(m_searchLineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(filterIndices(const QString&))); m_searchLineEdit->installEventFilter(this); layout->setMargin(4); layout->addWidget(m_searchLineEdit); m_indexWidget = m_helpEngine->indexWidget(); m_indexWidget->installEventFilter(this); connect(m_helpEngine->indexModel(), SIGNAL(indexCreationStarted()), this, SLOT(disableSearchLineEdit())); connect(m_helpEngine->indexModel(), SIGNAL(indexCreated()), this, SLOT(enableSearchLineEdit())); connect(m_indexWidget, SIGNAL(linkActivated(const QUrl&, const QString&)), this, SIGNAL(linkActivated(const QUrl&))); connect(m_indexWidget, SIGNAL(linksActivated(const QMap<QString, QUrl>&, const QString&)), this, SIGNAL(linksActivated(const QMap<QString, QUrl>&, const QString&))); connect(m_searchLineEdit, SIGNAL(returnPressed()), m_indexWidget, SLOT(activateCurrentItem())); layout->addWidget(m_indexWidget); }
QT_BEGIN_NAMESPACE IndexWindow::IndexWindow(QWidget *parent) : QWidget(parent) , m_searchLineEdit(new QLineEdit) , m_indexWidget(HelpEngineWrapper::instance().indexWidget()) { TRACE_OBJ QVBoxLayout *layout = new QVBoxLayout(this); QLabel *l = new QLabel(tr("&Look for:")); layout->addWidget(l); l->setBuddy(m_searchLineEdit); connect(m_searchLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterIndices(QString))); m_searchLineEdit->installEventFilter(this); layout->setMargin(4); layout->addWidget(m_searchLineEdit); HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); m_indexWidget->installEventFilter(this); connect(helpEngine.indexModel(), SIGNAL(indexCreationStarted()), this, SLOT(disableSearchLineEdit())); connect(helpEngine.indexModel(), SIGNAL(indexCreated()), this, SLOT(enableSearchLineEdit())); connect(m_indexWidget, SIGNAL(linkActivated(QUrl,QString)), this, SIGNAL(linkActivated(QUrl))); connect(m_indexWidget, SIGNAL(linksActivated(QMap<QString,QUrl>,QString)), this, SIGNAL(linksActivated(QMap<QString,QUrl>,QString))); connect(m_searchLineEdit, SIGNAL(returnPressed()), m_indexWidget, SLOT(activateCurrentItem())); layout->addWidget(m_indexWidget); m_indexWidget->viewport()->installEventFilter(this); }
void HelpIndexView::CreateQtPartControl(QWidget* parent) { if (m_IndexWidget == nullptr) { auto layout = new QVBoxLayout(parent); //QLabel *l = new QLabel(tr("&Look for:")); //layout->addWidget(l); m_SearchLineEdit = new ctkSearchBox(parent); m_SearchLineEdit->setClearIcon(QIcon(":/org.blueberry.ui.qt.help/clear.png")); m_SearchLineEdit->setPlaceholderText("Filter..."); m_SearchLineEdit->setContentsMargins(2,2,2,0); //l->setBuddy(m_SearchLineEdit); connect(m_SearchLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterIndices(QString))); m_SearchLineEdit->installEventFilter(this); layout->setMargin(0); layout->setSpacing(2); layout->addWidget(m_SearchLineEdit); QHelpEngineWrapper& helpEngine = HelpPluginActivator::getInstance()->getQHelpEngine(); m_IndexWidget = new HelpIndexWidget(); m_IndexWidget->setModel(helpEngine.indexModel()); connect(helpEngine.indexModel(), SIGNAL(indexCreationStarted()), this, SLOT(setIndexWidgetBusy())); connect(helpEngine.indexModel(), SIGNAL(indexCreated()), this, SLOT(unsetIndexWidgetBusy())); m_IndexWidget->installEventFilter(this); connect(helpEngine.indexModel(), SIGNAL(indexCreationStarted()), this, SLOT(disableSearchLineEdit())); connect(helpEngine.indexModel(), SIGNAL(indexCreated()), this, SLOT(enableSearchLineEdit())); connect(m_IndexWidget, SIGNAL(linkActivated(QUrl,QString)), this, SLOT(linkActivated(QUrl))); connect(m_IndexWidget, SIGNAL(linksActivated(QMap<QString,QUrl>,QString)), this, SLOT(linksActivated(QMap<QString,QUrl>,QString))); connect(m_SearchLineEdit, SIGNAL(returnPressed()), m_IndexWidget, SLOT(activateCurrentItem())); layout->addWidget(m_IndexWidget); m_IndexWidget->viewport()->installEventFilter(this); } }
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; }