Mercurial > octave-nkf
diff gui/konsole/KeyBindingEditor.h @ 14242:637675470c58 gui
Added OctaveDEs konsole sources.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Sun, 22 Jan 2012 14:18:05 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gui/konsole/KeyBindingEditor.h Sun Jan 22 14:18:05 2012 +0100 @@ -0,0 +1,105 @@ +/* + 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 <QtGui/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 initialised 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. */ + KeyBindingEditor(QWidget* parent = 0); + virtual ~KeyBindingEditor(); + + /** + * Intialises 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; + + /** + * Returns the text of the editor's description field. + */ + QString description() const; + + // reimplemented to handle test area input + virtual bool eventFilter( QObject* watched , QEvent* event ); + +public slots: + /** + * Sets the text of the editor's description field. + */ + void setDescription(const QString& description); + +private slots: + 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