Mercurial > minori
diff src/gui/pages/search.cc @ 370:ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 10:22:04 -0400 |
parents | 8d45d892be88 |
children |
line wrap: on
line diff
--- a/src/gui/pages/search.cc Fri Jul 25 10:16:02 2025 -0400 +++ b/src/gui/pages/search.cc Fri Jul 25 10:22:04 2025 -0400 @@ -23,21 +23,26 @@ #include <iostream> #include <sstream> -SearchPageSearchThread::SearchPageSearchThread(QObject* parent) : QThread(parent) { +SearchPageSearchThread::SearchPageSearchThread(QObject *parent) : QThread(parent) +{ } -void SearchPageSearchThread::SetSearch(const std::string& search) { +void SearchPageSearchThread::SetSearch(const std::string &search) +{ search_ = search; } -void SearchPageSearchThread::run() { +void SearchPageSearchThread::run() +{ emit GotResults(Services::Search(search_)); } -SearchPageListSortFilter::SearchPageListSortFilter(QObject* parent) : QSortFilterProxyModel(parent) { +SearchPageListSortFilter::SearchPageListSortFilter(QObject *parent) : QSortFilterProxyModel(parent) +{ } -bool SearchPageListSortFilter::lessThan(const QModelIndex& l, const QModelIndex& r) const { +bool SearchPageListSortFilter::lessThan(const QModelIndex &l, const QModelIndex &r) const +{ QVariant left = sourceModel()->data(l, sortRole()); QVariant right = sourceModel()->data(r, sortRole()); @@ -55,10 +60,12 @@ /* -------------------------------------------- */ -SearchPageListModel::SearchPageListModel(QObject* parent) : QAbstractListModel(parent) { +SearchPageListModel::SearchPageListModel(QObject *parent) : QAbstractListModel(parent) +{ } -void SearchPageListModel::ParseSearch(const std::vector<int>& ids) { +void SearchPageListModel::ParseSearch(const std::vector<int> &ids) +{ /* hack!!! */ if (!rowCount(index(0))) { beginInsertRows(QModelIndex(), 0, 0); @@ -72,17 +79,20 @@ endResetModel(); } -int SearchPageListModel::rowCount(const QModelIndex& parent) const { +int SearchPageListModel::rowCount(const QModelIndex &parent) const +{ return ids.size(); (void)(parent); } -int SearchPageListModel::columnCount(const QModelIndex& parent) const { +int SearchPageListModel::columnCount(const QModelIndex &parent) const +{ return NB_COLUMNS; (void)(parent); } -QVariant SearchPageListModel::headerData(const int section, const Qt::Orientation orientation, const int role) const { +QVariant SearchPageListModel::headerData(const int section, const Qt::Orientation orientation, const int role) const +{ switch (role) { case Qt::DisplayRole: { switch (section) { @@ -110,11 +120,12 @@ return QAbstractListModel::headerData(section, orientation, role); } -QVariant SearchPageListModel::data(const QModelIndex& index, int role) const { +QVariant SearchPageListModel::data(const QModelIndex &index, int role) const +{ if (!index.isValid()) return QVariant(); - const Anime::Anime& anime = Anime::db.items[ids[index.row()]]; + const Anime::Anime &anime = Anime::db.items[ids[index.row()]]; switch (role) { case Qt::DisplayRole: @@ -155,19 +166,22 @@ return QVariant(); } -Qt::ItemFlags SearchPageListModel::flags(const QModelIndex& index) const { +Qt::ItemFlags SearchPageListModel::flags(const QModelIndex &index) const +{ if (!index.isValid()) return Qt::NoItemFlags; return Qt::ItemIsEnabled | Qt::ItemIsSelectable; } -Anime::Anime* SearchPageListModel::GetAnimeFromIndex(const QModelIndex& index) const { +Anime::Anime *SearchPageListModel::GetAnimeFromIndex(const QModelIndex &index) const +{ return &Anime::db.items[ids[index.row()]]; } -void SearchPage::DisplayListMenu() { - QMenu* menu = new QMenu(this); +void SearchPage::DisplayListMenu() +{ + QMenu *menu = new QMenu(this); menu->setAttribute(Qt::WA_DeleteOnClose); menu->setToolTipsVisible(true); @@ -175,12 +189,12 @@ bool add_to_list_enable = true; - std::set<Anime::Anime*> animes; - for (const auto& index : selection.indexes()) { + std::set<Anime::Anime *> animes; + for (const auto &index : selection.indexes()) { if (!index.isValid()) continue; - Anime::Anime* anime = model->GetAnimeFromIndex(index); + Anime::Anime *anime = model->GetAnimeFromIndex(index); if (anime) { animes.insert(anime); if (anime->IsInUserList()) @@ -189,10 +203,10 @@ } menu->addAction(tr("Information"), [this, animes] { - for (auto& anime : animes) { - InformationDialog* dialog = new InformationDialog( + for (auto &anime : animes) { + InformationDialog *dialog = new InformationDialog( anime, - [this](Anime::Anime* anime) { + [this](Anime::Anime *anime) { // UpdateAnime(anime->GetId()); }, InformationDialog::PAGE_MAIN_INFO, this); @@ -204,10 +218,10 @@ }); menu->addSeparator(); { - QMenu* submenu = menu->addMenu(tr("Add to list...")); - for (const auto& status : Anime::ListStatuses) { + QMenu *submenu = menu->addMenu(tr("Add to list...")); + for (const auto &status : Anime::ListStatuses) { submenu->addAction(Strings::ToQString(Translate::ToLocalString(status)), [animes, status] { - for (auto& anime : animes) { + for (auto &anime : animes) { if (!anime->IsInUserList()) anime->AddToUserList(); anime->SetUserStatus(status); @@ -220,18 +234,19 @@ menu->popup(QCursor::pos()); } -void SearchPage::ItemDoubleClicked() { +void SearchPage::ItemDoubleClicked() +{ /* throw out any other garbage */ const QItemSelection selection = sort_model->mapSelectionToSource(treeview->selectionModel()->selection()); if (!selection.indexes().first().isValid()) return; const QModelIndex index = model->index(selection.indexes().first().row()); - Anime::Anime* anime = model->GetAnimeFromIndex(index); + Anime::Anime *anime = model->GetAnimeFromIndex(index); - InformationDialog* dialog = new InformationDialog( + InformationDialog *dialog = new InformationDialog( anime, - [this](Anime::Anime* anime) { + [this](Anime::Anime *anime) { // UpdateAnime(anime->GetId()); }, InformationDialog::PAGE_MAIN_INFO, this); @@ -241,21 +256,22 @@ dialog->activateWindow(); } -SearchPage::SearchPage(QWidget* parent) : QFrame(parent) { +SearchPage::SearchPage(QWidget *parent) : QFrame(parent) +{ setFrameShape(QFrame::Box); setFrameShadow(QFrame::Sunken); - QVBoxLayout* layout = new QVBoxLayout(this); + QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); { /* Toolbar */ - QToolBar* toolbar = new QToolBar(this); + QToolBar *toolbar = new QToolBar(this); toolbar->setMovable(false); { - QLineEdit* line_edit = new QLineEdit("", toolbar); + QLineEdit *line_edit = new QLineEdit("", toolbar); connect(line_edit, &QLineEdit::returnPressed, this, [this, line_edit] { /* static thread here. */ if (thread_.isRunning()) @@ -265,9 +281,8 @@ thread_.start(); }); - connect(&thread_, &SearchPageSearchThread::GotResults, this, [this](const std::vector<int>& search) { - model->ParseSearch(search); - }); + connect(&thread_, &SearchPageSearchThread::GotResults, this, + [this](const std::vector<int> &search) { model->ParseSearch(search); }); toolbar->addWidget(line_edit); } @@ -275,7 +290,7 @@ } { - QFrame* line = new QFrame(this); + QFrame *line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); line->setLineWidth(1);