diff options
author | Arno <arno@disconnect.de> | 2018-02-02 05:33:19 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-02-02 05:33:19 +0100 |
commit | 1fca44997b41e07d23dbdf431133a8c5f01a7e64 (patch) | |
tree | 7ac3f5361ee4b16407ae90f2d0eedf7abd83c656 | |
parent | 0b7b9918e6ff156c1f587ea3940030a676d279e7 (diff) | |
download | ShemovCleaner-1fca44997b41e07d23dbdf431133a8c5f01a7e64.tar.gz ShemovCleaner-1fca44997b41e07d23dbdf431133a8c5f01a7e64.tar.bz2 ShemovCleaner-1fca44997b41e07d23dbdf431133a8c5f01a7e64.zip |
Get genres for search data
-rw-r--r-- | searchdialog.cpp | 36 | ||||
-rw-r--r-- | searchdialog.h | 3 |
2 files changed, 25 insertions, 14 deletions
diff --git a/searchdialog.cpp b/searchdialog.cpp index 70c504c..6f323d7 100644 --- a/searchdialog.cpp +++ b/searchdialog.cpp @@ -185,29 +185,39 @@ void SearchDialog::doResultName(const QModelIndex &sel, int resType){ cur->setIcon(icon); cur->setData(rQ.value(2), IdRole); cur->setEditable(false); - doActors(cur); + doChild(cur, Actor); + doChild(cur, Genre); root->appendRow(cur); } mDataV->setSortingEnabled(true); mDataV->sortByColumn(0); } -void SearchDialog::doActors(QStandardItem *item){ - QStringList actors; - QIcon aIcon = Helper::icon(QColor(255,85,255), 'A'); +void SearchDialog::doChild(QStandardItem *item, int childMode){ + QStringList res; + QIcon aIcon; // = + QString parentName; QSqlDatabase db = QSqlDatabase::database("shemovdb"); - QSqlQuery aQ(db); - aQ.prepare("SELECT actors.tactorname FROM seriesparts_actormap, actors WHERE seriesparts_actormap.iseriesparts_id = :id and seriesparts_actormap.iactors_id = actors.iactors_id ORDER by tactorname"); - aQ.bindValue(":id", item->data(IdRole)); - aQ.exec(); - while(aQ.next()){ - actors << aQ.value(0).toString(); + QSqlQuery rQ(db); + if(childMode == Actor){ + rQ.prepare("SELECT actors.tactorname FROM seriesparts_actormap, actors WHERE seriesparts_actormap.iseriesparts_id = :id and seriesparts_actormap.iactors_id = actors.iactors_id ORDER by tactorname"); + parentName = tr("actors"); + aIcon = Helper::icon(QColor(255,85,255), 'A'); + }else if(childMode == Genre){ + rQ.prepare("SELECT genres.tgenrename FROM seriesparts_genremap, genres WHERE seriesparts_genremap.iseriesparts_id = :id and seriesparts_genremap.igenres_id = genres.igenres_id ORDER by tgenrename"); + parentName = tr("genres"); + aIcon = Helper::icon(QColor(255,85,255), 'G'); + } + rQ.bindValue(":id", item->data(IdRole)); + rQ.exec(); + while(rQ.next()){ + res << rQ.value(0).toString(); } - if(!actors.isEmpty()){ - QStandardItem *aItem = new QStandardItem(tr("actors")); + if(!res.isEmpty()){ + QStandardItem *aItem = new QStandardItem(parentName); aItem->setEditable(false); aItem->setIcon(aIcon); - for(QString a : actors){ + for(QString a : res){ QStandardItem *curItem = new QStandardItem(a); curItem->setIcon(aIcon); aItem->appendRow(curItem); diff --git a/searchdialog.h b/searchdialog.h index 6cb9212..54e6ea3 100644 --- a/searchdialog.h +++ b/searchdialog.h @@ -14,6 +14,7 @@ class SearchDialog : public QDialog { public: enum SearchTypes { Filename, Title }; enum CustomRoles { IdRole = Qt::UserRole + 1 }; + enum ChildMode { Actor, Genre }; explicit SearchDialog(QWidget *parent, Qt::WindowFlags f = 0); public slots: @@ -24,7 +25,7 @@ class SearchDialog : public QDialog { void doResultName(const QModelIndex &sel, int resType); private: - void doActors(QStandardItem *item); + void doChild(QStandardItem *item, int childMode); QLineEdit *mSearch; QComboBox *mTypeSel; QTreeView *mResV; |