Skip to content

Commit 2aaef89

Browse files
committed
feat(UI): add toggle to disable confirmation dialogs [closes #81]
1 parent 894c243 commit 2aaef89

File tree

18 files changed

+46
-0
lines changed

18 files changed

+46
-0
lines changed

assets/i18n/en-GB.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@
271271
"screen": "Screen",
272272
"screen_header": "Screen Settings",
273273
"screensaver_timeout": "Screensaver Timeout (s):",
274+
"show_confirmation_dialogs": "Show Confirmation Dialogs:",
274275
"system_logging": "Log system messages to console (might cause lag)",
275276
"theme": "Theme",
276277
"wifi": "WiFi",

src/Storage.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ constexpr StorageKey<Comm::CommunicationType> ID_DUET_COMMUNICATION_TYPE = {
4545
constexpr StorageKey<std::chrono::milliseconds> ID_DUET_POLL_INTERVAL = {"duet:poll_interval",
4646
DEFAULT_PRINTER_POLL_INTERVAL};
4747
constexpr StorageKey<speed_t> ID_DUET_BAUD_RATE = {"duet:baud_rate", DEFAULT_BAUD_RATE};
48+
4849
/* UI */
4950
constexpr StorageKey<size_t> ID_THEME = {"ui:theme", std::numeric_limits<size_t>::max()};
5051
constexpr StorageKey<std::string_view> ID_FONT = {"ui:font", "OpenSans"};

src/Storage.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ extern const StorageKey<std::string_view> ID_DUET_PASSWORD;
8686
extern const StorageKey<Comm::CommunicationType> ID_DUET_COMMUNICATION_TYPE;
8787
extern const StorageKey<std::chrono::milliseconds> ID_DUET_POLL_INTERVAL;
8888
extern const StorageKey<speed_t> ID_DUET_BAUD_RATE;
89+
8990
/* UI */
9091
extern const StorageKey<size_t> ID_THEME;
9192
extern const StorageKey<std::string_view> ID_FONT;

src/UI/Screens/Move/MoveView.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ namespace UI
7070
m_xyControl.setDisableMotorsCallback(
7171
[this]()
7272
{
73+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
74+
{
75+
m_presenter->disableMotors();
76+
return;
77+
}
7378
m_messageBox.setTitle(_("move.disable_motors_confirm.title"));
7479
m_messageBox.setText(_("move.disable_motors_confirm.text"));
7580
m_messageBox.setOkCallback([this]() { m_presenter->disableMotors(); });
@@ -84,6 +89,11 @@ namespace UI
8489
m_xyControl.setHomeAllCallback(
8590
[this]()
8691
{
92+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
93+
{
94+
m_presenter->homeAll();
95+
return;
96+
}
8797
m_messageBox.setTitle(_("move.home_all_confirm.title"));
8898
m_messageBox.setText(_("move.home_all_confirm.text"));
8999
m_messageBox.setOkCallback([this]() { m_presenter->homeAll(); });
@@ -92,6 +102,12 @@ namespace UI
92102
m_xyControl.setHomeXYCallback(
93103
[this]()
94104
{
105+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
106+
{
107+
m_presenter->homeAxis('X');
108+
m_presenter->homeAxis('Y');
109+
return;
110+
}
95111
m_messageBox.setTitle(_("move.home_xy_confirm.title"));
96112
m_messageBox.setText(_("move.home_xy_confirm.text"));
97113
m_messageBox.setOkCallback(
@@ -105,6 +121,11 @@ namespace UI
105121
m_xyControl.setHomeXCallback(
106122
[this]()
107123
{
124+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
125+
{
126+
m_presenter->homeAxis('X');
127+
return;
128+
}
108129
m_messageBox.setTitle(_("move.home_generic_confirm.title", 'X'));
109130
m_messageBox.setText(_("move.home_generic_confirm.text", 'X'));
110131
m_messageBox.setOkCallback([this]() { m_presenter->homeAxis('X'); });
@@ -113,6 +134,11 @@ namespace UI
113134
m_xyControl.setHomeYCallback(
114135
[this]()
115136
{
137+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
138+
{
139+
m_presenter->homeAxis('Y');
140+
return;
141+
}
116142
m_messageBox.setTitle(_("move.home_generic_confirm.title", 'Y'));
117143
m_messageBox.setText(_("move.home_generic_confirm.text", 'Y'));
118144
m_messageBox.setOkCallback([this]() { m_presenter->homeAxis('Y'); });
@@ -133,6 +159,11 @@ namespace UI
133159
m_zControl.setHomeCallback(
134160
[this](char axis_letter)
135161
{
162+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
163+
{
164+
m_presenter->homeAxis(axis_letter);
165+
return;
166+
}
136167
m_messageBox.setTitle(_("move.home_generic_confirm.title", axis_letter));
137168
m_messageBox.setText(_("move.home_generic_confirm.text", axis_letter));
138169
m_messageBox.setOkCallback([this, axis_letter]() { m_presenter->homeAxis(axis_letter); });
@@ -415,6 +446,11 @@ namespace UI
415446
control->setHomeCallback(
416447
[this](char axis_letter)
417448
{
449+
if (!StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS))
450+
{
451+
m_presenter->homeAxis(axis_letter);
452+
return;
453+
}
418454
m_messageBox.setTitle(_("move.home_generic_confirm.title", axis_letter));
419455
m_messageBox.setText(_("move.home_generic_confirm.text", axis_letter));
420456
m_messageBox.setOkCallback([this, axis_letter]() { m_presenter->homeAxis(axis_letter); });

src/UI/Screens/Settings/SettingsView.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,12 @@ namespace UI
197197
{ StorageHelper::setData(ID_SCREENSAVER_TIMEOUT, std::chrono::seconds(static_cast<int32_t>(value))); });
198198
m_screensaverTimeout.setOutOfRangeMode(Slider::OutOfRange::UPPER);
199199

200+
/* Show Confirmation Dialogs */
201+
createRow(_("settings.show_confirmation_dialogs"), m_showConfirmationDialogs);
202+
m_showConfirmationDialogs.setCheckedCallback(
203+
[](bool checked) { StorageHelper::setData(ID_SHOW_CONFIRMATION_DIALOGS, checked); });
204+
m_showConfirmationDialogs.setChecked(StorageHelper::getData(ID_SHOW_CONFIRMATION_DIALOGS));
205+
200206
/* Notifications */
201207
createHeader(_("settings.headers.notifications"));
202208

src/UI/Screens/Settings/SettingsView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ namespace UI
5454
DropdownMenu m_language{"language", getRoot()};
5555
Slider m_brightness{"brightness", getRoot()};
5656
Slider m_screensaverTimeout{"screensaver_timeout", getRoot()};
57+
LvSettingsToggle m_showConfirmationDialogs{"show_confirmation_dialogs", getRoot()};
5758

5859
/* Notifications */
5960
LvSettingsToggle m_displayConnectedMessage{"display_connected_message", getRoot()};
23 Bytes
Loading
18 Bytes
Loading
10 Bytes
Loading
2.64 KB
Loading

0 commit comments

Comments
 (0)