summaryrefslogtreecommitdiffstats
path: root/searchdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchdialog.cpp')
-rw-r--r--searchdialog.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/searchdialog.cpp b/searchdialog.cpp
index 65ade63..d14a61a 100644
--- a/searchdialog.cpp
+++ b/searchdialog.cpp
@@ -28,6 +28,7 @@
#include "smtreeitem.h"
#include "smtreemodel.h"
#include "searchdialog.h"
+#include "smglobals.h"
#include "helper.h"
FilenamesAndMetadata::FilenamesAndMetadata(QWidget *parent, Qt::WindowFlags flags) : QWidget(parent, flags){
@@ -171,7 +172,37 @@ ActorsAndMore::ActorsAndMore(QWidget *parent, Qt::WindowFlags flags) : QWidget(p
}
void ActorsAndMore::doSearch(){
+ QString input = mSearch->text();
+ if(input.isEmpty()){
+ return;
+ }
+ int searchType = mTypeSel->currentData().toInt();
+ if(searchType == Actor){
+ searchActor(input);
+ }
+}
+void ActorsAndMore::searchActor(const QString &actor){
+ mResultView->setSortingEnabled(false);
+ mResultModel->clear();
+ mResultModel->setColumnCount(1);
+ mResultModel->setHeaderData(0, Qt::Horizontal, tr("Actor"));
+ QIcon icon = SmGlobals::instance()->iconFor("actor");
+ QStandardItem *root = mResultModel->invisibleRootItem();
+ QSqlDatabase db = QSqlDatabase::database("treedb");
+ QSqlQuery actorQ(db);
+ actorQ.prepare("SELECT tactorname, iactors_id FROM actors WHERE tactorname ~ :name");
+ actorQ.bindValue(":name", actor);
+ actorQ.exec();
+ while(actorQ.next()){
+ QStandardItem *cur = new QStandardItem(actorQ.value(0).toString());
+ cur->setIcon(icon);
+ cur->setData(actorQ.value(1), IdRole);
+ cur->setEditable(false);
+ root->appendRow(cur);
+ }
+ mResultView->setSortingEnabled(true);
+ mResultView->sortByColumn(0, Qt::AscendingOrder);
}
SearchDialog::SearchDialog(QWidget *parent, Qt::WindowFlags flags) : QDialog(parent, flags) {