From 55be576cb99fae803b9bf01edb4e288bd587d5e3 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Thu, 9 Dec 2021 16:27:53 +0600 Subject: [PATCH] Implement Help menu items --- src/qt/qt_mainwindow.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/qt/qt_mainwindow.hpp | 3 +++ src/qt/qt_mainwindow.ui | 30 ++++++++++++++++++++++++++++++ src/qt_resources.qrc | 4 ++++ 4 files changed, 76 insertions(+) diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 8d6a6b671..3ca336ad4 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -16,6 +16,10 @@ extern "C" { #include #include #include +#include +#include +#include +#include #include #include @@ -48,6 +52,8 @@ MainWindow::MainWindow(QWidget *parent) : ui->ogl->setRenderType(HardwareRenderer::RenderType::OpenGL); ui->gles->setRenderType(HardwareRenderer::RenderType::OpenGLES); + this->setWindowIcon(QIcon(":/settings/win/icons/86Box-yellow.ico")); + connect(this, &MainWindow::showMessageForNonQtThread, this, &MainWindow::showMessage_, Qt::BlockingQueuedConnection); connect(this, &MainWindow::setTitleForNonQtThread, this, &MainWindow::setTitle_, Qt::BlockingQueuedConnection); @@ -1071,3 +1077,36 @@ void MainWindow::on_actionBT709_HDTV_triggered() { void MainWindow::on_actionAverage_triggered() { update_greyscale_type_checkboxes(ui, ui->actionAverage, 2); } + +void MainWindow::on_actionAbout_Qt_triggered() +{ + QApplication::aboutQt(); +} + +void MainWindow::on_actionAbout_86Box_triggered() +{ + QMessageBox msgBox; + msgBox.setTextFormat(Qt::RichText); + msgBox.setText("About 86Box"); + msgBox.setInformativeText(R"( +An emulator of old computers + +Authors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others. + +Released under the GNU General Public License version 2 or later. See LICENSE for more information. +)"); + msgBox.setWindowTitle("About 86Box"); + msgBox.addButton("OK", QMessageBox::ButtonRole::AcceptRole); + auto webSiteButton = msgBox.addButton("86box.net", QMessageBox::ButtonRole::HelpRole); + webSiteButton->connect(webSiteButton, &QPushButton::released, []() + { + QDesktopServices::openUrl(QUrl("https://86box.net/")); + }); + msgBox.setIconPixmap(QIcon(":/settings/win/icons/86Box-yellow.ico").pixmap(32, 32)); + msgBox.exec(); +} + +void MainWindow::on_actionDocumentation_triggered() +{ + QDesktopServices::openUrl(QUrl("https://86box.readthedocs.io")); +} diff --git a/src/qt/qt_mainwindow.hpp b/src/qt/qt_mainwindow.hpp index 972b2a161..c84f65484 100644 --- a/src/qt/qt_mainwindow.hpp +++ b/src/qt/qt_mainwindow.hpp @@ -76,6 +76,9 @@ private slots: void on_actionAverage_triggered(); void on_actionBT709_HDTV_triggered(); void on_actionBT601_NTSC_PAL_triggered(); + void on_actionDocumentation_triggered(); + void on_actionAbout_86Box_triggered(); + void on_actionAbout_Qt_triggered(); void refreshMediaMenu(); void showMessage_(const QString& header, const QString& message); diff --git a/src/qt/qt_mainwindow.ui b/src/qt/qt_mainwindow.ui index af8a8a2bd..fafb6b3f2 100644 --- a/src/qt/qt_mainwindow.ui +++ b/src/qt/qt_mainwindow.ui @@ -166,10 +166,19 @@ Media + + + Help + + + + + + @@ -466,6 +475,27 @@ Average + + + About Qt... + + + QAction::AboutQtRole + + + + + About 86Box... + + + QAction::AboutRole + + + + + Documentation... + + diff --git a/src/qt_resources.qrc b/src/qt_resources.qrc index 8c66e5ca2..0db4552e9 100644 --- a/src/qt_resources.qrc +++ b/src/qt_resources.qrc @@ -43,5 +43,9 @@ win/icons/zip_disabled.ico win/icons/zip_empty.ico win/icons/zip_empty_active.ico + win/icons/86Box-gray.ico + win/icons/86Box-green.ico + win/icons/86Box-red.ico + win/icons/86Box-yellow.ico