Mercurial > minori
comparison src/gui/pages/anime_list.cpp @ 51:75c804f713b2
window: add about window,
*: use tr() when applicable (useful for i18n)
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Mon, 25 Sep 2023 20:29:26 -0400 |
| parents | d8eb763e6661 |
| children | 0c4138de2ea7 |
comparison
equal
deleted
inserted
replaced
| 50:10868c3fb2be | 51:75c804f713b2 |
|---|---|
| 45 static_cast<int>(index.siblingAtColumn(AnimeListWidgetModel::AL_EPISODES).data(Qt::UserRole).toReal()); | 45 static_cast<int>(index.siblingAtColumn(AnimeListWidgetModel::AL_EPISODES).data(Qt::UserRole).toReal()); |
| 46 | 46 |
| 47 int text_width = 59; | 47 int text_width = 59; |
| 48 QRectF text_rect(option.rect.x() + text_width, option.rect.y(), text_width, option.decorationSize.height()); | 48 QRectF text_rect(option.rect.x() + text_width, option.rect.y(), text_width, option.decorationSize.height()); |
| 49 painter->save(); | 49 painter->save(); |
| 50 painter->drawText(text_rect, "/", QTextOption(Qt::AlignCenter | Qt::AlignVCenter)); | 50 painter->drawText(text_rect, tr("/"), QTextOption(Qt::AlignCenter | Qt::AlignVCenter)); |
| 51 // drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = | 51 drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = |
| 52 QTextOption()) painter->drawText(QRectF(text_rect.x(), text_rect.y(), text_width / 2 - 2, | 52 QTextOption()) painter->drawText(QRectF(text_rect.x(), text_rect.y(), text_width / 2 - 2, |
| 53 text_rect.height()), QString::number(progress), QTextOption(Qt::AlignRight | Qt::AlignVCenter)); | 53 text_rect.height()), QString::number(progress), QTextOption(Qt::AlignRight | Qt::AlignVCenter)); |
| 54 painter->drawText( | 54 painter->drawText( |
| 55 QRectF(text_rect.x() + text_width / 2 + 2, text_rect.y(), text_width / 2 - 2, text_rect.height()), | 55 QRectF(text_rect.x() + text_width / 2 + 2, text_rect.y(), text_width / 2 - 2, text_rect.height()), |
| 56 QString::number(episodes), QTextOption(Qt::AlignLeft | Qt::AlignVCenter)); | 56 QString::number(episodes), QTextOption(Qt::AlignLeft | Qt::AlignVCenter)); |
| 304 sort_models[tab_bar->currentIndex()]->mapSelectionToSource(tree_view->selectionModel()->selection()); | 304 sort_models[tab_bar->currentIndex()]->mapSelectionToSource(tree_view->selectionModel()->selection()); |
| 305 if (!selection.indexes().first().isValid()) { | 305 if (!selection.indexes().first().isValid()) { |
| 306 return; | 306 return; |
| 307 } | 307 } |
| 308 | 308 |
| 309 QAction* action = menu->addAction("Information", [this, selection] { | 309 QAction* action = menu->addAction(tr("Information"), [this, selection] { |
| 310 const QModelIndex index = ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel()) | 310 const QModelIndex index = ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel()) |
| 311 ->index(selection.indexes().first().row()); | 311 ->index(selection.indexes().first().row()); |
| 312 Anime::Anime* anime = | 312 Anime::Anime* anime = |
| 313 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel())->GetAnimeFromIndex(index); | 313 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel())->GetAnimeFromIndex(index); |
| 314 if (!anime) { | 314 if (!anime) { |
| 315 return; | 315 return; |
| 316 } | 316 } |
| 317 | 317 |
| 318 InformationDialog* dialog = new InformationDialog( | 318 InformationDialog* dialog = new InformationDialog(*anime, [this] { |
| 319 *anime, | 319 Refresh(); |
| 320 [this, anime] { | 320 }, this); |
| 321 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel()) | |
| 322 ->UpdateAnime(anime->GetId()); | |
| 323 }, | |
| 324 this); | |
| 325 | 321 |
| 326 dialog->show(); | 322 dialog->show(); |
| 327 dialog->raise(); | 323 dialog->raise(); |
| 328 dialog->activateWindow(); | 324 dialog->activateWindow(); |
| 329 }); | 325 }); |
| 341 const QModelIndex index = ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel()) | 337 const QModelIndex index = ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel()) |
| 342 ->index(selection.indexes().first().row()); | 338 ->index(selection.indexes().first().row()); |
| 343 Anime::Anime* anime = | 339 Anime::Anime* anime = |
| 344 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel())->GetAnimeFromIndex(index); | 340 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel())->GetAnimeFromIndex(index); |
| 345 | 341 |
| 346 InformationDialog* dialog = new InformationDialog( | 342 InformationDialog* dialog = new InformationDialog(*anime, [this] { |
| 347 *anime, | 343 Refresh(); |
| 348 [this, anime] { | 344 }, this); |
| 349 ((AnimeListWidgetModel*)sort_models[tab_bar->currentIndex()]->sourceModel())->UpdateAnime(anime->GetId()); | |
| 350 }, | |
| 351 this); | |
| 352 | 345 |
| 353 dialog->show(); | 346 dialog->show(); |
| 354 dialog->raise(); | 347 dialog->raise(); |
| 355 dialog->activateWindow(); | 348 dialog->activateWindow(); |
| 356 } | 349 } |
