1
1
use crate :: gui:: GuiSettingsContainer ;
2
+ #[ cfg( feature = "self_update" ) ]
2
3
use crate :: update:: { check_update, update} ;
3
4
use eframe:: egui;
4
5
use eframe:: egui:: { Align2 , InnerResponse , Vec2 , Visuals } ;
5
6
use egui_theme_switch:: ThemeSwitch ;
7
+ #[ cfg( feature = "self_update" ) ]
6
8
use self_update:: restart:: restart;
9
+ #[ cfg( feature = "self_update" ) ]
7
10
use self_update:: update:: Release ;
11
+ #[ cfg( feature = "self_update" ) ]
8
12
use semver:: Version ;
9
13
10
14
pub fn settings_window (
11
15
ctx : & egui:: Context ,
12
16
gui_conf : & mut GuiSettingsContainer ,
13
- new_release : & mut Option < Release > ,
17
+ # [ cfg ( feature = "self_update" ) ] new_release : & mut Option < Release > ,
14
18
settings_window_open : & mut bool ,
15
19
update_text : & mut String ,
16
20
) -> Option < InnerResponse < Option < ( ) > > > {
@@ -19,53 +23,59 @@ pub fn settings_window(
19
23
. anchor ( Align2 :: CENTER_CENTER , Vec2 { x : 0.0 , y : 0.0 } )
20
24
. collapsible ( false )
21
25
. show ( ctx, |ui| {
22
- egui:: Grid :: new ( "settings" ) . striped ( true ) . show ( ui, |ui| {
23
- if ui
24
- . add ( ThemeSwitch :: new ( & mut gui_conf. theme_preference ) )
25
- . changed ( )
26
- {
27
- ui. ctx ( ) . set_theme ( gui_conf. theme_preference ) ;
28
- } ;
29
- gui_conf. dark_mode = ui. visuals ( ) == & Visuals :: dark ( ) ;
30
-
31
- ui. end_row ( ) ;
32
- ui. end_row ( ) ;
33
-
34
- if ui. button ( "Check for Updates" ) . clicked ( ) {
35
- * new_release = check_update ( ) ;
36
- }
26
+ egui:: Grid :: new ( "theme settings" )
27
+ . striped ( true )
28
+ . show ( ui, |ui| {
29
+ if ui
30
+ . add ( ThemeSwitch :: new ( & mut gui_conf. theme_preference ) )
31
+ . changed ( )
32
+ {
33
+ ui. ctx ( ) . set_theme ( gui_conf. theme_preference ) ;
34
+ } ;
35
+ gui_conf. dark_mode = ui. visuals ( ) == & Visuals :: dark ( ) ;
37
36
38
- let current_version = Version :: parse ( env ! ( "CARGO_PKG_VERSION" ) ) . unwrap ( ) ;
39
- ui. label ( format ! ( "Current version: {}" , current_version) ) ;
37
+ ui. end_row ( ) ;
38
+ ui. end_row ( ) ;
39
+ } ) ;
40
+ #[ cfg( feature = "self_update" ) ]
41
+ egui:: Grid :: new ( "update settings" )
42
+ . striped ( true )
43
+ . show ( ui, |ui| {
44
+ if ui. button ( "Check for Updates" ) . clicked ( ) {
45
+ * new_release = check_update ( ) ;
46
+ }
40
47
41
- ui. end_row ( ) ;
48
+ let current_version = Version :: parse ( env ! ( "CARGO_PKG_VERSION" ) ) . unwrap ( ) ;
49
+ ui. label ( format ! ( "Current version: {}" , current_version) ) ;
42
50
43
- if let Some ( r) = & new_release {
44
- ui. label ( format ! ( "New release: {}" , r. version) ) ;
45
51
ui. end_row ( ) ;
46
- if ui. button ( "Update" ) . clicked ( ) {
47
- match update ( r. clone ( ) ) {
48
- Ok ( _) => {
49
- log:: info!( "Update done. {} >> {}" , current_version, r. version) ;
50
- * new_release = None ;
51
- * update_text =
52
- "Update done. Please Restart Application." . to_string ( ) ;
53
- }
54
- Err ( err) => {
55
- log:: error!( "{}" , err) ;
52
+
53
+ if let Some ( r) = & new_release {
54
+ ui. label ( format ! ( "New release: {}" , r. version) ) ;
55
+ ui. end_row ( ) ;
56
+ if ui. button ( "Update" ) . clicked ( ) {
57
+ match update ( r. clone ( ) ) {
58
+ Ok ( _) => {
59
+ log:: info!( "Update done. {} >> {}" , current_version, r. version) ;
60
+ * new_release = None ;
61
+ * update_text =
62
+ "Update done. Please Restart Application." . to_string ( ) ;
63
+ }
64
+ Err ( err) => {
65
+ log:: error!( "{}" , err) ;
66
+ }
56
67
}
57
68
}
69
+ } else {
70
+ ui. label ( "" ) ;
71
+ ui. end_row ( ) ;
72
+ ui. horizontal ( |ui| {
73
+ ui. disable ( ) ;
74
+ let _ = ui. button ( "Update" ) ;
75
+ } ) ;
76
+ ui. label ( "You have the latest version" ) ;
58
77
}
59
- } else {
60
- ui. label ( "" ) ;
61
- ui. end_row ( ) ;
62
- ui. horizontal ( |ui| {
63
- ui. disable ( ) ;
64
- let _ = ui. button ( "Update" ) ;
65
- } ) ;
66
- ui. label ( "You have the latest version" ) ;
67
- }
68
- } ) ;
78
+ } ) ;
69
79
ui. label ( update_text. clone ( ) ) ;
70
80
71
81
ui. horizontal ( |ui| {
@@ -79,6 +89,7 @@ pub fn settings_window(
79
89
}
80
90
} ) ;
81
91
92
+ #[ cfg( feature = "self_update" ) ]
82
93
if !update_text. is_empty ( ) && ui. button ( "Restart" ) . clicked ( ) {
83
94
restart ( ) ;
84
95
ctx. request_repaint ( ) ; // Optional: Request repaint for immediate feedback
0 commit comments