diff --git a/CMakeLists.txt b/CMakeLists.txt index 4318b7ed..33faba5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -698,6 +698,7 @@ if(NOT BUILD_HYDRA_CORE AND NOT BUILD_LIBRETRO_CORE) docs/img/rsob_icon.png docs/img/rstarstruck_icon.png docs/img/rpog_icon.png docs/img/rsyn_icon.png docs/img/settings_icon.png docs/img/display_icon.png docs/img/speaker_icon.png docs/img/sparkling_icon.png docs/img/battery_icon.png docs/img/sdcard_icon.png + docs/img/rnap_icon.png docs/img/rcow_icon.png ) else() set(FRONTEND_SOURCE_FILES src/panda_sdl/main.cpp src/panda_sdl/frontend_sdl.cpp src/panda_sdl/mappings.cpp) diff --git a/docs/img/rcow_icon.png b/docs/img/rcow_icon.png new file mode 100644 index 00000000..5facb301 Binary files /dev/null and b/docs/img/rcow_icon.png differ diff --git a/docs/img/rnap_icon.png b/docs/img/rnap_icon.png new file mode 100644 index 00000000..7967102b Binary files /dev/null and b/docs/img/rnap_icon.png differ diff --git a/include/frontend_settings.hpp b/include/frontend_settings.hpp index 6cfa066c..aaf9eaf0 100644 --- a/include/frontend_settings.hpp +++ b/include/frontend_settings.hpp @@ -17,6 +17,8 @@ struct FrontendSettings { enum class WindowIcon : int { Rpog = 0, Rsyn = 1, + Rnap = 2, + Rcow = 3, }; Theme theme = Theme::Dark; diff --git a/src/frontend_settings.cpp b/src/frontend_settings.cpp index 5a489fc7..16bae361 100644 --- a/src/frontend_settings.cpp +++ b/src/frontend_settings.cpp @@ -38,7 +38,10 @@ FrontendSettings::WindowIcon FrontendSettings::iconFromString(std::string inStri std::transform(inString.begin(), inString.end(), inString.begin(), [](unsigned char c) { return std::tolower(c); }); static const std::unordered_map map = { - {"rpog", WindowIcon::Rpog}, {"rsyn", WindowIcon::Rsyn}, + {"rpog", WindowIcon::Rpog}, + {"rsyn", WindowIcon::Rsyn}, + {"rcow", WindowIcon::Rcow}, + {"rnap", WindowIcon::Rnap}, }; if (auto search = map.find(inString); search != map.end()) { @@ -52,6 +55,8 @@ FrontendSettings::WindowIcon FrontendSettings::iconFromString(std::string inStri const char* FrontendSettings::iconToString(WindowIcon icon) { switch (icon) { case WindowIcon::Rsyn: return "rsyn"; + case WindowIcon::Rcow: return "rcow"; + case WindowIcon::Rnap: return "rnap"; case WindowIcon::Rpog: default: return "rpog"; diff --git a/src/panda_qt/config_window.cpp b/src/panda_qt/config_window.cpp index 3fe89be1..2b6c86d2 100644 --- a/src/panda_qt/config_window.cpp +++ b/src/panda_qt/config_window.cpp @@ -77,7 +77,10 @@ ConfigWindow::ConfigWindow(ConfigCallback configCallback, IconCallback iconCallb QComboBox* iconSelect = new QComboBox(); iconSelect->addItem(tr("Happy panda")); iconSelect->addItem(tr("Happy panda (colourful)")); + iconSelect->addItem(tr("Sleepy panda")); + iconSelect->addItem(tr("Cow panda")); iconSelect->setCurrentIndex(static_cast(config.frontendSettings.icon)); + connect(iconSelect, &QComboBox::currentIndexChanged, this, [&](int index) { config.frontendSettings.icon = static_cast(index); setIcon(static_cast(index)); @@ -395,6 +398,8 @@ void ConfigWindow::setTheme(Theme theme) { void ConfigWindow::setIcon(WindowIcon icon) { switch (icon) { case WindowIcon::Rsyn: updateIcon(":/docs/img/rsyn_icon.png"); break; + case WindowIcon::Rnap: updateIcon(":/docs/img/rnap_icon.png"); break; + case WindowIcon::Rcow: updateIcon(":/docs/img/rcow_icon.png"); break; case WindowIcon::Rpog: default: updateIcon(":/docs/img/rpog_icon.png"); break;