Use sliders for icon size
This commit is contained in:
parent
f8521d5b0d
commit
4266bb9eb3
4 changed files with 63 additions and 68 deletions
14
Cargo.lock
generated
14
Cargo.lock
generated
|
|
@ -2853,9 +2853,9 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "indexmap"
|
name = "indexmap"
|
||||||
version = "2.2.4"
|
version = "2.2.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "967d6dd42f16dbf0eb8040cb9e477933562684d3918f7d253f2ff9087fb3e7a3"
|
checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"equivalent",
|
"equivalent",
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
|
|
@ -5397,7 +5397,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_spanned",
|
"serde_spanned",
|
||||||
"toml_datetime",
|
"toml_datetime",
|
||||||
"winnow 0.6.3",
|
"winnow 0.6.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -6504,9 +6504,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winnow"
|
name = "winnow"
|
||||||
version = "0.6.3"
|
version = "0.6.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "44e19b97e00a4d3db3cdb9b53c8c5f87151b5689b82cc86c2848cbdcccb2689b"
|
checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
@ -6679,9 +6679,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zbus_names"
|
name = "zbus_names"
|
||||||
version = "2.6.0"
|
version = "2.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
|
checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,9 @@ properties = Properties
|
||||||
## Settings
|
## Settings
|
||||||
settings = Settings
|
settings = Settings
|
||||||
settings-tab = Tab
|
settings-tab = Tab
|
||||||
settings-hidden = Hidden files
|
|
||||||
settings-show-hidden = Show hidden files
|
settings-show-hidden = Show hidden files
|
||||||
icon-size-list = Icon size (list)
|
icon-size-list = Icon size (list)
|
||||||
icon-size-grid = Icon size (grid)
|
icon-size-grid = Icon size (grid)
|
||||||
icon-zoom = Zoom
|
|
||||||
|
|
||||||
### Appearance
|
### Appearance
|
||||||
appearance = Appearance
|
appearance = Appearance
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ rename-folder = フォルダ名を変更
|
||||||
|
|
||||||
# Replace Dialog
|
# Replace Dialog
|
||||||
replace = 置き換える
|
replace = 置き換える
|
||||||
replace-title = {$filename}はすでにこの場所に存在します。
|
replace-title = {$filename}はすでにこの場所に存在します。
|
||||||
replace-warning = 保存するファイルで置き換えますか?置き換えると、内容を上書きます。
|
replace-warning = 保存するファイルで置き換えますか?置き換えると、内容を上書きます。
|
||||||
|
|
||||||
# List view
|
# List view
|
||||||
|
|
@ -57,11 +57,9 @@ properties = プロパティ
|
||||||
## Settings
|
## Settings
|
||||||
settings = 設定
|
settings = 設定
|
||||||
settings-tab = タブ
|
settings-tab = タブ
|
||||||
settings-hidden = 隠しファイル
|
|
||||||
settings-show-hidden = 隠しファイルを表示
|
settings-show-hidden = 隠しファイルを表示
|
||||||
icon-size-list = アイコンサイズ(リスト)
|
icon-size-list = アイコンサイズ(リスト)
|
||||||
icon-size-grid = アイコンサイズ(グリッド)
|
icon-size-grid = アイコンサイズ(グリッド)
|
||||||
icon-zoom = ズーム
|
|
||||||
|
|
||||||
### Appearance
|
### Appearance
|
||||||
appearance = 外観
|
appearance = 外観
|
||||||
|
|
|
||||||
111
src/app.rs
111
src/app.rs
|
|
@ -21,6 +21,7 @@ use std::{
|
||||||
any::TypeId,
|
any::TypeId,
|
||||||
collections::{BTreeMap, HashMap, HashSet, VecDeque},
|
collections::{BTreeMap, HashMap, HashSet, VecDeque},
|
||||||
env, fs,
|
env, fs,
|
||||||
|
num::NonZeroU16,
|
||||||
path::PathBuf,
|
path::PathBuf,
|
||||||
process, time,
|
process, time,
|
||||||
};
|
};
|
||||||
|
|
@ -444,17 +445,15 @@ impl App {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn settings(&self) -> Element<Message> {
|
fn settings(&self) -> Element<Message> {
|
||||||
let app_theme_selected = match self.config.app_theme {
|
|
||||||
AppTheme::Dark => 1,
|
|
||||||
AppTheme::Light => 2,
|
|
||||||
AppTheme::System => 0,
|
|
||||||
};
|
|
||||||
let hidden_selected = self.config.tab.show_hidden;
|
|
||||||
// TODO: Should dialog be updated here too?
|
// TODO: Should dialog be updated here too?
|
||||||
let IconSizes { list, grid, .. } = self.config.tab.icon_sizes;
|
|
||||||
widget::settings::view_column(vec![
|
widget::settings::view_column(vec![
|
||||||
widget::settings::view_section(fl!("appearance"))
|
widget::settings::view_section(fl!("appearance"))
|
||||||
.add(
|
.add({
|
||||||
|
let app_theme_selected = match self.config.app_theme {
|
||||||
|
AppTheme::Dark => 1,
|
||||||
|
AppTheme::Light => 2,
|
||||||
|
AppTheme::System => 0,
|
||||||
|
};
|
||||||
widget::settings::item::builder(fl!("theme")).control(widget::dropdown(
|
widget::settings::item::builder(fl!("theme")).control(widget::dropdown(
|
||||||
&self.app_themes,
|
&self.app_themes,
|
||||||
Some(app_theme_selected),
|
Some(app_theme_selected),
|
||||||
|
|
@ -465,58 +464,58 @@ impl App {
|
||||||
_ => AppTheme::System,
|
_ => AppTheme::System,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
)),
|
))
|
||||||
)
|
})
|
||||||
.add(
|
.add({
|
||||||
widget::settings::item::builder(fl!("icon-size-list")).control(
|
let tab_config = self.config.tab.clone();
|
||||||
widget::text_input(fl!("icon-zoom"), list.to_string()).on_input(|s| {
|
let list: u16 = tab_config.icon_sizes.list.into();
|
||||||
s.parse()
|
widget::settings::item::builder(fl!("icon-size-list"))
|
||||||
.map(|list_next| {
|
.description(format!("{}%", list))
|
||||||
Message::TabConfig(TabConfig {
|
.control(
|
||||||
icon_sizes: IconSizes {
|
widget::slider(100..=500, list, move |list| {
|
||||||
list: list_next,
|
Message::TabConfig(TabConfig {
|
||||||
..self.config.tab.icon_sizes
|
icon_sizes: IconSizes {
|
||||||
},
|
list: NonZeroU16::new(list).unwrap(),
|
||||||
..self.config.tab
|
..tab_config.icon_sizes
|
||||||
})
|
},
|
||||||
|
..tab_config
|
||||||
})
|
})
|
||||||
.unwrap_or_else(|_| Message::TabConfig(self.config.tab))
|
})
|
||||||
}),
|
.width(Length::Fixed(100.0)),
|
||||||
),
|
)
|
||||||
)
|
})
|
||||||
.add(
|
.add({
|
||||||
widget::settings::item::builder(fl!("icon-size-grid")).control(
|
let tab_config = self.config.tab.clone();
|
||||||
widget::text_input(fl!("icon-zoom"), grid.to_string()).on_input(|s| {
|
let grid: u16 = tab_config.icon_sizes.grid.into();
|
||||||
s.parse()
|
widget::settings::item::builder(fl!("icon-size-grid"))
|
||||||
.map(|grid_next| {
|
.description(format!("{}%", grid))
|
||||||
Message::TabConfig(TabConfig {
|
.control(
|
||||||
icon_sizes: IconSizes {
|
widget::slider(100..=500, grid, move |grid| {
|
||||||
grid: grid_next,
|
Message::TabConfig(TabConfig {
|
||||||
..self.config.tab.icon_sizes
|
icon_sizes: IconSizes {
|
||||||
},
|
grid: NonZeroU16::new(grid).unwrap(),
|
||||||
..self.config.tab
|
..tab_config.icon_sizes
|
||||||
})
|
},
|
||||||
|
..tab_config
|
||||||
})
|
})
|
||||||
.unwrap_or_else(|_| Message::TabConfig(self.config.tab))
|
})
|
||||||
}),
|
.width(Length::Fixed(100.0)),
|
||||||
),
|
)
|
||||||
)
|
})
|
||||||
.into(),
|
.into(),
|
||||||
widget::settings::view_section(fl!("settings-tab"))
|
widget::settings::view_section(fl!("settings-tab"))
|
||||||
.add(
|
.add({
|
||||||
widget::settings::item::builder(fl!("settings-hidden")).control(
|
let tab_config = self.config.tab.clone();
|
||||||
widget::checkbox(
|
widget::settings::item::builder(fl!("settings-show-hidden")).toggler(
|
||||||
fl!("settings-show-hidden"),
|
tab_config.show_hidden,
|
||||||
hidden_selected,
|
move |show_hidden| {
|
||||||
|show_hidden| {
|
Message::TabConfig(TabConfig {
|
||||||
Message::TabConfig(TabConfig {
|
show_hidden,
|
||||||
show_hidden,
|
..tab_config
|
||||||
..self.config.tab
|
})
|
||||||
})
|
},
|
||||||
},
|
)
|
||||||
),
|
})
|
||||||
),
|
|
||||||
)
|
|
||||||
.into(),
|
.into(),
|
||||||
])
|
])
|
||||||
.into()
|
.into()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue