You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.0 KiB
101 lines
3.0 KiB
/* |
|
Copyright 2007-2008 by Robert Knight <robertknight@gmail.com> |
|
|
|
This program is free software; you can redistribute it and/or modify |
|
it under the terms of the GNU General Public License as published by |
|
the Free Software Foundation; either version 2 of the License, or |
|
(at your option) any later version. |
|
|
|
This program is distributed in the hope that it will be useful, |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
GNU General Public License for more details. |
|
|
|
You should have received a copy of the GNU General Public License |
|
along with this program; if not, write to the Free Software |
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
|
02110-1301 USA. |
|
*/ |
|
|
|
#ifndef KEYBINDINGEDITOR_H |
|
#define KEYBINDINGEDITOR_H |
|
|
|
// Qt |
|
#include <QWidget> |
|
|
|
class QTableWidgetItem; |
|
|
|
namespace Ui { |
|
class KeyBindingEditor; |
|
} |
|
|
|
namespace Konsole { |
|
class KeyboardTranslator; |
|
|
|
/** |
|
* A dialog which allows the user to edit a key bindings list |
|
* which maps between key combinations input by the user and |
|
* the character sequence sent to the terminal when those |
|
* combinations are pressed. |
|
* |
|
* The dialog can be initialized with the settings of an |
|
* existing key bindings list using the setup() method. |
|
* |
|
* The dialog creates a copy of the supplied keyboard translator |
|
* to which any changes are applied. The modified translator |
|
* can be retrieved using the translator() method. |
|
*/ |
|
class KeyBindingEditor : public QWidget |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
/** Constructs a new key bindings editor with the specified parent. */ |
|
explicit KeyBindingEditor(QWidget *parent = nullptr); |
|
~KeyBindingEditor() Q_DECL_OVERRIDE; |
|
|
|
/** |
|
* Initializes the dialog with the bindings and other settings |
|
* from the specified @p translator. |
|
*/ |
|
void setup(const KeyboardTranslator *translator); |
|
|
|
/** |
|
* Returns the modified translator describing the changes to the bindings |
|
* and other settings which the user made. |
|
*/ |
|
KeyboardTranslator *translator() const; |
|
|
|
/** |
|
* Sets the text of the editor's description field. |
|
*/ |
|
void setDescription(const QString &description); |
|
|
|
/** |
|
* Returns the text of the editor's description field. |
|
*/ |
|
QString description() const; |
|
|
|
// reimplemented to handle test area input |
|
bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; |
|
|
|
private Q_SLOTS: |
|
void setTranslatorDescription(const QString &description); |
|
void bindingTableItemChanged(QTableWidgetItem *item); |
|
void removeSelectedEntry(); |
|
void addNewEntry(); |
|
|
|
private: |
|
void setupKeyBindingTable(const KeyboardTranslator *translator); |
|
|
|
Ui::KeyBindingEditor *_ui; |
|
|
|
// translator to which modifications are made as the user makes |
|
// changes in the UI. |
|
// this is initialized as a copy of the translator specified |
|
// when setup() is called |
|
KeyboardTranslator *_translator; |
|
}; |
|
} |
|
|
|
#endif //KEYBINDINGEDITOR_H
|
|
|