mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-06-19 20:23:33 +00:00
feat(gui): theme selection (#122)
* fix: increment pkgrel to 2 for pwsp aur package * feat(gui): implemented theme switching * fix(gui): fixed incorrect colors in light theme * fix(gui): fixed incorrect colors in light theme
This commit is contained in:
committed by
GitHub
parent
798a6d1887
commit
695c83c9e6
@@ -76,16 +76,16 @@ impl SoundpadGui {
|
||||
.map(|s| s.to_string_lossy().to_string())
|
||||
.unwrap_or_else(|| path.to_string_lossy().to_string());
|
||||
|
||||
let mut dir_button_text = RichText::new(name.clone());
|
||||
let mut dir_button =
|
||||
Button::new(RichText::new(name.clone()).atom_max_width(area_size.x))
|
||||
.frame(false);
|
||||
|
||||
if let Some(current_dir) = &self.app_state.current_dir
|
||||
&& current_dir.eq(&*path)
|
||||
{
|
||||
dir_button_text = dir_button_text.color(Color32::WHITE);
|
||||
dir_button = dir_button.selected(true);
|
||||
}
|
||||
|
||||
let dir_button =
|
||||
Button::new(dir_button_text.atom_max_width(area_size.x)).frame(false);
|
||||
|
||||
let dir_button_response = ui.add(dir_button);
|
||||
if dir_button_response.clicked() {
|
||||
dir_to_open = Some(path.clone());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::gui::SoundpadGui;
|
||||
use egui::{Button, CollapsingHeader, Color32, FontFamily, Label, RichText, Slider, Ui};
|
||||
use egui::{Button, CollapsingHeader, FontFamily, Label, RichText, Slider, Ui};
|
||||
use egui_material_icons::icons::*;
|
||||
use pwsp::types::{audio_player::TrackInfo, gui::AppState};
|
||||
use pwsp::utils::gui::format_time_pair;
|
||||
@@ -32,7 +32,6 @@ impl SoundpadGui {
|
||||
.to_str()
|
||||
.unwrap_or_default(),
|
||||
)
|
||||
.color(Color32::WHITE)
|
||||
.family(FontFamily::Monospace),
|
||||
)
|
||||
.default_open(true)
|
||||
|
||||
@@ -146,32 +146,28 @@ impl SoundpadGui {
|
||||
ui.label(
|
||||
RichText::new(t!("gui.hotkeys.column_slot"))
|
||||
.strong()
|
||||
.monospace()
|
||||
.color(Color32::LIGHT_GRAY),
|
||||
.monospace(),
|
||||
);
|
||||
});
|
||||
header.col(|ui| {
|
||||
ui.label(
|
||||
RichText::new(t!("gui.hotkeys.column_sound"))
|
||||
.strong()
|
||||
.monospace()
|
||||
.color(Color32::LIGHT_GRAY),
|
||||
.monospace(),
|
||||
);
|
||||
});
|
||||
header.col(|ui| {
|
||||
ui.label(
|
||||
RichText::new(t!("gui.hotkeys.column_key_chord"))
|
||||
.strong()
|
||||
.monospace()
|
||||
.color(Color32::LIGHT_GRAY),
|
||||
.monospace(),
|
||||
);
|
||||
});
|
||||
header.col(|ui| {
|
||||
ui.label(
|
||||
RichText::new(t!("gui.hotkeys.column_actions"))
|
||||
.strong()
|
||||
.monospace()
|
||||
.color(Color32::LIGHT_GRAY),
|
||||
.monospace(),
|
||||
);
|
||||
});
|
||||
})
|
||||
@@ -180,10 +176,7 @@ impl SoundpadGui {
|
||||
body.row(30.0, |mut row| {
|
||||
row.col(|_| {});
|
||||
row.col(|ui| {
|
||||
ui.label(
|
||||
RichText::new(t!("gui.hotkeys.no_hotkeys_configured"))
|
||||
.color(Color32::GRAY),
|
||||
);
|
||||
ui.label(RichText::new(t!("gui.hotkeys.no_hotkeys_configured")));
|
||||
});
|
||||
row.col(|_| {});
|
||||
row.col(|_| {});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use crate::gui::SoundpadGui;
|
||||
use egui::{Align, Button, Color32, Layout, RichText, Ui};
|
||||
use egui::{Align, Button, Color32, ComboBox, Layout, RichText, Ui};
|
||||
use egui_material_icons::icons::ICON_ARROW_BACK;
|
||||
use pwsp::types::config::PreferredTheme;
|
||||
use rust_i18n::t;
|
||||
|
||||
impl SoundpadGui {
|
||||
@@ -53,6 +54,40 @@ impl SoundpadGui {
|
||||
}
|
||||
// --------------------------------
|
||||
|
||||
ui.separator();
|
||||
|
||||
// ---------- Selectors -----------
|
||||
let mut selected_theme = self.config.preferred_theme.clone();
|
||||
ComboBox::from_label(t!("gui.settings.theme.label"))
|
||||
.selected_text(match self.config.preferred_theme {
|
||||
PreferredTheme::System => t!("gui.settings.theme.system"),
|
||||
PreferredTheme::Light => t!("gui.settings.theme.light"),
|
||||
PreferredTheme::Dark => t!("gui.settings.theme.dark"),
|
||||
})
|
||||
.show_ui(ui, |ui| {
|
||||
ui.selectable_value(
|
||||
&mut selected_theme,
|
||||
PreferredTheme::System,
|
||||
t!("gui.settings.theme.system"),
|
||||
);
|
||||
ui.selectable_value(
|
||||
&mut selected_theme,
|
||||
PreferredTheme::Light,
|
||||
t!("gui.settings.theme.light"),
|
||||
);
|
||||
ui.selectable_value(
|
||||
&mut selected_theme,
|
||||
PreferredTheme::Dark,
|
||||
t!("gui.settings.theme.dark"),
|
||||
);
|
||||
});
|
||||
|
||||
if selected_theme != self.config.preferred_theme {
|
||||
self.config.preferred_theme = selected_theme;
|
||||
self.config.save_to_file().ok();
|
||||
}
|
||||
// --------------------------------
|
||||
|
||||
ui.with_layout(Layout::bottom_up(Align::Min), |ui| {
|
||||
ui.label(t!(
|
||||
"gui.settings.version",
|
||||
|
||||
Reference in New Issue
Block a user