Improve keyboard shortcut settings

- change the line edit to accept actual text input in a form similar to
  QKeySequence::fromString (with special "native" form on OS X)
- add a button that allows entering a key sequence by pressing keys,
  including support for e.g. escape key, which was broken before because
  it closed the dialog
- add a warning label, that allows filtering the list for all
  potentially conflicting shortcuts

Task-number: QTCREATORBUG-6
Change-Id: I94fc63525f653127e87f6ef2bffe72d8dcaa867d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-04-29 18:01:21 +02:00
parent 0bd0468263
commit 25057a7acc
5 changed files with 367 additions and 277 deletions

View File

@@ -54,15 +54,11 @@ class CORE_EXPORT CommandMappings : public QWidget
public:
CommandMappings(QWidget *parent = 0);
~CommandMappings();
virtual bool hasConflicts() const;
protected slots:
signals:
void currentCommandChanged(QTreeWidgetItem *current);
protected:
virtual void removeTargetIdentifier() = 0;
virtual void resetTargetIdentifier() = 0;
virtual void targetIdentifierChanged() = 0;
virtual void defaultAction() = 0;
virtual void exportAction() {}
@@ -72,16 +68,12 @@ protected:
void filterChanged(const QString &f);
virtual void commandChanged(QTreeWidgetItem *current);
// access to m_page
void setImportExportEnabled(bool enabled);
QTreeWidget *commandList() const;
QLineEdit *targetEdit() const;
QString filterText() const;
void setFilterText(const QString &text);
void setPageTitle(const QString &s);
void setTargetLabelText(const QString &s);
void setTargetEditTitle(const QString &s);
void setTargetHeader(const QString &s);
void setModified(QTreeWidgetItem *item, bool modified);