diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/yuzu/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.cpp | 11 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.h | 3 | ||||
| -rw-r--r-- | src/yuzu/loading_screen.cpp | 71 | ||||
| -rw-r--r-- | src/yuzu/loading_screen.h | 50 | ||||
| -rw-r--r-- | src/yuzu/loading_screen.ui | 79 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 26 | ||||
| -rw-r--r-- | src/yuzu/main.h | 4 |
8 files changed, 239 insertions, 10 deletions
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 1f852df4b..4cab599b4 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt | |||
| @@ -68,6 +68,8 @@ add_executable(yuzu | |||
| 68 | game_list_p.h | 68 | game_list_p.h |
| 69 | game_list_worker.cpp | 69 | game_list_worker.cpp |
| 70 | game_list_worker.h | 70 | game_list_worker.h |
| 71 | loading_screen.cpp | ||
| 72 | loading_screen.h | ||
| 71 | hotkeys.cpp | 73 | hotkeys.cpp |
| 72 | hotkeys.h | 74 | hotkeys.h |
| 73 | main.cpp | 75 | main.cpp |
| @@ -102,9 +104,10 @@ set(UIS | |||
| 102 | configuration/configure_system.ui | 104 | configuration/configure_system.ui |
| 103 | configuration/configure_touchscreen_advanced.ui | 105 | configuration/configure_touchscreen_advanced.ui |
| 104 | configuration/configure_web.ui | 106 | configuration/configure_web.ui |
| 107 | compatdb.ui | ||
| 105 | hotkeys.ui | 108 | hotkeys.ui |
| 109 | loading_screen.ui | ||
| 106 | main.ui | 110 | main.ui |
| 107 | compatdb.ui | ||
| 108 | ) | 111 | ) |
| 109 | 112 | ||
| 110 | file(GLOB COMPAT_LIST | 113 | file(GLOB COMPAT_LIST |
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index 40db7a5e9..f74cb693a 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp | |||
| @@ -3,9 +3,7 @@ | |||
| 3 | #include <QKeyEvent> | 3 | #include <QKeyEvent> |
| 4 | #include <QScreen> | 4 | #include <QScreen> |
| 5 | #include <QWindow> | 5 | #include <QWindow> |
| 6 | |||
| 7 | #include <fmt/format.h> | 6 | #include <fmt/format.h> |
| 8 | |||
| 9 | #include "common/microprofile.h" | 7 | #include "common/microprofile.h" |
| 10 | #include "common/scm_rev.h" | 8 | #include "common/scm_rev.h" |
| 11 | #include "core/core.h" | 9 | #include "core/core.h" |
| @@ -17,6 +15,7 @@ | |||
| 17 | #include "video_core/renderer_base.h" | 15 | #include "video_core/renderer_base.h" |
| 18 | #include "video_core/video_core.h" | 16 | #include "video_core/video_core.h" |
| 19 | #include "yuzu/bootmanager.h" | 17 | #include "yuzu/bootmanager.h" |
| 18 | #include "yuzu/main.h" | ||
| 20 | 19 | ||
| 21 | EmuThread::EmuThread(GRenderWindow* render_window) : render_window(render_window) {} | 20 | EmuThread::EmuThread(GRenderWindow* render_window) : render_window(render_window) {} |
| 22 | 21 | ||
| @@ -114,6 +113,8 @@ GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread) | |||
| 114 | 113 | ||
| 115 | InputCommon::Init(); | 114 | InputCommon::Init(); |
| 116 | InputCommon::StartJoystickEventHandler(); | 115 | InputCommon::StartJoystickEventHandler(); |
| 116 | connect(this, &GRenderWindow::FirstFrameDisplayed, static_cast<GMainWindow*>(parent), | ||
| 117 | &GMainWindow::OnLoadComplete); | ||
| 117 | } | 118 | } |
| 118 | 119 | ||
| 119 | GRenderWindow::~GRenderWindow() { | 120 | GRenderWindow::~GRenderWindow() { |
| @@ -141,6 +142,10 @@ void GRenderWindow::SwapBuffers() { | |||
| 141 | child->makeCurrent(); | 142 | child->makeCurrent(); |
| 142 | 143 | ||
| 143 | child->swapBuffers(); | 144 | child->swapBuffers(); |
| 145 | if (!first_frame) { | ||
| 146 | emit FirstFrameDisplayed(); | ||
| 147 | first_frame = true; | ||
| 148 | } | ||
| 144 | } | 149 | } |
| 145 | 150 | ||
| 146 | void GRenderWindow::MakeCurrent() { | 151 | void GRenderWindow::MakeCurrent() { |
| @@ -309,6 +314,8 @@ void GRenderWindow::InitRenderTarget() { | |||
| 309 | delete layout(); | 314 | delete layout(); |
| 310 | } | 315 | } |
| 311 | 316 | ||
| 317 | first_frame = false; | ||
| 318 | |||
| 312 | // TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, | 319 | // TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, |
| 313 | // WA_DontShowOnScreen, WA_DeleteOnClose | 320 | // WA_DontShowOnScreen, WA_DeleteOnClose |
| 314 | QGLFormat fmt; | 321 | QGLFormat fmt; |
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h index 4e3028215..d1f37e503 100644 --- a/src/yuzu/bootmanager.h +++ b/src/yuzu/bootmanager.h | |||
| @@ -152,6 +152,7 @@ public slots: | |||
| 152 | signals: | 152 | signals: |
| 153 | /// Emitted when the window is closed | 153 | /// Emitted when the window is closed |
| 154 | void Closed(); | 154 | void Closed(); |
| 155 | void FirstFrameDisplayed(); | ||
| 155 | 156 | ||
| 156 | private: | 157 | private: |
| 157 | std::pair<unsigned, unsigned> ScaleTouch(const QPointF pos) const; | 158 | std::pair<unsigned, unsigned> ScaleTouch(const QPointF pos) const; |
| @@ -171,6 +172,8 @@ private: | |||
| 171 | /// Temporary storage of the screenshot taken | 172 | /// Temporary storage of the screenshot taken |
| 172 | QImage screenshot_image; | 173 | QImage screenshot_image; |
| 173 | 174 | ||
| 175 | bool first_frame = false; | ||
| 176 | |||
| 174 | protected: | 177 | protected: |
| 175 | void showEvent(QShowEvent* event) override; | 178 | void showEvent(QShowEvent* event) override; |
| 176 | }; | 179 | }; |
diff --git a/src/yuzu/loading_screen.cpp b/src/yuzu/loading_screen.cpp new file mode 100644 index 000000000..f2d3214f6 --- /dev/null +++ b/src/yuzu/loading_screen.cpp | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | // Copyright 2019 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <QBuffer> | ||
| 6 | #include <QByteArray> | ||
| 7 | #include <QHBoxLayout> | ||
| 8 | #include <QIODevice> | ||
| 9 | #include <QImage> | ||
| 10 | #include <QLabel> | ||
| 11 | #include <QMovie> | ||
| 12 | #include <QPainter> | ||
| 13 | #include <QPalette> | ||
| 14 | #include <QPixmap> | ||
| 15 | #include <QProgressBar> | ||
| 16 | #include <QStyleOption> | ||
| 17 | #include <QWindow> | ||
| 18 | #include "common/logging/log.h" | ||
| 19 | #include "core/loader/loader.h" | ||
| 20 | #include "ui_loading_screen.h" | ||
| 21 | #include "yuzu/loading_screen.h" | ||
| 22 | |||
| 23 | LoadingScreen::LoadingScreen(QWidget* parent) | ||
| 24 | : QWidget(parent), ui(std::make_unique<Ui::LoadingScreen>()) { | ||
| 25 | ui->setupUi(this); | ||
| 26 | // Progress bar is hidden until we have a use for it. | ||
| 27 | ui->progress_bar->hide(); | ||
| 28 | } | ||
| 29 | |||
| 30 | LoadingScreen::~LoadingScreen() = default; | ||
| 31 | |||
| 32 | void LoadingScreen::Prepare(Loader::AppLoader& loader) { | ||
| 33 | std::vector<u8> buffer; | ||
| 34 | if (loader.ReadBanner(buffer) == Loader::ResultStatus::Success) { | ||
| 35 | backing_mem = | ||
| 36 | std::make_unique<QByteArray>(reinterpret_cast<char*>(buffer.data()), buffer.size()); | ||
| 37 | backing_buf = std::make_unique<QBuffer>(backing_mem.get()); | ||
| 38 | backing_buf->open(QIODevice::ReadOnly); | ||
| 39 | animation = std::make_unique<QMovie>(backing_buf.get(), QByteArray("GIF")); | ||
| 40 | animation->start(); | ||
| 41 | ui->banner->setMovie(animation.get()); | ||
| 42 | buffer.clear(); | ||
| 43 | } | ||
| 44 | if (loader.ReadLogo(buffer) == Loader::ResultStatus::Success) { | ||
| 45 | QPixmap map; | ||
| 46 | map.loadFromData(buffer.data(), buffer.size()); | ||
| 47 | ui->logo->setPixmap(map); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | void LoadingScreen::OnLoadProgress(std::size_t value, std::size_t total) { | ||
| 52 | if (total != previous_total) { | ||
| 53 | ui->progress_bar->setMaximum(total); | ||
| 54 | previous_total = total; | ||
| 55 | } | ||
| 56 | ui->progress_bar->setValue(value); | ||
| 57 | } | ||
| 58 | |||
| 59 | void LoadingScreen::paintEvent(QPaintEvent* event) { | ||
| 60 | QStyleOption opt; | ||
| 61 | opt.init(this); | ||
| 62 | QPainter p(this); | ||
| 63 | style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); | ||
| 64 | QWidget::paintEvent(event); | ||
| 65 | } | ||
| 66 | |||
| 67 | void LoadingScreen::Clear() { | ||
| 68 | animation.reset(); | ||
| 69 | backing_buf.reset(); | ||
| 70 | backing_mem.reset(); | ||
| 71 | } | ||
diff --git a/src/yuzu/loading_screen.h b/src/yuzu/loading_screen.h new file mode 100644 index 000000000..ffcaa260d --- /dev/null +++ b/src/yuzu/loading_screen.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | // Copyright 2019 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <memory> | ||
| 8 | #include <QWidget> | ||
| 9 | |||
| 10 | namespace Loader { | ||
| 11 | class AppLoader; | ||
| 12 | } | ||
| 13 | |||
| 14 | namespace Ui { | ||
| 15 | class LoadingScreen; | ||
| 16 | } | ||
| 17 | |||
| 18 | class QBuffer; | ||
| 19 | class QByteArray; | ||
| 20 | class QMovie; | ||
| 21 | |||
| 22 | class LoadingScreen : public QWidget { | ||
| 23 | Q_OBJECT | ||
| 24 | |||
| 25 | public: | ||
| 26 | explicit LoadingScreen(QWidget* parent = nullptr); | ||
| 27 | |||
| 28 | ~LoadingScreen(); | ||
| 29 | |||
| 30 | /// Call before showing the loading screen to load the widgets with the logo and banner for the | ||
| 31 | /// currently loaded application. | ||
| 32 | void Prepare(Loader::AppLoader& loader); | ||
| 33 | |||
| 34 | /// After the loading screen is hidden, the owner of this class can call this to clean up any | ||
| 35 | /// used resources such as the logo and banner. | ||
| 36 | void Clear(); | ||
| 37 | |||
| 38 | // In order to use a custom widget with a stylesheet, you need to override the paintEvent | ||
| 39 | // See https://wiki.qt.io/How_to_Change_the_Background_Color_of_QWidget | ||
| 40 | void paintEvent(QPaintEvent* event) override; | ||
| 41 | |||
| 42 | void OnLoadProgress(std::size_t value, std::size_t total); | ||
| 43 | |||
| 44 | private: | ||
| 45 | std::unique_ptr<QMovie> animation; | ||
| 46 | std::unique_ptr<QBuffer> backing_buf; | ||
| 47 | std::unique_ptr<QByteArray> backing_mem; | ||
| 48 | std::unique_ptr<Ui::LoadingScreen> ui; | ||
| 49 | std::size_t previous_total = 0; | ||
| 50 | }; | ||
diff --git a/src/yuzu/loading_screen.ui b/src/yuzu/loading_screen.ui new file mode 100644 index 000000000..00579b670 --- /dev/null +++ b/src/yuzu/loading_screen.ui | |||
| @@ -0,0 +1,79 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <ui version="4.0"> | ||
| 3 | <class>LoadingScreen</class> | ||
| 4 | <widget class="QWidget" name="LoadingScreen"> | ||
| 5 | <property name="geometry"> | ||
| 6 | <rect> | ||
| 7 | <x>0</x> | ||
| 8 | <y>0</y> | ||
| 9 | <width>746</width> | ||
| 10 | <height>495</height> | ||
| 11 | </rect> | ||
| 12 | </property> | ||
| 13 | <property name="styleSheet"> | ||
| 14 | <string notr="true">background-color: rgb(0, 0, 0);</string> | ||
| 15 | </property> | ||
| 16 | <layout class="QVBoxLayout"> | ||
| 17 | <property name="spacing"> | ||
| 18 | <number>0</number> | ||
| 19 | </property> | ||
| 20 | <property name="leftMargin"> | ||
| 21 | <number>0</number> | ||
| 22 | </property> | ||
| 23 | <property name="topMargin"> | ||
| 24 | <number>0</number> | ||
| 25 | </property> | ||
| 26 | <property name="rightMargin"> | ||
| 27 | <number>0</number> | ||
| 28 | </property> | ||
| 29 | <property name="bottomMargin"> | ||
| 30 | <number>0</number> | ||
| 31 | </property> | ||
| 32 | <item> | ||
| 33 | <widget class="QLabel" name="logo"> | ||
| 34 | <property name="text"> | ||
| 35 | <string/> | ||
| 36 | </property> | ||
| 37 | <property name="alignment"> | ||
| 38 | <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> | ||
| 39 | </property> | ||
| 40 | <property name="margin"> | ||
| 41 | <number>30</number> | ||
| 42 | </property> | ||
| 43 | </widget> | ||
| 44 | </item> | ||
| 45 | <item> | ||
| 46 | <layout class="QHBoxLayout" name="horizontalLayout"> | ||
| 47 | <item> | ||
| 48 | <widget class="QProgressBar" name="progress_bar"> | ||
| 49 | <property name="styleSheet"> | ||
| 50 | <string notr="true">font-size: 26px;</string> | ||
| 51 | </property> | ||
| 52 | <property name="value"> | ||
| 53 | <number>0</number> | ||
| 54 | </property> | ||
| 55 | <property name="format"> | ||
| 56 | <string>Loading Shaders %v out of %m</string> | ||
| 57 | </property> | ||
| 58 | </widget> | ||
| 59 | </item> | ||
| 60 | </layout> | ||
| 61 | </item> | ||
| 62 | <item alignment="Qt::AlignRight|Qt::AlignBottom"> | ||
| 63 | <widget class="QLabel" name="banner"> | ||
| 64 | <property name="styleSheet"> | ||
| 65 | <string notr="true">background-color: black;</string> | ||
| 66 | </property> | ||
| 67 | <property name="text"> | ||
| 68 | <string/> | ||
| 69 | </property> | ||
| 70 | <property name="margin"> | ||
| 71 | <number>30</number> | ||
| 72 | </property> | ||
| 73 | </widget> | ||
| 74 | </item> | ||
| 75 | </layout> | ||
| 76 | </widget> | ||
| 77 | <resources/> | ||
| 78 | <connections/> | ||
| 79 | </ui> | ||
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f564de994..68bfa23ab 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -92,6 +92,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual | |||
| 92 | #include "yuzu/game_list.h" | 92 | #include "yuzu/game_list.h" |
| 93 | #include "yuzu/game_list_p.h" | 93 | #include "yuzu/game_list_p.h" |
| 94 | #include "yuzu/hotkeys.h" | 94 | #include "yuzu/hotkeys.h" |
| 95 | #include "yuzu/loading_screen.h" | ||
| 95 | #include "yuzu/main.h" | 96 | #include "yuzu/main.h" |
| 96 | #include "yuzu/ui_settings.h" | 97 | #include "yuzu/ui_settings.h" |
| 97 | 98 | ||
| @@ -411,6 +412,10 @@ void GMainWindow::InitializeWidgets() { | |||
| 411 | game_list = new GameList(vfs, this); | 412 | game_list = new GameList(vfs, this); |
| 412 | ui.horizontalLayout->addWidget(game_list); | 413 | ui.horizontalLayout->addWidget(game_list); |
| 413 | 414 | ||
| 415 | loading_screen = new LoadingScreen(this); | ||
| 416 | loading_screen->hide(); | ||
| 417 | ui.horizontalLayout->addWidget(loading_screen); | ||
| 418 | |||
| 414 | // Create status bar | 419 | // Create status bar |
| 415 | message_label = new QLabel(); | 420 | message_label = new QLabel(); |
| 416 | // Configured separately for left alignment | 421 | // Configured separately for left alignment |
| @@ -897,8 +902,9 @@ void GMainWindow::BootGame(const QString& filename) { | |||
| 897 | .arg(Common::g_build_fullname, Common::g_scm_branch, Common::g_scm_desc, | 902 | .arg(Common::g_build_fullname, Common::g_scm_branch, Common::g_scm_desc, |
| 898 | QString::fromStdString(title_name))); | 903 | QString::fromStdString(title_name))); |
| 899 | 904 | ||
| 900 | render_window->show(); | 905 | loading_screen->Prepare(Core::System::GetInstance().GetAppLoader()); |
| 901 | render_window->setFocus(); | 906 | loading_screen->show(); |
| 907 | loading_screen->setFocus(); | ||
| 902 | 908 | ||
| 903 | emulation_running = true; | 909 | emulation_running = true; |
| 904 | if (ui.action_Fullscreen->isChecked()) { | 910 | if (ui.action_Fullscreen->isChecked()) { |
| @@ -932,6 +938,8 @@ void GMainWindow::ShutdownGame() { | |||
| 932 | ui.action_Load_Amiibo->setEnabled(false); | 938 | ui.action_Load_Amiibo->setEnabled(false); |
| 933 | ui.action_Capture_Screenshot->setEnabled(false); | 939 | ui.action_Capture_Screenshot->setEnabled(false); |
| 934 | render_window->hide(); | 940 | render_window->hide(); |
| 941 | loading_screen->hide(); | ||
| 942 | loading_screen->Clear(); | ||
| 935 | game_list->show(); | 943 | game_list->show(); |
| 936 | game_list->setFilterFocus(); | 944 | game_list->setFilterFocus(); |
| 937 | setWindowTitle(QString("yuzu %1| %2-%3") | 945 | setWindowTitle(QString("yuzu %1| %2-%3") |
| @@ -1505,6 +1513,13 @@ void GMainWindow::OnStopGame() { | |||
| 1505 | ShutdownGame(); | 1513 | ShutdownGame(); |
| 1506 | } | 1514 | } |
| 1507 | 1515 | ||
| 1516 | void GMainWindow::OnLoadComplete() { | ||
| 1517 | loading_screen->hide(); | ||
| 1518 | loading_screen->Clear(); | ||
| 1519 | render_window->show(); | ||
| 1520 | render_window->setFocus(); | ||
| 1521 | } | ||
| 1522 | |||
| 1508 | void GMainWindow::OnMenuReportCompatibility() { | 1523 | void GMainWindow::OnMenuReportCompatibility() { |
| 1509 | if (!Settings::values.yuzu_token.empty() && !Settings::values.yuzu_username.empty()) { | 1524 | if (!Settings::values.yuzu_token.empty() && !Settings::values.yuzu_username.empty()) { |
| 1510 | CompatDB compatdb{this}; | 1525 | CompatDB compatdb{this}; |
| @@ -1771,9 +1786,8 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) { | |||
| 1771 | this, tr("Confirm Key Rederivation"), | 1786 | this, tr("Confirm Key Rederivation"), |
| 1772 | tr("You are about to force rederive all of your keys. \nIf you do not know what this " | 1787 | tr("You are about to force rederive all of your keys. \nIf you do not know what this " |
| 1773 | "means or what you are doing, \nthis is a potentially destructive action. \nPlease " | 1788 | "means or what you are doing, \nthis is a potentially destructive action. \nPlease " |
| 1774 | "make " | 1789 | "make sure this is what you want \nand optionally make backups.\n\nThis will delete " |
| 1775 | "sure this is what you want \nand optionally make backups.\n\nThis will delete your " | 1790 | "your autogenerated key files and re-run the key derivation module."), |
| 1776 | "autogenerated key files and re-run the key derivation module."), | ||
| 1777 | QMessageBox::StandardButtons{QMessageBox::Ok, QMessageBox::Cancel}); | 1791 | QMessageBox::StandardButtons{QMessageBox::Ok, QMessageBox::Cancel}); |
| 1778 | 1792 | ||
| 1779 | if (res == QMessageBox::Cancel) | 1793 | if (res == QMessageBox::Cancel) |
| @@ -1818,7 +1832,7 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) { | |||
| 1818 | errors + | 1832 | errors + |
| 1819 | tr("<br><br>You can get all of these and dump all of your games easily by " | 1833 | tr("<br><br>You can get all of these and dump all of your games easily by " |
| 1820 | "following <a href='https://yuzu-emu.org/help/quickstart/'>the " | 1834 | "following <a href='https://yuzu-emu.org/help/quickstart/'>the " |
| 1821 | "quickstart guide</a>. Alternatively, you can use another method of dumping " | 1835 | "quickstart guide</a>. Alternatively, you can use another method of dumping" |
| 1822 | "to obtain all of your keys.")); | 1836 | "to obtain all of your keys.")); |
| 1823 | } | 1837 | } |
| 1824 | 1838 | ||
diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 2d705ad54..e07c892cf 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h | |||
| @@ -25,6 +25,7 @@ class GImageInfo; | |||
| 25 | class GraphicsBreakPointsWidget; | 25 | class GraphicsBreakPointsWidget; |
| 26 | class GraphicsSurfaceWidget; | 26 | class GraphicsSurfaceWidget; |
| 27 | class GRenderWindow; | 27 | class GRenderWindow; |
| 28 | class LoadingScreen; | ||
| 28 | class MicroProfileDialog; | 29 | class MicroProfileDialog; |
| 29 | class ProfilerWidget; | 30 | class ProfilerWidget; |
| 30 | class QLabel; | 31 | class QLabel; |
| @@ -109,10 +110,10 @@ signals: | |||
| 109 | void WebBrowserFinishedBrowsing(); | 110 | void WebBrowserFinishedBrowsing(); |
| 110 | 111 | ||
| 111 | public slots: | 112 | public slots: |
| 113 | void OnLoadComplete(); | ||
| 112 | void ProfileSelectorSelectProfile(); | 114 | void ProfileSelectorSelectProfile(); |
| 113 | void SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters); | 115 | void SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters); |
| 114 | void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message); | 116 | void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message); |
| 115 | |||
| 116 | void WebBrowserOpenPage(std::string_view filename, std::string_view arguments); | 117 | void WebBrowserOpenPage(std::string_view filename, std::string_view arguments); |
| 117 | 118 | ||
| 118 | private: | 119 | private: |
| @@ -212,6 +213,7 @@ private: | |||
| 212 | 213 | ||
| 213 | GRenderWindow* render_window; | 214 | GRenderWindow* render_window; |
| 214 | GameList* game_list; | 215 | GameList* game_list; |
| 216 | LoadingScreen* loading_screen; | ||
| 215 | 217 | ||
| 216 | // Status bar elements | 218 | // Status bar elements |
| 217 | QLabel* message_label = nullptr; | 219 | QLabel* message_label = nullptr; |