aboutsummaryrefslogtreecommitdiffstats
path: root/MandrivaUpdate
diff options
context:
space:
mode:
Diffstat (limited to 'MandrivaUpdate')
-rwxr-xr-xMandrivaUpdate27
1 files changed, 18 insertions, 9 deletions
diff --git a/MandrivaUpdate b/MandrivaUpdate
index 21678716..4f5f6e69 100755
--- a/MandrivaUpdate
+++ b/MandrivaUpdate
@@ -79,6 +79,8 @@ sub refresh_packages_list {
if (!$initialized) {
$pkgs->{$_}{selected} = 0 foreach @requested;
my @selectable = grep { !$pkgs->{$_}{pkg}->flag_skip } @requested;
+ # adjust boolean to reality of selected state:
+ toggle($list, @selectable) if @selectable;
toggle($list, @selectable) if @selectable;
$initialized = 1;
}
@@ -131,6 +133,17 @@ sub quit() {
Gtk2->main_quit;
}
+sub select_n_refresh {
+ my ($list, $info, $update_button, $value) = @_;
+ toggle_all({
+ widgets => {
+ detail_list => $list,
+ detail_list_model => $list->get_model
+ },
+ }, $value);
+ refresh_packages_list($list, $info, $update_button);
+}
+
sub run_treeview_dialog {
my ($callback_action) = @_;
@@ -175,15 +188,11 @@ sub run_treeview_dialog {
),
0, gtksignal_connect(
Gtk2::Button->new(but_(N("Select all"))),
- clicked => sub {
- toggle_all({
- widgets => {
- detail_list => $list,
- detail_list_model => $list->get_model
- },
- }, 1);
- refresh_packages_list($list, $info, $update_button);
- },
+ clicked => sub { select_n_refresh($list, $info, $update_button, 1) },
+ ),
+ 0, gtksignal_connect(
+ Gtk2::Button->new(but_(N("Unselect all"))),
+ clicked => sub { select_n_refresh($list, $info, $update_button, 0) },
),
1, gtknew('Label'),
0, my $action_button = gtksignal_connect(