diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt
index bee7311d..c91e693d 100644
--- a/cockatrice/CMakeLists.txt
+++ b/cockatrice/CMakeLists.txt
@@ -94,6 +94,9 @@ SET(cockatrice_SOURCES
src/qt-json/json.cpp
src/soundengine.cpp
src/pending_command.cpp
+ src/shortcutssettings.cpp
+ src/sequenceEdit/sequenceedit.cpp
+ src/sequenceEdit/shortcutstab.cpp
${VERSION_STRING_CPP}
)
diff --git a/cockatrice/cockatrice.qrc b/cockatrice/cockatrice.qrc
index ebf5f44e..2e66b2df 100644
--- a/cockatrice/cockatrice.qrc
+++ b/cockatrice/cockatrice.qrc
@@ -1,337 +1,329 @@
-
- resources/back.svg
- resources/lock.svg
- resources/icon_delete.svg
- resources/icon_tab_changed.svg
- resources/icon_config_general.svg
- resources/icon_config_appearance.svg
- resources/icon_config_interface.svg
- resources/icon_config_messages.svg
- resources/icon_config_deckeditor.svg
- resources/icon_config_sound.svg
- resources/phases/icon_phase_untap.svg
- resources/phases/icon_phase_upkeep.svg
- resources/phases/icon_phase_draw.svg
- resources/phases/icon_phase_main1.svg
- resources/phases/icon_phase_combat_start.svg
- resources/phases/icon_phase_combat_attackers.svg
- resources/phases/icon_phase_combat_blockers.svg
- resources/phases/icon_phase_combat_damage.svg
- resources/phases/icon_phase_combat_end.svg
- resources/phases/icon_phase_main2.svg
- resources/phases/icon_phase_cleanup.svg
- resources/phases/icon_phase_nextturn.svg
- resources/icon_settings.svg
- resources/hand.svg
- resources/pencil.svg
- resources/icon_search_black.svg
- resources/icon_clearsearch.svg
- resources/icon_update.png
- resources/icon_view.svg
- resources/hr.jpg
- resources/cockatrice.svg
-
- resources/add_to_sideboard.svg
- resources/decrement.svg
- resources/increment.svg
- resources/remove_row.svg
- resources/arrow_left_green.svg
- resources/arrow_right_green.svg
-
- resources/arrow_top_green.svg
- resources/arrow_up_green.svg
- resources/arrow_down_green.svg
- resources/arrow_bottom_green.svg
-
- resources/icon_ready_start.svg
- resources/icon_not_ready_start.svg
- resources/icon_conceded.svg
- resources/icon_player.svg
- resources/icon_spectator.svg
-
- resources/replay_start.svg
- resources/replay_fastforward.svg
- resources/replay_pause.svg
-
- resources/genders/male.svg
- resources/genders/female.svg
- resources/genders/unknown.svg
-
- resources/countries/ad.svg
- resources/countries/ae.svg
- resources/countries/af.svg
- resources/countries/ag.svg
- resources/countries/ai.svg
- resources/countries/al.svg
- resources/countries/am.svg
- resources/countries/ao.svg
- resources/countries/aq.svg
- resources/countries/ar.svg
- resources/countries/as.svg
- resources/countries/at.svg
- resources/countries/au.svg
- resources/countries/aw.svg
- resources/countries/ax.svg
- resources/countries/az.svg
- resources/countries/ba.svg
- resources/countries/bb.svg
- resources/countries/bd.svg
- resources/countries/be.svg
- resources/countries/bf.svg
- resources/countries/bg.svg
- resources/countries/bh.svg
- resources/countries/bi.svg
- resources/countries/bj.svg
- resources/countries/bl.svg
- resources/countries/bm.svg
- resources/countries/bn.svg
- resources/countries/bo.svg
- resources/countries/bq.svg
- resources/countries/br.svg
- resources/countries/bs.svg
- resources/countries/bt.svg
- resources/countries/bv.svg
- resources/countries/bw.svg
- resources/countries/by.svg
- resources/countries/bz.svg
- resources/countries/ca.svg
- resources/countries/cc.svg
- resources/countries/cd.svg
- resources/countries/cf.svg
- resources/countries/cg.svg
- resources/countries/ch.svg
- resources/countries/ci.svg
- resources/countries/ck.svg
- resources/countries/cl.svg
- resources/countries/cm.svg
- resources/countries/cn.svg
- resources/countries/co.svg
- resources/countries/cr.svg
- resources/countries/cu.svg
- resources/countries/cv.svg
- resources/countries/cw.svg
- resources/countries/cx.svg
- resources/countries/cy.svg
- resources/countries/cz.svg
- resources/countries/de.svg
- resources/countries/dj.svg
- resources/countries/dk.svg
- resources/countries/dm.svg
- resources/countries/do.svg
- resources/countries/dz.svg
- resources/countries/ec.svg
- resources/countries/ee.svg
- resources/countries/eg.svg
- resources/countries/eh.svg
- resources/countries/er.svg
- resources/countries/es.svg
- resources/countries/et.svg
- resources/countries/fi.svg
- resources/countries/fj.svg
- resources/countries/fk.svg
- resources/countries/fm.svg
- resources/countries/fo.svg
- resources/countries/fr.svg
- resources/countries/ga.svg
- resources/countries/gb.svg
- resources/countries/gd.svg
- resources/countries/ge.svg
- resources/countries/gf.svg
- resources/countries/gg.svg
- resources/countries/gh.svg
- resources/countries/gi.svg
- resources/countries/gl.svg
- resources/countries/gm.svg
- resources/countries/gn.svg
- resources/countries/gp.svg
- resources/countries/gq.svg
- resources/countries/gr.svg
- resources/countries/gs.svg
- resources/countries/gt.svg
- resources/countries/gu.svg
- resources/countries/gw.svg
- resources/countries/gy.svg
- resources/countries/hk.svg
- resources/countries/hm.svg
- resources/countries/hn.svg
- resources/countries/hr.svg
- resources/countries/ht.svg
- resources/countries/hu.svg
- resources/countries/id.svg
- resources/countries/ie.svg
- resources/countries/il.svg
- resources/countries/im.svg
- resources/countries/in.svg
- resources/countries/io.svg
- resources/countries/iq.svg
- resources/countries/ir.svg
- resources/countries/is.svg
- resources/countries/it.svg
- resources/countries/je.svg
- resources/countries/jm.svg
- resources/countries/jo.svg
- resources/countries/jp.svg
- resources/countries/ke.svg
- resources/countries/kg.svg
- resources/countries/kh.svg
- resources/countries/ki.svg
- resources/countries/km.svg
- resources/countries/kn.svg
- resources/countries/kp.svg
- resources/countries/kr.svg
- resources/countries/kw.svg
- resources/countries/ky.svg
- resources/countries/kz.svg
- resources/countries/la.svg
- resources/countries/lb.svg
- resources/countries/lc.svg
- resources/countries/li.svg
- resources/countries/lk.svg
- resources/countries/lr.svg
- resources/countries/ls.svg
- resources/countries/lt.svg
- resources/countries/lu.svg
- resources/countries/lv.svg
- resources/countries/ly.svg
- resources/countries/ma.svg
- resources/countries/mc.svg
- resources/countries/md.svg
- resources/countries/me.svg
- resources/countries/mf.svg
- resources/countries/mg.svg
- resources/countries/mh.svg
- resources/countries/mk.svg
- resources/countries/ml.svg
- resources/countries/mm.svg
- resources/countries/mn.svg
- resources/countries/mo.svg
- resources/countries/mp.svg
- resources/countries/mq.svg
- resources/countries/mr.svg
- resources/countries/ms.svg
- resources/countries/mt.svg
- resources/countries/mu.svg
- resources/countries/mv.svg
- resources/countries/mw.svg
- resources/countries/mx.svg
- resources/countries/my.svg
- resources/countries/mz.svg
- resources/countries/na.svg
- resources/countries/nc.svg
- resources/countries/ne.svg
- resources/countries/nf.svg
- resources/countries/ng.svg
- resources/countries/ni.svg
- resources/countries/nl.svg
- resources/countries/no.svg
- resources/countries/np.svg
- resources/countries/nr.svg
- resources/countries/nu.svg
- resources/countries/nz.svg
- resources/countries/om.svg
- resources/countries/pa.svg
- resources/countries/pe.svg
- resources/countries/pf.svg
- resources/countries/pg.svg
- resources/countries/ph.svg
- resources/countries/pk.svg
- resources/countries/pl.svg
- resources/countries/pm.svg
- resources/countries/pn.svg
- resources/countries/pr.svg
- resources/countries/ps.svg
- resources/countries/pt.svg
- resources/countries/pw.svg
- resources/countries/py.svg
- resources/countries/qa.svg
- resources/countries/re.svg
- resources/countries/ro.svg
- resources/countries/rs.svg
- resources/countries/ru.svg
- resources/countries/rw.svg
- resources/countries/sa.svg
- resources/countries/sb.svg
- resources/countries/sc.svg
- resources/countries/sd.svg
- resources/countries/se.svg
- resources/countries/sg.svg
- resources/countries/sh.svg
- resources/countries/si.svg
- resources/countries/sj.svg
- resources/countries/sk.svg
- resources/countries/sl.svg
- resources/countries/sm.svg
- resources/countries/sn.svg
- resources/countries/so.svg
- resources/countries/sr.svg
- resources/countries/ss.svg
- resources/countries/st.svg
- resources/countries/sv.svg
- resources/countries/sx.svg
- resources/countries/sy.svg
- resources/countries/sz.svg
- resources/countries/tc.svg
- resources/countries/td.svg
- resources/countries/tf.svg
- resources/countries/tg.svg
- resources/countries/th.svg
- resources/countries/tj.svg
- resources/countries/tk.svg
- resources/countries/tl.svg
- resources/countries/tm.svg
- resources/countries/tn.svg
- resources/countries/to.svg
- resources/countries/tr.svg
- resources/countries/tt.svg
- resources/countries/tv.svg
- resources/countries/tw.svg
- resources/countries/tz.svg
- resources/countries/ua.svg
- resources/countries/ug.svg
- resources/countries/um.svg
- resources/countries/us.svg
- resources/countries/uy.svg
- resources/countries/uz.svg
- resources/countries/va.svg
- resources/countries/vc.svg
- resources/countries/ve.svg
- resources/countries/vg.svg
- resources/countries/vi.svg
- resources/countries/vn.svg
- resources/countries/vu.svg
- resources/countries/wf.svg
- resources/countries/ws.svg
- resources/countries/ye.svg
- resources/countries/yt.svg
- resources/countries/za.svg
- resources/countries/zm.svg
- resources/countries/zw.svg
-
- resources/counters/w.svg
- resources/counters/w_highlight.svg
- resources/counters/u.svg
- resources/counters/u_highlight.svg
- resources/counters/b.svg
- resources/counters/b_highlight.svg
- resources/counters/r.svg
- resources/counters/r_highlight.svg
- resources/counters/g.svg
- resources/counters/g_highlight.svg
- resources/counters/storm.svg
- resources/counters/storm_highlight.svg
- resources/counters/general.svg
- resources/counters/general_highlight.svg
-
- resources/userlevels/normal.svg
- resources/userlevels/registered.svg
- resources/userlevels/registered_buddy.svg
- resources/userlevels/moderator.svg
- resources/userlevels/moderator_buddy.svg
- resources/userlevels/admin.svg
- resources/userlevels/admin_buddy.svg
-
- resources/news/exclamation_mark.svg
- resources/news/question_mark.svg
-
+
+ resources/back.svg
+ resources/lock.svg
+ resources/icon_delete.svg
+ resources/icon_tab_changed.svg
+ resources/icon_config_general.svg
+ resources/icon_config_appearance.svg
+ resources/icon_config_interface.svg
+ resources/icon_config_messages.svg
+ resources/icon_config_deckeditor.svg
+ resources/icon_config_sound.svg
+ resources/phases/icon_phase_untap.svg
+ resources/phases/icon_phase_upkeep.svg
+ resources/phases/icon_phase_draw.svg
+ resources/phases/icon_phase_main1.svg
+ resources/phases/icon_phase_combat_start.svg
+ resources/phases/icon_phase_combat_attackers.svg
+ resources/phases/icon_phase_combat_blockers.svg
+ resources/phases/icon_phase_combat_damage.svg
+ resources/phases/icon_phase_combat_end.svg
+ resources/phases/icon_phase_main2.svg
+ resources/phases/icon_phase_cleanup.svg
+ resources/phases/icon_phase_nextturn.svg
+ resources/icon_settings.svg
+ resources/hand.svg
+ resources/pencil.svg
+ resources/icon_search_black.svg
+ resources/icon_clearsearch.svg
+ resources/icon_update.png
+ resources/icon_view.svg
+ resources/hr.jpg
+ resources/cockatrice.svg
+ resources/add_to_sideboard.svg
+ resources/decrement.svg
+ resources/increment.svg
+ resources/remove_row.svg
+ resources/arrow_left_green.svg
+ resources/arrow_right_green.svg
+ resources/arrow_top_green.svg
+ resources/arrow_up_green.svg
+ resources/arrow_down_green.svg
+ resources/arrow_bottom_green.svg
+ resources/icon_ready_start.svg
+ resources/icon_not_ready_start.svg
+ resources/icon_conceded.svg
+ resources/icon_player.svg
+ resources/icon_spectator.svg
+ resources/replay_start.svg
+ resources/replay_fastforward.svg
+ resources/replay_pause.svg
+ resources/genders/male.svg
+ resources/genders/female.svg
+ resources/genders/unknown.svg
+ resources/countries/ad.svg
+ resources/countries/ae.svg
+ resources/countries/af.svg
+ resources/countries/ag.svg
+ resources/countries/ai.svg
+ resources/countries/al.svg
+ resources/countries/am.svg
+ resources/countries/ao.svg
+ resources/countries/aq.svg
+ resources/countries/ar.svg
+ resources/countries/as.svg
+ resources/countries/at.svg
+ resources/countries/au.svg
+ resources/countries/aw.svg
+ resources/countries/ax.svg
+ resources/countries/az.svg
+ resources/countries/ba.svg
+ resources/countries/bb.svg
+ resources/countries/bd.svg
+ resources/countries/be.svg
+ resources/countries/bf.svg
+ resources/countries/bg.svg
+ resources/countries/bh.svg
+ resources/countries/bi.svg
+ resources/countries/bj.svg
+ resources/countries/bl.svg
+ resources/countries/bm.svg
+ resources/countries/bn.svg
+ resources/countries/bo.svg
+ resources/countries/bq.svg
+ resources/countries/br.svg
+ resources/countries/bs.svg
+ resources/countries/bt.svg
+ resources/countries/bv.svg
+ resources/countries/bw.svg
+ resources/countries/by.svg
+ resources/countries/bz.svg
+ resources/countries/ca.svg
+ resources/countries/cc.svg
+ resources/countries/cd.svg
+ resources/countries/cf.svg
+ resources/countries/cg.svg
+ resources/countries/ch.svg
+ resources/countries/ci.svg
+ resources/countries/ck.svg
+ resources/countries/cl.svg
+ resources/countries/cm.svg
+ resources/countries/cn.svg
+ resources/countries/co.svg
+ resources/countries/cr.svg
+ resources/countries/cu.svg
+ resources/countries/cv.svg
+ resources/countries/cw.svg
+ resources/countries/cx.svg
+ resources/countries/cy.svg
+ resources/countries/cz.svg
+ resources/countries/de.svg
+ resources/countries/dj.svg
+ resources/countries/dk.svg
+ resources/countries/dm.svg
+ resources/countries/do.svg
+ resources/countries/dz.svg
+ resources/countries/ec.svg
+ resources/countries/ee.svg
+ resources/countries/eg.svg
+ resources/countries/eh.svg
+ resources/countries/er.svg
+ resources/countries/es.svg
+ resources/countries/et.svg
+ resources/countries/fi.svg
+ resources/countries/fj.svg
+ resources/countries/fk.svg
+ resources/countries/fm.svg
+ resources/countries/fo.svg
+ resources/countries/fr.svg
+ resources/countries/ga.svg
+ resources/countries/gb.svg
+ resources/countries/gd.svg
+ resources/countries/ge.svg
+ resources/countries/gf.svg
+ resources/countries/gg.svg
+ resources/countries/gh.svg
+ resources/countries/gi.svg
+ resources/countries/gl.svg
+ resources/countries/gm.svg
+ resources/countries/gn.svg
+ resources/countries/gp.svg
+ resources/countries/gq.svg
+ resources/countries/gr.svg
+ resources/countries/gs.svg
+ resources/countries/gt.svg
+ resources/countries/gu.svg
+ resources/countries/gw.svg
+ resources/countries/gy.svg
+ resources/countries/hk.svg
+ resources/countries/hm.svg
+ resources/countries/hn.svg
+ resources/countries/hr.svg
+ resources/countries/ht.svg
+ resources/countries/hu.svg
+ resources/countries/id.svg
+ resources/countries/ie.svg
+ resources/countries/il.svg
+ resources/countries/im.svg
+ resources/countries/in.svg
+ resources/countries/io.svg
+ resources/countries/iq.svg
+ resources/countries/ir.svg
+ resources/countries/is.svg
+ resources/countries/it.svg
+ resources/countries/je.svg
+ resources/countries/jm.svg
+ resources/countries/jo.svg
+ resources/countries/jp.svg
+ resources/countries/ke.svg
+ resources/countries/kg.svg
+ resources/countries/kh.svg
+ resources/countries/ki.svg
+ resources/countries/km.svg
+ resources/countries/kn.svg
+ resources/countries/kp.svg
+ resources/countries/kr.svg
+ resources/countries/kw.svg
+ resources/countries/ky.svg
+ resources/countries/kz.svg
+ resources/countries/la.svg
+ resources/countries/lb.svg
+ resources/countries/lc.svg
+ resources/countries/li.svg
+ resources/countries/lk.svg
+ resources/countries/lr.svg
+ resources/countries/ls.svg
+ resources/countries/lt.svg
+ resources/countries/lu.svg
+ resources/countries/lv.svg
+ resources/countries/ly.svg
+ resources/countries/ma.svg
+ resources/countries/mc.svg
+ resources/countries/md.svg
+ resources/countries/me.svg
+ resources/countries/mf.svg
+ resources/countries/mg.svg
+ resources/countries/mh.svg
+ resources/countries/mk.svg
+ resources/countries/ml.svg
+ resources/countries/mm.svg
+ resources/countries/mn.svg
+ resources/countries/mo.svg
+ resources/countries/mp.svg
+ resources/countries/mq.svg
+ resources/countries/mr.svg
+ resources/countries/ms.svg
+ resources/countries/mt.svg
+ resources/countries/mu.svg
+ resources/countries/mv.svg
+ resources/countries/mw.svg
+ resources/countries/mx.svg
+ resources/countries/my.svg
+ resources/countries/mz.svg
+ resources/countries/na.svg
+ resources/countries/nc.svg
+ resources/countries/ne.svg
+ resources/countries/nf.svg
+ resources/countries/ng.svg
+ resources/countries/ni.svg
+ resources/countries/nl.svg
+ resources/countries/no.svg
+ resources/countries/np.svg
+ resources/countries/nr.svg
+ resources/countries/nu.svg
+ resources/countries/nz.svg
+ resources/countries/om.svg
+ resources/countries/pa.svg
+ resources/countries/pe.svg
+ resources/countries/pf.svg
+ resources/countries/pg.svg
+ resources/countries/ph.svg
+ resources/countries/pk.svg
+ resources/countries/pl.svg
+ resources/countries/pm.svg
+ resources/countries/pn.svg
+ resources/countries/pr.svg
+ resources/countries/ps.svg
+ resources/countries/pt.svg
+ resources/countries/pw.svg
+ resources/countries/py.svg
+ resources/countries/qa.svg
+ resources/countries/re.svg
+ resources/countries/ro.svg
+ resources/countries/rs.svg
+ resources/countries/ru.svg
+ resources/countries/rw.svg
+ resources/countries/sa.svg
+ resources/countries/sb.svg
+ resources/countries/sc.svg
+ resources/countries/sd.svg
+ resources/countries/se.svg
+ resources/countries/sg.svg
+ resources/countries/sh.svg
+ resources/countries/si.svg
+ resources/countries/sj.svg
+ resources/countries/sk.svg
+ resources/countries/sl.svg
+ resources/countries/sm.svg
+ resources/countries/sn.svg
+ resources/countries/so.svg
+ resources/countries/sr.svg
+ resources/countries/ss.svg
+ resources/countries/st.svg
+ resources/countries/sv.svg
+ resources/countries/sx.svg
+ resources/countries/sy.svg
+ resources/countries/sz.svg
+ resources/countries/tc.svg
+ resources/countries/td.svg
+ resources/countries/tf.svg
+ resources/countries/tg.svg
+ resources/countries/th.svg
+ resources/countries/tj.svg
+ resources/countries/tk.svg
+ resources/countries/tl.svg
+ resources/countries/tm.svg
+ resources/countries/tn.svg
+ resources/countries/to.svg
+ resources/countries/tr.svg
+ resources/countries/tt.svg
+ resources/countries/tv.svg
+ resources/countries/tw.svg
+ resources/countries/tz.svg
+ resources/countries/ua.svg
+ resources/countries/ug.svg
+ resources/countries/um.svg
+ resources/countries/us.svg
+ resources/countries/uy.svg
+ resources/countries/uz.svg
+ resources/countries/va.svg
+ resources/countries/vc.svg
+ resources/countries/ve.svg
+ resources/countries/vg.svg
+ resources/countries/vi.svg
+ resources/countries/vn.svg
+ resources/countries/vu.svg
+ resources/countries/wf.svg
+ resources/countries/ws.svg
+ resources/countries/ye.svg
+ resources/countries/yt.svg
+ resources/countries/za.svg
+ resources/countries/zm.svg
+ resources/countries/zw.svg
+ resources/counters/w.svg
+ resources/counters/w_highlight.svg
+ resources/counters/u.svg
+ resources/counters/u_highlight.svg
+ resources/counters/b.svg
+ resources/counters/b_highlight.svg
+ resources/counters/r.svg
+ resources/counters/r_highlight.svg
+ resources/counters/g.svg
+ resources/counters/g_highlight.svg
+ resources/counters/storm.svg
+ resources/counters/storm_highlight.svg
+ resources/counters/general.svg
+ resources/counters/general_highlight.svg
+ resources/userlevels/normal.svg
+ resources/userlevels/registered.svg
+ resources/userlevels/registered_buddy.svg
+ resources/userlevels/moderator.svg
+ resources/userlevels/moderator_buddy.svg
+ resources/userlevels/admin.svg
+ resources/userlevels/admin_buddy.svg
+ resources/news/exclamation_mark.svg
+ resources/news/question_mark.svg
+ resources/icon_config_shorcuts.svg
+
diff --git a/cockatrice/resources/icon_config_shorcuts.svg b/cockatrice/resources/icon_config_shorcuts.svg
new file mode 100644
index 00000000..d52858cb
--- /dev/null
+++ b/cockatrice/resources/icon_config_shorcuts.svg
@@ -0,0 +1,161 @@
+
+
+
+
diff --git a/cockatrice/src/abstractcounter.cpp b/cockatrice/src/abstractcounter.cpp
index 6e6393e7..0b07d980 100644
--- a/cockatrice/src/abstractcounter.cpp
+++ b/cockatrice/src/abstractcounter.cpp
@@ -1,5 +1,6 @@
#include "abstractcounter.h"
#include "player.h"
+#include "settingscache.h"
#include
#include
#include
@@ -17,6 +18,8 @@ AbstractCounter::AbstractCounter(Player *_player, int _id, const QString &_name,
setAcceptHoverEvents(true);
#endif
+ shortcutActive = false;
+
if (player->getLocal()) {
menu = new QMenu(name);
aSet = new QAction(this);
@@ -39,6 +42,8 @@ AbstractCounter::AbstractCounter(Player *_player, int _id, const QString &_name,
} else
menu = 0;
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
retranslateUi();
}
@@ -65,14 +70,16 @@ void AbstractCounter::retranslateUi()
void AbstractCounter::setShortcutsActive()
{
if (name == "life") {
- aSet->setShortcut(QKeySequence("Ctrl+L"));
- aDec->setShortcut(QKeySequence("F11"));
- aInc->setShortcut(QKeySequence("F12"));
+ shortcutActive = true;
+ aSet->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aSet"));
+ aDec->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDec"));
+ aInc->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aInc"));
}
}
void AbstractCounter::setShortcutsInactive()
{
+ shortcutActive = false;
if (name == "life") {
aSet->setShortcut(QKeySequence());
aDec->setShortcut(QKeySequence());
@@ -80,6 +87,12 @@ void AbstractCounter::setShortcutsInactive()
}
}
+void AbstractCounter::refreshShortcuts()
+{
+ if(shortcutActive)
+ setShortcutsActive();
+}
+
void AbstractCounter::setValue(int _value)
{
value = _value;
diff --git a/cockatrice/src/abstractcounter.h b/cockatrice/src/abstractcounter.h
index 174cbf84..f5a04e9d 100644
--- a/cockatrice/src/abstractcounter.h
+++ b/cockatrice/src/abstractcounter.h
@@ -26,6 +26,7 @@ private:
bool dialogSemaphore, deleteAfterDialog;
bool shownInCounterArea;
private slots:
+ void refreshShortcuts();
void incrementCounter();
void setCounter();
public:
@@ -44,6 +45,7 @@ public:
void setShortcutsActive();
void setShortcutsInactive();
+ bool shortcutActive;
};
#endif
diff --git a/cockatrice/src/dlg_load_deck_from_clipboard.cpp b/cockatrice/src/dlg_load_deck_from_clipboard.cpp
index 67051c19..1c41cc1a 100644
--- a/cockatrice/src/dlg_load_deck_from_clipboard.cpp
+++ b/cockatrice/src/dlg_load_deck_from_clipboard.cpp
@@ -10,6 +10,7 @@
#include
#include "dlg_load_deck_from_clipboard.h"
#include "deck_loader.h"
+#include "settingscache.h"
DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
: QDialog(parent), deckList(0)
@@ -17,7 +18,6 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
contentsEdit = new QPlainTextEdit;
refreshButton = new QPushButton(tr("&Refresh"));
- refreshButton->setShortcut(QKeySequence("F5"));
connect(refreshButton, SIGNAL(clicked()), this, SLOT(actRefresh()));
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
@@ -35,6 +35,8 @@ DlgLoadDeckFromClipboard::DlgLoadDeckFromClipboard(QWidget *parent)
resize(500, 500);
actRefresh();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
}
void DlgLoadDeckFromClipboard::actRefresh()
@@ -42,6 +44,11 @@ void DlgLoadDeckFromClipboard::actRefresh()
contentsEdit->setPlainText(QApplication::clipboard()->text());
}
+void DlgLoadDeckFromClipboard::refreshShortcuts()
+{
+ refreshButton->setShortcut(settingsCache->shortcuts().getSingleShortcut("DlgLoadDeckFromClipboard/refreshButton"));
+}
+
void DlgLoadDeckFromClipboard::actOK()
{
QString buffer = contentsEdit->toPlainText();
diff --git a/cockatrice/src/dlg_load_deck_from_clipboard.h b/cockatrice/src/dlg_load_deck_from_clipboard.h
index 375c713d..ec133a1b 100644
--- a/cockatrice/src/dlg_load_deck_from_clipboard.h
+++ b/cockatrice/src/dlg_load_deck_from_clipboard.h
@@ -12,6 +12,7 @@ class DlgLoadDeckFromClipboard : public QDialog {
private slots:
void actOK();
void actRefresh();
+ void refreshShortcuts();
private:
DeckLoader *deckList;
public:
diff --git a/cockatrice/src/dlg_settings.cpp b/cockatrice/src/dlg_settings.cpp
index 6c9bd25e..da47aa8d 100644
--- a/cockatrice/src/dlg_settings.cpp
+++ b/cockatrice/src/dlg_settings.cpp
@@ -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"
@@ -863,6 +864,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);
@@ -917,6 +919,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 *)));
}
@@ -1026,6 +1033,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(pagesWidget->widget(i))->retranslateUi();
diff --git a/cockatrice/src/dlg_settings.h b/cockatrice/src/dlg_settings.h
index 56329f8c..208c9b63 100644
--- a/cockatrice/src/dlg_settings.h
+++ b/cockatrice/src/dlg_settings.h
@@ -224,6 +224,7 @@ private:
QListWidget *contentsWidget;
QStackedWidget *pagesWidget;
QListWidgetItem *generalButton, *appearanceButton, *userInterfaceButton, *deckEditorButton, *messagesButton, *soundButton;
+ QListWidgetItem *shortcutsButton;
void createIcons();
void retranslateUi();
protected:
diff --git a/cockatrice/src/gameview.cpp b/cockatrice/src/gameview.cpp
index 1c4a6984..2c5c6163 100644
--- a/cockatrice/src/gameview.cpp
+++ b/cockatrice/src/gameview.cpp
@@ -1,5 +1,6 @@
#include "gameview.h"
#include "gamescene.h"
+#include "settingscache.h"
#include
#include
#include
@@ -19,10 +20,11 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent)
connect(scene, SIGNAL(sigStopRubberBand()), this, SLOT(stopRubberBand()));
aCloseMostRecentZoneView = new QAction(this);
- aCloseMostRecentZoneView->setShortcut(QKeySequence("Esc"));
+
connect(aCloseMostRecentZoneView, SIGNAL(triggered()), scene, SLOT(closeMostRecentZoneView()));
addAction(aCloseMostRecentZoneView);
-
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
}
@@ -59,3 +61,8 @@ void GameView::stopRubberBand()
{
rubberBand->hide();
}
+
+void GameView::refreshShortcuts()
+{
+ aCloseMostRecentZoneView->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aCloseMostRecentZoneView"));
+}
diff --git a/cockatrice/src/gameview.h b/cockatrice/src/gameview.h
index e678f293..c5fdfe30 100644
--- a/cockatrice/src/gameview.h
+++ b/cockatrice/src/gameview.h
@@ -17,6 +17,7 @@ private slots:
void startRubberBand(const QPointF &selectionOrigin);
void resizeRubberBand(const QPointF &cursorPoint);
void stopRubberBand();
+ void refreshShortcuts();
public slots:
void updateSceneRect(const QRectF &rect);
public:
diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp
index 6e3eca54..1caeba45 100644
--- a/cockatrice/src/player.cpp
+++ b/cockatrice/src/player.cpp
@@ -454,6 +454,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare
rearrangeZones();
retranslateUi();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
}
Player::~Player()
@@ -616,6 +618,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"));
@@ -684,50 +687,45 @@ void Player::retranslateUi()
aPlay->setText(tr("&Play"));
aHide->setText(tr("&Hide"));
aPlayFacedown->setText(tr("Play &Face Down"));
-
aTap->setText(tr("&Tap"));
aUntap->setText(tr("&Untap"));
aDoesntUntap->setText(tr("Toggle &normal untapping"));
aFlip->setText(tr("&Flip"));
aPeek->setText(tr("&Peek at card face"));
aClone->setText(tr("&Clone"));
- aClone->setShortcut(QKeySequence("Ctrl+J"));
aAttach->setText(tr("Attac&h to card..."));
- aAttach->setShortcut(QKeySequence("Ctrl+A"));
aUnattach->setText(tr("Unattac&h"));
aDrawArrow->setText(tr("&Draw arrow..."));
aIncP->setText(tr("&Increase power"));
- aIncP->setShortcut(QKeySequence("Ctrl++"));
aDecP->setText(tr("&Decrease power"));
- aDecP->setShortcut(QKeySequence("Ctrl+-"));
aIncT->setText(tr("I&ncrease toughness"));
- aIncT->setShortcut(QKeySequence("Alt++"));
aDecT->setText(tr("D&ecrease toughness"));
- aDecT->setShortcut(QKeySequence("Alt+-"));
aIncPT->setText(tr("In&crease power and toughness"));
- aIncPT->setShortcut(QKeySequence("Ctrl+Alt++"));
aDecPT->setText(tr("Dec&rease power and toughness"));
- aDecPT->setShortcut(QKeySequence("Ctrl+Alt+-"));
aSetPT->setText(tr("Set &power and toughness..."));
- aSetPT->setShortcut(QKeySequence("Ctrl+P"));
aSetAnnotation->setText(tr("&Set annotation..."));
+
QStringList counterColors;
counterColors.append(tr("Red"));
counterColors.append(tr("Yellow"));
counterColors.append(tr("Green"));
- for (int i = 0; i < aAddCounter.size(); ++i)
+
+ 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)
+ }
+ 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)
+ }
+ for (int i = 0; i < aSetCounter.size(); ++i){
aSetCounter[i]->setText(tr("&Set counters (%1)...").arg(counterColors[i]));
+ }
+
aMoveToTopLibrary->setText(tr("&Top of library"));
aMoveToBottomLibrary->setText(tr("&Bottom of library"));
aMoveToHand->setText(tr("&Hand"));
aMoveToGraveyard->setText(tr("&Graveyard"));
- aMoveToGraveyard->setShortcut(QKeySequence("Ctrl+Del"));
aMoveToExile->setText(tr("&Exile"));
-
+
QMapIterator zoneIterator(zones);
while (zoneIterator.hasNext())
zoneIterator.next().value()->retranslateUi();
@@ -737,24 +735,73 @@ void Player::setShortcutsActive()
{
shortcutsActive = true;
- aViewSideboard->setShortcut(QKeySequence("Ctrl+F3"));
- aViewLibrary->setShortcut(QKeySequence("F3"));
- aViewTopCards->setShortcut(QKeySequence("Ctrl+W"));
- aViewGraveyard->setShortcut(QKeySequence("F4"));
- aDrawCard->setShortcut(QKeySequence("Ctrl+D"));
- aDrawCards->setShortcut(QKeySequence("Ctrl+E"));
- aUndoDraw->setShortcut(QKeySequence("Ctrl+Shift+D"));
- aMulligan->setShortcut(QKeySequence("Ctrl+M"));
- aShuffle->setShortcut(QKeySequence("Ctrl+S"));
- aUntapAll->setShortcut(QKeySequence("Ctrl+U"));
- aRollDie->setShortcut(QKeySequence("Ctrl+I"));
- aCreateToken->setShortcut(QKeySequence("Ctrl+T"));
- aCreateAnotherToken->setShortcut(QKeySequence("Ctrl+G"));
- aAlwaysRevealTopCard->setShortcut(QKeySequence("Ctrl+N"));
+ aPlay->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aPlay"));
+ aTap->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aTap"));
+ aUntap->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aUntap"));
+ aDoesntUntap->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDoesntUntap"));
+ aFlip->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aFlip"));
+ aPeek->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aPeek"));
+ aClone->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aClone"));
+ aAttach->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aAttach"));
+ aUnattach->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aUnattach"));
+ aDrawArrow->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDrawArrow"));
+ aIncP->setShortcuts(settingsCache->shortcuts().getShortcut("Player/IncP"));
+ aDecP->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecP"));
+ aIncT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aIncT"));
+ aDecT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecT"));
+ aIncPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aIncPT"));
+ aDecPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aDecPT"));
+ aSetPT->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aSetPT"));
+ aSetAnnotation->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aSetAnnotation"));
+ aMoveToTopLibrary->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToTopLibrary"));
+ aMoveToBottomLibrary->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToBottomLibrary"));
+ aMoveToHand->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToHand"));
+ aMoveToGraveyard->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToGraveyard"));
+ aMoveToExile->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aMoveToExile"));
+
+ QList addCCShortCuts;
+ addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCRed"));
+ addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCYellow"));
+ addCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aCCGreen"));
+
+ QList removeCCShortCuts;
+ removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCRed"));
+ removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCYellow"));
+ removeCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aRCGreen"));
+
+ QList setCCShortCuts;
+ setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCRed"));
+ setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCYellow"));
+ setCCShortCuts.append(settingsCache->shortcuts().getSingleShortcut("Player/aSCGreen"));
+
+ for (int i = 0; i < aAddCounter.size(); ++i){
+ aAddCounter[i]->setShortcut(addCCShortCuts.at(i));
+ }
+ for (int i = 0; i < aRemoveCounter.size(); ++i){
+ aRemoveCounter[i]->setShortcut(removeCCShortCuts.at(i));
+ }
+ for (int i = 0; i < aSetCounter.size(); ++i){
+ aSetCounter[i]->setShortcut(setCCShortCuts.at(i));
+ }
QMapIterator counterIterator(counters);
while (counterIterator.hasNext())
counterIterator.next().value()->setShortcutsActive();
+
+ aViewSideboard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewSideboard"));
+ aViewLibrary->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewLibrary"));
+ aViewTopCards->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewTopCards"));
+ aViewGraveyard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aViewGraveyard"));
+ aDrawCard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aDrawCard"));
+ aDrawCards->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aDrawCards"));
+ aUndoDraw->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aUndoDraw"));
+ aMulligan->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aMulligan"));
+ aShuffle->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aShuffle"));
+ aUntapAll->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aUntapAll"));
+ aRollDie->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aRollDie"));
+ aCreateToken->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aCreateToken"));
+ aCreateAnotherToken->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aCreateAnotherToken"));
+ aAlwaysRevealTopCard->setShortcut(settingsCache->shortcuts().getSingleShortcut("Player/aAlwaysRevealTopCard"));
}
void Player::setShortcutsInactive()
@@ -788,10 +835,12 @@ void Player::initSayMenu()
QSettings settings;
settings.beginGroup("messages");
int count = settings.value("count", 0).toInt();
+
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(QString("Ctrl+%1").arg((i + 1) % 10)));
+ if (i <= 10){
+ newAction->setShortcut(QKeySequence("Ctrl+" + QString::number((i + 1) % 10)));
+ }
connect(newAction, SIGNAL(triggered()), this, SLOT(actSayMessage()));
sayMenu->addAction(newAction);
}
@@ -805,13 +854,16 @@ void Player::setDeck(const DeckLoader &_deck)
createPredefinedTokenMenu->clear();
predefinedTokens.clear();
InnerDecklistNode *tokenZone = dynamic_cast(deck->getRoot()->findChild("tokens"));
+
if (tokenZone)
for (int i = 0; i < tokenZone->size(); ++i) {
const QString tokenName = tokenZone->at(i)->getName();
predefinedTokens.append(tokenName);
QAction *a = createPredefinedTokenMenu->addAction(tokenName);
if (i < 10)
+ {
a->setShortcut(QKeySequence("Alt+" + QString::number((i + 1) % 10)));
+ }
connect(a, SIGNAL(triggered()), this, SLOT(actCreatePredefinedToken()));
}
}
@@ -2238,6 +2290,12 @@ void Player::actPlayFacedown()
playCard(game->getActiveCard(), true, false);
}
+void Player::refreshShortcuts()
+{
+ if(shortcutsActive)
+ setShortcutsActive();
+}
+
void Player::updateCardMenu(CardItem *card)
{
QMenu *cardMenu = card->getCardMenu();
diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h
index 45baa7ae..5eb1a57f 100644
--- a/cockatrice/src/player.h
+++ b/cockatrice/src/player.h
@@ -159,6 +159,7 @@ private slots:
void actPlay();
void actHide();
void actPlayFacedown();
+ void refreshShortcuts();
private:
TabGame *game;
diff --git a/cockatrice/src/sequenceEdit/sequenceedit.cpp b/cockatrice/src/sequenceEdit/sequenceedit.cpp
new file mode 100644
index 00000000..1056b576
--- /dev/null
+++ b/cockatrice/src/sequenceEdit/sequenceedit.cpp
@@ -0,0 +1,155 @@
+#include "sequenceedit.h"
+#include "../settingscache.h"
+#include
+#include
+#include
+#include
+#include
+#include
+
+SequenceEdit::SequenceEdit(QString _shorcutName, QWidget *parent) : QWidget(parent)
+{
+ shorcutName = _shorcutName;
+ currentKey = 0;
+ maxKeys = 4;
+ keys = 0;
+ valid = false;
+
+ lineEdit = new QLineEdit(this);
+ clearButton = new QPushButton("", this);
+ defaultButton = new QPushButton("", this);
+
+ lineEdit->setMinimumWidth(70);
+ clearButton->setMaximumWidth(lineEdit->height());
+ defaultButton->setMaximumWidth(lineEdit->height());
+ clearButton->setMaximumHeight(lineEdit->height());
+ defaultButton->setMaximumHeight(lineEdit->height());
+
+ clearButton->setIcon(QIcon(":/resources/icon_clearsearch.svg"));
+ defaultButton->setIcon(QIcon(":/resources/icon_update.png"));
+
+ clearButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
+ defaultButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
+
+ QHBoxLayout *layout = new QHBoxLayout(this);
+ layout->setContentsMargins(0,0,0,0);
+ layout->setSpacing(1);
+ 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(shorcutName));
+}
+
+QString SequenceEdit::getSecuence()
+{
+ return lineEdit->text();
+}
+
+void SequenceEdit::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 SequenceEdit::restoreDefault()
+{
+ lineEdit->setText(settingsCache->shortcuts().getDefaultShortcutString(shorcutName));
+ updateSettings();
+}
+
+bool SequenceEdit::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 SequenceEdit::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 SequenceEdit::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 SequenceEdit::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 SequenceEdit::updateSettings()
+{
+ settingsCache->shortcuts().setShortcuts(shorcutName,lineEdit->text());
+}
+
diff --git a/cockatrice/src/sequenceEdit/sequenceedit.h b/cockatrice/src/sequenceEdit/sequenceedit.h
new file mode 100644
index 00000000..0a016c2c
--- /dev/null
+++ b/cockatrice/src/sequenceEdit/sequenceedit.h
@@ -0,0 +1,40 @@
+#ifndef SECUENCEEDIT_H
+#define SECUENCEEDIT_H
+
+#include
+#include
+
+class QLineEdit;
+class QPushButton;
+class QEvent;
+
+class SequenceEdit : public QWidget
+{
+ Q_OBJECT
+public:
+ SequenceEdit(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
diff --git a/cockatrice/src/sequenceEdit/shortcutstab.cpp b/cockatrice/src/sequenceEdit/shortcutstab.cpp
new file mode 100644
index 00000000..b28a1466
--- /dev/null
+++ b/cockatrice/src/sequenceEdit/shortcutstab.cpp
@@ -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;
+}
diff --git a/cockatrice/src/sequenceEdit/shortcutstab.h b/cockatrice/src/sequenceEdit/shortcutstab.h
new file mode 100644
index 00000000..c2e88d39
--- /dev/null
+++ b/cockatrice/src/sequenceEdit/shortcutstab.h
@@ -0,0 +1,25 @@
+#ifndef SHORTCUTSTAB_H
+#define SHORTCUTSTAB_H
+
+#include
+
+#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
diff --git a/cockatrice/src/sequenceEdit/ui_shortcutstab.h b/cockatrice/src/sequenceEdit/ui_shortcutstab.h
new file mode 100644
index 00000000..da61fd7c
--- /dev/null
+++ b/cockatrice/src/sequenceEdit/ui_shortcutstab.h
@@ -0,0 +1,1570 @@
+#ifndef UI_SHORTCUTSTAB_H
+#define UI_SHORTCUTSTAB_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "sequenceedit.h"
+
+QT_BEGIN_NAMESPACE
+
+class Ui_shortcutsTab
+{
+public:
+ QGridLayout *gridLayout_9;
+ QTabWidget *tabWidget;
+ QWidget *tab;
+ QGridLayout *gridLayout_3;
+ QGroupBox *groupBox;
+ QGridLayout *gridLayout_2;
+ QLabel *lbl_MainWindow_aDeckEditor;
+ SequenceEdit *MainWindow_aDeckEditor;
+ QLabel *lbl_MainWindow_aSinglePlayer;
+ SequenceEdit *MainWindow_aSinglePlayer;
+ QLabel *lbl_MainWindow_aWatchReplay;
+ QLabel *lbl_MainWindow_aConnect;
+ SequenceEdit *MainWindow_aConnect;
+ QLabel *lbl_MainWindow_aRegister;
+ QLabel *lbl_MainWindow_aFullScreen;
+ SequenceEdit *MainWindow_aFullScreen;
+ QLabel *lbl_MainWindow_aSettings;
+ SequenceEdit *MainWindow_aRegister;
+ QLabel *lbl_MainWindow_aCheckCardUpdates;
+ SequenceEdit *MainWindow_aSettings;
+ SequenceEdit *MainWindow_aCheckCardUpdates;
+ SequenceEdit *MainWindow_aWatchReplay;
+ SequenceEdit *MainWindow_aDisconnect;
+ QLabel *lbl_MainWindow_aDisconnect;
+ QLabel *lbl_MainWindow_aExit;
+ SequenceEdit *MainWindow_aExit;
+ QGroupBox *groupBox_2;
+ QGridLayout *gridLayout;
+ QLabel *lbl_TabDeckEditor_aAnalyzeDeck;
+ SequenceEdit *TabDeckEditor_aAnalyzeDeck;
+ QLabel *lbl_TabDeckEditor_aLoadDeckFromClipboard;
+ SequenceEdit *TabDeckEditor_aLoadDeckFromClipboard;
+ QLabel *lbl_TabDeckEditor_aClearFilterAll;
+ SequenceEdit *TabDeckEditor_aClearFilterAll;
+ QLabel *lbl_TabDeckEditor_aNewDeck;
+ SequenceEdit *TabDeckEditor_aNewDeck;
+ QLabel *lbl_TabDeckEditor_aClearFilterOne;
+ SequenceEdit *TabDeckEditor_aClearFilterOne;
+ QLabel *lbl_TabDeckEditor_aOpenCustomFolder;
+ SequenceEdit *TabDeckEditor_aOpenCustomFolder;
+ QLabel *lbl_TabDeckEditor_aClose;
+ SequenceEdit *TabDeckEditor_aClose;
+ QLabel *lbl_TabDeckEditor_aPrintDeck;
+ SequenceEdit *TabDeckEditor_aPrintDeck;
+ QLabel *lbl_TabDeckEditor_aEditSets;
+ SequenceEdit *TabDeckEditor_aEditSets;
+ QLabel *lbl_TabDeckEditor_aRemoveCard;
+ SequenceEdit *TabDeckEditor_aRemoveCard;
+ QLabel *lbl_TabDeckEditor_aEditTokens;
+ SequenceEdit *TabDeckEditor_aEditTokens;
+ QLabel *lbl_TabDeckEditor_aResetLayout;
+ SequenceEdit *TabDeckEditor_aResetLayout;
+ QLabel *lbl_TabDeckEditor_aIncrement;
+ SequenceEdit *TabDeckEditor_aIncrement;
+ QLabel *lbl_TabDeckEditor_aSaveDeck;
+ SequenceEdit *TabDeckEditor_aSaveDeck;
+ QLabel *lbl_TabDeckEditor_aDecrement;
+ SequenceEdit *TabDeckEditor_aDecrement;
+ QLabel *lbl_TabDeckEditor_aSaveDeckAs;
+ SequenceEdit *TabDeckEditor_aSaveDeckAs;
+ QLabel *lbl_TabDeckEditor_aLoadDeck;
+ SequenceEdit *TabDeckEditor_aLoadDeck;
+ QLabel *lbl_TabDeckEditor_aSaveDeckToClipboard;
+ SequenceEdit *TabDeckEditor_aSaveDeckToClipboard;
+ QGroupBox *groupBox_3;
+ QHBoxLayout *horizontalLayout;
+ QGroupBox *groupBox_4;
+ QGridLayout *gridLayout_4;
+ QLabel *lbl_abstractCounter_sSet;
+ SequenceEdit *abstractCounter_aSet;
+ QLabel *lbl_abstractCounter_aInc;
+ SequenceEdit *abstractCounter_Inc;
+ QLabel *lbl_abstractCounter_aDec;
+ SequenceEdit *abstractCounter_aDec;
+ QGroupBox *groupBox_5;
+ QGridLayout *gridLayout_6;
+ QLabel *lbl_Player_aSCRed;
+ SequenceEdit *Player_aSCRed;
+ QLabel *lbl_Player_aCCRed;
+ SequenceEdit *Player_aCCRed;
+ QLabel *lbl_Player_aRCRed;
+ SequenceEdit *Player_aRCRed;
+ QGroupBox *groupBox_6;
+ QGridLayout *gridLayout_7;
+ QLabel *lbl_Player_aSCGreen;
+ SequenceEdit *Player_aSCGreen;
+ QLabel *lbl_Player_aCCGreen;
+ SequenceEdit *Player_aCCGreen;
+ QLabel *lbl_Player_aRCGreen;
+ SequenceEdit *Player_aRCGreen;
+ QGroupBox *groupBox_7;
+ QGridLayout *gridLayout_8;
+ QLabel *lbl_Player_aSCYellow;
+ SequenceEdit *Player_aSCYellow;
+ QLabel *lbl_Player_aCCYellow;
+ SequenceEdit *Player_aCCYellow;
+ QLabel *lbl_Player_aRCYellow;
+ SequenceEdit *Player_aRCYellow;
+ QSpacerItem *verticalSpacer;
+ QWidget *tab_2;
+ QGridLayout *gridLayout_17;
+ QGroupBox *groupBox_9;
+ QVBoxLayout *verticalLayout;
+ QGroupBox *groupBox_12;
+ QGridLayout *gridLayout_12;
+ SequenceEdit *Player_aDecPT;
+ SequenceEdit *Player_aIncPT;
+ QLabel *lbl_Player_aIncPT;
+ QLabel *lbl_Player_aDecPT;
+ SequenceEdit *Player_aSetPT;
+ QLabel *lbl_Player_aSetPT;
+ QGroupBox *groupBox_11;
+ QGridLayout *gridLayout_11;
+ QLabel *lbl_Player_aDecT;
+ SequenceEdit *Player_aDecT;
+ QLabel *lbl_Player_aIncT;
+ SequenceEdit *Player_aIncT;
+ QGroupBox *groupBox_10;
+ QGridLayout *gridLayout_10;
+ QLabel *lbl_Player_aDecP;
+ SequenceEdit *Player_aDecP;
+ SequenceEdit *Player_IncP;
+ QLabel *lbl_Player_IncP;
+ QGroupBox *groupBox_8;
+ QGridLayout *gridLayout_5;
+ QLabel *lbl_TabGame_phase0;
+ SequenceEdit *TabGame_phase0;
+ QLabel *lbl_TabGame_phase1;
+ SequenceEdit *TabGame_phase1;
+ QLabel *lbl_TabGame_phase2;
+ SequenceEdit *TabGame_phase2;
+ QLabel *lbl_TabGame_phase3;
+ SequenceEdit *TabGame_phase3;
+ QLabel *lbl_TabGame_phase4;
+ SequenceEdit *TabGame_phase4;
+ QLabel *lbl_TabGame_phase5;
+ SequenceEdit *TabGame_phase5;
+ QLabel *lbl_TabGame_phase6;
+ QLabel *lbl_TabGame_phase7;
+ SequenceEdit *TabGame_phase6;
+ QLabel *lbl_TabGame_phase8;
+ SequenceEdit *TabGame_phase7;
+ QLabel *lbl_TabGame_phase9;
+ SequenceEdit *TabGame_phase8;
+ QLabel *lbl_TabGame_phase10;
+ SequenceEdit *TabGame_phase9;
+ QLabel *lbl_TabGame_aNextPhase;
+ SequenceEdit *TabGame_phase10;
+ QLabel *lbl_TabGame_aNextTurn;
+ SequenceEdit *TabGame_aNextPhase;
+ SequenceEdit *TabGame_aNextTurn;
+ QGroupBox *groupBox_13;
+ QGridLayout *gridLayout_13;
+ QLabel *lbl_Player_aTap;
+ SequenceEdit *Player_aTap;
+ QLabel *lbl_Player_aUntap;
+ SequenceEdit *Player_aUntap;
+ QLabel *lbl_Player_aUntapAll;
+ SequenceEdit *Player_aUntapAll;
+ QLabel *lbl_Player_aDoesntUntap;
+ SequenceEdit *Player_aDoesntUntap;
+ QLabel *lbl_Player_aFlip;
+ SequenceEdit *Player_aFlip;
+ QLabel *lbl_Player_aPeek;
+ SequenceEdit *Player_aPeek;
+ QLabel *lbl_Player_aPlay;
+ SequenceEdit *Player_aPlay;
+ QLabel *lbl_Player_aAttach;
+ SequenceEdit *Player_aAttach;
+ QLabel *lbl_Player_aUnattach;
+ SequenceEdit *Player_aUnattach;
+ QLabel *lbl_Player_aClone;
+ SequenceEdit *Player_aClone;
+ QLabel *lbl_Player_aCreateToken;
+ SequenceEdit *Player_aCreateToken;
+ QLabel *lbl_Player_aCreateAnotherToken;
+ SequenceEdit *Player_aCreateAnotherToken;
+ QLabel *lbl_Player_aSetAnnotation;
+ SequenceEdit *Player_aSetAnnotation;
+ QSpacerItem *verticalSpacer_2;
+ QWidget *tab_3;
+ QGridLayout *gridLayout_20;
+ QGroupBox *groupBox_15;
+ QGridLayout *gridLayout_15;
+ QLabel *lbl_Player_aMoveToBottomLibrary;
+ SequenceEdit *Player_aMoveToBottomLibrary;
+ QLabel *lbl_Player_aMoveToTopLibrary;
+ SequenceEdit *Player_aMoveToTopLibrary;
+ QLabel *lbl_Player_aMoveToGraveyard;
+ SequenceEdit *Player_aMoveToGraveyard;
+ QLabel *lbl_Player_aMoveToExile;
+ SequenceEdit *Player_aMoveToExile;
+ QLabel *lbl_Player_aMoveToHand;
+ SequenceEdit *Player_aMoveToHand;
+ QGroupBox *groupBox_16;
+ QGridLayout *gridLayout_16;
+ QLabel *lbl_Player_aViewGraveyard;
+ SequenceEdit *Player_aViewGraveyard;
+ QLabel *lbl_Player_aViewLibrary;
+ SequenceEdit *Player_aViewLibrary;
+ QLabel *lbl_Player_aViewTopCards;
+ SequenceEdit *Player_aViewTopCards;
+ QLabel *lbl_Player_aViewSideboard;
+ SequenceEdit *Player_aViewSideboard;
+ QLabel *lbl_Player_aViewRfg;
+ SequenceEdit *Player_aViewRfg;
+ QLabel *lbl_GameView_aCloseMostRecentZoneView;
+ SequenceEdit *GameView_aCloseMostRecentZoneView;
+ QGroupBox *groupBox_17;
+ QGridLayout *gridLayout_18;
+ SequenceEdit *DeckViewContainer_loadRemoteButton;
+ SequenceEdit *DeckViewContainer_loadLocalButton;
+ QLabel *lbl_DeckViewContainer_loadRemoteButton;
+ QLabel *lbl_DeckViewContainer_loadLocalButton;
+ QGroupBox *groupBox_18;
+ QGridLayout *gridLayout_19;
+ QLabel *lbl_Player_aDrawArrow;
+ SequenceEdit *Player_aDrawArrow;
+ QLabel *lbl_TabGame_aLeaveGame;
+ SequenceEdit *TabGame_aLeaveGame;
+ QLabel *lbl_TabGame_aRemoveLocalArrows;
+ SequenceEdit *TabGame_aRemoveLocalArrows;
+ QLabel *lbl_TabGame_aConcede;
+ SequenceEdit *TabGame_aConcede;
+ QLabel *lbl_Player_aRollDie;
+ SequenceEdit *Player_aRollDie;
+ QLabel *lbl_TabGame_aRotateViewCW;
+ SequenceEdit *TabGame_aRotateViewCW;
+ QLabel *lbl_Player_aShuffle;
+ SequenceEdit *Player_aShuffle;
+ QLabel *lbl_TabGame_aRotateViewCCW;
+ SequenceEdit *TabGame_aRotateViewCCW;
+ QGroupBox *groupBox_14;
+ QGridLayout *gridLayout_14;
+ QLabel *lbl_Player_aMulligan;
+ SequenceEdit *Player_aMulligan;
+ QLabel *lbl_Player_aDrawCard;
+ SequenceEdit *Player_aDrawCard;
+ QLabel *lbl_Player_aDrawCards;
+ SequenceEdit *Player_aDrawCards;
+ QLabel *lbl_Player_aUndoDraw;
+ SequenceEdit *Player_aUndoDraw;
+ QLabel *lbl_Player_aAlwaysRevealTopCard;
+ SequenceEdit *Player_aAlwaysRevealTopCard;
+ QSpacerItem *verticalSpacer_3;
+ QWidget * tab_4;
+
+ void setupUi(QWidget *shortcutsTab)
+ {
+ if (shortcutsTab->objectName().isEmpty())
+ shortcutsTab->setObjectName("shortcutsTab");
+ shortcutsTab->resize(819, 477);
+ gridLayout_9 = new QGridLayout(shortcutsTab);
+ gridLayout_9->setObjectName("gridLayout_9");
+ tabWidget = new QTabWidget(shortcutsTab);
+ tabWidget->setObjectName("tabWidget");
+ tab = new QWidget();
+ tab->setObjectName("tab");
+ gridLayout_3 = new QGridLayout(tab);
+ gridLayout_3->setObjectName("gridLayout_3");
+ groupBox = new QGroupBox(tab);
+ groupBox->setObjectName("groupBox");
+ gridLayout_2 = new QGridLayout(groupBox);
+ gridLayout_2->setObjectName("gridLayout_2");
+ lbl_MainWindow_aDeckEditor = new QLabel(groupBox);
+ lbl_MainWindow_aDeckEditor->setObjectName("lbl_MainWindow_aDeckEditor");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aDeckEditor, 1, 0, 1, 1);
+
+ MainWindow_aDeckEditor = new SequenceEdit("MainWindow/aDeckEditor",groupBox);
+ MainWindow_aDeckEditor->setObjectName("MainWindow_aDeckEditor");
+
+ gridLayout_2->addWidget(MainWindow_aDeckEditor, 1, 1, 1, 2);
+
+ lbl_MainWindow_aSinglePlayer = new QLabel(groupBox);
+ lbl_MainWindow_aSinglePlayer->setObjectName("lbl_MainWindow_aSinglePlayer");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aSinglePlayer, 2, 0, 1, 1);
+
+ MainWindow_aSinglePlayer = new SequenceEdit("MainWindow/aSinglePlayer",groupBox);
+ MainWindow_aSinglePlayer->setObjectName("MainWindow_aSinglePlayer");
+
+ gridLayout_2->addWidget(MainWindow_aSinglePlayer, 2, 1, 1, 2);
+
+ lbl_MainWindow_aWatchReplay = new QLabel(groupBox);
+ lbl_MainWindow_aWatchReplay->setObjectName("lbl_MainWindow_aWatchReplay");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aWatchReplay, 4, 0, 1, 1);
+
+ lbl_MainWindow_aConnect = new QLabel(groupBox);
+ lbl_MainWindow_aConnect->setObjectName("lbl_MainWindow_aConnect");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aConnect, 6, 0, 1, 1);
+
+ MainWindow_aConnect = new SequenceEdit("MainWindow/aConnect",groupBox);
+ MainWindow_aConnect->setObjectName("MainWindow_aConnect");
+
+ gridLayout_2->addWidget(MainWindow_aConnect, 6, 1, 1, 2);
+
+ lbl_MainWindow_aRegister = new QLabel(groupBox);
+ lbl_MainWindow_aRegister->setObjectName("lbl_MainWindow_aRegister");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aRegister, 10, 0, 1, 1);
+
+ lbl_MainWindow_aFullScreen = new QLabel(groupBox);
+ lbl_MainWindow_aFullScreen->setObjectName("lbl_MainWindow_aFullScreen");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aFullScreen, 9, 0, 1, 1);
+
+ MainWindow_aFullScreen = new SequenceEdit("MainWindow/aFullScreen",groupBox);
+ MainWindow_aFullScreen->setObjectName("MainWindow_aFullScreen");
+
+ gridLayout_2->addWidget(MainWindow_aFullScreen, 9, 1, 1, 2);
+
+ lbl_MainWindow_aSettings = new QLabel(groupBox);
+ lbl_MainWindow_aSettings->setObjectName("lbl_MainWindow_aSettings");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aSettings, 11, 0, 1, 1);
+
+ MainWindow_aRegister = new SequenceEdit("MainWindow/aRegister",groupBox);
+ MainWindow_aRegister->setObjectName("MainWindow_aRegister");
+
+ gridLayout_2->addWidget(MainWindow_aRegister, 10, 1, 1, 2);
+
+ lbl_MainWindow_aCheckCardUpdates = new QLabel(groupBox);
+ lbl_MainWindow_aCheckCardUpdates->setObjectName("lbl_MainWindow_aCheckCardUpdates");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aCheckCardUpdates, 0, 0, 1, 1);
+
+ MainWindow_aSettings = new SequenceEdit("MainWindow/aSettings",groupBox);
+ MainWindow_aSettings->setObjectName("MainWindow_aSettings");
+
+ gridLayout_2->addWidget(MainWindow_aSettings, 11, 1, 1, 2);
+
+ MainWindow_aCheckCardUpdates = new SequenceEdit("MainWindow/aCheckCardUpdates",groupBox);
+ MainWindow_aCheckCardUpdates->setObjectName("MainWindow_aCheckCardUpdates");
+
+ gridLayout_2->addWidget(MainWindow_aCheckCardUpdates, 0, 1, 1, 2);
+
+ MainWindow_aWatchReplay = new SequenceEdit("MainWindow/aWatchReplay",groupBox);
+ MainWindow_aWatchReplay->setObjectName("MainWindow_aWatchReplay");
+
+ gridLayout_2->addWidget(MainWindow_aWatchReplay, 4, 1, 1, 2);
+
+ MainWindow_aDisconnect = new SequenceEdit("MainWindow/aDisconnect",groupBox);
+ MainWindow_aDisconnect->setObjectName("MainWindow_aDisconnect");
+
+ gridLayout_2->addWidget(MainWindow_aDisconnect, 7, 1, 1, 2);
+
+ lbl_MainWindow_aDisconnect = new QLabel(groupBox);
+ lbl_MainWindow_aDisconnect->setObjectName("lbl_MainWindow_aDisconnect");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aDisconnect, 7, 0, 1, 1);
+
+ lbl_MainWindow_aExit = new QLabel(groupBox);
+ lbl_MainWindow_aExit->setObjectName("lbl_MainWindow_aExit");
+
+ gridLayout_2->addWidget(lbl_MainWindow_aExit, 8, 0, 1, 1);
+
+ MainWindow_aExit = new SequenceEdit("MainWindow/aExit",groupBox);
+ MainWindow_aExit->setObjectName("MainWindow_aExit");
+
+ gridLayout_2->addWidget(MainWindow_aExit, 8, 1, 1, 2);
+
+ gridLayout_3->addWidget(groupBox, 0, 0, 1, 1);
+
+ groupBox_2 = new QGroupBox(tab);
+ groupBox_2->setObjectName("groupBox_2");
+ gridLayout = new QGridLayout(groupBox_2);
+ gridLayout->setObjectName("gridLayout");
+ lbl_TabDeckEditor_aAnalyzeDeck = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aAnalyzeDeck->setObjectName("lbl_TabDeckEditor_aAnalyzeDeck");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aAnalyzeDeck, 0, 0, 1, 1);
+
+ TabDeckEditor_aAnalyzeDeck = new SequenceEdit("TabDeckEditor/aAnalyzeDeck",groupBox_2);
+ TabDeckEditor_aAnalyzeDeck->setObjectName("TabDeckEditor_aAnalyzeDeck");
+
+ gridLayout->addWidget(TabDeckEditor_aAnalyzeDeck, 0, 1, 1, 1);
+
+ lbl_TabDeckEditor_aLoadDeckFromClipboard = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aLoadDeckFromClipboard->setObjectName("lbl_TabDeckEditor_aLoadDeckFromClipboard");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aLoadDeckFromClipboard, 0, 2, 1, 1);
+
+ TabDeckEditor_aLoadDeckFromClipboard = new SequenceEdit("TabDeckEditor/aLoadDeckFromClipboard",groupBox_2);
+ TabDeckEditor_aLoadDeckFromClipboard->setObjectName("TabDeckEditor_aLoadDeckFromClipboard");
+
+ gridLayout->addWidget(TabDeckEditor_aLoadDeckFromClipboard, 0, 3, 1, 1);
+
+ lbl_TabDeckEditor_aClearFilterAll = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aClearFilterAll->setObjectName("lbl_TabDeckEditor_aClearFilterAll");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aClearFilterAll, 1, 0, 1, 1);
+
+ TabDeckEditor_aClearFilterAll = new SequenceEdit("TabDeckEditor/aClearFilterAll",groupBox_2);
+ TabDeckEditor_aClearFilterAll->setObjectName("TabDeckEditor_aClearFilterAll");
+
+ gridLayout->addWidget(TabDeckEditor_aClearFilterAll, 1, 1, 1, 1);
+
+ lbl_TabDeckEditor_aNewDeck = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aNewDeck->setObjectName("lbl_TabDeckEditor_aNewDeck");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aNewDeck, 1, 2, 1, 1);
+
+ TabDeckEditor_aNewDeck = new SequenceEdit("TabDeckEditor/aNewDeck",groupBox_2);
+ TabDeckEditor_aNewDeck->setObjectName("TabDeckEditor_aNewDeck");
+
+ gridLayout->addWidget(TabDeckEditor_aNewDeck, 1, 3, 1, 1);
+
+ lbl_TabDeckEditor_aClearFilterOne = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aClearFilterOne->setObjectName("lbl_TabDeckEditor_aClearFilterOne");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aClearFilterOne, 2, 0, 1, 1);
+
+ TabDeckEditor_aClearFilterOne = new SequenceEdit("TabDeckEditor/aClearFilterOne",groupBox_2);
+ TabDeckEditor_aClearFilterOne->setObjectName("TabDeckEditor_aClearFilterOne");
+
+ gridLayout->addWidget(TabDeckEditor_aClearFilterOne, 2, 1, 1, 1);
+
+ lbl_TabDeckEditor_aOpenCustomFolder = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aOpenCustomFolder->setObjectName("lbl_TabDeckEditor_aOpenCustomFolder");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aOpenCustomFolder, 2, 2, 1, 1);
+
+ TabDeckEditor_aOpenCustomFolder = new SequenceEdit("TabDeckEditor/aOpenCustomFolder",groupBox_2);
+ TabDeckEditor_aOpenCustomFolder->setObjectName("TabDeckEditor_aOpenCustomFolder");
+
+ gridLayout->addWidget(TabDeckEditor_aOpenCustomFolder, 2, 3, 1, 1);
+
+ lbl_TabDeckEditor_aClose = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aClose->setObjectName("lbl_TabDeckEditor_aClose");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aClose, 3, 0, 1, 1);
+
+ TabDeckEditor_aClose = new SequenceEdit("TabDeckEditor/aClose",groupBox_2);
+ TabDeckEditor_aClose->setObjectName("TabDeckEditor_aClose");
+
+ gridLayout->addWidget(TabDeckEditor_aClose, 3, 1, 1, 1);
+
+ lbl_TabDeckEditor_aPrintDeck = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aPrintDeck->setObjectName("lbl_TabDeckEditor_aPrintDeck");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aPrintDeck, 3, 2, 1, 1);
+
+ TabDeckEditor_aPrintDeck = new SequenceEdit("TabDeckEditor/aPrintDeck",groupBox_2);
+ TabDeckEditor_aPrintDeck->setObjectName("TabDeckEditor_aPrintDeck");
+
+ gridLayout->addWidget(TabDeckEditor_aPrintDeck, 3, 3, 1, 1);
+
+ lbl_TabDeckEditor_aEditSets = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aEditSets->setObjectName("lbl_TabDeckEditor_aEditSets");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aEditSets, 4, 0, 1, 1);
+
+ TabDeckEditor_aEditSets = new SequenceEdit("TabDeckEditor/aEditSets",groupBox_2);
+ TabDeckEditor_aEditSets->setObjectName("TabDeckEditor_aEditSets");
+
+ gridLayout->addWidget(TabDeckEditor_aEditSets, 4, 1, 1, 1);
+
+ lbl_TabDeckEditor_aRemoveCard = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aRemoveCard->setObjectName("lbl_TabDeckEditor_aRemoveCard");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aRemoveCard, 4, 2, 1, 1);
+
+ TabDeckEditor_aRemoveCard = new SequenceEdit("TabDeckEditor/aRemoveCard",groupBox_2);
+ TabDeckEditor_aRemoveCard->setObjectName("TabDeckEditor_aRemoveCard");
+
+ gridLayout->addWidget(TabDeckEditor_aRemoveCard, 4, 3, 1, 1);
+
+ lbl_TabDeckEditor_aEditTokens = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aEditTokens->setObjectName("lbl_TabDeckEditor_aEditTokens");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aEditTokens, 5, 0, 1, 1);
+
+ TabDeckEditor_aEditTokens = new SequenceEdit("TabDeckEditor/aEditTokens",groupBox_2);
+ TabDeckEditor_aEditTokens->setObjectName("TabDeckEditor_aEditTokens");
+
+ gridLayout->addWidget(TabDeckEditor_aEditTokens, 5, 1, 1, 1);
+
+ lbl_TabDeckEditor_aResetLayout = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aResetLayout->setObjectName("lbl_TabDeckEditor_aResetLayout");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aResetLayout, 5, 2, 1, 1);
+
+ TabDeckEditor_aResetLayout = new SequenceEdit("TabDeckEditor/aResetLayout",groupBox_2);
+ TabDeckEditor_aResetLayout->setObjectName("TabDeckEditor_aResetLayout");
+
+ gridLayout->addWidget(TabDeckEditor_aResetLayout, 5, 3, 1, 1);
+
+ lbl_TabDeckEditor_aIncrement = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aIncrement->setObjectName("lbl_TabDeckEditor_aIncrement");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aIncrement, 6, 0, 1, 1);
+
+ TabDeckEditor_aIncrement = new SequenceEdit("TabDeckEditor/aIncrement",groupBox_2);
+ TabDeckEditor_aIncrement->setObjectName("TabDeckEditor_aIncrement");
+
+ gridLayout->addWidget(TabDeckEditor_aIncrement, 6, 1, 1, 1);
+
+ lbl_TabDeckEditor_aSaveDeck = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aSaveDeck->setObjectName("lbl_TabDeckEditor_aSaveDeck");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aSaveDeck, 6, 2, 1, 1);
+
+ TabDeckEditor_aSaveDeck = new SequenceEdit("TabDeckEditor/aSaveDeck",groupBox_2);
+ TabDeckEditor_aSaveDeck->setObjectName("TabDeckEditor_aSaveDeck");
+
+ gridLayout->addWidget(TabDeckEditor_aSaveDeck, 6, 3, 1, 1);
+
+ lbl_TabDeckEditor_aDecrement = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aDecrement->setObjectName("lbl_TabDeckEditor_aDecrement");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aDecrement, 7, 0, 1, 1);
+
+ TabDeckEditor_aDecrement = new SequenceEdit("TabDeckEditor/aDecrement",groupBox_2);
+ TabDeckEditor_aDecrement->setObjectName("TabDeckEditor_aDecrement");
+
+ gridLayout->addWidget(TabDeckEditor_aDecrement, 7, 1, 1, 1);
+
+ lbl_TabDeckEditor_aSaveDeckAs = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aSaveDeckAs->setObjectName("lbl_TabDeckEditor_aSaveDeckAs");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aSaveDeckAs, 7, 2, 1, 1);
+
+ TabDeckEditor_aSaveDeckAs = new SequenceEdit("TabDeckEditor/aSaveDeckAs",groupBox_2);
+ TabDeckEditor_aSaveDeckAs->setObjectName("TabDeckEditor_aSaveDeckAs");
+
+ gridLayout->addWidget(TabDeckEditor_aSaveDeckAs, 7, 3, 1, 1);
+
+ lbl_TabDeckEditor_aLoadDeck = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aLoadDeck->setObjectName("lbl_TabDeckEditor_aLoadDeck");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aLoadDeck, 8, 0, 1, 1);
+
+ TabDeckEditor_aLoadDeck = new SequenceEdit("TabDeckEditor/aLoadDeck",groupBox_2);
+ TabDeckEditor_aLoadDeck->setObjectName("TabDeckEditor_aLoadDeck");
+
+ gridLayout->addWidget(TabDeckEditor_aLoadDeck, 8, 1, 1, 1);
+
+ lbl_TabDeckEditor_aSaveDeckToClipboard = new QLabel(groupBox_2);
+ lbl_TabDeckEditor_aSaveDeckToClipboard->setObjectName("lbl_TabDeckEditor_aSaveDeckToClipboard");
+
+ gridLayout->addWidget(lbl_TabDeckEditor_aSaveDeckToClipboard, 8, 2, 1, 1);
+
+ TabDeckEditor_aSaveDeckToClipboard = new SequenceEdit("TabDeckEditor/aSaveDeckToClipboard",groupBox_2);
+ TabDeckEditor_aSaveDeckToClipboard->setObjectName("TabDeckEditor_aSaveDeckToClipboard");
+
+ gridLayout->addWidget(TabDeckEditor_aSaveDeckToClipboard, 8, 3, 1, 1);
+
+ gridLayout_3->addWidget(groupBox_2, 0, 1, 1, 1);
+
+ groupBox_3 = new QGroupBox(tab);
+ groupBox_3->setObjectName("groupBox_3");
+ horizontalLayout = new QHBoxLayout(groupBox_3);
+ horizontalLayout->setObjectName("horizontalLayout");
+ groupBox_4 = new QGroupBox(groupBox_3);
+ groupBox_4->setObjectName("groupBox_4");
+ gridLayout_4 = new QGridLayout(groupBox_4);
+ gridLayout_4->setObjectName("gridLayout_4");
+ lbl_abstractCounter_sSet = new QLabel(groupBox_4);
+ lbl_abstractCounter_sSet->setObjectName("lbl_abstractCounter_sSet");
+
+ gridLayout_4->addWidget(lbl_abstractCounter_sSet, 0, 0, 1, 1);
+
+ abstractCounter_aSet = new SequenceEdit("Player/aSet",groupBox_4);
+ abstractCounter_aSet->setObjectName("abstractCounter_aSet");
+
+ gridLayout_4->addWidget(abstractCounter_aSet, 0, 1, 1, 1);
+
+ lbl_abstractCounter_aInc = new QLabel(groupBox_4);
+ lbl_abstractCounter_aInc->setObjectName("lbl_abstractCounter_aInc");
+
+ gridLayout_4->addWidget(lbl_abstractCounter_aInc, 1, 0, 1, 1);
+
+ abstractCounter_Inc = new SequenceEdit("Player/Inc",groupBox_4);
+ abstractCounter_Inc->setObjectName("abstractCounter_Inc");
+
+ gridLayout_4->addWidget(abstractCounter_Inc, 1, 1, 1, 1);
+
+ lbl_abstractCounter_aDec = new QLabel(groupBox_4);
+ lbl_abstractCounter_aDec->setObjectName("lbl_abstractCounter_aDec");
+
+ gridLayout_4->addWidget(lbl_abstractCounter_aDec, 2, 0, 1, 1);
+
+ abstractCounter_aDec = new SequenceEdit("Player/aDec",groupBox_4);
+ abstractCounter_aDec->setObjectName("abstractCounter_aDec");
+
+ gridLayout_4->addWidget(abstractCounter_aDec, 2, 1, 1, 1);
+
+ horizontalLayout->addWidget(groupBox_4);
+
+ groupBox_5 = new QGroupBox(groupBox_3);
+ groupBox_5->setObjectName("groupBox_5");
+ gridLayout_6 = new QGridLayout(groupBox_5);
+ gridLayout_6->setObjectName("gridLayout_6");
+ lbl_Player_aSCRed = new QLabel(groupBox_5);
+ lbl_Player_aSCRed->setObjectName("lbl_Player_aSCRed");
+
+ gridLayout_6->addWidget(lbl_Player_aSCRed, 0, 0, 1, 1);
+
+ Player_aSCRed = new SequenceEdit("Player/aSCRed",groupBox_5);
+ Player_aSCRed->setObjectName("Player_aSCRed");
+
+ gridLayout_6->addWidget(Player_aSCRed, 0, 1, 1, 1);
+
+ lbl_Player_aCCRed = new QLabel(groupBox_5);
+ lbl_Player_aCCRed->setObjectName("lbl_Player_aCCRed");
+
+ gridLayout_6->addWidget(lbl_Player_aCCRed, 1, 0, 1, 1);
+
+ Player_aCCRed = new SequenceEdit("Player/aCCRed",groupBox_5);
+ Player_aCCRed->setObjectName("Player_aCCRed");
+
+ gridLayout_6->addWidget(Player_aCCRed, 1, 1, 1, 1);
+
+ lbl_Player_aRCRed = new QLabel(groupBox_5);
+ lbl_Player_aRCRed->setObjectName("lbl_Player_aRCRed");
+
+ gridLayout_6->addWidget(lbl_Player_aRCRed, 2, 0, 1, 1);
+
+ Player_aRCRed = new SequenceEdit("Player/aRCRed",groupBox_5);
+ Player_aRCRed->setObjectName("Player_aRCRed");
+
+ gridLayout_6->addWidget(Player_aRCRed, 2, 1, 1, 1);
+
+ horizontalLayout->addWidget(groupBox_5);
+
+ groupBox_6 = new QGroupBox(groupBox_3);
+ groupBox_6->setObjectName("groupBox_6");
+ gridLayout_7 = new QGridLayout(groupBox_6);
+ gridLayout_7->setObjectName("gridLayout_7");
+ lbl_Player_aSCGreen = new QLabel(groupBox_6);
+ lbl_Player_aSCGreen->setObjectName("lbl_Player_aSCGreen");
+
+ gridLayout_7->addWidget(lbl_Player_aSCGreen, 0, 0, 1, 1);
+
+ Player_aSCGreen = new SequenceEdit("Player/aSCGreen",groupBox_6);
+ Player_aSCGreen->setObjectName("Player_aSCGreen");
+
+ gridLayout_7->addWidget(Player_aSCGreen, 0, 1, 1, 1);
+
+ lbl_Player_aCCGreen = new QLabel(groupBox_6);
+ lbl_Player_aCCGreen->setObjectName("lbl_Player_aCCGreen");
+
+ gridLayout_7->addWidget(lbl_Player_aCCGreen, 1, 0, 1, 1);
+
+ Player_aCCGreen = new SequenceEdit("Player/aCCGreen",groupBox_6);
+ Player_aCCGreen->setObjectName("Player_aCCGreen");
+
+ gridLayout_7->addWidget(Player_aCCGreen, 1, 1, 1, 1);
+
+ lbl_Player_aRCGreen = new QLabel(groupBox_6);
+ lbl_Player_aRCGreen->setObjectName("lbl_Player_aRCGreen");
+
+ gridLayout_7->addWidget(lbl_Player_aRCGreen, 2, 0, 1, 1);
+
+ Player_aRCGreen = new SequenceEdit("Player/aRCGreen",groupBox_6);
+ Player_aRCGreen->setObjectName("Player_aRCGreen");
+
+ gridLayout_7->addWidget(Player_aRCGreen, 2, 1, 1, 1);
+
+ horizontalLayout->addWidget(groupBox_6);
+
+ groupBox_7 = new QGroupBox(groupBox_3);
+ groupBox_7->setObjectName("groupBox_7");
+ gridLayout_8 = new QGridLayout(groupBox_7);
+ gridLayout_8->setObjectName("gridLayout_8");
+ lbl_Player_aSCYellow = new QLabel(groupBox_7);
+ lbl_Player_aSCYellow->setObjectName("lbl_Player_aSCYellow");
+
+ gridLayout_8->addWidget(lbl_Player_aSCYellow, 0, 0, 1, 1);
+
+ Player_aSCYellow = new SequenceEdit("Player/aSCYellow",groupBox_7);
+ Player_aSCYellow->setObjectName("Player_aSCYellow");
+
+ gridLayout_8->addWidget(Player_aSCYellow, 0, 1, 1, 1);
+
+ lbl_Player_aCCYellow = new QLabel(groupBox_7);
+ lbl_Player_aCCYellow->setObjectName("lbl_Player_aCCYellow");
+
+ gridLayout_8->addWidget(lbl_Player_aCCYellow, 1, 0, 1, 1);
+
+ Player_aCCYellow = new SequenceEdit("Player/aCCYellow",groupBox_7);
+ Player_aCCYellow->setObjectName("Player_aCCYellow");
+
+ gridLayout_8->addWidget(Player_aCCYellow, 1, 1, 1, 1);
+
+ lbl_Player_aRCYellow = new QLabel(groupBox_7);
+ lbl_Player_aRCYellow->setObjectName("lbl_Player_aRCYellow");
+
+ gridLayout_8->addWidget(lbl_Player_aRCYellow, 2, 0, 1, 1);
+
+ Player_aRCYellow = new SequenceEdit("Player/aRCYellow",groupBox_7);
+ Player_aRCYellow->setObjectName("Player_aRCYellow");
+
+ gridLayout_8->addWidget(Player_aRCYellow, 2, 1, 1, 1);
+
+ horizontalLayout->addWidget(groupBox_7);
+
+ verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+ gridLayout_3->addItem(verticalSpacer, 2, 0, 1, 1);
+
+ tabWidget->addTab(tab, QString());
+ tab_2 = new QWidget();
+ tab_2->setObjectName("tab_2");
+ gridLayout_17 = new QGridLayout(tab_2);
+ gridLayout_17->setObjectName("gridLayout_17");
+ groupBox_9 = new QGroupBox(tab_2);
+ groupBox_9->setObjectName("groupBox_9");
+ verticalLayout = new QVBoxLayout(groupBox_9);
+ verticalLayout->setObjectName("verticalLayout");
+ groupBox_12 = new QGroupBox(groupBox_9);
+ groupBox_12->setObjectName("groupBox_12");
+ gridLayout_12 = new QGridLayout(groupBox_12);
+ gridLayout_12->setObjectName("gridLayout_12");
+ Player_aDecPT = new SequenceEdit("Player/aDecPT",groupBox_12);
+ Player_aDecPT->setObjectName("Player_aDecPT");
+
+ gridLayout_12->addWidget(Player_aDecPT, 2, 1, 1, 1);
+
+ Player_aIncPT = new SequenceEdit("Player/aIncPT",groupBox_12);
+ Player_aIncPT->setObjectName("Player_aIncPT");
+
+ gridLayout_12->addWidget(Player_aIncPT, 1, 1, 1, 1);
+
+ lbl_Player_aIncPT = new QLabel(groupBox_12);
+ lbl_Player_aIncPT->setObjectName("lbl_Player_aIncPT");
+
+ gridLayout_12->addWidget(lbl_Player_aIncPT, 1, 0, 1, 1);
+
+ lbl_Player_aDecPT = new QLabel(groupBox_12);
+ lbl_Player_aDecPT->setObjectName("lbl_Player_aDecPT");
+
+ gridLayout_12->addWidget(lbl_Player_aDecPT, 2, 0, 1, 1);
+
+ Player_aSetPT = new SequenceEdit("Player/aSetPT",groupBox_12);
+ Player_aSetPT->setObjectName("Player_aSetPT");
+
+ gridLayout_12->addWidget(Player_aSetPT, 0, 1, 1, 1);
+
+ lbl_Player_aSetPT = new QLabel(groupBox_12);
+ lbl_Player_aSetPT->setObjectName("lbl_Player_aSetPT");
+
+ gridLayout_12->addWidget(lbl_Player_aSetPT, 0, 0, 1, 1);
+
+ verticalLayout->addWidget(groupBox_12);
+
+ groupBox_11 = new QGroupBox(groupBox_9);
+ groupBox_11->setObjectName("groupBox_11");
+ gridLayout_11 = new QGridLayout(groupBox_11);
+ gridLayout_11->setObjectName("gridLayout_11");
+ lbl_Player_aDecT = new QLabel(groupBox_11);
+ lbl_Player_aDecT->setObjectName("lbl_Player_aDecT");
+
+ gridLayout_11->addWidget(lbl_Player_aDecT, 1, 0, 1, 1);
+
+ Player_aDecT = new SequenceEdit("Player/aDecT",groupBox_11);
+ Player_aDecT->setObjectName("Player_aDecT");
+
+ gridLayout_11->addWidget(Player_aDecT, 1, 1, 1, 1);
+
+ lbl_Player_aIncT = new QLabel(groupBox_11);
+ lbl_Player_aIncT->setObjectName("lbl_Player_aIncT");
+
+ gridLayout_11->addWidget(lbl_Player_aIncT, 0, 0, 1, 1);
+
+ Player_aIncT = new SequenceEdit("Player/aIncT",groupBox_11);
+ Player_aIncT->setObjectName("Player_aIncT");
+
+ gridLayout_11->addWidget(Player_aIncT, 0, 1, 1, 1);
+
+ verticalLayout->addWidget(groupBox_11);
+
+ groupBox_10 = new QGroupBox(groupBox_9);
+ groupBox_10->setObjectName("groupBox_10");
+ gridLayout_10 = new QGridLayout(groupBox_10);
+ gridLayout_10->setObjectName("gridLayout_10");
+ lbl_Player_aDecP = new QLabel(groupBox_10);
+ lbl_Player_aDecP->setObjectName("lbl_Player_aDecP");
+
+ gridLayout_10->addWidget(lbl_Player_aDecP, 1, 0, 1, 1);
+
+ Player_aDecP = new SequenceEdit("Player/aDecP",groupBox_10);
+ Player_aDecP->setObjectName("Player_aDecP");
+
+ gridLayout_10->addWidget(Player_aDecP, 1, 1, 1, 1);
+
+ Player_IncP = new SequenceEdit("Player/IncP",groupBox_10);
+ Player_IncP->setObjectName("Player_IncP");
+
+ gridLayout_10->addWidget(Player_IncP, 0, 1, 1, 1);
+
+ lbl_Player_IncP = new QLabel(groupBox_10);
+ lbl_Player_IncP->setObjectName("lbl_Player_IncP");
+
+ gridLayout_10->addWidget(lbl_Player_IncP, 0, 0, 1, 1);
+
+ verticalLayout->addWidget(groupBox_10);
+
+ gridLayout_17->addWidget(groupBox_9, 0, 1, 1, 1);
+
+ groupBox_8 = new QGroupBox(tab_2);
+ groupBox_8->setObjectName("groupBox_8");
+ gridLayout_5 = new QGridLayout(groupBox_8);
+ gridLayout_5->setObjectName("gridLayout_5");
+ lbl_TabGame_phase0 = new QLabel(groupBox_8);
+ lbl_TabGame_phase0->setObjectName("lbl_TabGame_phase0");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase0, 0, 0, 1, 1);
+
+ TabGame_phase0 = new SequenceEdit("Player/phase0",groupBox_8);
+ TabGame_phase0->setObjectName("TabGame_phase0");
+
+ gridLayout_5->addWidget(TabGame_phase0, 0, 1, 1, 1);
+
+ lbl_TabGame_phase1 = new QLabel(groupBox_8);
+ lbl_TabGame_phase1->setObjectName("lbl_TabGame_phase1");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase1, 1, 0, 1, 1);
+
+ TabGame_phase1 = new SequenceEdit("Player/phase1",groupBox_8);
+ TabGame_phase1->setObjectName("TabGame_phase1");
+
+ gridLayout_5->addWidget(TabGame_phase1, 1, 1, 1, 1);
+
+ lbl_TabGame_phase2 = new QLabel(groupBox_8);
+ lbl_TabGame_phase2->setObjectName("lbl_TabGame_phase2");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase2, 2, 0, 1, 1);
+
+ TabGame_phase2 = new SequenceEdit("Player/phase2",groupBox_8);
+ TabGame_phase2->setObjectName("TabGame_phase2");
+
+ gridLayout_5->addWidget(TabGame_phase2, 2, 1, 1, 1);
+
+ lbl_TabGame_phase3 = new QLabel(groupBox_8);
+ lbl_TabGame_phase3->setObjectName("lbl_TabGame_phase3");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase3, 3, 0, 1, 1);
+
+ TabGame_phase3 = new SequenceEdit("Player/phase3",groupBox_8);
+ TabGame_phase3->setObjectName("TabGame_phase3");
+
+ gridLayout_5->addWidget(TabGame_phase3, 3, 1, 1, 1);
+
+ lbl_TabGame_phase4 = new QLabel(groupBox_8);
+ lbl_TabGame_phase4->setObjectName("lbl_TabGame_phase4");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase4, 4, 0, 1, 1);
+
+ TabGame_phase4 = new SequenceEdit("Player/phase4",groupBox_8);
+ TabGame_phase4->setObjectName("TabGame_phase4");
+
+ gridLayout_5->addWidget(TabGame_phase4, 4, 1, 1, 1);
+
+ lbl_TabGame_phase5 = new QLabel(groupBox_8);
+ lbl_TabGame_phase5->setObjectName("lbl_TabGame_phase5");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase5, 5, 0, 1, 1);
+
+ TabGame_phase5 = new SequenceEdit("Player/phase5",groupBox_8);
+ TabGame_phase5->setObjectName("TabGame_phase5");
+
+ gridLayout_5->addWidget(TabGame_phase5, 5, 1, 1, 1);
+
+ lbl_TabGame_phase6 = new QLabel(groupBox_8);
+ lbl_TabGame_phase6->setObjectName("lbl_TabGame_phase6");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase6, 6, 0, 1, 1);
+
+ lbl_TabGame_phase7 = new QLabel(groupBox_8);
+ lbl_TabGame_phase7->setObjectName("lbl_TabGame_phase7");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase7, 7, 0, 1, 1);
+
+ TabGame_phase6 = new SequenceEdit("Player/phase6",groupBox_8);
+ TabGame_phase6->setObjectName("TabGame_phase6");
+
+ gridLayout_5->addWidget(TabGame_phase6, 6, 1, 1, 1);
+
+ lbl_TabGame_phase8 = new QLabel(groupBox_8);
+ lbl_TabGame_phase8->setObjectName("lbl_TabGame_phase8");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase8, 8, 0, 1, 1);
+
+ TabGame_phase7 = new SequenceEdit("Player/phase7",groupBox_8);
+ TabGame_phase7->setObjectName("TabGame_phase7");
+
+ gridLayout_5->addWidget(TabGame_phase7, 7, 1, 1, 1);
+
+ lbl_TabGame_phase9 = new QLabel(groupBox_8);
+ lbl_TabGame_phase9->setObjectName("lbl_TabGame_phase9");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase9, 9, 0, 1, 1);
+
+ TabGame_phase8 = new SequenceEdit("Player/phase8",groupBox_8);
+ TabGame_phase8->setObjectName("TabGame_phase8");
+
+ gridLayout_5->addWidget(TabGame_phase8, 8, 1, 1, 1);
+
+ lbl_TabGame_phase10 = new QLabel(groupBox_8);
+ lbl_TabGame_phase10->setObjectName("lbl_TabGame_phase10");
+
+ gridLayout_5->addWidget(lbl_TabGame_phase10, 10, 0, 1, 1);
+
+ TabGame_phase9 = new SequenceEdit("Player/phase9",groupBox_8);
+ TabGame_phase9->setObjectName("TabGame_phase9");
+
+ gridLayout_5->addWidget(TabGame_phase9, 9, 1, 1, 1);
+
+ lbl_TabGame_aNextPhase = new QLabel(groupBox_8);
+ lbl_TabGame_aNextPhase->setObjectName("lbl_TabGame_aNextPhase");
+
+ gridLayout_5->addWidget(lbl_TabGame_aNextPhase, 11, 0, 1, 1);
+
+ TabGame_phase10 = new SequenceEdit("Player/phase10",groupBox_8);
+ TabGame_phase10->setObjectName("TabGame_phase10");
+
+ gridLayout_5->addWidget(TabGame_phase10, 10, 1, 1, 1);
+
+ lbl_TabGame_aNextTurn = new QLabel(groupBox_8);
+ lbl_TabGame_aNextTurn->setObjectName("lbl_TabGame_aNextTurn");
+
+ gridLayout_5->addWidget(lbl_TabGame_aNextTurn, 12, 0, 1, 1);
+
+ TabGame_aNextPhase = new SequenceEdit("Player/aNextPhase",groupBox_8);
+ TabGame_aNextPhase->setObjectName("TabGame_aNextPhase");
+
+ gridLayout_5->addWidget(TabGame_aNextPhase, 11, 1, 1, 1);
+
+ TabGame_aNextTurn = new SequenceEdit("Player/aNextTurn",groupBox_8);
+ TabGame_aNextTurn->setObjectName("TabGame_aNextTurn");
+
+ gridLayout_5->addWidget(TabGame_aNextTurn, 12, 1, 1, 1);
+
+ gridLayout_17->addWidget(groupBox_8, 0, 0, 1, 1);
+
+ groupBox_13 = new QGroupBox(tab_2);
+ groupBox_13->setObjectName("groupBox_13");
+ gridLayout_13 = new QGridLayout(groupBox_13);
+ gridLayout_13->setObjectName("gridLayout_13");
+ lbl_Player_aTap = new QLabel(groupBox_13);
+ lbl_Player_aTap->setObjectName("lbl_Player_aTap");
+
+ gridLayout_13->addWidget(lbl_Player_aTap, 0, 0, 1, 1);
+
+ Player_aTap = new SequenceEdit("Player/aTap",groupBox_13);
+ Player_aTap->setObjectName("Player_aTap");
+
+ gridLayout_13->addWidget(Player_aTap, 0, 1, 1, 1);
+
+ lbl_Player_aUntap = new QLabel(groupBox_13);
+ lbl_Player_aUntap->setObjectName("lbl_Player_aUntap");
+
+ gridLayout_13->addWidget(lbl_Player_aUntap, 1, 0, 1, 1);
+
+ Player_aUntap = new SequenceEdit("Player/aUntap",groupBox_13);
+ Player_aUntap->setObjectName("Player_aUntap");
+
+ gridLayout_13->addWidget(Player_aUntap, 1, 1, 1, 1);
+
+ lbl_Player_aUntapAll = new QLabel(groupBox_13);
+ lbl_Player_aUntapAll->setObjectName("lbl_Player_aUntapAll");
+
+ gridLayout_13->addWidget(lbl_Player_aUntapAll, 2, 0, 1, 1);
+
+ Player_aUntapAll = new SequenceEdit("Player/aUntapAll",groupBox_13);
+ Player_aUntapAll->setObjectName("Player_aUntapAll");
+
+ gridLayout_13->addWidget(Player_aUntapAll, 2, 1, 1, 1);
+
+ lbl_Player_aDoesntUntap = new QLabel(groupBox_13);
+ lbl_Player_aDoesntUntap->setObjectName("lbl_Player_aDoesntUntap");
+
+ gridLayout_13->addWidget(lbl_Player_aDoesntUntap, 3, 0, 1, 1);
+
+ Player_aDoesntUntap = new SequenceEdit("Player/aDoesntUntap",groupBox_13);
+ Player_aDoesntUntap->setObjectName("Player_aDoesntUntap");
+
+ gridLayout_13->addWidget(Player_aDoesntUntap, 3, 1, 1, 1);
+
+ lbl_Player_aFlip = new QLabel(groupBox_13);
+ lbl_Player_aFlip->setObjectName("lbl_Player_aFlip");
+
+ gridLayout_13->addWidget(lbl_Player_aFlip, 4, 0, 1, 1);
+
+ Player_aFlip = new SequenceEdit("Player/aFlip",groupBox_13);
+ Player_aFlip->setObjectName("Player_aFlip");
+
+ gridLayout_13->addWidget(Player_aFlip, 4, 1, 1, 1);
+
+ lbl_Player_aPeek = new QLabel(groupBox_13);
+ lbl_Player_aPeek->setObjectName("lbl_Player_aPeek");
+
+ gridLayout_13->addWidget(lbl_Player_aPeek, 5, 0, 1, 1);
+
+ Player_aPeek = new SequenceEdit("Player/aPeek",groupBox_13);
+ Player_aPeek->setObjectName("Player_aPeek");
+
+ gridLayout_13->addWidget(Player_aPeek, 5, 1, 1, 1);
+
+ lbl_Player_aPlay = new QLabel(groupBox_13);
+ lbl_Player_aPlay->setObjectName("lbl_Player_aPlay");
+
+ gridLayout_13->addWidget(lbl_Player_aPlay, 6, 0, 1, 1);
+
+ Player_aPlay = new SequenceEdit("Player/aPlay",groupBox_13);
+ Player_aPlay->setObjectName("Player_aPlay");
+
+ gridLayout_13->addWidget(Player_aPlay, 6, 1, 1, 1);
+
+ lbl_Player_aAttach = new QLabel(groupBox_13);
+ lbl_Player_aAttach->setObjectName("lbl_Player_aAttach");
+
+ gridLayout_13->addWidget(lbl_Player_aAttach, 7, 0, 1, 1);
+
+ Player_aAttach = new SequenceEdit("Player/aAttach",groupBox_13);
+ Player_aAttach->setObjectName("Player_aAttach");
+
+ gridLayout_13->addWidget(Player_aAttach, 7, 1, 1, 1);
+
+ lbl_Player_aUnattach = new QLabel(groupBox_13);
+ lbl_Player_aUnattach->setObjectName("lbl_Player_aUnattach");
+
+ gridLayout_13->addWidget(lbl_Player_aUnattach, 8, 0, 1, 1);
+
+ Player_aUnattach = new SequenceEdit("Player/aUnattach",groupBox_13);
+ Player_aUnattach->setObjectName("Player_aUnattach");
+
+ gridLayout_13->addWidget(Player_aUnattach, 8, 1, 1, 1);
+
+ lbl_Player_aClone = new QLabel(groupBox_13);
+ lbl_Player_aClone->setObjectName("lbl_Player_aClone");
+
+ gridLayout_13->addWidget(lbl_Player_aClone, 9, 0, 1, 1);
+
+ Player_aClone = new SequenceEdit("Player/aClone",groupBox_13);
+ Player_aClone->setObjectName("Player_aClone");
+
+ gridLayout_13->addWidget(Player_aClone, 9, 1, 1, 1);
+
+ lbl_Player_aCreateToken = new QLabel(groupBox_13);
+ lbl_Player_aCreateToken->setObjectName("lbl_Player_aCreateToken");
+
+ gridLayout_13->addWidget(lbl_Player_aCreateToken, 10, 0, 1, 1);
+
+ Player_aCreateToken = new SequenceEdit("Player/aCreateToken",groupBox_13);
+ Player_aCreateToken->setObjectName("Player_aCreateToken");
+
+ gridLayout_13->addWidget(Player_aCreateToken, 10, 1, 1, 1);
+
+ lbl_Player_aCreateAnotherToken = new QLabel(groupBox_13);
+ lbl_Player_aCreateAnotherToken->setObjectName("lbl_Player_aCreateAnotherToken");
+
+ gridLayout_13->addWidget(lbl_Player_aCreateAnotherToken, 11, 0, 1, 1);
+
+ Player_aCreateAnotherToken = new SequenceEdit("Player/aCreateAnotherToken",groupBox_13);
+ Player_aCreateAnotherToken->setObjectName("Player_aCreateAnotherToken");
+
+ gridLayout_13->addWidget(Player_aCreateAnotherToken, 11, 1, 1, 1);
+
+ lbl_Player_aSetAnnotation = new QLabel(groupBox_13);
+ lbl_Player_aSetAnnotation->setObjectName("lbl_Player_aSetAnnotation");
+
+ gridLayout_13->addWidget(lbl_Player_aSetAnnotation, 12, 0, 1, 1);
+
+ Player_aSetAnnotation = new SequenceEdit("Player/aSetAnnotation",groupBox_13);
+ Player_aSetAnnotation->setObjectName("Player_aSetAnnotation");
+
+ gridLayout_13->addWidget(Player_aSetAnnotation, 12, 1, 1, 1);
+
+ gridLayout_17->addWidget(groupBox_13, 0, 2, 1, 1);
+
+ verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+ gridLayout_17->addItem(verticalSpacer_2, 1, 1, 1, 1);
+
+ tabWidget->addTab(tab_2, QString());
+ tab_3 = new QWidget();
+ tab_3->setObjectName("tab_3");
+ gridLayout_20 = new QGridLayout(tab_3);
+ gridLayout_20->setObjectName("gridLayout_20");
+ groupBox_15 = new QGroupBox(tab_3);
+ groupBox_15->setObjectName("groupBox_15");
+ gridLayout_15 = new QGridLayout(groupBox_15);
+ gridLayout_15->setObjectName("gridLayout_15");
+ lbl_Player_aMoveToBottomLibrary = new QLabel(groupBox_15);
+ lbl_Player_aMoveToBottomLibrary->setObjectName("lbl_Player_aMoveToBottomLibrary");
+
+ gridLayout_15->addWidget(lbl_Player_aMoveToBottomLibrary, 0, 0, 1, 1);
+
+ Player_aMoveToBottomLibrary = new SequenceEdit("Player/aMoveToBottomLibrary",groupBox_15);
+ Player_aMoveToBottomLibrary->setObjectName("Player_aMoveToBottomLibrary");
+
+ gridLayout_15->addWidget(Player_aMoveToBottomLibrary, 0, 1, 1, 1);
+
+ lbl_Player_aMoveToTopLibrary = new QLabel(groupBox_15);
+ lbl_Player_aMoveToTopLibrary->setObjectName("lbl_Player_aMoveToTopLibrary");
+
+ gridLayout_15->addWidget(lbl_Player_aMoveToTopLibrary, 1, 0, 1, 1);
+
+ Player_aMoveToTopLibrary = new SequenceEdit("Player/aMoveToTopLibrary",groupBox_15);
+ Player_aMoveToTopLibrary->setObjectName("Player_aMoveToTopLibrary");
+
+ gridLayout_15->addWidget(Player_aMoveToTopLibrary, 1, 1, 1, 1);
+
+ lbl_Player_aMoveToGraveyard = new QLabel(groupBox_15);
+ lbl_Player_aMoveToGraveyard->setObjectName("lbl_Player_aMoveToGraveyard");
+
+ gridLayout_15->addWidget(lbl_Player_aMoveToGraveyard, 2, 0, 1, 1);
+
+ Player_aMoveToGraveyard = new SequenceEdit("Player/aMoveToGraveyard",groupBox_15);
+ Player_aMoveToGraveyard->setObjectName("Player_aMoveToGraveyard");
+
+ gridLayout_15->addWidget(Player_aMoveToGraveyard, 2, 1, 1, 1);
+
+ lbl_Player_aMoveToExile = new QLabel(groupBox_15);
+ lbl_Player_aMoveToExile->setObjectName("lbl_Player_aMoveToExile");
+
+ gridLayout_15->addWidget(lbl_Player_aMoveToExile, 3, 0, 1, 1);
+
+ Player_aMoveToExile = new SequenceEdit("Player/aMoveToExile",groupBox_15);
+ Player_aMoveToExile->setObjectName("Player_aMoveToExile");
+
+ gridLayout_15->addWidget(Player_aMoveToExile, 3, 1, 1, 1);
+
+ lbl_Player_aMoveToHand = new QLabel(groupBox_15);
+ lbl_Player_aMoveToHand->setObjectName("lbl_Player_aMoveToHand");
+
+ gridLayout_15->addWidget(lbl_Player_aMoveToHand, 4, 0, 1, 1);
+
+ Player_aMoveToHand = new SequenceEdit("Player/aMoveToHand",groupBox_15);
+ Player_aMoveToHand->setObjectName("Player_aMoveToHand");
+
+ gridLayout_15->addWidget(Player_aMoveToHand, 4, 1, 1, 1);
+
+ gridLayout_20->addWidget(groupBox_15, 0, 1, 1, 1);
+
+ groupBox_16 = new QGroupBox(tab_3);
+ groupBox_16->setObjectName("groupBox_16");
+ gridLayout_16 = new QGridLayout(groupBox_16);
+ gridLayout_16->setObjectName("gridLayout_16");
+ lbl_Player_aViewGraveyard = new QLabel(groupBox_16);
+ lbl_Player_aViewGraveyard->setObjectName("lbl_Player_aViewGraveyard");
+
+ gridLayout_16->addWidget(lbl_Player_aViewGraveyard, 0, 0, 1, 1);
+
+ Player_aViewGraveyard = new SequenceEdit("Player/aViewGraveyard",groupBox_16);
+ Player_aViewGraveyard->setObjectName("Player_aViewGraveyard");
+
+ gridLayout_16->addWidget(Player_aViewGraveyard, 0, 1, 1, 1);
+
+ lbl_Player_aViewLibrary = new QLabel(groupBox_16);
+ lbl_Player_aViewLibrary->setObjectName("lbl_Player_aViewLibrary");
+
+ gridLayout_16->addWidget(lbl_Player_aViewLibrary, 1, 0, 1, 1);
+
+ Player_aViewLibrary = new SequenceEdit("Player/aViewLibrary",groupBox_16);
+ Player_aViewLibrary->setObjectName("Player_aViewLibrary");
+
+ gridLayout_16->addWidget(Player_aViewLibrary, 1, 1, 1, 1);
+
+ lbl_Player_aViewTopCards = new QLabel(groupBox_16);
+ lbl_Player_aViewTopCards->setObjectName("lbl_Player_aViewTopCards");
+
+ gridLayout_16->addWidget(lbl_Player_aViewTopCards, 2, 0, 1, 1);
+
+ Player_aViewTopCards = new SequenceEdit("Player/aViewTopCards",groupBox_16);
+ Player_aViewTopCards->setObjectName("Player_aViewTopCards");
+
+ gridLayout_16->addWidget(Player_aViewTopCards, 2, 1, 1, 1);
+
+ lbl_Player_aViewSideboard = new QLabel(groupBox_16);
+ lbl_Player_aViewSideboard->setObjectName("lbl_Player_aViewSideboard");
+
+ gridLayout_16->addWidget(lbl_Player_aViewSideboard, 3, 0, 1, 1);
+
+ Player_aViewSideboard = new SequenceEdit("Player/aViewSideboard",groupBox_16);
+ Player_aViewSideboard->setObjectName("Player_aViewSideboard");
+
+ gridLayout_16->addWidget(Player_aViewSideboard, 3, 1, 1, 1);
+
+ lbl_Player_aViewRfg = new QLabel(groupBox_16);
+ lbl_Player_aViewRfg->setObjectName("lbl_Player_aViewRfg");
+
+ gridLayout_16->addWidget(lbl_Player_aViewRfg, 4, 0, 1, 1);
+
+ Player_aViewRfg = new SequenceEdit("Player/aViewRfg",groupBox_16);
+ Player_aViewRfg->setObjectName("Player_aViewRfg");
+
+ gridLayout_16->addWidget(Player_aViewRfg, 4, 1, 1, 1);
+
+ lbl_GameView_aCloseMostRecentZoneView = new QLabel(groupBox_16);
+ lbl_GameView_aCloseMostRecentZoneView->setObjectName("lbl_GameView_aCloseMostRecentZoneView");
+
+ gridLayout_16->addWidget(lbl_GameView_aCloseMostRecentZoneView, 5, 0, 1, 1);
+
+ GameView_aCloseMostRecentZoneView = new SequenceEdit("Player/aCloseMostRecentZoneView",groupBox_16);
+ GameView_aCloseMostRecentZoneView->setObjectName("GameView_aCloseMostRecentZoneView");
+
+ gridLayout_16->addWidget(GameView_aCloseMostRecentZoneView, 5, 1, 1, 1);
+
+ gridLayout_20->addWidget(groupBox_16, 0, 2, 1, 1);
+
+ groupBox_17 = new QGroupBox(tab_3);
+ groupBox_17->setObjectName("groupBox_17");
+ gridLayout_18 = new QGridLayout(groupBox_17);
+ gridLayout_18->setObjectName("gridLayout_18");
+ DeckViewContainer_loadRemoteButton = new SequenceEdit("DeckViewContainer/loadRemoteButton",groupBox_17);
+ DeckViewContainer_loadRemoteButton->setObjectName("DeckViewContainer_loadRemoteButton");
+
+ gridLayout_18->addWidget(DeckViewContainer_loadRemoteButton, 2, 1, 1, 1);
+
+ DeckViewContainer_loadLocalButton = new SequenceEdit("DeckViewContainer/loadLocalButton",groupBox_17);
+ DeckViewContainer_loadLocalButton->setObjectName("DeckViewContainer_loadLocalButton");
+
+ gridLayout_18->addWidget(DeckViewContainer_loadLocalButton, 0, 1, 1, 1);
+
+ lbl_DeckViewContainer_loadRemoteButton = new QLabel(groupBox_17);
+ lbl_DeckViewContainer_loadRemoteButton->setObjectName("lbl_DeckViewContainer_loadRemoteButton");
+
+ gridLayout_18->addWidget(lbl_DeckViewContainer_loadRemoteButton, 2, 0, 1, 1);
+
+ lbl_DeckViewContainer_loadLocalButton = new QLabel(groupBox_17);
+ lbl_DeckViewContainer_loadLocalButton->setObjectName("lbl_DeckViewContainer_loadLocalButton");
+
+ gridLayout_18->addWidget(lbl_DeckViewContainer_loadLocalButton, 0, 0, 1, 1);
+
+ gridLayout_20->addWidget(groupBox_17, 1, 0, 1, 1);
+
+ groupBox_18 = new QGroupBox(tab_3);
+ groupBox_18->setObjectName("groupBox_18");
+ gridLayout_19 = new QGridLayout(groupBox_18);
+ gridLayout_19->setObjectName("gridLayout_19");
+ lbl_Player_aDrawArrow = new QLabel(groupBox_18);
+ lbl_Player_aDrawArrow->setObjectName("lbl_Player_aDrawArrow");
+
+ gridLayout_19->addWidget(lbl_Player_aDrawArrow, 0, 0, 1, 1);
+
+ Player_aDrawArrow = new SequenceEdit("Player/aDrawArrow",groupBox_18);
+ Player_aDrawArrow->setObjectName("Player_aDrawArrow");
+
+ gridLayout_19->addWidget(Player_aDrawArrow, 0, 1, 1, 1);
+
+ lbl_TabGame_aLeaveGame = new QLabel(groupBox_18);
+ lbl_TabGame_aLeaveGame->setObjectName("lbl_TabGame_aLeaveGame");
+
+ gridLayout_19->addWidget(lbl_TabGame_aLeaveGame, 0, 2, 1, 1);
+
+ TabGame_aLeaveGame = new SequenceEdit("Player/aLeaveGame",groupBox_18);
+ TabGame_aLeaveGame->setObjectName("TabGame_aLeaveGame");
+
+ gridLayout_19->addWidget(TabGame_aLeaveGame, 0, 3, 1, 1);
+
+ lbl_TabGame_aRemoveLocalArrows = new QLabel(groupBox_18);
+ lbl_TabGame_aRemoveLocalArrows->setObjectName("lbl_TabGame_aRemoveLocalArrows");
+
+ gridLayout_19->addWidget(lbl_TabGame_aRemoveLocalArrows, 1, 0, 1, 1);
+
+ TabGame_aRemoveLocalArrows = new SequenceEdit("Player/aRemoveLocalArrows",groupBox_18);
+ TabGame_aRemoveLocalArrows->setObjectName("TabGame_aRemoveLocalArrows");
+
+ gridLayout_19->addWidget(TabGame_aRemoveLocalArrows, 1, 1, 1, 1);
+
+ lbl_TabGame_aConcede = new QLabel(groupBox_18);
+ lbl_TabGame_aConcede->setObjectName("lbl_TabGame_aConcede");
+
+ gridLayout_19->addWidget(lbl_TabGame_aConcede, 1, 2, 1, 1);
+
+ TabGame_aConcede = new SequenceEdit("Player/aConcede",groupBox_18);
+ TabGame_aConcede->setObjectName("TabGame_aConcede");
+
+ gridLayout_19->addWidget(TabGame_aConcede, 1, 3, 1, 1);
+
+ lbl_Player_aRollDie = new QLabel(groupBox_18);
+ lbl_Player_aRollDie->setObjectName("lbl_Player_aRollDie");
+
+ gridLayout_19->addWidget(lbl_Player_aRollDie, 2, 0, 1, 1);
+
+ Player_aRollDie = new SequenceEdit("Player/aRollDie",groupBox_18);
+ Player_aRollDie->setObjectName("Player_aRollDie");
+
+ gridLayout_19->addWidget(Player_aRollDie, 2, 1, 1, 1);
+
+ lbl_TabGame_aRotateViewCW = new QLabel(groupBox_18);
+ lbl_TabGame_aRotateViewCW->setObjectName("lbl_TabGame_aRotateViewCW");
+
+ gridLayout_19->addWidget(lbl_TabGame_aRotateViewCW, 2, 2, 1, 1);
+
+ TabGame_aRotateViewCW = new SequenceEdit("Player/aRotateViewCW",groupBox_18);
+ TabGame_aRotateViewCW->setObjectName("TabGame_aRotateViewCW");
+
+ gridLayout_19->addWidget(TabGame_aRotateViewCW, 2, 3, 1, 1);
+
+ lbl_Player_aShuffle = new QLabel(groupBox_18);
+ lbl_Player_aShuffle->setObjectName("lbl_Player_aShuffle");
+
+ gridLayout_19->addWidget(lbl_Player_aShuffle, 3, 0, 1, 1);
+
+ Player_aShuffle = new SequenceEdit("Player/aShuffle",groupBox_18);
+ Player_aShuffle->setObjectName("Player_aShuffle");
+
+ gridLayout_19->addWidget(Player_aShuffle, 3, 1, 1, 1);
+
+ lbl_TabGame_aRotateViewCCW = new QLabel(groupBox_18);
+ lbl_TabGame_aRotateViewCCW->setObjectName("lbl_TabGame_aRotateViewCCW");
+
+ gridLayout_19->addWidget(lbl_TabGame_aRotateViewCCW, 3, 2, 1, 1);
+
+ TabGame_aRotateViewCCW = new SequenceEdit("Player/aRotateViewCCW",groupBox_18);
+ TabGame_aRotateViewCCW->setObjectName("TabGame_aRotateViewCCW");
+
+ gridLayout_19->addWidget(TabGame_aRotateViewCCW, 3, 3, 1, 1);
+
+ gridLayout_20->addWidget(groupBox_18, 1, 1, 1, 2);
+
+ groupBox_14 = new QGroupBox(tab_3);
+ groupBox_14->setObjectName("groupBox_14");
+ gridLayout_14 = new QGridLayout(groupBox_14);
+ gridLayout_14->setObjectName("gridLayout_14");
+ lbl_Player_aMulligan = new QLabel(groupBox_14);
+ lbl_Player_aMulligan->setObjectName("lbl_Player_aMulligan");
+
+ gridLayout_14->addWidget(lbl_Player_aMulligan, 4, 0, 1, 1);
+
+ Player_aMulligan = new SequenceEdit("Player/aMulligan",groupBox_14);
+ Player_aMulligan->setObjectName("Player_aMulligan");
+
+ gridLayout_14->addWidget(Player_aMulligan, 4, 1, 1, 1);
+
+ lbl_Player_aDrawCard = new QLabel(groupBox_14);
+ lbl_Player_aDrawCard->setObjectName("lbl_Player_aDrawCard");
+
+ gridLayout_14->addWidget(lbl_Player_aDrawCard, 0, 0, 1, 1);
+
+ Player_aDrawCard = new SequenceEdit("Player/aDrawCard",groupBox_14);
+ Player_aDrawCard->setObjectName("Player_aDrawCard");
+
+ gridLayout_14->addWidget(Player_aDrawCard, 0, 1, 1, 1);
+
+ lbl_Player_aDrawCards = new QLabel(groupBox_14);
+ lbl_Player_aDrawCards->setObjectName("lbl_Player_aDrawCards");
+
+ gridLayout_14->addWidget(lbl_Player_aDrawCards, 1, 0, 1, 1);
+
+ Player_aDrawCards = new SequenceEdit("Player/aDrawCards",groupBox_14);
+ Player_aDrawCards->setObjectName("Player_aDrawCards");
+
+ gridLayout_14->addWidget(Player_aDrawCards, 1, 1, 1, 1);
+
+ lbl_Player_aUndoDraw = new QLabel(groupBox_14);
+ lbl_Player_aUndoDraw->setObjectName("lbl_Player_aUndoDraw");
+
+ gridLayout_14->addWidget(lbl_Player_aUndoDraw, 2, 0, 1, 1);
+
+ Player_aUndoDraw = new SequenceEdit("Player/aUndoDraw",groupBox_14);
+ Player_aUndoDraw->setObjectName("Player_aUndoDraw");
+
+ gridLayout_14->addWidget(Player_aUndoDraw, 2, 1, 1, 1);
+
+ lbl_Player_aAlwaysRevealTopCard = new QLabel(groupBox_14);
+ lbl_Player_aAlwaysRevealTopCard->setObjectName("lbl_Player_aAlwaysRevealTopCard");
+
+ gridLayout_14->addWidget(lbl_Player_aAlwaysRevealTopCard, 3, 0, 1, 1);
+
+ Player_aAlwaysRevealTopCard = new SequenceEdit("Player/aAlwaysRevealTopCard",groupBox_14);
+ Player_aAlwaysRevealTopCard->setObjectName("Player_aAlwaysRevealTopCard");
+
+ gridLayout_14->addWidget(Player_aAlwaysRevealTopCard, 3, 1, 1, 1);
+ gridLayout_20->addWidget(groupBox_14, 0, 0, 1, 1);
+ verticalSpacer_3 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+ gridLayout_20->addItem(verticalSpacer_3, 2, 1, 1, 1);
+ tabWidget->addTab(tab_3, QString());
+ tab_4 = new QWidget(tabWidget);
+ QGridLayout* grid = new QGridLayout(tab_4);
+ grid->addWidget(groupBox_3);
+ grid->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding),1,0);
+
+ tabWidget->addTab(tab_4, QString());
+ gridLayout_9->addWidget(tabWidget, 0, 0, 1, 1);
+ tabWidget->setCurrentIndex(0);
+
+ grid->setSpacing(3);
+ gridLayout->setSpacing(3);
+ gridLayout_2->setSpacing(3);
+ gridLayout_3->setSpacing(3);
+ gridLayout_4->setSpacing(3);
+ gridLayout_5->setSpacing(3);
+ gridLayout_6->setSpacing(3);
+ gridLayout_7->setSpacing(3);
+ gridLayout_8->setSpacing(3);
+ gridLayout_9->setSpacing(3);
+ gridLayout_10->setSpacing(3);
+ gridLayout_11->setSpacing(3);
+ gridLayout_12->setSpacing(3);
+ gridLayout_13->setSpacing(3);
+ gridLayout_14->setSpacing(3);
+ gridLayout_15->setSpacing(3);
+ gridLayout_16->setSpacing(3);
+ gridLayout_17->setSpacing(3);
+ gridLayout_18->setSpacing(3);
+ gridLayout_19->setSpacing(3);
+ gridLayout_20->setSpacing(3);
+
+ verticalLayout->setSpacing(3);
+ horizontalLayout->setSpacing(3);
+ QMetaObject::connectSlotsByName(shortcutsTab);
+ retranslateUi(shortcutsTab);
+ } // setupUi
+
+ void retranslateUi(QWidget *shortcutsTab)
+ {
+ shortcutsTab->setWindowTitle(QApplication::translate("shortcutsTab", "Form", 0));
+ groupBox->setTitle(QApplication::translate("shortcutsTab", "Main Window", 0));
+ lbl_MainWindow_aDeckEditor->setText(QApplication::translate("shortcutsTab", "Deck editor", 0));
+ lbl_MainWindow_aSinglePlayer->setText(QApplication::translate("shortcutsTab", "Local gameplay", 0));
+ lbl_MainWindow_aWatchReplay->setText(QApplication::translate("shortcutsTab", "Watch replay", 0));
+ lbl_MainWindow_aConnect->setText(QApplication::translate("shortcutsTab", "Connect", 0));
+ lbl_MainWindow_aRegister->setText(QApplication::translate("shortcutsTab", "Register", 0));
+ 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_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));
+ lbl_TabDeckEditor_aLoadDeckFromClipboard->setText(QApplication::translate("shortcutsTab", "Load deck (clipboard)", 0));
+ lbl_TabDeckEditor_aClearFilterAll->setText(QApplication::translate("shortcutsTab", "Clerar all filters", 0));
+ lbl_TabDeckEditor_aNewDeck->setText(QApplication::translate("shortcutsTab", "New deck", 0));
+ lbl_TabDeckEditor_aClearFilterOne->setText(QApplication::translate("shortcutsTab", "Clear one filter", 0));
+ lbl_TabDeckEditor_aOpenCustomFolder->setText(QApplication::translate("shortcutsTab", "Open custom folder", 0));
+ lbl_TabDeckEditor_aClose->setText(QApplication::translate("shortcutsTab", "Close", 0));
+ lbl_TabDeckEditor_aPrintDeck->setText(QApplication::translate("shortcutsTab", "Print deck", 0));
+ lbl_TabDeckEditor_aEditSets->setText(QApplication::translate("shortcutsTab", "Edit sets", 0));
+ lbl_TabDeckEditor_aRemoveCard->setText(QApplication::translate("shortcutsTab", "Delete card", 0));
+ lbl_TabDeckEditor_aEditTokens->setText(QApplication::translate("shortcutsTab", "Edit tokens", 0));
+ lbl_TabDeckEditor_aResetLayout->setText(QApplication::translate("shortcutsTab", "Reset layout", 0));
+ lbl_TabDeckEditor_aIncrement->setText(QApplication::translate("shortcutsTab", "Add card", 0));
+ lbl_TabDeckEditor_aSaveDeck->setText(QApplication::translate("shortcutsTab", "Save deck", 0));
+ lbl_TabDeckEditor_aDecrement->setText(QApplication::translate("shortcutsTab", "Remove card", 0));
+ lbl_TabDeckEditor_aSaveDeckAs->setText(QApplication::translate("shortcutsTab", "Save deck as", 0));
+ lbl_TabDeckEditor_aLoadDeck->setText(QApplication::translate("shortcutsTab", "Load deck", 0));
+ lbl_TabDeckEditor_aSaveDeckToClipboard->setText(QApplication::translate("shortcutsTab", "Save deck (clipboard)", 0));
+ groupBox_3->setTitle(QApplication::translate("shortcutsTab", "Counters", 0));
+ groupBox_4->setTitle(QApplication::translate("shortcutsTab", "Life", 0));
+ lbl_abstractCounter_sSet->setText(QApplication::translate("shortcutsTab", "Set", 0));
+ lbl_abstractCounter_aInc->setText(QApplication::translate("shortcutsTab", "Add", 0));
+ lbl_abstractCounter_aDec->setText(QApplication::translate("shortcutsTab", "Remove", 0));
+ groupBox_5->setTitle(QApplication::translate("shortcutsTab", "Red", 0));
+ lbl_Player_aSCRed->setText(QApplication::translate("shortcutsTab", "Set", 0));
+ lbl_Player_aCCRed->setText(QApplication::translate("shortcutsTab", "Add", 0));
+ lbl_Player_aRCRed->setText(QApplication::translate("shortcutsTab", "Remove", 0));
+ groupBox_6->setTitle(QApplication::translate("shortcutsTab", "Green", 0));
+ lbl_Player_aSCGreen->setText(QApplication::translate("shortcutsTab", "Set", 0));
+ lbl_Player_aCCGreen->setText(QApplication::translate("shortcutsTab", "Add", 0));
+ lbl_Player_aRCGreen->setText(QApplication::translate("shortcutsTab", "Remove", 0));
+ groupBox_7->setTitle(QApplication::translate("shortcutsTab", "Yellow", 0));
+ lbl_Player_aSCYellow->setText(QApplication::translate("shortcutsTab", "Set", 0));
+ lbl_Player_aCCYellow->setText(QApplication::translate("shortcutsTab", "Add", 0));
+ lbl_Player_aRCYellow->setText(QApplication::translate("shortcutsTab", "Remove", 0));
+ tabWidget->setTabText(tabWidget->indexOf(tab), QApplication::translate("shortcutsTab", "Mainwindow / Deck editor", 0));
+ groupBox_9->setTitle(QApplication::translate("shortcutsTab", "Power / toughness", 0));
+ groupBox_12->setTitle(QApplication::translate("shortcutsTab", "Power and toughness", 0));
+ lbl_Player_aIncPT->setText(QApplication::translate("shortcutsTab", "Add (+1/+1)", 0));
+ lbl_Player_aDecPT->setText(QApplication::translate("shortcutsTab", "Remove (-1/-1)", 0));
+ lbl_Player_aSetPT->setText(QApplication::translate("shortcutsTab", "Set", 0));
+ groupBox_11->setTitle(QApplication::translate("shortcutsTab", "Toughness", 0));
+ lbl_Player_aDecT->setText(QApplication::translate("shortcutsTab", "Remove (-0/-1)", 0));
+ lbl_Player_aIncT->setText(QApplication::translate("shortcutsTab", "Add (+0/+1)", 0));
+ groupBox_10->setTitle(QApplication::translate("shortcutsTab", "Power", 0));
+ lbl_Player_aDecP->setText(QApplication::translate("shortcutsTab", "Remove (-1/-0)", 0));
+ 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_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));
+ lbl_TabGame_phase5->setText(QApplication::translate("shortcutsTab", "Attack", 0));
+ lbl_TabGame_phase6->setText(QApplication::translate("shortcutsTab", "Block", 0));
+ lbl_TabGame_phase7->setText(QApplication::translate("shortcutsTab", "Damage", 0));
+ lbl_TabGame_phase8->setText(QApplication::translate("shortcutsTab", "End combat", 0));
+ lbl_TabGame_phase9->setText(QApplication::translate("shortcutsTab", "Main 2", 0));
+ lbl_TabGame_phase10->setText(QApplication::translate("shortcutsTab", "End", 0));
+ lbl_TabGame_aNextPhase->setText(QApplication::translate("shortcutsTab", "Next phase", 0));
+ lbl_TabGame_aNextTurn->setText(QApplication::translate("shortcutsTab", "Next turn", 0));
+ groupBox_13->setTitle(QApplication::translate("shortcutsTab", "Player", 0));
+ lbl_Player_aTap->setText(QApplication::translate("shortcutsTab", "Tap Card", 0));
+ lbl_Player_aUntap->setText(QApplication::translate("shortcutsTab", "Untap Card", 0));
+ lbl_Player_aUntapAll->setText(QApplication::translate("shortcutsTab", "Untap all", 0));
+ lbl_Player_aDoesntUntap->setText(QApplication::translate("shortcutsTab", "Toogle untap", 0));
+ lbl_Player_aFlip->setText(QApplication::translate("shortcutsTab", "Flip card", 0));
+ lbl_Player_aPeek->setText(QApplication::translate("shortcutsTab", "Peek card", 0));
+ lbl_Player_aPlay->setText(QApplication::translate("shortcutsTab", "Play card", 0));
+ lbl_Player_aAttach->setText(QApplication::translate("shortcutsTab", "Attach card", 0));
+ lbl_Player_aUnattach->setText(QApplication::translate("shortcutsTab", "Unattach card", 0));
+ lbl_Player_aClone->setText(QApplication::translate("shortcutsTab", "Clone card", 0));
+ lbl_Player_aCreateToken->setText(QApplication::translate("shortcutsTab", "Create token", 0));
+ lbl_Player_aCreateAnotherToken->setText(QApplication::translate("shortcutsTab", "Create another token", 0));
+ lbl_Player_aSetAnnotation->setText(QApplication::translate("shortcutsTab", "Set annotation", 0));
+ tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("shortcutsTab", "Phases / P/T / Player", 0));
+ groupBox_15->setTitle(QApplication::translate("shortcutsTab", "Move card to", 0));
+ lbl_Player_aMoveToBottomLibrary->setText(QApplication::translate("shortcutsTab", "Bottom library", 0));
+ lbl_Player_aMoveToTopLibrary->setText(QApplication::translate("shortcutsTab", "Top library", 0));
+ lbl_Player_aMoveToGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard", 0));
+ lbl_Player_aMoveToExile->setText(QApplication::translate("shortcutsTab", "Exile", 0));
+ lbl_Player_aMoveToHand->setText(QApplication::translate("shortcutsTab", "Hand", 0));
+ groupBox_16->setTitle(QApplication::translate("shortcutsTab", "View", 0));
+ lbl_Player_aViewGraveyard->setText(QApplication::translate("shortcutsTab", "Graveyard", 0));
+ lbl_Player_aViewLibrary->setText(QApplication::translate("shortcutsTab", "Library", 0));
+ lbl_Player_aViewTopCards->setText(QApplication::translate("shortcutsTab", "Tops card of library", 0));
+ lbl_Player_aViewSideboard->setText(QApplication::translate("shortcutsTab", "Sideboard", 0));
+ lbl_Player_aViewRfg->setText(QApplication::translate("shortcutsTab", "Exile", 0));
+ lbl_GameView_aCloseMostRecentZoneView->setText(QApplication::translate("shortcutsTab", "Close recent view", 0));
+ groupBox_17->setTitle(QApplication::translate("shortcutsTab", "Pre-play", 0));
+ lbl_DeckViewContainer_loadRemoteButton->setText(QApplication::translate("shortcutsTab", "Load remote deck", 0));
+ lbl_DeckViewContainer_loadLocalButton->setText(QApplication::translate("shortcutsTab", "Load local deck", 0));
+ groupBox_18->setTitle(QApplication::translate("shortcutsTab", "Game play", 0));
+ lbl_Player_aDrawArrow->setText(QApplication::translate("shortcutsTab", "Draw arrow", 0));
+ lbl_TabGame_aLeaveGame->setText(QApplication::translate("shortcutsTab", "Leave game", 0));
+ lbl_TabGame_aRemoveLocalArrows->setText(QApplication::translate("shortcutsTab", "Remove local arrows", 0));
+ lbl_TabGame_aConcede->setText(QApplication::translate("shortcutsTab", "Concede", 0));
+ lbl_Player_aRollDie->setText(QApplication::translate("shortcutsTab", "Roll dice", 0));
+ lbl_TabGame_aRotateViewCW->setText(QApplication::translate("shortcutsTab", "Rotate view CW", 0));
+ lbl_Player_aShuffle->setText(QApplication::translate("shortcutsTab", "Shuffle library", 0));
+ lbl_TabGame_aRotateViewCCW->setText(QApplication::translate("shortcutsTab", "Rotate view CCW", 0));
+ groupBox_14->setTitle(QApplication::translate("shortcutsTab", "Draw", 0));
+ lbl_Player_aMulligan->setText(QApplication::translate("shortcutsTab", "Mulligan", 0));
+ lbl_Player_aDrawCard->setText(QApplication::translate("shortcutsTab", "Draw card", 0));
+ lbl_Player_aDrawCards->setText(QApplication::translate("shortcutsTab", "Draw cards", 0));
+ lbl_Player_aUndoDraw->setText(QApplication::translate("shortcutsTab", "Undo draw", 0));
+ lbl_Player_aAlwaysRevealTopCard->setText(QApplication::translate("shortcutsTab", "Always reveal top card", 0));
+ tabWidget->setTabText(tabWidget->indexOf(tab_3), QApplication::translate("shortcutsTab", "Draw / Move / View / Game play", 0));
+ tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("shortcutsTab","Counters", 0));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class shortcutsTab: public Ui_shortcutsTab {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_SHORTCUTSTAB_H
diff --git a/cockatrice/src/settingscache.cpp b/cockatrice/src/settingscache.cpp
index dd7b34fd..462001c6 100644
--- a/cockatrice/src/settingscache.cpp
+++ b/cockatrice/src/settingscache.cpp
@@ -6,17 +6,17 @@
#include
#endif
-QString SettingsCache::getLayoutsSettingsPath()
+QString SettingsCache::getSettingsPath()
{
QString file = "";
#ifndef PORTABLE_BUILD
- #if QT_VERSION >= 0x050000
+#if QT_VERSION >= 0x050000
file = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
#else
file = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
#endif
- file.append("/settings/layouts/");
+ file.append("/settings/");
#endif
return file;
@@ -25,6 +25,7 @@ QString SettingsCache::getLayoutsSettingsPath()
SettingsCache::SettingsCache()
{
settings = new QSettings(this);
+ shortcutsSettings = new ShortcutsSettings(getSettingsPath(),this);
lang = settings->value("personal/lang").toString();
keepalive = settings->value("personal/keepalive", 5).toInt();
@@ -119,8 +120,8 @@ SettingsCache::SettingsCache()
spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool();
clientID = settings->value("personal/clientid", "notset").toString();
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
deckEditorLayoutState = layout_settings.value("layouts/deckEditor_state").toByteArray();
@@ -505,8 +506,8 @@ void SettingsCache::setDeckEditorLayoutState(const QByteArray &value)
{
deckEditorLayoutState = value;
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_state",value);
}
@@ -515,8 +516,8 @@ void SettingsCache::setDeckEditorGeometry(const QByteArray &value)
{
deckEditorGeometry = value;
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_geometry",value);
}
@@ -525,8 +526,8 @@ void SettingsCache::setDeckEditorCardSize(const QSize &value)
{
deckEditorCardSize = value;
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_CardSize",value);
}
@@ -535,8 +536,8 @@ void SettingsCache::setDeckEditorDeckSize(const QSize &value)
{
deckEditorDeckSize = value;
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_DeckSize",value);
}
@@ -545,8 +546,8 @@ void SettingsCache::setDeckEditorFilterSize(const QSize &value)
{
deckEditorFilterSize = value;
- QString file = getLayoutsSettingsPath();
- file.append("deckLayout.ini");
+ QString file = getSettingsPath();
+ file.append("layouts/deckLayout.ini");
QSettings layout_settings(file , QSettings::IniFormat);
layout_settings.setValue("layouts/deckEditor_FilterSize",value);
}
diff --git a/cockatrice/src/settingscache.h b/cockatrice/src/settingscache.h
index 28d32e4b..f8227efc 100644
--- a/cockatrice/src/settingscache.h
+++ b/cockatrice/src/settingscache.h
@@ -4,6 +4,7 @@
#include
#include
#include
+#include "shortcutssettings.h"
// the falbacks are used for cards without a muid
#define PIC_URL_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card"
@@ -46,7 +47,7 @@ signals:
void chatMentionCompleterChanged();
private:
QSettings *settings;
-
+ ShortcutsSettings *shortcutsSettings;
QByteArray mainWindowGeometry;
QString lang;
QString deckPath, replaysPath, picsPath, cardDatabasePath, tokenDatabasePath;
@@ -104,7 +105,7 @@ private:
int keepalive;
QByteArray deckEditorLayoutState, deckEditorGeometry;
QSize deckEditorFilterSize, deckEditorDeckSize, deckEditorCardSize;
- QString getLayoutsSettingsPath();
+ QString getSettingsPath();
public:
SettingsCache();
@@ -190,6 +191,7 @@ public:
void setDeckEditorDeckSize(const QSize &value);
QSize getDeckEditorFilterSize() const { return deckEditorFilterSize; }
void setDeckEditorFilterSize(const QSize &value);
+ ShortcutsSettings& shortcuts() const { return *shortcutsSettings; }
public slots:
void setMainWindowGeometry(const QByteArray &_mainWindowGeometry);
diff --git a/cockatrice/src/shortcutssettings.cpp b/cockatrice/src/shortcutssettings.cpp
new file mode 100644
index 00000000..242140a3
--- /dev/null
+++ b/cockatrice/src/shortcutssettings.cpp
@@ -0,0 +1,228 @@
+#include "shortcutssettings.h"
+#include
+#include
+
+ShortcutsSettings::ShortcutsSettings(QString settingsPath, QObject *parent) : QObject(parent)
+{
+ this->settingsFilePath = settingsPath;
+ this->settingsFilePath.append("shortcuts.ini");
+ fillDefaultShorcuts();
+ shortCuts = QMap >(defaultShortCuts);
+
+ bool exists = QFile(settingsFilePath).exists();
+
+ QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
+
+ if(exists){
+ shortCutsFile.beginGroup("Custom");
+ const QStringList customKeys = shortCutsFile.allKeys();
+ for(QStringList::const_iterator it = customKeys.constBegin(); it != customKeys.constEnd(); ++it)
+ {
+ QString stringSecuence = shortCutsFile.value(*it).toString();
+ QList secuenceList = parseSecuenceString(stringSecuence);
+ shortCuts.insert(*it, secuenceList);
+ }
+ shortCutsFile.endGroup();
+ }
+}
+
+QList ShortcutsSettings::getShortcut(QString name)
+{
+ if(shortCuts.contains(name))
+ return shortCuts.value(name);
+
+ return defaultShortCuts.value(name, QList());
+}
+
+QKeySequence ShortcutsSettings::getSingleShortcut(QString name)
+{
+ return getShortcut(name).at(0);
+}
+
+QString ShortcutsSettings::getDefaultShortcutString(QString name)
+{
+ return stringifySecuence(defaultShortCuts.value(name));
+}
+
+QString ShortcutsSettings::getShortcutString(QString name)
+{
+ return stringifySecuence(shortCuts.value(name));
+}
+
+QString ShortcutsSettings::stringifySecuence(QList secuence) const
+{
+ QString stringSecuence;
+ for(int i=0; i < secuence.size(); ++i)
+ {
+ stringSecuence.append(secuence.at(i).toString(QKeySequence::PortableText));
+ if(i < secuence.size() - 1)
+ stringSecuence.append(";");
+ }
+
+ return stringSecuence;
+}
+
+QList ShortcutsSettings::parseSecuenceString(QString stringSecuence)
+{
+ QStringList secuences = stringSecuence.split(";");
+ QList secuenceList;
+ for(QStringList::const_iterator ss = secuences.constBegin(); ss != secuences.constEnd(); ++ss)
+ {
+ secuenceList.append(QKeySequence(*ss, QKeySequence::PortableText));
+ }
+
+ return secuenceList;
+}
+
+void ShortcutsSettings::setShortcuts(QString name, QList secuence)
+{
+ shortCuts[name] = secuence;
+
+ QSettings shortCutsFile(settingsFilePath, QSettings::IniFormat);
+ shortCutsFile.beginGroup("Custom");
+ QString stringSecuence = stringifySecuence(secuence);
+ shortCutsFile.setValue(name, stringSecuence);
+ shortCutsFile.endGroup();
+ emit shortCutchanged();
+}
+
+void ShortcutsSettings::setShortcuts(QString name, QKeySequence secuence)
+{
+ setShortcuts(name, QList() << 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 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");
+ defaultShortCuts["tab_room/aClearChat"] = parseSecuenceString("F12");
+ defaultShortCuts["DlgLoadDeckFromClipboard/refreshButton"] = parseSecuenceString("F5");
+}
+
diff --git a/cockatrice/src/shortcutssettings.h b/cockatrice/src/shortcutssettings.h
new file mode 100644
index 00000000..45324106
--- /dev/null
+++ b/cockatrice/src/shortcutssettings.h
@@ -0,0 +1,40 @@
+#ifndef SHORTCUTSSETTINGS_H
+#define SHORTCUTSSETTINGS_H
+
+#include
+#include
+#include
+#include
+
+class ShortcutsSettings : public QObject
+{
+ Q_OBJECT
+public:
+ ShortcutsSettings(QString settingsFilePath, QObject *parent = 0);
+ ~ShortcutsSettings() { }
+
+ QList getShortcut(QString name);
+ QKeySequence getSingleShortcut(QString name);
+
+ QString getDefaultShortcutString(QString name);
+ QString getShortcutString(QString name);
+
+ void setShortcuts(QString name, QList secuence);
+ void setShortcuts(QString name, QKeySequence secuence);
+ void setShortcuts(QString name, QString secuences);
+
+ bool isValid(QString name, QString secuences);
+signals:
+ void shortCutchanged();
+
+private:
+ QString settingsFilePath;
+ QMap > shortCuts;
+ QMap > defaultShortCuts;
+ void fillDefaultShorcuts();
+
+ QString stringifySecuence(QList secuence) const;
+ QList parseSecuenceString(QString stringSecuence);
+};
+
+#endif // SHORTCUTSSETTINGS_H
diff --git a/cockatrice/src/tab_deck_editor.cpp b/cockatrice/src/tab_deck_editor.cpp
index c5a40ab0..52c24995 100644
--- a/cockatrice/src/tab_deck_editor.cpp
+++ b/cockatrice/src/tab_deck_editor.cpp
@@ -256,37 +256,41 @@ void TabDeckEditor::createFiltersDock()
void TabDeckEditor::createMenus()
{
aNewDeck = new QAction(QString(), this);
- aNewDeck->setShortcuts(QKeySequence::New);
connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck()));
+
aLoadDeck = new QAction(QString(), this);
- aLoadDeck->setShortcuts(QKeySequence::Open);
connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck()));
+
aSaveDeck = new QAction(QString(), this);
- aSaveDeck->setShortcuts(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()));
+
+ aOpenCustomsetsFolder = new QAction(QString(), this);
+ connect(aOpenCustomsetsFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomsetsFolder()));
+
aLoadDeckFromClipboard = new QAction(QString(), this);
connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard()));
- aLoadDeckFromClipboard->setShortcuts(QKeySequence::Paste);
+
aSaveDeckToClipboard = new QAction(QString(), this);
connect(aSaveDeckToClipboard, SIGNAL(triggered()), this, SLOT(actSaveDeckToClipboard()));
- aSaveDeckToClipboard->setShortcuts(QKeySequence::Copy);
+
aPrintDeck = new QAction(QString(), this);
- aPrintDeck->setShortcuts(QKeySequence::Print);
connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck()));
+
aAnalyzeDeck = new QAction(QString(), this);
connect(aAnalyzeDeck, SIGNAL(triggered()), this, SLOT(actAnalyzeDeck()));
+
aClose = new QAction(QString(), this);
connect(aClose, SIGNAL(triggered()), this, SLOT(closeRequest()));
+
aOpenCustomFolder = new QAction(QString(), this);
connect(aOpenCustomFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomFolder()));
- aOpenCustomsetsFolder = new QAction(QString(), this);
- connect(aOpenCustomsetsFolder, SIGNAL(triggered()), this, SLOT(actOpenCustomsetsFolder()));
aEditSets = new QAction(QString(), this);
connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets()));
+
aEditTokens = new QAction(QString(), this);
connect(aEditTokens, SIGNAL(triggered()), this, SLOT(actEditTokens()));
@@ -424,7 +428,7 @@ void TabDeckEditor::createCentralFrame()
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->setObjectName("mainLayout");
mainLayout->addWidget(MainWindow);
- setLayout(mainLayout);
+ setLayout(mainLayout);
}
void TabDeckEditor::restartLayout()
@@ -464,6 +468,30 @@ void TabDeckEditor::freeDocksSize()
filterDock->setMaximumSize(5000,5000);
}
+void TabDeckEditor::refreshShortcuts()
+{
+ aNewDeck->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aNewDeck"));
+ aLoadDeck->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aLoadDeck"));
+ aSaveDeck->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aSaveDeck"));
+ aSaveDeckAs->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aSaveDeckAs"));
+ aLoadDeckFromClipboard->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aLoadDeckFromClipboard"));
+ aPrintDeck->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aPrintDeck"));
+ aAnalyzeDeck->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aAnalyzeDeck"));
+ aClose->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aClose"));
+ aOpenCustomFolder->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aOpenCustomFolder"));
+ aEditSets->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aEditSets"));
+ aEditTokens->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aEditTokens"));
+ aResetLayout->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aResetLayout"));
+ aClearFilterAll->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aClearFilterAll"));
+ aClearFilterOne->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aClearFilterOne"));
+ aSaveDeckToClipboard->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aSaveDeckToClipboard"));
+ aClearFilterOne->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aClearFilterOne"));
+ aClose->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aClose"));
+ aRemoveCard->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aRemoveCard"));
+ aIncrement->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aIncrement"));
+ aDecrement->setShortcuts(settingsCache->shortcuts().getShortcut("TabDeckEditor/aDecrement"));
+}
+
void TabDeckEditor::loadLayout()
{
MainWindow->restoreState(settingsCache->getDeckEditorLayoutState());
@@ -504,6 +532,9 @@ TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent)
this->installEventFilter(this);
retranslateUi();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
+
QTimer::singleShot(0, this, SLOT(checkFirstRunDetected()));
QTimer::singleShot(0, this, SLOT(loadLayout()));
}
@@ -519,7 +550,6 @@ void TabDeckEditor::retranslateUi()
aClearFilterAll->setText(tr("&Clear all filters"));
aClearFilterOne->setText(tr("Delete selected"));
- aClearFilterOne->setShortcut(QKeySequence("Backspace"));
nameLabel->setText(tr("Deck &name:"));
commentsLabel->setText(tr("&Comments:"));
@@ -537,19 +567,17 @@ void TabDeckEditor::retranslateUi()
aPrintDeck->setText(tr("&Print deck..."));
aAnalyzeDeck->setText(tr("&Analyze deck on deckstats.net"));
aOpenCustomFolder->setText(tr("Open custom image folder"));
- aOpenCustomsetsFolder->setText(tr("Open custom sets folder"));
+ aOpenCustomsetsFolder->setText(tr("Open custom sets folder"));
aClose->setText(tr("&Close"));
- aClose->setShortcut(QKeySequence("Ctrl+Q"));
aAddCard->setText(tr("Add card to &maindeck"));
aAddCardToSideboard->setText(tr("Add card to &sideboard"));
aRemoveCard->setText(tr("&Remove row"));
- aRemoveCard->setShortcut(QKeySequence("Del"));
+
aIncrement->setText(tr("&Increment number"));
- aIncrement->setShortcut(QKeySequence("+"));
+
aDecrement->setText(tr("&Decrement number"));
- aDecrement->setShortcut(QKeySequence("-"));
deckMenu->setTitle(tr("&Deck Editor"));
dbMenu->setTitle(tr("C&ard Database"));
diff --git a/cockatrice/src/tab_deck_editor.h b/cockatrice/src/tab_deck_editor.h
index 19591e3f..996e3ec8 100644
--- a/cockatrice/src/tab_deck_editor.h
+++ b/cockatrice/src/tab_deck_editor.h
@@ -83,6 +83,7 @@ class TabDeckEditor : public Tab {
void loadLayout();
void restartLayout();
void freeDocksSize();
+ void refreshShortcuts();
private:
CardInfo *currentCardInfo() const;
diff --git a/cockatrice/src/tab_game.cpp b/cockatrice/src/tab_game.cpp
index a99f8517..22f54831 100644
--- a/cockatrice/src/tab_game.cpp
+++ b/cockatrice/src/tab_game.cpp
@@ -120,14 +120,14 @@ DeckViewContainer::DeckViewContainer(int _playerId, TabGame *parent)
setLayout(deckViewLayout);
retranslateUi();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
}
void DeckViewContainer::retranslateUi()
{
loadLocalButton->setText(tr("Load local deck"));
- loadLocalButton->setShortcut(QKeySequence("Ctrl+O"));
loadRemoteButton->setText(tr("Load deck from server"));
- loadRemoteButton->setShortcut(QKeySequence("Ctrl+Alt+O"));
readyStartButton->setText(tr("Ready to s&tart"));
updateSideboardLockButtonText();
}
@@ -148,6 +148,58 @@ void DeckViewContainer::updateSideboardLockButtonText()
sideboardLockButton->setText(tr("S&ideboard locked"));
}
+void DeckViewContainer::refreshShortcuts()
+{
+ loadLocalButton->setShortcut(settingsCache->shortcuts().getSingleShortcut("DeckViewContainer/loadLocalButton"));
+ loadRemoteButton->setShortcut(settingsCache->shortcuts().getSingleShortcut("DeckViewContainer/loadRemoteButton"));
+}
+
+void TabGame::refreshShortcuts()
+{
+ for (int i = 0; i < phaseActions.size(); ++i) {
+ QAction *temp = phaseActions.at(i);
+ switch (i) {
+ case 0: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase0")); break;
+ case 1: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase1")); break;
+ case 2: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase2")); break;
+ case 3: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase3")); break;
+ case 4: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase4")); break;
+ case 5: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase5")); break;
+ case 6: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase6")); break;
+ case 7: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase7")); break;
+ case 8: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase8")); break;
+ case 9: temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase9")); break;
+ case 10:temp->setShortcuts(settingsCache->shortcuts().getShortcut("Player/phase10")); break;
+ default: ;
+ }
+ }
+
+ if (aNextPhase) {
+ aNextPhase->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aNextPhase"));
+ }
+ if (aNextTurn) {
+ aNextTurn->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aNextTurn"));
+ }
+ if (aRemoveLocalArrows) {
+ aRemoveLocalArrows->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aRemoveLocalArrows"));
+ }
+ if (aRotateViewCW) {
+ aRotateViewCW->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aRotateViewCW"));
+ }
+ if (aRotateViewCCW) {
+ aRotateViewCCW->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aRotateViewCCW"));
+ }
+ if (aConcede) {
+ aConcede->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aConcede"));
+ }
+ if (aLeaveGame) {
+ aLeaveGame->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aLeaveGame"));
+ }
+ if (aCloseReplay) {
+ aCloseReplay->setShortcuts(settingsCache->shortcuts().getShortcut("Player/aCloseReplay"));
+ }
+}
+
void DeckViewContainer::loadLocalDeck()
{
QFileDialog dialog(this, tr("Load deck"));
@@ -359,6 +411,8 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
addTabMenu(gameMenu);
retranslateUi();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
setLayout(superMainLayout);
splitter->restoreState(settingsCache->getTabGameSplitterSizes());
@@ -468,18 +522,10 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList &_client
for (int i = 0; i < phasesToolbar->phaseCount(); ++i) {
QAction *temp = new QAction(QString(), this);
connect(temp, SIGNAL(triggered()), this, SLOT(actPhaseAction()));
- switch (i) {
- case 0: temp->setShortcut(QKeySequence("F5")); break;
- case 2: temp->setShortcut(QKeySequence("F6")); break;
- case 3: temp->setShortcut(QKeySequence("F7")); break;
- case 4: temp->setShortcut(QKeySequence("F8")); break;
- case 9: temp->setShortcut(QKeySequence("F9")); break;
- case 10: temp->setShortcut(QKeySequence("F10")); break;
- default: ;
- }
phasesMenu->addAction(temp);
phaseActions.append(temp);
}
+
phasesMenu->addSeparator();
phasesMenu->addAction(aNextPhase);
@@ -498,6 +544,8 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList &_client
addTabMenu(gameMenu);
retranslateUi();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
setLayout(mainLayout);
splitter->restoreState(settingsCache->getTabGameSplitterSizes());
@@ -545,37 +593,29 @@ void TabGame::retranslateUi()
gameMenu->setTitle(tr("&Game"));
if (aNextPhase) {
aNextPhase->setText(tr("Next &phase"));
- aNextPhase->setShortcuts(QList() << QKeySequence("Ctrl+Space") << QKeySequence("Tab"));
}
if (aNextTurn) {
aNextTurn->setText(tr("Next &turn"));
- aNextTurn->setShortcuts(QList() << QKeySequence("Ctrl+Return") << QKeySequence("Ctrl+Enter"));
}
if (aRemoveLocalArrows) {
aRemoveLocalArrows->setText(tr("&Remove all local arrows"));
- aRemoveLocalArrows->setShortcut(QKeySequence("Ctrl+R"));
}
if (aRotateViewCW) {
aRotateViewCW->setText(tr("Rotate View Cl&ockwise"));
- aRotateViewCW->setShortcut(QKeySequence("Ctrl+]"));
}
if (aRotateViewCCW) {
aRotateViewCCW->setText(tr("Rotate View Co&unterclockwise"));
- aRotateViewCCW->setShortcut(QKeySequence("Ctrl+["));
}
if (aGameInfo)
aGameInfo->setText(tr("Game &information"));
if (aConcede) {
aConcede->setText(tr("&Concede"));
- aConcede->setShortcut(QKeySequence("F2"));
}
if (aLeaveGame) {
aLeaveGame->setText(tr("&Leave game"));
- aLeaveGame->setShortcut(QKeySequence("Ctrl+Q"));
}
if (aCloseReplay) {
aCloseReplay->setText(tr("C&lose replay"));
- aCloseReplay->setShortcut(QKeySequence("Ctrl+Q"));
}
if (sayLabel)
diff --git a/cockatrice/src/tab_game.h b/cockatrice/src/tab_game.h
index e704b569..719d4dd5 100644
--- a/cockatrice/src/tab_game.h
+++ b/cockatrice/src/tab_game.h
@@ -84,6 +84,7 @@ private slots:
void sideboardPlanChanged();
void sideboardLockButtonClicked();
void updateSideboardLockButtonText();
+ void refreshShortcuts();
signals:
void newCardAdded(AbstractCardItem *card);
public:
@@ -199,6 +200,7 @@ private slots:
void addMentionTag(QString value);
void commandFinished(const Response &response);
+ void refreshShortcuts();
public:
TabGame(TabSupervisor *_tabSupervisor, QList &_clients, const Event_GameJoined &event, const QMap &_roomGameTypes);
TabGame(TabSupervisor *_tabSupervisor, GameReplay *replay);
diff --git a/cockatrice/src/tab_room.cpp b/cockatrice/src/tab_room.cpp
index b49b6604..45b6f281 100644
--- a/cockatrice/src/tab_room.cpp
+++ b/cockatrice/src/tab_room.cpp
@@ -68,7 +68,6 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
QMenu *chatSettingsMenu = new QMenu(this);
aClearChat = chatSettingsMenu->addAction(QString());
- aClearChat->setShortcut(QKeySequence("F12"));
connect(aClearChat, SIGNAL(triggered()), this, SLOT(actClearChat()));
chatSettingsMenu->addSeparator();
@@ -132,6 +131,8 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
sayEdit->setCompleter(completer);
actCompleterChanged();
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
}
TabRoom::~TabRoom()
@@ -282,6 +283,11 @@ void TabRoom::processRoomSayEvent(const Event_RoomSay &event)
emit userEvent(false);
}
+void TabRoom::refreshShortcuts()
+{
+ aClearChat->setShortcuts(settingsCache->shortcuts().getShortcut("tab_room/aClearChat"));
+}
+
void TabRoom::addMentionTag(QString mentionTag) {
sayEdit->insert(mentionTag + " ");
sayEdit->setFocus();
@@ -416,4 +422,4 @@ void CustomLineEdit::updateCompleterModel(QStringList completionList)
model = new QStringListModel();
QStringList updatedList = completionList;
model->setStringList(updatedList);
-}
\ No newline at end of file
+}
diff --git a/cockatrice/src/tab_room.h b/cockatrice/src/tab_room.h
index 98a74d8f..d8201e08 100644
--- a/cockatrice/src/tab_room.h
+++ b/cockatrice/src/tab_room.h
@@ -73,6 +73,7 @@ private slots:
void processJoinRoomEvent(const Event_JoinRoom &event);
void processLeaveRoomEvent(const Event_LeaveRoom &event);
void processRoomSayEvent(const Event_RoomSay &event);
+ void refreshShortcuts();
public:
TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info);
~TabRoom();
diff --git a/cockatrice/src/window_main.cpp b/cockatrice/src/window_main.cpp
index 9eff2c60..a2edd199 100644
--- a/cockatrice/src/window_main.cpp
+++ b/cockatrice/src/window_main.cpp
@@ -461,7 +461,6 @@ void MainWindow::retranslateUi()
aWatchReplay->setText(tr("&Watch replay..."));
aDeckEditor->setText(tr("&Deck editor"));
aFullScreen->setText(tr("&Full screen"));
- aFullScreen->setShortcut(QKeySequence("Ctrl+F"));
aRegister->setText(tr("&Register to server..."));
aSettings->setText(tr("&Settings..."));
aExit->setText(tr("&Exit"));
@@ -471,10 +470,10 @@ void MainWindow::retranslateUi()
#else
cockatriceMenu->setTitle(tr("&Cockatrice"));
#endif
+
aAbout->setText(tr("&About Cockatrice"));
helpMenu->setTitle(tr("&Help"));
aCheckCardUpdates->setText(tr("Check for card updates..."));
-
tabSupervisor->retranslateUi();
}
@@ -593,6 +592,9 @@ MainWindow::MainWindow(QWidget *parent)
createTrayActions();
createTrayIcon();
}
+
+ connect(&settingsCache->shortcuts(), SIGNAL(shortCutchanged()),this,SLOT(refreshShortcuts()));
+ refreshShortcuts();
}
MainWindow::~MainWindow()
@@ -772,3 +774,17 @@ void MainWindow::cardUpdateFinished(int, QProcess::ExitStatus)
// this will force a database reload
settingsCache->setCardDatabasePath(settingsCache->getCardDatabasePath());
}
+
+void MainWindow::refreshShortcuts()
+{
+ aConnect->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aConnect"));
+ aDisconnect->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aDisconnect"));
+ aSinglePlayer->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aSinglePlayer"));
+ aWatchReplay->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aWatchReplay"));
+ aDeckEditor->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aDeckEditor"));
+ aFullScreen->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aFullScreen"));
+ aRegister->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aRegister"));
+ aSettings->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aSettings"));
+ aExit->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aExit"));
+ aCheckCardUpdates->setShortcuts(settingsCache->shortcuts().getShortcut("MainWindow/aCheckCardUpdates"));
+}
diff --git a/cockatrice/src/window_main.h b/cockatrice/src/window_main.h
index 5c319318..5a12676e 100644
--- a/cockatrice/src/window_main.h
+++ b/cockatrice/src/window_main.h
@@ -73,6 +73,7 @@ private slots:
void actCheckCardUpdates();
void cardUpdateError(QProcess::ProcessError err);
void cardUpdateFinished(int exitCode, QProcess::ExitStatus exitStatus);
+ void refreshShortcuts();
private:
static const QString appName;
void setClientStatusTitle();
diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt
index fd442f26..c91e958e 100644
--- a/oracle/CMakeLists.txt
+++ b/oracle/CMakeLists.txt
@@ -13,6 +13,7 @@ SET(oracle_SOURCES
src/oracleimporter.cpp
../cockatrice/src/carddatabase.cpp
../cockatrice/src/settingscache.cpp
+ ../cockatrice/src/shortcutssettings.cpp
../cockatrice/src/qt-json/json.cpp
)