Merge remote-tracking branch 'origin/master' into travis-qt4-5-builds

This commit is contained in:
Gavin Bisesi 2014-11-14 16:07:05 -05:00
commit 9599fe7b33
60 changed files with 6686 additions and 3416 deletions

View file

@ -113,10 +113,10 @@ ENDIF()
IF(Qt5Widgets_FOUND) IF(Qt5Widgets_FOUND)
MESSAGE(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}") MESSAGE(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}")
if(UNIX AND NOT APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") # FIX: Qt was built with -reduce-relocations
# FIX: Qt was built with -reduce-relocations if (Qt5_POSITION_INDEPENDENT_CODE)
add_definitions(-fPIC) SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif() endif()
FIND_PACKAGE(Qt5LinguistTools) FIND_PACKAGE(Qt5LinguistTools)
IF(UPDATE_TRANSLATIONS) IF(UPDATE_TRANSLATIONS)
@ -158,6 +158,11 @@ set(CMAKE_AUTOMOC TRUE)
# Find other needed libraries # Find other needed libraries
FIND_PACKAGE(Protobuf REQUIRED) FIND_PACKAGE(Protobuf REQUIRED)
#Find OpenSSL
IF(WIN32)
FIND_PACKAGE(Win32SslRuntime)
ENDIF()
# Package builder # Package builder
set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com") set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME}) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME})

View file

@ -9,11 +9,11 @@ a network interface as well. Both client and server are written in Qt, supportin
Chat with the Cockatrice developers on Gitter. Come here to talk about the application, features, or just to hang out. For support regarding specific servers, please contact that server's admin or forum for support rather than asking here. Chat with the Cockatrice developers on Gitter. Come here to talk about the application, features, or just to hang out. For support regarding specific servers, please contact that server's admin or forum for support rather than asking here.
[![Gitter chat](https://badges.gitter.im/Daenyth/Cockatrice.png)](https://gitter.im/Daenyth/Cockatrice) [![Gitter chat](https://badges.gitter.im/Cockatrice/Cockatrice.png)](https://gitter.im/Cockatrice/Cockatrice)
# Building # Building
[![Build Status](https://travis-ci.org/Daenyth/Cockatrice.svg?branch=master)](https://travis-ci.org/Daenyth/Cockatrice) [![Build Status](https://travis-ci.org/Cockatrice/Cockatrice.svg?branch=master)](https://travis-ci.org/Cockatrice/Cockatrice)
Dependencies: Dependencies:

View file

@ -0,0 +1,52 @@
# Find the OpenSSL runtime libraries (.dll) for Windows that
# will be needed by Qt in order to access https urls.
if (WIN32)
# Get standard installation paths for OpenSSL under Windows
# http://www.slproweb.com/products/Win32OpenSSL.html
set(_OPENSSL_ROOT_HINTS
${OPENSSL_ROOT_DIR}
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
ENV OPENSSL_ROOT_DIR
)
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
set(_OPENSSL_ROOT_PATHS
"${_programfiles}/OpenSSL"
"${_programfiles}/OpenSSL-Win32"
"${_programfiles}/OpenSSL-Win64"
"C:/OpenSSL/"
"C:/OpenSSL-Win32/"
"C:/OpenSSL-Win64/"
)
unset(_programfiles)
else ()
set(_OPENSSL_ROOT_HINTS
${OPENSSL_ROOT_DIR}
ENV OPENSSL_ROOT_DIR
)
endif ()
set(_OPENSSL_ROOT_HINTS_AND_PATHS
HINTS ${_OPENSSL_ROOT_HINTS}
PATHS ${_OPENSSL_ROOT_PATHS}
)
FIND_FILE(WIN32SSLRUNTIME_LIBEAY NAMES libeay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
FIND_FILE(WIN32SSLRUNTIME_SSLEAY NAMES ssleay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
IF(WIN32SSLRUNTIME_LIBEAY AND WIN32SSLRUNTIME_SSLEAY)
SET(WIN32SSLRUNTIME_LIBRARIES "${WIN32SSLRUNTIME_LIBEAY}" "${WIN32SSLRUNTIME_SSLEAY}")
SET(WIN32SSLRUNTIME_FOUND "YES")
message(STATUS "Found OpenSSL ${WIN32SSLRUNTIME_LIBRARIES}")
ELSE()
SET(WIN32SSLRUNTIME_FOUND "NO")
message(WARNING "Could not find OpenSSL runtime libraries. They are not required for compiling, but needs to be available at runtime.")
ENDIF()
MARK_AS_ADVANCED(
WIN32SSLRUNTIME_LIBEAY
WIN32SSLRUNTIME_SSLEAY
)

View file

@ -63,6 +63,7 @@ Section "Start menu item" SecStartMenu
createDirectory "$SMPROGRAMS\Cockatrice" createDirectory "$SMPROGRAMS\Cockatrice"
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe" '--debug-output' createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe" '--debug-output'
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe" createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
createShortCut "$SMPROGRAMS\Cockatrice\Servatrice.lnk" "$INSTDIR\servatrice.exe"
createShortCut "$SMPROGRAMS\Cockatrice\Usermanual.lnk" "$INSTDIR\Usermanual.pdf" createShortCut "$SMPROGRAMS\Cockatrice\Usermanual.lnk" "$INSTDIR\Usermanual.pdf"
SectionEnd SectionEnd
@ -80,6 +81,8 @@ Section Uninstall
Delete "$INSTDIR\libprotobuf.lib" Delete "$INSTDIR\libprotobuf.lib"
Delete "$INSTDIR\Qt*.dll" Delete "$INSTDIR\Qt*.dll"
Delete "$INSTDIR\icu*.dll" Delete "$INSTDIR\icu*.dll"
Delete "$INSTDIR\libeay32.dll"
Delete "$INSTDIR\ssleay32.dll"
Delete "$INSTDIR\qt.conf" Delete "$INSTDIR\qt.conf"
Delete "$INSTDIR\qdebug.txt" Delete "$INSTDIR\qdebug.txt"
Delete "$INSTDIR\servatrice.sql" Delete "$INSTDIR\servatrice.sql"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View file

@ -242,6 +242,13 @@ endif()
if(UNIX) if(UNIX)
if(APPLE) if(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
INSTALL(TARGETS cockatrice BUNDLE DESTINATION ./) INSTALL(TARGETS cockatrice BUNDLE DESTINATION ./)
INSTALL(FILES ${cockatrice_QM} DESTINATION ./cockatrice.app/Contents/Resources/translations) INSTALL(FILES ${cockatrice_QM} DESTINATION ./cockatrice.app/Contents/Resources/translations)
else() else()
@ -263,15 +270,16 @@ if(APPLE)
set(qtconf_dest_dir cockatrice.app/Contents/Resources) set(qtconf_dest_dir cockatrice.app/Contents/Resources)
# note: no codecs in qt5 # note: no codecs in qt5
# note: phonon_backend => mediaservice # note: phonon_backend => audio | mediaservice
# note: needs platform on osx # note: needs platform on osx
if (CMAKE_BUILD_TYPE STREQUAL "Debug") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*_debug\\.dylib") FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*_debug\\.dylib")
else() else()
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/[^_]*\\.dylib") FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*\\.dylib"
REGEX ".*_debug\\.dylib" EXCLUDE)
endif() endif()
install(CODE " install(CODE "
@ -296,15 +304,15 @@ if(WIN32)
set(qtconf_dest_dir .) set(qtconf_dest_dir .)
# note: no codecs in qt5 # note: no codecs in qt5
# note: phonon_backend => mediaservice # note: phonon_backend => audio | mediaservice
# note: needs platform on osx # note: needs platform on osx
if (CMAKE_BUILD_TYPE STREQUAL "Debug") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*d\\.dll") FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*d\\.dll")
else() else()
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*[^d]\\.dll") FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*[^d]\\.dll")
endif() endif()
install(CODE " install(CODE "
@ -321,4 +329,8 @@ Data = Resources\")
include(BundleUtilities) include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/cockatrice.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\") fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/cockatrice.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
" COMPONENT Runtime) " COMPONENT Runtime)
if(WIN32SSLRUNTIME_FOUND)
install(FILES ${WIN32SSLRUNTIME_LIBRARIES} DESTINATION ./)
endif()
endif() endif()

View file

@ -1,131 +1,130 @@
<RCC> <RCC>
<qresource prefix="/" > <qresource prefix="/" >
<file alias="back.svg" >resources/back.svg</file> <file alias="back.svg" >resources/back.svg</file>
<file>resources/lock.svg</file> <file>resources/lock.svg</file>
<file>resources/icon_delete.svg</file> <file>resources/icon_delete.svg</file>
<file>resources/icon_tab_changed.svg</file> <file>resources/icon_tab_changed.svg</file>
<file>resources/icon_config_general.svg</file> <file>resources/icon_config_general.svg</file>
<file>resources/icon_config_appearance.svg</file> <file>resources/icon_config_appearance.svg</file>
<file>resources/icon_config_interface.svg</file> <file>resources/icon_config_interface.svg</file>
<file>resources/icon_config_messages.svg</file> <file>resources/icon_config_messages.svg</file>
<file>resources/icon_config_deckeditor.svg</file> <file>resources/icon_config_deckeditor.svg</file>
<file>resources/phases/icon_phase_untap.svg</file> <file>resources/phases/icon_phase_untap.svg</file>
<file>resources/phases/icon_phase_upkeep.svg</file> <file>resources/phases/icon_phase_upkeep.svg</file>
<file>resources/phases/icon_phase_draw.svg</file> <file>resources/phases/icon_phase_draw.svg</file>
<file>resources/phases/icon_phase_main1.svg</file> <file>resources/phases/icon_phase_main1.svg</file>
<file>resources/phases/icon_phase_combat_start.svg</file> <file>resources/phases/icon_phase_combat_start.svg</file>
<file>resources/phases/icon_phase_combat_attackers.svg</file> <file>resources/phases/icon_phase_combat_attackers.svg</file>
<file>resources/phases/icon_phase_combat_blockers.svg</file> <file>resources/phases/icon_phase_combat_blockers.svg</file>
<file>resources/phases/icon_phase_combat_damage.svg</file> <file>resources/phases/icon_phase_combat_damage.svg</file>
<file>resources/phases/icon_phase_combat_end.svg</file> <file>resources/phases/icon_phase_combat_end.svg</file>
<file>resources/phases/icon_phase_main2.svg</file> <file>resources/phases/icon_phase_main2.svg</file>
<file>resources/phases/icon_phase_cleanup.svg</file> <file>resources/phases/icon_phase_cleanup.svg</file>
<file>resources/phases/icon_phase_nextturn.svg</file> <file>resources/phases/icon_phase_nextturn.svg</file>
<file>resources/icon_settings.svg</file> <file>resources/icon_settings.svg</file>
<file>resources/hand.svg</file> <file>resources/hand.svg</file>
<file>resources/pencil.svg</file> <file>resources/pencil.svg</file>
<file>resources/icon_search.svg</file> <file>resources/icon_search.svg</file>
<file>resources/icon_clearsearch.svg</file> <file>resources/icon_search_black.svg</file>
<file>resources/icon_update.png</file> <file>resources/icon_clearsearch.svg</file>
<file>resources/icon_view.svg</file> <file>resources/icon_update.png</file>
<file>resources/hr.jpg</file> <file>resources/icon_view.svg</file>
<file alias="resources/appicon.svg">resources/cockatrice.svg</file> <file>resources/hr.jpg</file>
<file>resources/add_to_sideboard.svg</file> <file alias="resources/appicon.svg">resources/cockatrice.svg</file>
<file>resources/decrement.svg</file> <file>resources/add_to_sideboard.svg</file>
<file>resources/increment.svg</file> <file>resources/decrement.svg</file>
<file>resources/remove_row.svg</file> <file>resources/increment.svg</file>
<file>resources/arrow_left_green.svg</file> <file>resources/remove_row.svg</file>
<file>resources/arrow_right_green.svg</file> <file>resources/arrow_left_green.svg</file>
<file>resources/icon_ready_start.svg</file> <file>resources/arrow_right_green.svg</file>
<file>resources/icon_not_ready_start.svg</file> <file>resources/icon_ready_start.svg</file>
<file>resources/icon_conceded.svg</file> <file>resources/icon_not_ready_start.svg</file>
<file>resources/icon_player.svg</file> <file>resources/icon_conceded.svg</file>
<file>resources/icon_spectator.svg</file> <file>resources/icon_player.svg</file>
<file>resources/icon_spectator.svg</file>
<file>resources/replay_start.svg</file>
<file>resources/replay_stop.svg</file>
<file>resources/replay_fastforward.svg</file>
<file>resources/replay_rewind.svg</file>
<file>resources/replay_toend.svg</file>
<file>resources/replay_tostart.svg</file>
<file>resources/replay_pause.svg</file>
<file>resources/genders/male.svg</file> <file>resources/replay_start.svg</file>
<file>resources/genders/female.svg</file> <file>resources/replay_stop.svg</file>
<file>resources/genders/unknown.svg</file> <file>resources/replay_fastforward.svg</file>
<file>resources/replay_rewind.svg</file>
<file>resources/replay_toend.svg</file>
<file>resources/replay_tostart.svg</file>
<file>resources/replay_pause.svg</file>
<file>resources/countries/ar.svg</file> <file>resources/genders/male.svg</file>
<file>resources/countries/at.svg</file> <file>resources/genders/female.svg</file>
<file>resources/countries/au.svg</file> <file>resources/genders/unknown.svg</file>
<file>resources/countries/be.svg</file>
<file>resources/countries/br.svg</file>
<file>resources/countries/by.svg</file>
<file>resources/countries/ca.svg</file>
<file>resources/countries/cl.svg</file>
<file>resources/countries/cz.svg</file>
<file>resources/countries/ch.svg</file>
<file>resources/countries/cn.svg</file>
<file>resources/countries/de.svg</file>
<file>resources/countries/dk.svg</file>
<file>resources/countries/do.svg</file>
<file>resources/countries/es.svg</file>
<file>resources/countries/fi.svg</file>
<file>resources/countries/fr.svg</file>
<file>resources/countries/ge.svg</file>
<file>resources/countries/gr.svg</file>
<file>resources/countries/gt.svg</file>
<file>resources/countries/hr.svg</file>
<file>resources/countries/hu.svg</file>
<file>resources/countries/ie.svg</file>
<file>resources/countries/il.svg</file>
<file>resources/countries/it.svg</file>
<file>resources/countries/jp.svg</file>
<file>resources/countries/lt.svg</file>
<file>resources/countries/lu.svg</file>
<file>resources/countries/lv.svg</file>
<file>resources/countries/mx.svg</file>
<file>resources/countries/my.svg</file>
<file>resources/countries/nl.svg</file>
<file>resources/countries/no.svg</file>
<file>resources/countries/nz.svg</file>
<file>resources/countries/pe.svg</file>
<file>resources/countries/ph.svg</file>
<file>resources/countries/pl.svg</file>
<file>resources/countries/pt.svg</file>
<file>resources/countries/ro.svg</file>
<file>resources/countries/ru.svg</file>
<file>resources/countries/se.svg</file>
<file>resources/countries/sg.svg</file>
<file>resources/countries/si.svg</file>
<file>resources/countries/sk.svg</file>
<file>resources/countries/tr.svg</file>
<file>resources/countries/ua.svg</file>
<file>resources/countries/uk.svg</file>
<file>resources/countries/us.svg</file>
<file>resources/countries/ve.svg</file>
<file>resources/countries/za.svg</file>
<file>resources/counters/w.svg</file> <file>resources/countries/ar.svg</file>
<file>resources/counters/w_highlight.svg</file> <file>resources/countries/at.svg</file>
<file>resources/counters/u.svg</file> <file>resources/countries/au.svg</file>
<file>resources/counters/u_highlight.svg</file> <file>resources/countries/be.svg</file>
<file>resources/counters/b.svg</file> <file>resources/countries/br.svg</file>
<file>resources/counters/b_highlight.svg</file> <file>resources/countries/by.svg</file>
<file>resources/counters/r.svg</file> <file>resources/countries/ca.svg</file>
<file>resources/counters/r_highlight.svg</file> <file>resources/countries/cl.svg</file>
<file>resources/counters/g.svg</file> <file>resources/countries/cz.svg</file>
<file>resources/counters/g_highlight.svg</file> <file>resources/countries/ch.svg</file>
<file>resources/counters/general.svg</file> <file>resources/countries/cn.svg</file>
<file>resources/counters/general_highlight.svg</file> <file>resources/countries/de.svg</file>
<file>resources/countries/dk.svg</file>
<file>resources/countries/do.svg</file>
<file>resources/countries/es.svg</file>
<file>resources/countries/fi.svg</file>
<file>resources/countries/fr.svg</file>
<file>resources/countries/ge.svg</file>
<file>resources/countries/gr.svg</file>
<file>resources/countries/gt.svg</file>
<file>resources/countries/hr.svg</file>
<file>resources/countries/hu.svg</file>
<file>resources/countries/ie.svg</file>
<file>resources/countries/il.svg</file>
<file>resources/countries/it.svg</file>
<file>resources/countries/jp.svg</file>
<file>resources/countries/lt.svg</file>
<file>resources/countries/lu.svg</file>
<file>resources/countries/lv.svg</file>
<file>resources/countries/mx.svg</file>
<file>resources/countries/my.svg</file>
<file>resources/countries/nl.svg</file>
<file>resources/countries/no.svg</file>
<file>resources/countries/nz.svg</file>
<file>resources/countries/pe.svg</file>
<file>resources/countries/ph.svg</file>
<file>resources/countries/pl.svg</file>
<file>resources/countries/pt.svg</file>
<file>resources/countries/ro.svg</file>
<file>resources/countries/ru.svg</file>
<file>resources/countries/se.svg</file>
<file>resources/countries/sg.svg</file>
<file>resources/countries/si.svg</file>
<file>resources/countries/sk.svg</file>
<file>resources/countries/tr.svg</file>
<file>resources/countries/ua.svg</file>
<file>resources/countries/uk.svg</file>
<file>resources/countries/us.svg</file>
<file>resources/countries/ve.svg</file>
<file>resources/countries/za.svg</file>
<file>resources/userlevels/normal.svg</file> <file>resources/counters/w.svg</file>
<file>resources/userlevels/registered.svg</file> <file>resources/counters/w_highlight.svg</file>
<file>resources/userlevels/moderator.svg</file> <file>resources/counters/u.svg</file>
<file>resources/userlevels/admin.svg</file> <file>resources/counters/u_highlight.svg</file>
<file>resources/counters/b.svg</file>
<file>resources/counters/b_highlight.svg</file>
<file>resources/counters/r.svg</file>
<file>resources/counters/r_highlight.svg</file>
<file>resources/counters/g.svg</file>
<file>resources/counters/g_highlight.svg</file>
<file>resources/counters/general.svg</file>
<file>resources/counters/general_highlight.svg</file>
<file>resources/news/exclamation_mark.svg</file> <file>resources/userlevels/normal.svg</file>
<file>resources/news/question_mark.svg</file> <file>resources/userlevels/registered.svg</file>
<file>resources/userlevels/moderator.svg</file>
<file>resources/userlevels/admin.svg</file>
<file>resources/mtgforum.png</file> <file>resources/news/exclamation_mark.svg</file>
</qresource> <file>resources/news/question_mark.svg</file>
</qresource>
</RCC> </RCC>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View file

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg2"
version="1.1"
inkscape:version="0.48.5 r10040"
sodipodi:docname="icon_search_black.svg">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient3709">
<stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop3711" />
<stop
style="stop-color:#4d4d4d;stop-opacity:0;"
offset="1"
id="stop3713" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3699">
<stop
style="stop-color:#ececec;stop-opacity:1;"
offset="0"
id="stop3701" />
<stop
style="stop-color:#ececec;stop-opacity:0;"
offset="1"
id="stop3703" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3632">
<stop
style="stop-color:#c87137;stop-opacity:1;"
offset="0"
id="stop3634" />
<stop
style="stop-color:#c87137;stop-opacity:0;"
offset="1"
id="stop3636" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3622">
<stop
style="stop-color:#f9f9f9;stop-opacity:1;"
offset="0"
id="stop3624" />
<stop
style="stop-color:#f9f9f9;stop-opacity:0;"
offset="1"
id="stop3626" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3622"
id="linearGradient3628"
x1="30.59761"
y1="8.9243031"
x2="30.59761"
y2="21.545816"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3632"
id="linearGradient3638"
x1="28.430279"
y1="47.808765"
x2="29.960159"
y2="47.808765"
gradientUnits="userSpaceOnUse" />
<inkscape:perspective
id="perspective3685"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3699"
id="linearGradient3705"
x1="29.215645"
y1="1021.9559"
x2="31.852083"
y2="1021.9559"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3709"
id="linearGradient3715"
x1="22.288248"
y1="35.505978"
x2="49.488647"
y2="49.106178"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3632"
id="linearGradient3730"
gradientUnits="userSpaceOnUse"
x1="28.430279"
y1="47.808765"
x2="29.960159"
y2="47.808765" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3699"
id="linearGradient3732"
gradientUnits="userSpaceOnUse"
x1="29.215645"
y1="1021.9559"
x2="31.852083"
y2="1021.9559" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.84375"
inkscape:cx="6.0725518"
inkscape:cy="32"
inkscape:document-units="px"
inkscape:current-layer="g3717"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1028"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36218)">
<g
id="g3717"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,729.31175,279.31708)">
<path
transform="matrix(1.7216859,0,0,1.7216859,-37.751505,955.72849)"
d="m 49.338646,35.505978 a 13.450199,13.450199 0 1 1 -26.900398,0 13.450199,13.450199 0 1 1 26.900398,0 z"
sodipodi:ry="13.450199"
sodipodi:rx="13.450199"
sodipodi:cy="35.505978"
sodipodi:cx="35.888447"
id="path2816"
style="fill:#222326;fill-opacity:0;stroke:#222326;stroke-width:1.90745997;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
transform="matrix(-0.08671958,-1.1164509,1.1164509,-0.08671958,2.9138372,1039.7631)"
d="m 18.613546,52.207172 a 2.5498009,12.302789 0 1 1 -5.099601,0 2.5498009,12.302789 0 1 1 5.099601,0 z"
sodipodi:ry="12.302789"
sodipodi:rx="2.5498009"
sodipodi:cy="52.207172"
sodipodi:cx="16.063745"
id="path2826"
style="fill:#222326;fill-opacity:1;stroke:#222326;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,749 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5603"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_cleanup.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5605">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5601"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5599"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5597"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5595"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5593"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5591"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5589"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5587"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5585"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5583"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5581"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5579"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5577"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5575"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5573"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5571"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5569"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5567"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5565"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5563"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5561"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5559"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5557"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691" />
<linearGradient
id="linearGradient5329">
<stop
style="stop-color:#ffe680;stop-opacity:1;"
offset="0"
id="stop5331" />
<stop
style="stop-color:#ffc341;stop-opacity:1;"
offset="1"
id="stop5333" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5555"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634" />
<linearGradient
id="linearGradient3197">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3199" />
<stop
id="stop3205"
offset="0.39693579"
style="stop-color:#bf7d51;stop-opacity:1;" />
<stop
style="stop-color:#dfa27a;stop-opacity:1;"
offset="0.63405275"
id="stop3207" />
<stop
style="stop-color:#973c00;stop-opacity:1;"
offset="1"
id="stop3201" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5553"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6458849,0,0,0.9865768,-211.71948,8.0732737)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
id="linearGradient5272">
<stop
style="stop-color:#c87137;stop-opacity:1;"
offset="0"
id="stop5274" />
<stop
style="stop-color:#faf1eb;stop-opacity:1;"
offset="1"
id="stop5276" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5551"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9977113,0,0,1.1799457,0.7341533,-111.29357)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5611" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5840"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5843"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5846"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5849"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5852"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5855"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5858"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5861"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5864"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5867"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5870"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5873"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5876"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5879"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5882"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5885"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5888"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5891"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5894"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5897"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5900"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5903"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5906"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5909"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5912"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2213048,0,0,0.1326546,-71.37835,-18.694896)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5917"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.1341517,0,0,0.1586549,-42.811951,-34.744896)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.1172201"
inkscape:cx="-22.786837"
inkscape:cy="27.255752"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5608">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<rect
style="fill:url(#linearGradient5917);fill-opacity:1.0;fill-rule:nonzero;stroke:#000000;stroke-width:0.14588976000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2383"
width="4.9827776"
height="61.648746"
x="-2.2713048"
y="1.6943892"
ry="2.9464471"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:#ebcab5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 44.904132,41.323651 L 4.8565979,1.129034 C 4.8565979,1.129034 3.2946309,0.33074409 2.991018,0.73427166 C 2.4571168,1.4438736 45.452675,43.122386 45.452675,43.122386 C 45.452675,43.122386 45.67752,42.53682 44.904132,41.323651 z"
id="path3157"
sodipodi:nodetypes="ccscc" />
<path
style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 32.990203,51.516739 L 51.190377,33.316565 C 52.794548,31.712394 54.360316,30.695278 54.701069,31.036031 L 57.18543,33.520392 L 59.669792,36.004754 C 60.010545,36.345507 58.993429,37.911276 57.389258,39.515446 L 39.189084,57.71562 C 37.584914,59.319791 36.019144,60.336908 35.678391,59.996155 L 33.194029,57.511793 L 30.709668,55.027432 C 30.368915,54.686679 31.386032,53.12091 32.990203,51.516739 z"
id="rect3159"
sodipodi:nodetypes="ccccccccccc" />
<rect
style="fill:url(#linearGradient5912);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.17133911;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3175"
width="34.587376"
height="2.7105932"
x="-17.541821"
y="59.73428"
ry="1.3552966"
rx="0.3055422"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:url(#linearGradient5909);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 31.986721,56.353875 L 33.04455,55.296047 C 33.04455,55.296047 37.94372,59.481767 39.509347,61.724389 C 39.768454,62.095537 39.363163,62.10712 39.24489,61.988847 L 39.016887,62.289758 L 38.916474,62.681805 C 39.094748,62.97744 38.34756,63.177813 38.378609,63.21967 C 38.378609,63.21967 37.318113,61.756505 36.807978,61.175132 C 36.358275,60.662631 35.683018,60.050172 35.200893,59.568047 C 34.718767,59.085921 34.075933,58.443087 33.593807,57.960961 C 33.111681,57.478835 31.986721,56.353875 31.986721,56.353875 z"
id="rect5280"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5906);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 33.133051,55.140476 L 34.19088,54.082647 C 34.19088,54.082647 39.09005,58.268367 40.655678,60.51099 C 40.914785,60.882138 40.509494,60.89372 40.39122,60.775447 L 40.163218,61.076358 L 40.062805,61.468405 C 40.241078,61.76404 39.49389,61.964413 39.52494,62.00627 C 39.52494,62.00627 38.464443,60.543105 37.954308,59.961732 C 37.504606,59.449231 36.829348,58.836772 36.347223,58.354647 C 35.865097,57.872521 35.222263,57.229687 34.740137,56.747562 C 34.258011,56.265436 33.133051,55.140476 33.133051,55.140476 z"
id="path5283"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5903);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 34.226684,54.046844 L 35.284512,52.989015 C 35.284512,52.989015 40.183682,57.174735 41.74931,59.417358 C 42.008417,59.788506 41.603126,59.800088 41.484852,59.681815 L 41.25685,59.982726 L 41.156437,60.374773 C 41.33471,60.670408 40.587522,60.870781 40.618572,60.912638 C 40.618572,60.912638 39.558075,59.449473 39.04794,58.8681 C 38.598238,58.355599 37.92298,57.74314 37.440855,57.261015 C 36.958729,56.778889 36.315895,56.136055 35.833769,55.653929 C 35.351643,55.171804 34.226684,54.046844 34.226684,54.046844 z"
id="path5285"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5900);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 35.174496,53.244846 L 36.232324,52.187017 C 36.232324,52.187017 41.131494,56.372737 42.697122,58.61536 C 42.956229,58.986508 42.550938,58.99809 42.432665,58.879817 L 42.204662,59.180728 L 42.104249,59.572775 C 42.282522,59.86841 41.535335,60.068783 41.566384,60.11064 C 41.566384,60.11064 40.505887,58.647475 39.995753,58.066102 C 39.54605,57.553601 38.870793,56.941142 38.388668,56.459017 C 37.906542,55.976891 37.263708,55.334058 36.781582,54.851932 C 36.299456,54.369806 35.174496,53.244846 35.174496,53.244846 z"
id="path5287"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5897);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 36.195221,52.224123 L 37.253049,51.166294 C 37.253049,51.166294 42.152219,55.352014 43.717847,57.594637 C 43.976954,57.965785 43.571663,57.977367 43.45339,57.859094 L 43.225387,58.160005 L 43.124974,58.552052 C 43.303247,58.847687 42.55606,59.04806 42.587109,59.089917 C 42.587109,59.089917 41.526612,57.626752 41.016477,57.045379 C 40.566775,56.532878 39.891518,55.920419 39.409392,55.438294 C 38.927267,54.956168 38.284433,54.313334 37.802307,53.831208 C 37.320181,53.349083 36.195221,52.224123 36.195221,52.224123 z"
id="path5289"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5894);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 37.288853,51.130491 L 38.346681,50.072662 C 38.346681,50.072662 43.245851,54.258382 44.811479,56.501005 C 45.070586,56.872153 44.665295,56.883735 44.547022,56.765462 L 44.319019,57.066373 L 44.218606,57.45842 C 44.396879,57.754055 43.649692,57.954428 43.680741,57.996285 C 43.680741,57.996285 42.620244,56.53312 42.11011,55.951747 C 41.660407,55.439246 40.98515,54.826787 40.503025,54.344662 C 40.020899,53.862536 39.378065,53.219702 38.895939,52.737576 C 38.413813,52.25545 37.288853,51.130491 37.288853,51.130491 z"
id="path5291"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5891);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 39.694842,48.578683 L 40.752671,47.520855 C 40.752671,47.520855 45.65184,51.706575 47.217468,53.949197 C 47.476575,54.320345 47.071284,54.331928 46.953011,54.213655 L 46.725008,54.514566 L 46.624595,54.906613 C 46.802869,55.202248 46.055681,55.402621 46.08673,55.444478 C 46.08673,55.444478 45.026233,53.981313 44.516099,53.39994 C 44.066396,52.887439 43.391139,52.27498 42.909014,51.792855 C 42.426888,51.310729 41.784054,50.667895 41.301928,50.185769 C 40.819802,49.703643 39.694842,48.578683 39.694842,48.578683 z"
id="path5293"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5888);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 42.975738,45.443605 L 44.033567,44.385776 C 44.033567,44.385776 48.932736,48.571497 50.498364,50.814119 C 50.757471,51.185267 50.35218,51.19685 50.233907,51.078576 L 50.005904,51.379488 L 49.905491,51.771535 C 50.083765,52.06717 49.336577,52.267542 49.367626,52.3094 C 49.367626,52.3094 48.30713,50.846234 47.796995,50.264862 C 47.347292,49.752361 46.672035,49.139902 46.18991,48.657777 C 45.707784,48.175651 45.06495,47.532817 44.582824,47.050691 C 44.100698,46.568565 42.975738,45.443605 42.975738,45.443605 z"
id="path5295"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5885);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 45.673363,42.74598 L 46.731192,41.688151 C 46.731192,41.688151 51.630362,45.873871 53.195989,48.116494 C 53.455096,48.487642 53.049805,48.499225 52.931532,48.380951 L 52.703529,48.681863 L 52.603116,49.07391 C 52.78139,49.369545 52.034202,49.569917 52.065251,49.611775 C 52.065251,49.611775 51.004755,48.148609 50.49462,47.567237 C 50.044917,47.054736 49.36966,46.442277 48.887535,45.960152 C 48.405409,45.478026 47.762575,44.835192 47.280449,44.353066 C 46.798323,43.87094 45.673363,42.74598 45.673363,42.74598 z"
id="path5297"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5882);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.01794,50.255585 L 39.075769,49.197757 C 39.075769,49.197757 43.974938,53.383477 45.540566,55.626099 C 45.799673,55.997248 45.394382,56.00883 45.276109,55.890557 L 45.048106,56.191468 L 44.947693,56.583515 C 45.125967,56.87915 44.378779,57.079523 44.409828,57.12138 C 44.409828,57.12138 43.349331,55.658215 42.839197,55.076842 C 42.389494,54.564341 41.714237,53.951882 41.232112,53.469757 C 40.749986,52.987631 40.107152,52.344797 39.625026,51.862671 C 39.1429,51.380545 38.01794,50.255585 38.01794,50.255585 z"
id="path5299"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5879);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.892845,49.38068 L 39.950674,48.322852 C 39.950674,48.322852 44.849843,52.508572 46.415471,54.751194 C 46.674578,55.122342 46.269287,55.133925 46.151014,55.015652 L 45.923011,55.316563 L 45.822598,55.70861 C 46.000872,56.004245 45.253684,56.204618 45.284733,56.246475 C 45.284733,56.246475 44.224236,54.78331 43.714102,54.201937 C 43.264399,53.689436 42.589142,53.076977 42.107017,52.594852 C 41.624891,52.112726 40.982057,51.469892 40.499931,50.987766 C 40.017805,50.50564 38.892845,49.38068 38.892845,49.38068 z"
id="path5301"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5876);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 40.934292,47.485051 L 41.992121,46.427223 C 41.992121,46.427223 46.89129,50.612943 48.456918,52.855565 C 48.716025,53.226713 48.310734,53.238296 48.192461,53.120023 L 47.964458,53.420934 L 47.864045,53.812981 C 48.042319,54.108616 47.295131,54.308988 47.32618,54.350846 C 47.32618,54.350846 46.265683,52.887681 45.755549,52.306308 C 45.305846,51.793807 44.630589,51.181348 44.148464,50.699223 C 43.666338,50.217097 43.023504,49.574263 42.541378,49.092137 C 42.059252,48.610011 40.934292,47.485051 40.934292,47.485051 z"
id="path5303"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5873);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 41.955014,46.464329 L 43.012843,45.4065 C 43.012843,45.4065 47.912012,49.59222 49.47764,51.834843 C 49.736747,52.205991 49.331456,52.217574 49.213183,52.0993 L 48.98518,52.400212 L 48.884767,52.792259 C 49.063041,53.087894 48.315853,53.288266 48.346902,53.330124 C 48.346902,53.330124 47.286406,51.866958 46.776271,51.285586 C 46.326568,50.773085 45.651311,50.160626 45.169186,49.678501 C 44.68706,49.196375 44.044226,48.553541 43.5621,48.071415 C 43.079974,47.589289 41.955014,46.464329 41.955014,46.464329 z"
id="path5305"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5870);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.069369,44.349974 L 45.127198,43.292145 C 45.127198,43.292145 50.026368,47.477865 51.591995,49.720488 C 51.851102,50.091636 51.445811,50.103219 51.327538,49.984945 L 51.099535,50.285857 L 50.999122,50.677904 C 51.177396,50.973539 50.430208,51.173911 50.461257,51.215769 C 50.461257,51.215769 49.400761,49.752603 48.890626,49.171231 C 48.440923,48.65873 47.765666,48.046271 47.283541,47.564146 C 46.801415,47.08202 46.158581,46.439186 45.676455,45.95706 C 45.194329,45.474934 44.069369,44.349974 44.069369,44.349974 z"
id="path5307"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5867);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.944275,43.475068 L 46.002104,42.417239 C 46.002104,42.417239 50.901274,46.602959 52.466901,48.845582 C 52.726008,49.21673 52.320717,49.228313 52.202444,49.110039 L 51.974441,49.410951 L 51.874028,49.802998 C 52.052302,50.098633 51.305114,50.299005 51.336163,50.340863 C 51.336163,50.340863 50.275667,48.877697 49.765532,48.296325 C 49.315829,47.783824 48.640572,47.171365 48.158447,46.68924 C 47.676321,46.207114 47.033487,45.56428 46.551361,45.082154 C 46.069235,44.600028 44.944275,43.475068 44.944275,43.475068 z"
id="path5309"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5864);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 46.577609,41.743411 L 47.635438,40.685582 C 47.635438,40.685582 52.534607,44.871302 54.100235,47.113925 C 54.359342,47.485073 53.954051,47.496656 53.835778,47.378382 L 53.607775,47.679294 L 53.507362,48.071341 C 53.685636,48.366976 52.938448,48.567348 52.969497,48.609206 C 52.969497,48.609206 51.909001,47.14604 51.398866,46.564668 C 50.949163,46.052167 50.273906,45.439708 49.791781,44.957583 C 49.309655,44.475457 48.666821,43.832623 48.184695,43.350497 C 47.702569,42.868371 46.577609,41.743411 46.577609,41.743411 z"
id="path5311"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5861);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 47.687432,40.633588 L 48.74526,39.57576 C 48.74526,39.57576 53.64443,43.76148 55.210058,46.004102 C 55.469165,46.37525 55.063874,46.386833 54.945601,46.26856 L 54.717598,46.569471 L 54.617185,46.961518 C 54.795458,47.257153 54.048271,47.457526 54.07932,47.499383 C 54.07932,47.499383 53.018823,46.036218 52.508688,45.454845 C 52.058986,44.942344 51.383729,44.329885 50.901603,43.84776 C 50.419478,43.365634 49.776644,42.7228 49.294518,42.240674 C 48.812392,41.758548 47.687432,40.633588 47.687432,40.633588 z"
id="path5313"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5858);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 48.967997,39.438395 L 50.025826,38.380566 C 50.025826,38.380566 54.924995,42.566286 56.490623,44.808909 C 56.74973,45.180057 56.344439,45.191639 56.226166,45.073366 L 55.998163,45.374278 L 55.89775,45.766325 C 56.076024,46.06196 55.328836,46.262332 55.359885,46.30419 C 55.359885,46.30419 54.299388,44.841024 53.789254,44.259652 C 53.339551,43.747151 52.664294,43.134692 52.182169,42.652567 C 51.700043,42.170441 51.057209,41.527607 50.575083,41.045481 C 50.092957,40.563355 48.967997,39.438395 48.967997,39.438395 z"
id="path5315"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 49.992449,38.413941 L 51.050278,37.356112 C 51.050278,37.356112 55.949447,41.541832 57.515075,43.784455 C 57.774182,44.155603 57.368891,44.167185 57.250618,44.048912 L 57.022615,44.349824 L 56.922202,44.741871 C 57.100476,45.037506 56.353288,45.237878 56.384337,45.279736 C 56.384337,45.279736 55.32384,43.81657 54.813706,43.235198 C 54.364003,42.722697 53.688746,42.110238 53.206621,41.628113 C 52.724495,41.145987 52.081661,40.503153 51.599535,40.021027 C 51.117409,39.538901 49.992449,38.413941 49.992449,38.413941 z"
id="path5317"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5852);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 52.895063,35.340587 L 53.952892,34.282758 C 53.952892,34.282758 58.852062,38.468478 60.417689,40.711101 C 60.676796,41.082249 60.271505,41.093831 60.153232,40.975558 L 59.925229,41.27647 L 59.824816,41.668517 C 60.00309,41.964152 59.255902,42.164524 59.286951,42.206382 C 59.286951,42.206382 58.226455,40.743216 57.71632,40.161844 C 57.266617,39.649343 56.59136,39.036884 56.109235,38.554759 C 55.627109,38.072633 54.984275,37.429799 54.502149,36.947673 C 54.020023,36.465547 52.895063,35.340587 52.895063,35.340587 z"
id="path5319"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5849);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 53.919514,34.316134 L 54.977343,33.258305 C 54.977343,33.258305 59.876513,37.444025 61.44214,39.686648 C 61.701248,40.057796 61.295956,40.069379 61.177683,39.951105 L 60.94968,40.252017 L 60.849267,40.644064 C 61.027541,40.939699 60.280353,41.140071 60.311402,41.181929 C 60.311402,41.181929 59.250906,39.718763 58.740771,39.137391 C 58.291068,38.62489 57.615811,38.012431 57.133686,37.530306 C 56.65156,37.04818 56.008726,36.405346 55.5266,35.92322 C 55.044474,35.441094 53.919514,34.316134 53.919514,34.316134 z"
id="path5321"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5846);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 54.943965,33.291683 L 56.001794,32.233854 C 56.001794,32.233854 60.900964,36.419574 62.466591,38.662197 C 62.725699,39.033345 62.320407,39.044927 62.202134,38.926654 L 61.974131,39.227566 L 61.873718,39.619613 C 62.051992,39.915248 61.304804,40.11562 61.335854,40.157478 C 61.335854,40.157478 60.275357,38.694312 59.765222,38.11294 C 59.315519,37.600439 58.640262,36.98798 58.158137,36.505855 C 57.676011,36.023729 57.033177,35.380895 56.551051,34.898769 C 56.068925,34.416643 54.943965,33.291683 54.943965,33.291683 z"
id="path5323"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5843);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.955981,36.365039 L 53.01381,35.30721 C 53.01381,35.30721 57.91298,39.49293 59.478607,41.735553 C 59.737714,42.106701 59.332423,42.118283 59.21415,42.00001 L 58.986147,42.300922 L 58.885734,42.692969 C 59.064008,42.988604 58.31682,43.188976 58.347869,43.230834 C 58.347869,43.230834 57.287373,41.767668 56.777238,41.186296 C 56.327535,40.673795 55.652278,40.061336 55.170153,39.579211 C 54.688027,39.097085 54.045193,38.454251 53.563067,37.972125 C 53.080941,37.489999 51.955981,36.365039 51.955981,36.365039 z"
id="path5325"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5840);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 50.931529,37.389491 L 51.989358,36.331662 C 51.989358,36.331662 56.888528,40.517382 58.454155,42.760005 C 58.713262,43.131153 58.307971,43.142735 58.189698,43.024462 L 57.961695,43.325374 L 57.861282,43.717421 C 58.039556,44.013056 57.292368,44.213428 57.323417,44.255286 C 57.323417,44.255286 56.262921,42.79212 55.752786,42.210748 C 55.303083,41.698247 54.627826,41.085788 54.145701,40.603663 C 53.663575,40.121537 53.020741,39.478703 52.538615,38.996577 C 52.056489,38.514451 50.931529,37.389491 50.931529,37.389491 z"
id="path5327"
sodipodi:nodetypes="ccsccccsssc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 39 KiB

View file

@ -1,162 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2508"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_attacker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2510">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2516" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="-40.818182"
inkscape:cy="32"
inkscape:current-layer="g2536"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2513">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6 KiB

View file

@ -1,181 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_blockers.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3630">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3632" />
<stop
style="stop-color:#030000;stop-opacity:1;"
offset="1"
id="stop3634" />
</linearGradient>
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<inkscape:perspective
id="perspective2844"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3630"
id="linearGradient3636"
x1="21.405245"
y1="20.300596"
x2="45.166054"
y2="48.10812"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.7781746"
inkscape:cx="28.10927"
inkscape:cy="28.829322"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.9666404,9.0497401 C 23.769718,4.7254766 38.237751,3.6111036 54.063295,9.0497401 C 54.063295,9.0497401 54.836218,34.437061 50.529417,43.717664 C 47.404249,50.451998 31.938145,58.623196 31.938145,58.623196 C 31.938145,58.623196 16.472039,50.451998 13.346871,43.717664 C 9.0400713,34.437061 9.9666404,9.0497401 9.9666404,9.0497401 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3636);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87598264000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.327299,10.467021 C 24.277974,6.4097986 37.852541,5.364243 52.700788,10.467021 C 52.700788,10.467021 53.425979,34.286562 49.385142,42.994047 C 46.452968,49.312506 31.941964,56.979096 31.941964,56.979096 C 31.941964,56.979096 17.43096,49.312506 14.498785,42.994047 C 10.457949,34.286562 11.327299,10.467021 11.327299,10.467021 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.9 KiB

View file

@ -1,169 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5128"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_combat.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5130">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,377.0204,719.46402)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5114"
gradientUnits="userSpaceOnUse"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221"
gradientTransform="matrix(-0.7071068,-0.7071068,0.7071068,-0.7071068,156.76864,718.23161)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5136" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5741"
x1="70.945976"
y1="357.84494"
x2="196.70493"
y2="480.64206"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.087072"
inkscape:cx="12.956872"
inkscape:cy="29.617085"
inkscape:current-layer="g5122"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g5122"
transform="matrix(0.1263349,0,0,0.1263349,-1.139644,-10.328942)">
<path
style="fill:url(#linearGradient5114);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 151.54643,435.67232 C 227.09743,348.10432 307.39071,270.38611 388.52101,198.69774 L 416.43419,137.34873 L 355.08518,165.26191 C 272.66733,257.12169 203.10352,326.6855 118.1106,402.23649 L 151.54643,435.67232 z M 161.44224,392.34068 L 170.0386,373.49867 L 232.21225,321.57067 L 180.28425,383.74432 L 161.44224,392.34068 z"
id="rect2383" />
<path
style="opacity:1;fill:url(#linearGradient5741);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 59.65417,525.5287 C 70.373545,485.52344 139.66773,445.51514 139.66773,445.51514 C 139.66773,445.51514 153.73013,454.44511 159.42898,462.53484 C 165.12783,470.62457 177.66007,499.44668 177.66007,499.44668 L 213.33942,463.76733 C 163.23337,434.83859 119.20655,391.00374 90.015578,340.44349 L 54.336228,376.12284 C 54.336228,376.12284 83.923422,387.89 92.013155,393.58885 C 100.10289,399.2877 108.26777,414.11518 108.26777,414.11518 C 108.26777,414.11518 68.207351,483.42333 28.254209,494.12874 C 15.386263,497.5767 56.206215,538.39665 59.65417,525.5287 z"
id="rect2407"
sodipodi:nodetypes="ccsccccccss" />
<path
style="fill:url(#linearGradient5120);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 382.24261,436.90473 C 306.69161,349.33673 226.39833,271.61852 145.26803,199.93015 L 117.35485,138.58114 L 178.70386,166.49432 C 261.12171,258.3541 330.68552,327.91791 415.67844,403.4689 L 382.24261,436.90473 z M 372.3468,393.57309 L 363.75044,374.73108 L 301.57679,322.80308 L 353.50479,384.97673 L 372.3468,393.57309 z"
id="path5116" />
<path
style="opacity:1;fill:url(#linearGradient5723);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 474.13487,526.76111 C 463.41549,486.75585 394.12131,446.74755 394.12131,446.74755 C 394.12131,446.74755 380.05891,455.67752 374.36006,463.76725 C 368.66121,471.85698 356.12897,500.67909 356.12897,500.67909 L 320.44962,464.99974 C 370.55567,436.071 414.58249,392.23615 443.77346,341.6759 L 479.45281,377.35525 C 479.45281,377.35525 449.86561,389.12241 441.77588,394.82126 C 433.68615,400.52011 425.52127,415.34759 425.52127,415.34759 C 425.52127,415.34759 465.58168,484.65574 505.53483,495.36115 C 518.40277,498.80911 477.58282,539.62906 474.13487,526.76111 z"
id="path5118"
sodipodi:nodetypes="ccsccccccss" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -1,253 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_end.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3629">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3631" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3633" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5217"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop5215" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3629"
id="linearGradient3635"
x1="19.253855"
y1="10.606701"
x2="60.756615"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.2452592"
inkscape:cx="27.17545"
inkscape:cy="31.677957"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 17.971875,9.0497399 c 13.803078,-4.3242635 28.271111,-5.4386365 44.096655,0 0,0 0.772923,25.3873211 -3.533878,34.6679241 -3.125168,6.734334 -18.591272,14.905532 -18.591272,14.905532 0,0 -15.466106,-8.171198 -18.591274,-14.905532 -4.3068,-9.280603 -3.380231,-34.6679241 -3.380231,-34.6679241 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3635);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
d="m 19.332534,10.467021 c 12.950675,-4.0572226 26.525242,-5.1027782 41.373489,0 0,0 0.725191,23.819541 -3.315646,32.527026 -2.932174,6.318459 -17.443178,13.985049 -17.443178,13.985049 0,0 -14.511004,-7.66659 -17.443179,-13.985049 -4.040836,-8.707485 -3.171486,-32.527026 -3.171486,-32.527026 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="matrix(-0.6586645,0.6586645,-0.6586645,-0.6586645,53.040738,30.874896)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12667845;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9 KiB

View file

@ -1,253 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_start.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3625">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3627" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3629" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop3194"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop3192" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3625"
id="linearGradient3631"
x1="11.24862"
y1="10.529667"
x2="52.751381"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.7781746"
inkscape:cx="23.751652"
inkscape:cy="31.764768"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.9666405,9.04974 C 23.769718,4.7254765 38.237751,3.6111035 54.063295,9.04974 C 54.063295,9.04974 54.836218,34.437061 50.529417,43.717664 C 47.404249,50.451998 31.938145,58.623196 31.938145,58.623196 C 31.938145,58.623196 16.472039,50.451998 13.346871,43.717664 C 9.0400714,34.437061 9.9666405,9.04974 9.9666405,9.04974 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3631);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87598264000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.327299,10.467021 C 24.277974,6.4097985 37.852541,5.3642429 52.700788,10.467021 C 52.700788,10.467021 53.425979,34.286562 49.385142,42.994047 C 46.452968,49.312506 31.941964,56.979096 31.941964,56.979096 C 31.941964,56.979096 17.43096,49.312506 14.498785,42.994047 C 10.457949,34.286562 11.327299,10.467021 11.327299,10.467021 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 KiB

View file

@ -1,135 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase1.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 17.407273,50.18182 L 21.943273,50.18182 C 21.943273,50.18182 29.791273,50.10982 29.791273,50.10982 C 29.791273,50.10982 38.071273,50.18182 38.071273,50.18182 L 41.023273,50.18182 L 42.751273,48.23782 C 40.591275,48.16582 36.703272,47.73382 35.335273,47.44582 C 34.183274,47.15782 33.463273,46.365819 33.463273,45.28582 C 33.463273,44.493821 33.607273,43.413819 33.967273,42.26182 C 34.183273,41.397821 34.903274,38.085815 35.983273,33.04582 C 39.07927,19.437834 40.735274,12.597816 41.887273,8.2778199 L 39.439273,9.5738199 C 34.471278,12.237817 34.327271,12.309821 32.023273,13.38982 C 30.655274,14.037819 28.27927,15.045821 24.967273,16.55782 L 27.127273,17.63782 C 28.855271,17.06182 29.719274,16.701819 31.015273,16.19782 L 33.175273,15.33382 C 33.463273,15.18982 34.111274,14.97382 35.191273,14.61382 L 28.351273,44.06182 C 27.631274,47.085817 27.559271,47.22982 25.255273,47.51782 C 22.231276,47.87782 20.287272,48.09382 19.495273,48.23782 L 17.407273,50.18182"
id="text3217" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -1,135 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase2.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 15.175273,51.40582 C 18.27127,48.021823 19.135275,47.44582 20.935273,47.44582 C 21.655272,47.44582 22.591274,47.58982 23.743273,47.87782 C 29.071268,49.101819 36.127274,50.39782 37.279273,50.39782 C 37.855272,50.39782 38.215274,50.32582 38.935273,50.03782 L 45.271273,40.53382 L 44.695273,38.87782 C 40.087278,44.709814 39.583271,45.21382 37.639273,45.21382 C 37.279273,45.21382 36.775272,45.14182 36.127273,44.99782 C 31.159278,44.133821 26.839269,43.485819 23.239273,42.90982 L 32.095273,34.70182 L 38.503273,28.72582 L 42.103273,25.34182 C 44.191271,22.173823 45.055273,19.725817 45.055273,16.55782 C 45.055273,11.949825 42.103269,8.9978199 37.639273,8.9978199 C 33.967277,8.9978199 30.15127,10.365822 27.199273,12.81382 C 24.607276,14.829818 23.239273,17.421823 23.239273,20.37382 C 23.239273,20.949819 23.311273,21.309821 23.455273,22.10182 L 28.567273,22.67782 C 27.919274,20.733822 27.703273,19.725819 27.703273,18.42982 C 27.703273,14.469824 30.079277,11.87782 33.679273,11.87782 C 37.06327,11.87782 39.511273,14.829824 39.511273,18.93382 C 39.511273,21.165818 38.791272,23.685822 37.639273,25.48582 C 36.127275,27.933817 34.327267,29.877825 28.783273,35.06182 C 19.495282,43.773811 18.415269,44.853824 14.887273,49.31782 L 15.175273,51.40582"
id="text3217" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -1,89 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3167"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_nextTurn.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3169">
<linearGradient
id="linearGradient3159">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop3161" />
<stop
style="stop-color:#870000;stop-opacity:1;"
offset="1"
id="stop3163" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3159"
id="linearGradient3165"
x1="460.92261"
y1="383.05679"
x2="144.23897"
y2="474.24744"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2002403,0,0,0.2002403,-29.54275,-55.059863)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3175" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.4785302"
inkscape:cx="71.431122"
inkscape:cy="35.114322"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3172">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3165);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30036047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 29.130932,18.753217 C 20.744599,18.686709 11.651606,23.163902 1.3976484,34.253068 L 3.7535432,38.873766 C 29.306087,10.191947 44.263934,30.067613 51.933109,37.746086 C 50.522291,38.573832 48.464685,38.467536 46.274272,38.998726 C 51.42154,40.570478 56.687692,42.488294 61.676216,44.630089 C 60.792534,39.544838 59.481746,34.617053 58.935262,29.103904 C 58.378905,31.662724 57.62115,32.32038 56.582628,34.559687 C 47.924709,25.228354 39.020111,18.831643 29.130932,18.753217 z"
id="path2383"
sodipodi:nodetypes="ccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 28 KiB

View file

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3319"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_upkeep.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3321">
<linearGradient
inkscape:collect="always"
id="linearGradient3307">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3309" />
<stop
style="stop-color:#808080;stop-opacity:0;"
offset="1"
id="stop3311" />
</linearGradient>
<linearGradient
id="linearGradient3297">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3299" />
<stop
style="stop-color:#e8e8e8;stop-opacity:1;"
offset="1"
id="stop3301" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3327" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3344"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3346"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3926"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3928"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3931"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428"
gradientTransform="matrix(0.1340241,0,0,0.1340241,-5.388189,-54.63095)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3934"
gradientUnits="userSpaceOnUse"
x1="274.50204"
y1="427.10938"
x2="481.21671"
y2="427.10938"
gradientTransform="matrix(9.476938e-2,9.476938e-2,-9.476938e-2,9.476938e-2,34.81989,-42.43994)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.614848"
inkscape:cx="40.777992"
inkscape:cy="30.845103"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="949"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3324">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3934);fill-opacity:1.0;stroke:#000000;stroke-width:0.16698611999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385000000185;stroke-opacity:1"
d="M 52.772764,3.4047476 C 47.84595,1.474827 42.046422,2.4803794 38.086472,6.4403293 C 33.902475,10.624326 33.011815,16.866643 35.403314,21.958815 C 35.37805,21.983383 35.351338,22.004868 35.326314,22.029892 L 4.4611114,52.895095 C 2.1557088,55.200497 1.7831477,58.539073 3.6229947,60.378914 C 5.462838,62.218757 8.798451,61.843238 11.103853,59.537836 L 41.969055,28.672634 C 41.994066,28.647623 42.018538,28.623844 42.043094,28.598595 C 47.134477,30.989307 53.374621,30.096472 57.558618,25.912475 C 61.518861,21.952234 62.524694,16.153234 60.5942,11.226183 L 51.875417,19.944966 C 51.22515,20.595238 50.308186,20.723277 49.820106,20.235197 L 43.76375,14.178841 C 43.27567,13.690763 43.403714,12.773798 44.053981,12.123531 L 52.772764,3.4047476 z"
id="path2383" />
<rect
style="fill:url(#linearGradient3931);fill-opacity:1;stroke:#000000;stroke-width:0.13748859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
id="rect3305"
width="4.6725717"
height="43.171928"
x="42.932579"
y="-6.640388"
ry="2.4622774"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Schattierung" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -4,6 +4,9 @@
#include <QGraphicsSceneMouseEvent> #include <QGraphicsSceneMouseEvent>
#include <QDebug> #include <QDebug>
static const float CARD_WIDTH_HALF = CARD_WIDTH / 2;
static const float CARD_HEIGHT_HALF = CARD_HEIGHT / 2;
AbstractCardDragItem::AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag) AbstractCardDragItem::AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag)
: QGraphicsItem(), item(_item), hotSpot(_hotSpot) : QGraphicsItem(), item(_item), hotSpot(_hotSpot)
{ {
@ -22,7 +25,7 @@ AbstractCardDragItem::AbstractCardDragItem(AbstractCardItem *_item, const QPoint
setZValue(2000000007); setZValue(2000000007);
} }
if (item->getTapped()) if (item->getTapped())
setTransform(QTransform().translate((float) CARD_WIDTH / 2, (float) CARD_HEIGHT / 2).rotate(90).translate((float) -CARD_WIDTH / 2, (float) -CARD_HEIGHT / 2)); setTransform(QTransform().translate(CARD_WIDTH_HALF, CARD_HEIGHT_HALF).rotate(90).translate(-CARD_WIDTH_HALF, -CARD_HEIGHT_HALF));
setCacheMode(DeviceCoordinateCache); setCacheMode(DeviceCoordinateCache);
} }

View file

@ -101,6 +101,14 @@ QString PictureToLoad::getSetName() const
return QString(""); return QString("");
} }
CardSet *PictureToLoad::getCurrentSet() const
{
if (setIndex < sortedSets.size())
return sortedSets[setIndex];
else
return 0;
}
PictureLoader::PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent) PictureLoader::PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent)
: QObject(parent), : QObject(parent),
_picsPath(__picsPath), picDownload(_picDownload), picDownloadHq(_picDownloadHq), _picsPath(__picsPath), picDownload(_picDownload), picDownloadHq(_picDownloadHq),
@ -134,15 +142,17 @@ void PictureLoader::processLoadQueue()
PictureToLoad ptl = loadQueue.takeFirst(); PictureToLoad ptl = loadQueue.takeFirst();
mutex.unlock(); mutex.unlock();
QString setName = ptl.getSetName();
QString correctedCardname = ptl.getCard()->getCorrectedName();
qDebug() << "Trying to load picture (set: " << setName << " card: " << correctedCardname << ")";
//The list of paths to the folders in which to search for images //The list of paths to the folders in which to search for images
QList<QString> picsPaths = QList<QString>() << _picsPath + "/CUSTOM/" + ptl.getCard()->getCorrectedName(); QList<QString> picsPaths = QList<QString>() << _picsPath + "/CUSTOM/" + correctedCardname;
QString setName=ptl.getSetName();
if(!setName.isEmpty()) if(!setName.isEmpty())
{ {
picsPaths << _picsPath + "/" + setName + "/" + ptl.getCard()->getCorrectedName() picsPaths << _picsPath + "/" + setName + "/" + correctedCardname
<< _picsPath + "/downloadedPics/" + setName + "/" + ptl.getCard()->getCorrectedName(); << _picsPath + "/downloadedPics/" + setName + "/" + correctedCardname;
} }
QImage image; QImage image;
@ -154,12 +164,14 @@ void PictureLoader::processLoadQueue()
for (int i = 0; i < picsPaths.length() && !found; i ++) { for (int i = 0; i < picsPaths.length() && !found; i ++) {
imgReader.setFileName(picsPaths.at(i)); imgReader.setFileName(picsPaths.at(i));
if (imgReader.read(&image)) { if (imgReader.read(&image)) {
qDebug() << "Picture found on disk (set: " << setName << " card: " << correctedCardname << ")";
emit imageLoaded(ptl.getCard(), image); emit imageLoaded(ptl.getCard(), image);
found = true; found = true;
break; break;
} }
imgReader.setFileName(picsPaths.at(i) + ".full"); imgReader.setFileName(picsPaths.at(i) + ".full");
if (imgReader.read(&image)) { if (imgReader.read(&image)) {
qDebug() << "Picture.full found on disk (set: " << setName << " card: " << correctedCardname << ")";
emit imageLoaded(ptl.getCard(), image); emit imageLoaded(ptl.getCard(), image);
found = true; found = true;
} }
@ -167,24 +179,32 @@ void PictureLoader::processLoadQueue()
if (!found) { if (!found) {
if (picDownload) { if (picDownload) {
qDebug() << "Picture NOT found, trying to download (set: " << setName << " card: " << correctedCardname << ")";
cardsToDownload.append(ptl); cardsToDownload.append(ptl);
if (!downloadRunning) if (!downloadRunning)
startNextPicDownload(); startNextPicDownload();
} else { } else {
if (ptl.nextSet()) if (ptl.nextSet())
{
qDebug() << "Picture NOT found and download disabled, moving to next set (newset: " << setName << " card: " << correctedCardname << ")";
mutex.lock();
loadQueue.prepend(ptl); loadQueue.prepend(ptl);
else mutex.unlock();
} else {
qDebug() << "Picture NOT found, download disabled, no more sets to try: BAILING OUT (oldset: " << setName << " card: " << correctedCardname << ")";
emit imageLoaded(ptl.getCard(), QImage()); emit imageLoaded(ptl.getCard(), QImage());
}
} }
} }
} }
} }
QString PictureLoader::getPicUrl(CardInfo *card) QString PictureLoader::getPicUrl()
{ {
if (!picDownload) return QString(""); if (!picDownload) return QString("");
CardSet *set = card->getPreferredSet(); CardInfo *card = cardBeingDownloaded.getCard();
CardSet *set=cardBeingDownloaded.getCurrentSet();
QString picUrl = QString(""); QString picUrl = QString("");
// if sets have been defined for the card, they can contain custom picUrls // if sets have been defined for the card, they can contain custom picUrls
@ -204,17 +224,19 @@ QString PictureLoader::getPicUrl(CardInfo *card)
return picUrl; return picUrl;
} }
// otherwise, fallback to the default url // if a card has a muid, use the default url; if not, use the fallback
picUrl = picDownloadHq ? settingsCache->getPicUrlHq() : settingsCache->getPicUrl(); int muid = set ? muid = card->getMuId(set->getShortName()) : 0;
picUrl.replace("!name!", QUrl::toPercentEncoding(card->getCorrectedName())); if(muid)
picUrl = picDownloadHq ? settingsCache->getPicUrlHq() : settingsCache->getPicUrl();
else
picUrl = picDownloadHq ? settingsCache->getPicUrlHqFallback() : settingsCache->getPicUrlFallback();
picUrl.replace("!name!", QUrl::toPercentEncoding(card->getCorrectedName()));
picUrl.replace("!cardid!", QUrl::toPercentEncoding(QString::number(muid)));
if (set) { if (set) {
picUrl.replace("!setcode!", QUrl::toPercentEncoding(set->getShortName())); picUrl.replace("!setcode!", QUrl::toPercentEncoding(set->getShortName()));
picUrl.replace("!setname!", QUrl::toPercentEncoding(set->getLongName())); picUrl.replace("!setname!", QUrl::toPercentEncoding(set->getLongName()));
} }
int muid = card->getPreferredMuId();
if (muid)
picUrl.replace("!cardid!", QUrl::toPercentEncoding(QString::number(muid)));
if (picUrl.contains("!name!") || if (picUrl.contains("!name!") ||
picUrl.contains("!setcode!") || picUrl.contains("!setcode!") ||
@ -239,19 +261,33 @@ void PictureLoader::startNextPicDownload()
cardBeingDownloaded = cardsToDownload.takeFirst(); cardBeingDownloaded = cardsToDownload.takeFirst();
QString picUrl = getPicUrl(cardBeingDownloaded.getCard()); QString picUrl = getPicUrl();
if (picUrl.isEmpty()) { if (picUrl.isEmpty()) {
qDebug() << "No url for" << cardBeingDownloaded.getCard()->getName();
cardBeingDownloaded = 0;
downloadRunning = false; downloadRunning = false;
return; picDownloadFailed();
} else {
QUrl url(picUrl);
QNetworkRequest req(url);
qDebug() << "starting picture download:" << cardBeingDownloaded.getCard()->getName() << "Url:" << req.url();
networkManager->get(req);
} }
}
QUrl url(picUrl); void PictureLoader::picDownloadFailed()
{
QNetworkRequest req(url); if (cardBeingDownloaded.nextSet())
qDebug() << "starting picture download:" << cardBeingDownloaded.getCard()->getName() << "Url:" << req.url(); {
networkManager->get(req); qDebug() << "Picture NOT found, download failed, moving to next set (newset: " << cardBeingDownloaded.getSetName() << " card: " << cardBeingDownloaded.getCard()->getCorrectedName() << ")";
mutex.lock();
loadQueue.prepend(cardBeingDownloaded);
mutex.unlock();
emit startLoadQueue();
} else {
qDebug() << "Picture NOT found, download failed, no more sets to try: BAILING OUT (oldset: " << cardBeingDownloaded.getSetName() << " card: " << cardBeingDownloaded.getCard()->getCorrectedName() << ")";
cardBeingDownloaded = 0;
emit imageLoaded(cardBeingDownloaded.getCard(), QImage());
}
} }
void PictureLoader::picDownloadFinished(QNetworkReply *reply) void PictureLoader::picDownloadFinished(QNetworkReply *reply)
@ -288,21 +324,9 @@ void PictureLoader::picDownloadFinished(QNetworkReply *reply)
} }
emit imageLoaded(cardBeingDownloaded.getCard(), testImage); emit imageLoaded(cardBeingDownloaded.getCard(), testImage);
} else if (cardBeingDownloaded.getHq()) {
qDebug() << "HQ: received invalid picture. URL:" << reply->request().url();
cardBeingDownloaded.setHq(false);
cardsToDownload.prepend(cardBeingDownloaded);
} else { } else {
qDebug() << "LQ: received invalid picture. URL:" << reply->request().url(); picDownloadFailed();
if (cardBeingDownloaded.nextSet()) { }
cardBeingDownloaded.setHq(true);
mutex.lock();
loadQueue.prepend(cardBeingDownloaded);
mutex.unlock();
emit startLoadQueue();
} else
emit imageLoaded(cardBeingDownloaded.getCard(), QImage());
}
reply->deleteLater(); reply->deleteLater();
startNextPicDownload(); startNextPicDownload();
@ -497,21 +521,6 @@ void CardInfo::updatePixmapCache()
emit pixmapUpdated(); emit pixmapUpdated();
} }
CardSet* CardInfo::getPreferredSet()
{
if(sets.isEmpty())
return 0;
SetList sortedSets = sets;
sortedSets.sortByKey();
return sortedSets.first();
}
int CardInfo::getPreferredMuId()
{
CardSet *set = getPreferredSet();
return set ? muIds[set->getShortName()] : 0;
}
QString CardInfo::simplifyName(const QString &name) { QString CardInfo::simplifyName(const QString &name) {
QString simpleName(name); QString simpleName(name);

View file

@ -53,6 +53,7 @@ private:
public: public:
PictureToLoad(CardInfo *_card = 0, bool _hq = true); PictureToLoad(CardInfo *_card = 0, bool _hq = true);
CardInfo *getCard() const { return card; } CardInfo *getCard() const { return card; }
CardSet *getCurrentSet() const;
QString getSetName() const; QString getSetName() const;
bool nextSet(); bool nextSet();
bool getHq() const { return hq; } bool getHq() const { return hq; }
@ -70,7 +71,7 @@ private:
PictureToLoad cardBeingDownloaded; PictureToLoad cardBeingDownloaded;
bool picDownload, picDownloadHq, downloadRunning, loadQueueRunning; bool picDownload, picDownloadHq, downloadRunning, loadQueueRunning;
void startNextPicDownload(); void startNextPicDownload();
QString getPicUrl(CardInfo* card); QString getPicUrl();
public: public:
PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent = 0); PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent = 0);
~PictureLoader(); ~PictureLoader();
@ -80,6 +81,7 @@ public:
void loadImage(CardInfo *card); void loadImage(CardInfo *card);
private slots: private slots:
void picDownloadFinished(QNetworkReply *reply); void picDownloadFinished(QNetworkReply *reply);
void picDownloadFailed();
public slots: public slots:
void processLoadQueue(); void processLoadQueue();
signals: signals:
@ -163,8 +165,6 @@ public:
void clearPixmapCache(); void clearPixmapCache();
void clearPixmapCacheMiss(); void clearPixmapCacheMiss();
void imageLoaded(const QImage &image); void imageLoaded(const QImage &image);
CardSet *getPreferredSet();
int getPreferredMuId();
/** /**
* Simplify a name to have no punctuation and lowercase all letters, for * Simplify a name to have no punctuation and lowercase all letters, for

View file

@ -17,6 +17,7 @@
#include "tab_game.h" #include "tab_game.h"
#include "pb/serverinfo_card.pb.h" #include "pb/serverinfo_card.pb.h"
CardItem::CardItem(Player *_owner, const QString &_name, int _cardid, bool _revealedCard, QGraphicsItem *parent) CardItem::CardItem(Player *_owner, const QString &_name, int _cardid, bool _revealedCard, QGraphicsItem *parent)
: AbstractCardItem(_name, _owner, _cardid, parent), zone(0), revealedCard(_revealedCard), attacking(false), destroyOnZoneChange(false), doesntUntap(false), dragItem(0), attachedTo(0) : AbstractCardItem(_name, _owner, _cardid, parent), zone(0), revealedCard(_revealedCard), attacking(false), destroyOnZoneChange(false), doesntUntap(false), dragItem(0), attachedTo(0)
{ {
@ -360,15 +361,16 @@ void CardItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
event->accept(); event->accept();
} }
bool CardItem::animationEvent() bool CardItem::animationEvent()
{ {
int delta = 18; int rotation = ROTATION_DEGREES_PER_FRAME;
if (!tapped) if (!tapped)
delta *= -1; rotation *= -1;
tapAngle += delta; tapAngle += rotation;
setTransform(QTransform().translate((float) CARD_WIDTH / 2, (float) CARD_HEIGHT / 2).rotate(tapAngle).translate((float) -CARD_WIDTH / 2, (float) -CARD_HEIGHT / 2)); setTransform(QTransform().translate(CARD_WIDTH_HALF, CARD_HEIGHT_HALF).rotate(tapAngle).translate(-CARD_WIDTH_HALF, -CARD_HEIGHT_HALF));
setHovered(false); setHovered(false);
update(); update();

View file

@ -12,6 +12,9 @@ class QAction;
class QColor; class QColor;
const int MAX_COUNTERS_ON_CARD = 999; const int MAX_COUNTERS_ON_CARD = 999;
const float CARD_WIDTH_HALF = CARD_WIDTH / 2;
const float CARD_HEIGHT_HALF = CARD_HEIGHT / 2;
const int ROTATION_DEGREES_PER_FRAME = 10;
class CardItem : public AbstractCardItem { class CardItem : public AbstractCardItem {
Q_OBJECT Q_OBJECT

View file

@ -146,8 +146,15 @@ void DeckViewCardContainer::paint(QPainter *painter, const QStyleOptionGraphicsI
{ {
qreal totalTextWidth = getCardTypeTextWidth(); qreal totalTextWidth = getCardTypeTextWidth();
if (bgPixmap.isNull()) if (bgPixmap.isNull()) {
painter->fillRect(boundingRect(), QColor(0, 0, 100)); QLinearGradient grad1(0, 0, 1, 0);
grad1.setCoordinateMode(QGradient::ObjectBoundingMode);
grad1.setColorAt(0, QColor(48, 34, 69));
grad1.setColorAt(1, QColor(110, 90, 140));
painter->fillRect(QRectF(0, 0, width, height), QBrush(grad1));
painter->fillRect(boundingRect(), QColor(0, 0, 0, 80));
}
else else
painter->fillRect(boundingRect(), QBrush(bgPixmap)); painter->fillRect(boundingRect(), QBrush(bgPixmap));
painter->setPen(QColor(255, 255, 255, 100)); painter->setPen(QColor(255, 255, 255, 100));

View file

@ -56,7 +56,12 @@ void DlgCreateGame::sharedCtor()
onlyBuddiesCheckBox = new QCheckBox(tr("Only &buddies can join")); onlyBuddiesCheckBox = new QCheckBox(tr("Only &buddies can join"));
onlyRegisteredCheckBox = new QCheckBox(tr("Only &registered users can join")); onlyRegisteredCheckBox = new QCheckBox(tr("Only &registered users can join"));
if (room && room->getUserInfo()->user_level() & ServerInfo_User::IsRegistered) if (room && room->getUserInfo()->user_level() & ServerInfo_User::IsRegistered)
{
onlyRegisteredCheckBox->setChecked(true); onlyRegisteredCheckBox->setChecked(true);
} else {
onlyBuddiesCheckBox->setEnabled(false);
onlyRegisteredCheckBox->setEnabled(false);
}
QGridLayout *joinRestrictionsLayout = new QGridLayout; QGridLayout *joinRestrictionsLayout = new QGridLayout;
joinRestrictionsLayout->addWidget(passwordLabel, 0, 0); joinRestrictionsLayout->addWidget(passwordLabel, 0, 0);

View file

@ -25,6 +25,7 @@
#include "main.h" #include "main.h"
#include "settingscache.h" #include "settingscache.h"
#include "priceupdater.h" #include "priceupdater.h"
#include "soundengine.h"
GeneralSettingsPage::GeneralSettingsPage() GeneralSettingsPage::GeneralSettingsPage()
{ {
@ -503,6 +504,8 @@ UserInterfaceSettingsPage::UserInterfaceSettingsPage()
connect(soundPathClearButton, SIGNAL(clicked()), this, SLOT(soundPathClearButtonClicked())); connect(soundPathClearButton, SIGNAL(clicked()), this, SLOT(soundPathClearButtonClicked()));
QPushButton *soundPathButton = new QPushButton("..."); QPushButton *soundPathButton = new QPushButton("...");
connect(soundPathButton, SIGNAL(clicked()), this, SLOT(soundPathButtonClicked())); connect(soundPathButton, SIGNAL(clicked()), this, SLOT(soundPathButtonClicked()));
soundTestButton = new QPushButton();
connect(soundTestButton, SIGNAL(clicked()), soundEngine, SLOT(cuckoo()));
QGridLayout *soundGrid = new QGridLayout; QGridLayout *soundGrid = new QGridLayout;
soundGrid->addWidget(soundEnabledCheckBox, 0, 0, 1, 4); soundGrid->addWidget(soundEnabledCheckBox, 0, 0, 1, 4);
@ -510,6 +513,7 @@ UserInterfaceSettingsPage::UserInterfaceSettingsPage()
soundGrid->addWidget(soundPathEdit, 1, 1); soundGrid->addWidget(soundPathEdit, 1, 1);
soundGrid->addWidget(soundPathClearButton, 1, 2); soundGrid->addWidget(soundPathClearButton, 1, 2);
soundGrid->addWidget(soundPathButton, 1, 3); soundGrid->addWidget(soundPathButton, 1, 3);
soundGrid->addWidget(soundTestButton, 2, 1);
soundGroupBox = new QGroupBox; soundGroupBox = new QGroupBox;
soundGroupBox->setLayout(soundGrid); soundGroupBox->setLayout(soundGrid);
@ -538,6 +542,7 @@ void UserInterfaceSettingsPage::retranslateUi()
tapAnimationCheckBox->setText(tr("&Tap/untap animation")); tapAnimationCheckBox->setText(tr("&Tap/untap animation"));
soundEnabledCheckBox->setText(tr("Enable &sounds")); soundEnabledCheckBox->setText(tr("Enable &sounds"));
soundPathLabel->setText(tr("Path to sounds directory:")); soundPathLabel->setText(tr("Path to sounds directory:"));
soundTestButton->setText(tr("Test system sound engine"));
} }
void UserInterfaceSettingsPage::soundPathClearButtonClicked() void UserInterfaceSettingsPage::soundPathClearButtonClicked()

View file

@ -92,6 +92,7 @@ private:
QLabel *soundPathLabel; QLabel *soundPathLabel;
QLineEdit *soundPathEdit; QLineEdit *soundPathEdit;
QGroupBox *generalGroupBox, *animationGroupBox, *soundGroupBox; QGroupBox *generalGroupBox, *animationGroupBox, *soundGroupBox;
QPushButton *soundTestButton;
public: public:
UserInterfaceSettingsPage(); UserInterfaceSettingsPage();
void retranslateUi(); void retranslateUi();

View file

@ -262,7 +262,7 @@ void GameScene::registerAnimationItem(AbstractCardItem *card)
{ {
cardsToAnimate.insert(static_cast<CardItem *>(card)); cardsToAnimate.insert(static_cast<CardItem *>(card));
if (!animationTimer->isActive()) if (!animationTimer->isActive())
animationTimer->start(50, this); animationTimer->start(15, this);
} }
void GameScene::unregisterAnimationItem(AbstractCardItem *card) void GameScene::unregisterAnimationItem(AbstractCardItem *card)

View file

@ -78,7 +78,7 @@ QRectF HandZone::boundingRect() const
void HandZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) void HandZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
{ {
if (bgPixmap.isNull()) if (bgPixmap.isNull())
painter->fillRect(boundingRect(), Qt::darkGreen); painter->fillRect(boundingRect(), QColor(80, 100, 50));
else else
painter->fillRect(boundingRect(), QBrush(bgPixmap)); painter->fillRect(boundingRect(), QBrush(bgPixmap));
} }

View file

@ -65,7 +65,7 @@ void PhaseButton::setActive(bool _active)
return; return;
active = _active; active = _active;
activeAnimationTimer->start(50); activeAnimationTimer->start(25);
} }
void PhaseButton::updateAnimation() void PhaseButton::updateAnimation()

View file

@ -25,6 +25,8 @@ SettingsCache::SettingsCache()
picDownloadHq = settings->value("personal/picturedownloadhq", false).toBool(); picDownloadHq = settings->value("personal/picturedownloadhq", false).toBool();
picUrl = settings->value("personal/picUrl", PIC_URL_DEFAULT).toString(); picUrl = settings->value("personal/picUrl", PIC_URL_DEFAULT).toString();
picUrlHq = settings->value("personal/picUrlHq", PIC_URL_HQ_DEFAULT).toString(); picUrlHq = settings->value("personal/picUrlHq", PIC_URL_HQ_DEFAULT).toString();
picUrlFallback = settings->value("personal/picUrlFallback", PIC_URL_FALLBACK).toString();
picUrlHqFallback = settings->value("personal/picUrlHqFallback", PIC_URL_HQ_FALLBACK).toString();
mainWindowGeometry = settings->value("interface/main_window_geometry").toByteArray(); mainWindowGeometry = settings->value("interface/main_window_geometry").toByteArray();
notificationsEnabled = settings->value("interface/notificationsenabled", true).toBool(); notificationsEnabled = settings->value("interface/notificationsenabled", true).toBool();
@ -153,6 +155,18 @@ void SettingsCache::setPicUrlHq(const QString &_picUrlHq)
settings->setValue("personal/picUrlHq", picUrlHq); settings->setValue("personal/picUrlHq", picUrlHq);
} }
void SettingsCache::setPicUrlFallback(const QString &_picUrlFallback)
{
picUrlFallback = _picUrlFallback;
settings->setValue("personal/picUrlFallback", picUrlFallback);
}
void SettingsCache::setPicUrlHqFallback(const QString &_picUrlHqFallback)
{
picUrlHqFallback = _picUrlHqFallback;
settings->setValue("personal/picUrlHqFallback", picUrlHqFallback);
}
void SettingsCache::setNotificationsEnabled(int _notificationsEnabled) void SettingsCache::setNotificationsEnabled(int _notificationsEnabled)
{ {
notificationsEnabled = _notificationsEnabled; notificationsEnabled = _notificationsEnabled;

View file

@ -4,7 +4,9 @@
#include <QObject> #include <QObject>
#define PIC_URL_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card" #define PIC_URL_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card"
#define PIC_URL_FALLBACK "http://mtgimage.com/set/!setcode!/!name!.jpg"
#define PIC_URL_HQ_DEFAULT "http://mtgimage.com/multiverseid/!cardid!.jpg" #define PIC_URL_HQ_DEFAULT "http://mtgimage.com/multiverseid/!cardid!.jpg"
#define PIC_URL_HQ_FALLBACK "http://mtgimage.com/set/!setcode!/!name!.jpg"
class QSettings; class QSettings;
@ -57,6 +59,8 @@ private:
bool ignoreUnregisteredUsers; bool ignoreUnregisteredUsers;
QString picUrl; QString picUrl;
QString picUrlHq; QString picUrlHq;
QString picUrlFallback;
QString picUrlHqFallback;
bool attemptAutoConnect; bool attemptAutoConnect;
public: public:
SettingsCache(); SettingsCache();
@ -93,6 +97,8 @@ public:
bool getIgnoreUnregisteredUsers() const { return ignoreUnregisteredUsers; } bool getIgnoreUnregisteredUsers() const { return ignoreUnregisteredUsers; }
QString getPicUrl() const { return picUrl; } QString getPicUrl() const { return picUrl; }
QString getPicUrlHq() const { return picUrlHq; } QString getPicUrlHq() const { return picUrlHq; }
QString getPicUrlFallback() const { return picUrlFallback; }
QString getPicUrlHqFallback() const { return picUrlHqFallback; }
void copyPath(const QString &src, const QString &dst); void copyPath(const QString &src, const QString &dst);
bool getAutoConnect() const { return attemptAutoConnect; } bool getAutoConnect() const { return attemptAutoConnect; }
public slots: public slots:
@ -129,6 +135,8 @@ public slots:
void setIgnoreUnregisteredUsers(bool _ignoreUnregisteredUsers); void setIgnoreUnregisteredUsers(bool _ignoreUnregisteredUsers);
void setPicUrl(const QString &_picUrl); void setPicUrl(const QString &_picUrl);
void setPicUrlHq(const QString &_picUrlHq); void setPicUrlHq(const QString &_picUrlHq);
void setPicUrlFallback(const QString &_picUrlFallback);
void setPicUrlHqFallback(const QString &_picUrlHqFallback);
void setAutoConnect(const bool &_autoConnect); void setAutoConnect(const bool &_autoConnect);
}; };

View file

@ -50,10 +50,12 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent)
aClearSearch = new QAction(QString(), this); aClearSearch = new QAction(QString(), this);
aClearSearch->setIcon(QIcon(":/resources/icon_clearsearch.svg")); aClearSearch->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
connect(aClearSearch, SIGNAL(triggered()), this, SLOT(actClearSearch())); connect(aClearSearch, SIGNAL(triggered()), this, SLOT(actClearSearch()));
searchLabel = new QLabel();
searchEdit = new SearchLineEdit; searchEdit = new SearchLineEdit;
searchLabel->setBuddy(searchEdit); #if QT_VERSION >= 0x050000
searchEdit->addAction(QIcon(":/resources/icon_search_black.svg"), QLineEdit::LeadingPosition);
#endif
searchEdit->setObjectName("searchEdit");
setFocusProxy(searchEdit); setFocusProxy(searchEdit);
setFocusPolicy(Qt::ClickFocus); setFocusPolicy(Qt::ClickFocus);
@ -73,7 +75,6 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent)
QHBoxLayout *searchLayout = new QHBoxLayout; QHBoxLayout *searchLayout = new QHBoxLayout;
searchLayout->addWidget(deckEditToolBar); searchLayout->addWidget(deckEditToolBar);
searchLayout->addWidget(searchLabel);
searchLayout->addWidget(searchEdit); searchLayout->addWidget(searchEdit);
databaseModel = new CardDatabaseModel(db, this); databaseModel = new CardDatabaseModel(db, this);
@ -293,7 +294,6 @@ void TabDeckEditor::retranslateUi()
{ {
aCardTextOnly->setText(tr("Show card text only")); aCardTextOnly->setText(tr("Show card text only"));
aClearSearch->setText(tr("&Clear search")); aClearSearch->setText(tr("&Clear search"));
searchLabel->setText(tr("&Search for:"));
nameLabel->setText(tr("Deck &name:")); nameLabel->setText(tr("Deck &name:"));
commentsLabel->setText(tr("&Comments:")); commentsLabel->setText(tr("&Comments:"));
@ -365,7 +365,7 @@ void TabDeckEditor::updateCardInfoRight(const QModelIndex &current, const QModel
void TabDeckEditor::updateSearch(const QString &search) void TabDeckEditor::updateSearch(const QString &search)
{ {
databaseDisplayModel->setCardNameBeginning(search); databaseDisplayModel->setCardName(search);
QModelIndexList sel = databaseView->selectionModel()->selectedRows(); QModelIndexList sel = databaseView->selectionModel()->selectedRows();
if (sel.isEmpty() && databaseDisplayModel->rowCount()) if (sel.isEmpty() && databaseDisplayModel->rowCount())
databaseView->selectionModel()->setCurrentIndex(databaseDisplayModel->index(0, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); databaseView->selectionModel()->setCurrentIndex(databaseDisplayModel->index(0, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);

View file

@ -85,7 +85,6 @@ private:
QTreeView *deckView; QTreeView *deckView;
KeySignals deckViewKeySignals; KeySignals deckViewKeySignals;
CardFrame *cardInfo; CardFrame *cardInfo;
QLabel *searchLabel;
SearchLineEdit *searchEdit; SearchLineEdit *searchEdit;
KeySignals searchKeySignals; KeySignals searchKeySignals;

View file

@ -16,16 +16,24 @@
#include "pb/command_move_card.pb.h" #include "pb/command_move_card.pb.h"
#include "pb/command_set_card_attr.pb.h" #include "pb/command_set_card_attr.pb.h"
const QColor TableZone::BACKGROUND_COLOR = QColor(70, 50, 100);
const QColor TableZone::FADE_MASK = QColor(0, 0, 0, 80);
const QColor TableZone::GRADIENT_COLOR = QColor(255, 255, 255, 150);
const QColor TableZone::GRADIENT_COLORLESS = QColor(255, 255, 255, 0);
TableZone::TableZone(Player *_p, QGraphicsItem *parent) TableZone::TableZone(Player *_p, QGraphicsItem *parent)
: SelectZone(_p, "table", true, false, true, parent), active(false) : SelectZone(_p, "table", true, false, true, parent), active(false)
{ {
connect(settingsCache, SIGNAL(tableBgPathChanged()), this, SLOT(updateBgPixmap())); connect(settingsCache, SIGNAL(tableBgPathChanged()), this, SLOT(updateBgPixmap()));
connect(settingsCache, SIGNAL(invertVerticalCoordinateChanged()), this, SLOT(reorganizeCards())); connect(settingsCache, SIGNAL(invertVerticalCoordinateChanged()), this, SLOT(reorganizeCards()));
updateBgPixmap(); updateBgPixmap();
height = 2 * boxLineWidth + 3 * (CARD_HEIGHT + 20) + 2 * paddingY; height = 2 * BOX_LINE_WIDTH + 3 * (CARD_HEIGHT + 20) + 2 * PADDING_Y;
width = minWidth + 2 * marginX + 2 * boxLineWidth; width = MIN_WIDTH + 2 * MARGIN_X + 2 * BOX_LINE_WIDTH;
currentMinimumWidth = minWidth; currentMinimumWidth = MIN_WIDTH;
setCacheMode(DeviceCoordinateCache); setCacheMode(DeviceCoordinateCache);
#if QT_VERSION < 0x050000 #if QT_VERSION < 0x050000
@ -35,57 +43,86 @@ TableZone::TableZone(Player *_p, QGraphicsItem *parent)
#endif #endif
} }
void TableZone::updateBgPixmap() void TableZone::updateBgPixmap()
{ {
QString bgPath = settingsCache->getTableBgPath(); QString bgPath = settingsCache->getTableBgPath();
if (!bgPath.isEmpty()) if (!bgPath.isEmpty())
bgPixmap.load(bgPath); backgroundPixelMap.load(bgPath);
update(); update();
} }
QRectF TableZone::boundingRect() const QRectF TableZone::boundingRect() const
{ {
return QRectF(0, 0, width, height); return QRectF(0, 0, width, height);
} }
bool TableZone::isInverted() const bool TableZone::isInverted() const
{ {
return ((player->getMirrored() && !settingsCache->getInvertVerticalCoordinate()) || (!player->getMirrored() && settingsCache->getInvertVerticalCoordinate())); return ((player->getMirrored() && !settingsCache->getInvertVerticalCoordinate()) || (!player->getMirrored() && settingsCache->getInvertVerticalCoordinate()));
} }
void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
{ {
if (bgPixmap.isNull()) // if no custom background is provided then use the default color
painter->fillRect(boundingRect(), QColor(0, 0, 100)); if (backgroundPixelMap.isNull())
painter->fillRect(boundingRect(), BACKGROUND_COLOR);
else else
painter->fillRect(boundingRect(), QBrush(bgPixmap)); painter->fillRect(boundingRect(), QBrush(backgroundPixelMap));
if (active) {
paintZoneOutline(painter);
} else {
// inactive player gets a darker table zone with a semi transparent black mask
// this means if the user provides a custom background it will fade
painter->fillRect(boundingRect(), FADE_MASK);
}
paintLandDivider(painter);
}
/**
Render a soft outline around the edge of the TableZone.
@param painter QPainter object
*/
void TableZone::paintZoneOutline(QPainter *painter) {
QLinearGradient grad1(0, 0, 0, 1);
grad1.setCoordinateMode(QGradient::ObjectBoundingMode);
grad1.setColorAt(0, GRADIENT_COLOR);
grad1.setColorAt(1, GRADIENT_COLORLESS);
painter->fillRect(QRectF(0, 0, width, BOX_LINE_WIDTH), QBrush(grad1));
grad1.setFinalStop(1, 0);
painter->fillRect(QRectF(0, 0, BOX_LINE_WIDTH, height), QBrush(grad1));
grad1.setStart(0, 1);
grad1.setFinalStop(0, 0);
painter->fillRect(QRectF(0, height - BOX_LINE_WIDTH, width, BOX_LINE_WIDTH), QBrush(grad1));
grad1.setStart(1, 0);
painter->fillRect(QRectF(width - BOX_LINE_WIDTH, 0, BOX_LINE_WIDTH, height), QBrush(grad1));
}
/**
Render a division line for land placement
@painter QPainter object
*/
void TableZone::paintLandDivider(QPainter *painter){
painter->setPen(QColor(255, 255, 255, 40)); painter->setPen(QColor(255, 255, 255, 40));
qreal separatorY = 2 * (CARD_HEIGHT + 20 + paddingY) + boxLineWidth - paddingY / 2; qreal separatorY = 2 * (CARD_HEIGHT + 20 + PADDING_Y) + BOX_LINE_WIDTH - PADDING_Y / 2;
if (isInverted()) if (isInverted())
separatorY = height - separatorY; separatorY = height - separatorY;
painter->drawLine(QPointF(0, separatorY), QPointF(width, separatorY)); painter->drawLine(QPointF(0, separatorY), QPointF(width, separatorY));
if (active) {
QColor color1(255, 255, 255, 150);
QColor color2(255, 255, 255, 0);
QLinearGradient grad1(0, 0, 0, 1);
grad1.setCoordinateMode(QGradient::ObjectBoundingMode);
grad1.setColorAt(0, color1);
grad1.setColorAt(1, color2);
painter->fillRect(QRectF(0, 0, width, boxLineWidth), QBrush(grad1));
grad1.setFinalStop(1, 0);
painter->fillRect(QRectF(0, 0, boxLineWidth, height), QBrush(grad1));
grad1.setStart(0, 1);
grad1.setFinalStop(0, 0);
painter->fillRect(QRectF(0, height - boxLineWidth, width, boxLineWidth), QBrush(grad1));
grad1.setStart(1, 0);
painter->fillRect(QRectF(width - boxLineWidth, 0, boxLineWidth, height), QBrush(grad1));
}
} }
void TableZone::addCardImpl(CardItem *card, int _x, int _y) void TableZone::addCardImpl(CardItem *card, int _x, int _y)
{ {
cards.append(card); cards.append(card);
@ -96,11 +133,13 @@ void TableZone::addCardImpl(CardItem *card, int _x, int _y)
card->update(); card->update();
} }
void TableZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint) void TableZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint)
{ {
handleDropEventByGrid(dragItems, startZone, mapToGrid(dropPoint)); handleDropEventByGrid(dragItems, startZone, mapToGrid(dropPoint));
} }
void TableZone::handleDropEventByGrid(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &gridPoint) void TableZone::handleDropEventByGrid(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &gridPoint)
{ {
Command_MoveCard cmd; Command_MoveCard cmd;
@ -121,6 +160,7 @@ void TableZone::handleDropEventByGrid(const QList<CardDragItem *> &dragItems, Ca
startZone->getPlayer()->sendGameCommand(cmd); startZone->getPlayer()->sendGameCommand(cmd);
} }
void TableZone::reorganizeCards() void TableZone::reorganizeCards()
{ {
QList<ArrowItem *> arrowsToUpdate; QList<ArrowItem *> arrowsToUpdate;
@ -193,6 +233,7 @@ void TableZone::reorganizeCards()
update(); update();
} }
void TableZone::toggleTapped() void TableZone::toggleTapped()
{ {
QList<QGraphicsItem *> selectedItems = scene()->selectedItems(); QList<QGraphicsItem *> selectedItems = scene()->selectedItems();
@ -217,6 +258,7 @@ void TableZone::toggleTapped()
player->sendGameCommand(player->prepareGameCommand(cmdList)); player->sendGameCommand(player->prepareGameCommand(cmdList));
} }
CardItem *TableZone::takeCard(int position, int cardId, bool canResize) CardItem *TableZone::takeCard(int position, int cardId, bool canResize)
{ {
CardItem *result = CardZone::takeCard(position, cardId); CardItem *result = CardZone::takeCard(position, cardId);
@ -225,6 +267,7 @@ CardItem *TableZone::takeCard(int position, int cardId, bool canResize)
return result; return result;
} }
void TableZone::resizeToContents() void TableZone::resizeToContents()
{ {
int xMax = 0; int xMax = 0;
@ -232,9 +275,9 @@ void TableZone::resizeToContents()
if (cards[i]->pos().x() > xMax) if (cards[i]->pos().x() > xMax)
xMax = (int) cards[i]->pos().x(); xMax = (int) cards[i]->pos().x();
xMax += 2 * CARD_WIDTH; xMax += 2 * CARD_WIDTH;
if (xMax < minWidth) if (xMax < MIN_WIDTH)
xMax = minWidth; xMax = MIN_WIDTH;
currentMinimumWidth = xMax + 2 * marginX + 2 * boxLineWidth; currentMinimumWidth = xMax + 2 * MARGIN_X + 2 * BOX_LINE_WIDTH;
if (currentMinimumWidth != width) { if (currentMinimumWidth != width) {
prepareGeometryChange(); prepareGeometryChange();
width = currentMinimumWidth; width = currentMinimumWidth;
@ -242,6 +285,7 @@ void TableZone::resizeToContents()
} }
} }
CardItem *TableZone::getCardFromGrid(const QPoint &gridPoint) const CardItem *TableZone::getCardFromGrid(const QPoint &gridPoint) const
{ {
for (int i = 0; i < cards.size(); i++) for (int i = 0; i < cards.size(); i++)
@ -256,17 +300,18 @@ CardItem *TableZone::getCardFromCoords(const QPointF &point) const
return getCardFromGrid(gridPoint); return getCardFromGrid(gridPoint);
} }
QPointF TableZone::mapFromGrid(QPoint gridPoint) const QPointF TableZone::mapFromGrid(QPoint gridPoint) const
{ {
qreal x, y; qreal x, y;
x = marginX + (gridPoint.x() % 3) * CARD_WIDTH / 3.0; x = MARGIN_X + (gridPoint.x() % 3) * CARD_WIDTH / 3.0;
for (int i = 0; i < gridPoint.x() / 3; ++i) for (int i = 0; i < gridPoint.x() / 3; ++i)
x += gridPointWidth.value(gridPoint.y() * 1000 + i, CARD_WIDTH) + paddingX; x += gridPointWidth.value(gridPoint.y() * 1000 + i, CARD_WIDTH) + PADDING_X;
if (isInverted()) if (isInverted())
gridPoint.setY(2 - gridPoint.y()); gridPoint.setY(2 - gridPoint.y());
y = boxLineWidth + gridPoint.y() * (CARD_HEIGHT + paddingY + 20) + (gridPoint.x() % 3) * 10; y = BOX_LINE_WIDTH + gridPoint.y() * (CARD_HEIGHT + PADDING_Y + 20) + (gridPoint.x() % 3) * 10;
/* /*
if (isInverted()) if (isInverted())
y = height - CARD_HEIGHT - y; y = height - CARD_HEIGHT - y;
@ -274,24 +319,25 @@ QPointF TableZone::mapFromGrid(QPoint gridPoint) const
return QPointF(x, y); return QPointF(x, y);
} }
QPoint TableZone::mapToGrid(const QPointF &mapPoint) const QPoint TableZone::mapToGrid(const QPointF &mapPoint) const
{ {
qreal x = mapPoint.x() - marginX; qreal x = mapPoint.x() - MARGIN_X;
qreal y = mapPoint.y(); qreal y = mapPoint.y();
/* if (isInverted()) /* if (isInverted())
y = height - y; y = height - y;
*/ y -= boxLineWidth; */ y -= BOX_LINE_WIDTH;
if (x < 0) if (x < 0)
x = 0; x = 0;
else if (x > width - CARD_WIDTH - marginX) else if (x > width - CARD_WIDTH - MARGIN_X)
x = width - CARD_WIDTH - marginX; x = width - CARD_WIDTH - MARGIN_X;
if (y < 0) if (y < 0)
y = 0; y = 0;
else if (y > height - CARD_HEIGHT) else if (y > height - CARD_HEIGHT)
y = height - CARD_HEIGHT; y = height - CARD_HEIGHT;
int resultY = round(y / (CARD_HEIGHT + paddingY + 20)); int resultY = round(y / (CARD_HEIGHT + PADDING_Y + 20));
if (isInverted()) if (isInverted())
resultY = 2 - resultY; resultY = 2 - resultY;
@ -300,7 +346,7 @@ QPoint TableZone::mapToGrid(const QPointF &mapPoint) const
do { do {
++baseX; ++baseX;
oldTempX = tempX; oldTempX = tempX;
tempX += gridPointWidth.value(resultY * 1000 + baseX, CARD_WIDTH) + paddingX; tempX += gridPointWidth.value(resultY * 1000 + baseX, CARD_WIDTH) + PADDING_X;
} while (tempX < x + 1); } while (tempX < x + 1);
qreal xdiff = x - oldTempX; qreal xdiff = x - oldTempX;
@ -308,6 +354,7 @@ QPoint TableZone::mapToGrid(const QPointF &mapPoint) const
return QPoint(resultX, resultY); return QPoint(resultX, resultY);
} }
QPointF TableZone::closestGridPoint(const QPointF &point) QPointF TableZone::closestGridPoint(const QPointF &point)
{ {
QPoint gridPoint = mapToGrid(point + QPoint(1, 1)); QPoint gridPoint = mapToGrid(point + QPoint(1, 1));
@ -318,9 +365,3 @@ QPointF TableZone::closestGridPoint(const QPointF &point)
gridPoint.setX(gridPoint.x() + 1); gridPoint.setX(gridPoint.x() + 1);
return mapFromGrid(gridPoint); return mapFromGrid(gridPoint);
} }
void TableZone::setWidth(qreal _width)
{
prepareGeometryChange();
width = _width;
}

View file

@ -1,50 +1,149 @@
#ifndef TABLEZONE_H #ifndef TABLEZONE_H
#define TABLEZONE_H #define TABLEZONE_H
#include "selectzone.h" #include "selectzone.h"
#include "abstractcarditem.h" #include "abstractcarditem.h"
/*
* TableZone is the grid based rect where CardItems may be placed.
* It is the main play zone and can be customized with background images.
*
* TODO: Refactor methods to make more readable, extract some logic to
* private methods (Im looking at you TableZone::reorganizeCards())
*/
class TableZone : public SelectZone { class TableZone : public SelectZone {
Q_OBJECT Q_OBJECT
signals: signals:
void sizeChanged(); void sizeChanged();
private:
static const int boxLineWidth = 10;
static const int paddingX = 35;
static const int paddingY = 10;
static const int marginX = 20;
static const int minWidth = 15 * CARD_WIDTH / 2;
private:
static const int BOX_LINE_WIDTH = 10;
static const int PADDING_X = 35;
static const int PADDING_Y = 10;
static const int MARGIN_X = 20;
static const int MIN_WIDTH = 15 * CARD_WIDTH / 2;
/*
Default background color, inactive mask and boarder gradient
*/
static const QColor BACKGROUND_COLOR;
static const QColor FADE_MASK;
static const QColor GRADIENT_COLOR;
static const QColor GRADIENT_COLORLESS;
/*
Size and shape variables
*/
QMap<int, int> gridPointWidth; QMap<int, int> gridPointWidth;
int width, height; int width;
int height;
int currentMinimumWidth; int currentMinimumWidth;
QPixmap bgPixmap;
/*
Holds any custom background image for the TableZone
*/
QPixmap backgroundPixelMap;
/*
If this TableZone is currently active
*/
bool active; bool active;
bool isInverted() const; bool isInverted() const;
private slots:
private slots:
/**
Loads in any found custom background and updates
*/
void updateBgPixmap(); void updateBgPixmap();
public slots: public slots:
/**
Reorganizes CardItems in the TableZone
*/
void reorganizeCards(); void reorganizeCards();
public: public:
/**
Constructs TableZone.
@param _p the Player
@param parent defaults to null
*/
TableZone(Player *_p, QGraphicsItem *parent = 0); TableZone(Player *_p, QGraphicsItem *parent = 0);
/**
@return a QRectF of the TableZone bounding box.
*/
QRectF boundingRect() const; QRectF boundingRect() const;
/**
Render the TableZone
@param painter
@param option
*/
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
/**
Toggles the selected items as tapped.
*/
void toggleTapped(); void toggleTapped();
/**
See HandleDropEventByGrid
*/
void handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint); void handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint);
/**
Handles the placement of cards
*/
void handleDropEventByGrid(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &gridPoint); void handleDropEventByGrid(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &gridPoint);
/**
@return CardItem from grid location
*/
CardItem *getCardFromGrid(const QPoint &gridPoint) const; CardItem *getCardFromGrid(const QPoint &gridPoint) const;
/**
@return CardItem from coordinate location
*/
CardItem *getCardFromCoords(const QPointF &point) const; CardItem *getCardFromCoords(const QPointF &point) const;
QPointF mapFromGrid(QPoint gridPoint) const; QPointF mapFromGrid(QPoint gridPoint) const;
QPoint mapToGrid(const QPointF &mapPoint) const; QPoint mapToGrid(const QPointF &mapPoint) const;
QPointF closestGridPoint(const QPointF &point); QPointF closestGridPoint(const QPointF &point);
/**
Removes a card from view.
@param position card position
@param cardId id of card to take
@param canResize defaults to true
@return CardItem that has been removed
*/
CardItem *takeCard(int position, int cardId, bool canResize = true); CardItem *takeCard(int position, int cardId, bool canResize = true);
/**
Resizes the TableZone in case CardItems are within or
outside of the TableZone constraints.
*/
void resizeToContents(); void resizeToContents();
int getMinimumWidth() const { return currentMinimumWidth; } int getMinimumWidth() const { return currentMinimumWidth; }
void setWidth(qreal _width); void setWidth(qreal _width){ prepareGeometryChange(); width = _width;};
qreal getWidth() const { return width; } qreal getWidth() const { return width; }
void setActive(bool _active) { active = _active; update(); } void setActive(bool _active) { active = _active; update(); }
protected: protected:
void addCardImpl(CardItem *card, int x, int y); void addCardImpl(CardItem *card, int x, int y);
private:
void paintZoneOutline(QPainter *painter);
void paintLandDivider(QPainter *painter);
}; };
#endif #endif

View file

@ -43,48 +43,48 @@
</message> </message>
<message> <message>
<source>Path to hand background:</source> <source>Path to hand background:</source>
<translation type="obsolete">Chemin pour les images de fond de main:</translation> <translation>Chemin vers l&apos;image de fond de la zone de main:</translation>
</message> </message>
<message> <message>
<source>Path to stack background:</source> <source>Path to stack background:</source>
<translation type="obsolete">Chemin pour les images de fond de pile:</translation> <translation>Chemin vers l&apos;image de fond de la pile:</translation>
</message> </message>
<message> <message>
<source>Path to table background:</source> <source>Path to table background:</source>
<translation type="obsolete">Chemin pour les images d&apos;arrière-plan:</translation> <translation>Chemin vers l&apos;image de fond de la zone de jeu:</translation>
</message> </message>
<message> <message>
<source>Path to player info background:</source> <source>Path to player info background:</source>
<translation type="obsolete">Chemin pour les images de fond d&apos;affichage d&apos;informations:</translation> <translation>Chemin vers l&apos;image de fond d&apos;informations joueur:</translation>
</message> </message>
<message> <message>
<source>Path to picture of card back:</source> <source>Path to picture of card back:</source>
<translation type="obsolete">Chemin pour les images de dos des cartes:</translation> <translation>Chemin vers l&apos;image de dos des cartes:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="366"/> <location filename="../src/dlg_settings.cpp" line="366"/>
<source>Hand background:</source> <source>Hand background:</source>
<translation type="unfinished"></translation> <translation>Image de fond de la zone de main:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="367"/> <location filename="../src/dlg_settings.cpp" line="367"/>
<source>Stack background:</source> <source>Stack background:</source>
<translation type="unfinished"></translation> <translation>Image de fond de la pile:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="368"/> <location filename="../src/dlg_settings.cpp" line="368"/>
<source>Table background:</source> <source>Table background:</source>
<translation type="unfinished"></translation> <translation>Image de fond de la zone de jeu:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="369"/> <location filename="../src/dlg_settings.cpp" line="369"/>
<source>Player info background:</source> <source>Player info background:</source>
<translation type="unfinished"></translation> <translation>Image de fond de la zone d&apos;informations joueur:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="370"/> <location filename="../src/dlg_settings.cpp" line="370"/>
<source>Card back:</source> <source>Card back:</source>
<translation type="unfinished"></translation> <translation>Dos de carte:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="372"/> <location filename="../src/dlg_settings.cpp" line="372"/>
@ -104,7 +104,7 @@
<message> <message>
<location filename="../src/dlg_settings.cpp" line="376"/> <location filename="../src/dlg_settings.cpp" line="376"/>
<source>Display hand horizontally (wastes space)</source> <source>Display hand horizontally (wastes space)</source>
<translation>Montrer la main horizontalement</translation> <translation>Afficher la main horizontalement (perte d'espace)</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="378"/> <location filename="../src/dlg_settings.cpp" line="378"/>
@ -124,7 +124,7 @@
<message> <message>
<location filename="../src/dlg_settings.cpp" line="382"/> <location filename="../src/dlg_settings.cpp" line="382"/>
<source>Zone view layout</source> <source>Zone view layout</source>
<translation>Voir disposition de la zone</translation> <translation>Disposition de la zone d'aperçu</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="383"/> <location filename="../src/dlg_settings.cpp" line="383"/>
@ -151,60 +151,60 @@
<message> <message>
<source>Please enter the duration of the ban (in minutes). <source>Please enter the duration of the ban (in minutes).
Enter 0 for an indefinite ban.</source> Enter 0 for an indefinite ban.</source>
<translation type="obsolete">Entrez la durée de temps du ban (en minutes). <translation type="obsolete">Entrez la durée de temps de blocage (en minutes).
Entrez 0 pour une durée illimitée du ban.</translation> Entrez 0 pour un blocage permanent.</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="34"/> <location filename="../src/userlist.cpp" line="34"/>
<source>ban &amp;user name</source> <source>ban &amp;user name</source>
<translation type="unfinished"></translation> <translation>bloquer &amp;nom d&apos;utilisateur</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="37"/> <location filename="../src/userlist.cpp" line="37"/>
<source>ban &amp;IP address</source> <source>ban &amp;IP address</source>
<translation type="unfinished"></translation> <translation>bloquer &amp;adresse IP</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="45"/> <location filename="../src/userlist.cpp" line="45"/>
<source>Ban type</source> <source>Ban type</source>
<translation type="unfinished"></translation> <translation>Type du blocage</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="48"/> <location filename="../src/userlist.cpp" line="48"/>
<source>&amp;permanent ban</source> <source>&amp;permanent ban</source>
<translation type="unfinished"></translation> <translation>&amp;blocage permanent</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="49"/> <location filename="../src/userlist.cpp" line="49"/>
<source>&amp;temporary ban</source> <source>&amp;temporary ban</source>
<translation type="unfinished"></translation> <translation>&amp;blocage temporaire</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="52"/> <location filename="../src/userlist.cpp" line="52"/>
<source>&amp;Days:</source> <source>&amp;Days:</source>
<translation type="unfinished"></translation> <translation>&amp;Jours:</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="58"/> <location filename="../src/userlist.cpp" line="58"/>
<source>&amp;Hours:</source> <source>&amp;Hours:</source>
<translation type="unfinished"></translation> <translation>&amp;Heures:</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="64"/> <location filename="../src/userlist.cpp" line="64"/>
<source>&amp;Minutes:</source> <source>&amp;Minutes:</source>
<translation type="unfinished"></translation> <translation>&amp;Minutes:</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="79"/> <location filename="../src/userlist.cpp" line="79"/>
<source>Duration of the ban</source> <source>Duration of the ban</source>
<translation type="unfinished"></translation> <translation>Durée du blocage</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="82"/> <location filename="../src/userlist.cpp" line="82"/>
<source>Please enter the reason for the ban. <source>Please enter the reason for the ban.
This is only saved for moderators and cannot be seen by the banned person.</source> This is only saved for moderators and cannot be seen by the banned person.</source>
<translation>Veuillez expliquer la raison du ban. <translation>Veuillez expliquer la raison du blocage.
Cette information ne sera consultable que par les modérateurs.</translation> Cette information sera consultable uniquement par les modérateurs.</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="85"/> <location filename="../src/userlist.cpp" line="85"/>
@ -229,12 +229,12 @@ Cette information ne sera consultable que par les modérateurs.</translation>
<message> <message>
<location filename="../src/userlist.cpp" line="115"/> <location filename="../src/userlist.cpp" line="115"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished">Erreur</translation> <translation>Érreur</translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="115"/> <location filename="../src/userlist.cpp" line="115"/>
<source>You have to select a name-based or IP-based ban, or both.</source> <source>You have to select a name-based or IP-based ban, or both.</source>
<translation type="unfinished"></translation> <translation>Vous devez choisir un blocage à partir du nom ou de l&apos;IP, ou des deux.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -369,6 +369,12 @@ Cette information ne sera consultable que par les modérateurs.</translation>
<message> <message>
<source>&amp;Clone</source> <source>&amp;Clone</source>
<translation type="obsolete">&amp;Copier une carte</translation> <translation type="obsolete">&amp;Copier une carte</translation>
<translation>&amp;Copier une carte</translation>
</message>
<message>
<location filename="../src/carditem.cpp" line="214"/>
<source>Ctrl+H</source>
<translation>Ctrl+H</translation>
</message> </message>
<message> <message>
<source>&amp;Attach to card...</source> <source>&amp;Attach to card...</source>
@ -384,16 +390,16 @@ Cette information ne sera consultable que par les modérateurs.</translation>
</message> </message>
<message> <message>
<source>Set &amp;P/T...</source> <source>Set &amp;P/T...</source>
<translation type="obsolete">Fixer &amp;F/E...</translation> <translation type="obsolete">Définir &amp;F/E...</translation>
</message> </message>
<message> <message>
<source>&amp;Draw arrow...</source> <source>&amp;Draw arrow...</source>
<translation type="obsolete">&amp;Tracer une flèche...</translation> <translation type="obsolete">&amp;Tracer une flèche...</translation>
</message> </message>
<message> <message>
<location filename="../src/carditem.cpp" line="83"/> <location filename="../src/carditem.cpp" line="219"/>
<source>&amp;Power / toughness</source> <source>&amp;Power / Toughness</source>
<translation>F&amp;orce / Endurance</translation> <translation>&amp;Force / Endurance</translation>
</message> </message>
<message> <message>
<source>&amp;Increase power</source> <source>&amp;Increase power</source>
@ -445,7 +451,7 @@ Cette information ne sera consultable que par les modérateurs.</translation>
</message> </message>
<message> <message>
<source>Set &amp;power and toughness...</source> <source>Set &amp;power and toughness...</source>
<translation type="obsolete">Fi&amp;xer la force et l&apos;endurance...</translation> <translation>&amp;finir la force et l&apos;endurance...</translation>
</message> </message>
<message> <message>
<source>Ctrl+P</source> <source>Ctrl+P</source>
@ -477,7 +483,7 @@ Cette information ne sera consultable que par les modérateurs.</translation>
</message> </message>
<message> <message>
<source>&amp;Set counters (%1)...</source> <source>&amp;Set counters (%1)...</source>
<translation type="obsolete">&amp;Fixer marqueurs (%1)...</translation> <translation>&amp;Définir marqueurs (%1)...</translation>
</message> </message>
<message> <message>
<source>&amp;top of library</source> <source>&amp;top of library</source>
@ -497,7 +503,7 @@ Cette information ne sera consultable que par les modérateurs.</translation>
</message> </message>
<message> <message>
<source>&amp;exile</source> <source>&amp;exile</source>
<translation type="obsolete">&amp;exiler</translation> <translation>&amp;exile</translation>
</message> </message>
<message> <message>
<location filename="../src/carditem.cpp" line="82"/> <location filename="../src/carditem.cpp" line="82"/>
@ -2230,7 +2236,7 @@ Would you like to change your database location setting?</source>
<message> <message>
<location filename="../src/window_main.cpp" line="228"/> <location filename="../src/window_main.cpp" line="228"/>
<source>Italian:</source> <source>Italian:</source>
<translation type="unfinished"></translation> <translation>Italien:</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="235"/> <location filename="../src/window_main.cpp" line="235"/>
@ -5714,6 +5720,12 @@ Entrez 0 pour une durée illimitée du ban.</translation>
<translation type="obsolete">&amp;Commentaires:</translation> <translation type="obsolete">&amp;Commentaires:</translation>
</message> </message>
<message> <message>
<location filename="../src/window_deckeditor.cpp" line="118"/>
<source>Hash:</source>
<translation>Empreinte:</translation>
</message>
<message>
<location filename="../src/window_deckeditor.cpp" line="132"/>
<source>&amp;Update prices</source> <source>&amp;Update prices</source>
<translation type="obsolete">Mettre à &amp;jour les prix</translation> <translation type="obsolete">Mettre à &amp;jour les prix</translation>
</message> </message>

View file

@ -111,6 +111,13 @@ endif()
if(UNIX) if(UNIX)
if(APPLE) if(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
INSTALL(TARGETS oracle BUNDLE DESTINATION ./) INSTALL(TARGETS oracle BUNDLE DESTINATION ./)
else() else()
# Assume linux # Assume linux

View file

@ -103,17 +103,21 @@ LoadSetsPage::LoadSetsPage(QWidget *parent)
urlRadioButton->setChecked(true); urlRadioButton->setChecked(true);
urlButton = new QPushButton(tr("Restore default url"), this);
connect(urlButton, SIGNAL(clicked()), this, SLOT(actRestoreDefaultUrl()));
fileButton = new QPushButton(tr("Choose file..."), this); fileButton = new QPushButton(tr("Choose file..."), this);
connect(fileButton, SIGNAL(clicked()), this, SLOT(actLoadSetsFile())); connect(fileButton, SIGNAL(clicked()), this, SLOT(actLoadSetsFile()));
QGridLayout *layout = new QGridLayout(this); QGridLayout *layout = new QGridLayout(this);
layout->addWidget(urlRadioButton, 0, 0); layout->addWidget(urlRadioButton, 0, 0);
layout->addWidget(urlLineEdit, 0, 1); layout->addWidget(urlLineEdit, 0, 1);
layout->addWidget(fileRadioButton, 1, 0); layout->addWidget(urlButton, 1, 1, Qt::AlignRight);
layout->addWidget(fileLineEdit, 1, 1); layout->addWidget(fileRadioButton, 2, 0);
layout->addWidget(fileButton, 2, 1, Qt::AlignRight); layout->addWidget(fileLineEdit, 2, 1);
layout->addWidget(progressLabel, 3, 0); layout->addWidget(fileButton, 3, 1, Qt::AlignRight);
layout->addWidget(progressBar, 3, 1); layout->addWidget(progressLabel, 4, 0);
layout->addWidget(progressBar, 4, 1);
connect(&watcher, SIGNAL(finished()), this, SLOT(importFinished())); connect(&watcher, SIGNAL(finished()), this, SLOT(importFinished()));
@ -128,6 +132,11 @@ void LoadSetsPage::initializePage()
progressBar->hide(); progressBar->hide();
} }
void LoadSetsPage::actRestoreDefaultUrl()
{
urlLineEdit->setText(ALLSETS_URL);
}
void LoadSetsPage::actLoadSetsFile() void LoadSetsPage::actLoadSetsFile()
{ {
QFileDialog dialog(this, tr("Load sets file")); QFileDialog dialog(this, tr("Load sets file"));

View file

@ -63,6 +63,7 @@ private:
QRadioButton *fileRadioButton; QRadioButton *fileRadioButton;
QLineEdit *urlLineEdit; QLineEdit *urlLineEdit;
QLineEdit *fileLineEdit; QLineEdit *fileLineEdit;
QPushButton *urlButton;
QPushButton *fileButton; QPushButton *fileButton;
QLabel *progressLabel; QLabel *progressLabel;
QProgressBar * progressBar; QProgressBar * progressBar;
@ -72,6 +73,7 @@ private:
QFuture<bool> future; QFuture<bool> future;
private slots: private slots:
void actLoadSetsFile(); void actLoadSetsFile();
void actRestoreDefaultUrl();
void actDownloadProgressSetsFile(qint64 received, qint64 total); void actDownloadProgressSetsFile(qint64 received, qint64 total);
void actDownloadFinishedSetsFile(); void actDownloadFinishedSetsFile();
void importFinished(); void importFinished();

View file

@ -17,6 +17,19 @@ SET(servatrice_SOURCES
${VERSION_STRING_CPP} ${VERSION_STRING_CPP}
) )
set(servatrice_RESOURCES servatrice.qrc)
if(WIN32)
set(servatrice_SOURCES ${servatrice_SOURCES} servatrice.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(servatrice_SOURCES ${servatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
ENDIF(APPLE)
set(SERVATRICE_LIBS) set(SERVATRICE_LIBS)
# Qt4 stuff # Qt4 stuff
@ -32,6 +45,7 @@ if(Qt4_FOUND)
# Libgcrypt is required only with Qt4 to support SHA512 hashing # Libgcrypt is required only with Qt4 to support SHA512 hashing
FIND_PACKAGE(Libgcrypt REQUIRED) FIND_PACKAGE(Libgcrypt REQUIRED)
INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR})
QT4_ADD_RESOURCES(servatrice_RESOURCES_RCC ${servatrice_RESOURCES})
endif() endif()
# qt5 stuff # qt5 stuff
@ -53,6 +67,8 @@ if(Qt5Widgets_FOUND)
list(APPEND SERVATRICE_LIBS Sql) list(APPEND SERVATRICE_LIBS Sql)
endif() endif()
QT5_ADD_RESOURCES(servatrice_RESOURCES_RCC ${servatrice_RESOURCES})
# guess plugins and libraries directory # guess plugins and libraries directory
set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins") set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins")
get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION) get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION)
@ -61,6 +77,10 @@ endif()
SET(QT_DONT_USE_QTGUI TRUE) SET(QT_DONT_USE_QTGUI TRUE)
# Declare path variables
set(ICONDIR share/icons CACHE STRING "icon dir")
set(DESKTOPDIR share/applications CACHE STRING "desktop file destination")
# Include directories # Include directories
INCLUDE_DIRECTORIES(../common) INCLUDE_DIRECTORIES(../common)
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
@ -68,7 +88,7 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../common)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
# Build servatrice binary and link it # Build servatrice binary and link it
ADD_EXECUTABLE(servatrice MACOSX_BUNDLE ${servatrice_SOURCES} ${servatrice_MOC_SRCS}) ADD_EXECUTABLE(servatrice MACOSX_BUNDLE ${servatrice_SOURCES} ${servatrice_RESOURCES_RCC} ${servatrice_MOC_SRCS})
if(Qt4_FOUND) if(Qt4_FOUND)
if(MSVC) if(MSVC)
@ -88,6 +108,13 @@ endif()
# install rules # install rules
if(UNIX) if(UNIX)
if(APPLE) if(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
INSTALL(TARGETS servatrice BUNDLE DESTINATION ./) INSTALL(TARGETS servatrice BUNDLE DESTINATION ./)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION ./servatrice.app/Contents/Resources/) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION ./servatrice.app/Contents/Resources/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION ./servatrice.app/Contents/Resources/) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION ./servatrice.app/Contents/Resources/)
@ -96,6 +123,10 @@ if(UNIX)
INSTALL(TARGETS servatrice RUNTIME DESTINATION bin/) INSTALL(TARGETS servatrice RUNTIME DESTINATION bin/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION share/servatice/) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.ini.example DESTINATION share/servatice/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION share/servatice/) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.sql DESTINATION share/servatice/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/servatrice.png DESTINATION ${ICONDIR}/hicolor/48x48/apps)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/servatrice.svg DESTINATION ${ICONDIR}/hicolor/scalable/apps)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/servatrice.desktop DESTINATION ${DESKTOPDIR})
endif() endif()
elseif(WIN32) elseif(WIN32)
INSTALL(TARGETS servatrice RUNTIME DESTINATION ./) INSTALL(TARGETS servatrice RUNTIME DESTINATION ./)

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -0,0 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Name=Servatrice
Exec=servatrice
Icon=servatrice
Categories=Game;CardGame;
Terminal=true
Comment=Game server for Cockatrice

View file

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/" >
<file alias="resources/appicon.svg">resources/servatrice.svg</file>
</qresource>
</RCC>

1
servatrice/servatrice.rc Normal file
View file

@ -0,0 +1 @@
ID1_ICON1 ICON DISCARDABLE "resources/appicon.ico"

View file

@ -220,6 +220,6 @@ PRIMARY KEY (`id`)
CREATE TABLE IF NOT EXISTS `cockatrice_rooms_gametypes` ( CREATE TABLE IF NOT EXISTS `cockatrice_rooms_gametypes` (
`id_room` int(7) unsigned NOT NULL, `id_room` int(7) unsigned NOT NULL,
`name` varchar(50) NOT NULL, `name` varchar(50) NOT NULL,
PRIMARY KEY (`id_room`) PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View file

@ -50,7 +50,7 @@ void ServerLogger::logMessage(QString message, void *caller)
callerString = QString::number((qulonglong) caller, 16) + " "; callerString = QString::number((qulonglong) caller, 16) + " ";
//filter out all log entries based on values in configuration file //filter out all log entries based on values in configuration file
bool shouldWeWriteLog = settingsCache->value("server/writelog").toBool(); bool shouldWeWriteLog = settingsCache->value("server/writelog",1).toBool();
QString logFilters = settingsCache->value("server/logfilters").toString(); QString logFilters = settingsCache->value("server/logfilters").toString();
QStringList listlogFilters = logFilters.split(",", QString::SkipEmptyParts); QStringList listlogFilters = logFilters.split(",", QString::SkipEmptyParts);
bool shouldWeSkipLine = false; bool shouldWeSkipLine = false;