Nepomuk::Utils::SearchWidget::SearchWidget(QWidget *parent) : QWidget(parent), d_ptr(new SearchWidgetPrivate()) { Q_D(SearchWidget); d->q = this; //query editor widget d->m_queryEdit = new SearchLineEdit(this); d->m_queryButton = new KPushButton(i18n("Search"), this); connect(d->m_queryEdit, SIGNAL(queryChanged(Nepomuk::Query::Query)), this, SLOT(_k_queryComponentChanged())); connect(d->m_queryButton, SIGNAL(clicked()), this, SLOT(_k_queryComponentChanged())); //item widget d->m_itemWidget = new QListView(this); d->m_resourceModel = new Utils::SimpleResourceModel(this); d->m_itemWidget->setModel(d->m_resourceModel); connect(d->m_itemWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SIGNAL(selectionChanged())); connect(d->m_itemWidget->selectionModel(), SIGNAL(currentChanged( const QModelIndex &,const QModelIndex&)), this, SLOT(_k_forwardCurrentChanged(const QModelIndex &, const QModelIndex &))); //facets widget d->m_facetWidget = new Nepomuk::Utils::FacetWidget(this); d->setupFacetWidget(); connect(d->m_facetWidget, SIGNAL(queryTermChanged(Nepomuk::Query::Term)), this, SLOT(_k_queryComponentChanged())); //layout and config QSplitter* facetSplitter = new QSplitter(this); facetSplitter->addWidget(d->m_itemWidget); facetSplitter->addWidget(d->m_facetWidget); QGridLayout* layout = new QGridLayout( this ); layout->setMargin(0); layout->addWidget( d->m_queryEdit, 0, 0 ); layout->addWidget( d->m_queryButton, 0, 1 ); layout->addWidget( facetSplitter, 1, 0, 1, 2 ); layout->setRowStretch(1,1); // query client setup connect( &d->m_queryClient, SIGNAL(newEntries(QList<Nepomuk::Query::Result>)), d->m_resourceModel, SLOT(addResults(QList<Nepomuk::Query::Result>)) ); connect( &d->m_queryClient, SIGNAL(finishedListing()), this, SLOT(_k_listingFinished())); setSelectionMode(QListView::ExtendedSelection); setConfigFlags( DefaultConfigFlags ); }
void ResourceBrowser::setupDockWidgets() { QDockWidget* dock = new QDockWidget(i18n("Recommendation"),this); dock->setAllowedAreas(Qt::RightDockWidgetArea); m_recommendationView = new QListView(dock); m_recommendationView->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_recommendationView,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(slotRecommendedResourceContextMenu(QPoint))); dock->setWidget(m_recommendationView); addDockWidget(Qt::RightDockWidgetArea,dock); //TODO::if locked -> do this //dock->setFeatures(QDockWidget::NoDockWidgetFeatures); dock = new QDockWidget(i18n("Linked Resources"),this); dock->setAllowedAreas(Qt::RightDockWidgetArea); m_linkedResourceView = new QListView(dock); m_linkedResourceView->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_linkedResourceView,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(slotLinkedResourceContextMenu(QPoint))); dock->setWidget(m_linkedResourceView); addDockWidget(Qt::RightDockWidgetArea,dock); dock = new QDockWidget("",this); dock->setAllowedAreas(Qt::LeftDockWidgetArea); QWidget* buttonWidget = new QWidget(dock); QVBoxLayout* buttonLayout = new QVBoxLayout(buttonWidget); m_manualLinkResourceButton = new QPushButton(buttonWidget); m_manualLinkResourceButton->setIcon(KIcon("insert-link")); m_manualLinkResourceButton->setText(i18n("Link resources manually")); m_manualLinkResourceButton->setEnabled(false); m_manualLinkResourceButton->setFlat(true); connect(m_manualLinkResourceButton,SIGNAL(clicked()),this,SLOT(slotManualLinkResources())); m_removeDuplicateButton = new QPushButton(buttonWidget); m_removeDuplicateButton->setIcon(KIcon("archive-remove")); m_removeDuplicateButton->setText(i18n("Remove Duplicates")); m_removeDuplicateButton->setFlat(true); connect(m_removeDuplicateButton, SIGNAL(clicked()), this, SLOT(slotRemoveDuplicates())); m_autoTopicButton = new QPushButton(buttonWidget); m_autoTopicButton->setIcon(KIcon("nepomuk")); m_autoTopicButton->setText(i18n("Automatic Topic")); m_autoTopicButton->setFlat(true); connect(m_autoTopicButton, SIGNAL(clicked()), this, SLOT(slotAutomaticTopic())); buttonLayout->addWidget(m_manualLinkResourceButton); buttonLayout->addWidget(m_removeDuplicateButton); buttonLayout->addWidget(m_autoTopicButton); dock->setWidget(buttonWidget); dock->setFeatures(QDockWidget::NoDockWidgetFeatures); addDockWidget(Qt::LeftDockWidgetArea,dock); dock = new QDockWidget(i18n("Resource Search "),this); Nepomuk::Utils::FacetWidget *searchWidget = new Nepomuk::Utils::FacetWidget(dock); searchWidget->addFacet(Nepomuk::Utils::Facet::createDateFacet(searchWidget)); searchWidget->addFacet(Nepomuk::Utils::Facet::createTypeFacet(searchWidget)); searchWidget->addFacet(Nepomuk::Utils::Facet::createRatingFacet(searchWidget)); searchWidget->addFacet(Nepomuk::Utils::Facet::createPriorityFacet(searchWidget)); searchWidget->addFacet(Nepomuk::Utils::Facet::createTagFacet(searchWidget)); connect(searchWidget,SIGNAL(queryTermChanged(Nepomuk::Query::Term)),this,SLOT(slotFilterApplied(Nepomuk::Query::Term))); dock->setWidget(searchWidget); addDockWidget(Qt::LeftDockWidgetArea,dock); dock->setFeatures(QDockWidget::NoDockWidgetFeatures); connect (this, SIGNAL( sigShowProperties(KUrl) ), this, SLOT( slotShowProperties(KUrl))); }