Mercurial > minori
comparison src/anime.cpp @ 3:190ded9438c0
Fix many warnings
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Sat, 12 Aug 2023 11:57:25 -0400 |
| parents | 23d0d9319a00 |
| children | 1d82f6e04d7d |
comparison
equal
deleted
inserted
replaced
| 2:23d0d9319a00 | 3:190ded9438c0 |
|---|---|
| 116 return anime_list.cend(); | 116 return anime_list.cend(); |
| 117 } | 117 } |
| 118 | 118 |
| 119 AnimeList::AnimeList() {} | 119 AnimeList::AnimeList() {} |
| 120 AnimeList::AnimeList(const AnimeList& l) { | 120 AnimeList::AnimeList(const AnimeList& l) { |
| 121 for (int i = 0; i < l.Size(); i++) { | 121 for (unsigned long long i = 0; i < l.Size(); i++) { |
| 122 anime_list.push_back(Anime(l[i])); | 122 anime_list.push_back(Anime(l[i])); |
| 123 } | 123 } |
| 124 name = l.name; | 124 name = l.name; |
| 125 } | 125 } |
| 126 | 126 |
| 136 bool AnimeList::AnimeInList(int id) { | 136 bool AnimeList::AnimeInList(int id) { |
| 137 return anime_id_to_anime.contains(id); | 137 return anime_id_to_anime.contains(id); |
| 138 } | 138 } |
| 139 | 139 |
| 140 int AnimeList::GetAnimeIndex(Anime& anime) const { | 140 int AnimeList::GetAnimeIndex(Anime& anime) const { |
| 141 for (int i = 0; i < Size(); i++) { | 141 for (unsigned long long i = 0; i < Size(); i++) { |
| 142 if (&anime_list.at(i) == &anime) { // lazy | 142 if (&anime_list.at(i) == &anime) { // lazy |
| 143 return i; | 143 return i; |
| 144 } | 144 } |
| 145 } | 145 } |
| 146 return -1; | 146 return -1; |
| 164 return; | 164 return; |
| 165 } | 165 } |
| 166 | 166 |
| 167 int AnimeListWidgetModel::rowCount(const QModelIndex& parent) const { | 167 int AnimeListWidgetModel::rowCount(const QModelIndex& parent) const { |
| 168 return list.Size(); | 168 return list.Size(); |
| 169 (void)(parent); | |
| 169 } | 170 } |
| 170 | 171 |
| 171 int AnimeListWidgetModel::columnCount(const QModelIndex& parent) const { | 172 int AnimeListWidgetModel::columnCount(const QModelIndex& parent) const { |
| 172 return NB_COLUMNS; | 173 return NB_COLUMNS; |
| 174 (void)(parent); | |
| 173 } | 175 } |
| 174 | 176 |
| 175 QVariant AnimeListWidgetModel::headerData(const int section, const Qt::Orientation orientation, const int role) const { | 177 QVariant AnimeListWidgetModel::headerData(const int section, const Qt::Orientation orientation, const int role) const { |
| 176 if (role == Qt::DisplayRole) { | 178 if (role == Qt::DisplayRole) { |
| 177 switch (section) { | 179 switch (section) { |
| 334 QMenu *menu = new QMenu(this); | 336 QMenu *menu = new QMenu(this); |
| 335 menu->setAttribute(Qt::WA_DeleteOnClose); | 337 menu->setAttribute(Qt::WA_DeleteOnClose); |
| 336 menu->setTitle(tr("Column visibility")); | 338 menu->setTitle(tr("Column visibility")); |
| 337 menu->setToolTipsVisible(true); | 339 menu->setToolTipsVisible(true); |
| 338 | 340 |
| 339 for (int i = 0; i < AnimeListWidgetModel::NB_COLUMNS; i++) | 341 for (int i = 0; i < AnimeListWidgetModel::NB_COLUMNS; i++) { |
| 340 { | |
| 341 if (i == AnimeListWidgetModel::AL_TITLE) | 342 if (i == AnimeListWidgetModel::AL_TITLE) |
| 342 continue; | 343 continue; |
| 343 const auto column_name = model->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString(); | 344 const auto column_name = model->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString(); |
| 344 QAction *action = menu->addAction(column_name, this, [this, i](const bool checked) { | 345 QAction *action = menu->addAction(column_name, this, [this, i](const bool checked) { |
| 345 if (!checked && (VisibleColumnsCount() <= 1)) | 346 if (!checked && (VisibleColumnsCount() <= 1)) |
| 355 action->setCheckable(true); | 356 action->setCheckable(true); |
| 356 action->setChecked(!isColumnHidden(i)); | 357 action->setChecked(!isColumnHidden(i)); |
| 357 } | 358 } |
| 358 | 359 |
| 359 menu->addSeparator(); | 360 menu->addSeparator(); |
| 360 QAction *resetAction = menu->addAction(tr("Reset to defaults"), this, [this]() | 361 QAction *resetAction = menu->addAction(tr("Reset to defaults"), this, [this]() { |
| 361 { | |
| 362 for (int i = 0, count = header()->count(); i < count; ++i) | 362 for (int i = 0, count = header()->count(); i < count; ++i) |
| 363 { | 363 { |
| 364 SetColumnDefaults(); | 364 SetColumnDefaults(); |
| 365 } | 365 } |
| 366 // SaveSettings(); | 366 // SaveSettings(); |
| 367 }); | 367 }); |
| 368 | |
| 369 menu->popup(QCursor::pos()); | 368 menu->popup(QCursor::pos()); |
| 369 (void)(resetAction); | |
| 370 } | 370 } |
| 371 | 371 |
| 372 void AnimeListWidget::DisplayListMenu() { | 372 void AnimeListWidget::DisplayListMenu() { |
| 373 /* throw out any other garbage */ | 373 /* throw out any other garbage */ |
| 374 const QModelIndexList selected_items = selectionModel()->selectedRows(); | 374 const QModelIndexList selected_items = selectionModel()->selectedRows(); |
| 375 if (selected_items.size() != 1 || !selected_items.first().isValid()) | 375 if (selected_items.size() != 1 || !selected_items.first().isValid()) { |
| 376 return; | 376 return; |
| 377 } | |
| 377 | 378 |
| 378 const QModelIndex index = model->index(selected_items.first().row()); | 379 const QModelIndex index = model->index(selected_items.first().row()); |
| 379 Anime* anime = model->GetAnimeFromIndex(index); | 380 Anime* anime = model->GetAnimeFromIndex(index); |
| 380 if (!anime) | 381 if (!anime) { |
| 381 return; | 382 return; |
| 383 } | |
| 382 | 384 |
| 383 } | 385 } |
| 384 | 386 |
| 385 void AnimeListWidget::ItemDoubleClicked() { | 387 void AnimeListWidget::ItemDoubleClicked() { |
| 386 /* throw out any other garbage */ | 388 /* throw out any other garbage */ |
| 387 const QModelIndexList selected_items = selectionModel()->selectedRows(); | 389 const QModelIndexList selected_items = selectionModel()->selectedRows(); |
| 388 if (selected_items.size() != 1 || !selected_items.first().isValid()) | 390 if (selected_items.size() != 1 || !selected_items.first().isValid()) { |
| 389 return; | 391 return; |
| 392 } | |
| 390 | 393 |
| 391 /* TODO: after we implement our sort model, we have to use mapToSource here... */ | 394 /* TODO: after we implement our sort model, we have to use mapToSource here... */ |
| 392 const QModelIndex index = model->index(selected_items.first().row()); | 395 const QModelIndex index = model->index(selected_items.first().row()); |
| 393 Anime* anime = model->GetAnimeFromIndex(index); | 396 Anime* anime = model->GetAnimeFromIndex(index); |
| 394 if (!anime) | 397 if (!anime) { |
| 395 return; | 398 return; |
| 399 } | |
| 396 | 400 |
| 397 InformationDialog* dialog = new InformationDialog(*anime, model, this); | 401 InformationDialog* dialog = new InformationDialog(*anime, model, this); |
| 398 | 402 |
| 399 dialog->show(); | 403 dialog->show(); |
| 400 dialog->raise(); | 404 dialog->raise(); |
| 412 setSortingEnabled(true); | 416 setSortingEnabled(true); |
| 413 setSelectionMode(QAbstractItemView::ExtendedSelection); | 417 setSelectionMode(QAbstractItemView::ExtendedSelection); |
| 414 setItemsExpandable(false); | 418 setItemsExpandable(false); |
| 415 setRootIsDecorated(false); | 419 setRootIsDecorated(false); |
| 416 setContextMenuPolicy(Qt::CustomContextMenu); | 420 setContextMenuPolicy(Qt::CustomContextMenu); |
| 417 connect(this, &QAbstractItemView::doubleClicked, this, &ItemDoubleClicked); | 421 connect(this, &QAbstractItemView::doubleClicked, this, &AnimeListWidget::ItemDoubleClicked); |
| 418 connect(this, &QWidget::customContextMenuRequested, this, &DisplayListMenu); | 422 connect(this, &QWidget::customContextMenuRequested, this, &AnimeListWidget::DisplayListMenu); |
| 419 | 423 |
| 420 /* Enter & return keys */ | 424 /* Enter & return keys */ |
| 421 connect(new QShortcut(Qt::Key_Return, this, nullptr, nullptr, Qt::WidgetShortcut), | 425 connect(new QShortcut(Qt::Key_Return, this, nullptr, nullptr, Qt::WidgetShortcut), |
| 422 &QShortcut::activated, this, &ItemDoubleClicked); | 426 &QShortcut::activated, this, &AnimeListWidget::ItemDoubleClicked); |
| 423 | 427 |
| 424 connect(new QShortcut(Qt::Key_Enter, this, nullptr, nullptr, Qt::WidgetShortcut), | 428 connect(new QShortcut(Qt::Key_Enter, this, nullptr, nullptr, Qt::WidgetShortcut), |
| 425 &QShortcut::activated, this, &ItemDoubleClicked); | 429 &QShortcut::activated, this, &AnimeListWidget::ItemDoubleClicked); |
| 426 | 430 |
| 427 header()->setStretchLastSection(false); | 431 header()->setStretchLastSection(false); |
| 428 header()->setContextMenuPolicy(Qt::CustomContextMenu); | 432 header()->setContextMenuPolicy(Qt::CustomContextMenu); |
| 429 connect(header(), &QWidget::customContextMenuRequested, this, &DisplayColumnHeaderMenu); | 433 connect(header(), &QWidget::customContextMenuRequested, this, &AnimeListWidget::DisplayColumnHeaderMenu); |
| 430 // if(!session.config.anime_list.columns) { | 434 // if(!session.config.anime_list.columns) { |
| 431 SetColumnDefaults(); | 435 SetColumnDefaults(); |
| 432 // } | 436 // } |
| 433 } | 437 } |
| 434 | 438 |
| 448 session.config.anilist.user_id = anilist.GetUserId(session.config.anilist.username); | 452 session.config.anilist.user_id = anilist.GetUserId(session.config.anilist.username); |
| 449 FreeAnimeList(); | 453 FreeAnimeList(); |
| 450 anilist.UpdateAnimeList(&anime_lists, session.config.anilist.user_id); | 454 anilist.UpdateAnimeList(&anime_lists, session.config.anilist.user_id); |
| 451 break; | 455 break; |
| 452 } | 456 } |
| 457 default: | |
| 458 break; | |
| 453 } | 459 } |
| 454 } | 460 } |
| 455 | 461 |
| 456 void AnimeListPage::FreeAnimeList() { | 462 void AnimeListPage::FreeAnimeList() { |
| 457 if (anime_lists.size() > 0) { | 463 if (anime_lists.size() > 0) { |
