Mercurial > minori
annotate src/dialog/information.cpp @ 6:1d82f6e04d7d
Update: add first parts to the settings dialog
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 16 Aug 2023 00:49:17 -0400 |
parents | 190ded9438c0 |
children | 07a9095eaeed |
rev | line source |
---|---|
2 | 1 #include "window.h" |
2 #include "anime.h" | |
3 #include "information.h" | |
4 #include "ui_utils.h" | |
5 #include "string_utils.h" | |
6 | |
7 #include <QDialogButtonBox> | |
8 | |
9 void InformationDialog::OnOK() { | |
10 model->UpdateAnime(*anime); | |
11 QDialog::accept(); | |
12 } | |
13 | |
14 InformationDialog::InformationDialog(Anime& a, AnimeListWidgetModel* model, QWidget* parent) | |
15 : QDialog(parent) | |
16 { | |
17 this->model = model; | |
18 this->anime = &a; | |
19 setFixedSize(842, 613); | |
20 setWindowTitle(tr("Anime Information")); | |
21 setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); | |
22 setObjectName("infodiag"); | |
23 QWidget* widget = new QWidget(this); | |
24 widget->resize(842-175, 530); | |
25 widget->move(175, 0); | |
26 widget->setStyleSheet(UiUtils::IsInDarkMode() ? "" : "background-color: white"); | |
27 widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); | |
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
28 QPlainTextEdit* anime_title = new QPlainTextEdit(QString::fromUtf8(anime->title.english.c_str()), widget); |
2 | 29 anime_title->setReadOnly(true); |
30 anime_title->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
31 anime_title->setWordWrapMode(QTextOption::NoWrap); | |
32 anime_title->setFrameShape(QFrame::NoFrame); | |
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
33 anime_title->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); |
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
34 anime_title->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
35 anime_title->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
36 anime_title->setStyleSheet("font-size: 16px; color: blue; background: transparent;"); |
2 | 37 anime_title->resize(636, 28); |
38 anime_title->move(0, 12); | |
39 QTabWidget* tabbed_widget = new QTabWidget(widget); | |
40 tabbed_widget->resize(636, 485); | |
41 tabbed_widget->move(0, 45); | |
42 tabbed_widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); | |
43 QWidget* main_information_widget = new QWidget(tabbed_widget); | |
44 UiUtils::CreateSelectableTextParagraph(main_information_widget, "Alternative titles", "-", QPoint(6, 6), QSize(636-18, 56)); | |
45 QString details_data(""); | |
46 QTextStream details_data_s(&details_data); | |
47 details_data_s << AnimeFormatToStringMap[anime->type].c_str() << "\n" | |
48 << anime->episodes << "\n" | |
49 << AnimeAiringToStringMap[anime->airing].c_str() << "\n" | |
50 << AnimeSeasonToStringMap[anime->season].c_str() << " " << anime->air_date.GetYear() << "\n" | |
51 << StringUtils::Implode(anime->genres, ", ").c_str() << "\n" | |
52 << anime->audience_score << "%\n"; | |
53 UiUtils::CreateTextParagraphWithLabels(main_information_widget, "Details", "Type:\nEpisodes:\nStatus:\nSeason:\nGenres:\nScore:", details_data, QPoint(6, 62), QSize(636-18, 142)); | |
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
54 UiUtils::CreateSelectableTextParagraph(main_information_widget, "Synopsis", QString::fromUtf8(anime->synopsis.c_str()), QPoint(6, 202), QSize(636-18, 253)); |
2 | 55 tabbed_widget->addTab(main_information_widget, "Main information"); |
56 QWidget* settings_widget = new QWidget(tabbed_widget); | |
3 | 57 tabbed_widget->addTab(settings_widget, "My list and settings"); |
2 | 58 QDialogButtonBox* button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); |
3 | 59 connect(button_box, &QDialogButtonBox::accepted, this, &InformationDialog::OnOK); |
2 | 60 connect(button_box, &QDialogButtonBox::rejected, this, &QDialog::reject); |
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
61 QVBoxLayout* buttons_layout = new QVBoxLayout(this); |
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
3
diff
changeset
|
62 //buttons_layout->addWidget(widget, 0, Qt::AlignTop); |
2 | 63 buttons_layout->addWidget(button_box, 0, Qt::AlignBottom); |
64 // this should probably be win32-only | |
65 setStyleSheet(UiUtils::IsInDarkMode() ? "" : "QDialog#infodiag{background-color: white;}"); | |
66 setLayout(buttons_layout); | |
67 } | |
68 | |
69 #include "moc_information.cpp" |