Consider stretch/weight settings advanced and hide them with a toggle
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
This commit is contained in:
parent
59804dc8ab
commit
4ec3e5b2f3
2 changed files with 55 additions and 26 deletions
|
|
@ -11,6 +11,7 @@ dark = Dark
|
|||
light = Light
|
||||
syntax-dark = Syntax dark
|
||||
syntax-light = Syntax light
|
||||
advanced-font-settings = Advanced Font Settings
|
||||
default-font = Default font
|
||||
default-font-stretch = Default font stretch
|
||||
default-font-weight = Default font weight
|
||||
|
|
|
|||
80
src/main.rs
80
src/main.rs
|
|
@ -14,7 +14,7 @@ use cosmic::{
|
|||
futures::SinkExt,
|
||||
keyboard::{Event as KeyEvent, KeyCode, Modifiers},
|
||||
subscription::{self, Subscription},
|
||||
window, Event, Length, Point,
|
||||
window, Event, Length, Point, Padding,
|
||||
},
|
||||
style,
|
||||
widget::{self, segmented_button},
|
||||
|
|
@ -159,6 +159,7 @@ pub enum Message {
|
|||
TermEventTx(mpsc::Sender<(segmented_button::Entity, TermEvent)>),
|
||||
Todo(&'static str),
|
||||
ToggleContextPage(ContextPage),
|
||||
ShowAdvancedFontSettings(bool),
|
||||
WindowClose,
|
||||
WindowNew,
|
||||
ZoomIn,
|
||||
|
|
@ -204,6 +205,7 @@ pub struct App {
|
|||
context_page: ContextPage,
|
||||
term_event_tx_opt: Option<mpsc::Sender<(segmented_button::Entity, TermEvent)>>,
|
||||
term_config: TermConfig,
|
||||
show_advanced_font_settings: bool,
|
||||
}
|
||||
|
||||
impl App {
|
||||
|
|
@ -346,7 +348,40 @@ impl App {
|
|||
.zoom_steps
|
||||
.iter()
|
||||
.position(|zoom_step| zoom_step == &self.config.font_size_zoom_step_mul_100);
|
||||
widget::settings::view_column(vec![widget::settings::view_section(fl!("appearance"))
|
||||
|
||||
let advanced_font_settings = || {
|
||||
let section = widget::settings::view_section("")
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-font-stretch")).control(
|
||||
widget::dropdown(&self.curr_font_stretch_names, font_stretch_selected, |index| {
|
||||
Message::DefaultFontStretch(index)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-font-weight")).control(
|
||||
widget::dropdown(&self.curr_font_weight_names, font_weight_selected, |index| {
|
||||
Message::DefaultFontWeight(index)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-bold-font-weight")).control(
|
||||
widget::dropdown(&self.curr_font_weight_names, bold_font_weight_selected, |index| {
|
||||
Message::DefaultBoldFontWeight(index)
|
||||
}),
|
||||
),
|
||||
);
|
||||
let padding = Padding {
|
||||
top: 0.0,
|
||||
bottom: 0.0,
|
||||
left: 12.0,
|
||||
right: 12.0,
|
||||
};
|
||||
widget::container(section).padding(padding)
|
||||
};
|
||||
|
||||
let mut settings_view = widget::settings::view_section(fl!("appearance"))
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("theme")).control(widget::dropdown(
|
||||
&self.app_themes,
|
||||
|
|
@ -381,6 +416,16 @@ impl App {
|
|||
|index| Message::DefaultFont(index),
|
||||
)),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("advanced-font-settings"))
|
||||
.toggler(self.show_advanced_font_settings, Message::ShowAdvancedFontSettings),
|
||||
);
|
||||
|
||||
if self.show_advanced_font_settings {
|
||||
settings_view = settings_view.add(advanced_font_settings());
|
||||
}
|
||||
|
||||
let settings_view = settings_view
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-font-size")).control(
|
||||
widget::dropdown(&self.font_size_names, font_size_selected, |index| {
|
||||
|
|
@ -395,33 +440,12 @@ impl App {
|
|||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-font-stretch")).control(
|
||||
widget::dropdown(&self.curr_font_stretch_names, font_stretch_selected, |index| {
|
||||
Message::DefaultFontStretch(index)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-font-weight")).control(
|
||||
widget::dropdown(&self.curr_font_weight_names, font_weight_selected, |index| {
|
||||
Message::DefaultFontWeight(index)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("default-bold-font-weight")).control(
|
||||
widget::dropdown(&self.curr_font_weight_names, bold_font_weight_selected, |index| {
|
||||
Message::DefaultBoldFontWeight(index)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.add(
|
||||
widget::settings::item::builder(fl!("show-headerbar"))
|
||||
.toggler(self.config.show_headerbar, Message::ShowHeaderBar),
|
||||
)
|
||||
.into()])
|
||||
.into()
|
||||
);
|
||||
|
||||
widget::settings::view_column(vec![settings_view.into()]).into()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -570,6 +594,7 @@ impl Application for App {
|
|||
context_page: ContextPage::Settings,
|
||||
term_config: flags.term_config,
|
||||
term_event_tx_opt: None,
|
||||
show_advanced_font_settings: false,
|
||||
};
|
||||
|
||||
app.set_curr_font_weights_and_stretches();
|
||||
|
|
@ -870,6 +895,9 @@ impl Application for App {
|
|||
}
|
||||
self.set_context_title(context_page.title());
|
||||
}
|
||||
Message::ShowAdvancedFontSettings(show) => {
|
||||
self.show_advanced_font_settings = show;
|
||||
},
|
||||
Message::WindowClose => {
|
||||
return window::close(window::Id::MAIN);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue