68 lines
1.5 KiB
C++
Executable File
68 lines
1.5 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
*
|
|
* Helper for editing FunctionKeys
|
|
*
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include "function_keys_edit.h"
|
|
#include "ui_function_keys_edit.h"
|
|
|
|
#include <QKeySequence>
|
|
#include <QTableWidgetItem>
|
|
|
|
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;
|
|
}
|
|
|
|
}
|