citra-qt : Implementing toolbar events

This commit is contained in:
Styleoshin 2017-09-24 16:03:08 +01:00
parent aaff548ef2
commit fe094cae28
3 changed files with 55 additions and 3 deletions

View File

@ -105,6 +105,7 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
ConnectMenuEvents();
ConnectWidgetEvents();
ConnectToolbarEvents();
setWindowTitle(QString("Citra %1| %2-%3")
.arg(Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc));
@ -325,6 +326,37 @@ void GMainWindow::ConnectMenuEvents() {
connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible);
}
void GMainWindow::ConnectToolbarEvents(){
// File
connect(ui.action_Toolbar_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile);
// Toggle fullscreen
connect(ui.action_Toolbar_Toggle_Fullscreen, &QAction::triggered, this, [this] {
if (isFullScreen()) {
showNormal();
ui.action_Toolbar_Toggle_Fullscreen->setIcon(QIcon(":toolbar_icons/rc/fullscreen.png"));
} else {
showFullScreen();
ui.action_Toolbar_Toggle_Fullscreen->setIcon(QIcon(":toolbar_icons/rc/fullscreen_exit.png"));
}
} );
// Emulation
connect(ui.action_Toolbar_Stop, &QAction::triggered, this, &GMainWindow::OnStopGame);
connect(ui.action_Toolbar_Start_Pause, &QAction::triggered, this, [this] {
if (emulation_running) {
OnPauseGame();
emulation_running = false;
} else {
OnStartGame();
emulation_running = true;
}
} );
// Configure
connect(ui.action_Toolbar_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure);
}
void GMainWindow::OnDisplayTitleBars(bool show) {
QList<QDockWidget*> widgets = findChildren<QDockWidget*>();
@ -483,6 +515,10 @@ void GMainWindow::ShutdownGame() {
disconnect(render_window, SIGNAL(Closed()), this, SLOT(OnStopGame()));
// Update the GUI
ui.action_Toolbar_Start_Pause->setEnabled(false);
ui.action_Toolbar_Start_Pause->setIcon(QIcon(":toolbar_icons/rc/play.png"));
ui.action_Toolbar_Start_Pause->setToolTip(tr("Start"));
ui.action_Toolbar_Stop->setEnabled(false);
ui.action_Start->setEnabled(false);
ui.action_Start->setText(tr("Start"));
ui.action_Pause->setEnabled(false);
@ -610,6 +646,12 @@ void GMainWindow::OnStartGame() {
ui.action_Pause->setEnabled(true);
ui.action_Stop->setEnabled(true);
ui.action_Toolbar_Start_Pause->setEnabled(true);
ui.action_Toolbar_Start_Pause->setIcon(QIcon(":toolbar_icons/rc/pause.png"));
ui.action_Toolbar_Start_Pause->setToolTip(tr("Pause"));
ui.action_Toolbar_Stop->setEnabled(true);
}
void GMainWindow::OnPauseGame() {
@ -618,6 +660,9 @@ void GMainWindow::OnPauseGame() {
ui.action_Start->setEnabled(true);
ui.action_Pause->setEnabled(false);
ui.action_Stop->setEnabled(true);
ui.action_Toolbar_Start_Pause->setIcon(QIcon(":toolbar_icons/rc/play.png"));
ui.action_Toolbar_Start_Pause->setToolTip(tr("Continue"));
}
void GMainWindow::OnStopGame() {

View File

@ -75,6 +75,7 @@ private:
void ConnectWidgetEvents();
void ConnectMenuEvents();
void ConnectToolbarEvents();
bool LoadROM(const QString& filename);
void BootGame(const QString& filename);

View File

@ -103,13 +103,16 @@
<addaction name="menu_Help"/>
</widget>
<widget class="QToolBar" name="toolbar">
<property name="enabled">
<bool>true</bool>
</property>
<property name="windowTitle">
<string>Toolbar</string>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>28</height>
<width>35</width>
<height>30</height>
</size>
</property>
<property name="floatable">
@ -248,6 +251,9 @@
</property>
</action>
<action name="action_Toolbar_Start_Pause">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="../../dist/toolbar_icons/toolbar_icons.qrc">
<normaloff>:/toolbar_icons/rc/start.png</normaloff>:/toolbar_icons/rc/start.png</iconset>
@ -276,7 +282,7 @@
</action>
<action name="action_Toolbar_Configure">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../../dist/toolbar_icons/toolbar_icons.qrc">