mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-08-03 22:58:44 +00:00
feat: make env var description selectable
This commit is contained in:
parent
ca813d6168
commit
e69a7a9bd6
1 changed files with 21 additions and 7 deletions
|
@ -12,6 +12,7 @@ use adw::prelude::*;
|
||||||
use gtk::glib::{self, clone};
|
use gtk::glib::{self, clone};
|
||||||
use relm4::{factory::AsyncFactoryVecDeque, prelude::*};
|
use relm4::{factory::AsyncFactoryVecDeque, prelude::*};
|
||||||
use std::{cell::RefCell, path::PathBuf, rc::Rc};
|
use std::{cell::RefCell, path::PathBuf, rc::Rc};
|
||||||
|
use tracing::warn;
|
||||||
|
|
||||||
#[tracker::track]
|
#[tracker::track]
|
||||||
pub struct ProfileEditor {
|
pub struct ProfileEditor {
|
||||||
|
@ -546,17 +547,30 @@ impl SimpleComponent for ProfileEditor {
|
||||||
let profile = Rc::new(RefCell::new(init.profile));
|
let profile = Rc::new(RefCell::new(init.profile));
|
||||||
let prof = profile.clone();
|
let prof = profile.clone();
|
||||||
|
|
||||||
|
let env_var_prefs_group = {
|
||||||
|
let pg = adw::PreferencesGroup::builder()
|
||||||
|
.title("Environment Variables")
|
||||||
|
.description(ENV_VAR_DESCRIPTIONS_AS_PARAGRAPH.as_str())
|
||||||
|
.header_suffix(&add_env_var_btn)
|
||||||
|
.build();
|
||||||
|
if let Some(desc) = pg
|
||||||
|
.first_child()
|
||||||
|
.and_then(|c| c.first_child())
|
||||||
|
.and_then(|c| c.first_child())
|
||||||
|
.and_then(|c| c.last_child())
|
||||||
|
.and_downcast::<gtk::Label>()
|
||||||
|
{
|
||||||
|
desc.set_selectable(true);
|
||||||
|
} else {
|
||||||
|
warn!("failed to make env var preference group description selectable, please open a bug report");
|
||||||
|
}
|
||||||
|
pg
|
||||||
|
};
|
||||||
let mut model = Self {
|
let mut model = Self {
|
||||||
profile,
|
profile,
|
||||||
win: None,
|
win: None,
|
||||||
env_rows: AsyncFactoryVecDeque::builder()
|
env_rows: AsyncFactoryVecDeque::builder()
|
||||||
.launch(
|
.launch(env_var_prefs_group)
|
||||||
adw::PreferencesGroup::builder()
|
|
||||||
.title("Environment Variables")
|
|
||||||
.description(ENV_VAR_DESCRIPTIONS_AS_PARAGRAPH.as_str())
|
|
||||||
.header_suffix(&add_env_var_btn)
|
|
||||||
.build(),
|
|
||||||
)
|
|
||||||
.forward(sender.input_sender(), |msg| match msg {
|
.forward(sender.input_sender(), |msg| match msg {
|
||||||
EnvVarModelOutMsg::Changed(name, value) => {
|
EnvVarModelOutMsg::Changed(name, value) => {
|
||||||
ProfileEditorMsg::EnvVarChanged(name, value)
|
ProfileEditorMsg::EnvVarChanged(name, value)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue