refactored deck editor UI key shortcuts

The global shortcuts were removed in favor of key events
which are only triggered when a widget has focus. This is
necessary to allow different widgets to react differently
to the 'enter' key. The current key configuration is:
search edit focused:
  * left/right: decrease/increase card count for selected database card
  * enter: add selected card to deck
  * ctrl-enter: add selected card to deck sideboard
  * ctrl-left/right: decrease/increase card count in sideboard for selected card

database focused: the same as with search edit.

deckview focused:
  * left/right: decrease/increase card count for selected deckview card
  * enter: increase count for selected deckview card
  * delete/backspace: delete selected card from deck
This commit is contained in:
sylvanbasilisk 2014-03-24 21:03:26 +00:00
parent f6e9676c75
commit 2b7ea0c983
9 changed files with 212 additions and 30 deletions

View file

@ -4,6 +4,7 @@
#include "tab.h"
#include <QAbstractItemModel>
#include <QLineEdit>
#include "keysignals.h"
class CardDatabaseModel;
class CardDatabaseDisplayModel;
@ -16,6 +17,7 @@ class QLabel;
class DeckLoader;
class Response;
class FilterTreeModel;
class CardInfo;
class SearchLineEdit : public QLineEdit {
private:
@ -56,6 +58,9 @@ private slots:
void actRemoveCard();
void actIncrement();
void actDecrement();
void actDecrementCard();
void actDecrementCardFromSideboard();
void actUpdatePrices();
void finishedUpdatingPrices();
@ -63,7 +68,10 @@ private slots:
void filterViewCustomContextMenu(const QPoint &point);
void filterRemove(QAction *action);
private:
CardInfo *currentCardInfo() const;
void addCardHelper(QString zoneName);
void offsetCountAtIndex(const QModelIndex &idx, int offset);
void decrementCardHelper(QString zoneName);
void recursiveExpand(const QModelIndex &index);
bool confirmClose();
@ -71,10 +79,13 @@ private:
CardDatabaseDisplayModel *databaseDisplayModel;
DeckListModel *deckModel;
QTreeView *databaseView;
KeySignals dbViewKeySignals;
QTreeView *deckView;
KeySignals deckViewKeySignals;
CardFrame *cardInfo;
QLabel *searchLabel;
SearchLineEdit *searchEdit;
KeySignals searchKeySignals;
QLabel *nameLabel;
QLineEdit *nameEdit;
QLabel *commentsLabel;