HelpWindow::HelpWindow(QWidget *parent) : QDockWidget (parent) { setMinimumWidth (MIN_WIDTH); setMinimumHeight (MIN_HEIGHT); QHelpEngine *helpEngine = new QHelpEngine (helpPath()); helpEngine->setupData(); QTabWidget *tabs = new QTabWidget; tabs->addTab (helpEngine->contentWidget(), tr ("Contents")); tabs->addTab (helpEngine->indexWidget(), tr ("Index")); HelpBrowser *browser = new HelpBrowser (helpEngine); // URL is constructed from <namespace>, <virtualFolder> and <file> in engauge.qhp browser->setSource (QUrl ("qthelp://engaugedigitizer.net/doc/index.html")); connect (helpEngine->contentWidget (), SIGNAL (linkActivated (QUrl)), browser, SLOT (setSource (QUrl))); connect (helpEngine->indexWidget (), SIGNAL (linkActivated (QUrl, QString)), browser, SLOT (setSource (QUrl))); QSplitter *splitter = new QSplitter (Qt::Horizontal); splitter->insertWidget (0, tabs); splitter->insertWidget (1, browser); setWidget (splitter); }
IndexWindow::IndexWindow() : m_searchLineEdit(0) , m_indexWidget(0) { QVBoxLayout *layout = new QVBoxLayout(this); m_searchLineEdit = new Utils::FilterLineEdit(); m_searchLineEdit->setPlaceholderText(QString()); setFocusProxy(m_searchLineEdit); connect(m_searchLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterIndices(QString))); m_searchLineEdit->installEventFilter(this); QLabel *l = new QLabel(tr("&Look for:")); l->setBuddy(m_searchLineEdit); layout->addWidget(l); layout->setMargin(0); layout->setSpacing(0); Utils::StyledBar *toolbar = new Utils::StyledBar(this); toolbar->setSingleRow(false); QLayout *tbLayout = new QHBoxLayout(); tbLayout->setSpacing(6); tbLayout->setMargin(4); tbLayout->addWidget(l); tbLayout->addWidget(m_searchLineEdit); toolbar->setLayout(tbLayout); layout->addWidget(toolbar); QHelpEngine *engine = &LocalHelpManager::helpEngine(); m_indexWidget = engine->indexWidget(); m_indexWidget->installEventFilter(this); connect(engine->indexModel(), SIGNAL(indexCreationStarted()), this, SLOT(disableSearchLineEdit())); connect(engine->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())); m_indexWidget->setFrameStyle(QFrame::NoFrame); layout->addWidget(m_indexWidget); m_indexWidget->viewport()->installEventFilter(this); }