Mercurial > minori
comparison src/main.cpp @ 7:07a9095eaeed
Update
Refactored some code, moved some around
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Thu, 24 Aug 2023 23:11:38 -0400 |
parents | 1d82f6e04d7d |
children | b1f73678ef61 |
comparison
equal
deleted
inserted
replaced
6:1d82f6e04d7d | 7:07a9095eaeed |
---|---|
1 #include <QApplication> | |
2 #include <QMainWindow> | |
3 #include <QMenuBar> | |
4 #include <QPlainTextEdit> | |
5 #include <QStackedWidget> | |
6 #include <QFile> | |
7 #include <QTextStream> | |
8 #include <QMessageBox> | |
1 #include "window.h" | 9 #include "window.h" |
2 #include "config.h" | 10 #include "config.h" |
3 #include "anime.h" | 11 #include "anime_list.h" |
12 #include "now_playing.h" | |
13 #include "statistics.h" | |
4 #include "sidebar.h" | 14 #include "sidebar.h" |
5 #include "ui_utils.h" | 15 #include "ui_utils.h" |
6 #include "settings.h" | 16 #include "settings.h" |
17 #include "session.h" | |
7 #if MACOSX | 18 #if MACOSX |
8 #include "sys/osx/dark_theme.h" | 19 #include "sys/osx/dark_theme.h" |
9 #elif WIN32 | 20 #elif WIN32 |
10 #include "sys/win32/dark_theme.h" | 21 #include "sys/win32/dark_theme.h" |
11 #endif | 22 #endif |
12 | 23 |
13 Session session = { | 24 Session session; |
14 .config = Config() | |
15 }; | |
16 | 25 |
17 /* note that this code was originally created for use in | 26 /* note that this code was originally created for use in |
18 wxWidgets, but I thought the API was a little meh, so | 27 wxWidgets, but I thought the API was a little meh, so |
19 I switched to Qt. */ | 28 I switched to Qt. */ |
20 | 29 |
77 SettingsDialog dialog(this); | 86 SettingsDialog dialog(this); |
78 dialog.exec(); | 87 dialog.exec(); |
79 }); | 88 }); |
80 | 89 |
81 setMenuBar(menubar); | 90 setMenuBar(menubar); |
82 | 91 |
83 /* Side toolbar */ | |
84 SideBar* sidebar = new SideBar(main_widget); | 92 SideBar* sidebar = new SideBar(main_widget); |
85 sidebar->AddItem("Now Playing", UiUtils::CreateSideBarIcon(":/icons/16x16/film.png")); | 93 sidebar->AddItem("Now Playing", UiUtils::CreateSideBarIcon(":/icons/16x16/film.png")); |
86 sidebar->AddSeparator(); | 94 sidebar->AddSeparator(); |
87 sidebar->AddItem("Anime List", UiUtils::CreateSideBarIcon(":/icons/16x16/document-list.png")); | 95 sidebar->AddItem("Anime List", UiUtils::CreateSideBarIcon(":/icons/16x16/document-list.png")); |
88 sidebar->AddItem("History", UiUtils::CreateSideBarIcon(":/icons/16x16/clock-history-frame.png")); | 96 sidebar->AddItem("History", UiUtils::CreateSideBarIcon(":/icons/16x16/clock-history-frame.png")); |
92 sidebar->AddItem("Seasons", UiUtils::CreateSideBarIcon(":/icons/16x16/calendar.png")); | 100 sidebar->AddItem("Seasons", UiUtils::CreateSideBarIcon(":/icons/16x16/calendar.png")); |
93 sidebar->AddItem("Torrents", UiUtils::CreateSideBarIcon(":/icons/16x16/feed.png")); | 101 sidebar->AddItem("Torrents", UiUtils::CreateSideBarIcon(":/icons/16x16/feed.png")); |
94 sidebar->setFixedWidth(128); | 102 sidebar->setFixedWidth(128); |
95 sidebar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); | 103 sidebar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); |
96 | 104 |
97 anime_list_page = new AnimeListPage(parent); | 105 QStackedWidget* stack = new QStackedWidget(main_widget); |
106 stack->addWidget(new NowPlayingWidget(parent)); | |
107 AnimeListWidget* list_widget = new AnimeListWidget(parent); | |
108 list_widget->SyncAnimeList(); | |
109 stack->addWidget(list_widget); | |
110 stack->addWidget(new StatisticsWidget(list_widget, parent)); | |
111 | |
112 connect(sidebar, &SideBar::CurrentItemChanged, stack, [stack](int index){ | |
113 switch (index) { | |
114 case 0: | |
115 case 1: | |
116 case 2: | |
117 stack->setCurrentIndex(index); | |
118 break; | |
119 default: | |
120 break; | |
121 } | |
122 }); | |
123 sidebar->setCurrentRow(2); | |
98 | 124 |
99 QHBoxLayout* layout = new QHBoxLayout(main_widget); | 125 QHBoxLayout* layout = new QHBoxLayout(main_widget); |
100 layout->addWidget(sidebar, 0, Qt::AlignLeft | Qt::AlignTop); | 126 layout->addWidget(sidebar, 0, Qt::AlignLeft | Qt::AlignTop); |
101 layout->addWidget(anime_list_page); | 127 layout->addWidget(stack); |
102 SetActivePage(main_widget); | 128 setCentralWidget(main_widget); |
103 /* | 129 |
104 QToolBar* toolbar = new QToolBar(parent); | |
105 QActionGroup* tb_action_group = new QActionGroup(toolbar); | |
106 | |
107 action = toolbar->addAction("Now Playing"); | |
108 action->setActionGroup(tb_action_group); | |
109 action->setCheckable(true); | |
110 | |
111 toolbar->addSeparator(); | |
112 | |
113 action = toolbar->addAction("Anime List", [this]() { | |
114 setCentralWidget(anime_list_page); | |
115 }); | |
116 action->setActionGroup(tb_action_group); | |
117 action->setCheckable(true); | |
118 action->setChecked(true); | |
119 anime_list_page = new AnimeListPage(parent); | |
120 SetActivePage(anime_list_page); | |
121 action = toolbar->addAction("History"); | |
122 action->setActionGroup(tb_action_group); | |
123 action->setCheckable(true); | |
124 action = toolbar->addAction("Statistics"); | |
125 action->setActionGroup(tb_action_group); | |
126 action->setCheckable(true); | |
127 | |
128 toolbar->addSeparator(); | |
129 | |
130 action = toolbar->addAction("Search"); | |
131 action->setActionGroup(tb_action_group); | |
132 action->setCheckable(true); | |
133 action = toolbar->addAction("Seasons"); | |
134 action->setActionGroup(tb_action_group); | |
135 action->setCheckable(true); | |
136 action = toolbar->addAction("Torrents"); | |
137 action->setActionGroup(tb_action_group); | |
138 action->setCheckable(true); | |
139 | |
140 toolbar->setMovable(false); | |
141 toolbar->setFloatable(false); | |
142 toolbar->setMinimumSize(QSize(140, 0)); | |
143 toolbar->setObjectName("sidebar"); | |
144 toolbar->setStyleSheet("QToolBar#sidebar{margin: 6px;}"); | |
145 //toolbar->setFrameShape(QFrame::NoFrame); | |
146 toolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Maximum); | |
147 | |
148 addToolBar(Qt::LeftToolBarArea, toolbar); | |
149 */ | |
150 ThemeChanged(); | 130 ThemeChanged(); |
151 } | 131 } |
152 | 132 |
153 void MainWindow::SetStyleSheet(enum Themes theme) { | 133 void MainWindow::SetStyleSheet(enum Themes theme) { |
154 switch (theme) { | 134 switch (theme) { |