From 9161fa0d0a4a312c2d70550123287bbf821284ba Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 29 Jul 2020 07:41:50 +0200 Subject: Add refresh actors in search dialog Make it possible to call it by context menu and hook it up to deleteSeries. --- searchdialog.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'searchdialog.cpp') diff --git a/searchdialog.cpp b/searchdialog.cpp index 6cb5821..b06e487 100644 --- a/searchdialog.cpp +++ b/searchdialog.cpp @@ -177,6 +177,10 @@ ActorsAndMore::ActorsAndMore(QWidget *parent, Qt::WindowFlags flags) : QWidget(p QAction *resultExpandAllA = new QAction(Helper::icon(Qt::transparent, qApp->palette().color(QPalette::Text), QChar(0x2193), true, false), tr("Expand all"), this); connect(resultExpandAllA, &QAction::triggered, this, &ActorsAndMore::expandAllResult); mResultView->addAction(resultExpandAllA); + QAction *resultRefreshA = new QAction(Helper::icon(Qt::transparent, qApp->palette().color(QPalette::Text), QChar(0x21bb), true, false), tr("Refresh"), this); + connect(resultRefreshA, &QAction::triggered, this, &ActorsAndMore::refreshActors); + mResultView->addAction(Helper::createSeparator(this)); + mResultView->addAction(resultRefreshA); // data view mDataModel = new QStandardItemModel; @@ -354,7 +358,28 @@ void ActorsAndMore::deleteSeries(){ deleteQ.prepare("DELETE from seriesparts where iseriesparts_id = :id"); deleteQ.bindValue(":id", seriesPartId); if(deleteQ.exec()){ - getData(mResultView->currentIndex(), QModelIndex()); + refreshActors(); + } + } +} + +void ActorsAndMore::refreshActors(){ + int searchType = mTypeSel->currentData().toInt(); + if(searchType == Actor){ + QModelIndexList sel = mResultView->selectionModel()->selectedRows(); + if(!sel.isEmpty()){ + QString currentText = sel.at(0).data().toString(); + doSearch(); + QList search = mResultModel->findItems(currentText); + if(!search.isEmpty()){ + QModelIndex newSelected = mResultModel->indexFromItem(search.at(0)); + if(newSelected.isValid()){ + QSortFilterProxyModel *proxy = static_cast(mResultView->model()); + QModelIndex sourceIdx = proxy->mapFromSource(newSelected); + mResultView->selectionModel()->setCurrentIndex(sourceIdx, QItemSelectionModel::ClearAndSelect); + mResultView->scrollTo(sourceIdx); + } + } } } } -- cgit v1.2.3-70-g09d2