annotate src/gui/window.cc @ 118:39521c47c7a3

*: another huge megacommit, SORRY The torrents page works a lot better now Added the edit option to the anime list right click menu Vectorized currently playing files Available player and extensions are now loaded at runtime from files in (dotpath)/players.json and (dotpath)/extensions.json These paths are not permanent and will likely be moved to (dotpath)/recognition ... ... ...
author Paper <mrpapersonic@gmail.com>
date Tue, 07 Nov 2023 23:40:54 -0500
parents c72b907b9bef
children 0a458cb26ff4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
1 #include "gui/window.h"
64
fe719c109dbc *: update
Paper <mrpapersonic@gmail.com>
parents: 63
diff changeset
2 #include "core/anime_db.h"
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
3 #include "core/config.h"
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
4 #include "core/session.h"
64
fe719c109dbc *: update
Paper <mrpapersonic@gmail.com>
parents: 63
diff changeset
5 #include "core/strings.h"
102
b315f3759c56 *: big patch
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
6 #include "gui/theme.h"
62
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 58
diff changeset
7 #include "gui/dialog/about.h"
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
8 #include "gui/dialog/settings.h"
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
9 #include "gui/pages/anime_list.h"
62
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 58
diff changeset
10 #include "gui/pages/history.h"
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
11 #include "gui/pages/now_playing.h"
62
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 58
diff changeset
12 #include "gui/pages/search.h"
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 58
diff changeset
13 #include "gui/pages/seasons.h"
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
14 #include "gui/pages/statistics.h"
54
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
15 #include "gui/pages/torrents.h"
46
d0adc4aedfc8 *: update...
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
16 #include "gui/widgets/sidebar.h"
15
cde8f67a7c7d *: update, megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 10
diff changeset
17 #include "services/services.h"
64
fe719c109dbc *: update
Paper <mrpapersonic@gmail.com>
parents: 63
diff changeset
18 #include "track/media.h"
118
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 115
diff changeset
19 #include "track/types.h"
63
3d2decf093bb *: fix many clang warnings
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
20 #include <QActionGroup>
7
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
21 #include <QApplication>
64
fe719c109dbc *: update
Paper <mrpapersonic@gmail.com>
parents: 63
diff changeset
22 #include <QDebug>
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
23 #include <QFile>
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
24 #include <QHBoxLayout>
7
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
25 #include <QMainWindow>
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
26 #include <QMenuBar>
63
3d2decf093bb *: fix many clang warnings
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
27 #include <QMessageBox>
7
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
28 #include <QPlainTextEdit>
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
29 #include <QStackedWidget>
63
3d2decf093bb *: fix many clang warnings
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
30 #include <QTextStream>
77
6f7385bd334c *: update
Paper <mrpapersonic@gmail.com>
parents: 69
diff changeset
31 #include <QThreadPool>
62
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 58
diff changeset
32 #include <QTimer>
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
33 #include <QToolBar>
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
34 #include <QToolButton>
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
35 #include <iostream>
106
c8c72278f6fd *: #if -> #ifdef, remove outdated comments in sys/win32/dark_theme.cc
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
36 #ifdef MACOSX
15
cde8f67a7c7d *: update, megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 10
diff changeset
37 # include "sys/osx/dark_theme.h"
46
d0adc4aedfc8 *: update...
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
38 #elif defined(WIN32)
15
cde8f67a7c7d *: update, megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 10
diff changeset
39 # include "sys/win32/dark_theme.h"
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
40 #endif
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
41
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
42 enum class Pages {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
43 NOW_PLAYING,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
44
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
45 ANIME_LIST,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
46 HISTORY,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
47 STATISTICS,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
48
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
49 SEARCH,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
50 SEASONS,
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
51 TORRENTS
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
52 };
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
53
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
54 MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) {
103
621084cc542c resources: add icons
Paper <mrpapersonic@gmail.com>
parents: 102
diff changeset
55 setWindowIcon(QIcon(":/favicon.png"));
621084cc542c resources: add icons
Paper <mrpapersonic@gmail.com>
parents: 102
diff changeset
56
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
57 main_widget.reset(new QWidget(this));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
58 /*QHBoxLayout* layout = */new QHBoxLayout(main_widget.get());
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
59
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
60 AddMainWidgets();
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
61
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
62 setCentralWidget(main_widget.get());
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
63
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
64 CreateBars();
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
65
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
66 QTimer* timer = new QTimer(this);
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
67 connect(timer, &QTimer::timeout, this, [this] {
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
68 NowPlayingPage* page = reinterpret_cast<NowPlayingPage*>(stack->widget(static_cast<int>(Pages::NOW_PLAYING)));
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
69
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
70 Filesystem::Path p = Track::Media::GetCurrentPlaying();
80
825506f0e221 [UNFINISHED]: stuff
Paper <mrpapersonic@gmail.com>
parents: 79
diff changeset
71 std::unordered_map<std::string, std::string> elements = Track::Media::GetFileElements(p);
825506f0e221 [UNFINISHED]: stuff
Paper <mrpapersonic@gmail.com>
parents: 79
diff changeset
72 int id = Anime::db.GetAnimeFromTitle(elements["title"]);
83
d02fdf1d6708 *: huuuge update
Paper <mrpapersonic@gmail.com>
parents: 82
diff changeset
73 if (id <= 0) {
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
74 page->SetDefault();
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
75 return;
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
76 }
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
77
83
d02fdf1d6708 *: huuuge update
Paper <mrpapersonic@gmail.com>
parents: 82
diff changeset
78 page->SetPlaying(Anime::db.items[id], elements);
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
79 });
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
80 timer->start(5000);
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
81 }
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
82
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
83 void MainWindow::AddMainWidgets() {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
84 int page = static_cast<int>(Pages::ANIME_LIST);
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
85 if (sidebar.get()) {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
86 main_widget->layout()->removeWidget(sidebar.get());
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
87 sidebar.reset();
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
88 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
89
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
90 if (stack.get()) {
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
91 page = stack->currentIndex();
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
92 main_widget->layout()->removeWidget(stack.get());
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
93 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
94
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
95 sidebar.reset(new SideBar(main_widget.get()));
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
96 sidebar->setFixedWidth(128);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
97 sidebar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
98
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
99 sidebar->AddItem(tr("Now Playing"), SideBar::CreateIcon(":/icons/16x16/film.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
100 sidebar->AddSeparator();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
101 sidebar->AddItem(tr("Anime List"), SideBar::CreateIcon(":/icons/16x16/document-list.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
102 sidebar->AddItem(tr("History"), SideBar::CreateIcon(":/icons/16x16/clock-history-frame.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
103 sidebar->AddItem(tr("Statistics"), SideBar::CreateIcon(":/icons/16x16/chart.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
104 sidebar->AddSeparator();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
105 sidebar->AddItem(tr("Search"), SideBar::CreateIcon(":/icons/16x16/magnifier.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
106 sidebar->AddItem(tr("Seasons"), SideBar::CreateIcon(":/icons/16x16/calendar.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
107 sidebar->AddItem(tr("Torrents"), SideBar::CreateIcon(":/icons/16x16/feed.png"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
108
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
109 stack.reset(new QStackedWidget(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
110 stack->addWidget(new NowPlayingPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
111 stack->addWidget(new AnimeListPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
112 stack->addWidget(new HistoryPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
113 stack->addWidget(new StatisticsPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
114 stack->addWidget(new SearchPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
115 stack->addWidget(new SeasonsPage(main_widget.get()));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
116 stack->addWidget(new TorrentsPage(main_widget.get()));
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
117
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
118 connect(sidebar.get(), &SideBar::CurrentItemChanged, stack.get(), &QStackedWidget::setCurrentIndex);
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
119 sidebar->SetCurrentItem(page);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
120
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
121 main_widget->layout()->addWidget(sidebar.get());
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
122 main_widget->layout()->addWidget(stack.get());
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
123 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
124
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
125 void MainWindow::CreateBars() {
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
126 /* Menu Bar
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
127 The notation of these might seem ugly at first, but it's actually very nice
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
128 (just trust me). It makes it much easier to edit the lists and makes it clear
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
129 if you're in submenu or not. */
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
130 QMenuBar* menubar = new QMenuBar(this);
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
131
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
132 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
133 /* File */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
134 QMenu* menu = menubar->addMenu(tr("&File"));
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
135
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
136 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
137 QMenu* submenu = menu->addMenu(tr("&Library folders"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
138 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
139 QAction* action = submenu->addAction(tr("&Add new folder..."));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
140 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
141 }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
142
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
143 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
144 QAction* action = menu->addAction(tr("&Scan available episodes"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
145 }
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
146
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
147 menu->addSeparator();
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
148
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
149 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
150 // QAction* action = menu->addAction(tr("Play &next episode"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
151 // action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_N));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
152 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
153 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
154 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
155 // QAction* action = menu->addAction(tr("Play &random episode"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
156 // action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_R));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
157 // }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
158
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
159 menu->addSeparator();
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
160
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
161 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
162 QAction* action = menu->addAction(tr("E&xit"), qApp, &QApplication::quit);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
163 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
164 }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
165
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
166 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
167 /* Services */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
168 QMenu* menu = menubar->addMenu(tr("&Services"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
169 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
170 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
171 QAction* action = menu->addAction(tr("Synchronize &list"), [this] { AsyncSynchronize(stack.get()); });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
172 action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_S));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
173 }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
174
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
175 // menu->addSeparator();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
176 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
177 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
178 // /* AniList */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
179 // QMenu* submenu = menu->addMenu(tr("&AniList"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
180 // QAction* action = submenu->addAction(tr("Go to my &profile"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
181 // action = submenu->addAction(tr("Go to my &stats"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
182 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
183 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
184 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
185 // /* Kitsu */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
186 // QMenu* submenu = menu->addMenu(tr("&Kitsu"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
187 // QAction* action = submenu->addAction(tr("Go to my &feed"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
188 // action = submenu->addAction(tr("Go to my &library"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
189 // action = submenu->addAction(tr("Go to my &profile"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
190 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
191 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
192 // QMenu* submenu = menu->addMenu(tr("&MyAnimeList"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
193 // QAction* action = submenu->addAction(tr("Go to my p&anel"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
194 // action = submenu->addAction(tr("Go to my &profile"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
195 // action = submenu->addAction(tr("Go to my &history"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
196 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
197 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
198 }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
199
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
200 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
201 /* Tools */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
202 QMenu* menu = menubar->addMenu(tr("&Tools"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
203 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
204 // /* Export anime list */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
205 // QMenu* submenu = menu->addMenu(tr("&Export anime list"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
206 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
207 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
208 // /* Markdown export */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
209 // QAction* action = submenu->addAction(tr("Export as &Markdown..."));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
210 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
211 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
212 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
213 // /* XML export */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
214 // QAction* action = submenu->addAction(tr("Export as MyAnimeList &XML..."));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
215 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
216 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
217 // menu->addSeparator();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
218 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
219 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
220 // QAction* action = menu->addAction(tr("Enable anime &recognition"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
221 // action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
222 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
223 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
224 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
225 // QAction* action = menu->addAction(tr("Enable auto &sharing"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
226 // action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
227 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
228 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
229 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
230 // QAction* action = menu->addAction(tr("Enable &auto synchronization"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
231 // action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
232 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
233 //
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
234 // menu->addSeparator();
44
619cbd6e69f9 filesystem: fix CreateDirectories function
Paper <mrpapersonic@gmail.com>
parents: 37
diff changeset
235
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
236 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
237 QAction* action = menu->addAction(tr("&Settings"), [this] {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
238 SettingsDialog dialog(this);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
239 dialog.exec();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
240 });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
241 action->setMenuRole(QAction::PreferencesRole);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
242 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
243 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
244
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
245 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
246 /* View */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
247 QMenu* menu = menubar->addMenu(tr("&View"));
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
248
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
249 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
250 /* Pages... */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
251 std::map<QAction*, int> page_to_index_map = {};
58
b7a1c0010ffd sidebar: link view menu and sidebar together
Paper <mrpapersonic@gmail.com>
parents: 54
diff changeset
252
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
253 QActionGroup* pages_group = new QActionGroup(this);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
254 pages_group->setExclusive(true);
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
255
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
256 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
257 QAction* action = pages_group->addAction(menu->addAction(tr("&Now Playing")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
258 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
259 page_to_index_map[action] = 0;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
260 }
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
261
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
262 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
263 QAction* action = pages_group->addAction(menu->addAction(tr("&Anime List")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
264 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
265 action->setChecked(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
266 page_to_index_map[action] = 1;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
267 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
268
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
269 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
270 QAction* action = pages_group->addAction(menu->addAction(tr("&History")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
271 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
272 page_to_index_map[action] = 2;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
273 }
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
274
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
275 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
276 QAction* action = pages_group->addAction(menu->addAction(tr("&Statistics")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
277 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
278 page_to_index_map[action] = 3;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
279 }
48
e613772f41d5 statistics.cpp: show requests made
Paper <mrpapersonic@gmail.com>
parents: 46
diff changeset
280
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
281 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
282 QAction* action = pages_group->addAction(menu->addAction(tr("S&earch")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
283 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
284 page_to_index_map[action] = 4;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
285 }
44
619cbd6e69f9 filesystem: fix CreateDirectories function
Paper <mrpapersonic@gmail.com>
parents: 37
diff changeset
286
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
287 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
288 QAction* action = pages_group->addAction(menu->addAction(tr("Se&asons")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
289 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
290 page_to_index_map[action] = 5;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
291 }
54
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
292
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
293 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
294 QAction* action = pages_group->addAction(menu->addAction(tr("&Torrents")));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
295 action->setCheckable(true);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
296 page_to_index_map[action] = 6;
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
297 }
54
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
298
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
299 /* pain in my ass */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
300 connect(sidebar.get(), &SideBar::CurrentItemChanged, this,
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
301 [pages_group](int index) { pages_group->actions()[index]->setChecked(true); });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
302
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
303 connect(pages_group, &QActionGroup::triggered, this,
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
304 [this, page_to_index_map](QAction* action) { sidebar->SetCurrentItem(page_to_index_map.at(action)); });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
305 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
306
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
307 menu->addSeparator();
44
619cbd6e69f9 filesystem: fix CreateDirectories function
Paper <mrpapersonic@gmail.com>
parents: 37
diff changeset
308
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
309 // {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
310 // QAction* action = menu->addAction(tr("Show sidebar"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
311 // }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
312 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
313
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
314 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
315 /* Help */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
316 QMenu* menu = menubar->addMenu(tr("&Help"));
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
317
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
318 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
319 /* About Minori */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
320 menu->addAction(tr("&About Minori"), this, [this] {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
321 AboutWindow dialog(this);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
322 dialog.exec();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
323 });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
324 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
325
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
326 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
327 /* About Qt */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
328 QAction* action = menu->addAction(tr("About &Qt"), qApp, &QApplication::aboutQt);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
329 action->setMenuRole(QAction::AboutQtRole);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
330 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
331 }
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
332 /* QMainWindow will delete the old one for us,
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
333 according to the docs */
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
334 setMenuBar(menubar);
7
Paper <mrpapersonic@gmail.com>
parents: 6
diff changeset
335
68
2417121d894e *: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents: 64
diff changeset
336 /* Toolbar */
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
337
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
338 /* remove old toolbar(s) */
115
c72b907b9bef window: patch for Qt 5
Paper <mrpapersonic@gmail.com>
parents: 114
diff changeset
339 /* the empty QString() is a Qt 5 wart... */
c72b907b9bef window: patch for Qt 5
Paper <mrpapersonic@gmail.com>
parents: 114
diff changeset
340 for (QToolBar*& t : findChildren<QToolBar*>(QString(), Qt::FindDirectChildrenOnly)) {
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
341 removeToolBar(t);
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
342 delete t;
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
343 }
79
c489dd4434af *: what did I do again?
Paper <mrpapersonic@gmail.com>
parents: 77
diff changeset
344
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
345 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
346 /* Toolbar */
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
347 QToolBar* toolbar = new QToolBar(this);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
348 toolbar->addAction(QIcon(":/icons/24x24/arrow-circle-double-135.png"), tr("&Synchronize"),
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
349 [this] { AsyncSynchronize(stack.get()); });
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
350
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
351 toolbar->addSeparator();
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
352
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
353 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
354 QToolButton* button = new QToolButton(toolbar);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
355 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
356 QMenu* menu = new QMenu(button);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
357 QAction* action = menu->addAction(tr("..."));
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
358
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
359 button->setMenu(menu);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
360 }
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
361 button->setIcon(QIcon(":/icons/24x24/folder-open.png"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
362 button->setPopupMode(QToolButton::InstantPopup);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
363 toolbar->addWidget(button);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
364 }
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
365
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
366 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
367 QToolButton* button = new QToolButton(toolbar);
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
368
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
369 {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
370 QMenu* menu = new QMenu(button);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
371 QAction* action = menu->addAction(tr("..."));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
372
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
373 button->setMenu(menu);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
374 }
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
375
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
376 button->setIcon(QIcon(":/icons/24x24/application-export.png"));
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
377 button->setPopupMode(QToolButton::InstantPopup);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
378 toolbar->addWidget(button);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
379 }
69
27a19dd6cba1 *: fix up some stuff
Paper <mrpapersonic@gmail.com>
parents: 68
diff changeset
380
114
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
381 toolbar->addSeparator();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
382 toolbar->addAction(QIcon(":/icons/24x24/gear.png"), tr("S&ettings"), [this] {
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
383 SettingsDialog dialog(this);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
384 dialog.exec();
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
385 });
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
386 addToolBar(toolbar);
ab191e28e69d *: add initial torrent stuff
Paper <mrpapersonic@gmail.com>
parents: 113
diff changeset
387 }
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
388 }
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
389
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
390 void MainWindow::SetActivePage(QWidget* page) {
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
391 this->setCentralWidget(page);
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
392 }
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
393
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
394 void MainWindow::AsyncSynchronize(QStackedWidget* stack) {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
395 if (session.config.service == Anime::Services::NONE) {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
396 QMessageBox msg;
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
397 msg.setWindowTitle(tr("Error synchronizing with service!"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
398 msg.setText(tr("It seems you haven't yet selected a service to use."));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
399 msg.setInformativeText(tr("Would you like to select one now?"));
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
400 msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
401 msg.setDefaultButton(QMessageBox::Yes);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
402 int ret = msg.exec();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
403 if (ret == QMessageBox::Yes) {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
404 SettingsDialog dialog;
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
405 dialog.exec();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
406 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
407 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
408 QThreadPool::globalInstance()->start([stack] {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
409 Services::Synchronize();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
410 reinterpret_cast<AnimeListPage*>(stack->widget(static_cast<int>(Pages::ANIME_LIST)))->Refresh();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
411 });
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
412 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
413
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
414 void MainWindow::RetranslateUI() {
113
32afe0e940bf window: remove tiny little debug thing
Paper <mrpapersonic@gmail.com>
parents: 112
diff changeset
415 /* This kinda sucks but nobody's really going to be changing
32afe0e940bf window: remove tiny little debug thing
Paper <mrpapersonic@gmail.com>
parents: 112
diff changeset
416 the application language all the time :p */
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
417 setUpdatesEnabled(false);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
418 AddMainWidgets();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
419 CreateBars();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
420 setUpdatesEnabled(true);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
421 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
422
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
423 void MainWindow::changeEvent(QEvent* event) {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
424 if (event) { /* is this really necessary */
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
425 switch (event->type()) {
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
426 // this event is send if a translator is loaded
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
427 case QEvent::LanguageChange:
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
428 RetranslateUI();
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
429 break;
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
430
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
431 default:
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
432 break;
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
433 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
434 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
435 QMainWindow::changeEvent(event);
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
436 }
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
437
105
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
438 void MainWindow::showEvent(QShowEvent* event) {
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
439 QMainWindow::showEvent(event);
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
440 #ifdef WIN32
112
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
441 /* Technically this *should* be
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
442 session.config.theme.IsInDarkTheme() && win32::IsInDarkTheme()
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
443 but I prefer the title bar being black even when light mode
80f49f623d30 locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents: 108
diff changeset
444 is enabled :/ */
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 106
diff changeset
445 win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme());
105
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
446 #endif
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
447 }
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 103
diff changeset
448
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
449 void MainWindow::closeEvent(QCloseEvent* event) {
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
450 session.config.Save();
118
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 115
diff changeset
451 Track::Types::SavePlayers(session.recognition.players);
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 115
diff changeset
452 Track::Types::SaveExtensions(session.recognition.extensions);
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
453 event->accept();
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
454 }
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
455
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 8
diff changeset
456 #include "gui/moc_window.cpp"