Files
qt5-legatus-legacy/Lts/Tools/ProjectSettingsEditor/function_keys_edit.cpp
T
2026-08-13 18:33:10 +02:00

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;
}
}