diff --git a/.gitignore b/.gitignore index 48b3a92b6..2ef23aa1c 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,7 @@ CPackSourceConfig.cmake # VSCode .vscode/ + +.flatpak-builder +es-de-build-dir +es-de-repo \ No newline at end of file diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 358891110..48593b8d8 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -57,26 +57,14 @@ GuiMenu::GuiMenu() addEntry("SCRAPER", mMenuColorPrimary, true, [this] { openScraperOptions(); }); if (isFullUI) - addEntry("UI SETTINGS", mMenuColorPrimary, true, [this] { openUIOptions(); }); - - addEntry("SOUND SETTINGS", mMenuColorPrimary, true, [this] { openSoundOptions(); }); + addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); }); if (isFullUI) - addEntry("INPUT DEVICE SETTINGS", mMenuColorPrimary, true, - [this] { openInputDeviceOptions(); }); - - if (isFullUI) - addEntry("GAME COLLECTION SETTINGS", mMenuColorPrimary, true, - [this] { openCollectionSystemOptions(); }); - - if (isFullUI) - addEntry("OTHER SETTINGS", mMenuColorPrimary, true, [this] { openOtherOptions(); }); + addEntry("ES-DE CONFIGURATIONS", mMenuColorPrimary, true, [this] { openESDEConfiguration(); }); if (isFullUI) addEntry("UTILITIES", mMenuColorPrimary, true, [this] { openUtilities(); }); - addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); }); - if (!Settings::getInstance()->getBool("ForceKiosk") && Settings::getInstance()->getString("UIMode") != "kiosk") { #if defined(__APPLE__) @@ -2033,6 +2021,62 @@ void GuiMenu::openUtilities() mWindow->pushGui(s); } +void GuiMenu::openESDEConfiguration() { + // Create a new GuiSettings instance for the ES-DE Configurations menu + auto s = new GuiSettings("ES-DE CONFIGURATIONS"); + + HelpStyle style{getHelpStyle()}; + + // UI SETTINGS + ComponentListRow row; + row.addElement(std::make_shared("UI SETTINGS", + Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), + true); + row.addElement(mMenu.makeArrow(), false); + row.makeAcceptInputHandler([this] { + openUIOptions(); + }); + s->addRow(row); + + // SOUND SETTINGS + row.elements.clear(); + row.addElement(std::make_shared("SOUND SETTINGS", + Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), + true); + row.addElement(mMenu.makeArrow(), false); + row.makeAcceptInputHandler([this] { + openSoundOptions(); + }); + s->addRow(row); + + // INPUT DEVICE SETTINGS + row.elements.clear(); + row.addElement(std::make_shared("INPUT DEVICE SETTINGS", + Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), + true); + row.addElement(mMenu.makeArrow(), false); + row.makeAcceptInputHandler([this] { + openInputDeviceOptions(); + }); + s->addRow(row); + + // OTHER SETTINGS + row.elements.clear(); + row.addElement(std::make_shared("OTHER SETTINGS", + Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), + true); + row.addElement(mMenu.makeArrow(), false); + row.makeAcceptInputHandler([this] { + openOtherOptions(); + }); + s->addRow(row); + + // Set the size and push the menu onto the GUI stack + s->setSize(mSize); + mWindow->pushGui(s); +} + + void GuiMenu::openQuitMenu() { #if defined(__APPLE__) || defined(__ANDROID__) diff --git a/es-app/src/guis/GuiMenu.h b/es-app/src/guis/GuiMenu.h index dd9b42d8d..2961154ad 100644 --- a/es-app/src/guis/GuiMenu.h +++ b/es-app/src/guis/GuiMenu.h @@ -45,6 +45,7 @@ private: void openCollectionSystemOptions(); void openOtherOptions(); void openRetroDeckConfigurator(); + void openESDEConfiguration(); void openUtilities(); void openQuitMenu(); diff --git a/es-de-module.yml b/es-de-module.yml index d802040c5..b32da641b 100644 --- a/es-de-module.yml +++ b/es-de-module.yml @@ -108,7 +108,7 @@ modules: sources: - type: git url: https://github.com/RetroDECK/ES-DE - branch: retrodeck-main + branch: feat/smaller-menu - type: shell # ES-DE - END \ No newline at end of file diff --git a/manifest-header.yml b/manifest-header.yml index ef86ae9a6..fd80d3542 100644 --- a/manifest-header.yml +++ b/manifest-header.yml @@ -4,32 +4,7 @@ runtime-version: "6.7" sdk: org.kde.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.llvm18 -command: retrodeck.sh - -finish-args: - - --socket=wayland - - --socket=x11 - - --socket=pulseaudio - - --share=ipc - - --share=network - - --device=all - - --filesystem=host - - --filesystem=home/.var/app/com.valvesoftware.Steam - - --allow=multiarch - - --talk-name=org.freedesktop.ScreenSaver - - --talk-name=org.freedesktop.PowerManagement.Inhibit - - --talk-name=org.freedesktop.login1.Manager - - --filesystem=xdg-run/app/com.discordapp.Discord:create - - --filesystem=xdg-config/gtk-3.0:ro - - --env=QT_QPA_PLATFORM=wayland;wayland-egl;xcb - - --allow=bluetooth - - --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.es-de - - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.es-de - - --unset-env=QEMU_AUDIO_DRV - - --filesystem=xdg-data/Steam:rw - - --filesystem=~/.steam:rw - - --filesystem=~/.var/app/com.valvesoftware.Steam:rw - - --filesystem=xdg-run/gamescope-0:ro +command: /app/bin/es-de cleanup: - /include @@ -48,7 +23,6 @@ cleanup: - '*.la' - /lib/debug - /share/runtime -command: /app/bin/es-de finish-args: - --socket=wayland diff --git a/net.retrodeck.es-de.yml b/net.retrodeck.es-de.yml deleted file mode 100644 index ac5e3e6ff..000000000 --- a/net.retrodeck.es-de.yml +++ /dev/null @@ -1,210 +0,0 @@ -app-id: net.retrodeck.es-de -runtime: org.kde.Platform -runtime-version: "6.7" -sdk: org.kde.Sdk -sdk-extensions: - - org.freedesktop.Sdk.Extension.llvm18 -command: retrodeck.sh - -finish-args: - - --socket=wayland - - --socket=x11 - - --socket=pulseaudio - - --share=ipc - - --share=network - - --device=all - - --filesystem=host - - --filesystem=home/.var/app/com.valvesoftware.Steam - - --allow=multiarch - - --talk-name=org.freedesktop.ScreenSaver - - --talk-name=org.freedesktop.PowerManagement.Inhibit - - --talk-name=org.freedesktop.login1.Manager - - --filesystem=xdg-run/app/com.discordapp.Discord:create - - --filesystem=xdg-config/gtk-3.0:ro - - --env=QT_QPA_PLATFORM=wayland;wayland-egl;xcb - - --allow=bluetooth - - --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.es-de - - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.es-de - - --unset-env=QEMU_AUDIO_DRV - - --filesystem=xdg-data/Steam:rw - - --filesystem=~/.steam:rw - - --filesystem=~/.var/app/com.valvesoftware.Steam:rw - - --filesystem=xdg-run/gamescope-0:ro - -cleanup: - - /include - - /share/ffmpeg - - /lib/cmake - - /lib/pkgconfig - - /include - - /bin/glslangValidator - - /bin/zip* - - /bin/zstd* - - /lib/pkg-config - - /share/doc - - /share/man - - /src - - '*.a' - - '*.la' - - /lib/debug - - /share/runtime -command: /app/bin/es-de - -finish-args: - - --socket=wayland - - --socket=x11 - - --socket=pulseaudio - - --share=ipc - - --share=network - - --device=all - - --filesystem=host - - --filesystem=home/.var/app/com.valvesoftware.Steam - - --allow=multiarch - - --talk-name=org.freedesktop.ScreenSaver - - --talk-name=org.freedesktop.PowerManagement.Inhibit - - --talk-name=org.freedesktop.login1.Manager - - --filesystem=xdg-run/app/com.discordapp.Discord:create - - --filesystem=xdg-config/gtk-3.0:ro - - --env=QT_QPA_PLATFORM=wayland;wayland-egl;xcb - # Dolphin - - --allow=bluetooth - # It allows an SDL application to specify its window class, which can be useful for window managers and desktop environments to identify and group similar windows - - --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.es-de - - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.es-de - # XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch - - --unset-env=QEMU_AUDIO_DRV - # BoilR - - --filesystem=xdg-data/Steam:rw #Steam (flatpak) - - --filesystem=~/.steam:rw # Steam (Non-flatpak) - - --filesystem=~/.var/app/com.valvesoftware.Steam:rw # Steam (Flatpak) - # PPSSPP, DOLPHIN - - --filesystem=xdg-run/gamescope-0:ro - -modules: - - # dependency of: CEMU, ES-DE - - name: pugixml - buildsystem: cmake-ninja - config-opts: - - -DBUILD_SHARED_LIBS=ON - cleanup: - - /include - - /lib/cmake - - /lib/pkgconfig - sources: - - type: archive - url: https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz - sha256: 2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015 - x-checker-data: - type: anitya - project-id: 3728 - url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz - - # Needed from ES-DE 2.1.0+ - - name: libpoppler-glib - buildsystem: cmake-ninja - config-opts: - - -DENABLE_BOOST=OFF - sources: - - type: archive - # original link not working, found a mirror - url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz - #url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2 - sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828 - cleanup: - - /lib/pkgconfig - - /include - - '*.a' - - '*.la' - - # ES-DE - START - # https://gitlab.com/es-de/emulationstation-de - - - name: ffmpeg - config-opts: - - --disable-static - - --disable-programs - - --disable-doc - - --enable-gpl - - --enable-shared - - --enable-libvorbis - - --enable-libopus - - --enable-libvpx - - --enable-postproc - sources: - - type: git - url: https://github.com/FFmpeg/FFmpeg.git - tag: n5.1.4 - - - name: freeimage - no-autogen: true - build-options: - cxxflags: -std=c++14 - make-args: - - DESTDIR=/app - sources: - - type: archive - url: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip - sha256: f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd - - type: shell - commands: - - sed -i 's|-o root -g root ||' ./Makefile.gnu - - sed -i 's|/usr|/app|' ./Makefile.gnu - - - name: libgit2 - buildsystem: cmake-ninja - config-opts: - - -DCMAKE_BUILD_TYPE=Release - - -DBUILD_SHARED_LIBS:BOOL=ON - - -DTHREADSAFE=ON - sources: - - type: git - url: https://github.com/libgit2/libgit2.git - tag: v1.6.3 - - # Needed from ES-DE 2.1.0+ - - name: libpoppler-glib - buildsystem: cmake-ninja - config-opts: - - -DENABLE_BOOST=OFF - sources: - - type: archive - # original link not working, found a mirror - url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz - #url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2 - sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828 - cleanup: - - /lib/pkgconfig - - /include - - '*.a' - - '*.la' - - # When updating this module remember to check those on the main repos: - - name: ES-DE - buildsystem: cmake-ninja - config-opts: - - -DRETRODECK=on - cleanup: - - es-app - - es-core - sources: - - type: git - url: https://github.com/RetroDECK/ES-DE - branch: retrodeck-main - - type: shell - - # ES-DE - END - - # ES-DE Themes - START - - - name: art-book-next-es-de - buildsystem: simple - build-commands: - - mkdir -p ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/ - - mv -f * ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/ - sources: - - type: git - url: https://github.com/anthonycaccese/art-book-next-es-de.git - commit: 4fe896af7447404f6ea083335cd661c91b0f7860 - - # ES-DE Themes - END \ No newline at end of file