🚧 fix toggle for groups
This commit is contained in:
		
							parent
							
								
									5be4a75d7b
								
							
						
					
					
						commit
						e176a74b51
					
				| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
    "style_path": "/usr/share/cachyos-hello/ui/style.css",
 | 
			
		||||
    "urls": {
 | 
			
		||||
        "development": "https://github.com/cachyos",
 | 
			
		||||
        "discover": "https://github.com/cachyos/cachyos-pkgbuilds",
 | 
			
		||||
        "software": "https://github.com/cachyos/cachyos-pkgbuilds",
 | 
			
		||||
        "donate": "https://cachyos.org/donate",
 | 
			
		||||
        "forum": "https://forum.cachyos.org",
 | 
			
		||||
        "telegram": "https://t.me/+oR-kWT47vRdmMDli",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,9 +95,9 @@ impl ApplicationBrowser {
 | 
			
		|||
            String::static_type(),
 | 
			
		||||
            String::static_type(),
 | 
			
		||||
            String::static_type(),
 | 
			
		||||
            bool::static_type(),
 | 
			
		||||
            i32::static_type(),
 | 
			
		||||
            String::static_type(),
 | 
			
		||||
            bool::static_type(),
 | 
			
		||||
            i32::static_type(),
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        Self {
 | 
			
		||||
| 
						 | 
				
			
			@ -146,9 +146,9 @@ impl ApplicationBrowser {
 | 
			
		|||
                    (ICON, &g_icon),
 | 
			
		||||
                    (APPLICATION, &g_name),
 | 
			
		||||
                    (DESCRIPTION, &g_desc),
 | 
			
		||||
                    (ACTIVE, &false),
 | 
			
		||||
                    (ACTIVE, &-1),
 | 
			
		||||
                    (PACKAGE, &None::<String>),
 | 
			
		||||
                    (INSTALLED, &false),
 | 
			
		||||
                    (INSTALLED, &-1),
 | 
			
		||||
                ]);
 | 
			
		||||
                store_size += 1;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -291,13 +291,11 @@ fn treeview_cell_app_data_function(
 | 
			
		|||
    model: >k::TreeModel,
 | 
			
		||||
    iter_a: >k::TreeIter,
 | 
			
		||||
) {
 | 
			
		||||
    let value_gobj = model.value(iter_a, INSTALLED as i32);
 | 
			
		||||
    let value = value_gobj.get::<bool>().unwrap();
 | 
			
		||||
    if value {
 | 
			
		||||
        renderer_cell.set_width(600);
 | 
			
		||||
    } else {
 | 
			
		||||
        renderer_cell.set_width(400);
 | 
			
		||||
    }
 | 
			
		||||
    let value_gobj = model.value(iter_a, INSTALLED as i32).get::<i32>();
 | 
			
		||||
    match value_gobj {
 | 
			
		||||
        Ok(1) | Ok(0) => renderer_cell.set_width(280),
 | 
			
		||||
        _ => (),
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn treeview_cell_check_data_function(
 | 
			
		||||
| 
						 | 
				
			
			@ -306,9 +304,9 @@ fn treeview_cell_check_data_function(
 | 
			
		|||
    model: >k::TreeModel,
 | 
			
		||||
    iter_a: >k::TreeIter,
 | 
			
		||||
) {
 | 
			
		||||
    let value_gobj = model.value(iter_a, GROUP as i32);
 | 
			
		||||
    let value = value_gobj.get::<&str>().is_ok();
 | 
			
		||||
    renderer_cell.set_visible(!value);
 | 
			
		||||
    // hide checkbox for groups
 | 
			
		||||
    let value = model.value(iter_a, INSTALLED as i32).get::<i32>().unwrap();
 | 
			
		||||
    renderer_cell.set_visible(value != -1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn on_reload_clicked(_button: >k::Button) {
 | 
			
		||||
| 
						 | 
				
			
			@ -351,13 +349,11 @@ fn on_query_tooltip_tree_view(
 | 
			
		|||
    let tooltip_context = treeview.tooltip_context(&mut x, &mut y, keyboard_tip);
 | 
			
		||||
    if let Some((model_tmp, path, iter_a)) = tooltip_context {
 | 
			
		||||
        let model = model_tmp.unwrap();
 | 
			
		||||
        let value_gobj = model.value(&iter_a, INSTALLED as i32);
 | 
			
		||||
        let value = value_gobj.get::<bool>();
 | 
			
		||||
        if value.is_ok() && value.unwrap() {
 | 
			
		||||
        let value = model.value(&iter_a, INSTALLED as i32).get::<i32>().unwrap();
 | 
			
		||||
        if value == 1 {
 | 
			
		||||
            let mut msg = String::from("Installed");
 | 
			
		||||
            let active_gobj = model.value(&iter_a, ACTIVE as i32);
 | 
			
		||||
            let active = active_gobj.get::<bool>();
 | 
			
		||||
            if active.is_ok() && !active.unwrap() {
 | 
			
		||||
            let active = model.value(&iter_a, ACTIVE as i32).get::<i32>().unwrap();
 | 
			
		||||
            if active == 0 {
 | 
			
		||||
                msg.push_str(" , to remove");
 | 
			
		||||
            }
 | 
			
		||||
            tooltip.set_markup(Some(msg.as_str()));
 | 
			
		||||
| 
						 | 
				
			
			@ -376,7 +372,7 @@ fn on_app_toggle(_cell: >k::CellRendererToggle, path: gtk::TreePath) {
 | 
			
		|||
 | 
			
		||||
    // a group has no package attached and we don't install groups
 | 
			
		||||
    if value_gobj.get::<&str>().is_ok() {
 | 
			
		||||
        let toggle_a = app_store.value(&iter_a, ACTIVE as i32).get::<bool>().unwrap();
 | 
			
		||||
        let toggle_a = app_store.value(&iter_a, ACTIVE as i32).get::<i32>().unwrap() == 1;
 | 
			
		||||
        app_store.set(&iter_a, &[(ACTIVE, &!toggle_a)]);
 | 
			
		||||
 | 
			
		||||
        let alpm_handle = app_browser.get_alpm_handle();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								src/main.rs
								
								
								
								
							
							
						
						
									
										13
									
								
								src/main.rs
								
								
								
								
							| 
						 | 
				
			
			@ -179,12 +179,6 @@ fn build_ui(application: >k::Application) {
 | 
			
		|||
    if Path::new(&logo_path).exists() {
 | 
			
		||||
        let logo = Pixbuf::from_file(logo_path).unwrap();
 | 
			
		||||
        main_window.set_icon(Some(&logo));
 | 
			
		||||
 | 
			
		||||
        let image: gtk::Image = builder.object("distriblogo").unwrap();
 | 
			
		||||
        image.set_from_pixbuf(Some(&logo));
 | 
			
		||||
 | 
			
		||||
        let dialog: gtk::AboutDialog = builder.object("aboutdialog").unwrap();
 | 
			
		||||
        dialog.set_logo(Some(&logo));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let social_box: gtk::Box = builder.object("social").unwrap();
 | 
			
		||||
| 
						 | 
				
			
			@ -344,9 +338,8 @@ fn set_locale(use_locale: &str) {
 | 
			
		|||
 | 
			
		||||
    // Real-time locale changing
 | 
			
		||||
    let elts: HashMap<String, serde_json::Value> = serde_json::from_str(&serde_json::to_string(&json!({
 | 
			
		||||
        "comments": ["aboutdialog"],
 | 
			
		||||
        "label": ["autostartlabel", "development", "discover", "donate", "firstcategory", "forum", "install", "installlabel", "involved", "mailling", "readme", "release", "secondcategory", "thirdcategory", "welcomelabel", "welcometitle", "wiki"],
 | 
			
		||||
        "tooltip_text": ["about", "development", "discover", "donate", "forum", "mailling", "wiki"],
 | 
			
		||||
        "label": ["autostartlabel", "development", "software", "donate", "firstcategory", "forum", "install", "installlabel", "involved", "mailling", "readme", "release", "secondcategory", "thirdcategory", "welcomelabel", "welcometitle", "wiki"],
 | 
			
		||||
        "tooltip_text": ["about", "development", "software", "donate", "forum", "mailling", "wiki"],
 | 
			
		||||
    })).unwrap()).unwrap();
 | 
			
		||||
 | 
			
		||||
    let mut default_texts = json!(null);
 | 
			
		||||
| 
						 | 
				
			
			@ -364,7 +357,7 @@ fn set_locale(use_locale: &str) {
 | 
			
		|||
                    let item_buf = item.property::<String>(method.0.as_str());
 | 
			
		||||
                    default_texts[method.0][elt_value] = json!(item_buf);
 | 
			
		||||
                }
 | 
			
		||||
                if method.0 == "tooltip_text" || method.0 == "comments" {
 | 
			
		||||
                if method.0 == "tooltip_text" {
 | 
			
		||||
                    item.set_property(
 | 
			
		||||
                        method.0,
 | 
			
		||||
                        &gettextrs::gettext(default_texts[method.0][elt_value].as_str().unwrap()),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -221,9 +221,9 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
 | 
			
		|||
              </packing>
 | 
			
		||||
            </child>
 | 
			
		||||
            <child>
 | 
			
		||||
              <object class="GtkButton" id="discover">
 | 
			
		||||
                <property name="label" translatable="yes">Discover software</property>
 | 
			
		||||
                <property name="name">discover</property>
 | 
			
		||||
              <object class="GtkButton" id="software">
 | 
			
		||||
                <property name="label" translatable="yes">Software</property>
 | 
			
		||||
                <property name="name">software</property>
 | 
			
		||||
                <property name="visible">True</property>
 | 
			
		||||
                <property name="can-focus">False</property>
 | 
			
		||||
                <property name="receives-default">True</property>
 | 
			
		||||
| 
						 | 
				
			
			@ -423,23 +423,6 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
 | 
			
		|||
                <property name="visible">True</property>
 | 
			
		||||
                <property name="can-focus">False</property>
 | 
			
		||||
                <property name="homogeneous">True</property>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <object class="GtkButton" id="appBrowser">
 | 
			
		||||
                    <property name="label" translatable="yes">Install Apps</property>
 | 
			
		||||
                    <property name="name">appBrowser</property>
 | 
			
		||||
                    <property name="can-focus">False</property>
 | 
			
		||||
                    <property name="receives-default">True</property>
 | 
			
		||||
                    <property name="tooltip-text" translatable="yes">Install Apps</property>
 | 
			
		||||
                    <property name="margin-left">15</property>
 | 
			
		||||
                    <property name="margin-right">15</property>
 | 
			
		||||
                    <signal name="clicked" handler="on_btn_clicked" swapped="no"/>
 | 
			
		||||
                  </object>
 | 
			
		||||
                  <packing>
 | 
			
		||||
                    <property name="expand">True</property>
 | 
			
		||||
                    <property name="fill">True</property>
 | 
			
		||||
                    <property name="position">0</property>
 | 
			
		||||
                  </packing>
 | 
			
		||||
                </child>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <object class="GtkButton" id="tweaksBrowser">
 | 
			
		||||
                    <property name="label" translatable="yes">Apps/Tweaks</property>
 | 
			
		||||
| 
						 | 
				
			
			@ -458,7 +441,21 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
 | 
			
		|||
                  </packing>
 | 
			
		||||
                </child>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <placeholder/>
 | 
			
		||||
                  <object class="GtkButton" id="appBrowser">
 | 
			
		||||
                    <property name="label" translatable="yes">Install Apps</property>
 | 
			
		||||
                    <property name="name">appBrowser</property>
 | 
			
		||||
                    <property name="can-focus">False</property>
 | 
			
		||||
                    <property name="receives-default">True</property>
 | 
			
		||||
                    <property name="tooltip-text" translatable="yes">Common application selection</property>
 | 
			
		||||
                    <property name="margin-left">15</property>
 | 
			
		||||
                    <property name="margin-right">15</property>
 | 
			
		||||
                    <signal name="clicked" handler="on_btn_clicked" swapped="no"/>
 | 
			
		||||
                  </object>
 | 
			
		||||
                  <packing>
 | 
			
		||||
                    <property name="expand">False</property>
 | 
			
		||||
                    <property name="fill">True</property>
 | 
			
		||||
                    <property name="position">1</property>
 | 
			
		||||
                  </packing>
 | 
			
		||||
                </child>
 | 
			
		||||
              </object>
 | 
			
		||||
              <packing>
 | 
			
		||||
| 
						 | 
				
			
			@ -494,12 +491,6 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
 | 
			
		|||
                    <property name="position">0</property>
 | 
			
		||||
                  </packing>
 | 
			
		||||
                </child>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <placeholder/>
 | 
			
		||||
                </child>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <placeholder/>
 | 
			
		||||
                </child>
 | 
			
		||||
                <child>
 | 
			
		||||
                  <object class="GtkEventBox">
 | 
			
		||||
                    <property name="name">reddit</property>
 | 
			
		||||
| 
						 | 
				
			
			@ -584,81 +575,4 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
 | 
			
		|||
      </object>
 | 
			
		||||
    </child>
 | 
			
		||||
  </object>
 | 
			
		||||
  <object class="GtkAboutDialog" id="aboutdialog">
 | 
			
		||||
    <property name="can-focus">False</property>
 | 
			
		||||
    <property name="title" translatable="yes">About</property>
 | 
			
		||||
    <property name="type-hint">dialog</property>
 | 
			
		||||
    <property name="transient-for">window</property>
 | 
			
		||||
    <property name="program-name">CachyOS Hello</property>
 | 
			
		||||
    <property name="version">0.6.10</property>
 | 
			
		||||
    <property name="comments" translatable="yes">Welcome screen for CachyOS</property>
 | 
			
		||||
    <property name="website">https://github.com/cachyos/cachyos-welcome</property>
 | 
			
		||||
    <property name="website-label">GitHub</property>
 | 
			
		||||
    <property name="authors">Hugo Posnic
 | 
			
		||||
Johnathan Jenkins
 | 
			
		||||
Frede Hundewadt
 | 
			
		||||
Bernhard Landauer
 | 
			
		||||
Philip Müller
 | 
			
		||||
Papa Joker
 | 
			
		||||
Oguz Kagan EREN</property>
 | 
			
		||||
    <property name="translator-credits">abdelhak gasmi
 | 
			
		||||
Al Manja
 | 
			
		||||
Albert Cutrona
 | 
			
		||||
Aleksandar Velimirović
 | 
			
		||||
Alex Beliy
 | 
			
		||||
Bernhard Landauer
 | 
			
		||||
cges30901
 | 
			
		||||
Daniel Napora
 | 
			
		||||
DeMus
 | 
			
		||||
Ersi Ni
 | 
			
		||||
Fabio Forni
 | 
			
		||||
Gabriel Blanca
 | 
			
		||||
Hugo Carvalho
 | 
			
		||||
Hugo Posnic
 | 
			
		||||
Ilya Ostapenko aka Jacobtey
 | 
			
		||||
Jeff Huang
 | 
			
		||||
kouros kouros
 | 
			
		||||
Lajos Pasztor
 | 
			
		||||
László Szalai
 | 
			
		||||
Leandro Cunha
 | 
			
		||||
Lovro Kudelić
 | 
			
		||||
Makaveli B
 | 
			
		||||
mgundogdu
 | 
			
		||||
Michael Kogan
 | 
			
		||||
Midir Hakou
 | 
			
		||||
Moo
 | 
			
		||||
pavelrz
 | 
			
		||||
secgin
 | 
			
		||||
Stefano Capitani
 | 
			
		||||
Stéphane
 | 
			
		||||
Πέτρος Σαμαράς
 | 
			
		||||
Андрей Раугас</property>
 | 
			
		||||
    <property name="logo-icon-name"/>
 | 
			
		||||
    <property name="license-type">gpl-3-0</property>
 | 
			
		||||
    <child internal-child="vbox">
 | 
			
		||||
      <object class="GtkBox">
 | 
			
		||||
        <property name="can-focus">True</property>
 | 
			
		||||
        <property name="has-focus">True</property>
 | 
			
		||||
        <property name="orientation">vertical</property>
 | 
			
		||||
        <property name="spacing">2</property>
 | 
			
		||||
        <child internal-child="action_area">
 | 
			
		||||
          <object class="GtkButtonBox">
 | 
			
		||||
            <property name="can-focus">False</property>
 | 
			
		||||
            <property name="layout-style">end</property>
 | 
			
		||||
          </object>
 | 
			
		||||
          <packing>
 | 
			
		||||
            <property name="expand">False</property>
 | 
			
		||||
            <property name="fill">False</property>
 | 
			
		||||
            <property name="position">0</property>
 | 
			
		||||
          </packing>
 | 
			
		||||
        </child>
 | 
			
		||||
        <child>
 | 
			
		||||
          <placeholder/>
 | 
			
		||||
        </child>
 | 
			
		||||
      </object>
 | 
			
		||||
    </child>
 | 
			
		||||
    <style>
 | 
			
		||||
      <class name="aboutdialog"/>
 | 
			
		||||
    </style>
 | 
			
		||||
  </object>
 | 
			
		||||
</interface>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue