diff --git a/CMakeLists.txt b/CMakeLists.txt index d03ab34..2c57c20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) select_dialog.h select_dialog.cpp select_dialog.ui about_dialog.h about_dialog.cpp about_dialog.ui COPYING.txt + chemcalc.desktop ) # Define target properties for Android with Qt 6 as: # set_property(TARGET chemcalc APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR @@ -76,12 +77,17 @@ set_target_properties(chemcalc PROPERTIES WIN32_EXECUTABLE TRUE ) -include(GNUInstallDirs) +# See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html +include(GNUInstallDirs) # Provides prefix ('/usr' for my linux) for below lines. install(TARGETS chemcalc - BUNDLE DESTINATION . - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION . # Used only on macOS. + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # /usr/lib for me (prefix+/lib) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # /usr/bin for me (prefix+/bin) ) +# See https://cmake.org/cmake/help/latest/command/install.html#files +install(FILES chemcalc.desktop + # Defaults to '/usr/share'+/applications on my linux. + DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(chemcalc) diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user index 85e0020..10aed1f 100644 --- a/CMakeLists.txt.user +++ b/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -100,14 +100,14 @@ 2 false - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + -DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} -DCMAKE_GENERATOR:STRING=Ninja --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} 0 /home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-Debug @@ -157,15 +157,15 @@ 2 false - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + -DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} -DCMAKE_GENERATOR:STRING=Ninja --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_BUILD_TYPE:STRING=Release - /home/chris/Cpp-Projects/ChemCalc/build +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} + /home/chris/Cpp-Projects/ChemCalcBuilds @@ -213,14 +213,14 @@ 2 false - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + -DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} -DCMAKE_GENERATOR:STRING=Ninja --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} /home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-RelWithDebInfo @@ -267,14 +267,14 @@ 2 false - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + -DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} -DCMAKE_GENERATOR:STRING=Ninja --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} 0 /home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-Profile @@ -322,14 +322,14 @@ 2 false - -DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + -DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} -DCMAKE_GENERATOR:STRING=Ninja --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_BUILD_TYPE:STRING=MinSizeRel +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_BUILD_TYPE:STRING=MinSizeRel +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} /home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-MinSizeRel @@ -401,7 +401,7 @@ true true true - /home/chris/Cpp-Projects/ChemCalc/build + /home/chris/Cpp-Projects/ChemCalcBuilds 1 diff --git a/chemcalc.desktop b/chemcalc.desktop index 5efe1e2..607a843 100644 --- a/chemcalc.desktop +++ b/chemcalc.desktop @@ -3,7 +3,7 @@ Categories=Science Comment=A Chemical Calculator Exec=chemcalc GenericName=Chemical Calculator -Icon=chemcalc-icon +Icon=chemcalc_icon_120.svg Name=ChemCalc NoDisplay=false StartupNotify=true diff --git a/ChemCalc_icon_120.png b/chemcalc_icon_120.png similarity index 100% rename from ChemCalc_icon_120.png rename to chemcalc_icon_120.png diff --git a/ChemCalc_icon_120.svg b/chemcalc_icon_120.svg similarity index 100% rename from ChemCalc_icon_120.svg rename to chemcalc_icon_120.svg diff --git a/main.cpp b/main.cpp index ebbbe50..251dcfc 100644 --- a/main.cpp +++ b/main.cpp @@ -4,7 +4,8 @@ #include //? #include -// #include +#include + // #include int main(int argc, char *argv[]) @@ -16,21 +17,29 @@ int main(int argc, char *argv[]) // setup translation string domain for the i18n calls // KLocalizedString::setApplicationDomain("foo"); // create a KAboutData object to use for setting the application metadata - KAboutData aboutData("com.github.Chris-Baba.ChemCalc", "ChemCalc", "0.1", - "A Chemical Calculator", - KAboutLicense::GPL_V3, - "Copyright 2024 Chris Baba", QString(), - "https://github.com/Chris-Baba/ChemCalc"); + KAboutData aboutData( + "chemcalc", // componentName + "ChemCalc", // displayName + "0.1", // version + "A Chemical Calculator", // shortDescription + KAboutLicense::GPL_V3, // licenseType + "Copyright 2024 Chris Baba", // copyrightStatement + QString(), // otherText + "https://github.com/Chris-Baba/ChemCalc", // homePageAddress + "https://github.com/Chris-Baba/ChemCalc/issues" //bugAddress + ); + // overwrite default-generated values of organizationDomain & desktopFileName - aboutData.setOrganizationDomain("github.com.Chris-Baba"); - aboutData.setDesktopFileName("com.github.Chris-Baba.ChemCalc"); + // Note: Qt has identical functions, but these are from KAboutData. + aboutData.setOrganizationDomain("github.com.chris_baba"); + aboutData.setDesktopFileName("chris-baba.com.github.ChemCalc"); // set the application metadata KAboutData::setApplicationData(aboutData); // in GUI apps set the window icon manually, not covered by KAboutData // needed for environments where the icon name is not extracted from // the information in the application's desktop file - QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("com.github.Chris-Baba.ChemCalc"))); + QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("chris-baba.com.github.ChemCalc"))); // integrate with commandline argument handling QCommandLineParser parser; @@ -41,7 +50,7 @@ int main(int argc, char *argv[]) aboutData.processCommandLine(&parser); // with the application metadata set, register to the D-Bus session - // KDBusService programDBusService(KDBusService::Multiple | KDBusService::NoExitOnFailure); + KDBusService programDBusService(KDBusService::Multiple | KDBusService::NoExitOnFailure); //------------------------------ MainWindow w; diff --git a/mainwindow.cpp b/mainwindow.cpp index 3724662..62cdd35 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -91,15 +91,15 @@ MainWindow::MainWindow(QWidget *parent) setWindowTitle("Chemical Calculator"); // //Set window icon. No errors below, but it doesn't work. - QIcon myIcon = QIcon(":/Icons/ChemCalc_icon_120.svg"); + QIcon myIcon = QIcon(":/chemcalc_icon_120.svg"); QWindow Obj; Obj.setIcon(myIcon); - // QWindow::setIcon(QIcon(":/Icons/ChemCalc_icon_120.png")); - // setWindowIcon(QIcon(":/Icons/ChemCalc_icon_120.png")); + // QWindow::setIcon(QIcon(":chemcalc_icon_120.png")); + // setWindowIcon(QIcon(":chemcalc_icon_120.png")); // // Below line doesn't work in Wayland!!! // // SEE https://stackoverflow.com/questions/78256166/app-icon-ws-on-qt6-6-and-wayland-in-a-flatpak-on-kde-neon // // Try QGuiApplication Class!! - // MainWindow::setWindowIcon(QIcon(":/Icons/ChemCalc_icon_120.png")); + // MainWindow::setWindowIcon(QIcon(":/chemcalc_icon_120.png")); // setDesktopFileName("chemcalc"); // Runs once at start, to setup file locations, database, config files etc. diff --git a/resources.qrc b/resources.qrc index b7858f0..9f7505c 100644 --- a/resources.qrc +++ b/resources.qrc @@ -6,9 +6,8 @@ ChemCalc_help1.md ChemCalc_Screen_Capture.png ChemCalc.conf + chemcalc_icon_120.png + chemcalc_icon_120.svg - - ChemCalc_icon_120.svg - ChemCalc_icon_120.png - +