diff --git a/src/capture/button.cpp b/src/capture/button.cpp index 79ae6b63..d955fdb3 100644 --- a/src/capture/button.cpp +++ b/src/capture/button.cpp @@ -246,7 +246,7 @@ size_t Button::getButtonBaseSize() { Button::Type Button::getTypeByName(const QString s) { Button::Type res = Type::last; for (auto i: typeName.toStdMap()) - if (i.second == s) + if (tr(i.second) == s) res = i.first; return res; } diff --git a/src/config/buttonlistview.cpp b/src/config/buttonlistview.cpp index cba593ef..c9be8ca6 100644 --- a/src/config/buttonlistview.cpp +++ b/src/config/buttonlistview.cpp @@ -20,12 +20,14 @@ #include #include #include +#include ButtonListView::ButtonListView(QWidget *parent) : QListWidget(parent) { setMouseTracking(true); QSettings settings; m_listButtons = settings.value("buttons").value >(); + initButtonList(); connect(this, &QListWidget::itemChanged, this, @@ -62,11 +64,15 @@ void ButtonListView::initButtonList() { void ButtonListView::updateActiveButtons(QListWidgetItem *item) { int buttonIndex = static_cast(Button::getTypeByName(item->text())); + if (item->checkState() == Qt::Checked) { m_listButtons.append(buttonIndex); + std::sort(m_listButtons.begin(), m_listButtons.end()); + } else { m_listButtons.removeOne(buttonIndex); } + QSettings().setValue("buttons", QVariant::fromValue(m_listButtons)); }