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 @@
+
+
+
+
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();