🚧 make use of extra field
This commit is contained in:
parent
1868467e5f
commit
2d336774a8
|
@ -112,10 +112,13 @@ impl AlpmHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn app_installed(&self, pkg_name: &str) -> bool {
|
fn app_installed(&self, pkg_names: &str) -> bool {
|
||||||
|
let pkg_name_vec = pkg_names.split(' ').map(String::from).collect::<Vec<String>>();
|
||||||
|
let pkg_name = pkg_name_vec.first().unwrap();
|
||||||
|
|
||||||
let pacman =
|
let pacman =
|
||||||
pacmanconf::Config::with_opts(None, Some("/etc/pacman.conf"), Some("/")).unwrap();
|
pacmanconf::Config::with_opts(None, Some("/etc/pacman.conf"), Some("/")).unwrap();
|
||||||
let alpm = alpm_utils::alpm_with_conf(&pacman).unwrap();
|
let alpm = alpm_utils::alpm_with_conf(&pacman).unwrap();
|
||||||
matches!(alpm.localdb().pkg(pkg_name), Ok(_))
|
matches!(alpm.localdb().pkg(pkg_name.as_bytes()), Ok(_))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,13 +172,23 @@ impl ApplicationBrowser {
|
||||||
status = false;
|
status = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut alpm_packages_vec = vec![String::from(app["pkg"].as_str().unwrap())];
|
||||||
|
{
|
||||||
|
let alpm_packages_temp = app["extra"].as_array().unwrap();
|
||||||
|
for alpm_package in alpm_packages_temp {
|
||||||
|
alpm_packages_vec.push(alpm_package.as_str().unwrap().to_owned());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let alpm_packages = alpm_packages_vec.join(" ");
|
||||||
|
|
||||||
self.app_store.insert_with_values(Some(&index), None, &[
|
self.app_store.insert_with_values(Some(&index), None, &[
|
||||||
(GROUP, &None::<String>),
|
(GROUP, &None::<String>),
|
||||||
(ICON, &String::from(app["icon"].as_str().unwrap())),
|
(ICON, &String::from(app["icon"].as_str().unwrap())),
|
||||||
(APPLICATION, &String::from(app["name"].as_str().unwrap())),
|
(APPLICATION, &String::from(app["name"].as_str().unwrap())),
|
||||||
(DESCRIPTION, &String::from(app["description"].as_str().unwrap())),
|
(DESCRIPTION, &String::from(app["description"].as_str().unwrap())),
|
||||||
(ACTIVE, &status),
|
(ACTIVE, &status),
|
||||||
(PACKAGE, &String::from(app["pkg"].as_str().unwrap())),
|
(PACKAGE, &alpm_packages),
|
||||||
(INSTALLED, &status),
|
(INSTALLED, &status),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -410,11 +420,14 @@ fn on_app_toggle(_cell: >k::CellRendererToggle, path: gtk::TreePath) {
|
||||||
let alpm_handle = app_browser.get_alpm_handle();
|
let alpm_handle = app_browser.get_alpm_handle();
|
||||||
let update_system_button = app_browser.update_system_btn.clone();
|
let update_system_button = app_browser.update_system_btn.clone();
|
||||||
let localdb = alpm_handle.localdb();
|
let localdb = alpm_handle.localdb();
|
||||||
let pkg = app_store.value(&iter_a, PACKAGE as i32).get::<String>().unwrap();
|
let alpm_packages = app_store.value(&iter_a, PACKAGE as i32).get::<String>().unwrap();
|
||||||
|
let alpm_packages_vec = alpm_packages.split(' ').map(String::from).collect::<Vec<String>>();
|
||||||
|
|
||||||
let installed = localdb.pkg(pkg.clone()).is_ok();
|
let pkg = alpm_packages_vec.first().unwrap();
|
||||||
|
|
||||||
|
let installed = localdb.pkg(pkg.as_bytes()).is_ok();
|
||||||
// update lists
|
// update lists
|
||||||
app_browser.alpm_helper.set_package(&pkg, !toggle_a, installed);
|
app_browser.alpm_helper.set_package(&alpm_packages, !toggle_a, installed);
|
||||||
update_system_button.set_sensitive(!app_browser.alpm_helper.is_empty());
|
update_system_button.set_sensitive(!app_browser.alpm_helper.is_empty());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue