added shortcuts management support

TODO: integrate it in YACReader
TODO: add icons for groups
TODO: add conflicts detection
TODO: fix any shortcut used in keyPressEvent
TODO: choose new default shortcuts (F5 update, F11 fullscreen, etc...)
This commit is contained in:
Luis Ángel San Martín
2014-07-17 22:30:03 +02:00
parent 3c18599496
commit 50c8eca7c4
19 changed files with 933 additions and 78 deletions

View File

@ -0,0 +1,48 @@
#ifndef EDIT_SHORTCUT_ITEM_DELEGATE_H
#define EDIT_SHORTCUT_ITEM_DELEGATE_H
#include <QItemDelegate>
#include <QLineEdit>
#include <QKeyEvent>
#include <QKeySequence>
#include <QToolButton>
class KeySequenceLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit KeySequenceLineEdit(QWidget *parent = 0);
protected:
//int numKeys;
//int keys[4];
void keyPressEvent(QKeyEvent *);
int translateModifiers(Qt::KeyboardModifiers state, const QString &text);
void resizeEvent(QResizeEvent *);
private:
QToolButton *clearButton;
QToolButton *acceptButton;
};
class EditShortcutItemDelegate : public QItemDelegate
{
Q_OBJECT
public:
explicit EditShortcutItemDelegate(QObject *parent = 0);
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex & mi) const;
bool eventFilter(QObject *editor, QEvent *event);
signals:
public slots:
void closeShortcutEditor();
};
#endif // EDIT_SHORTCUT_ITEM_DELEGATE_H