Merge pull request #5 from RetroDECK/feat/smaller-menu

feat/smaller menu
This commit is contained in:
XargonWan 2024-08-06 19:56:26 +09:00 committed by GitHub
commit cac4e7c165
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 65 additions and 252 deletions

4
.gitignore vendored
View file

@ -109,3 +109,7 @@ CPackSourceConfig.cmake
# VSCode # VSCode
.vscode/ .vscode/
.flatpak-builder
es-de-build-dir
es-de-repo

View file

@ -57,26 +57,14 @@ GuiMenu::GuiMenu()
addEntry("SCRAPER", mMenuColorPrimary, true, [this] { openScraperOptions(); }); addEntry("SCRAPER", mMenuColorPrimary, true, [this] { openScraperOptions(); });
if (isFullUI) if (isFullUI)
addEntry("UI SETTINGS", mMenuColorPrimary, true, [this] { openUIOptions(); }); addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); });
addEntry("SOUND SETTINGS", mMenuColorPrimary, true, [this] { openSoundOptions(); });
if (isFullUI) if (isFullUI)
addEntry("INPUT DEVICE SETTINGS", mMenuColorPrimary, true, addEntry("ES-DE CONFIGURATIONS", mMenuColorPrimary, true, [this] { openESDEConfiguration(); });
[this] { openInputDeviceOptions(); });
if (isFullUI)
addEntry("GAME COLLECTION SETTINGS", mMenuColorPrimary, true,
[this] { openCollectionSystemOptions(); });
if (isFullUI)
addEntry("OTHER SETTINGS", mMenuColorPrimary, true, [this] { openOtherOptions(); });
if (isFullUI) if (isFullUI)
addEntry("UTILITIES", mMenuColorPrimary, true, [this] { openUtilities(); }); addEntry("UTILITIES", mMenuColorPrimary, true, [this] { openUtilities(); });
addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); });
if (!Settings::getInstance()->getBool("ForceKiosk") && if (!Settings::getInstance()->getBool("ForceKiosk") &&
Settings::getInstance()->getString("UIMode") != "kiosk") { Settings::getInstance()->getString("UIMode") != "kiosk") {
#if defined(__APPLE__) #if defined(__APPLE__)
@ -2033,6 +2021,62 @@ void GuiMenu::openUtilities()
mWindow->pushGui(s); 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<TextComponent>("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<TextComponent>("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<TextComponent>("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<TextComponent>("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() void GuiMenu::openQuitMenu()
{ {
#if defined(__APPLE__) || defined(__ANDROID__) #if defined(__APPLE__) || defined(__ANDROID__)

View file

@ -45,6 +45,7 @@ private:
void openCollectionSystemOptions(); void openCollectionSystemOptions();
void openOtherOptions(); void openOtherOptions();
void openRetroDeckConfigurator(); void openRetroDeckConfigurator();
void openESDEConfiguration();
void openUtilities(); void openUtilities();
void openQuitMenu(); void openQuitMenu();

View file

@ -108,7 +108,7 @@ modules:
sources: sources:
- type: git - type: git
url: https://github.com/RetroDECK/ES-DE url: https://github.com/RetroDECK/ES-DE
branch: retrodeck-main branch: feat/smaller-menu
- type: shell - type: shell
# ES-DE - END # ES-DE - END

View file

@ -4,32 +4,7 @@ runtime-version: "6.7"
sdk: org.kde.Sdk sdk: org.kde.Sdk
sdk-extensions: sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm18 - org.freedesktop.Sdk.Extension.llvm18
command: retrodeck.sh 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
- --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: cleanup:
- /include - /include
@ -48,7 +23,6 @@ cleanup:
- '*.la' - '*.la'
- /lib/debug - /lib/debug
- /share/runtime - /share/runtime
command: /app/bin/es-de
finish-args: finish-args:
- --socket=wayland - --socket=wayland

View file

@ -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