better keyboard editing in deck editor
This commit is contained in:
parent
603555af4a
commit
aae2c437d6
2 changed files with 28 additions and 9 deletions
|
@ -6,11 +6,18 @@
|
||||||
#include "decklistmodel.h"
|
#include "decklistmodel.h"
|
||||||
#include "cardinfowidget.h"
|
#include "cardinfowidget.h"
|
||||||
|
|
||||||
|
void SearchLineEdit::keyPressEvent(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
if (treeView && ((event->key() == Qt::Key_Up) || (event->key() == Qt::Key_Down)))
|
||||||
|
QCoreApplication::sendEvent(treeView, event);
|
||||||
|
QLineEdit::keyPressEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
WndDeckEditor::WndDeckEditor(CardDatabase *_db, QWidget *parent)
|
WndDeckEditor::WndDeckEditor(CardDatabase *_db, QWidget *parent)
|
||||||
: QMainWindow(parent), db(_db)
|
: QMainWindow(parent), db(_db)
|
||||||
{
|
{
|
||||||
QLabel *searchLabel = new QLabel(tr("&Search for:"));
|
QLabel *searchLabel = new QLabel(tr("&Search for:"));
|
||||||
searchEdit = new QLineEdit;
|
searchEdit = new SearchLineEdit;
|
||||||
searchLabel->setBuddy(searchEdit);
|
searchLabel->setBuddy(searchEdit);
|
||||||
connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateSearch(const QString &)));
|
connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateSearch(const QString &)));
|
||||||
connect(searchEdit, SIGNAL(returnPressed()), this, SLOT(actAddCard()));
|
connect(searchEdit, SIGNAL(returnPressed()), this, SLOT(actAddCard()));
|
||||||
|
@ -31,6 +38,7 @@ WndDeckEditor::WndDeckEditor(CardDatabase *_db, QWidget *parent)
|
||||||
databaseView->resizeColumnToContents(0);
|
databaseView->resizeColumnToContents(0);
|
||||||
connect(databaseView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoLeft(const QModelIndex &, const QModelIndex &)));
|
connect(databaseView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoLeft(const QModelIndex &, const QModelIndex &)));
|
||||||
connect(databaseView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actAddCard()));
|
connect(databaseView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actAddCard()));
|
||||||
|
searchEdit->setTreeView(databaseView);
|
||||||
|
|
||||||
QVBoxLayout *leftFrame = new QVBoxLayout;
|
QVBoxLayout *leftFrame = new QVBoxLayout;
|
||||||
leftFrame->addLayout(searchLayout);
|
leftFrame->addLayout(searchLayout);
|
||||||
|
@ -125,25 +133,25 @@ WndDeckEditor::WndDeckEditor(CardDatabase *_db, QWidget *parent)
|
||||||
setsMenu->addAction(aEditSets);
|
setsMenu->addAction(aEditSets);
|
||||||
|
|
||||||
aAddCard = new QAction(tr("Add card to &maindeck"), this);
|
aAddCard = new QAction(tr("Add card to &maindeck"), this);
|
||||||
connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard()));
|
aAddCard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Return")) << QKeySequence(tr("Enter")));
|
||||||
aAddCard->setShortcut(tr("Ctrl+M"));
|
|
||||||
aAddCard->setIcon(QIcon(":/resources/add_to_deck.svg"));
|
aAddCard->setIcon(QIcon(":/resources/add_to_deck.svg"));
|
||||||
|
connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard()));
|
||||||
aAddCardToSideboard = new QAction(tr("Add card to &sideboard"), this);
|
aAddCardToSideboard = new QAction(tr("Add card to &sideboard"), this);
|
||||||
aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg"));
|
aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg"));
|
||||||
|
aAddCardToSideboard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Ctrl+Return")) << QKeySequence(tr("Ctrl+Enter")));
|
||||||
connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard()));
|
connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard()));
|
||||||
aAddCardToSideboard->setShortcut(tr("Ctrl+N"));
|
|
||||||
aRemoveCard = new QAction(tr("&Remove row"), this);
|
aRemoveCard = new QAction(tr("&Remove row"), this);
|
||||||
connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard()));
|
|
||||||
aRemoveCard->setShortcut(tr("Del"));
|
aRemoveCard->setShortcut(tr("Del"));
|
||||||
aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg"));
|
aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg"));
|
||||||
|
connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard()));
|
||||||
aIncrement = new QAction(tr("&Increment number"), this);
|
aIncrement = new QAction(tr("&Increment number"), this);
|
||||||
connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement()));
|
|
||||||
aIncrement->setShortcut(tr("+"));
|
aIncrement->setShortcut(tr("+"));
|
||||||
aIncrement->setIcon(QIcon(":/resources/increment.svg"));
|
aIncrement->setIcon(QIcon(":/resources/increment.svg"));
|
||||||
|
connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement()));
|
||||||
aDecrement = new QAction(tr("&Decrement number"), this);
|
aDecrement = new QAction(tr("&Decrement number"), this);
|
||||||
aDecrement->setIcon(QIcon(":/resources/decrement.svg"));
|
aDecrement->setIcon(QIcon(":/resources/decrement.svg"));
|
||||||
connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement()));
|
|
||||||
aDecrement->setShortcut(tr("-"));
|
aDecrement->setShortcut(tr("-"));
|
||||||
|
connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement()));
|
||||||
|
|
||||||
verticalToolBar->addAction(aAddCard);
|
verticalToolBar->addAction(aAddCard);
|
||||||
verticalToolBar->addAction(aAddCardToSideboard);
|
verticalToolBar->addAction(aAddCardToSideboard);
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
|
#include <QLineEdit>
|
||||||
#include "decklist.h"
|
#include "decklist.h"
|
||||||
|
|
||||||
class CardDatabase;
|
class CardDatabase;
|
||||||
|
@ -12,9 +13,18 @@ class DeckListModel;
|
||||||
class QTreeView;
|
class QTreeView;
|
||||||
class QTableView;
|
class QTableView;
|
||||||
class CardInfoWidget;
|
class CardInfoWidget;
|
||||||
class QLineEdit;
|
|
||||||
class QTextEdit;
|
class QTextEdit;
|
||||||
|
|
||||||
|
class SearchLineEdit : public QLineEdit {
|
||||||
|
private:
|
||||||
|
QTreeView *treeView;
|
||||||
|
protected:
|
||||||
|
void keyPressEvent(QKeyEvent *event);
|
||||||
|
public:
|
||||||
|
SearchLineEdit() : QLineEdit(), treeView(0) { }
|
||||||
|
void setTreeView(QTreeView *_treeView) { treeView = _treeView; }
|
||||||
|
};
|
||||||
|
|
||||||
class WndDeckEditor : public QMainWindow {
|
class WndDeckEditor : public QMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
private slots:
|
private slots:
|
||||||
|
@ -52,7 +62,8 @@ private:
|
||||||
QTreeView *databaseView;
|
QTreeView *databaseView;
|
||||||
QTreeView *deckView;
|
QTreeView *deckView;
|
||||||
CardInfoWidget *cardInfo;
|
CardInfoWidget *cardInfo;
|
||||||
QLineEdit *searchEdit, *nameEdit;
|
SearchLineEdit *searchEdit;
|
||||||
|
QLineEdit *nameEdit;
|
||||||
QTextEdit *commentsEdit;
|
QTextEdit *commentsEdit;
|
||||||
|
|
||||||
QMenu *deckMenu, *setsMenu;
|
QMenu *deckMenu, *setsMenu;
|
||||||
|
|
Loading…
Reference in a new issue