Skip to content

Commit 0c872bf

Browse files
committed
🧹 pages: use own MessageType
do not depend on gtk messagetype, which allows to have qt,cli implementations in the future
1 parent 2c33358 commit 0c872bf

File tree

5 files changed

+49
-18
lines changed

5 files changed

+49
-18
lines changed

‎src/actions.rs‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::pages::{Action, DialogMessage};
1+
use crate::pages::{Action, DialogMessage, MessageType};
22
use crate::{fl, kwin_dbus, utils, PacmanWrapper};
33

44
use std::path::Path;
@@ -73,15 +73,15 @@ pub fn change_dns_server(
7373
dialog_tx
7474
.send(DialogMessage {
7575
msg: fl!("dns-server-changed"),
76-
msg_type: gtk::MessageType::Info,
76+
msg_type: MessageType::Info,
7777
action: Action::SetDnsServer,
7878
})
7979
.expect("Couldn't send data to channel");
8080
} else {
8181
dialog_tx
8282
.send(DialogMessage {
8383
msg: fl!("dns-server-failed"),
84-
msg_type: gtk::MessageType::Error,
84+
msg_type: MessageType::Error,
8585
action: Action::SetDnsServer,
8686
})
8787
.expect("Couldn't send data to channel");
@@ -101,15 +101,15 @@ pub fn reset_dns_server(conn_name: &str, dialog_tx: Sender<DialogMessage>) {
101101
dialog_tx
102102
.send(DialogMessage {
103103
msg: fl!("dns-server-reset"),
104-
msg_type: gtk::MessageType::Info,
104+
msg_type: MessageType::Info,
105105
action: Action::SetDnsServer,
106106
})
107107
.expect("Couldn't send data to channel");
108108
} else {
109109
dialog_tx
110110
.send(DialogMessage {
111111
msg: fl!("dns-server-reset-failed"),
112-
msg_type: gtk::MessageType::Error,
112+
msg_type: MessageType::Error,
113113
action: Action::SetDnsServer,
114114
})
115115
.expect("Couldn't send data to channel");
@@ -123,7 +123,7 @@ pub fn remove_dblock(dialog_tx: Sender<DialogMessage>) {
123123
dialog_tx
124124
.send(DialogMessage {
125125
msg: fl!("removed-db-lock"),
126-
msg_type: gtk::MessageType::Info,
126+
msg_type: MessageType::Info,
127127
action: Action::RemoveLock,
128128
})
129129
.expect("Couldn't send data to channel");
@@ -132,7 +132,7 @@ pub fn remove_dblock(dialog_tx: Sender<DialogMessage>) {
132132
dialog_tx
133133
.send(DialogMessage {
134134
msg: fl!("lock-doesnt-exist"),
135-
msg_type: gtk::MessageType::Info,
135+
msg_type: MessageType::Info,
136136
action: Action::RemoveLock,
137137
})
138138
.expect("Couldn't send data to channel");
@@ -177,7 +177,7 @@ pub fn remove_orphans(dialog_tx: Sender<DialogMessage>) {
177177
dialog_tx
178178
.send(DialogMessage {
179179
msg: fl!("orphans-not-found"),
180-
msg_type: gtk::MessageType::Info,
180+
msg_type: MessageType::Info,
181181
action: Action::RemoveOrphans,
182182
})
183183
.expect("Couldn't send data to channel");
@@ -214,7 +214,7 @@ pub fn install_needed_packages(
214214
dialog_tx
215215
.send(DialogMessage {
216216
msg: dialog_msg,
217-
msg_type: gtk::MessageType::Info,
217+
msg_type: MessageType::Info,
218218
action: dialog_action,
219219
})
220220
.expect("Couldn't send data to channel");

‎src/installer.rs‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::pages::MessageType;
12
use crate::{check_regular_file, fl, utils, G_HELLO_WINDOW};
23

34
use std::fs;
@@ -27,7 +28,7 @@ fn outdated_version_check(window: &gtk::Window, message: String) -> bool {
2728
if version_tag.contains("testing") {
2829
utils::show_simple_dialog(
2930
window,
30-
gtk::MessageType::Warning,
31+
MessageType::Warning,
3132
&fl!("testing-iso-warning"),
3233
message.clone(),
3334
);
@@ -39,7 +40,7 @@ fn outdated_version_check(window: &gtk::Window, message: String) -> bool {
3940
if response.is_err() {
4041
utils::show_simple_dialog(
4142
window,
42-
gtk::MessageType::Warning,
43+
MessageType::Warning,
4344
&fl!("offline-error"),
4445
message.clone(),
4546
);
@@ -59,7 +60,7 @@ fn outdated_version_check(window: &gtk::Window, message: String) -> bool {
5960
if version_tag != latest_version {
6061
utils::show_simple_dialog(
6162
window,
62-
gtk::MessageType::Warning,
63+
MessageType::Warning,
6364
&fl!("outdated-version-warning"),
6465
message.clone(),
6566
);
@@ -85,7 +86,7 @@ fn edition_compat_check(window: &gtk::Window, message: String) -> bool {
8586
{
8687
utils::show_simple_dialog(
8788
window,
88-
gtk::MessageType::Warning,
89+
MessageType::Warning,
8990
&fl!("unsupported-hw-warning"),
9091
message.clone(),
9192
);
@@ -126,7 +127,7 @@ fn connectivity_check(window: &gtk::Window, message: String) -> bool {
126127
}
127128

128129
// All connectivity checks failed
129-
utils::show_simple_dialog(window, gtk::MessageType::Error, &fl!("offline-error"), message);
130+
utils::show_simple_dialog(window, MessageType::Error, &fl!("offline-error"), message);
130131
false
131132
}
132133

‎src/pages/mod.rs‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ mod tweaks;
44

55
use crate::{actions, fl, utils};
66

7+
use std::fmt;
78
use std::path::Path;
89

910
use gtk::prelude::*;
@@ -22,18 +23,38 @@ macro_rules! create_gtk_button {
2223
}};
2324
}
2425

26+
#[derive(Clone, Copy, Debug)]
27+
pub enum MessageType {
28+
Info,
29+
Warning,
30+
Error,
31+
}
32+
impl fmt::Display for MessageType {
33+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34+
let type_str = match self {
35+
MessageType::Info => "INFO",
36+
MessageType::Warning => "WARNING",
37+
MessageType::Error => "ERROR",
38+
};
39+
write!(f, "{type_str}")
40+
}
41+
}
42+
43+
#[derive(Clone, Debug)]
2544
pub struct DialogMessage {
2645
pub msg: String,
27-
pub msg_type: gtk::MessageType,
46+
pub msg_type: MessageType,
2847
pub action: Action,
2948
}
3049

50+
#[derive(Clone, Debug)]
3151
pub enum Action {
3252
RemoveLock,
3353
RemoveOrphans,
3454
SetDnsServer,
3555
InstallGaming,
3656
InstallSnapper,
57+
InstallSpoofDpi,
3758
}
3859

3960
fn create_fixes_section(builder: &Builder) -> gtk::Box {

‎src/pages/tweaks.rs‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::pages::MessageType;
12
use crate::systemd_units::SystemdUnits;
23
use crate::{fl, systemd_units, utils};
34

@@ -196,9 +197,9 @@ fn toggle_service(
196197

197198
utils::show_simple_dialog(
198199
&widget_window,
199-
gtk::MessageType::Error,
200+
MessageType::Error,
200201
&dialog_text,
201-
"Error".to_string(),
202+
MessageType::Error.to_string(),
202203
);
203204
}
204205
glib::ControlFlow::Continue

‎src/utils.rs‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use crate::pages::MessageType;
2+
13
use std::fs::File;
24
use std::path::Path;
35
use std::{fs, slice, str};
@@ -162,10 +164,16 @@ pub fn is_root_on_btrfs() -> bool {
162164

163165
pub fn show_simple_dialog(
164166
widget_window: &gtk::Window,
165-
dialog_msg_type: gtk::MessageType,
167+
message_type: MessageType,
166168
dialog_text: &String,
167169
dialog_title: String,
168170
) {
171+
let dialog_msg_type = match message_type {
172+
MessageType::Info => gtk::MessageType::Info,
173+
MessageType::Warning => gtk::MessageType::Warning,
174+
MessageType::Error => gtk::MessageType::Error,
175+
};
176+
169177
let dialog = gtk::MessageDialog::builder()
170178
.transient_for(widget_window)
171179
.message_type(dialog_msg_type)

0 commit comments

Comments
 (0)