diff --git a/include/editbutton.h b/include/editbutton.h
index 6a83c9d..aba3699 100644
--- a/include/editbutton.h
+++ b/include/editbutton.h
@@ -18,9 +18,11 @@ public:
const std::string& getName() const;
const std::string& getKey() const;
+ uint8_t getWidth() const;
void setName(const std::string& name);
void setKey(const std::string& key);
+ void setWidth(uint8_t w);
private slots:
void editName(const QString& text);
diff --git a/src/buttonmanageritems.cpp b/src/buttonmanageritems.cpp
index 4a04b2c..b96711f 100644
--- a/src/buttonmanageritems.cpp
+++ b/src/buttonmanageritems.cpp
@@ -229,6 +229,7 @@ void ButtonItem::edit() {
EditButton editor;
editor.setName(buttonConf.name);
editor.setKey(buttonConf.key);
+ editor.setWidth(buttonConf.width);
editor.exec();
if(editor.result() == 0) {
@@ -238,6 +239,9 @@ void ButtonItem::edit() {
buttonConf.name = editor.getName();
buttonConf.key = editor.getKey();
+ buttonConf.width = editor.getWidth();
+
+ setData(1, Qt::ItemDataRole::DisplayRole, QVariant(QString::fromStdString(buttonConf.name)));
}
void ButtonItem::remove() {
diff --git a/src/editbutton.cpp b/src/editbutton.cpp
index 107bddd..8b679ad 100644
--- a/src/editbutton.cpp
+++ b/src/editbutton.cpp
@@ -20,9 +20,18 @@ public:
EditButton::EditButton(QWidget *parent) : QDialog(parent), ui(new Ui::EditButton) {
ui->setupUi(this);
- ui->buttonName->setValidator(new QRegExpValidator(QRegExp("\\w{1,64}")));
+ ui->buttonName->setValidator(new QRegExpValidator(QRegExp("(\\w+ \\w+)|(\\w+)")));
ui->buttonKey->setValidator(new MyKeysequenceValidtor());
+ ui->buttonWidth->addItem("1/6", 1);
+ ui->buttonWidth->addItem("1/3", 2);
+ ui->buttonWidth->addItem("1/2", 3);
+ ui->buttonWidth->addItem("2/3", 4);
+ ui->buttonWidth->addItem("Normal", 6);
+ ui->buttonWidth->addItem("1 + 1/3", 8);
+ ui->buttonWidth->addItem("1 + 2/3", 10);
+ ui->buttonWidth->addItem("Double", 12);
+
QObject::connect(ui->buttonName, SIGNAL( textEdited(const QString&) ), this, SLOT( editName(const QString&) ));
QObject::connect(ui->buttonKey, SIGNAL( textEdited(const QString&) ), this, SLOT( editShortcut(const QString&) ));
}
@@ -39,16 +48,30 @@ const std::string& EditButton::getKey() const {
return key;
}
+uint8_t EditButton::getWidth() const {
+ QVariant var = ui->buttonWidth->currentData();
+ assert(var.type() == QVariant::Type::Int);
+ return var.toUInt();
+}
+
void EditButton::setName(const std::string& name) {
this->name = name;
ui->buttonName->setText(QString::fromStdString(this->name));
}
+
void EditButton::setKey(const std::string& key) {
this->key = key;
ui->buttonKey->setText(QString::fromStdString(this->key));
}
+void EditButton::setWidth(uint8_t w) {
+ int index = ui->buttonWidth->findData((int) w);
+ if(index == -1) index = 4; // default to "normal"
+
+ ui->buttonWidth->setCurrentIndex(index);
+}
+
void EditButton::editName(const QString& text) {
// neded without const
QString copy(text);
@@ -75,4 +98,4 @@ bool EditButton::setTextValid(QLineEdit* box, QString& newtext) const {
box->setStyleSheet(QString("QLineEdit { border: 1px solid red; border-radius: 0.1em; text-decoration: underline; }"));
}
return valid;
-}
\ No newline at end of file
+}
diff --git a/ui/editbutton.ui b/ui/editbutton.ui
index 2c3da89..716594d 100644
--- a/ui/editbutton.ui
+++ b/ui/editbutton.ui
@@ -61,6 +61,20 @@
+ -
+
+
-
+
+
+ Width:
+
+
+
+ -
+
+
+
+
-