diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt index c3431571..c14b0cf6 100644 --- a/oracle/CMakeLists.txt +++ b/oracle/CMakeLists.txt @@ -16,6 +16,19 @@ SET(oracle_SOURCES ../cockatrice/src/qt-json/json.cpp ) +set(oracle_RESOURCES oracle.qrc) + +if(WIN32) + set(oracle_SOURCES ${oracle_SOURCES} oracle.rc) +endif(WIN32) + + +if(APPLE) + set(MACOSX_BUNDLE_ICON_FILE appicon.icns) + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + set(oracle_SOURCES ${oracle_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns) +ENDIF(APPLE) + set(ORACLE_LIBS) # Qt4 stuff @@ -29,6 +42,10 @@ if(Qt4_FOUND) include_directories(${QT_INCLUDES}) LIST(APPEND ORACLE_LIBS ${QT_QTMAIN_LIBRARY}) LIST(APPEND ORACLE_LIBS ${QT_LIBRARIES}) + + # Let cmake chew Qt4's translations and resource files + # Note: header files are MOC-ed automatically by cmake + QT4_ADD_RESOURCES(oracle_RESOURCES_RCC ${oracle_RESOURCES}) endif() # qt5 stuff @@ -64,6 +81,10 @@ if(Qt5Widgets_FOUND) list(APPEND ORACLE_LIBS Svg) endif() + # Let cmake chew Qt5's translations and resource files + # Note: header files are MOC-ed automatically by cmake + QT5_ADD_RESOURCES(oracle_RESOURCES_RCC ${oracle_RESOURCES}) + # guess plugins and libraries directory set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins") get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION) @@ -73,7 +94,7 @@ endif() INCLUDE_DIRECTORIES(../cockatrice/src) # Build oracle binary and link it -ADD_EXECUTABLE(oracle WIN32 MACOSX_BUNDLE ${oracle_SOURCES} ${oracle_MOC_SRCS}) +ADD_EXECUTABLE(oracle WIN32 MACOSX_BUNDLE ${oracle_SOURCES} ${oracle_RESOURCES_RCC} ${oracle_MOC_SRCS}) if(Qt4_FOUND) if(MSVC) @@ -94,6 +115,8 @@ if(UNIX) else() # Assume linux INSTALL(TARGETS oracle RUNTIME DESTINATION bin/) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/oracle.png DESTINATION ${ICONDIR}/hicolor/48x48/apps) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/oracle.svg DESTINATION ${ICONDIR}/hicolor/scalable/apps) endif() elseif(WIN32) INSTALL(TARGETS oracle RUNTIME DESTINATION ./) diff --git a/oracle/oracle.desktop b/oracle/oracle.desktop index db8d4b61..c4943b85 100644 --- a/oracle/oracle.desktop +++ b/oracle/oracle.desktop @@ -4,5 +4,5 @@ Version=1.0 Type=Application Name=Cockatrice Oracle downloader Exec=oracle -Icon=cockatrice +Icon=oracle Categories=Game;CardGame; diff --git a/oracle/oracle.qrc b/oracle/oracle.qrc new file mode 100644 index 00000000..b58518c4 --- /dev/null +++ b/oracle/oracle.qrc @@ -0,0 +1,5 @@ + + + resources/oracle.svg + + diff --git a/oracle/oracle.rc b/oracle/oracle.rc new file mode 100644 index 00000000..cf949f31 --- /dev/null +++ b/oracle/oracle.rc @@ -0,0 +1 @@ +ID1_ICON1 ICON DISCARDABLE "resources/appicon.ico" diff --git a/oracle/resources/appicon.icns b/oracle/resources/appicon.icns new file mode 100644 index 00000000..76c188c9 Binary files /dev/null and b/oracle/resources/appicon.icns differ diff --git a/oracle/resources/appicon.ico b/oracle/resources/appicon.ico new file mode 100644 index 00000000..112bf010 Binary files /dev/null and b/oracle/resources/appicon.ico differ diff --git a/oracle/resources/oracle.png b/oracle/resources/oracle.png new file mode 100644 index 00000000..72e8f6a2 Binary files /dev/null and b/oracle/resources/oracle.png differ diff --git a/oracle/resources/oracle.svg b/oracle/resources/oracle.svg new file mode 100644 index 00000000..29740ffe --- /dev/null +++ b/oracle/resources/oracle.svg @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + o + + diff --git a/oracle/src/main.cpp b/oracle/src/main.cpp index d2fb708d..dcc5afdc 100644 --- a/oracle/src/main.cpp +++ b/oracle/src/main.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "oraclewizard.h" #include "settingscache.h" @@ -18,10 +19,14 @@ int main(int argc, char *argv[]) QCoreApplication::setOrganizationDomain("cockatrice"); // this can't be changed, as it influences the default savepath for cards.xml QCoreApplication::setApplicationName("Cockatrice"); - + settingsCache = new SettingsCache; OracleWizard wizard; + + QIcon icon(":/resources/appicon.svg"); + wizard.setWindowIcon(icon); + wizard.show(); return app.exec();