Merge branch 'master' into Refactor-settings
Conflicts: oracle/CMakeLists.txt
|
@ -221,7 +221,7 @@ option(WITH_CLIENT "build cockatrice" ON)
|
|||
if(WITH_CLIENT)
|
||||
add_subdirectory(cockatrice)
|
||||
add_subdirectory(sounds)
|
||||
add_subdirectory(zonebg)
|
||||
add_subdirectory(themes)
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "cockatrice;cockatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
endif()
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ SET(cockatrice_SOURCES
|
|||
src/playerlistwidget.cpp
|
||||
src/pixmapgenerator.cpp
|
||||
src/settingscache.cpp
|
||||
src/thememanager.cpp
|
||||
src/localserver.cpp
|
||||
src/localserverinterface.cpp
|
||||
src/localclient.cpp
|
||||
|
|
|
@ -1,57 +1,58 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file alias="back.svg">resources/back.svg</file>
|
||||
<file>resources/lock.svg</file>
|
||||
<file>resources/icon_delete.svg</file>
|
||||
<file>resources/icon_tab_changed.svg</file>
|
||||
<file>resources/icon_config_general.svg</file>
|
||||
<file>resources/icon_config_appearance.svg</file>
|
||||
<file>resources/icon_config_interface.svg</file>
|
||||
<file>resources/icon_config_messages.svg</file>
|
||||
<file>resources/icon_config_deckeditor.svg</file>
|
||||
<file>resources/icon_config_sound.svg</file>
|
||||
<file>resources/phases/icon_phase_untap.svg</file>
|
||||
<file>resources/phases/icon_phase_upkeep.svg</file>
|
||||
<file>resources/phases/icon_phase_draw.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_attackers.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_end.svg</file>
|
||||
<file>resources/phases/icon_phase_main2.svg</file>
|
||||
<file>resources/phases/icon_phase_cleanup.svg</file>
|
||||
<file>resources/phases/icon_phase_nextturn.svg</file>
|
||||
<file>resources/icon_settings.svg</file>
|
||||
<qresource prefix="/" >
|
||||
<file>resources/back.svg</file>
|
||||
<file>resources/cockatrice.svg</file>
|
||||
<file>resources/hand.svg</file>
|
||||
<file>resources/pencil.svg</file>
|
||||
<file>resources/icon_search_black.svg</file>
|
||||
<file>resources/icon_clearsearch.svg</file>
|
||||
<file>resources/icon_update.png</file>
|
||||
<file>resources/icon_view.svg</file>
|
||||
<file>resources/hr.jpg</file>
|
||||
<file alias="resources/appicon.svg">resources/cockatrice.svg</file>
|
||||
<file>resources/add_to_sideboard.svg</file>
|
||||
<file>resources/decrement.svg</file>
|
||||
<file>resources/increment.svg</file>
|
||||
<file>resources/remove_row.svg</file>
|
||||
<file>resources/arrow_left_green.svg</file>
|
||||
<file>resources/arrow_right_green.svg</file>
|
||||
<file>resources/arrow_top_green.svg</file>
|
||||
<file>resources/arrow_up_green.svg</file>
|
||||
<file>resources/arrow_down_green.svg</file>
|
||||
<file>resources/arrow_bottom_green.svg</file>
|
||||
<file>resources/icon_ready_start.svg</file>
|
||||
<file>resources/icon_not_ready_start.svg</file>
|
||||
<file>resources/icon_conceded.svg</file>
|
||||
<file>resources/icon_player.svg</file>
|
||||
<file>resources/icon_spectator.svg</file>
|
||||
<file>resources/replay_start.svg</file>
|
||||
<file>resources/replay_fastforward.svg</file>
|
||||
<file>resources/replay_pause.svg</file>
|
||||
<file>resources/genders/male.svg</file>
|
||||
<file>resources/genders/female.svg</file>
|
||||
<file>resources/genders/unknown.svg</file>
|
||||
|
||||
<file>resources/icons/arrow_bottom_green.svg</file>
|
||||
<file>resources/icons/arrow_down_green.svg</file>
|
||||
<file>resources/icons/arrow_left_green.svg</file>
|
||||
<file>resources/icons/arrow_right_blue.svg</file>
|
||||
<file>resources/icons/arrow_right_green.svg</file>
|
||||
<file>resources/icons/arrow_top_green.svg</file>
|
||||
<file>resources/icons/arrow_up_green.svg</file>
|
||||
<file>resources/icons/clearsearch.svg</file>
|
||||
<file>resources/icons/conceded.svg</file>
|
||||
<file>resources/icons/decrement.svg</file>
|
||||
<file>resources/icons/delete.svg</file>
|
||||
<file>resources/icons/increment.svg</file>
|
||||
<file>resources/icons/lock.svg</file>
|
||||
<file>resources/icons/not_ready_start.svg</file>
|
||||
<file>resources/icons/pencil.svg</file>
|
||||
<file>resources/icons/player.svg</file>
|
||||
<file>resources/icons/ready_start.svg</file>
|
||||
<file>resources/icons/remove_row.svg</file>
|
||||
<file>resources/icons/search.svg</file>
|
||||
<file>resources/icons/settings.svg</file>
|
||||
<file>resources/icons/spectator.svg</file>
|
||||
<file>resources/icons/tab_changed.svg</file>
|
||||
<file>resources/icons/update.png</file>
|
||||
<file>resources/icons/view.svg</file>
|
||||
|
||||
<file>resources/config/general.svg</file>
|
||||
<file>resources/config/appearance.svg</file>
|
||||
<file>resources/config/interface.svg</file>
|
||||
<file>resources/config/messages.svg</file>
|
||||
<file>resources/config/deckeditor.svg</file>
|
||||
<file>resources/config/shorcuts.svg</file>
|
||||
<file>resources/config/sound.svg</file>
|
||||
|
||||
<file>resources/counters/w.svg</file>
|
||||
<file>resources/counters/w_highlight.svg</file>
|
||||
<file>resources/counters/u.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/storm.svg</file>
|
||||
<file>resources/counters/storm_highlight.svg</file>
|
||||
<file>resources/counters/general.svg</file>
|
||||
<file>resources/counters/general_highlight.svg</file>
|
||||
|
||||
<file>resources/countries/ad.svg</file>
|
||||
<file>resources/countries/ae.svg</file>
|
||||
<file>resources/countries/af.svg</file>
|
||||
|
@ -301,20 +302,28 @@
|
|||
<file>resources/countries/za.svg</file>
|
||||
<file>resources/countries/zm.svg</file>
|
||||
<file>resources/countries/zw.svg</file>
|
||||
<file>resources/counters/w.svg</file>
|
||||
<file>resources/counters/w_highlight.svg</file>
|
||||
<file>resources/counters/u.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/storm.svg</file>
|
||||
<file>resources/counters/storm_highlight.svg</file>
|
||||
<file>resources/counters/general.svg</file>
|
||||
<file>resources/counters/general_highlight.svg</file>
|
||||
|
||||
<file>resources/genders/male.svg</file>
|
||||
<file>resources/genders/female.svg</file>
|
||||
<file>resources/genders/unknown.svg</file>
|
||||
|
||||
<file>resources/phases/untap.svg</file>
|
||||
<file>resources/phases/upkeep.svg</file>
|
||||
<file>resources/phases/draw.svg</file>
|
||||
<file>resources/phases/main1.svg</file>
|
||||
<file>resources/phases/combat_start.svg</file>
|
||||
<file>resources/phases/combat_attackers.svg</file>
|
||||
<file>resources/phases/combat_blockers.svg</file>
|
||||
<file>resources/phases/combat_damage.svg</file>
|
||||
<file>resources/phases/combat_end.svg</file>
|
||||
<file>resources/phases/main2.svg</file>
|
||||
<file>resources/phases/cleanup.svg</file>
|
||||
<file>resources/phases/nextturn.svg</file>
|
||||
|
||||
<file>resources/replay/start.svg</file>
|
||||
<file>resources/replay/fastforward.svg</file>
|
||||
<file>resources/replay/pause.svg</file>
|
||||
|
||||
<file>resources/userlevels/normal.svg</file>
|
||||
<file>resources/userlevels/registered.svg</file>
|
||||
<file>resources/userlevels/registered_buddy.svg</file>
|
||||
|
@ -322,8 +331,5 @@
|
|||
<file>resources/userlevels/moderator_buddy.svg</file>
|
||||
<file>resources/userlevels/admin.svg</file>
|
||||
<file>resources/userlevels/admin_buddy.svg</file>
|
||||
<file>resources/news/exclamation_mark.svg</file>
|
||||
<file>resources/news/question_mark.svg</file>
|
||||
<file>resources/icon_config_shorcuts.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
@ -1,75 +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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="icon_tab_changed.svg">
|
||||
<defs
|
||||
id="defs2860">
|
||||
<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="perspective2866" />
|
||||
<inkscape:perspective
|
||||
id="perspective2853"
|
||||
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" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5"
|
||||
inkscape:cx="4.1"
|
||||
inkscape:cy="49.523097"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2863">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-952.36218)">
|
||||
<path
|
||||
style="font-size:253.89010620000001950px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#e50000;fill-opacity:1;stroke:#000000;stroke-width:2.39700006999999982;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;font-family:Century Schoolbook L;-inkscape-font-specification:Century Schoolbook L Medium"
|
||||
d="m 53.225642,1018.5513 c 0.486911,-13.2677 1.704142,-22.64046 4.016877,-30.55249 3.895149,-13.38951 4.138607,-14.48503 4.138607,-19.23224 0,-7.66855 -4.260334,-12.17232 -11.320268,-12.17232 -7.181659,0 -11.441984,4.50377 -11.441984,12.17232 0,3.16481 0.60863,7.18167 1.704135,10.83336 4.868924,16.06746 5.720972,21.30157 6.45134,38.95137 l 6.451293,0 m -3.286511,6.8165 c -6.207884,0 -11.320257,5.1124 -11.320257,11.3204 0,6.2079 5.112373,11.4419 11.198528,11.4419 6.451342,0 11.563724,-5.1124 11.563724,-11.4419 0,-6.208 -5.112382,-11.3204 -11.441995,-11.3204"
|
||||
id="text3838" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.1 KiB |
|
@ -1,105 +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="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="exclamation_mark.svg">
|
||||
<defs
|
||||
id="defs2860">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3795">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3797" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3799" />
|
||||
</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="perspective2866" />
|
||||
<inkscape:perspective
|
||||
id="perspective2853"
|
||||
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="#linearGradient3795"
|
||||
id="linearGradient3801"
|
||||
x1="29.834375"
|
||||
y1="999.20284"
|
||||
x2="72.173357"
|
||||
y2="999.20284"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5"
|
||||
inkscape:cx="24.413577"
|
||||
inkscape:cy="49.523097"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2863">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-952.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:129.98471069px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#e00000;fill-opacity:1;stroke:#000000;stroke-width:1.78699994;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Rachana;-inkscape-font-specification:Rachana"
|
||||
x="18.646267"
|
||||
y="1045.775"
|
||||
id="text3791"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3793"
|
||||
x="18.646267"
|
||||
y="1045.775"
|
||||
style="fill:#e00000;fill-opacity:1;stroke-width:1.78699994;stroke-miterlimit:4;stroke-dasharray:none">?</tspan></text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
@ -1,100 +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="32px"
|
||||
height="32px"
|
||||
id="svg3320"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="replay_stop.svg">
|
||||
<defs
|
||||
id="defs3322">
|
||||
<linearGradient
|
||||
id="linearGradient2237">
|
||||
<stop
|
||||
style="stop-color:#006000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2239" />
|
||||
<stop
|
||||
style="stop-color:#48ff00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2241" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3207"
|
||||
id="linearGradient3998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8996584,0,0,0.8996584,543.08369,-117.97095)"
|
||||
x1="293.33597"
|
||||
y1="423.03891"
|
||||
x2="330.00668"
|
||||
y2="472.74878" />
|
||||
<linearGradient
|
||||
id="linearGradient3207">
|
||||
<stop
|
||||
id="stop3209"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3211"
|
||||
offset="1"
|
||||
style="stop-color:#48ff00;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="22.395604"
|
||||
inkscape:cx="12.669812"
|
||||
inkscape:cy="27.464311"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1099"
|
||||
inkscape:window-height="800"
|
||||
inkscape:window-x="128"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2990" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3325">
|
||||
<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:#b60000;fill-opacity:1;fill-rule:nonzero;stroke:#3f0000;stroke-opacity:1;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect2994"
|
||||
width="20.271835"
|
||||
height="20.271835"
|
||||
x="5.8940139"
|
||||
y="5.2983313" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.8 KiB |
|
@ -1,5 +1,7 @@
|
|||
#include "carddatabase.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
|
||||
#include <QCryptographicHash>
|
||||
#include <QDir>
|
||||
#include <QDirIterator>
|
||||
|
@ -624,7 +626,7 @@ void CardInfo::loadPixmap(QPixmap &pixmap)
|
|||
pixmap = QPixmap();
|
||||
|
||||
if (getName().isEmpty()) {
|
||||
pixmap.load(settingsCache->getCardBackPicturePath());
|
||||
pixmap = themeManager->getCardBackPixmap();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -654,15 +656,15 @@ void CardInfo::getPixmap(QSize size, QPixmap &pixmap)
|
|||
QPixmap bigPixmap;
|
||||
loadPixmap(bigPixmap);
|
||||
if (bigPixmap.isNull()) {
|
||||
if (!getName().isEmpty()) {
|
||||
pixmap = QPixmap(); // null
|
||||
return;
|
||||
} else {
|
||||
QSvgRenderer svg(QString(":/back.svg"));
|
||||
if (getName().isEmpty()) {
|
||||
QSvgRenderer svg(QString("theme:back.svg"));
|
||||
bigPixmap = QPixmap(svg.defaultSize());
|
||||
bigPixmap.fill(Qt::transparent);
|
||||
QPainter painter(&bigPixmap);
|
||||
svg.render(&painter);
|
||||
} else {
|
||||
pixmap = QPixmap(); // null
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -790,7 +792,7 @@ CardDatabase::CardDatabase(QObject *parent)
|
|||
noCard = new CardInfo(this);
|
||||
QPixmap tmp;
|
||||
noCard->loadPixmap(tmp); // cache pixmap for card back
|
||||
connect(settingsCache, SIGNAL(cardBackPicturePathChanged()), noCard, SLOT(updatePixmapCache()));
|
||||
connect(themeManager, SIGNAL(themeChanged()), noCard, SLOT(updatePixmapCache()));
|
||||
}
|
||||
|
||||
CardDatabase::~CardDatabase()
|
||||
|
|
|
@ -469,7 +469,7 @@ void DeckListModel::printDeckList(QPrinter *printer)
|
|||
cursor.insertBlock(headerBlockFormat, headerCharFormat);
|
||||
|
||||
for (int i = 0; i < root->size(); i++) {
|
||||
cursor.insertHtml("<br><img src=:/resources/hr.jpg>");
|
||||
cursor.insertHtml("<br><img src=theme:hr.jpg>");
|
||||
//cursor.insertHtml("<hr>");
|
||||
cursor.insertBlock(headerBlockFormat, headerCharFormat);
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "decklist.h"
|
||||
#include "carddatabase.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "main.h"
|
||||
|
||||
DeckViewCardDragItem::DeckViewCardDragItem(DeckViewCard *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag)
|
||||
|
@ -128,10 +129,6 @@ void DeckViewCard::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
|||
DeckViewCardContainer::DeckViewCardContainer(const QString &_name)
|
||||
: QGraphicsItem(), name(_name), width(0), height(0)
|
||||
{
|
||||
QString bgPath = settingsCache->getTableBgPath();
|
||||
if (!bgPath.isEmpty())
|
||||
bgPixmap.load(bgPath);
|
||||
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
}
|
||||
|
||||
|
@ -144,17 +141,7 @@ void DeckViewCardContainer::paint(QPainter *painter, const QStyleOptionGraphicsI
|
|||
{
|
||||
qreal totalTextWidth = getCardTypeTextWidth();
|
||||
|
||||
if (bgPixmap.isNull()) {
|
||||
QLinearGradient grad1(0, 0, 1, 0);
|
||||
grad1.setCoordinateMode(QGradient::ObjectBoundingMode);
|
||||
grad1.setColorAt(0, QColor(30, 30, 30));
|
||||
grad1.setColorAt(1, QColor(80, 80, 80));
|
||||
painter->fillRect(QRectF(0, 0, width, height), QBrush(grad1));
|
||||
|
||||
painter->fillRect(boundingRect(), QColor(0, 0, 0, 80));
|
||||
}
|
||||
else
|
||||
painter->fillRect(boundingRect(), QBrush(bgPixmap));
|
||||
painter->fillRect(boundingRect(), themeManager->getTableBgBrush());
|
||||
painter->setPen(QColor(255, 255, 255, 100));
|
||||
painter->drawLine(QPointF(0, separatorY), QPointF(width, separatorY));
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ private:
|
|||
QMultiMap<QString, DeckViewCard *> cardsByType;
|
||||
QList<QPair<int, int> > currentRowsAndCols;
|
||||
qreal width, height;
|
||||
QPixmap bgPixmap;
|
||||
int getCardTypeTextWidth() const;
|
||||
public:
|
||||
enum { Type = typeDeckViewCardContainer };
|
||||
|
|
|
@ -83,10 +83,10 @@ DlgEditTokens::DlgEditTokens(CardDatabaseModel *_cardDatabaseModel, QWidget *par
|
|||
connect(chooseTokenView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), this, SLOT(tokenSelectionChanged(QModelIndex, QModelIndex)));
|
||||
|
||||
QAction *aAddToken = new QAction(tr("Add token"), this);
|
||||
aAddToken->setIcon(QIcon(":/resources/increment.svg"));
|
||||
aAddToken->setIcon(QIcon("theme:icons/increment.svg"));
|
||||
connect(aAddToken, SIGNAL(triggered()), this, SLOT(actAddToken()));
|
||||
QAction *aRemoveToken = new QAction(tr("Remove token"), this);
|
||||
aRemoveToken->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
aRemoveToken->setIcon(QIcon("theme:icons/decrement.svg"));
|
||||
connect(aRemoveToken, SIGNAL(triggered()), this, SLOT(actRemoveToken()));
|
||||
|
||||
QToolBar *databaseToolBar = new QToolBar;
|
||||
|
|
|
@ -18,9 +18,9 @@ DlgEditUser::DlgEditUser(QWidget *parent, QString email, int gender, QString cou
|
|||
genderLabel = new QLabel(tr("Pronouns:"));
|
||||
genderEdit = new QComboBox();
|
||||
genderLabel->setBuddy(genderEdit);
|
||||
genderEdit->insertItem(0, QIcon(":/resources/genders/unknown.svg"), tr("Neutral"));
|
||||
genderEdit->insertItem(1, QIcon(":/resources/genders/male.svg"), tr("Masculine"));
|
||||
genderEdit->insertItem(2, QIcon(":/resources/genders/female.svg"), tr("Feminine"));
|
||||
genderEdit->insertItem(0, QIcon("theme:genders/unknown.svg"), tr("Neutral"));
|
||||
genderEdit->insertItem(1, QIcon("theme:genders/male.svg"), tr("Masculine"));
|
||||
genderEdit->insertItem(2, QIcon("theme:genders/female.svg"), tr("Feminine"));
|
||||
genderEdit->setCurrentIndex(gender + 1);
|
||||
|
||||
countryLabel = new QLabel(tr("Country:"));
|
||||
|
@ -33,7 +33,7 @@ DlgEditUser::DlgEditUser(QWidget *parent, QString email, int gender, QString cou
|
|||
int i = 1;
|
||||
foreach(QString c, countries)
|
||||
{
|
||||
countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c);
|
||||
countryEdit->addItem(QPixmap("theme:countries/" + c.toLower() + ".svg"), c);
|
||||
if (c == country)
|
||||
countryEdit->setCurrentIndex(i);
|
||||
|
||||
|
|
|
@ -46,19 +46,268 @@ DlgRegister::DlgRegister(QWidget *parent)
|
|||
genderLabel = new QLabel(tr("Pronouns:"));
|
||||
genderEdit = new QComboBox();
|
||||
genderLabel->setBuddy(genderEdit);
|
||||
genderEdit->insertItem(0, QIcon(":/resources/genders/unknown.svg"), tr("Neutral"));
|
||||
genderEdit->insertItem(1, QIcon(":/resources/genders/male.svg"), tr("Masculine"));
|
||||
genderEdit->insertItem(2, QIcon(":/resources/genders/female.svg"), tr("Feminine"));
|
||||
genderEdit->insertItem(0, QIcon("theme:genders/unknown.svg"), tr("Neutral"));
|
||||
genderEdit->insertItem(1, QIcon("theme:genders/male.svg"), tr("Masculine"));
|
||||
genderEdit->insertItem(2, QIcon("theme:genders/female.svg"), tr("Feminine"));
|
||||
genderEdit->setCurrentIndex(0);
|
||||
|
||||
countryLabel = new QLabel(tr("Country:"));
|
||||
countryEdit = new QComboBox();
|
||||
countryLabel->setBuddy(countryEdit);
|
||||
countryEdit->insertItem(0, tr("Undefined"));
|
||||
countryEdit->addItem(QPixmap("theme:countries/ad.svg"), "ad");
|
||||
countryEdit->addItem(QIcon("theme:countries/ae.svg"), "ae");
|
||||
countryEdit->addItem(QIcon("theme:countries/af.svg"), "af");
|
||||
countryEdit->addItem(QIcon("theme:countries/ag.svg"), "ag");
|
||||
countryEdit->addItem(QIcon("theme:countries/ai.svg"), "ai");
|
||||
countryEdit->addItem(QIcon("theme:countries/al.svg"), "al");
|
||||
countryEdit->addItem(QIcon("theme:countries/am.svg"), "am");
|
||||
countryEdit->addItem(QIcon("theme:countries/ao.svg"), "ao");
|
||||
countryEdit->addItem(QIcon("theme:countries/aq.svg"), "aq");
|
||||
countryEdit->addItem(QIcon("theme:countries/ar.svg"), "ar");
|
||||
countryEdit->addItem(QIcon("theme:countries/as.svg"), "as");
|
||||
countryEdit->addItem(QIcon("theme:countries/at.svg"), "at");
|
||||
countryEdit->addItem(QIcon("theme:countries/au.svg"), "au");
|
||||
countryEdit->addItem(QIcon("theme:countries/aw.svg"), "aw");
|
||||
countryEdit->addItem(QIcon("theme:countries/ax.svg"), "ax");
|
||||
countryEdit->addItem(QIcon("theme:countries/az.svg"), "az");
|
||||
countryEdit->addItem(QIcon("theme:countries/ba.svg"), "ba");
|
||||
countryEdit->addItem(QIcon("theme:countries/bb.svg"), "bb");
|
||||
countryEdit->addItem(QIcon("theme:countries/bd.svg"), "bd");
|
||||
countryEdit->addItem(QIcon("theme:countries/be.svg"), "be");
|
||||
countryEdit->addItem(QIcon("theme:countries/bf.svg"), "bf");
|
||||
countryEdit->addItem(QIcon("theme:countries/bg.svg"), "bg");
|
||||
countryEdit->addItem(QIcon("theme:countries/bh.svg"), "bh");
|
||||
countryEdit->addItem(QIcon("theme:countries/bi.svg"), "bi");
|
||||
countryEdit->addItem(QIcon("theme:countries/bj.svg"), "bj");
|
||||
countryEdit->addItem(QIcon("theme:countries/bl.svg"), "bl");
|
||||
countryEdit->addItem(QIcon("theme:countries/bm.svg"), "bm");
|
||||
countryEdit->addItem(QIcon("theme:countries/bn.svg"), "bn");
|
||||
countryEdit->addItem(QIcon("theme:countries/bo.svg"), "bo");
|
||||
countryEdit->addItem(QIcon("theme:countries/bq.svg"), "bq");
|
||||
countryEdit->addItem(QIcon("theme:countries/br.svg"), "br");
|
||||
countryEdit->addItem(QIcon("theme:countries/bs.svg"), "bs");
|
||||
countryEdit->addItem(QIcon("theme:countries/bt.svg"), "bt");
|
||||
countryEdit->addItem(QIcon("theme:countries/bv.svg"), "bv");
|
||||
countryEdit->addItem(QIcon("theme:countries/bw.svg"), "bw");
|
||||
countryEdit->addItem(QIcon("theme:countries/by.svg"), "by");
|
||||
countryEdit->addItem(QIcon("theme:countries/bz.svg"), "bz");
|
||||
countryEdit->addItem(QIcon("theme:countries/ca.svg"), "ca");
|
||||
countryEdit->addItem(QIcon("theme:countries/cc.svg"), "cc");
|
||||
countryEdit->addItem(QIcon("theme:countries/cd.svg"), "cd");
|
||||
countryEdit->addItem(QIcon("theme:countries/cf.svg"), "cf");
|
||||
countryEdit->addItem(QIcon("theme:countries/cg.svg"), "cg");
|
||||
countryEdit->addItem(QIcon("theme:countries/ch.svg"), "ch");
|
||||
countryEdit->addItem(QIcon("theme:countries/ci.svg"), "ci");
|
||||
countryEdit->addItem(QIcon("theme:countries/ck.svg"), "ck");
|
||||
countryEdit->addItem(QIcon("theme:countries/cl.svg"), "cl");
|
||||
countryEdit->addItem(QIcon("theme:countries/cm.svg"), "cm");
|
||||
countryEdit->addItem(QIcon("theme:countries/cn.svg"), "cn");
|
||||
countryEdit->addItem(QIcon("theme:countries/co.svg"), "co");
|
||||
countryEdit->addItem(QIcon("theme:countries/cr.svg"), "cr");
|
||||
countryEdit->addItem(QIcon("theme:countries/cu.svg"), "cu");
|
||||
countryEdit->addItem(QIcon("theme:countries/cv.svg"), "cv");
|
||||
countryEdit->addItem(QIcon("theme:countries/cw.svg"), "cw");
|
||||
countryEdit->addItem(QIcon("theme:countries/cx.svg"), "cx");
|
||||
countryEdit->addItem(QIcon("theme:countries/cy.svg"), "cy");
|
||||
countryEdit->addItem(QIcon("theme:countries/cz.svg"), "cz");
|
||||
countryEdit->addItem(QIcon("theme:countries/de.svg"), "de");
|
||||
countryEdit->addItem(QIcon("theme:countries/dj.svg"), "dj");
|
||||
countryEdit->addItem(QIcon("theme:countries/dk.svg"), "dk");
|
||||
countryEdit->addItem(QIcon("theme:countries/dm.svg"), "dm");
|
||||
countryEdit->addItem(QIcon("theme:countries/do.svg"), "do");
|
||||
countryEdit->addItem(QIcon("theme:countries/dz.svg"), "dz");
|
||||
countryEdit->addItem(QIcon("theme:countries/ec.svg"), "ec");
|
||||
countryEdit->addItem(QIcon("theme:countries/ee.svg"), "ee");
|
||||
countryEdit->addItem(QIcon("theme:countries/eg.svg"), "eg");
|
||||
countryEdit->addItem(QIcon("theme:countries/eh.svg"), "eh");
|
||||
countryEdit->addItem(QIcon("theme:countries/er.svg"), "er");
|
||||
countryEdit->addItem(QIcon("theme:countries/es.svg"), "es");
|
||||
countryEdit->addItem(QIcon("theme:countries/et.svg"), "et");
|
||||
countryEdit->addItem(QIcon("theme:countries/fi.svg"), "fi");
|
||||
countryEdit->addItem(QIcon("theme:countries/fj.svg"), "fj");
|
||||
countryEdit->addItem(QIcon("theme:countries/fk.svg"), "fk");
|
||||
countryEdit->addItem(QIcon("theme:countries/fm.svg"), "fm");
|
||||
countryEdit->addItem(QIcon("theme:countries/fo.svg"), "fo");
|
||||
countryEdit->addItem(QIcon("theme:countries/fr.svg"), "fr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ga.svg"), "ga");
|
||||
countryEdit->addItem(QIcon("theme:countries/gb.svg"), "gb");
|
||||
countryEdit->addItem(QIcon("theme:countries/gd.svg"), "gd");
|
||||
countryEdit->addItem(QIcon("theme:countries/ge.svg"), "ge");
|
||||
countryEdit->addItem(QIcon("theme:countries/gf.svg"), "gf");
|
||||
countryEdit->addItem(QIcon("theme:countries/gg.svg"), "gg");
|
||||
countryEdit->addItem(QIcon("theme:countries/gh.svg"), "gh");
|
||||
countryEdit->addItem(QIcon("theme:countries/gi.svg"), "gi");
|
||||
countryEdit->addItem(QIcon("theme:countries/gl.svg"), "gl");
|
||||
countryEdit->addItem(QIcon("theme:countries/gm.svg"), "gm");
|
||||
countryEdit->addItem(QIcon("theme:countries/gn.svg"), "gn");
|
||||
countryEdit->addItem(QIcon("theme:countries/gp.svg"), "gp");
|
||||
countryEdit->addItem(QIcon("theme:countries/gq.svg"), "gq");
|
||||
countryEdit->addItem(QIcon("theme:countries/gr.svg"), "gr");
|
||||
countryEdit->addItem(QIcon("theme:countries/gs.svg"), "gs");
|
||||
countryEdit->addItem(QIcon("theme:countries/gt.svg"), "gt");
|
||||
countryEdit->addItem(QIcon("theme:countries/gu.svg"), "gu");
|
||||
countryEdit->addItem(QIcon("theme:countries/gw.svg"), "gw");
|
||||
countryEdit->addItem(QIcon("theme:countries/gy.svg"), "gy");
|
||||
countryEdit->addItem(QIcon("theme:countries/hk.svg"), "hk");
|
||||
countryEdit->addItem(QIcon("theme:countries/hm.svg"), "hm");
|
||||
countryEdit->addItem(QIcon("theme:countries/hn.svg"), "hn");
|
||||
countryEdit->addItem(QIcon("theme:countries/hr.svg"), "hr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ht.svg"), "ht");
|
||||
countryEdit->addItem(QIcon("theme:countries/hu.svg"), "hu");
|
||||
countryEdit->addItem(QIcon("theme:countries/id.svg"), "id");
|
||||
countryEdit->addItem(QIcon("theme:countries/ie.svg"), "ie");
|
||||
countryEdit->addItem(QIcon("theme:countries/il.svg"), "il");
|
||||
countryEdit->addItem(QIcon("theme:countries/im.svg"), "im");
|
||||
countryEdit->addItem(QIcon("theme:countries/in.svg"), "in");
|
||||
countryEdit->addItem(QIcon("theme:countries/io.svg"), "io");
|
||||
countryEdit->addItem(QIcon("theme:countries/iq.svg"), "iq");
|
||||
countryEdit->addItem(QIcon("theme:countries/ir.svg"), "ir");
|
||||
countryEdit->addItem(QIcon("theme:countries/is.svg"), "is");
|
||||
countryEdit->addItem(QIcon("theme:countries/it.svg"), "it");
|
||||
countryEdit->addItem(QIcon("theme:countries/je.svg"), "je");
|
||||
countryEdit->addItem(QIcon("theme:countries/jm.svg"), "jm");
|
||||
countryEdit->addItem(QIcon("theme:countries/jo.svg"), "jo");
|
||||
countryEdit->addItem(QIcon("theme:countries/jp.svg"), "jp");
|
||||
countryEdit->addItem(QIcon("theme:countries/ke.svg"), "ke");
|
||||
countryEdit->addItem(QIcon("theme:countries/kg.svg"), "kg");
|
||||
countryEdit->addItem(QIcon("theme:countries/kh.svg"), "kh");
|
||||
countryEdit->addItem(QIcon("theme:countries/ki.svg"), "ki");
|
||||
countryEdit->addItem(QIcon("theme:countries/km.svg"), "km");
|
||||
countryEdit->addItem(QIcon("theme:countries/kn.svg"), "kn");
|
||||
countryEdit->addItem(QIcon("theme:countries/kp.svg"), "kp");
|
||||
countryEdit->addItem(QIcon("theme:countries/kr.svg"), "kr");
|
||||
countryEdit->addItem(QIcon("theme:countries/kw.svg"), "kw");
|
||||
countryEdit->addItem(QIcon("theme:countries/ky.svg"), "ky");
|
||||
countryEdit->addItem(QIcon("theme:countries/kz.svg"), "kz");
|
||||
countryEdit->addItem(QIcon("theme:countries/la.svg"), "la");
|
||||
countryEdit->addItem(QIcon("theme:countries/lb.svg"), "lb");
|
||||
countryEdit->addItem(QIcon("theme:countries/lc.svg"), "lc");
|
||||
countryEdit->addItem(QIcon("theme:countries/li.svg"), "li");
|
||||
countryEdit->addItem(QIcon("theme:countries/lk.svg"), "lk");
|
||||
countryEdit->addItem(QIcon("theme:countries/lr.svg"), "lr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ls.svg"), "ls");
|
||||
countryEdit->addItem(QIcon("theme:countries/lt.svg"), "lt");
|
||||
countryEdit->addItem(QIcon("theme:countries/lu.svg"), "lu");
|
||||
countryEdit->addItem(QIcon("theme:countries/lv.svg"), "lv");
|
||||
countryEdit->addItem(QIcon("theme:countries/ly.svg"), "ly");
|
||||
countryEdit->addItem(QIcon("theme:countries/ma.svg"), "ma");
|
||||
countryEdit->addItem(QIcon("theme:countries/mc.svg"), "mc");
|
||||
countryEdit->addItem(QIcon("theme:countries/md.svg"), "md");
|
||||
countryEdit->addItem(QIcon("theme:countries/me.svg"), "me");
|
||||
countryEdit->addItem(QIcon("theme:countries/mf.svg"), "mf");
|
||||
countryEdit->addItem(QIcon("theme:countries/mg.svg"), "mg");
|
||||
countryEdit->addItem(QIcon("theme:countries/mh.svg"), "mh");
|
||||
countryEdit->addItem(QIcon("theme:countries/mk.svg"), "mk");
|
||||
countryEdit->addItem(QIcon("theme:countries/ml.svg"), "ml");
|
||||
countryEdit->addItem(QIcon("theme:countries/mm.svg"), "mm");
|
||||
countryEdit->addItem(QIcon("theme:countries/mn.svg"), "mn");
|
||||
countryEdit->addItem(QIcon("theme:countries/mo.svg"), "mo");
|
||||
countryEdit->addItem(QIcon("theme:countries/mp.svg"), "mp");
|
||||
countryEdit->addItem(QIcon("theme:countries/mq.svg"), "mq");
|
||||
countryEdit->addItem(QIcon("theme:countries/mr.svg"), "mr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ms.svg"), "ms");
|
||||
countryEdit->addItem(QIcon("theme:countries/mt.svg"), "mt");
|
||||
countryEdit->addItem(QIcon("theme:countries/mu.svg"), "mu");
|
||||
countryEdit->addItem(QIcon("theme:countries/mv.svg"), "mv");
|
||||
countryEdit->addItem(QIcon("theme:countries/mw.svg"), "mw");
|
||||
countryEdit->addItem(QIcon("theme:countries/mx.svg"), "mx");
|
||||
countryEdit->addItem(QIcon("theme:countries/my.svg"), "my");
|
||||
countryEdit->addItem(QIcon("theme:countries/mz.svg"), "mz");
|
||||
countryEdit->addItem(QIcon("theme:countries/na.svg"), "na");
|
||||
countryEdit->addItem(QIcon("theme:countries/nc.svg"), "nc");
|
||||
countryEdit->addItem(QIcon("theme:countries/ne.svg"), "ne");
|
||||
countryEdit->addItem(QIcon("theme:countries/nf.svg"), "nf");
|
||||
countryEdit->addItem(QIcon("theme:countries/ng.svg"), "ng");
|
||||
countryEdit->addItem(QIcon("theme:countries/ni.svg"), "ni");
|
||||
countryEdit->addItem(QIcon("theme:countries/nl.svg"), "nl");
|
||||
countryEdit->addItem(QIcon("theme:countries/no.svg"), "no");
|
||||
countryEdit->addItem(QIcon("theme:countries/np.svg"), "np");
|
||||
countryEdit->addItem(QIcon("theme:countries/nr.svg"), "nr");
|
||||
countryEdit->addItem(QIcon("theme:countries/nu.svg"), "nu");
|
||||
countryEdit->addItem(QIcon("theme:countries/nz.svg"), "nz");
|
||||
countryEdit->addItem(QIcon("theme:countries/om.svg"), "om");
|
||||
countryEdit->addItem(QIcon("theme:countries/pa.svg"), "pa");
|
||||
countryEdit->addItem(QIcon("theme:countries/pe.svg"), "pe");
|
||||
countryEdit->addItem(QIcon("theme:countries/pf.svg"), "pf");
|
||||
countryEdit->addItem(QIcon("theme:countries/pg.svg"), "pg");
|
||||
countryEdit->addItem(QIcon("theme:countries/ph.svg"), "ph");
|
||||
countryEdit->addItem(QIcon("theme:countries/pk.svg"), "pk");
|
||||
countryEdit->addItem(QIcon("theme:countries/pl.svg"), "pl");
|
||||
countryEdit->addItem(QIcon("theme:countries/pm.svg"), "pm");
|
||||
countryEdit->addItem(QIcon("theme:countries/pn.svg"), "pn");
|
||||
countryEdit->addItem(QIcon("theme:countries/pr.svg"), "pr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ps.svg"), "ps");
|
||||
countryEdit->addItem(QIcon("theme:countries/pt.svg"), "pt");
|
||||
countryEdit->addItem(QIcon("theme:countries/pw.svg"), "pw");
|
||||
countryEdit->addItem(QIcon("theme:countries/py.svg"), "py");
|
||||
countryEdit->addItem(QIcon("theme:countries/qa.svg"), "qa");
|
||||
countryEdit->addItem(QIcon("theme:countries/re.svg"), "re");
|
||||
countryEdit->addItem(QIcon("theme:countries/ro.svg"), "ro");
|
||||
countryEdit->addItem(QIcon("theme:countries/rs.svg"), "rs");
|
||||
countryEdit->addItem(QIcon("theme:countries/ru.svg"), "ru");
|
||||
countryEdit->addItem(QIcon("theme:countries/rw.svg"), "rw");
|
||||
countryEdit->addItem(QIcon("theme:countries/sa.svg"), "sa");
|
||||
countryEdit->addItem(QIcon("theme:countries/sb.svg"), "sb");
|
||||
countryEdit->addItem(QIcon("theme:countries/sc.svg"), "sc");
|
||||
countryEdit->addItem(QIcon("theme:countries/sd.svg"), "sd");
|
||||
countryEdit->addItem(QIcon("theme:countries/se.svg"), "se");
|
||||
countryEdit->addItem(QIcon("theme:countries/sg.svg"), "sg");
|
||||
countryEdit->addItem(QIcon("theme:countries/sh.svg"), "sh");
|
||||
countryEdit->addItem(QIcon("theme:countries/si.svg"), "si");
|
||||
countryEdit->addItem(QIcon("theme:countries/sj.svg"), "sj");
|
||||
countryEdit->addItem(QIcon("theme:countries/sk.svg"), "sk");
|
||||
countryEdit->addItem(QIcon("theme:countries/sl.svg"), "sl");
|
||||
countryEdit->addItem(QIcon("theme:countries/sm.svg"), "sm");
|
||||
countryEdit->addItem(QIcon("theme:countries/sn.svg"), "sn");
|
||||
countryEdit->addItem(QIcon("theme:countries/so.svg"), "so");
|
||||
countryEdit->addItem(QIcon("theme:countries/sr.svg"), "sr");
|
||||
countryEdit->addItem(QIcon("theme:countries/ss.svg"), "ss");
|
||||
countryEdit->addItem(QIcon("theme:countries/st.svg"), "st");
|
||||
countryEdit->addItem(QIcon("theme:countries/sv.svg"), "sv");
|
||||
countryEdit->addItem(QIcon("theme:countries/sx.svg"), "sx");
|
||||
countryEdit->addItem(QIcon("theme:countries/sy.svg"), "sy");
|
||||
countryEdit->addItem(QIcon("theme:countries/sz.svg"), "sz");
|
||||
countryEdit->addItem(QIcon("theme:countries/tc.svg"), "tc");
|
||||
countryEdit->addItem(QIcon("theme:countries/td.svg"), "td");
|
||||
countryEdit->addItem(QIcon("theme:countries/tf.svg"), "tf");
|
||||
countryEdit->addItem(QIcon("theme:countries/tg.svg"), "tg");
|
||||
countryEdit->addItem(QIcon("theme:countries/th.svg"), "th");
|
||||
countryEdit->addItem(QIcon("theme:countries/tj.svg"), "tj");
|
||||
countryEdit->addItem(QIcon("theme:countries/tk.svg"), "tk");
|
||||
countryEdit->addItem(QIcon("theme:countries/tl.svg"), "tl");
|
||||
countryEdit->addItem(QIcon("theme:countries/tm.svg"), "tm");
|
||||
countryEdit->addItem(QIcon("theme:countries/tn.svg"), "tn");
|
||||
countryEdit->addItem(QIcon("theme:countries/to.svg"), "to");
|
||||
countryEdit->addItem(QIcon("theme:countries/tr.svg"), "tr");
|
||||
countryEdit->addItem(QIcon("theme:countries/tt.svg"), "tt");
|
||||
countryEdit->addItem(QIcon("theme:countries/tv.svg"), "tv");
|
||||
countryEdit->addItem(QIcon("theme:countries/tw.svg"), "tw");
|
||||
countryEdit->addItem(QIcon("theme:countries/tz.svg"), "tz");
|
||||
countryEdit->addItem(QIcon("theme:countries/ua.svg"), "ua");
|
||||
countryEdit->addItem(QIcon("theme:countries/ug.svg"), "ug");
|
||||
countryEdit->addItem(QIcon("theme:countries/um.svg"), "um");
|
||||
countryEdit->addItem(QIcon("theme:countries/us.svg"), "us");
|
||||
countryEdit->addItem(QIcon("theme:countries/uy.svg"), "uy");
|
||||
countryEdit->addItem(QIcon("theme:countries/uz.svg"), "uz");
|
||||
countryEdit->addItem(QIcon("theme:countries/va.svg"), "va");
|
||||
countryEdit->addItem(QIcon("theme:countries/vc.svg"), "vc");
|
||||
countryEdit->addItem(QIcon("theme:countries/ve.svg"), "ve");
|
||||
countryEdit->addItem(QIcon("theme:countries/vg.svg"), "vg");
|
||||
countryEdit->addItem(QIcon("theme:countries/vi.svg"), "vi");
|
||||
countryEdit->addItem(QIcon("theme:countries/vn.svg"), "vn");
|
||||
countryEdit->addItem(QIcon("theme:countries/vu.svg"), "vu");
|
||||
countryEdit->addItem(QIcon("theme:countries/wf.svg"), "wf");
|
||||
countryEdit->addItem(QIcon("theme:countries/ws.svg"), "ws");
|
||||
countryEdit->addItem(QIcon("theme:countries/ye.svg"), "ye");
|
||||
countryEdit->addItem(QIcon("theme:countries/yt.svg"), "yt");
|
||||
countryEdit->addItem(QIcon("theme:countries/za.svg"), "za");
|
||||
countryEdit->addItem(QIcon("theme:countries/zm.svg"), "zm");
|
||||
countryEdit->addItem(QIcon("theme:countries/zw.svg"), "zw");
|
||||
countryEdit->setCurrentIndex(0);
|
||||
QStringList countries = settingsCache->getCountries();
|
||||
foreach(QString c, countries)
|
||||
countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c);
|
||||
countryEdit->addItem(QPixmap("theme:countries/" + c.toLower() + ".svg"), c);
|
||||
|
||||
realnameLabel = new QLabel(tr("Real name:"));
|
||||
realnameEdit = new QLineEdit();
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "dlg_settings.h"
|
||||
#include "main.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "priceupdater.h"
|
||||
#include "soundengine.h"
|
||||
#include "sequenceEdit/shortcutstab.h"
|
||||
|
@ -254,67 +255,23 @@ void GeneralSettingsPage::setEnabledStatus(bool status)
|
|||
|
||||
AppearanceSettingsPage::AppearanceSettingsPage()
|
||||
{
|
||||
QIcon deleteIcon(":/resources/icon_delete.svg");
|
||||
|
||||
handBgEdit = new QLineEdit(settingsCache->getHandBgPath());
|
||||
handBgEdit->setReadOnly(true);
|
||||
QPushButton *handBgClearButton = new QPushButton(deleteIcon, QString());
|
||||
connect(handBgClearButton, SIGNAL(clicked()), this, SLOT(handBgClearButtonClicked()));
|
||||
QPushButton *handBgButton = new QPushButton("...");
|
||||
connect(handBgButton, SIGNAL(clicked()), this, SLOT(handBgButtonClicked()));
|
||||
|
||||
stackBgEdit = new QLineEdit(settingsCache->getStackBgPath());
|
||||
stackBgEdit->setReadOnly(true);
|
||||
QPushButton *stackBgClearButton = new QPushButton(deleteIcon, QString());
|
||||
connect(stackBgClearButton, SIGNAL(clicked()), this, SLOT(stackBgClearButtonClicked()));
|
||||
QPushButton *stackBgButton = new QPushButton("...");
|
||||
connect(stackBgButton, SIGNAL(clicked()), this, SLOT(stackBgButtonClicked()));
|
||||
QString themeName = settingsCache->getThemeName();
|
||||
|
||||
tableBgEdit = new QLineEdit(settingsCache->getTableBgPath());
|
||||
tableBgEdit->setReadOnly(true);
|
||||
QPushButton *tableBgClearButton = new QPushButton(deleteIcon, QString());
|
||||
connect(tableBgClearButton, SIGNAL(clicked()), this, SLOT(tableBgClearButtonClicked()));
|
||||
QPushButton *tableBgButton = new QPushButton("...");
|
||||
connect(tableBgButton, SIGNAL(clicked()), this, SLOT(tableBgButtonClicked()));
|
||||
|
||||
playerAreaBgEdit = new QLineEdit(settingsCache->getPlayerBgPath());
|
||||
playerAreaBgEdit->setReadOnly(true);
|
||||
QPushButton *playerAreaBgClearButton = new QPushButton(deleteIcon, QString());
|
||||
connect(playerAreaBgClearButton, SIGNAL(clicked()), this, SLOT(playerAreaBgClearButtonClicked()));
|
||||
QPushButton *playerAreaBgButton = new QPushButton("...");
|
||||
connect(playerAreaBgButton, SIGNAL(clicked()), this, SLOT(playerAreaBgButtonClicked()));
|
||||
|
||||
cardBackPicturePathEdit = new QLineEdit(settingsCache->getCardBackPicturePath());
|
||||
cardBackPicturePathEdit->setReadOnly(true);
|
||||
QPushButton *cardBackPicturePathClearButton = new QPushButton(deleteIcon, QString());
|
||||
connect(cardBackPicturePathClearButton, SIGNAL(clicked()), this, SLOT(cardBackPicturePathClearButtonClicked()));
|
||||
QPushButton *cardBackPicturePathButton = new QPushButton("...");
|
||||
connect(cardBackPicturePathButton, SIGNAL(clicked()), this, SLOT(cardBackPicturePathButtonClicked()));
|
||||
|
||||
QGridLayout *zoneBgGrid = new QGridLayout;
|
||||
zoneBgGrid->addWidget(&handBgLabel, 0, 0);
|
||||
zoneBgGrid->addWidget(handBgEdit, 0, 1);
|
||||
zoneBgGrid->addWidget(handBgClearButton, 0, 2);
|
||||
zoneBgGrid->addWidget(handBgButton, 0, 3);
|
||||
zoneBgGrid->addWidget(&stackBgLabel, 1, 0);
|
||||
zoneBgGrid->addWidget(stackBgEdit, 1, 1);
|
||||
zoneBgGrid->addWidget(stackBgClearButton, 1, 2);
|
||||
zoneBgGrid->addWidget(stackBgButton, 1, 3);
|
||||
zoneBgGrid->addWidget(&tableBgLabel, 2, 0);
|
||||
zoneBgGrid->addWidget(tableBgEdit, 2, 1);
|
||||
zoneBgGrid->addWidget(tableBgClearButton, 2, 2);
|
||||
zoneBgGrid->addWidget(tableBgButton, 2, 3);
|
||||
zoneBgGrid->addWidget(&playerAreaBgLabel, 3, 0);
|
||||
zoneBgGrid->addWidget(playerAreaBgEdit, 3, 1);
|
||||
zoneBgGrid->addWidget(playerAreaBgClearButton, 3, 2);
|
||||
zoneBgGrid->addWidget(playerAreaBgButton, 3, 3);
|
||||
zoneBgGrid->addWidget(&cardBackPicturePathLabel, 4, 0);
|
||||
zoneBgGrid->addWidget(cardBackPicturePathEdit, 4, 1);
|
||||
zoneBgGrid->addWidget(cardBackPicturePathClearButton, 4, 2);
|
||||
zoneBgGrid->addWidget(cardBackPicturePathButton, 4, 3);
|
||||
QStringList themeDirs = themeManager->getAvailableThemes().keys();
|
||||
for (int i = 0; i < themeDirs.size(); i++) {
|
||||
themeBox.addItem(themeDirs[i]);
|
||||
if (themeDirs[i] == themeName)
|
||||
themeBox.setCurrentIndex(i);
|
||||
}
|
||||
|
||||
zoneBgGroupBox = new QGroupBox;
|
||||
zoneBgGroupBox->setLayout(zoneBgGrid);
|
||||
connect(&themeBox, SIGNAL(currentIndexChanged(int)), this, SLOT(themeBoxChanged(int)));
|
||||
|
||||
QGridLayout *themeGrid = new QGridLayout;
|
||||
themeGrid->addWidget(&themeLabel, 0, 0);
|
||||
themeGrid->addWidget(&themeBox, 0, 1);
|
||||
|
||||
themeGroupBox = new QGroupBox;
|
||||
themeGroupBox->setLayout(themeGrid);
|
||||
|
||||
displayCardNamesCheckBox.setChecked(settingsCache->getDisplayCardNames());
|
||||
connect(&displayCardNamesCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setDisplayCardNames(int)));
|
||||
|
@ -359,7 +316,7 @@ AppearanceSettingsPage::AppearanceSettingsPage()
|
|||
tableGroupBox->setLayout(tableGrid);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(zoneBgGroupBox);
|
||||
mainLayout->addWidget(themeGroupBox);
|
||||
mainLayout->addWidget(cardsGroupBox);
|
||||
mainLayout->addWidget(handGroupBox);
|
||||
mainLayout->addWidget(tableGroupBox);
|
||||
|
@ -367,14 +324,17 @@ AppearanceSettingsPage::AppearanceSettingsPage()
|
|||
setLayout(mainLayout);
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::themeBoxChanged(int index)
|
||||
{
|
||||
QStringList themeDirs = themeManager->getAvailableThemes().keys();
|
||||
if(index >= 0 && index < themeDirs.count())
|
||||
settingsCache->setThemeName(themeDirs.at(index));
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::retranslateUi()
|
||||
{
|
||||
zoneBgGroupBox->setTitle(tr("Zone background pictures"));
|
||||
handBgLabel.setText(tr("Hand background:"));
|
||||
stackBgLabel.setText(tr("Stack background:"));
|
||||
tableBgLabel.setText(tr("Table background:"));
|
||||
playerAreaBgLabel.setText(tr("Player info background:"));
|
||||
cardBackPicturePathLabel.setText(tr("Card back:"));
|
||||
themeGroupBox->setTitle(tr("Theme settings"));
|
||||
themeLabel.setText(tr("Current theme:"));
|
||||
|
||||
cardsGroupBox->setTitle(tr("Card rendering"));
|
||||
displayCardNamesCheckBox.setText(tr("Display card names on cards having a picture"));
|
||||
|
@ -389,86 +349,6 @@ void AppearanceSettingsPage::retranslateUi()
|
|||
minPlayersForMultiColumnLayoutLabel.setText(tr("Minimum player count for multi-column layout:"));
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::handBgClearButtonClicked()
|
||||
{
|
||||
handBgEdit->setText(QString());
|
||||
settingsCache->setHandBgPath(QString());
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::handBgButtonClicked()
|
||||
{
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("Choose path"));
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
handBgEdit->setText(path);
|
||||
settingsCache->setHandBgPath(path);
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::stackBgClearButtonClicked()
|
||||
{
|
||||
stackBgEdit->setText(QString());
|
||||
settingsCache->setStackBgPath(QString());
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::stackBgButtonClicked()
|
||||
{
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("Choose path"));
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
stackBgEdit->setText(path);
|
||||
settingsCache->setStackBgPath(path);
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::tableBgClearButtonClicked()
|
||||
{
|
||||
tableBgEdit->setText(QString());
|
||||
settingsCache->setTableBgPath(QString());
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::tableBgButtonClicked()
|
||||
{
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("Choose path"));
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
tableBgEdit->setText(path);
|
||||
settingsCache->setTableBgPath(path);
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::playerAreaBgClearButtonClicked()
|
||||
{
|
||||
playerAreaBgEdit->setText(QString());
|
||||
settingsCache->setPlayerBgPath(QString());
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::playerAreaBgButtonClicked()
|
||||
{
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("Choose path"));
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
playerAreaBgEdit->setText(path);
|
||||
settingsCache->setPlayerBgPath(path);
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::cardBackPicturePathClearButtonClicked()
|
||||
{
|
||||
cardBackPicturePathEdit->setText(QString());
|
||||
settingsCache->setCardBackPicturePath(QString());
|
||||
}
|
||||
|
||||
void AppearanceSettingsPage::cardBackPicturePathButtonClicked()
|
||||
{
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("Choose path"));
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
cardBackPicturePathEdit->setText(path);
|
||||
settingsCache->setCardBackPicturePath(path);
|
||||
}
|
||||
|
||||
UserInterfaceSettingsPage::UserInterfaceSettingsPage()
|
||||
{
|
||||
notificationsEnabledCheckBox.setChecked(settingsCache->getNotificationsEnabled());
|
||||
|
@ -638,10 +518,10 @@ MessagesSettingsPage::MessagesSettingsPage()
|
|||
messageList->addItem(settingsCache->messages().getMessageAt(i));
|
||||
|
||||
aAdd = new QAction(this);
|
||||
aAdd->setIcon(QIcon(":/resources/increment.svg"));
|
||||
aAdd->setIcon(QIcon("theme:icons/increment.svg"));
|
||||
connect(aAdd, SIGNAL(triggered()), this, SLOT(actAdd()));
|
||||
aRemove = new QAction(this);
|
||||
aRemove->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
aRemove->setIcon(QIcon("theme:icons/decrement.svg"));
|
||||
connect(aRemove, SIGNAL(triggered()), this, SLOT(actRemove()));
|
||||
|
||||
QToolBar *messageToolBar = new QToolBar;
|
||||
|
@ -751,7 +631,7 @@ void MessagesSettingsPage::retranslateUi()
|
|||
|
||||
SoundSettingsPage::SoundSettingsPage()
|
||||
{
|
||||
QIcon deleteIcon(":/resources/icon_delete.svg");
|
||||
QIcon deleteIcon("theme:icons/delete.svg");
|
||||
|
||||
soundEnabledCheckBox.setChecked(settingsCache->getSoundEnabled());
|
||||
connect(&soundEnabledCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setSoundEnabled(int)));
|
||||
|
@ -888,37 +768,37 @@ void DlgSettings::createIcons()
|
|||
generalButton = new QListWidgetItem(contentsWidget);
|
||||
generalButton->setTextAlignment(Qt::AlignHCenter);
|
||||
generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
generalButton->setIcon(QIcon(":/resources/icon_config_general.svg"));
|
||||
generalButton->setIcon(QIcon("theme:config/general.svg"));
|
||||
|
||||
appearanceButton = new QListWidgetItem(contentsWidget);
|
||||
appearanceButton->setTextAlignment(Qt::AlignHCenter);
|
||||
appearanceButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
appearanceButton->setIcon(QIcon(":/resources/icon_config_appearance.svg"));
|
||||
appearanceButton->setIcon(QIcon("theme:config/appearance.svg"));
|
||||
|
||||
userInterfaceButton = new QListWidgetItem(contentsWidget);
|
||||
userInterfaceButton->setTextAlignment(Qt::AlignHCenter);
|
||||
userInterfaceButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
userInterfaceButton->setIcon(QIcon(":/resources/icon_config_interface.svg"));
|
||||
userInterfaceButton->setIcon(QIcon("theme:config/interface.svg"));
|
||||
|
||||
deckEditorButton = new QListWidgetItem(contentsWidget);
|
||||
deckEditorButton->setTextAlignment(Qt::AlignHCenter);
|
||||
deckEditorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
deckEditorButton->setIcon(QIcon(":/resources/icon_config_deckeditor.svg"));
|
||||
deckEditorButton->setIcon(QIcon("theme:config/deckeditor.svg"));
|
||||
|
||||
messagesButton = new QListWidgetItem(contentsWidget);
|
||||
messagesButton->setTextAlignment(Qt::AlignHCenter);
|
||||
messagesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
messagesButton->setIcon(QIcon(":/resources/icon_config_messages.svg"));
|
||||
messagesButton->setIcon(QIcon("theme:config/messages.svg"));
|
||||
|
||||
soundButton = new QListWidgetItem(contentsWidget);
|
||||
soundButton->setTextAlignment(Qt::AlignHCenter);
|
||||
soundButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
soundButton->setIcon(QIcon(":/resources/icon_config_sound.svg"));
|
||||
soundButton->setIcon(QIcon("theme:config/sound.svg"));
|
||||
|
||||
shortcutsButton = new QListWidgetItem(contentsWidget);
|
||||
shortcutsButton->setTextAlignment(Qt::AlignHCenter);
|
||||
shortcutsButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
shortcutsButton->setIcon(QIcon(":/resources/icon_config_shorcuts.svg"));
|
||||
shortcutsButton->setIcon(QIcon("theme:config/shorcuts.svg"));
|
||||
|
||||
connect(contentsWidget, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem *)));
|
||||
}
|
||||
|
|
|
@ -75,40 +75,17 @@ private:
|
|||
class AppearanceSettingsPage : public AbstractSettingsPage {
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void handBgClearButtonClicked();
|
||||
void handBgButtonClicked();
|
||||
void stackBgClearButtonClicked();
|
||||
void stackBgButtonClicked();
|
||||
void tableBgClearButtonClicked();
|
||||
void tableBgButtonClicked();
|
||||
void playerAreaBgClearButtonClicked();
|
||||
void playerAreaBgButtonClicked();
|
||||
void cardBackPicturePathClearButtonClicked();
|
||||
void cardBackPicturePathButtonClicked();
|
||||
signals:
|
||||
void handBgChanged(const QString &path);
|
||||
void stackBgChanged(const QString &path);
|
||||
void tableBgChanged(const QString &path);
|
||||
void playerAreaBgChanged(const QString &path);
|
||||
void cardBackPicturePathChanged(const QString &path);
|
||||
void themeBoxChanged(int index);
|
||||
private:
|
||||
QLabel handBgLabel;
|
||||
QLabel stackBgLabel;
|
||||
QLabel tableBgLabel;
|
||||
QLabel playerAreaBgLabel;
|
||||
QLabel cardBackPicturePathLabel;
|
||||
QLabel themeLabel;
|
||||
QComboBox themeBox;
|
||||
QLabel minPlayersForMultiColumnLayoutLabel;
|
||||
QLineEdit *handBgEdit;
|
||||
QLineEdit *stackBgEdit;
|
||||
QLineEdit *tableBgEdit;
|
||||
QLineEdit *playerAreaBgEdit;
|
||||
QLineEdit *cardBackPicturePathEdit;
|
||||
QCheckBox displayCardNamesCheckBox;
|
||||
QCheckBox cardScalingCheckBox;
|
||||
QCheckBox horizontalHandCheckBox;
|
||||
QCheckBox leftJustifiedHandCheckBox;
|
||||
QCheckBox invertVerticalCoordinateCheckBox;
|
||||
QGroupBox *zoneBgGroupBox;
|
||||
QGroupBox *themeGroupBox;
|
||||
QGroupBox *cardsGroupBox;
|
||||
QGroupBox *handGroupBox;
|
||||
QGroupBox *tableGroupBox;
|
||||
|
|
|
@ -26,7 +26,7 @@ FilterBuilder::FilterBuilder(QWidget *parent)
|
|||
QVariant(i)
|
||||
);
|
||||
|
||||
QPushButton *ok = new QPushButton(QIcon(":/resources/increment.svg"), QString());
|
||||
QPushButton *ok = new QPushButton(QIcon("theme:icons/increment.svg"), QString());
|
||||
ok->setObjectName("ok");
|
||||
ok->setMaximumSize(20, 20);
|
||||
|
||||
|
|
|
@ -60,10 +60,10 @@ GameSelector::GameSelector(AbstractClient *_client, const TabSupervisor *_tabSup
|
|||
gameListView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
||||
#endif
|
||||
filterButton = new QPushButton;
|
||||
filterButton->setIcon(QIcon(":/resources/icon_search_black.svg"));
|
||||
filterButton->setIcon(QIcon("theme:icons/search.svg"));
|
||||
connect(filterButton, SIGNAL(clicked()), this, SLOT(actSetFilter()));
|
||||
clearFilterButton = new QPushButton;
|
||||
clearFilterButton->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
clearFilterButton->setIcon(QIcon("theme:icons/clearsearch.svg"));
|
||||
clearFilterButton->setEnabled(true);
|
||||
connect(clearFilterButton, SIGNAL(clicked()), this, SLOT(actClearFilter()));
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ void HandCounter::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*op
|
|||
#else
|
||||
if (!QPixmapCache::find("handCounter" + QString::number(translatedSize.width()), cachedPixmap)) {
|
||||
#endif
|
||||
QSvgRenderer svg(QString(":/resources/hand.svg"));
|
||||
QSvgRenderer svg(QString("theme:hand.svg"));
|
||||
cachedPixmap = QPixmap(translatedSize);
|
||||
cachedPixmap.fill(Qt::transparent);
|
||||
QPainter painter(&cachedPixmap);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include <QPainter>
|
||||
#include "handzone.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "player.h"
|
||||
#include "carddragitem.h"
|
||||
#include "carditem.h"
|
||||
|
@ -10,16 +11,13 @@
|
|||
HandZone::HandZone(Player *_p, bool _contentsKnown, int _zoneHeight, QGraphicsItem *parent)
|
||||
: SelectZone(_p, "hand", false, false, _contentsKnown, parent), zoneHeight(_zoneHeight)
|
||||
{
|
||||
connect(settingsCache, SIGNAL(handBgPathChanged()), this, SLOT(updateBgPixmap()));
|
||||
updateBgPixmap();
|
||||
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
|
||||
updateBg();
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
}
|
||||
|
||||
void HandZone::updateBgPixmap()
|
||||
void HandZone::updateBg()
|
||||
{
|
||||
QString bgPath = settingsCache->getHandBgPath();
|
||||
if (!bgPath.isEmpty())
|
||||
bgPixmap.load(bgPath);
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -77,10 +75,7 @@ QRectF HandZone::boundingRect() const
|
|||
|
||||
void HandZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
|
||||
{
|
||||
if (bgPixmap.isNull())
|
||||
painter->fillRect(boundingRect(), QColor(30, 30, 30));
|
||||
else
|
||||
painter->fillRect(boundingRect(), QBrush(bgPixmap));
|
||||
painter->fillRect(boundingRect(), themeManager->getHandBgBrush());
|
||||
}
|
||||
|
||||
void HandZone::reorganizeCards()
|
||||
|
|
|
@ -7,9 +7,8 @@ class HandZone : public SelectZone {
|
|||
Q_OBJECT
|
||||
private:
|
||||
qreal width, zoneHeight;
|
||||
QPixmap bgPixmap;
|
||||
private slots:
|
||||
void updateBgPixmap();
|
||||
void updateBg();
|
||||
public slots:
|
||||
void updateOrientation();
|
||||
public:
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "dlg_settings.h"
|
||||
#include "carddatabase.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "pixmapgenerator.h"
|
||||
#include "rng_sfmt.h"
|
||||
#include "soundengine.h"
|
||||
|
@ -51,7 +52,7 @@ SettingsCache *settingsCache;
|
|||
RNG_Abstract *rng;
|
||||
SoundEngine *soundEngine;
|
||||
QSystemTrayIcon *trayIcon;
|
||||
|
||||
ThemeManager *themeManager;
|
||||
|
||||
const QString translationPrefix = "cockatrice";
|
||||
#ifdef TRANSLATION_PATH
|
||||
|
@ -146,6 +147,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
rng = new RNG_SFMT;
|
||||
settingsCache = new SettingsCache;
|
||||
themeManager = new ThemeManager;
|
||||
db = new CardDatabase;
|
||||
|
||||
qtTranslator = new QTranslator;
|
||||
|
@ -213,13 +215,14 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (settingsValid()) {
|
||||
qDebug("main(): starting main program");
|
||||
|
||||
soundEngine = new SoundEngine;
|
||||
qDebug("main(): SoundEngine constructor finished");
|
||||
|
||||
MainWindow ui;
|
||||
qDebug("main(): MainWindow constructor finished");
|
||||
|
||||
QIcon icon(":/resources/appicon.svg");
|
||||
QIcon icon("theme:cockatrice.svg");
|
||||
ui.setWindowIcon(icon);
|
||||
|
||||
settingsCache->setClientID(generateClientID());
|
||||
|
|
|
@ -16,7 +16,7 @@ QPixmap PhasePixmapGenerator::generatePixmap(int height, QString name)
|
|||
if (pmCache.contains(key))
|
||||
return pmCache.value(key);
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/phases/icon_phase_" + name + ".svg"));
|
||||
QSvgRenderer svg(QString("theme:phases/" + name + ".svg"));
|
||||
|
||||
QPixmap pixmap(height, height);
|
||||
pixmap.fill(Qt::transparent);
|
||||
|
@ -36,13 +36,13 @@ QPixmap CounterPixmapGenerator::generatePixmap(int height, QString name, bool hi
|
|||
if (pmCache.contains(key))
|
||||
return pmCache.value(key);
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/counters/" + name + ".svg"));
|
||||
QSvgRenderer svg(QString("theme:counters/" + name + ".svg"));
|
||||
|
||||
if (!svg.isValid()) {
|
||||
name = "general";
|
||||
if (highlight)
|
||||
name.append("_highlight");
|
||||
svg.load(QString(":/resources/counters/" + name + ".svg"));
|
||||
svg.load(QString("theme:counters/" + name + ".svg"));
|
||||
}
|
||||
|
||||
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
|
||||
|
@ -98,7 +98,7 @@ QPixmap GenderPixmapGenerator::generatePixmap(int height, int _gender)
|
|||
default: genderStr = "unknown";
|
||||
};
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/genders/" + genderStr + ".svg"));
|
||||
QSvgRenderer svg(QString("theme:genders/" + genderStr + ".svg"));
|
||||
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
|
||||
QPixmap pixmap(width, height);
|
||||
pixmap.fill(Qt::transparent);
|
||||
|
@ -119,7 +119,7 @@ QPixmap CountryPixmapGenerator::generatePixmap(int height, const QString &countr
|
|||
if (pmCache.contains(key))
|
||||
return pmCache.value(key);
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/countries/" + countryCode.toLower() + ".svg"));
|
||||
QSvgRenderer svg(QString("theme:countries/" + countryCode.toLower() + ".svg"));
|
||||
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
|
||||
QPixmap pixmap(width, height);
|
||||
pixmap.fill(Qt::transparent);
|
||||
|
@ -154,7 +154,7 @@ QPixmap UserLevelPixmapGenerator::generatePixmap(int height, UserLevelFlags user
|
|||
if (isBuddy)
|
||||
levelString.append("_buddy");
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/userlevels/" + levelString + ".svg"));
|
||||
QSvgRenderer svg(QString("theme:userlevels/" + levelString + ".svg"));
|
||||
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
|
||||
QPixmap pixmap(width, height);
|
||||
pixmap.fill(Qt::transparent);
|
||||
|
@ -175,7 +175,7 @@ QPixmap LockPixmapGenerator::generatePixmap(int height)
|
|||
if (pmCache.contains(key))
|
||||
return pmCache.value(key);
|
||||
|
||||
QSvgRenderer svg(QString(":/resources/lock.svg"));
|
||||
QSvgRenderer svg(QString("theme:icons/lock.svg"));
|
||||
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
|
||||
QPixmap pixmap(width, height);
|
||||
pixmap.fill(Qt::transparent);
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "tab_game.h"
|
||||
#include "gamescene.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "dlg_create_token.h"
|
||||
#include "carddatabase.h"
|
||||
#include "color.h"
|
||||
|
@ -68,25 +69,18 @@ PlayerArea::PlayerArea(QGraphicsItem *parentItem)
|
|||
: QObject(), QGraphicsItem(parentItem)
|
||||
{
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
connect(settingsCache, SIGNAL(playerBgPathChanged()), this, SLOT(updateBgPixmap()));
|
||||
updateBgPixmap();
|
||||
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
|
||||
updateBg();
|
||||
}
|
||||
|
||||
void PlayerArea::updateBgPixmap()
|
||||
void PlayerArea::updateBg()
|
||||
{
|
||||
QString bgPath = settingsCache->getPlayerBgPath();
|
||||
if (bgPath.isEmpty())
|
||||
bgPixmapBrush = QBrush(QColor(200, 200, 200));
|
||||
else {
|
||||
qDebug() << "loading" << bgPath;
|
||||
bgPixmapBrush = QBrush(QPixmap(bgPath));
|
||||
}
|
||||
update();
|
||||
}
|
||||
|
||||
void PlayerArea::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
|
||||
{
|
||||
painter->fillRect(bRect, bgPixmapBrush);
|
||||
painter->fillRect(bRect, themeManager->getPlayerBgBrush());
|
||||
}
|
||||
|
||||
void PlayerArea::setSize(qreal width, qreal height)
|
||||
|
|
|
@ -60,10 +60,9 @@ class PlayerArea : public QObject, public QGraphicsItem {
|
|||
Q_OBJECT
|
||||
Q_INTERFACES(QGraphicsItem)
|
||||
private:
|
||||
QBrush bgPixmapBrush;
|
||||
QRectF bRect;
|
||||
private slots:
|
||||
void updateBgPixmap();
|
||||
void updateBg();
|
||||
public:
|
||||
enum { Type = typeOther };
|
||||
int type() const { return Type; }
|
||||
|
|
|
@ -50,12 +50,12 @@ bool PlayerListTWI::operator<(const QTreeWidgetItem &other) const
|
|||
PlayerListWidget::PlayerListWidget(TabSupervisor *_tabSupervisor, AbstractClient *_client, TabGame *_game, QWidget *parent)
|
||||
: QTreeWidget(parent), tabSupervisor(_tabSupervisor), client(_client), game(_game), gameStarted(false)
|
||||
{
|
||||
readyIcon = QIcon(":/resources/icon_ready_start.svg");
|
||||
notReadyIcon = QIcon(":/resources/icon_not_ready_start.svg");
|
||||
concededIcon = QIcon(":/resources/icon_conceded.svg");
|
||||
playerIcon = QIcon(":/resources/icon_player.svg");
|
||||
spectatorIcon = QIcon(":/resources/icon_spectator.svg");
|
||||
lockIcon = QIcon(":/resources/lock.svg");
|
||||
readyIcon = QIcon("theme:icons/ready_start.svg");
|
||||
notReadyIcon = QIcon("theme:icons/not_ready_start.svg");
|
||||
concededIcon = QIcon("theme:icons/conceded.svg");
|
||||
playerIcon = QIcon("theme:icons/player.svg");
|
||||
spectatorIcon = QIcon("theme:icons/spectator.svg");
|
||||
lockIcon = QIcon("theme:icons/lock.svg");
|
||||
|
||||
if (tabSupervisor) {
|
||||
itemDelegate = new PlayerListItemDelegate(this);
|
||||
|
|
|
@ -35,7 +35,7 @@ RemoteReplayList_TreeModel::RemoteReplayList_TreeModel(AbstractClient *_client,
|
|||
QFileIconProvider fip;
|
||||
dirIcon = fip.icon(QFileIconProvider::Folder);
|
||||
fileIcon = fip.icon(QFileIconProvider::File);
|
||||
lockIcon = QIcon(":/resources/lock.svg");
|
||||
lockIcon = QIcon("theme:icons/lock.svg");
|
||||
|
||||
refreshTree();
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ SequenceEdit::SequenceEdit(QString _shorcutName, QWidget *parent) : QWidget(pare
|
|||
clearButton->setMaximumHeight(lineEdit->height());
|
||||
defaultButton->setMaximumHeight(lineEdit->height());
|
||||
|
||||
clearButton->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
defaultButton->setIcon(QIcon(":/resources/icon_update.png"));
|
||||
clearButton->setIcon(QIcon("theme:icons/clearsearch.svg"));
|
||||
defaultButton->setIcon(QIcon("theme:icons/update.png"));
|
||||
|
||||
clearButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
|
||||
defaultButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
|
||||
|
|
|
@ -1445,7 +1445,7 @@ public:
|
|||
lbl_MainWindow_aFullScreen->setText(QApplication::translate("shortcutsTab", "Full screen", 0));
|
||||
lbl_MainWindow_aSettings->setText(QApplication::translate("shortcutsTab", "Settings", 0));
|
||||
lbl_MainWindow_aCheckCardUpdates->setText(QApplication::translate("shortcutsTab", "Check for card updates", 0));
|
||||
lbl_MainWindow_aDisconnect->setText(QApplication::translate("shortcutsTab", "Diconnect", 0));
|
||||
lbl_MainWindow_aDisconnect->setText(QApplication::translate("shortcutsTab", "Disconnect", 0));
|
||||
lbl_MainWindow_aExit->setText(QApplication::translate("shortcutsTab", "Exit", 0));
|
||||
groupBox_2->setTitle(QApplication::translate("shortcutsTab", "Deck Editor", 0));
|
||||
lbl_TabDeckEditor_aAnalyzeDeck->setText(QApplication::translate("shortcutsTab", "Analyze deck", 0));
|
||||
|
@ -1497,7 +1497,7 @@ public:
|
|||
lbl_Player_IncP->setText(QApplication::translate("shortcutsTab", "Add (+1/+0)", 0));
|
||||
groupBox_8->setTitle(QApplication::translate("shortcutsTab", "Game Phases", 0));
|
||||
lbl_TabGame_phase0->setText(QApplication::translate("shortcutsTab", "Untap", 0));
|
||||
lbl_TabGame_phase1->setText(QApplication::translate("shortcutsTab", "Unkeep", 0));
|
||||
lbl_TabGame_phase1->setText(QApplication::translate("shortcutsTab", "Upkeep", 0));
|
||||
lbl_TabGame_phase2->setText(QApplication::translate("shortcutsTab", "Draw", 0));
|
||||
lbl_TabGame_phase3->setText(QApplication::translate("shortcutsTab", "Main 1", 0));
|
||||
lbl_TabGame_phase4->setText(QApplication::translate("shortcutsTab", "Start combat", 0));
|
||||
|
|
|
@ -138,11 +138,7 @@ SettingsCache::SettingsCache()
|
|||
cardDatabasePath = settings->value("paths/carddatabase").toString();
|
||||
tokenDatabasePath = settings->value("paths/tokendatabase").toString();
|
||||
|
||||
handBgPath = settings->value("zonebg/hand").toString();
|
||||
stackBgPath = settings->value("zonebg/stack").toString();
|
||||
tableBgPath = settings->value("zonebg/table").toString();
|
||||
playerBgPath = settings->value("zonebg/playerarea").toString();
|
||||
cardBackPicturePath = settings->value("paths/cardbackpicture").toString();
|
||||
themeName = settings->value("theme/name").toString();
|
||||
|
||||
// we only want to reset the cache once, then its up to the user
|
||||
bool updateCache = settings->value("revert/pixmapCacheSize", false).toBool();
|
||||
|
@ -301,39 +297,11 @@ void SettingsCache::setTokenDatabasePath(const QString &_tokenDatabasePath)
|
|||
emit tokenDatabasePathChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setHandBgPath(const QString &_handBgPath)
|
||||
void SettingsCache::setThemeName(const QString &_themeName)
|
||||
{
|
||||
handBgPath = _handBgPath;
|
||||
settings->setValue("zonebg/hand", handBgPath);
|
||||
emit handBgPathChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setStackBgPath(const QString &_stackBgPath)
|
||||
{
|
||||
stackBgPath = _stackBgPath;
|
||||
settings->setValue("zonebg/stack", stackBgPath);
|
||||
emit stackBgPathChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setTableBgPath(const QString &_tableBgPath)
|
||||
{
|
||||
tableBgPath = _tableBgPath;
|
||||
settings->setValue("zonebg/table", tableBgPath);
|
||||
emit tableBgPathChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setPlayerBgPath(const QString &_playerBgPath)
|
||||
{
|
||||
playerBgPath = _playerBgPath;
|
||||
settings->setValue("zonebg/playerarea", playerBgPath);
|
||||
emit playerBgPathChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setCardBackPicturePath(const QString &_cardBackPicturePath)
|
||||
{
|
||||
cardBackPicturePath = _cardBackPicturePath;
|
||||
settings->setValue("paths/cardbackpicture", cardBackPicturePath);
|
||||
emit cardBackPicturePathChanged();
|
||||
themeName = _themeName;
|
||||
settings->setValue("theme/name", themeName);
|
||||
emit themeChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setPicDownload(int _picDownload)
|
||||
|
|
|
@ -30,11 +30,7 @@ signals:
|
|||
void picsPathChanged();
|
||||
void cardDatabasePathChanged();
|
||||
void tokenDatabasePathChanged();
|
||||
void handBgPathChanged();
|
||||
void stackBgPathChanged();
|
||||
void tableBgPathChanged();
|
||||
void playerBgPathChanged();
|
||||
void cardBackPicturePathChanged();
|
||||
void themeChanged();
|
||||
void picDownloadChanged();
|
||||
void picDownloadHqChanged();
|
||||
void displayCardNamesChanged();
|
||||
|
@ -61,8 +57,7 @@ private:
|
|||
|
||||
QByteArray mainWindowGeometry;
|
||||
QString lang;
|
||||
QString deckPath, replaysPath, picsPath, cardDatabasePath, tokenDatabasePath;
|
||||
QString handBgPath, stackBgPath, tableBgPath, playerBgPath, cardBackPicturePath;
|
||||
QString deckPath, replaysPath, picsPath, cardDatabasePath, tokenDatabasePath, themeName;
|
||||
bool picDownload;
|
||||
bool picDownloadHq;
|
||||
bool notificationsEnabled;
|
||||
|
@ -127,11 +122,7 @@ public:
|
|||
QString getPicsPath() const { return picsPath; }
|
||||
QString getCardDatabasePath() const { return cardDatabasePath; }
|
||||
QString getTokenDatabasePath() const { return tokenDatabasePath; }
|
||||
QString getHandBgPath() const { return handBgPath; }
|
||||
QString getStackBgPath() const { return stackBgPath; }
|
||||
QString getTableBgPath() const { return tableBgPath; }
|
||||
QString getPlayerBgPath() const { return playerBgPath; }
|
||||
QString getCardBackPicturePath() const { return cardBackPicturePath; }
|
||||
QString getThemeName() const { return themeName; }
|
||||
QString getChatMentionColor() const { return chatMentionColor; }
|
||||
QString getChatHighlightColor() const { return chatHighlightColor; }
|
||||
bool getPicDownload() const { return picDownload; }
|
||||
|
@ -207,11 +198,7 @@ public slots:
|
|||
void setPicsPath(const QString &_picsPath);
|
||||
void setCardDatabasePath(const QString &_cardDatabasePath);
|
||||
void setTokenDatabasePath(const QString &_tokenDatabasePath);
|
||||
void setHandBgPath(const QString &_handBgPath);
|
||||
void setStackBgPath(const QString &_stackBgPath);
|
||||
void setTableBgPath(const QString &_tableBgPath);
|
||||
void setPlayerBgPath(const QString &_playerBgPath);
|
||||
void setCardBackPicturePath(const QString &_cardBackPicturePath);
|
||||
void setThemeName(const QString &_themeName);
|
||||
void setChatMentionColor(const QString &_chatMentionColor);
|
||||
void setChatHighlightColor(const QString &_chatHighlightColor);
|
||||
void setPicDownload(int _picDownload);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "arrowitem.h"
|
||||
#include "stackzone.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "player.h"
|
||||
#include "carddragitem.h"
|
||||
#include "carditem.h"
|
||||
|
@ -12,16 +13,13 @@
|
|||
StackZone::StackZone(Player *_p, int _zoneHeight, QGraphicsItem *parent)
|
||||
: SelectZone(_p, "stack", false, false, true, parent), zoneHeight(_zoneHeight)
|
||||
{
|
||||
connect(settingsCache, SIGNAL(stackBgPathChanged()), this, SLOT(updateBgPixmap()));
|
||||
updateBgPixmap();
|
||||
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
|
||||
updateBg();
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
}
|
||||
|
||||
void StackZone::updateBgPixmap()
|
||||
void StackZone::updateBg()
|
||||
{
|
||||
QString bgPath = settingsCache->getStackBgPath();
|
||||
if (!bgPath.isEmpty())
|
||||
bgPixmap.load(bgPath);
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -48,10 +46,7 @@ QRectF StackZone::boundingRect() const
|
|||
|
||||
void StackZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
|
||||
{
|
||||
if (bgPixmap.isNull())
|
||||
painter->fillRect(boundingRect(), QColor(113, 43, 43));
|
||||
else
|
||||
painter->fillRect(boundingRect(), QBrush(bgPixmap));
|
||||
painter->fillRect(boundingRect(), themeManager->getStackBgBrush());
|
||||
}
|
||||
|
||||
void StackZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &/*dropPoint*/)
|
||||
|
|
|
@ -7,9 +7,8 @@ class StackZone : public SelectZone {
|
|||
Q_OBJECT
|
||||
private:
|
||||
qreal zoneHeight;
|
||||
QPixmap bgPixmap;
|
||||
private slots:
|
||||
void updateBgPixmap();
|
||||
void updateBg();
|
||||
public:
|
||||
StackZone(Player *_p, int _zoneHeight, QGraphicsItem *parent = 0);
|
||||
void handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint);
|
||||
|
|
|
@ -53,21 +53,21 @@ void SearchLineEdit::keyPressEvent(QKeyEvent *event)
|
|||
|
||||
void TabDeckEditor::createShowHideDocksButtons()
|
||||
{
|
||||
btnFilter = new QPushButton(QIcon("://resources/icon_view.svg"),QString());
|
||||
btnFilter = new QPushButton(QIcon("theme:icons/view.svg"),QString());
|
||||
btnFilter->setObjectName("btnFilter");
|
||||
btnFilter->setCheckable(true);
|
||||
btnFilter->setChecked(true);
|
||||
btnFilter->setMaximumWidth(30);
|
||||
searchLayout->addWidget(btnFilter);
|
||||
|
||||
btnDeck = new QPushButton(QIcon("://resources/hand.svg"),QString());
|
||||
btnDeck = new QPushButton(QIcon("theme:hand.svg"),QString());
|
||||
btnDeck->setObjectName("btnDeck");
|
||||
btnDeck->setCheckable(true);
|
||||
btnDeck->setChecked(true);
|
||||
btnDeck->setMaximumWidth(30);
|
||||
searchLayout->addWidget(btnDeck);
|
||||
|
||||
btnCard = new QPushButton(QIcon("://back.svg"),QString());
|
||||
btnCard = new QPushButton(QIcon("theme:back.svg"),QString());
|
||||
btnCard->setObjectName("btnCard");
|
||||
btnCard->setCheckable(true);
|
||||
btnCard->setChecked(true);
|
||||
|
@ -134,7 +134,7 @@ void TabDeckEditor::createDeckDock()
|
|||
|
||||
/* Update price
|
||||
aUpdatePrices = new QAction(QString(), this);
|
||||
aUpdatePrices->setIcon(QIcon(":/resources/icon_update.png"));
|
||||
aUpdatePrices->setIcon(QIcon("theme:icons/update.png"));
|
||||
connect(aUpdatePrices, SIGNAL(triggered()), this, SLOT(actUpdatePrices()));
|
||||
if (!settingsCache->getPriceTagFeature())
|
||||
aUpdatePrices->setVisible(false);
|
||||
|
@ -316,11 +316,11 @@ void TabDeckEditor::createMenus()
|
|||
addTabMenu(deckMenu);
|
||||
|
||||
aClearFilterAll = new QAction(QString(), this);
|
||||
aClearFilterAll->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
aClearFilterAll->setIcon(QIcon("theme:icons/clearsearch.svg"));
|
||||
connect(aClearFilterAll, SIGNAL(triggered()), this, SLOT(actClearFilterAll()));
|
||||
|
||||
aClearFilterOne = new QAction(QString(), this);
|
||||
aClearFilterOne->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
aClearFilterOne->setIcon(QIcon("theme:icons/decrement.svg"));
|
||||
connect(aClearFilterOne, SIGNAL(triggered()), this, SLOT(actClearFilterOne()));
|
||||
|
||||
dbMenu = new QMenu(this);
|
||||
|
@ -342,7 +342,7 @@ void TabDeckEditor::createCentralFrame()
|
|||
searchEdit = new SearchLineEdit;
|
||||
searchEdit->setObjectName("searchEdit");
|
||||
#if QT_VERSION >= 0x050300
|
||||
searchEdit->addAction(QIcon(":/resources/icon_search_black.svg"), QLineEdit::LeadingPosition);
|
||||
searchEdit->addAction(QIcon("theme:icons/search.svg"), QLineEdit::LeadingPosition);
|
||||
#endif
|
||||
|
||||
setFocusProxy(searchEdit);
|
||||
|
@ -381,19 +381,19 @@ void TabDeckEditor::createCentralFrame()
|
|||
searchEdit->setTreeView(databaseView);
|
||||
|
||||
aAddCard = new QAction(QString(), this);
|
||||
aAddCard->setIcon(QIcon(":/resources/arrow_right_green.svg"));
|
||||
aAddCard->setIcon(QIcon("theme:icons/arrow_right_green.svg"));
|
||||
connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard()));
|
||||
aAddCardToSideboard = new QAction(QString(), this);
|
||||
aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg"));
|
||||
aAddCardToSideboard->setIcon(QIcon("theme:icons/arrow_right_blue.svg"));
|
||||
connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard()));
|
||||
aRemoveCard = new QAction(QString(), this);
|
||||
aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
aRemoveCard->setIcon(QIcon("theme:icons/remove_row.svg"));
|
||||
connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard()));
|
||||
aIncrement = new QAction(QString(), this);
|
||||
aIncrement->setIcon(QIcon(":/resources/increment.svg"));
|
||||
aIncrement->setIcon(QIcon("theme:icons/increment.svg"));
|
||||
connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement()));
|
||||
aDecrement = new QAction(QString(), this);
|
||||
aDecrement->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
aDecrement->setIcon(QIcon("theme:icons/decrement.svg"));
|
||||
connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement()));
|
||||
|
||||
QToolBar *deckEditToolBar = new QToolBar;
|
||||
|
|
|
@ -80,25 +80,25 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor, AbstractClient *_c
|
|||
hbox->addWidget(rightGroupBox);
|
||||
|
||||
aOpenLocalDeck = new QAction(this);
|
||||
aOpenLocalDeck->setIcon(QIcon(":/resources/pencil.svg"));
|
||||
aOpenLocalDeck->setIcon(QIcon("theme:icons/pencil.svg"));
|
||||
connect(aOpenLocalDeck, SIGNAL(triggered()), this, SLOT(actOpenLocalDeck()));
|
||||
aUpload = new QAction(this);
|
||||
aUpload->setIcon(QIcon(":/resources/arrow_right_green.svg"));
|
||||
aUpload->setIcon(QIcon("theme:icons/arrow_right_green.svg"));
|
||||
connect(aUpload, SIGNAL(triggered()), this, SLOT(actUpload()));
|
||||
aDeleteLocalDeck = new QAction(this);
|
||||
aDeleteLocalDeck->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
aDeleteLocalDeck->setIcon(QIcon("theme:icons/remove_row.svg"));
|
||||
connect(aDeleteLocalDeck, SIGNAL(triggered()), this, SLOT(actDeleteLocalDeck()));
|
||||
aOpenRemoteDeck = new QAction(this);
|
||||
aOpenRemoteDeck->setIcon(QIcon(":/resources/pencil.svg"));
|
||||
aOpenRemoteDeck->setIcon(QIcon("theme:icons/pencil.svg"));
|
||||
connect(aOpenRemoteDeck, SIGNAL(triggered()), this, SLOT(actOpenRemoteDeck()));
|
||||
aDownload = new QAction(this);
|
||||
aDownload->setIcon(QIcon(":/resources/arrow_left_green.svg"));
|
||||
aDownload->setIcon(QIcon("theme:icons/arrow_left_green.svg"));
|
||||
connect(aDownload, SIGNAL(triggered()), this, SLOT(actDownload()));
|
||||
aNewFolder = new QAction(this);
|
||||
aNewFolder->setIcon(qApp->style()->standardIcon(QStyle::SP_FileDialogNewFolder));
|
||||
connect(aNewFolder, SIGNAL(triggered()), this, SLOT(actNewFolder()));
|
||||
aDeleteRemoteDeck = new QAction(this);
|
||||
aDeleteRemoteDeck->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
aDeleteRemoteDeck->setIcon(QIcon("theme:icons/remove_row.svg"));
|
||||
connect(aDeleteRemoteDeck, SIGNAL(triggered()), this, SLOT(actDeleteRemoteDeck()));
|
||||
|
||||
leftToolBar->addAction(aOpenLocalDeck);
|
||||
|
|
|
@ -363,17 +363,17 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
|
||||
replayStartButton = new QToolButton;
|
||||
replayStartButton->setIconSize(QSize(32, 32));
|
||||
replayStartButton->setIcon(QIcon(":/resources/replay_start.svg"));
|
||||
replayStartButton->setIcon(QIcon("theme:replay/start.svg"));
|
||||
connect(replayStartButton, SIGNAL(clicked()), this, SLOT(replayStartButtonClicked()));
|
||||
replayPauseButton = new QToolButton;
|
||||
replayPauseButton->setIconSize(QSize(32, 32));
|
||||
replayPauseButton->setEnabled(false);
|
||||
replayPauseButton->setIcon(QIcon(":/resources/replay_pause.svg"));
|
||||
replayPauseButton->setIcon(QIcon("theme:replay/pause.svg"));
|
||||
connect(replayPauseButton, SIGNAL(clicked()), this, SLOT(replayPauseButtonClicked()));
|
||||
replayFastForwardButton = new QToolButton;
|
||||
replayFastForwardButton->setIconSize(QSize(32, 32));
|
||||
replayFastForwardButton->setEnabled(false);
|
||||
replayFastForwardButton->setIcon(QIcon(":/resources/replay_fastforward.svg"));
|
||||
replayFastForwardButton->setIcon(QIcon("theme:replay/fastforward.svg"));
|
||||
replayFastForwardButton->setCheckable(true);
|
||||
connect(replayFastForwardButton, SIGNAL(toggled(bool)), this, SLOT(replayFastForwardButtonToggled(bool)));
|
||||
|
||||
|
|
|
@ -78,24 +78,24 @@ TabReplays::TabReplays(TabSupervisor *_tabSupervisor, AbstractClient *_client)
|
|||
hbox->addWidget(rightGroupBox);
|
||||
|
||||
aOpenLocalReplay = new QAction(this);
|
||||
aOpenLocalReplay->setIcon(QIcon(":/resources/icon_view.svg"));
|
||||
aOpenLocalReplay->setIcon(QIcon("theme:icons/view.svg"));
|
||||
connect(aOpenLocalReplay, SIGNAL(triggered()), this, SLOT(actOpenLocalReplay()));
|
||||
connect(localDirView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actOpenLocalReplay()));
|
||||
aDeleteLocalReplay = new QAction(this);
|
||||
aDeleteLocalReplay->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
aDeleteLocalReplay->setIcon(QIcon("theme:icons/remove_row.svg"));
|
||||
connect(aDeleteLocalReplay, SIGNAL(triggered()), this, SLOT(actDeleteLocalReplay()));
|
||||
aOpenRemoteReplay = new QAction(this);
|
||||
aOpenRemoteReplay->setIcon(QIcon(":/resources/icon_view.svg"));
|
||||
aOpenRemoteReplay->setIcon(QIcon("theme:icons/view.svg"));
|
||||
connect(aOpenRemoteReplay, SIGNAL(triggered()), this, SLOT(actOpenRemoteReplay()));
|
||||
connect(serverDirView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actOpenRemoteReplay()));
|
||||
aDownload = new QAction(this);
|
||||
aDownload->setIcon(QIcon(":/resources/arrow_left_green.svg"));
|
||||
aDownload->setIcon(QIcon("theme:icons/arrow_left_green.svg"));
|
||||
connect(aDownload, SIGNAL(triggered()), this, SLOT(actDownload()));
|
||||
aKeep = new QAction(this);
|
||||
aKeep->setIcon(QIcon(":/resources/lock.svg"));
|
||||
aKeep->setIcon(QIcon("theme:icons/lock.svg"));
|
||||
connect(aKeep, SIGNAL(triggered()), this, SLOT(actKeepRemoteReplay()));
|
||||
aDeleteRemoteReplay = new QAction(this);
|
||||
aDeleteRemoteReplay->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||
aDeleteRemoteReplay->setIcon(QIcon("theme:icons/remove_row.svg"));
|
||||
connect(aDeleteRemoteReplay, SIGNAL(triggered()), this, SLOT(actDeleteRemoteReplay()));
|
||||
|
||||
leftToolBar->addAction(aOpenLocalReplay);
|
||||
|
|
|
@ -71,7 +71,7 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
|
|||
connect(aOpenChatSettings, SIGNAL(triggered()), this, SLOT(actOpenChatSettings()));
|
||||
|
||||
QToolButton *chatSettingsButton = new QToolButton;
|
||||
chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg"));
|
||||
chatSettingsButton->setIcon(QIcon("theme:icons/settings.svg"));
|
||||
chatSettingsButton->setMenu(chatSettingsMenu);
|
||||
chatSettingsButton->setPopupMode(QToolButton::InstantPopup);
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ void CloseButton::paintEvent(QPaintEvent * /*event*/)
|
|||
TabSupervisor::TabSupervisor(AbstractClient *_client, QWidget *parent)
|
||||
: QTabWidget(parent), userInfo(0), client(_client), tabServer(0), tabUserLists(0), tabDeckStorage(0), tabReplays(0), tabAdmin(0)
|
||||
{
|
||||
tabChangedIcon = new QIcon(":/resources/icon_tab_changed.svg");
|
||||
tabChangedIcon = new QIcon("theme:icons/tab_changed.svg");
|
||||
setElideMode(Qt::ElideRight);
|
||||
setMovable(true);
|
||||
setIconSize(QSize(15, 15));
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "tablezone.h"
|
||||
#include "player.h"
|
||||
#include "settingscache.h"
|
||||
#include "thememanager.h"
|
||||
#include "arrowitem.h"
|
||||
#include "carddragitem.h"
|
||||
#include "carddatabase.h"
|
||||
|
@ -16,20 +17,18 @@
|
|||
#include "pb/command_move_card.pb.h"
|
||||
#include "pb/command_set_card_attr.pb.h"
|
||||
|
||||
|
||||
const QColor TableZone::BACKGROUND_COLOR = QColor(100, 100, 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)
|
||||
: SelectZone(_p, "table", true, false, true, parent), active(false)
|
||||
{
|
||||
connect(settingsCache, SIGNAL(tableBgPathChanged()), this, SLOT(updateBgPixmap()));
|
||||
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
|
||||
connect(settingsCache, SIGNAL(invertVerticalCoordinateChanged()), this, SLOT(reorganizeCards()));
|
||||
|
||||
updateBgPixmap();
|
||||
updateBg();
|
||||
|
||||
height = MARGIN_TOP + MARGIN_BOTTOM + TABLEROWS * CARD_HEIGHT + (TABLEROWS-1) * PADDING_Y;
|
||||
width = MIN_WIDTH;
|
||||
|
@ -44,11 +43,8 @@ TableZone::TableZone(Player *_p, QGraphicsItem *parent)
|
|||
}
|
||||
|
||||
|
||||
void TableZone::updateBgPixmap()
|
||||
void TableZone::updateBg()
|
||||
{
|
||||
QString bgPath = settingsCache->getTableBgPath();
|
||||
if (!bgPath.isEmpty())
|
||||
backgroundPixelMap.load(bgPath);
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -67,11 +63,7 @@ bool TableZone::isInverted() const
|
|||
|
||||
void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
|
||||
{
|
||||
// if no custom background is provided then use the default color
|
||||
if (backgroundPixelMap.isNull())
|
||||
painter->fillRect(boundingRect(), BACKGROUND_COLOR);
|
||||
else
|
||||
painter->fillRect(boundingRect(), QBrush(backgroundPixelMap));
|
||||
painter->fillRect(boundingRect(), themeManager->getTableBgBrush());
|
||||
|
||||
if (active) {
|
||||
paintZoneOutline(painter);
|
||||
|
|
|
@ -49,7 +49,7 @@ private:
|
|||
static const int BOX_LINE_WIDTH = 10;
|
||||
|
||||
/*
|
||||
Default background color, inactive mask and boarder gradient
|
||||
Default inactive mask and border gradient
|
||||
*/
|
||||
static const QColor BACKGROUND_COLOR;
|
||||
static const QColor FADE_MASK;
|
||||
|
@ -84,7 +84,7 @@ private slots:
|
|||
/**
|
||||
Loads in any found custom background and updates
|
||||
*/
|
||||
void updateBgPixmap();
|
||||
void updateBg();
|
||||
|
||||
public slots:
|
||||
/**
|
||||
|
|
144
cockatrice/src/thememanager.cpp
Normal file
|
@ -0,0 +1,144 @@
|
|||
#include "thememanager.h"
|
||||
#include "settingscache.h"
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QColor>
|
||||
#include <QLibraryInfo>
|
||||
#if QT_VERSION < 0x050000
|
||||
#include <QDesktopServices>
|
||||
#else
|
||||
#include <QStandardPaths>
|
||||
#endif
|
||||
|
||||
#define DEFAULT_THEME_NAME "Default"
|
||||
#define STYLE_CSS_NAME "style.css"
|
||||
#define HANDZONE_BG_NAME "handzone"
|
||||
#define PLAYERZONE_BG_NAME "playerzone"
|
||||
#define STACKZONE_BG_NAME "stackzone"
|
||||
#define TABLEZONE_BG_NAME "tablezone"
|
||||
#define CARD_BACK_NAME "cardback"
|
||||
|
||||
ThemeManager::ThemeManager(QObject *parent)
|
||||
:QObject(parent)
|
||||
{
|
||||
ensureThemeDirectoryExists();
|
||||
connect(settingsCache, SIGNAL(themeChanged()), this, SLOT(themeChangedSlot()));
|
||||
themeChangedSlot();
|
||||
}
|
||||
|
||||
void ThemeManager::ensureThemeDirectoryExists()
|
||||
{
|
||||
if(settingsCache->getThemeName().isEmpty() ||
|
||||
!getAvailableThemes().contains(settingsCache->getThemeName()))
|
||||
{
|
||||
qDebug() << "Theme name not set, setting default value";
|
||||
settingsCache->setThemeName(DEFAULT_THEME_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
QStringMap & ThemeManager::getAvailableThemes()
|
||||
{
|
||||
QDir dir;
|
||||
availableThemes.clear();
|
||||
|
||||
// load themes from user profile dir
|
||||
dir =
|
||||
#if QT_VERSION < 0x050000
|
||||
QDesktopServices::storageLocation(QDesktopServices::DataLocation) +
|
||||
#else
|
||||
QStandardPaths::standardLocations(QStandardPaths::DataLocation).first() +
|
||||
#endif
|
||||
"/themes";
|
||||
|
||||
foreach(QString themeName, dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name))
|
||||
{
|
||||
if(!availableThemes.contains(themeName))
|
||||
availableThemes.insert(themeName, dir.absoluteFilePath(themeName));
|
||||
}
|
||||
|
||||
// load themes from cockatrice system dir
|
||||
#ifdef Q_OS_MAC
|
||||
dir = qApp->applicationDirPath() + "/../Resources/themes";
|
||||
#elif defined(Q_OS_WIN)
|
||||
dir = qApp->applicationDirPath() + "/themes";
|
||||
#else // linux
|
||||
dir = qApp->applicationDirPath() + "/../share/cockatrice/themes";
|
||||
#endif
|
||||
foreach(QString themeName, dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name))
|
||||
{
|
||||
if(!availableThemes.contains(themeName))
|
||||
availableThemes.insert(themeName, dir.absoluteFilePath(themeName));
|
||||
}
|
||||
|
||||
return availableThemes;
|
||||
}
|
||||
|
||||
QBrush ThemeManager::loadBrush(QDir dir, QString fileName, QColor fallbackColor)
|
||||
{
|
||||
QBrush brush;
|
||||
QPixmap tmp;
|
||||
QStringList exts;
|
||||
exts << ".png" << ".jpg" << ".jpeg" << ".gif" << ".bmp";
|
||||
|
||||
brush.setColor(fallbackColor);
|
||||
brush.setStyle(Qt::SolidPattern);
|
||||
|
||||
foreach (const QString &ext, exts) {
|
||||
if (dir.exists(fileName + ext)) {
|
||||
tmp.load(dir.absoluteFilePath(fileName + ext));
|
||||
if(!tmp.isNull())
|
||||
brush.setTexture(tmp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return brush;
|
||||
}
|
||||
|
||||
QPixmap ThemeManager::loadPixmap(QDir dir, QString fileName)
|
||||
{
|
||||
QPixmap pix;
|
||||
QStringList exts;
|
||||
exts << ".png" << ".jpg" << ".jpeg" << ".gif" << ".bmp";
|
||||
|
||||
foreach (const QString &ext, exts) {
|
||||
if (dir.exists(fileName + ext)) {
|
||||
pix.load(dir.absoluteFilePath(fileName + ext));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return pix;
|
||||
}
|
||||
|
||||
void ThemeManager::themeChangedSlot()
|
||||
{
|
||||
QString themeName = settingsCache->getThemeName();
|
||||
qDebug() << "Theme changed:" << themeName;
|
||||
|
||||
QDir dir = getAvailableThemes().value(themeName);
|
||||
|
||||
// css
|
||||
if(dir.exists(STYLE_CSS_NAME))
|
||||
|
||||
qApp->setStyleSheet("file:///" + dir.absoluteFilePath(STYLE_CSS_NAME));
|
||||
else
|
||||
qApp->setStyleSheet("");
|
||||
|
||||
// card background
|
||||
cardBackPixmap = loadPixmap(dir, CARD_BACK_NAME);
|
||||
|
||||
// zones bg
|
||||
dir.cd("zones");
|
||||
handBgBrush = loadBrush(dir, HANDZONE_BG_NAME, QColor(80, 100, 50));
|
||||
tableBgBrush = loadBrush(dir, TABLEZONE_BG_NAME, QColor(70, 50, 100));
|
||||
playerBgBrush = loadBrush(dir, PLAYERZONE_BG_NAME, QColor(200, 200, 200));
|
||||
stackBgBrush = loadBrush(dir, STACKZONE_BG_NAME, QColor(113, 43, 43));
|
||||
|
||||
// resources
|
||||
QStringList resources;
|
||||
resources << dir.absolutePath() << ":/resources";
|
||||
QDir::setSearchPaths("theme", resources);
|
||||
|
||||
emit themeChanged();
|
||||
}
|
42
cockatrice/src/thememanager.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
#ifndef THEMEMANAGER_H
|
||||
#define THEMEMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QBrush>
|
||||
#include <QPixmap>
|
||||
#include <QMap>
|
||||
#include <QDir>
|
||||
#include <QString>
|
||||
|
||||
typedef QMap<QString, QString> QStringMap;
|
||||
|
||||
class QApplication;
|
||||
|
||||
class ThemeManager : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ThemeManager(QObject *parent = 0);
|
||||
private:
|
||||
QBrush handBgBrush, stackBgBrush, tableBgBrush, playerBgBrush;
|
||||
QPixmap cardBackPixmap;
|
||||
QStringMap availableThemes;
|
||||
protected:
|
||||
void ensureThemeDirectoryExists();
|
||||
QBrush loadBrush(QDir dir, QString fileName, QColor fallbackColor);
|
||||
QPixmap loadPixmap(QDir dir, QString fileName);
|
||||
public:
|
||||
QBrush &getHandBgBrush() { return handBgBrush; }
|
||||
QBrush &getStackBgBrush() { return stackBgBrush; }
|
||||
QBrush &getTableBgBrush() { return tableBgBrush; }
|
||||
QBrush &getPlayerBgBrush() { return playerBgBrush; }
|
||||
QPixmap &getCardBackPixmap() { return cardBackPixmap; }
|
||||
QStringMap &getAvailableThemes();
|
||||
protected slots:
|
||||
void themeChangedSlot();
|
||||
signals:
|
||||
void themeChanged();
|
||||
};
|
||||
|
||||
extern ThemeManager * themeManager;
|
||||
|
||||
#endif
|
|
@ -100,7 +100,7 @@ void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &even
|
|||
void MainWindow::processServerShutdownEvent(const Event_ServerShutdown &event)
|
||||
{
|
||||
serverShutdownMessageBox.setInformativeText(tr("The server is going to be restarted in %n minute(s).\nAll running games will be lost.\nReason for shutdown: %1", "", event.minutes()).arg(QString::fromStdString(event.reason())));
|
||||
serverShutdownMessageBox.setIconPixmap(QPixmap(":/resources/appicon.svg").scaled(64, 64));
|
||||
serverShutdownMessageBox.setIconPixmap(QPixmap("theme:appicon.svg").scaled(64, 64));
|
||||
serverShutdownMessageBox.setText(tr("Scheduled server shutdown"));
|
||||
serverShutdownMessageBox.setWindowModality(Qt::ApplicationModal);
|
||||
serverShutdownMessageBox.setVisible(true);
|
||||
|
@ -618,7 +618,7 @@ void MainWindow::createTrayIcon() {
|
|||
|
||||
trayIcon = new QSystemTrayIcon(this);
|
||||
trayIcon->setContextMenu(trayIconMenu);
|
||||
trayIcon->setIcon(QIcon(":/resources/appicon.svg"));
|
||||
trayIcon->setIcon(QIcon("theme:cockatrice.svg"));
|
||||
trayIcon->show();
|
||||
|
||||
connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,
|
||||
|
|
|
@ -24,28 +24,28 @@ WndSets::WndSets(QWidget *parent)
|
|||
setsEditToolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||
|
||||
aTop = new QAction(QString(), this);
|
||||
aTop->setIcon(QIcon(":/resources/arrow_top_green.svg"));
|
||||
aTop->setIcon(QIcon("theme:icons/arrow_top_green.svg"));
|
||||
aTop->setToolTip(tr("Move selected set to the top"));
|
||||
aTop->setEnabled(false);
|
||||
connect(aTop, SIGNAL(triggered()), this, SLOT(actTop()));
|
||||
setsEditToolBar->addAction(aTop);
|
||||
|
||||
aUp = new QAction(QString(), this);
|
||||
aUp->setIcon(QIcon(":/resources/arrow_up_green.svg"));
|
||||
aUp->setIcon(QIcon("theme:icons/arrow_up_green.svg"));
|
||||
aUp->setToolTip(tr("Move selected set up"));
|
||||
aUp->setEnabled(false);
|
||||
connect(aUp, SIGNAL(triggered()), this, SLOT(actUp()));
|
||||
setsEditToolBar->addAction(aUp);
|
||||
|
||||
aDown = new QAction(QString(), this);
|
||||
aDown->setIcon(QIcon(":/resources/arrow_down_green.svg"));
|
||||
aDown->setIcon(QIcon("theme:icons/arrow_down_green.svg"));
|
||||
aDown->setToolTip(tr("Move selected set down"));
|
||||
aDown->setEnabled(false);
|
||||
connect(aDown, SIGNAL(triggered()), this, SLOT(actDown()));
|
||||
setsEditToolBar->addAction(aDown);
|
||||
|
||||
aBottom = new QAction(QString(), this);
|
||||
aBottom->setIcon(QIcon(":/resources/arrow_bottom_green.svg"));
|
||||
aBottom->setIcon(QIcon("theme:icons/arrow_bottom_green.svg"));
|
||||
aBottom->setToolTip(tr("Move selected set to the bottom"));
|
||||
aBottom->setEnabled(false);
|
||||
connect(aBottom, SIGNAL(triggered()), this, SLOT(actBottom()));
|
||||
|
|
|
@ -250,5 +250,5 @@ void ZoneViewWidget::zoneDeleted()
|
|||
void ZoneViewWidget::initStyleOption(QStyleOption *option) const {
|
||||
QStyleOptionTitleBar *titleBar = qstyleoption_cast<QStyleOptionTitleBar *>(option);
|
||||
if (titleBar)
|
||||
titleBar->icon = QIcon(":/resources/appicon.svg");
|
||||
titleBar->icon = QIcon("theme:cockatrice.svg");
|
||||
}
|
||||
|
|
|
@ -773,87 +773,92 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
|
|||
<context>
|
||||
<name>DlgCreateGame</name>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="24"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="25"/>
|
||||
<source>&Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="54"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="56"/>
|
||||
<source>&Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="29"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="30"/>
|
||||
<source>P&layers:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="51"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="24"/>
|
||||
<source>Re&member settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="53"/>
|
||||
<source>Game type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="58"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="60"/>
|
||||
<source>Only &buddies can join</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="59"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="61"/>
|
||||
<source>Only &registered users can join</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="74"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="76"/>
|
||||
<source>Joining restrictions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="77"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="79"/>
|
||||
<source>&Spectators can watch</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="80"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="82"/>
|
||||
<source>Spectators &need a password to watch</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="82"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="84"/>
|
||||
<source>Spectators can see &hands</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="81"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="83"/>
|
||||
<source>Spectators can &chat</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="88"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="90"/>
|
||||
<source>Spectators</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="129"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="136"/>
|
||||
<source>&Clear</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="135"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="142"/>
|
||||
<source>Create game</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="177"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="185"/>
|
||||
<source>Game information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="251"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="261"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_creategame.cpp" line="251"/>
|
||||
<location filename="../src/dlg_creategame.cpp" line="261"/>
|
||||
<source>Server error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1782,48 +1787,48 @@ Would you like to change your database location setting?</source>
|
|||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="75"/>
|
||||
<location filename="../src/window_main.cpp" line="81"/>
|
||||
<source>There are too many concurrent connections from your address.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="86"/>
|
||||
<location filename="../src/window_main.cpp" line="92"/>
|
||||
<source>Scheduled server shutdown.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="77"/>
|
||||
<location filename="../src/window_main.cpp" line="83"/>
|
||||
<source>Banned by moderator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="79"/>
|
||||
<location filename="../src/window_main.cpp" line="85"/>
|
||||
<source>Expected end time: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="81"/>
|
||||
<location filename="../src/window_main.cpp" line="87"/>
|
||||
<source>This ban lasts indefinitely.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="90"/>
|
||||
<location filename="../src/window_main.cpp" line="97"/>
|
||||
<source>Connection closed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="90"/>
|
||||
<location filename="../src/window_main.cpp" line="97"/>
|
||||
<source>The server has terminated your connection.
|
||||
Reason: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="97"/>
|
||||
<location filename="../src/window_main.cpp" line="104"/>
|
||||
<source>Scheduled server shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/window_main.cpp" line="95"/>
|
||||
<location filename="../src/window_main.cpp" line="102"/>
|
||||
<source>The server is going to be restarted in %n minute(s).
|
||||
All running games will be lost.
|
||||
Reason for shutdown: %1</source>
|
||||
|
@ -1833,473 +1838,478 @@ Reason for shutdown: %1</source>
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="182"/>
|
||||
<location filename="../src/window_main.cpp" line="189"/>
|
||||
<source>Number of players</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="182"/>
|
||||
<location filename="../src/window_main.cpp" line="189"/>
|
||||
<source>Please enter the number of players.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="192"/>
|
||||
<location filename="../src/window_main.cpp" line="198"/>
|
||||
<location filename="../src/window_main.cpp" line="199"/>
|
||||
<location filename="../src/window_main.cpp" line="205"/>
|
||||
<source>Player %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="210"/>
|
||||
<location filename="../src/window_main.cpp" line="217"/>
|
||||
<source>Load replay</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="265"/>
|
||||
<location filename="../src/window_main.cpp" line="272"/>
|
||||
<source>About Cockatrice</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="267"/>
|
||||
<location filename="../src/window_main.cpp" line="274"/>
|
||||
<source>Version %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="273"/>
|
||||
<location filename="../src/window_main.cpp" line="280"/>
|
||||
<source>Translators:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="268"/>
|
||||
<location filename="../src/window_main.cpp" line="275"/>
|
||||
<source>Project Manager:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="74"/>
|
||||
<location filename="../src/window_main.cpp" line="80"/>
|
||||
<source>The server has reached its maximum user capacity, please check back later.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="87"/>
|
||||
<location filename="../src/window_main.cpp" line="345"/>
|
||||
<location filename="../src/window_main.cpp" line="93"/>
|
||||
<location filename="../src/window_main.cpp" line="352"/>
|
||||
<source>Invalid username.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="134"/>
|
||||
<location filename="../src/window_main.cpp" line="144"/>
|
||||
<location filename="../src/window_main.cpp" line="94"/>
|
||||
<source>You have been logged out due to logging in at another location.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="141"/>
|
||||
<location filename="../src/window_main.cpp" line="151"/>
|
||||
<source>Success</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="134"/>
|
||||
<location filename="../src/window_main.cpp" line="141"/>
|
||||
<source>Registration accepted.
|
||||
Will now login.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="144"/>
|
||||
<location filename="../src/window_main.cpp" line="151"/>
|
||||
<source>Account activation accepted.
|
||||
Will now login.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="269"/>
|
||||
<location filename="../src/window_main.cpp" line="276"/>
|
||||
<source>Past Project Managers:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="270"/>
|
||||
<location filename="../src/window_main.cpp" line="277"/>
|
||||
<source>Developers:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="271"/>
|
||||
<location filename="../src/window_main.cpp" line="278"/>
|
||||
<source>Our Developers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="272"/>
|
||||
<location filename="../src/window_main.cpp" line="279"/>
|
||||
<source>Help Develop!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="274"/>
|
||||
<location filename="../src/window_main.cpp" line="281"/>
|
||||
<source>Recognition Page</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="275"/>
|
||||
<location filename="../src/window_main.cpp" line="282"/>
|
||||
<source>Help Translate!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="276"/>
|
||||
<location filename="../src/window_main.cpp" line="283"/>
|
||||
<source>Support:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="277"/>
|
||||
<location filename="../src/window_main.cpp" line="284"/>
|
||||
<source>Report an Issue</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="285"/>
|
||||
<location filename="../src/window_main.cpp" line="293"/>
|
||||
<location filename="../src/window_main.cpp" line="296"/>
|
||||
<location filename="../src/window_main.cpp" line="307"/>
|
||||
<location filename="../src/window_main.cpp" line="311"/>
|
||||
<location filename="../src/window_main.cpp" line="315"/>
|
||||
<location filename="../src/window_main.cpp" line="320"/>
|
||||
<location filename="../src/window_main.cpp" line="323"/>
|
||||
<location filename="../src/window_main.cpp" line="337"/>
|
||||
<location filename="../src/window_main.cpp" line="405"/>
|
||||
<location filename="../src/window_main.cpp" line="409"/>
|
||||
<location filename="../src/window_main.cpp" line="413"/>
|
||||
<location filename="../src/window_main.cpp" line="292"/>
|
||||
<location filename="../src/window_main.cpp" line="300"/>
|
||||
<location filename="../src/window_main.cpp" line="303"/>
|
||||
<location filename="../src/window_main.cpp" line="314"/>
|
||||
<location filename="../src/window_main.cpp" line="318"/>
|
||||
<location filename="../src/window_main.cpp" line="322"/>
|
||||
<location filename="../src/window_main.cpp" line="327"/>
|
||||
<location filename="../src/window_main.cpp" line="330"/>
|
||||
<location filename="../src/window_main.cpp" line="344"/>
|
||||
<location filename="../src/window_main.cpp" line="412"/>
|
||||
<location filename="../src/window_main.cpp" line="416"/>
|
||||
<location filename="../src/window_main.cpp" line="420"/>
|
||||
<location filename="../src/window_main.cpp" line="423"/>
|
||||
<location filename="../src/window_main.cpp" line="430"/>
|
||||
<location filename="../src/window_main.cpp" line="437"/>
|
||||
<location filename="../src/window_main.cpp" line="439"/>
|
||||
<location filename="../src/window_main.cpp" line="728"/>
|
||||
<location filename="../src/window_main.cpp" line="764"/>
|
||||
<location filename="../src/window_main.cpp" line="444"/>
|
||||
<location filename="../src/window_main.cpp" line="446"/>
|
||||
<location filename="../src/window_main.cpp" line="735"/>
|
||||
<location filename="../src/window_main.cpp" line="771"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="285"/>
|
||||
<location filename="../src/window_main.cpp" line="292"/>
|
||||
<source>Server timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="293"/>
|
||||
<location filename="../src/window_main.cpp" line="300"/>
|
||||
<source>Incorrect username or password. Please check your authentication information and try again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="296"/>
|
||||
<location filename="../src/window_main.cpp" line="303"/>
|
||||
<source>There is already an active session using this user name.
|
||||
Please close that session first and re-login.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="301"/>
|
||||
<location filename="../src/window_main.cpp" line="399"/>
|
||||
<location filename="../src/window_main.cpp" line="308"/>
|
||||
<location filename="../src/window_main.cpp" line="406"/>
|
||||
<source>You are banned until %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="303"/>
|
||||
<location filename="../src/window_main.cpp" line="401"/>
|
||||
<location filename="../src/window_main.cpp" line="310"/>
|
||||
<location filename="../src/window_main.cpp" line="408"/>
|
||||
<source>You are banned indefinitely.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="315"/>
|
||||
<location filename="../src/window_main.cpp" line="322"/>
|
||||
<source>This server requires user registration. Do you want to register now?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="320"/>
|
||||
<location filename="../src/window_main.cpp" line="327"/>
|
||||
<source>This server requires client ID's. Your client is either failing to generate an ID or you are running a modified client.
|
||||
Please close and reopen your client to try again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="323"/>
|
||||
<location filename="../src/window_main.cpp" line="330"/>
|
||||
<source>An internal error has occurred, please try closing and reopening your client and try again. If the error persists try updating your client to the most recent build and if need be contact your software provider.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="327"/>
|
||||
<location filename="../src/window_main.cpp" line="334"/>
|
||||
<source>Account activation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="337"/>
|
||||
<location filename="../src/window_main.cpp" line="344"/>
|
||||
<source>Unknown login error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="337"/>
|
||||
<location filename="../src/window_main.cpp" line="416"/>
|
||||
<location filename="../src/window_main.cpp" line="344"/>
|
||||
<location filename="../src/window_main.cpp" line="423"/>
|
||||
<source>
|
||||
This usually means that your client version is out of date, and the server sent a reply your client doesn't understand.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="349"/>
|
||||
<location filename="../src/window_main.cpp" line="356"/>
|
||||
<source>Your username must respect these rules:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="351"/>
|
||||
<location filename="../src/window_main.cpp" line="358"/>
|
||||
<source>is %1 - %2 characters long</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="352"/>
|
||||
<location filename="../src/window_main.cpp" line="359"/>
|
||||
<source>can %1 contain lowercase characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="352"/>
|
||||
<location filename="../src/window_main.cpp" line="353"/>
|
||||
<location filename="../src/window_main.cpp" line="354"/>
|
||||
<location filename="../src/window_main.cpp" line="367"/>
|
||||
<location filename="../src/window_main.cpp" line="359"/>
|
||||
<location filename="../src/window_main.cpp" line="360"/>
|
||||
<location filename="../src/window_main.cpp" line="361"/>
|
||||
<location filename="../src/window_main.cpp" line="374"/>
|
||||
<source>NOT</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="353"/>
|
||||
<location filename="../src/window_main.cpp" line="360"/>
|
||||
<source>can %1 contain uppercase characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="354"/>
|
||||
<location filename="../src/window_main.cpp" line="361"/>
|
||||
<source>can %1 contain numeric characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="358"/>
|
||||
<location filename="../src/window_main.cpp" line="365"/>
|
||||
<source>can contain the following punctuation: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="367"/>
|
||||
<location filename="../src/window_main.cpp" line="374"/>
|
||||
<source>first character can %1 be a punctuation mark</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="372"/>
|
||||
<location filename="../src/window_main.cpp" line="379"/>
|
||||
<source>You may only use A-Z, a-z, 0-9, _, ., and - in your username.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="382"/>
|
||||
<location filename="../src/window_main.cpp" line="385"/>
|
||||
<location filename="../src/window_main.cpp" line="388"/>
|
||||
<location filename="../src/window_main.cpp" line="391"/>
|
||||
<location filename="../src/window_main.cpp" line="394"/>
|
||||
<location filename="../src/window_main.cpp" line="389"/>
|
||||
<location filename="../src/window_main.cpp" line="392"/>
|
||||
<location filename="../src/window_main.cpp" line="395"/>
|
||||
<location filename="../src/window_main.cpp" line="398"/>
|
||||
<location filename="../src/window_main.cpp" line="401"/>
|
||||
<source>Registration denied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="382"/>
|
||||
<location filename="../src/window_main.cpp" line="389"/>
|
||||
<source>Registration is currently disabled on this server</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="385"/>
|
||||
<location filename="../src/window_main.cpp" line="392"/>
|
||||
<source>There is already an existing account with the same user name.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="388"/>
|
||||
<location filename="../src/window_main.cpp" line="395"/>
|
||||
<source>It's mandatory to specify a valid email address when registering.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="391"/>
|
||||
<location filename="../src/window_main.cpp" line="398"/>
|
||||
<source>Too many registration attempts from your IP address.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="394"/>
|
||||
<location filename="../src/window_main.cpp" line="401"/>
|
||||
<source>Password too short.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="413"/>
|
||||
<location filename="../src/window_main.cpp" line="420"/>
|
||||
<source>Registration failed for a technical problem on the server.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="416"/>
|
||||
<location filename="../src/window_main.cpp" line="423"/>
|
||||
<source>Unknown registration error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="423"/>
|
||||
<location filename="../src/window_main.cpp" line="430"/>
|
||||
<source>Account activation failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="430"/>
|
||||
<location filename="../src/window_main.cpp" line="437"/>
|
||||
<source>Socket error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="437"/>
|
||||
<location filename="../src/window_main.cpp" line="444"/>
|
||||
<source>You are trying to connect to an obsolete server. Please downgrade your Cockatrice version or connect to a suitable server.
|
||||
Local version is %1, remote version is %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="439"/>
|
||||
<location filename="../src/window_main.cpp" line="446"/>
|
||||
<source>Your Cockatrice client is obsolete. Please update your Cockatrice version.
|
||||
Local version is %1, remote version is %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="445"/>
|
||||
<location filename="../src/window_main.cpp" line="452"/>
|
||||
<source>Connecting to %1...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="446"/>
|
||||
<location filename="../src/window_main.cpp" line="453"/>
|
||||
<source>Registering to %1 as %2...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="447"/>
|
||||
<location filename="../src/window_main.cpp" line="454"/>
|
||||
<source>Disconnected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="448"/>
|
||||
<location filename="../src/window_main.cpp" line="455"/>
|
||||
<source>Connected, logging in at %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="458"/>
|
||||
<location filename="../src/window_main.cpp" line="465"/>
|
||||
<source>&Connect...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="459"/>
|
||||
<location filename="../src/window_main.cpp" line="466"/>
|
||||
<source>&Disconnect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="460"/>
|
||||
<location filename="../src/window_main.cpp" line="467"/>
|
||||
<source>Start &local game...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="461"/>
|
||||
<location filename="../src/window_main.cpp" line="468"/>
|
||||
<source>&Watch replay...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="462"/>
|
||||
<location filename="../src/window_main.cpp" line="469"/>
|
||||
<source>&Deck editor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="463"/>
|
||||
<location filename="../src/window_main.cpp" line="470"/>
|
||||
<source>&Full screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="464"/>
|
||||
<location filename="../src/window_main.cpp" line="471"/>
|
||||
<source>&Register to server...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="465"/>
|
||||
<location filename="../src/window_main.cpp" line="472"/>
|
||||
<source>&Settings...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="466"/>
|
||||
<location filename="../src/window_main.cpp" line="634"/>
|
||||
<location filename="../src/window_main.cpp" line="473"/>
|
||||
<location filename="../src/window_main.cpp" line="641"/>
|
||||
<source>&Exit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="469"/>
|
||||
<location filename="../src/window_main.cpp" line="476"/>
|
||||
<source>A&ctions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="471"/>
|
||||
<location filename="../src/window_main.cpp" line="478"/>
|
||||
<source>&Cockatrice</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="474"/>
|
||||
<location filename="../src/window_main.cpp" line="481"/>
|
||||
<source>&About Cockatrice</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="475"/>
|
||||
<location filename="../src/window_main.cpp" line="482"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="476"/>
|
||||
<location filename="../src/window_main.cpp" line="483"/>
|
||||
<source>Check for card updates...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="694"/>
|
||||
<location filename="../src/window_main.cpp" line="701"/>
|
||||
<source>A card database update is already running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="728"/>
|
||||
<location filename="../src/window_main.cpp" line="735"/>
|
||||
<source>Unable to run the card database updater: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="764"/>
|
||||
<location filename="../src/window_main.cpp" line="771"/>
|
||||
<source>The card database updater exited with an error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="772"/>
|
||||
<location filename="../src/window_main.cpp" line="779"/>
|
||||
<source>Update completed successfully. Cockatrice will now reload the card database.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="694"/>
|
||||
<location filename="../src/window_main.cpp" line="772"/>
|
||||
<location filename="../src/window_main.cpp" line="701"/>
|
||||
<location filename="../src/window_main.cpp" line="779"/>
|
||||
<source>Information</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="278"/>
|
||||
<location filename="../src/window_main.cpp" line="285"/>
|
||||
<source>Troubleshooting</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="279"/>
|
||||
<location filename="../src/window_main.cpp" line="286"/>
|
||||
<source>F.A.Q.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="327"/>
|
||||
<location filename="../src/window_main.cpp" line="334"/>
|
||||
<source>Your account has not been activated yet.
|
||||
You need to provide the activation token received in the activation email</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="741"/>
|
||||
<location filename="../src/window_main.cpp" line="748"/>
|
||||
<source>failed to start.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="744"/>
|
||||
<location filename="../src/window_main.cpp" line="751"/>
|
||||
<source>crashed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="747"/>
|
||||
<location filename="../src/window_main.cpp" line="754"/>
|
||||
<source>timed out.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="750"/>
|
||||
<location filename="../src/window_main.cpp" line="757"/>
|
||||
<source>write error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="753"/>
|
||||
<location filename="../src/window_main.cpp" line="760"/>
|
||||
<source>read error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="757"/>
|
||||
<location filename="../src/window_main.cpp" line="764"/>
|
||||
<source>unknown error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -4141,37 +4151,37 @@ You need to provide the activation token received in the activation email</sourc
|
|||
<context>
|
||||
<name>QMenuBar</name>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="515"/>
|
||||
<location filename="../src/window_main.cpp" line="522"/>
|
||||
<source>Services</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="516"/>
|
||||
<location filename="../src/window_main.cpp" line="523"/>
|
||||
<source>Hide %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="517"/>
|
||||
<location filename="../src/window_main.cpp" line="524"/>
|
||||
<source>Hide Others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="518"/>
|
||||
<location filename="../src/window_main.cpp" line="525"/>
|
||||
<source>Show All</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="519"/>
|
||||
<location filename="../src/window_main.cpp" line="526"/>
|
||||
<source>Preferences...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="520"/>
|
||||
<location filename="../src/window_main.cpp" line="527"/>
|
||||
<source>Quit %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="521"/>
|
||||
<location filename="../src/window_main.cpp" line="528"/>
|
||||
<source>About %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -4179,7 +4189,7 @@ You need to provide the activation token received in the activation email</sourc
|
|||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="212"/>
|
||||
<location filename="../src/window_main.cpp" line="219"/>
|
||||
<source>Cockatrice replays (*.cor)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5514,11 +5524,6 @@ Please enter a name:</source>
|
|||
<source>Check for card updates</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1448"/>
|
||||
<source>Diconnect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1449"/>
|
||||
<source>Exit</source>
|
||||
|
@ -5735,9 +5740,14 @@ Please enter a name:</source>
|
|||
<source>Untap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1448"/>
|
||||
<source>Disconnect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1500"/>
|
||||
<source>Unkeep</source>
|
||||
<source>Upkeep</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|