From b2c85538b16060a313fb0232abc66dac17f8e390 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 17 Jun 2024 14:52:53 +0200 Subject: [PATCH] Add Design Studio for Linux Add AppStream data and desktop file for Design Studio. Change-Id: Icc5cca03a3c0945a2f90b39fdd4c7dcecd0e8d6b Reviewed-by: Thomas Hartmann --- cmake/QtCreatorIDEBranding.cmake | 4 +- .../qtdesignstudio/QtCreatorIDEBranding.cmake | 1 + ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin ...eator.png => QtProject-qtdesignstudio.png} | Bin share/CMakeLists.txt | 10 +-- .../applications/io.qt.qtdesignstudio.desktop | 11 ++++ .../io.qt.qtdesignstudio.appdata.xml.cmakein | 58 ++++++++++++++++++ ...g.qt-project.qtcreator.appdata.xml.cmakein | 2 +- src/app/CMakeLists.txt | 6 +- src/app/app_logo.qrc.cmakein | 4 +- src/app/main.cpp | 2 +- 17 files changed, 86 insertions(+), 12 deletions(-) rename dist/branding/qtdesignstudio/images/logo/128/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/16/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/24/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/256/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/32/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/48/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/512/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) rename dist/branding/qtdesignstudio/images/logo/64/{QtProject-qtcreator.png => QtProject-qtdesignstudio.png} (100%) create mode 100644 share/applications/io.qt.qtdesignstudio.desktop create mode 100644 share/metainfo/io.qt.qtdesignstudio.appdata.xml.cmakein diff --git a/cmake/QtCreatorIDEBranding.cmake b/cmake/QtCreatorIDEBranding.cmake index c93f91b8269..8cab51c3c29 100644 --- a/cmake/QtCreatorIDEBranding.cmake +++ b/cmake/QtCreatorIDEBranding.cmake @@ -8,6 +8,8 @@ set(IDE_DISPLAY_NAME "Qt Creator") # The IDE display name. set(IDE_ID "qtcreator") # The IDE id (no spaces, lowercase!) set(IDE_CASED_ID "QtCreator") # The cased IDE id (no spaces!) set(IDE_BUNDLE_IDENTIFIER "org.qt-project.${IDE_ID}") # The macOS application bundle identifier. +set(IDE_APP_ID "org.qt-project.${IDE_ID}") # The free desktop application identifier. + set(PROJECT_USER_FILE_EXTENSION .user) set(IDE_DOC_FILE "qtcreator/qtcreator.qdocconf") @@ -17,5 +19,5 @@ set(IDE_DOC_FILE_ONLINE "qtcreator/qtcreator-online.qdocconf") # Should contain qtcreator.ico, qtcreator.xcassets set(IDE_ICON_PATH "") # Absolute, or relative to /src/app -# Should contain images/logo/(16|24|32|48|64|128|256|512)/QtProject-qtcreator.png +# Should contain images/logo/(16|24|32|48|64|128|256|512)/QtProject-${IDE_ID}.png set(IDE_LOGO_PATH "") diff --git a/dist/branding/qtdesignstudio/QtCreatorIDEBranding.cmake b/dist/branding/qtdesignstudio/QtCreatorIDEBranding.cmake index 69479620f8d..bce3ed233e7 100644 --- a/dist/branding/qtdesignstudio/QtCreatorIDEBranding.cmake +++ b/dist/branding/qtdesignstudio/QtCreatorIDEBranding.cmake @@ -9,6 +9,7 @@ set(IDE_DISPLAY_NAME "Qt Design Studio") # The IDE display name. set(IDE_ID "qtdesignstudio") # The IDE id (no spaces, lowercase!) set(IDE_CASED_ID "QtDesignStudio") # The cased IDE id (no spaces!) set(IDE_BUNDLE_IDENTIFIER "org.qt-project.${IDE_ID}") # The macOS application bundle identifier. +set(IDE_APP_ID "io.qt.${IDE_ID}") # The free desktop application identifier. set(PROJECT_USER_FILE_EXTENSION .qtds) set(IDE_DOC_FILE "qtdesignstudio/qtdesignstudio.qdocconf") diff --git a/dist/branding/qtdesignstudio/images/logo/128/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/128/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/128/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/128/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/16/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/16/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/16/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/16/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/24/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/24/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/24/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/24/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/256/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/256/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/256/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/256/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/32/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/32/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/32/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/32/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/48/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/48/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/48/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/48/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/512/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/512/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/512/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/512/QtProject-qtdesignstudio.png diff --git a/dist/branding/qtdesignstudio/images/logo/64/QtProject-qtcreator.png b/dist/branding/qtdesignstudio/images/logo/64/QtProject-qtdesignstudio.png similarity index 100% rename from dist/branding/qtdesignstudio/images/logo/64/QtProject-qtcreator.png rename to dist/branding/qtdesignstudio/images/logo/64/QtProject-qtdesignstudio.png diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 575c0aea8ca..4c45c8f195a 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -6,17 +6,17 @@ if (NOT APPLE AND NOT WIN32) string(TIMESTAMP timestamp "%Y-%m-%d") set(DATE_ATTRIBUTE " date=\"${timestamp}\"") endif() - configure_file(metainfo/org.qt-project.qtcreator.appdata.xml.cmakein metainfo/org.qt-project.qtcreator.appdata.xml) + configure_file(metainfo/${IDE_APP_ID}.appdata.xml.cmakein metainfo/${IDE_APP_ID}.appdata.xml) install( - DIRECTORY - applications + FILES + applications/${IDE_APP_ID}.desktop DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR} + ${CMAKE_INSTALL_DATAROOTDIR}/applications/ ) install( FILES - ${CMAKE_CURRENT_BINARY_DIR}/metainfo/org.qt-project.qtcreator.appdata.xml + ${CMAKE_CURRENT_BINARY_DIR}/metainfo/${IDE_APP_ID}.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo/ ) diff --git a/share/applications/io.qt.qtdesignstudio.desktop b/share/applications/io.qt.qtdesignstudio.desktop new file mode 100644 index 00000000000..0c48adc6ed6 --- /dev/null +++ b/share/applications/io.qt.qtdesignstudio.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Exec=qtdesignstudio %F +Name=Qt Design Studio +GenericName=UI Designer for Qml applications +X-KDE-StartupNotify=true +Icon=QtProject-qtdesignstudio +StartupWMClass=org.qt-project.qtdesignstudio +Terminal=false +Categories=Development;GUIDesigner;Qt; +MimeType=application/x-qmlproject diff --git a/share/metainfo/io.qt.qtdesignstudio.appdata.xml.cmakein b/share/metainfo/io.qt.qtdesignstudio.appdata.xml.cmakein new file mode 100644 index 00000000000..3bfcf0b365e --- /dev/null +++ b/share/metainfo/io.qt.qtdesignstudio.appdata.xml.cmakein @@ -0,0 +1,58 @@ + + + + io.qt.qtdesignstudio + Qt Design Studio + + Qt Project + + UI Designer for Qml applications + CC0-1.0 + GPL-3.0 + +

+ Define the look and feel of the UI from wireframe to final implementation + with preset UI components. Import UI design files from 2D and 3D tools + to Qt Design Studio, which can turn them into code for developers. +

+

+ Qt Design Studio prototyping features bring your designs to life and + simulate and validate interactions and dynamic behavior. +

+

+ You can test, preview, and fine-tune your designs to pixel-perfection live + on the desktop or target device. +

+
+ io.qt.qtdesignstudio.desktop + + https://www.qt.io/ide/ + Qt + + + + Overview 2D + https://www.qt.io/hs-fs/hubfs/image-png-Dec-13-2021-02-04-37-16-PM.png + + + Welcome + https://www.qt.io/hs-fs/hubfs/welcomescreen.png + + + Overview 3D + https://www.qt.io/hs-fs/hubfs/image-png-Feb-28-2022-03-08-54-80-PM.png + + + Examples + https://www.qt.io/hs-fs/hubfs/image-png-May-23-2022-12-38-02-61-PM.png + + + + + +

Qt Design Studio ${IDE_VERSION_DISPLAY}

+
+ https://www.qt.io/blog/qt-design-studio-${IDE_VERSION_DISPLAY}-released +
+
+
diff --git a/share/metainfo/org.qt-project.qtcreator.appdata.xml.cmakein b/share/metainfo/org.qt-project.qtcreator.appdata.xml.cmakein index 32d10990aaa..7b842e025a3 100644 --- a/share/metainfo/org.qt-project.qtcreator.appdata.xml.cmakein +++ b/share/metainfo/org.qt-project.qtcreator.appdata.xml.cmakein @@ -1,7 +1,7 @@ - org.qt-project.qtcreator.desktop + org.qt-project.qtcreator Qt Creator Provides a cross-platform, complete integrated development environment (IDE) for application developers to create applications for multiple platforms and devices CC0-1.0 diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 8e19bacc680..293a7546fa8 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -10,7 +10,9 @@ endif() configure_file(app_logo.qrc.cmakein app_logo_cmake.qrc) add_qtc_executable(qtcreator - DEFINES IDE_LIBRARY_BASENAME=\"${IDE_LIBRARY_BASE_PATH}\" + DEFINES + IDE_LIBRARY_BASENAME=\"${IDE_LIBRARY_BASE_PATH}\" + IDE_APP_ID=\"${IDE_APP_ID}\" DEPENDS Aggregation ExtensionSystem Qt::Core Qt::Widgets Utils shared_qtsingleapplication app_version SOURCES main.cpp @@ -156,7 +158,7 @@ if ((NOT WIN32) AND (NOT APPLE)) # install logo foreach(size 16 24 32 48 64 128 256 512) install( - FILES ${IDE_LOGO_PATH}/images/logo/${size}/QtProject-qtcreator.png + FILES ${IDE_LOGO_PATH}/images/logo/${size}/QtProject-${IDE_ID}.png DESTINATION share/icons/hicolor/${size}x${size}/apps ) endforeach() diff --git a/src/app/app_logo.qrc.cmakein b/src/app/app_logo.qrc.cmakein index f595e107031..c3c865c034d 100644 --- a/src/app/app_logo.qrc.cmakein +++ b/src/app/app_logo.qrc.cmakein @@ -1,6 +1,6 @@ - ${IDE_LOGO_PATH}/images/logo/128/QtProject-qtcreator.png - ${IDE_LOGO_PATH}/images/logo/256/QtProject-qtcreator.png + ${IDE_LOGO_PATH}/images/logo/128/QtProject-${IDE_ID}.png + ${IDE_LOGO_PATH}/images/logo/256/QtProject-${IDE_ID}.png diff --git a/src/app/main.cpp b/src/app/main.cpp index 6c5fb9a3062..42cb4f6a65e 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -760,7 +760,7 @@ int main(int argc, char **argv) if (!overrideCodecForLocale.isEmpty()) QTextCodec::setCodecForLocale(QTextCodec::codecForName(overrideCodecForLocale)); - app.setDesktopFileName("org.qt-project.qtcreator"); + app.setDesktopFileName(IDE_APP_ID); // Make sure we honor the system's proxy settings QNetworkProxyFactory::setUseSystemConfiguration(true);