mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 19:00:04 +00:00
Hotkey settings should be scrollable
This commit is contained in:
parent
7564a2af18
commit
21dc38bf82
1 changed files with 27 additions and 10 deletions
|
|
@ -7,7 +7,9 @@
|
|||
#include <boost/unordered/unordered_flat_map.hpp>
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QScrollArea>
|
||||
#include <QToolButton>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
|
|
@ -22,12 +24,25 @@ static const std::string logPrefix_ =
|
|||
class HotkeySettingsWidget::Impl
|
||||
{
|
||||
public:
|
||||
explicit Impl(HotkeySettingsWidget* self) :
|
||||
self_ {self}, layout_ {new QGridLayout(self)}
|
||||
explicit Impl(HotkeySettingsWidget* self)
|
||||
{
|
||||
auto& hotkeySettings = settings::HotkeySettings::Instance();
|
||||
|
||||
gridLayout_ = new QGridLayout(self);
|
||||
contents_ = new QWidget(self);
|
||||
contents_->setLayout(gridLayout_);
|
||||
|
||||
scrollArea_ = new QScrollArea(self);
|
||||
scrollArea_->setHorizontalScrollBarPolicy(
|
||||
Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
|
||||
scrollArea_->setWidgetResizable(true);
|
||||
scrollArea_->setWidget(contents_);
|
||||
|
||||
layout_ = new QVBoxLayout(self);
|
||||
layout_->setContentsMargins(0, 0, 0, 0);
|
||||
layout_->addWidget(scrollArea_);
|
||||
|
||||
self->setLayout(layout_);
|
||||
|
||||
int row = 0;
|
||||
|
||||
|
|
@ -37,15 +52,15 @@ public:
|
|||
|
||||
QLabel* label = new QLabel(QObject::tr(labelText.c_str()), self);
|
||||
HotkeyEdit* hotkeyEdit = new HotkeyEdit(self);
|
||||
QToolButton* resetButton = new QToolButton(self_);
|
||||
QToolButton* resetButton = new QToolButton(self);
|
||||
|
||||
resetButton->setIcon(
|
||||
QIcon {":/res/icons/font-awesome-6/rotate-left-solid.svg"});
|
||||
resetButton->setVisible(false);
|
||||
|
||||
layout_->addWidget(label, row, 0);
|
||||
layout_->addWidget(hotkeyEdit, row, 1);
|
||||
layout_->addWidget(resetButton, row, 2);
|
||||
gridLayout_->addWidget(label, row, 0);
|
||||
gridLayout_->addWidget(hotkeyEdit, row, 1);
|
||||
gridLayout_->addWidget(resetButton, row, 2);
|
||||
|
||||
// Create settings interface
|
||||
auto result = hotkeys_.emplace(
|
||||
|
|
@ -54,7 +69,7 @@ public:
|
|||
auto& interface = pair.second;
|
||||
|
||||
// Add to settings list
|
||||
self_->AddSettingsInterface(&interface);
|
||||
self->AddSettingsInterface(&interface);
|
||||
|
||||
auto& hotkeyVariable = hotkeySettings.hotkey(hotkey);
|
||||
interface.SetSettingsVariable(hotkeyVariable);
|
||||
|
|
@ -66,12 +81,14 @@ public:
|
|||
|
||||
QSpacerItem* spacer =
|
||||
new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
||||
layout_->addItem(spacer, row, 0);
|
||||
gridLayout_->addItem(spacer, row, 0);
|
||||
}
|
||||
~Impl() = default;
|
||||
|
||||
HotkeySettingsWidget* self_;
|
||||
QGridLayout* layout_;
|
||||
QWidget* contents_;
|
||||
QLayout* layout_;
|
||||
QScrollArea* scrollArea_ {};
|
||||
QGridLayout* gridLayout_ {};
|
||||
|
||||
boost::unordered_flat_map<types::Hotkey,
|
||||
settings::SettingsInterface<std::string>>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue