/** * @RDE_HEADER@ * * Helper for editing FunctionKeys * * $Id$ * $HeadURL$ * $Author$ */ #include "function_keys_edit.h" #include "ui_function_keys_edit.h" #include #include namespace SettingsEditor { FunctionKeysEdit::FunctionKeysEdit(QWidget *parent) : QWidget(parent), m_ui(new Ui::FunctionKeysEdit) { m_ui->setupUi(this); // Initialize table m_ui->twKeysEdit->setRowCount(Qt::Key_F12 - Qt::Key_F5 + 1); m_ui->twKeysEdit->resizeColumnToContents(0); for (int i = Qt::Key_F5; i <= Qt::Key_F12; ++i) { QTableWidgetItem *item = new QTableWidgetItem(QKeySequence(i).toString()); item->setFlags(Qt::NoItemFlags); m_ui->twKeysEdit->setItem((i - Qt::Key_F5), 0, item); item = new QTableWidgetItem(QString()); item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable); m_ui->twKeysEdit->setItem((i - Qt::Key_F5), 1, item); } } FunctionKeysEdit::~FunctionKeysEdit() { delete m_ui; } void FunctionKeysEdit::setValue(const QVariant &value) { const QVariantMap map = value.toMap(); for (auto it = map.cbegin(); it != map.cend(); ++it) m_ui->twKeysEdit->item(it.key().toInt() - Qt::Key_F5, 1)->setText(it.value().toString()); } QVariant FunctionKeysEdit::value() const { QVariantMap map; for (int i = Qt::Key_F5; i <= Qt::Key_F12; ++i) { const auto item = m_ui->twKeysEdit->item((i - Qt::Key_F5), 1); if (!item->text().isEmpty()) map.insert(QString::number(i), item->text()); } return map; } }