Пример #1
0
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;
    }
Пример #2
0
void KSSearchLine::slotQueueSearch(const QString &criteria)
{
  m_latestCriteria = criteria;
  m_searchQueue++;
  QTimer::singleShot(1000, this, SLOT(slotBeginSearch()));
}