summaryrefslogtreecommitdiff
path: root/src/plugins/macros/macrooptionswidget.cpp
diff options
context:
space:
mode:
authorNicolas Arnaud-Cormos <nicolas@kdab.com>2011-01-24 11:39:42 +0100
committerTobias Hunger <tobias.hunger@nokia.com>2011-01-24 11:39:42 +0100
commit1f1656163cea078ba09cbba80ead2758d7ca5dc0 (patch)
treeae39139a3f8bca5dc1cd63ff01873e876cbdb616 /src/plugins/macros/macrooptionswidget.cpp
parentf3d7bbff0c2abcd8dd1efc8d3578cf3b865292a8 (diff)
downloadqt-creator-1f1656163cea078ba09cbba80ead2758d7ca5dc0.tar.gz
Refactor the shortcut management for plugin macros
When saving a macro, a shortcut is created and the user can change the shortcut in Options->Keyboard. When the macro is removed, the shortcut is removed from the actionManager using the removeShortcut method. This is way simpler than before, where a number of default shortcuts where defined and macros took the empty space. Merge-request: 236 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/macros/macrooptionswidget.cpp')
-rw-r--r--src/plugins/macros/macrooptionswidget.cpp44
1 files changed, 6 insertions, 38 deletions
diff --git a/src/plugins/macros/macrooptionswidget.cpp b/src/plugins/macros/macrooptionswidget.cpp
index 703c82d8c1..3f08cbf156 100644
--- a/src/plugins/macros/macrooptionswidget.cpp
+++ b/src/plugins/macros/macrooptionswidget.cpp
@@ -87,8 +87,6 @@ MacroOptionsWidget::MacroOptionsWidget(QWidget *parent) :
this, SLOT(addDirectoy()));
connect(ui->description, SIGNAL(textChanged(QString)),
this, SLOT(changeDescription(QString)));
- connect(ui->assignShortcut, SIGNAL(toggled(bool)),
- this, SLOT(changeShortcut(bool)));
ui->treeWidget->header()->setSortIndicator(0, Qt::AscendingOrder);
}
@@ -125,6 +123,7 @@ void MacroOptionsWidget::appendDirectory(const QString &directory, bool isDefaul
Core::ICore *core = Core::ICore::instance();
Core::ActionManager *am = core->actionManager();
+
QMapIterator<QString, Macro *> it(MacroManager::instance()->macros());
while (it.hasNext()) {
it.next();
@@ -135,14 +134,10 @@ void MacroOptionsWidget::appendDirectory(const QString &directory, bool isDefaul
macroItem->setText(1, it.value()->description());
macroItem->setData(0, NAME_ROLE, it.value()->displayName());
macroItem->setData(0, WRITE_ROLE, it.value()->isWritable());
- macroItem->setData(0, ID_ROLE, it.value()->shortcutId());
-
- if (it.value()->shortcutId() >= 0) {
- QString textId = QString("%1").arg(it.value()->shortcutId(), 2, 10, QLatin1Char('0'));
- QString commandId = QLatin1String(Constants::SHORTCUT_MACRO)+textId;
- QString shortcut = am->command(commandId)->keySequence().toString();
- macroItem->setText(2, QString("%1 (%2)").arg(shortcut).arg(commandId));
- }
+
+ Core::Command *command = am->command(Core::Id(Constants::PREFIX_MACRO+it.value()->displayName()));
+ if (command && command->shortcut())
+ macroItem->setText(2, command->shortcut()->key().toString());
}
}
}
@@ -160,7 +155,6 @@ void MacroOptionsWidget::changeCurrentItem(QTreeWidgetItem *current)
ui->removeButton->setEnabled(false);
ui->defaultButton->setEnabled(false);
ui->description->clear();
- ui->assignShortcut->setChecked(false);
ui->macroGroup->setEnabled(false);
}
else if (current->type() == DIRECTORY) {
@@ -168,14 +162,12 @@ void MacroOptionsWidget::changeCurrentItem(QTreeWidgetItem *current)
ui->removeButton->setEnabled(!isDefault);
ui->defaultButton->setEnabled(!isDefault);
ui->description->clear();
- ui->assignShortcut->setChecked(false);
ui->macroGroup->setEnabled(false);
} else {
ui->removeButton->setEnabled(true);
ui->defaultButton->setEnabled(false);
ui->description->setText(current->text(1));
ui->description->setEnabled(current->data(0, WRITE_ROLE).toBool());
- ui->assignShortcut->setChecked(current->data(0, ID_ROLE).toInt() >= 0);
ui->macroGroup->setEnabled(true);
}
changingCurrent = false;
@@ -217,8 +209,7 @@ void MacroOptionsWidget::apply()
QMapIterator<QString, ChangeSet> it(m_macroToChange);
while (it.hasNext()) {
it.next();
- MacroManager::instance()->changeMacro(it.key(), it.value().description,
- it.value().shortcut);
+ MacroManager::instance()->changeMacro(it.key(), it.value().description);
}
// Get list of dir to append or remove
@@ -263,21 +254,6 @@ void MacroOptionsWidget::changeData(QTreeWidgetItem *current, int column, QVaria
font.setItalic(true);
current->setFont(1, font);
}
- // Change the shortcut
- if (column == 2) {
- bool shortcut = value.toBool();
- m_macroToChange[macroName].shortcut = shortcut;
- QFont font = current->font(2);
- if (current->data(0, ID_ROLE).toInt() >= 0) {
- font.setStrikeOut(!shortcut);
- font.setItalic(!shortcut);
- }
- else {
- font.setItalic(shortcut);
- current->setText(2, shortcut?tr("create shortcut"):"");
- }
- current->setFont(2, font);
- }
}
void MacroOptionsWidget::changeDescription(const QString &description)
@@ -287,11 +263,3 @@ void MacroOptionsWidget::changeDescription(const QString &description)
return;
changeData(current, 1, description);
}
-
-void MacroOptionsWidget::changeShortcut(bool shortcut)
-{
- QTreeWidgetItem *current = ui->treeWidget->currentItem();
- if (changingCurrent || !current || current->type() == DIRECTORY)
- return;
- changeData(current, 2, shortcut);
-}