Configurable shortcuts
This commit is contained in:
parent
b0bf94e378
commit
beaa4e9383
17 changed files with 1075 additions and 409 deletions
|
@ -95,6 +95,8 @@ SET(cockatrice_SOURCES
|
|||
src/soundengine.cpp
|
||||
src/pending_command.cpp
|
||||
src/shortcutssettings.cpp
|
||||
src/sequenceEdit/secuenceedit.cpp
|
||||
src/sequenceEdit/shortcutstab.cpp
|
||||
${VERSION_STRING_CPP}
|
||||
)
|
||||
|
||||
|
|
|
@ -1,337 +1,329 @@
|
|||
<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>
|
||||
<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/countries/ad.svg</file>
|
||||
<file>resources/countries/ae.svg</file>
|
||||
<file>resources/countries/af.svg</file>
|
||||
<file>resources/countries/ag.svg</file>
|
||||
<file>resources/countries/ai.svg</file>
|
||||
<file>resources/countries/al.svg</file>
|
||||
<file>resources/countries/am.svg</file>
|
||||
<file>resources/countries/ao.svg</file>
|
||||
<file>resources/countries/aq.svg</file>
|
||||
<file>resources/countries/ar.svg</file>
|
||||
<file>resources/countries/as.svg</file>
|
||||
<file>resources/countries/at.svg</file>
|
||||
<file>resources/countries/au.svg</file>
|
||||
<file>resources/countries/aw.svg</file>
|
||||
<file>resources/countries/ax.svg</file>
|
||||
<file>resources/countries/az.svg</file>
|
||||
<file>resources/countries/ba.svg</file>
|
||||
<file>resources/countries/bb.svg</file>
|
||||
<file>resources/countries/bd.svg</file>
|
||||
<file>resources/countries/be.svg</file>
|
||||
<file>resources/countries/bf.svg</file>
|
||||
<file>resources/countries/bg.svg</file>
|
||||
<file>resources/countries/bh.svg</file>
|
||||
<file>resources/countries/bi.svg</file>
|
||||
<file>resources/countries/bj.svg</file>
|
||||
<file>resources/countries/bl.svg</file>
|
||||
<file>resources/countries/bm.svg</file>
|
||||
<file>resources/countries/bn.svg</file>
|
||||
<file>resources/countries/bo.svg</file>
|
||||
<file>resources/countries/bq.svg</file>
|
||||
<file>resources/countries/br.svg</file>
|
||||
<file>resources/countries/bs.svg</file>
|
||||
<file>resources/countries/bt.svg</file>
|
||||
<file>resources/countries/bv.svg</file>
|
||||
<file>resources/countries/bw.svg</file>
|
||||
<file>resources/countries/by.svg</file>
|
||||
<file>resources/countries/bz.svg</file>
|
||||
<file>resources/countries/ca.svg</file>
|
||||
<file>resources/countries/cc.svg</file>
|
||||
<file>resources/countries/cd.svg</file>
|
||||
<file>resources/countries/cf.svg</file>
|
||||
<file>resources/countries/cg.svg</file>
|
||||
<file>resources/countries/ch.svg</file>
|
||||
<file>resources/countries/ci.svg</file>
|
||||
<file>resources/countries/ck.svg</file>
|
||||
<file>resources/countries/cl.svg</file>
|
||||
<file>resources/countries/cm.svg</file>
|
||||
<file>resources/countries/cn.svg</file>
|
||||
<file>resources/countries/co.svg</file>
|
||||
<file>resources/countries/cr.svg</file>
|
||||
<file>resources/countries/cu.svg</file>
|
||||
<file>resources/countries/cv.svg</file>
|
||||
<file>resources/countries/cw.svg</file>
|
||||
<file>resources/countries/cx.svg</file>
|
||||
<file>resources/countries/cy.svg</file>
|
||||
<file>resources/countries/cz.svg</file>
|
||||
<file>resources/countries/de.svg</file>
|
||||
<file>resources/countries/dj.svg</file>
|
||||
<file>resources/countries/dk.svg</file>
|
||||
<file>resources/countries/dm.svg</file>
|
||||
<file>resources/countries/do.svg</file>
|
||||
<file>resources/countries/dz.svg</file>
|
||||
<file>resources/countries/ec.svg</file>
|
||||
<file>resources/countries/ee.svg</file>
|
||||
<file>resources/countries/eg.svg</file>
|
||||
<file>resources/countries/eh.svg</file>
|
||||
<file>resources/countries/er.svg</file>
|
||||
<file>resources/countries/es.svg</file>
|
||||
<file>resources/countries/et.svg</file>
|
||||
<file>resources/countries/fi.svg</file>
|
||||
<file>resources/countries/fj.svg</file>
|
||||
<file>resources/countries/fk.svg</file>
|
||||
<file>resources/countries/fm.svg</file>
|
||||
<file>resources/countries/fo.svg</file>
|
||||
<file>resources/countries/fr.svg</file>
|
||||
<file>resources/countries/ga.svg</file>
|
||||
<file>resources/countries/gb.svg</file>
|
||||
<file>resources/countries/gd.svg</file>
|
||||
<file>resources/countries/ge.svg</file>
|
||||
<file>resources/countries/gf.svg</file>
|
||||
<file>resources/countries/gg.svg</file>
|
||||
<file>resources/countries/gh.svg</file>
|
||||
<file>resources/countries/gi.svg</file>
|
||||
<file>resources/countries/gl.svg</file>
|
||||
<file>resources/countries/gm.svg</file>
|
||||
<file>resources/countries/gn.svg</file>
|
||||
<file>resources/countries/gp.svg</file>
|
||||
<file>resources/countries/gq.svg</file>
|
||||
<file>resources/countries/gr.svg</file>
|
||||
<file>resources/countries/gs.svg</file>
|
||||
<file>resources/countries/gt.svg</file>
|
||||
<file>resources/countries/gu.svg</file>
|
||||
<file>resources/countries/gw.svg</file>
|
||||
<file>resources/countries/gy.svg</file>
|
||||
<file>resources/countries/hk.svg</file>
|
||||
<file>resources/countries/hm.svg</file>
|
||||
<file>resources/countries/hn.svg</file>
|
||||
<file>resources/countries/hr.svg</file>
|
||||
<file>resources/countries/ht.svg</file>
|
||||
<file>resources/countries/hu.svg</file>
|
||||
<file>resources/countries/id.svg</file>
|
||||
<file>resources/countries/ie.svg</file>
|
||||
<file>resources/countries/il.svg</file>
|
||||
<file>resources/countries/im.svg</file>
|
||||
<file>resources/countries/in.svg</file>
|
||||
<file>resources/countries/io.svg</file>
|
||||
<file>resources/countries/iq.svg</file>
|
||||
<file>resources/countries/ir.svg</file>
|
||||
<file>resources/countries/is.svg</file>
|
||||
<file>resources/countries/it.svg</file>
|
||||
<file>resources/countries/je.svg</file>
|
||||
<file>resources/countries/jm.svg</file>
|
||||
<file>resources/countries/jo.svg</file>
|
||||
<file>resources/countries/jp.svg</file>
|
||||
<file>resources/countries/ke.svg</file>
|
||||
<file>resources/countries/kg.svg</file>
|
||||
<file>resources/countries/kh.svg</file>
|
||||
<file>resources/countries/ki.svg</file>
|
||||
<file>resources/countries/km.svg</file>
|
||||
<file>resources/countries/kn.svg</file>
|
||||
<file>resources/countries/kp.svg</file>
|
||||
<file>resources/countries/kr.svg</file>
|
||||
<file>resources/countries/kw.svg</file>
|
||||
<file>resources/countries/ky.svg</file>
|
||||
<file>resources/countries/kz.svg</file>
|
||||
<file>resources/countries/la.svg</file>
|
||||
<file>resources/countries/lb.svg</file>
|
||||
<file>resources/countries/lc.svg</file>
|
||||
<file>resources/countries/li.svg</file>
|
||||
<file>resources/countries/lk.svg</file>
|
||||
<file>resources/countries/lr.svg</file>
|
||||
<file>resources/countries/ls.svg</file>
|
||||
<file>resources/countries/lt.svg</file>
|
||||
<file>resources/countries/lu.svg</file>
|
||||
<file>resources/countries/lv.svg</file>
|
||||
<file>resources/countries/ly.svg</file>
|
||||
<file>resources/countries/ma.svg</file>
|
||||
<file>resources/countries/mc.svg</file>
|
||||
<file>resources/countries/md.svg</file>
|
||||
<file>resources/countries/me.svg</file>
|
||||
<file>resources/countries/mf.svg</file>
|
||||
<file>resources/countries/mg.svg</file>
|
||||
<file>resources/countries/mh.svg</file>
|
||||
<file>resources/countries/mk.svg</file>
|
||||
<file>resources/countries/ml.svg</file>
|
||||
<file>resources/countries/mm.svg</file>
|
||||
<file>resources/countries/mn.svg</file>
|
||||
<file>resources/countries/mo.svg</file>
|
||||
<file>resources/countries/mp.svg</file>
|
||||
<file>resources/countries/mq.svg</file>
|
||||
<file>resources/countries/mr.svg</file>
|
||||
<file>resources/countries/ms.svg</file>
|
||||
<file>resources/countries/mt.svg</file>
|
||||
<file>resources/countries/mu.svg</file>
|
||||
<file>resources/countries/mv.svg</file>
|
||||
<file>resources/countries/mw.svg</file>
|
||||
<file>resources/countries/mx.svg</file>
|
||||
<file>resources/countries/my.svg</file>
|
||||
<file>resources/countries/mz.svg</file>
|
||||
<file>resources/countries/na.svg</file>
|
||||
<file>resources/countries/nc.svg</file>
|
||||
<file>resources/countries/ne.svg</file>
|
||||
<file>resources/countries/nf.svg</file>
|
||||
<file>resources/countries/ng.svg</file>
|
||||
<file>resources/countries/ni.svg</file>
|
||||
<file>resources/countries/nl.svg</file>
|
||||
<file>resources/countries/no.svg</file>
|
||||
<file>resources/countries/np.svg</file>
|
||||
<file>resources/countries/nr.svg</file>
|
||||
<file>resources/countries/nu.svg</file>
|
||||
<file>resources/countries/nz.svg</file>
|
||||
<file>resources/countries/om.svg</file>
|
||||
<file>resources/countries/pa.svg</file>
|
||||
<file>resources/countries/pe.svg</file>
|
||||
<file>resources/countries/pf.svg</file>
|
||||
<file>resources/countries/pg.svg</file>
|
||||
<file>resources/countries/ph.svg</file>
|
||||
<file>resources/countries/pk.svg</file>
|
||||
<file>resources/countries/pl.svg</file>
|
||||
<file>resources/countries/pm.svg</file>
|
||||
<file>resources/countries/pn.svg</file>
|
||||
<file>resources/countries/pr.svg</file>
|
||||
<file>resources/countries/ps.svg</file>
|
||||
<file>resources/countries/pt.svg</file>
|
||||
<file>resources/countries/pw.svg</file>
|
||||
<file>resources/countries/py.svg</file>
|
||||
<file>resources/countries/qa.svg</file>
|
||||
<file>resources/countries/re.svg</file>
|
||||
<file>resources/countries/ro.svg</file>
|
||||
<file>resources/countries/rs.svg</file>
|
||||
<file>resources/countries/ru.svg</file>
|
||||
<file>resources/countries/rw.svg</file>
|
||||
<file>resources/countries/sa.svg</file>
|
||||
<file>resources/countries/sb.svg</file>
|
||||
<file>resources/countries/sc.svg</file>
|
||||
<file>resources/countries/sd.svg</file>
|
||||
<file>resources/countries/se.svg</file>
|
||||
<file>resources/countries/sg.svg</file>
|
||||
<file>resources/countries/sh.svg</file>
|
||||
<file>resources/countries/si.svg</file>
|
||||
<file>resources/countries/sj.svg</file>
|
||||
<file>resources/countries/sk.svg</file>
|
||||
<file>resources/countries/sl.svg</file>
|
||||
<file>resources/countries/sm.svg</file>
|
||||
<file>resources/countries/sn.svg</file>
|
||||
<file>resources/countries/so.svg</file>
|
||||
<file>resources/countries/sr.svg</file>
|
||||
<file>resources/countries/ss.svg</file>
|
||||
<file>resources/countries/st.svg</file>
|
||||
<file>resources/countries/sv.svg</file>
|
||||
<file>resources/countries/sx.svg</file>
|
||||
<file>resources/countries/sy.svg</file>
|
||||
<file>resources/countries/sz.svg</file>
|
||||
<file>resources/countries/tc.svg</file>
|
||||
<file>resources/countries/td.svg</file>
|
||||
<file>resources/countries/tf.svg</file>
|
||||
<file>resources/countries/tg.svg</file>
|
||||
<file>resources/countries/th.svg</file>
|
||||
<file>resources/countries/tj.svg</file>
|
||||
<file>resources/countries/tk.svg</file>
|
||||
<file>resources/countries/tl.svg</file>
|
||||
<file>resources/countries/tm.svg</file>
|
||||
<file>resources/countries/tn.svg</file>
|
||||
<file>resources/countries/to.svg</file>
|
||||
<file>resources/countries/tr.svg</file>
|
||||
<file>resources/countries/tt.svg</file>
|
||||
<file>resources/countries/tv.svg</file>
|
||||
<file>resources/countries/tw.svg</file>
|
||||
<file>resources/countries/tz.svg</file>
|
||||
<file>resources/countries/ua.svg</file>
|
||||
<file>resources/countries/ug.svg</file>
|
||||
<file>resources/countries/um.svg</file>
|
||||
<file>resources/countries/us.svg</file>
|
||||
<file>resources/countries/uy.svg</file>
|
||||
<file>resources/countries/uz.svg</file>
|
||||
<file>resources/countries/va.svg</file>
|
||||
<file>resources/countries/vc.svg</file>
|
||||
<file>resources/countries/ve.svg</file>
|
||||
<file>resources/countries/vg.svg</file>
|
||||
<file>resources/countries/vi.svg</file>
|
||||
<file>resources/countries/vn.svg</file>
|
||||
<file>resources/countries/vu.svg</file>
|
||||
<file>resources/countries/wf.svg</file>
|
||||
<file>resources/countries/ws.svg</file>
|
||||
<file>resources/countries/ye.svg</file>
|
||||
<file>resources/countries/yt.svg</file>
|
||||
<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/userlevels/normal.svg</file>
|
||||
<file>resources/userlevels/registered.svg</file>
|
||||
<file>resources/userlevels/registered_buddy.svg</file>
|
||||
<file>resources/userlevels/moderator.svg</file>
|
||||
<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>
|
||||
</qresource>
|
||||
<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>
|
||||
<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/countries/ad.svg</file>
|
||||
<file>resources/countries/ae.svg</file>
|
||||
<file>resources/countries/af.svg</file>
|
||||
<file>resources/countries/ag.svg</file>
|
||||
<file>resources/countries/ai.svg</file>
|
||||
<file>resources/countries/al.svg</file>
|
||||
<file>resources/countries/am.svg</file>
|
||||
<file>resources/countries/ao.svg</file>
|
||||
<file>resources/countries/aq.svg</file>
|
||||
<file>resources/countries/ar.svg</file>
|
||||
<file>resources/countries/as.svg</file>
|
||||
<file>resources/countries/at.svg</file>
|
||||
<file>resources/countries/au.svg</file>
|
||||
<file>resources/countries/aw.svg</file>
|
||||
<file>resources/countries/ax.svg</file>
|
||||
<file>resources/countries/az.svg</file>
|
||||
<file>resources/countries/ba.svg</file>
|
||||
<file>resources/countries/bb.svg</file>
|
||||
<file>resources/countries/bd.svg</file>
|
||||
<file>resources/countries/be.svg</file>
|
||||
<file>resources/countries/bf.svg</file>
|
||||
<file>resources/countries/bg.svg</file>
|
||||
<file>resources/countries/bh.svg</file>
|
||||
<file>resources/countries/bi.svg</file>
|
||||
<file>resources/countries/bj.svg</file>
|
||||
<file>resources/countries/bl.svg</file>
|
||||
<file>resources/countries/bm.svg</file>
|
||||
<file>resources/countries/bn.svg</file>
|
||||
<file>resources/countries/bo.svg</file>
|
||||
<file>resources/countries/bq.svg</file>
|
||||
<file>resources/countries/br.svg</file>
|
||||
<file>resources/countries/bs.svg</file>
|
||||
<file>resources/countries/bt.svg</file>
|
||||
<file>resources/countries/bv.svg</file>
|
||||
<file>resources/countries/bw.svg</file>
|
||||
<file>resources/countries/by.svg</file>
|
||||
<file>resources/countries/bz.svg</file>
|
||||
<file>resources/countries/ca.svg</file>
|
||||
<file>resources/countries/cc.svg</file>
|
||||
<file>resources/countries/cd.svg</file>
|
||||
<file>resources/countries/cf.svg</file>
|
||||
<file>resources/countries/cg.svg</file>
|
||||
<file>resources/countries/ch.svg</file>
|
||||
<file>resources/countries/ci.svg</file>
|
||||
<file>resources/countries/ck.svg</file>
|
||||
<file>resources/countries/cl.svg</file>
|
||||
<file>resources/countries/cm.svg</file>
|
||||
<file>resources/countries/cn.svg</file>
|
||||
<file>resources/countries/co.svg</file>
|
||||
<file>resources/countries/cr.svg</file>
|
||||
<file>resources/countries/cu.svg</file>
|
||||
<file>resources/countries/cv.svg</file>
|
||||
<file>resources/countries/cw.svg</file>
|
||||
<file>resources/countries/cx.svg</file>
|
||||
<file>resources/countries/cy.svg</file>
|
||||
<file>resources/countries/cz.svg</file>
|
||||
<file>resources/countries/de.svg</file>
|
||||
<file>resources/countries/dj.svg</file>
|
||||
<file>resources/countries/dk.svg</file>
|
||||
<file>resources/countries/dm.svg</file>
|
||||
<file>resources/countries/do.svg</file>
|
||||
<file>resources/countries/dz.svg</file>
|
||||
<file>resources/countries/ec.svg</file>
|
||||
<file>resources/countries/ee.svg</file>
|
||||
<file>resources/countries/eg.svg</file>
|
||||
<file>resources/countries/eh.svg</file>
|
||||
<file>resources/countries/er.svg</file>
|
||||
<file>resources/countries/es.svg</file>
|
||||
<file>resources/countries/et.svg</file>
|
||||
<file>resources/countries/fi.svg</file>
|
||||
<file>resources/countries/fj.svg</file>
|
||||
<file>resources/countries/fk.svg</file>
|
||||
<file>resources/countries/fm.svg</file>
|
||||
<file>resources/countries/fo.svg</file>
|
||||
<file>resources/countries/fr.svg</file>
|
||||
<file>resources/countries/ga.svg</file>
|
||||
<file>resources/countries/gb.svg</file>
|
||||
<file>resources/countries/gd.svg</file>
|
||||
<file>resources/countries/ge.svg</file>
|
||||
<file>resources/countries/gf.svg</file>
|
||||
<file>resources/countries/gg.svg</file>
|
||||
<file>resources/countries/gh.svg</file>
|
||||
<file>resources/countries/gi.svg</file>
|
||||
<file>resources/countries/gl.svg</file>
|
||||
<file>resources/countries/gm.svg</file>
|
||||
<file>resources/countries/gn.svg</file>
|
||||
<file>resources/countries/gp.svg</file>
|
||||
<file>resources/countries/gq.svg</file>
|
||||
<file>resources/countries/gr.svg</file>
|
||||
<file>resources/countries/gs.svg</file>
|
||||
<file>resources/countries/gt.svg</file>
|
||||
<file>resources/countries/gu.svg</file>
|
||||
<file>resources/countries/gw.svg</file>
|
||||
<file>resources/countries/gy.svg</file>
|
||||
<file>resources/countries/hk.svg</file>
|
||||
<file>resources/countries/hm.svg</file>
|
||||
<file>resources/countries/hn.svg</file>
|
||||
<file>resources/countries/hr.svg</file>
|
||||
<file>resources/countries/ht.svg</file>
|
||||
<file>resources/countries/hu.svg</file>
|
||||
<file>resources/countries/id.svg</file>
|
||||
<file>resources/countries/ie.svg</file>
|
||||
<file>resources/countries/il.svg</file>
|
||||
<file>resources/countries/im.svg</file>
|
||||
<file>resources/countries/in.svg</file>
|
||||
<file>resources/countries/io.svg</file>
|
||||
<file>resources/countries/iq.svg</file>
|
||||
<file>resources/countries/ir.svg</file>
|
||||
<file>resources/countries/is.svg</file>
|
||||
<file>resources/countries/it.svg</file>
|
||||
<file>resources/countries/je.svg</file>
|
||||
<file>resources/countries/jm.svg</file>
|
||||
<file>resources/countries/jo.svg</file>
|
||||
<file>resources/countries/jp.svg</file>
|
||||
<file>resources/countries/ke.svg</file>
|
||||
<file>resources/countries/kg.svg</file>
|
||||
<file>resources/countries/kh.svg</file>
|
||||
<file>resources/countries/ki.svg</file>
|
||||
<file>resources/countries/km.svg</file>
|
||||
<file>resources/countries/kn.svg</file>
|
||||
<file>resources/countries/kp.svg</file>
|
||||
<file>resources/countries/kr.svg</file>
|
||||
<file>resources/countries/kw.svg</file>
|
||||
<file>resources/countries/ky.svg</file>
|
||||
<file>resources/countries/kz.svg</file>
|
||||
<file>resources/countries/la.svg</file>
|
||||
<file>resources/countries/lb.svg</file>
|
||||
<file>resources/countries/lc.svg</file>
|
||||
<file>resources/countries/li.svg</file>
|
||||
<file>resources/countries/lk.svg</file>
|
||||
<file>resources/countries/lr.svg</file>
|
||||
<file>resources/countries/ls.svg</file>
|
||||
<file>resources/countries/lt.svg</file>
|
||||
<file>resources/countries/lu.svg</file>
|
||||
<file>resources/countries/lv.svg</file>
|
||||
<file>resources/countries/ly.svg</file>
|
||||
<file>resources/countries/ma.svg</file>
|
||||
<file>resources/countries/mc.svg</file>
|
||||
<file>resources/countries/md.svg</file>
|
||||
<file>resources/countries/me.svg</file>
|
||||
<file>resources/countries/mf.svg</file>
|
||||
<file>resources/countries/mg.svg</file>
|
||||
<file>resources/countries/mh.svg</file>
|
||||
<file>resources/countries/mk.svg</file>
|
||||
<file>resources/countries/ml.svg</file>
|
||||
<file>resources/countries/mm.svg</file>
|
||||
<file>resources/countries/mn.svg</file>
|
||||
<file>resources/countries/mo.svg</file>
|
||||
<file>resources/countries/mp.svg</file>
|
||||
<file>resources/countries/mq.svg</file>
|
||||
<file>resources/countries/mr.svg</file>
|
||||
<file>resources/countries/ms.svg</file>
|
||||
<file>resources/countries/mt.svg</file>
|
||||
<file>resources/countries/mu.svg</file>
|
||||
<file>resources/countries/mv.svg</file>
|
||||
<file>resources/countries/mw.svg</file>
|
||||
<file>resources/countries/mx.svg</file>
|
||||
<file>resources/countries/my.svg</file>
|
||||
<file>resources/countries/mz.svg</file>
|
||||
<file>resources/countries/na.svg</file>
|
||||
<file>resources/countries/nc.svg</file>
|
||||
<file>resources/countries/ne.svg</file>
|
||||
<file>resources/countries/nf.svg</file>
|
||||
<file>resources/countries/ng.svg</file>
|
||||
<file>resources/countries/ni.svg</file>
|
||||
<file>resources/countries/nl.svg</file>
|
||||
<file>resources/countries/no.svg</file>
|
||||
<file>resources/countries/np.svg</file>
|
||||
<file>resources/countries/nr.svg</file>
|
||||
<file>resources/countries/nu.svg</file>
|
||||
<file>resources/countries/nz.svg</file>
|
||||
<file>resources/countries/om.svg</file>
|
||||
<file>resources/countries/pa.svg</file>
|
||||
<file>resources/countries/pe.svg</file>
|
||||
<file>resources/countries/pf.svg</file>
|
||||
<file>resources/countries/pg.svg</file>
|
||||
<file>resources/countries/ph.svg</file>
|
||||
<file>resources/countries/pk.svg</file>
|
||||
<file>resources/countries/pl.svg</file>
|
||||
<file>resources/countries/pm.svg</file>
|
||||
<file>resources/countries/pn.svg</file>
|
||||
<file>resources/countries/pr.svg</file>
|
||||
<file>resources/countries/ps.svg</file>
|
||||
<file>resources/countries/pt.svg</file>
|
||||
<file>resources/countries/pw.svg</file>
|
||||
<file>resources/countries/py.svg</file>
|
||||
<file>resources/countries/qa.svg</file>
|
||||
<file>resources/countries/re.svg</file>
|
||||
<file>resources/countries/ro.svg</file>
|
||||
<file>resources/countries/rs.svg</file>
|
||||
<file>resources/countries/ru.svg</file>
|
||||
<file>resources/countries/rw.svg</file>
|
||||
<file>resources/countries/sa.svg</file>
|
||||
<file>resources/countries/sb.svg</file>
|
||||
<file>resources/countries/sc.svg</file>
|
||||
<file>resources/countries/sd.svg</file>
|
||||
<file>resources/countries/se.svg</file>
|
||||
<file>resources/countries/sg.svg</file>
|
||||
<file>resources/countries/sh.svg</file>
|
||||
<file>resources/countries/si.svg</file>
|
||||
<file>resources/countries/sj.svg</file>
|
||||
<file>resources/countries/sk.svg</file>
|
||||
<file>resources/countries/sl.svg</file>
|
||||
<file>resources/countries/sm.svg</file>
|
||||
<file>resources/countries/sn.svg</file>
|
||||
<file>resources/countries/so.svg</file>
|
||||
<file>resources/countries/sr.svg</file>
|
||||
<file>resources/countries/ss.svg</file>
|
||||
<file>resources/countries/st.svg</file>
|
||||
<file>resources/countries/sv.svg</file>
|
||||
<file>resources/countries/sx.svg</file>
|
||||
<file>resources/countries/sy.svg</file>
|
||||
<file>resources/countries/sz.svg</file>
|
||||
<file>resources/countries/tc.svg</file>
|
||||
<file>resources/countries/td.svg</file>
|
||||
<file>resources/countries/tf.svg</file>
|
||||
<file>resources/countries/tg.svg</file>
|
||||
<file>resources/countries/th.svg</file>
|
||||
<file>resources/countries/tj.svg</file>
|
||||
<file>resources/countries/tk.svg</file>
|
||||
<file>resources/countries/tl.svg</file>
|
||||
<file>resources/countries/tm.svg</file>
|
||||
<file>resources/countries/tn.svg</file>
|
||||
<file>resources/countries/to.svg</file>
|
||||
<file>resources/countries/tr.svg</file>
|
||||
<file>resources/countries/tt.svg</file>
|
||||
<file>resources/countries/tv.svg</file>
|
||||
<file>resources/countries/tw.svg</file>
|
||||
<file>resources/countries/tz.svg</file>
|
||||
<file>resources/countries/ua.svg</file>
|
||||
<file>resources/countries/ug.svg</file>
|
||||
<file>resources/countries/um.svg</file>
|
||||
<file>resources/countries/us.svg</file>
|
||||
<file>resources/countries/uy.svg</file>
|
||||
<file>resources/countries/uz.svg</file>
|
||||
<file>resources/countries/va.svg</file>
|
||||
<file>resources/countries/vc.svg</file>
|
||||
<file>resources/countries/ve.svg</file>
|
||||
<file>resources/countries/vg.svg</file>
|
||||
<file>resources/countries/vi.svg</file>
|
||||
<file>resources/countries/vn.svg</file>
|
||||
<file>resources/countries/vu.svg</file>
|
||||
<file>resources/countries/wf.svg</file>
|
||||
<file>resources/countries/ws.svg</file>
|
||||
<file>resources/countries/ye.svg</file>
|
||||
<file>resources/countries/yt.svg</file>
|
||||
<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/userlevels/normal.svg</file>
|
||||
<file>resources/userlevels/registered.svg</file>
|
||||
<file>resources/userlevels/registered_buddy.svg</file>
|
||||
<file>resources/userlevels/moderator.svg</file>
|
||||
<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>
|
||||
|
|
161
cockatrice/resources/icon_config_shorcuts.svg
Normal file
161
cockatrice/resources/icon_config_shorcuts.svg
Normal file
|
@ -0,0 +1,161 @@
|
|||
<?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="500"
|
||||
height="500"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="icon_config_shorcuts.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:path-effect
|
||||
effect="bend_path"
|
||||
id="path-effect3618"
|
||||
is_visible="true"
|
||||
bendpath="m 142.49072,814.69439 c 81.91729,17.90777 153.31508,14.77655 218.89021,0"
|
||||
prop_scale="1"
|
||||
scale_y_rel="false"
|
||||
vertical="false"
|
||||
bendpath-nodetypes="cc" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective4226"
|
||||
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="#linearGradient6464"
|
||||
id="linearGradient6470"
|
||||
x1="32.090908"
|
||||
y1="1.8181819"
|
||||
x2="31.09091"
|
||||
y2="62.909088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-0.1818182)" />
|
||||
<linearGradient
|
||||
id="linearGradient6464">
|
||||
<stop
|
||||
style="stop-color:#0061ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6466" />
|
||||
<stop
|
||||
style="stop-color:#001c4c;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop6468" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6482"
|
||||
id="linearGradient6488"
|
||||
x1="32.18182"
|
||||
y1="3.2835093"
|
||||
x2="32.18182"
|
||||
y2="13.02554"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)" />
|
||||
<linearGradient
|
||||
id="linearGradient6482">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6484" />
|
||||
<stop
|
||||
style="stop-color:#00ff00;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6486" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="13.02554"
|
||||
x2="32.18182"
|
||||
y1="3.2835093"
|
||||
x1="32.18182"
|
||||
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4241"
|
||||
xlink:href="#linearGradient6482"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.42293617"
|
||||
inkscape:cx="401.93458"
|
||||
inkscape:cy="251.13063"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="745"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-552.36218)">
|
||||
<g
|
||||
transform="matrix(7.8163235,0,0,7.8163235,-0.83292805,550.81868)"
|
||||
id="g4214">
|
||||
<rect
|
||||
ry="5.6363635"
|
||||
y="1.6363637"
|
||||
x="1.2727273"
|
||||
height="61.090908"
|
||||
width="61.636364"
|
||||
id="rect6462"
|
||||
style="fill:url(#linearGradient6470);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1" />
|
||||
<rect
|
||||
ry="4.7325583"
|
||||
y="2.7380548"
|
||||
x="2.1926003"
|
||||
height="13.251164"
|
||||
width="59.796619"
|
||||
id="rect6472"
|
||||
style="fill:url(#linearGradient4241);fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
</g>
|
||||
<image
|
||||
width="330.20697"
|
||||
height="335.80368"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,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 "
|
||||
id="image4221"
|
||||
x="89.958641"
|
||||
y="628.24109" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.6 KiB |
|
@ -67,15 +67,15 @@ void AbstractCounter::setShortcutsActive()
|
|||
{
|
||||
if (name == "life") {
|
||||
aSet->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"AbstractCounter/aSet",
|
||||
"Player/aSet",
|
||||
QKeySequence("Ctrl+L")));
|
||||
|
||||
aDec->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"AbstractCounter/aDec",
|
||||
"Player/aDec",
|
||||
QKeySequence("F11")));
|
||||
|
||||
aInc->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"AbstractCounter/aInc",
|
||||
"Player/aInc",
|
||||
QKeySequence("F12")));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "settingscache.h"
|
||||
#include "priceupdater.h"
|
||||
#include "soundengine.h"
|
||||
#include "sequenceEdit/shortcutstab.h"
|
||||
|
||||
#define LINKING_FAQ_URL "https://github.com/Cockatrice/Cockatrice/wiki/Custom-Download-URLs"
|
||||
|
||||
|
@ -858,6 +859,7 @@ DlgSettings::DlgSettings(QWidget *parent)
|
|||
pagesWidget->addWidget(new DeckEditorSettingsPage);
|
||||
pagesWidget->addWidget(new MessagesSettingsPage);
|
||||
pagesWidget->addWidget(new SoundSettingsPage);
|
||||
pagesWidget->addWidget(new ShortcutsTab);
|
||||
|
||||
createIcons();
|
||||
contentsWidget->setCurrentRow(0);
|
||||
|
@ -912,6 +914,11 @@ void DlgSettings::createIcons()
|
|||
soundButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||
soundButton->setIcon(QIcon(":/resources/icon_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"));
|
||||
|
||||
connect(contentsWidget, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem *)));
|
||||
}
|
||||
|
||||
|
@ -1021,6 +1028,7 @@ void DlgSettings::retranslateUi()
|
|||
deckEditorButton->setText(tr("Deck Editor"));
|
||||
messagesButton->setText(tr("Chat"));
|
||||
soundButton->setText(tr("Sound"));
|
||||
shortcutsButton->setText(tr("Shortcuts"));
|
||||
|
||||
for (int i = 0; i < pagesWidget->count(); i++)
|
||||
dynamic_cast<AbstractSettingsPage *>(pagesWidget->widget(i))->retranslateUi();
|
||||
|
|
|
@ -223,6 +223,7 @@ private:
|
|||
QListWidget *contentsWidget;
|
||||
QStackedWidget *pagesWidget;
|
||||
QListWidgetItem *generalButton, *appearanceButton, *userInterfaceButton, *deckEditorButton, *messagesButton, *soundButton;
|
||||
QListWidgetItem *shortcutsButton;
|
||||
void createIcons();
|
||||
void retranslateUi();
|
||||
protected:
|
||||
|
|
|
@ -21,7 +21,7 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent)
|
|||
|
||||
aCloseMostRecentZoneView = new QAction(this);
|
||||
aCloseMostRecentZoneView->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"GameView/aCloseMostRecentZoneView",
|
||||
"Player/aCloseMostRecentZoneView",
|
||||
QKeySequence("Esc")));
|
||||
connect(aCloseMostRecentZoneView, SIGNAL(triggered()), scene, SLOT(closeMostRecentZoneView()));
|
||||
addAction(aCloseMostRecentZoneView);
|
||||
|
|
|
@ -616,6 +616,7 @@ void Player::retranslateUi()
|
|||
{
|
||||
aViewGraveyard->setText(tr("&View graveyard"));
|
||||
aViewRfg->setText(tr("&View exile"));
|
||||
|
||||
playerMenu->setTitle(tr("Player \"%1\"").arg(QString::fromStdString(userInfo->name())));
|
||||
graveMenu->setTitle(tr("&Graveyard"));
|
||||
rfgMenu->setTitle(tr("&Exile"));
|
||||
|
@ -682,14 +683,32 @@ void Player::retranslateUi()
|
|||
}
|
||||
|
||||
aPlay->setText(tr("&Play"));
|
||||
aPlay->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aPlay", QKeySequence()));
|
||||
|
||||
aHide->setText(tr("&Hide"));
|
||||
aPlayFacedown->setText(tr("Play &Face Down"));
|
||||
|
||||
aTap->setText(tr("&Tap"));
|
||||
aTap->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aTap", QKeySequence()));
|
||||
|
||||
aUntap->setText(tr("&Untap"));
|
||||
aUntap->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aUntap", QKeySequence()));
|
||||
|
||||
aDoesntUntap->setText(tr("Toggle &normal untapping"));
|
||||
aDoesntUntap->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aDoesntUntap", QKeySequence()));
|
||||
|
||||
aFlip->setText(tr("&Flip"));
|
||||
aFlip->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aFlip", QKeySequence()));
|
||||
|
||||
aPeek->setText(tr("&Peek at card face"));
|
||||
aPeek->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aPeek", QKeySequence()));
|
||||
|
||||
aClone->setText(tr("&Clone"));
|
||||
aClone->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aClone", QKeySequence("Ctrl+J")));
|
||||
|
@ -699,7 +718,12 @@ void Player::retranslateUi()
|
|||
"Player/aAttach", QKeySequence("Ctrl+A")));
|
||||
|
||||
aUnattach->setText(tr("Unattac&h"));
|
||||
aUnattach->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aUnattach", QKeySequence()));
|
||||
|
||||
aDrawArrow->setText(tr("&Draw arrow..."));
|
||||
aDrawArrow->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aDrawArrow", QKeySequence()));
|
||||
|
||||
aIncP->setText(tr("&Increase power"));
|
||||
aIncP->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
|
@ -730,24 +754,71 @@ void Player::retranslateUi()
|
|||
"Player/aSetPT", QKeySequence("Ctrl+P")));
|
||||
|
||||
aSetAnnotation->setText(tr("&Set annotation..."));
|
||||
aSetAnnotation->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aSetAnnotation", QKeySequence()));
|
||||
|
||||
QStringList counterColors;
|
||||
counterColors.append(tr("Red"));
|
||||
counterColors.append(tr("Yellow"));
|
||||
counterColors.append(tr("Green"));
|
||||
for (int i = 0; i < aAddCounter.size(); ++i)
|
||||
|
||||
QList<QKeySequence> addCCShortCuts;
|
||||
addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aCCRed", QKeySequence()));
|
||||
addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aCCYellow", QKeySequence()));
|
||||
addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aCCGreen", QKeySequence()));
|
||||
|
||||
QList<QKeySequence> removeCCShortCuts;
|
||||
removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aRCRed", QKeySequence()));
|
||||
removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aRCYellow", QKeySequence()));
|
||||
removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aRCGreen", QKeySequence()));
|
||||
|
||||
QList<QKeySequence> setCCShortCuts;
|
||||
setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aSCRed", QKeySequence()));
|
||||
setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aSCYellow", QKeySequence()));
|
||||
setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/aSCGreen", QKeySequence()));
|
||||
|
||||
for (int i = 0; i < aAddCounter.size(); ++i){
|
||||
aAddCounter[i]->setText(tr("&Add counter (%1)").arg(counterColors[i]));
|
||||
for (int i = 0; i < aRemoveCounter.size(); ++i)
|
||||
aAddCounter[i]->setShortcut(addCCShortCuts[i]);
|
||||
}
|
||||
for (int i = 0; i < aRemoveCounter.size(); ++i){
|
||||
aRemoveCounter[i]->setText(tr("&Remove counter (%1)").arg(counterColors[i]));
|
||||
for (int i = 0; i < aSetCounter.size(); ++i)
|
||||
aRemoveCounter[i]->setShortcut(removeCCShortCuts[i]);
|
||||
}
|
||||
for (int i = 0; i < aSetCounter.size(); ++i){
|
||||
aSetCounter[i]->setText(tr("&Set counters (%1)...").arg(counterColors[i]));
|
||||
aSetCounter[i]->setShortcut(setCCShortCuts[i]);
|
||||
}
|
||||
|
||||
aMoveToTopLibrary->setText(tr("&Top of library"));
|
||||
aMoveToTopLibrary->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aMoveToTopLibrary", QKeySequence()));
|
||||
|
||||
aMoveToBottomLibrary->setText(tr("&Bottom of library"));
|
||||
aMoveToBottomLibrary->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aMoveToBottomLibrary", QKeySequence()));
|
||||
|
||||
aMoveToHand->setText(tr("&Hand"));
|
||||
aMoveToHand->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aMoveToHand", QKeySequence()));
|
||||
|
||||
aMoveToGraveyard->setText(tr("&Graveyard"));
|
||||
aMoveToGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aMoveToGraveyard", QKeySequence("Ctrl+Del")));
|
||||
|
||||
aMoveToExile->setText(tr("&Exile"));
|
||||
|
||||
aMoveToExile->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aMoveToExile", QKeySequence()));
|
||||
|
||||
QMapIterator<QString, CardZone *> zoneIterator(zones);
|
||||
while (zoneIterator.hasNext())
|
||||
zoneIterator.next().value()->retranslateUi();
|
||||
|
@ -769,6 +840,9 @@ void Player::setShortcutsActive()
|
|||
aViewGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aViewGraveyard", QKeySequence("F4")));
|
||||
|
||||
aViewRfg->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aViewRfg", QKeySequence()));
|
||||
|
||||
aDrawCard->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"Player/aDrawCard", QKeySequence("Ctrl+D")));
|
||||
|
||||
|
@ -838,14 +912,11 @@ void Player::initSayMenu()
|
|||
QSettings settings;
|
||||
settings.beginGroup("messages");
|
||||
int count = settings.value("count", 0).toInt();
|
||||
QString base = settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/say", QKeySequence("Ctrl")).toString();
|
||||
base = base.append("+");
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
QAction *newAction = new QAction(settings.value(QString("msg%1").arg(i)).toString(), this);
|
||||
if (i <= 10){
|
||||
newAction->setShortcut(QKeySequence(base + QString::number((i + 1) % 10)));
|
||||
newAction->setShortcut(QKeySequence("Ctrl+" + QString::number((i + 1) % 10)));
|
||||
}
|
||||
connect(newAction, SIGNAL(triggered()), this, SLOT(actSayMessage()));
|
||||
sayMenu->addAction(newAction);
|
||||
|
@ -861,10 +932,6 @@ void Player::setDeck(const DeckLoader &_deck)
|
|||
predefinedTokens.clear();
|
||||
InnerDecklistNode *tokenZone = dynamic_cast<InnerDecklistNode *>(deck->getRoot()->findChild("tokens"));
|
||||
|
||||
QString base = settingsCache->shortcuts().getSingleShortcut(
|
||||
"Player/token", QKeySequence("Alt")).toString();
|
||||
base = base.append("+");
|
||||
|
||||
if (tokenZone)
|
||||
for (int i = 0; i < tokenZone->size(); ++i) {
|
||||
const QString tokenName = tokenZone->at(i)->getName();
|
||||
|
@ -872,7 +939,7 @@ void Player::setDeck(const DeckLoader &_deck)
|
|||
QAction *a = createPredefinedTokenMenu->addAction(tokenName);
|
||||
if (i < 10)
|
||||
{
|
||||
a->setShortcut(QKeySequence(base + QString::number((i + 1) % 10)));
|
||||
a->setShortcut(QKeySequence("Alt+" + QString::number((i + 1) % 10)));
|
||||
}
|
||||
connect(a, SIGNAL(triggered()), this, SLOT(actCreatePredefinedToken()));
|
||||
}
|
||||
|
|
150
cockatrice/src/sequenceEdit/secuenceedit.cpp
Normal file
150
cockatrice/src/sequenceEdit/secuenceedit.cpp
Normal file
|
@ -0,0 +1,150 @@
|
|||
#include "secuenceedit.h"
|
||||
#include "../settingscache.h"
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
#include <QHBoxLayout>
|
||||
#include <QEvent>
|
||||
#include <QKeyEvent>
|
||||
#include <QToolTip>
|
||||
|
||||
SecuenceEdit::SecuenceEdit(QString name, QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
this->shorcutName = name;
|
||||
currentKey = 0;
|
||||
maxKeys = 4;
|
||||
keys = 0;
|
||||
valid = false;
|
||||
|
||||
lineEdit = new QLineEdit(this);
|
||||
clearButton = new QPushButton("", this);
|
||||
defaultButton = new QPushButton("", this);
|
||||
|
||||
lineEdit->setMinimumWidth(100);
|
||||
clearButton->setMaximumWidth(lineEdit->height());
|
||||
defaultButton->setMaximumWidth(lineEdit->height());
|
||||
|
||||
clearButton->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
defaultButton->setIcon(QIcon(":/resources/icon_update.png"));
|
||||
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
layout->setContentsMargins(0,0,0,0);
|
||||
layout->setSpacing(0);
|
||||
layout->addWidget(lineEdit);
|
||||
layout->addWidget(clearButton);
|
||||
layout->addWidget(defaultButton);
|
||||
|
||||
connect(clearButton,SIGNAL(clicked()),this,SLOT(removeLastShortcut()));
|
||||
connect(defaultButton,SIGNAL(clicked()),this,SLOT(restoreDefault()));
|
||||
lineEdit->installEventFilter(this);
|
||||
|
||||
lineEdit->setText(settingsCache->shortcuts().getShortcutString(name));
|
||||
}
|
||||
|
||||
QString SecuenceEdit::getSecuence()
|
||||
{
|
||||
return lineEdit->text();
|
||||
}
|
||||
|
||||
void SecuenceEdit::removeLastShortcut()
|
||||
{
|
||||
QString secuences = lineEdit->text();
|
||||
if(!secuences.isEmpty())
|
||||
{
|
||||
if(secuences.lastIndexOf(";") > 0){
|
||||
QString valid = secuences.left(secuences.lastIndexOf(";"));
|
||||
lineEdit->setText(valid);
|
||||
}
|
||||
else
|
||||
lineEdit->clear();
|
||||
updateSettings();
|
||||
}
|
||||
}
|
||||
|
||||
void SecuenceEdit::restoreDefault()
|
||||
{
|
||||
lineEdit->setText(settingsCache->shortcuts().getDefaultShortcutString(shorcutName));
|
||||
updateSettings();
|
||||
}
|
||||
|
||||
bool SecuenceEdit::eventFilter(QObject *, QEvent * event)
|
||||
{
|
||||
if(event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease)
|
||||
{
|
||||
QKeyEvent * keyEvent = (QKeyEvent *) event;
|
||||
|
||||
if(event->type() == QEvent::KeyPress && !keyEvent->isAutoRepeat())
|
||||
processKey(keyEvent);
|
||||
else if (event->type() == QEvent::KeyRelease && !keyEvent->isAutoRepeat())
|
||||
finishShortcut();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void SecuenceEdit::processKey(QKeyEvent* e)
|
||||
{
|
||||
int key = e->key();
|
||||
if(key != Qt::Key_Control && key != Qt::Key_Shift
|
||||
&& key != Qt::Key_Meta && key != Qt::Key_Alt)
|
||||
{
|
||||
valid = true;
|
||||
key |= translateModifiers(e->modifiers(), e->text());
|
||||
}
|
||||
keys = key;
|
||||
currentKey++;
|
||||
if(currentKey >= key)
|
||||
finishShortcut();
|
||||
}
|
||||
|
||||
int SecuenceEdit::translateModifiers(Qt::KeyboardModifiers state, const QString &text)
|
||||
{
|
||||
int result = 0;
|
||||
// The shift modifier only counts when it is not used to type a symbol
|
||||
// that is only reachable using the shift key anyway
|
||||
if ((state & Qt::ShiftModifier) && (text.isEmpty() ||
|
||||
!text.at(0).isPrint() ||
|
||||
text.at(0).isLetterOrNumber() ||
|
||||
text.at(0).isSpace()))
|
||||
result |= Qt::SHIFT;
|
||||
|
||||
if (state & Qt::ControlModifier)
|
||||
result |= Qt::CTRL;
|
||||
if (state & Qt::MetaModifier)
|
||||
result |= Qt::META;
|
||||
if (state & Qt::AltModifier)
|
||||
result |= Qt::ALT;
|
||||
return result;
|
||||
}
|
||||
|
||||
void SecuenceEdit::finishShortcut()
|
||||
{
|
||||
QKeySequence secuence(keys);
|
||||
if(!secuence.isEmpty() && valid)
|
||||
{
|
||||
QString secuenceString = secuence.toString();
|
||||
if(settingsCache->shortcuts().isValid(shorcutName,secuenceString))
|
||||
{
|
||||
if(!lineEdit->text().isEmpty())
|
||||
{
|
||||
if(lineEdit->text().contains(secuenceString))
|
||||
return;
|
||||
lineEdit->setText(lineEdit->text() + ";");
|
||||
}
|
||||
lineEdit->setText(lineEdit->text() + secuenceString);
|
||||
}
|
||||
else
|
||||
{
|
||||
QToolTip::showText(lineEdit->mapToGlobal(QPoint()), tr("Shortcut already in use"));
|
||||
}
|
||||
}
|
||||
currentKey = 0;
|
||||
keys = 0;
|
||||
valid = false;
|
||||
updateSettings();
|
||||
}
|
||||
|
||||
void SecuenceEdit::updateSettings()
|
||||
{
|
||||
settingsCache->shortcuts().setShortcuts(shorcutName,lineEdit->text());
|
||||
}
|
||||
|
40
cockatrice/src/sequenceEdit/secuenceedit.h
Normal file
40
cockatrice/src/sequenceEdit/secuenceedit.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
#ifndef SECUENCEEDIT_H
|
||||
#define SECUENCEEDIT_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QKeySequence>
|
||||
|
||||
class QLineEdit;
|
||||
class QPushButton;
|
||||
class QEvent;
|
||||
|
||||
class SecuenceEdit : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SecuenceEdit(QString shorcutName, QWidget *parent = 0);
|
||||
QString getSecuence();
|
||||
signals:
|
||||
|
||||
private slots:
|
||||
void removeLastShortcut();
|
||||
void restoreDefault();
|
||||
protected:
|
||||
bool eventFilter(QObject *, QEvent *event);
|
||||
private:
|
||||
QString shorcutName;
|
||||
QLineEdit *lineEdit;
|
||||
QPushButton *clearButton;
|
||||
QPushButton *defaultButton;
|
||||
int keys;
|
||||
int currentKey;
|
||||
int maxKeys;
|
||||
bool valid;
|
||||
|
||||
void processKey(QKeyEvent *e);
|
||||
int translateModifiers(Qt::KeyboardModifiers state, const QString &text);
|
||||
void finishShortcut();
|
||||
void updateSettings();
|
||||
};
|
||||
|
||||
#endif // SECUENCEEDIT_H
|
18
cockatrice/src/sequenceEdit/shortcutstab.cpp
Normal file
18
cockatrice/src/sequenceEdit/shortcutstab.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
#include "shortcutstab.h"
|
||||
#include "ui_shortcutstab.h"
|
||||
|
||||
ShortcutsTab::ShortcutsTab() :
|
||||
ui(new Ui::shortcutsTab)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
void ShortcutsTab::retranslateUi()
|
||||
{
|
||||
ui->retranslateUi(this);
|
||||
}
|
||||
|
||||
ShortcutsTab::~ShortcutsTab()
|
||||
{
|
||||
delete ui;
|
||||
}
|
25
cockatrice/src/sequenceEdit/shortcutstab.h
Normal file
25
cockatrice/src/sequenceEdit/shortcutstab.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#ifndef SHORTCUTSTAB_H
|
||||
#define SHORTCUTSTAB_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include "../dlg_settings.h"
|
||||
|
||||
namespace Ui {
|
||||
class shortcutsTab;
|
||||
}
|
||||
|
||||
class ShortcutsTab : public AbstractSettingsPage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ShortcutsTab();
|
||||
void retranslateUi();
|
||||
~ShortcutsTab();
|
||||
|
||||
private:
|
||||
Ui::shortcutsTab *ui;
|
||||
};
|
||||
|
||||
#endif // SHORTCUTSTAB_H
|
|
@ -1,43 +1,38 @@
|
|||
#include "shortcutssettings.h"
|
||||
|
||||
#include <QDebug>
|
||||
QList<QKeySequence> ShortcutsSettings::parseSecuenceString(QString stringSecuence)
|
||||
{
|
||||
QStringList secuences = stringSecuence.split(";");
|
||||
QList<QKeySequence> secuenceList;
|
||||
for(QStringList::const_iterator ss = secuences.cbegin(); ss != secuences.cend(); ++ss)
|
||||
{
|
||||
secuenceList.append(QKeySequence(*ss, QKeySequence::PortableText));
|
||||
}
|
||||
|
||||
return secuenceList;
|
||||
}
|
||||
#include <QFile>
|
||||
|
||||
ShortcutsSettings::ShortcutsSettings(QString settingsPath, QObject *parent) : QObject(parent)
|
||||
{
|
||||
this->settingsFilePath = settingsPath;
|
||||
this->settingsFilePath.append("shortcuts.ini");
|
||||
fillDefaultShorcuts();
|
||||
shortCuts = QMap<QString,QList<QKeySequence> >(defaultShortCuts);
|
||||
|
||||
bool exists = QFile(settingsFilePath).exists();
|
||||
|
||||
QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
|
||||
|
||||
shortCutsFile.beginGroup("Custom");
|
||||
const QStringList customKeys = shortCutsFile.allKeys();
|
||||
for(QStringList::const_iterator it = customKeys.cbegin(); it != customKeys.cend(); ++it)
|
||||
{
|
||||
QString stringSecuence = shortCutsFile.value(*it).toString();
|
||||
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
|
||||
shortCuts.insert(*it, secuenceList);
|
||||
}
|
||||
shortCutsFile.endGroup();
|
||||
if(exists){
|
||||
shortCutsFile.beginGroup("Custom");
|
||||
const QStringList customKeys = shortCutsFile.allKeys();
|
||||
for(QStringList::const_iterator it = customKeys.cbegin(); it != customKeys.cend(); ++it)
|
||||
{
|
||||
QString stringSecuence = shortCutsFile.value(*it).toString();
|
||||
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
|
||||
shortCuts.insert(*it, secuenceList);
|
||||
}
|
||||
shortCutsFile.endGroup();
|
||||
|
||||
shortCutsFile.beginGroup("Defaults");
|
||||
const QStringList defaultKeys = shortCutsFile.allKeys();
|
||||
for(QStringList::const_iterator it = defaultKeys.cbegin(); it != defaultKeys.cend(); ++it)
|
||||
{
|
||||
QString stringSecuence = shortCutsFile.value(*it).toString();
|
||||
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
|
||||
defaultShortCuts.insert(*it, secuenceList);
|
||||
shortCutsFile.beginGroup("Defaults");
|
||||
const QStringList defaultKeys = shortCutsFile.allKeys();
|
||||
for(QStringList::const_iterator it = defaultKeys.cbegin(); it != defaultKeys.cend(); ++it)
|
||||
{
|
||||
QString stringSecuence = shortCutsFile.value(*it).toString();
|
||||
QList<QKeySequence> secuenceList = parseSecuenceString(stringSecuence);
|
||||
defaultShortCuts.insert(*it, secuenceList);
|
||||
}
|
||||
shortCutsFile.endGroup();
|
||||
}
|
||||
shortCutsFile.endGroup();
|
||||
}
|
||||
|
||||
QList<QKeySequence> ShortcutsSettings::getShortcut(QString name, QList<QKeySequence> defaultShortCut)
|
||||
|
@ -66,9 +61,14 @@ QKeySequence ShortcutsSettings::getSingleShortcut(QString name, QKeySequence def
|
|||
return getShortcut(name,defaultShortCut).at(0);
|
||||
}
|
||||
|
||||
QList<QKeySequence> ShortcutsSettings::getDefaultShortCut(QString name)
|
||||
QString ShortcutsSettings::getDefaultShortcutString(QString name)
|
||||
{
|
||||
return defaultShortCuts.value(name);
|
||||
return stringifySecuence(defaultShortCuts.value(name));
|
||||
}
|
||||
|
||||
QString ShortcutsSettings::getShortcutString(QString name)
|
||||
{
|
||||
return stringifySecuence(shortCuts.value(name));
|
||||
}
|
||||
|
||||
QString ShortcutsSettings::stringifySecuence(QList<QKeySequence> secuence) const
|
||||
|
@ -84,6 +84,18 @@ QString ShortcutsSettings::stringifySecuence(QList<QKeySequence> secuence) const
|
|||
return stringSecuence;
|
||||
}
|
||||
|
||||
QList<QKeySequence> ShortcutsSettings::parseSecuenceString(QString stringSecuence)
|
||||
{
|
||||
QStringList secuences = stringSecuence.split(";");
|
||||
QList<QKeySequence> secuenceList;
|
||||
for(QStringList::const_iterator ss = secuences.cbegin(); ss != secuences.cend(); ++ss)
|
||||
{
|
||||
secuenceList.append(QKeySequence(*ss, QKeySequence::PortableText));
|
||||
}
|
||||
|
||||
return secuenceList;
|
||||
}
|
||||
|
||||
void ShortcutsSettings::setShortcuts(QString name, QList<QKeySequence> secuence)
|
||||
{
|
||||
shortCuts[name] = secuence;
|
||||
|
@ -100,3 +112,136 @@ void ShortcutsSettings::setShortcuts(QString name, QKeySequence secuence)
|
|||
setShortcuts(name, QList<QKeySequence>() << secuence);
|
||||
}
|
||||
|
||||
void ShortcutsSettings::setShortcuts(QString name, QString secuences)
|
||||
{
|
||||
setShortcuts(name,parseSecuenceString(secuences));
|
||||
}
|
||||
|
||||
bool ShortcutsSettings::isValid(QString name, QString secuences)
|
||||
{
|
||||
QString checkKey = name.left(name.indexOf("/"));
|
||||
|
||||
QStringList stringSecuences = secuences.split(";");
|
||||
|
||||
QList<QString> allKeys = shortCuts.keys();
|
||||
for(int i=0; i < allKeys.size(); i++){
|
||||
QString key = allKeys.at(i);
|
||||
if(key.startsWith(checkKey) || key.startsWith("MainWindow") || checkKey.startsWith("MainWindow"))
|
||||
{
|
||||
QString storedSecuence = stringifySecuence(shortCuts.value(key));
|
||||
for(int j = 0; j < stringSecuences.size(); j++)
|
||||
{
|
||||
if(storedSecuence.contains(stringSecuences.at(j)))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ShortcutsSettings::fillDefaultShorcuts()
|
||||
{
|
||||
defaultShortCuts["MainWindow/aCheckCardUpdates"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aConnect"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aDeckEditor"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aDisconnect"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aExit"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aFullScreen"] = parseSecuenceString("Ctrl+F");
|
||||
defaultShortCuts["MainWindow/aRegister"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aSettings"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aSinglePlayer"] = parseSecuenceString("");
|
||||
defaultShortCuts["MainWindow/aWatchReplay"] = parseSecuenceString("");
|
||||
|
||||
defaultShortCuts["TabDeckEditor/aAnalyzeDeck"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aClearFilterAll"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aClearFilterOne"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aClose"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aDecrement"] = parseSecuenceString("-");
|
||||
defaultShortCuts["TabDeckEditor/aEditSets"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aEditTokens"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aIncrement"] = parseSecuenceString("+");
|
||||
defaultShortCuts["TabDeckEditor/aLoadDeck"] = parseSecuenceString("Ctrl+O");
|
||||
defaultShortCuts["TabDeckEditor/aLoadDeckFromClipboard"] = parseSecuenceString("Ctrl+V");
|
||||
defaultShortCuts["TabDeckEditor/aNewDeck"] = parseSecuenceString("Ctrl+N");
|
||||
defaultShortCuts["TabDeckEditor/aOpenCustomFolder"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aPrintDeck"] = parseSecuenceString("Ctrl+P");
|
||||
defaultShortCuts["TabDeckEditor/aRemoveCard"] = parseSecuenceString("Del");
|
||||
defaultShortCuts["TabDeckEditor/aResetLayout"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aSaveDeck"] = parseSecuenceString("Ctrl+S");
|
||||
defaultShortCuts["TabDeckEditor/aSaveDeckAs"] = parseSecuenceString("");
|
||||
defaultShortCuts["TabDeckEditor/aSaveDeckToClipboard"] = parseSecuenceString("Ctrl+C");
|
||||
|
||||
defaultShortCuts["DeckViewContainer/loadLocalButton"] = parseSecuenceString("Ctrl+O");
|
||||
defaultShortCuts["DeckViewContainer/loadRemoteButton"] = parseSecuenceString("Ctrl+Alt+O");
|
||||
|
||||
defaultShortCuts["Player/aDec"] = parseSecuenceString("F11");
|
||||
defaultShortCuts["Player/aInc"] = parseSecuenceString("F12");
|
||||
defaultShortCuts["Player/aSet"] = parseSecuenceString("Ctrl+L");
|
||||
defaultShortCuts["Player/aCloseMostRecentZoneView"] = parseSecuenceString("Esc");
|
||||
defaultShortCuts["Player/IncP"] = parseSecuenceString("Ctrl++");
|
||||
defaultShortCuts["Player/aAlwaysRevealTopCard"] = parseSecuenceString("Ctrl+N");
|
||||
defaultShortCuts["Player/aAttach"] = parseSecuenceString("Ctrl+A");
|
||||
defaultShortCuts["Player/aCCGreen"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aCCRed"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aCCYellow"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aClone"] = parseSecuenceString("Ctrl+J");
|
||||
defaultShortCuts["Player/aCreateAnotherToken"] = parseSecuenceString("Ctrl+G");
|
||||
defaultShortCuts["Player/aCreateToken"] = parseSecuenceString("Ctrl+T");
|
||||
defaultShortCuts["Player/aDecP"] = parseSecuenceString("Ctrl+-");
|
||||
defaultShortCuts["Player/aDecPT"] = parseSecuenceString("Ctrl+Alt+-");
|
||||
defaultShortCuts["Player/aDecT"] = parseSecuenceString("Alt+-");
|
||||
defaultShortCuts["Player/aDoesntUntap"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aDrawArrow"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aDrawCard"] = parseSecuenceString("Ctrl+D");
|
||||
defaultShortCuts["Player/aDrawCards"] = parseSecuenceString("Ctrl+E");
|
||||
defaultShortCuts["Player/aFlip"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aIncPT"] = parseSecuenceString("Ctrl+Alt++");
|
||||
defaultShortCuts["Player/aIncT"] = parseSecuenceString("Alt++");
|
||||
defaultShortCuts["Player/aMoveToBottomLibrary"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aMoveToExile"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aMoveToGraveyard"] = parseSecuenceString("Ctrl+Del");
|
||||
defaultShortCuts["Player/aMoveToHand"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aMoveToTopLibrary"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aMulligan"] = parseSecuenceString("Ctrl+M");
|
||||
defaultShortCuts["Player/aPeek"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aPlay"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aRCGreen"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aRCRed"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aRCYellow"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aRollDie"] = parseSecuenceString("Ctrl+I");
|
||||
defaultShortCuts["Player/aSCGreen"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aSCRed"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aSCYellow"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aSetAnnotation"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aSetPT"] = parseSecuenceString("Ctrl+P");
|
||||
defaultShortCuts["Player/aShuffle"] = parseSecuenceString("Ctrl+S");
|
||||
defaultShortCuts["Player/aTap"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aUnattach"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aUndoDraw"] = parseSecuenceString("Ctrl+Shift+D");
|
||||
defaultShortCuts["Player/aUntap"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aUntapAll"] = parseSecuenceString("Ctrl+U");
|
||||
defaultShortCuts["Player/aViewGraveyard"] = parseSecuenceString("F4");
|
||||
defaultShortCuts["Player/aViewLibrary"] = parseSecuenceString("F3");
|
||||
defaultShortCuts["Player/aViewRfg"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/aViewSideboard"] = parseSecuenceString("Ctrl+F3");
|
||||
defaultShortCuts["Player/aViewTopCards"] = parseSecuenceString("Ctrl+W");
|
||||
defaultShortCuts["Player/aConcede"] = parseSecuenceString("F2");
|
||||
defaultShortCuts["Player/aLeaveGame"] = parseSecuenceString("Ctrl+Q");
|
||||
defaultShortCuts["Player/aNextPhase"] = parseSecuenceString("Ctrl+Space;Tab");
|
||||
defaultShortCuts["Player/aNextTurn"] = parseSecuenceString("Ctrl+Return;Ctrl+Enter");
|
||||
defaultShortCuts["Player/aRemoveLocalArrows"] = parseSecuenceString("Ctrl+R");
|
||||
defaultShortCuts["Player/aRotateViewCCW"] = parseSecuenceString("Ctrl+[");
|
||||
defaultShortCuts["Player/aRotateViewCW"] = parseSecuenceString("Ctrl+]");
|
||||
defaultShortCuts["Player/phase0"] = parseSecuenceString("F5");
|
||||
defaultShortCuts["Player/phase1"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/phase10"] = parseSecuenceString("F10");
|
||||
defaultShortCuts["Player/phase2"] = parseSecuenceString("F6");
|
||||
defaultShortCuts["Player/phase3"] = parseSecuenceString("F7");
|
||||
defaultShortCuts["Player/phase4"] = parseSecuenceString("F8");
|
||||
defaultShortCuts["Player/phase5"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/phase6"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/phase7"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/phase8"] = parseSecuenceString("");
|
||||
defaultShortCuts["Player/phase9"] = parseSecuenceString("F9");
|
||||
}
|
||||
|
||||
|
|
|
@ -16,19 +16,20 @@ public:
|
|||
QList<QKeySequence> getShortcut(QString name, QList<QKeySequence> defaultShortCut);
|
||||
QList<QKeySequence> getShortcut(QString name, QKeySequence defaultShortCut);
|
||||
QKeySequence getSingleShortcut(QString name, QKeySequence defaultShortCut);
|
||||
QList<QKeySequence> getDefaultShortCut(QString name);
|
||||
|
||||
QString getDefaultShortcutString(QString name);
|
||||
QString getShortcutString(QString name);
|
||||
|
||||
void setShortcuts(QString name, QList<QKeySequence> secuence);
|
||||
void setShortcuts(QString name, QKeySequence secuence);
|
||||
void setShortcuts(QString name, QString secuences);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
bool isValid(QString name, QString secuences);
|
||||
private:
|
||||
QString settingsFilePath;
|
||||
QMap<QString,QList<QKeySequence> > shortCuts;
|
||||
QMap<QString,QList<QKeySequence> > defaultShortCuts;
|
||||
void fillDefaultShorcuts();
|
||||
|
||||
QString stringifySecuence(QList<QKeySequence> secuence) const;
|
||||
QList<QKeySequence> parseSecuenceString(QString stringSecuence);
|
||||
|
|
|
@ -254,26 +254,28 @@ void TabDeckEditor::createFiltersDock()
|
|||
void TabDeckEditor::createMenus()
|
||||
{
|
||||
aNewDeck = new QAction(QString(), this);
|
||||
connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck()));
|
||||
aNewDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aNewDeck",
|
||||
QKeySequence::New));
|
||||
connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck()));
|
||||
|
||||
aLoadDeck = new QAction(QString(), this);
|
||||
connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck()));
|
||||
aLoadDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aLoadDeck",
|
||||
QKeySequence::Open));
|
||||
connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck()));
|
||||
|
||||
aSaveDeck = new QAction(QString(), this);
|
||||
connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck()));
|
||||
aSaveDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aSaveDeck",
|
||||
QKeySequence::Save));
|
||||
|
||||
connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck()));
|
||||
aSaveDeckAs = new QAction(QString(), this);
|
||||
// aSaveDeckAs->setShortcuts(QKeySequence::SaveAs);
|
||||
connect(aSaveDeckAs, SIGNAL(triggered()), this, SLOT(actSaveDeckAs()));
|
||||
aSaveDeckAs->setShortcuts(QKeySequence::SaveAs);
|
||||
aSaveDeckAs->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aSaveDeckAs", QKeySequence()));
|
||||
|
||||
aLoadDeckFromClipboard = new QAction(QString(), this);
|
||||
connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard()));
|
||||
|
@ -288,24 +290,39 @@ void TabDeckEditor::createMenus()
|
|||
QKeySequence::Copy));
|
||||
|
||||
aPrintDeck = new QAction(QString(), this);
|
||||
connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck()));
|
||||
aPrintDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aPrintDeck",QKeySequence::Print));
|
||||
connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck()));
|
||||
|
||||
aAnalyzeDeck = new QAction(QString(), this);
|
||||
connect(aAnalyzeDeck, SIGNAL(triggered()), this, SLOT(actAnalyzeDeck()));
|
||||
aAnalyzeDeck->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aAnalyzeDeck", QKeySequence()));
|
||||
|
||||
aClose = new QAction(QString(), this);
|
||||
connect(aClose, SIGNAL(triggered()), this, SLOT(closeRequest()));
|
||||
aClose->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aClose", QKeySequence()));
|
||||
|
||||
aOpenCustomFolder = new QAction(QString(), this);
|
||||
connect(aOpenCustomFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomFolder()));
|
||||
aOpenCustomFolder->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aOpenCustomFolder", QKeySequence()));
|
||||
|
||||
aEditSets = new QAction(QString(), this);
|
||||
connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets()));
|
||||
aEditSets->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aEditSets", QKeySequence()));
|
||||
|
||||
aEditTokens = new QAction(QString(), this);
|
||||
connect(aEditTokens, SIGNAL(triggered()), this, SLOT(actEditTokens()));
|
||||
aEditTokens->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aEditTokens", QKeySequence()));
|
||||
|
||||
aResetLayout = new QAction(QString(), this);
|
||||
connect(aResetLayout,SIGNAL(triggered()),this,SLOT(restartLayout()));
|
||||
aResetLayout->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aResetLayout", QKeySequence()));
|
||||
|
||||
deckMenu = new QMenu(this);
|
||||
deckMenu->addAction(aNewDeck);
|
||||
|
@ -328,10 +345,14 @@ void TabDeckEditor::createMenus()
|
|||
aClearFilterAll = new QAction(QString(), this);
|
||||
aClearFilterAll->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
|
||||
connect(aClearFilterAll, SIGNAL(triggered()), this, SLOT(actClearFilterAll()));
|
||||
aClearFilterAll->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aClearFilterAll", QKeySequence()));
|
||||
|
||||
aClearFilterOne = new QAction(QString(), this);
|
||||
aClearFilterOne->setIcon(QIcon(":/resources/decrement.svg"));
|
||||
connect(aClearFilterOne, SIGNAL(triggered()), this, SLOT(actClearFilterOne()));
|
||||
aClearFilterOne->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabDeckEditor/aClearFilterOne", QKeySequence()));
|
||||
|
||||
dbMenu = new QMenu(this);
|
||||
dbMenu->addAction(aEditSets);
|
||||
|
|
|
@ -473,12 +473,17 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
|
|||
QAction *temp = new QAction(QString(), this);
|
||||
connect(temp, SIGNAL(triggered()), this, SLOT(actPhaseAction()));
|
||||
switch (i) {
|
||||
case 0: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase0" ,QKeySequence("F5"))); break;
|
||||
case 2: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase2" ,QKeySequence("F6"))); break;
|
||||
case 3: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase3" ,QKeySequence("F7"))); break;
|
||||
case 4: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase4" ,QKeySequence("F8"))); break;
|
||||
case 9: temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase9" ,QKeySequence("F9"))); break;
|
||||
case 10:temp->setShortcuts(settingsCache->shortcuts().getShortcut("TabGame/phase10" ,QKeySequence("F10"))); break;
|
||||
case 0: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase0" ,QKeySequence("F5"))); break;
|
||||
case 1: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase1" ,QKeySequence())); break;
|
||||
case 2: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase2" ,QKeySequence("F6"))); break;
|
||||
case 3: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase3" ,QKeySequence("F7"))); break;
|
||||
case 4: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase4" ,QKeySequence("F8"))); break;
|
||||
case 5: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase5" ,QKeySequence())); break;
|
||||
case 6: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase6" ,QKeySequence())); break;
|
||||
case 7: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase7" ,QKeySequence())); break;
|
||||
case 8: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase8" ,QKeySequence())); break;
|
||||
case 9: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase9" ,QKeySequence("F9"))); break;
|
||||
case 10:temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase10" ,QKeySequence("F10"))); break;
|
||||
default: ;
|
||||
}
|
||||
phasesMenu->addAction(temp);
|
||||
|
@ -550,7 +555,7 @@ void TabGame::retranslateUi()
|
|||
if (aNextPhase) {
|
||||
aNextPhase->setText(tr("Next &phase"));
|
||||
aNextPhase->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aNextPhase",
|
||||
"Player/aNextPhase",
|
||||
QList<QKeySequence>()
|
||||
<< QKeySequence("Ctrl+Space")
|
||||
<< QKeySequence("Tab")));
|
||||
|
@ -558,7 +563,7 @@ void TabGame::retranslateUi()
|
|||
if (aNextTurn) {
|
||||
aNextTurn->setText(tr("Next &turn"));
|
||||
aNextTurn->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aNextTurn",
|
||||
"Player/aNextTurn",
|
||||
QList<QKeySequence>()
|
||||
<< QKeySequence("Ctrl+Return")
|
||||
<< QKeySequence("Ctrl+Enter")));
|
||||
|
@ -566,19 +571,19 @@ void TabGame::retranslateUi()
|
|||
if (aRemoveLocalArrows) {
|
||||
aRemoveLocalArrows->setText(tr("&Remove all local arrows"));
|
||||
aRemoveLocalArrows->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aRemoveLocalArrows",
|
||||
"Player/aRemoveLocalArrows",
|
||||
QKeySequence("Ctrl+R")));
|
||||
}
|
||||
if (aRotateViewCW) {
|
||||
aRotateViewCW->setText(tr("Rotate View Cl&ockwise"));
|
||||
aRotateViewCW->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aRotateViewCW",
|
||||
"Player/aRotateViewCW",
|
||||
QKeySequence("Ctrl+]")));
|
||||
}
|
||||
if (aRotateViewCCW) {
|
||||
aRotateViewCCW->setText(tr("Rotate View Co&unterclockwise"));
|
||||
aRotateViewCCW->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aRotateViewCCW",
|
||||
"Player/aRotateViewCCW",
|
||||
QKeySequence("Ctrl+[")));
|
||||
}
|
||||
if (aGameInfo)
|
||||
|
@ -586,19 +591,19 @@ void TabGame::retranslateUi()
|
|||
if (aConcede) {
|
||||
aConcede->setText(tr("&Concede"));
|
||||
aConcede->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aRotateViewCCW",
|
||||
"Player/aConcede",
|
||||
QKeySequence("F2")));
|
||||
}
|
||||
if (aLeaveGame) {
|
||||
aLeaveGame->setText(tr("&Leave game"));
|
||||
aLeaveGame->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aLeaveGame",
|
||||
"Player/aLeaveGame",
|
||||
QKeySequence("Ctrl+Q")));
|
||||
}
|
||||
if (aCloseReplay) {
|
||||
aCloseReplay->setText(tr("C&lose replay"));
|
||||
aCloseReplay->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"TabGame/aCloseReplay",
|
||||
"Player/aCloseReplay",
|
||||
QKeySequence("Ctrl+Q")));
|
||||
}
|
||||
|
||||
|
|
|
@ -453,24 +453,54 @@ void MainWindow::retranslateUi()
|
|||
setClientStatusTitle();
|
||||
|
||||
aConnect->setText(tr("&Connect..."));
|
||||
aConnect->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aConnect", QKeySequence()));
|
||||
|
||||
aDisconnect->setText(tr("&Disconnect"));
|
||||
aDisconnect->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aDisconnect", QKeySequence()));
|
||||
|
||||
aSinglePlayer->setText(tr("Start &local game..."));
|
||||
aSinglePlayer->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aSinglePlayer", QKeySequence()));
|
||||
|
||||
aWatchReplay->setText(tr("&Watch replay..."));
|
||||
aWatchReplay->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aWatchReplay", QKeySequence()));
|
||||
|
||||
aDeckEditor->setText(tr("&Deck editor"));
|
||||
aDeckEditor->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aDeckEditor", QKeySequence()));
|
||||
|
||||
aFullScreen->setText(tr("&Full screen"));
|
||||
aFullScreen->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aFullScreen", QKeySequence("Ctrl+F")));
|
||||
aFullScreen->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aFullScreen", QKeySequence("Ctrl+F")));
|
||||
|
||||
aRegister->setText(tr("&Register to server..."));
|
||||
aRegister->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aRegister", QKeySequence()));
|
||||
|
||||
aSettings->setText(tr("&Settings..."));
|
||||
aSettings->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aSettings", QKeySequence()));
|
||||
|
||||
aExit->setText(tr("&Exit"));
|
||||
aExit->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aExit", QKeySequence()));
|
||||
|
||||
#if defined(__APPLE__) /* For OSX */
|
||||
cockatriceMenu->setTitle(tr("A&ctions"));
|
||||
#else
|
||||
cockatriceMenu->setTitle(tr("&Cockatrice"));
|
||||
#endif
|
||||
|
||||
aAbout->setText(tr("&About Cockatrice"));
|
||||
helpMenu->setTitle(tr("&Help"));
|
||||
|
||||
aCheckCardUpdates->setText(tr("Check for card updates..."));
|
||||
aCheckCardUpdates->setShortcuts(settingsCache->shortcuts().getShortcut(
|
||||
"MainWindow/aCheckCardUpdates",
|
||||
QKeySequence()));
|
||||
|
||||
tabSupervisor->retranslateUi();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue