aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--AdminPanel/Rpmdragora/gui.pm138
-rw-r--r--AdminPanel/Rpmdragora/pkg.pm24
-rw-r--r--AdminPanel/rpmdragora.pm74
-rwxr-xr-xmodules/rpmdragora/rpmdragora83
5 files changed, 226 insertions, 94 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..b25c15b8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/AdminPanel/Rpmdragora/gui.pm b/AdminPanel/Rpmdragora/gui.pm
index 424614a8..67f21ce9 100644
--- a/AdminPanel/Rpmdragora/gui.pm
+++ b/AdminPanel/Rpmdragora/gui.pm
@@ -26,7 +26,7 @@ package AdminPanel::Rpmdragora::gui;
# $Id$
############################################################
-# WARNING: do not modify before asking to matteo or anaselli
+# WARNING: do not modify before asking matteo or anaselli
############################################################
use strict;
@@ -82,6 +82,7 @@ our @EXPORT = qw(
switch_pkg_list_mode
toggle_all
toggle_nodes
+ fast_toggle
);
our ($descriptions, %filters, @filtered_pkgs, %filter_methods, $force_displaying_group, $force_rebuild, @initial_selection, $pkgs, $size_free, $size_selected, $urpm);
@@ -400,25 +401,25 @@ sub node_state {
my ($common, $w, %wtree, %ptree, %pix, @table_item_list);
sub set_node_state {
- my ($iter, $state, $model) = @_;
+ my ($tblItem, $state, $model) = @_;
return if $state eq 'XXX' || !$state;
#$pix{$state} ||= gtkcreate_pixbuf('state_' . $state);
#$model->set($iter, $pkg_columns{state_icon} => $pix{$state});
#$model->set($iter, $pkg_columns{state} => $state);
#$model->set($iter, $pkg_columns{selected} => to_bool(member($state, qw(base installed to_install)))); #$pkg->{selected}));
#$model->set($iter, $pkg_columns{selectable} => to_bool($state ne 'base'));
- $iter->addCell($state,"/usr/share/rpmdrake/icons/state_$state.png");
+ $tblItem->addCell($state,"/usr/share/rpmdrake/icons/state_$state.png");
if(to_bool(member($state, qw(base installed to_install)))){
#$iter->cell(0)->setLabel('x');
# it should be parent()->setChecked(1)
- $iter->cell(0)->parent()->setSelected(1);
+ $tblItem->cell(0)->parent()->setSelected(1);
}else{
#$iter->cell(0)->setLabel('');
- $iter->cell(0)->parent()->setSelected(0);
+ $tblItem->cell(0)->parent()->setSelected(0);
}
if(!to_bool($state ne 'base')){
#$iter->cell(0)->setLabel('-');
- $iter->cell(0)->setLabel('-');
+ $tblItem->cell(0)->setLabel('-');
}
}
@@ -427,7 +428,11 @@ sub set_leaf_state {
set_node_state($_, $state, $model) foreach @{$ptree{$leaf}};
}
-sub grep_unselected { grep { exists $pkgs->{$_} && !$pkgs->{$_}{selected} } @_ }
+sub grep_unselected {
+ my @l = shift();
+ my @result = grep { exists $pkgs->{$_} && !$pkgs->{$_}{selected} } @l ;
+ return @result;
+}
my %groups_tree = ();
@@ -491,6 +496,7 @@ sub add_node {
$w->{detail_list}->addItem($newTableItem);
$ptree{$leaf} = [ $newTableItem->label() ];
$table_item_list[$newTableItem->index()] = $leaf;
+ $newTableItem->DISOWN();
} else {
$iter = $w->{tree_model}->append_set(add_parent($w->{tree},$root, $state), [ $grp_columns{label} => $leaf ]);
#push @{$wtree{$leaf}}, $iter;
@@ -515,25 +521,88 @@ sub update_size {
}
}
+sub treeview_children {
+ my($tbl) = @_;
+ my $it;
+ my @l;
+ my $i=0;
+ # using iterators
+ for ($it = $tbl->itemsBegin(); $it != $tbl->itemsEnd(); ) {
+ my $item = $tbl->YItemIteratorToYItem($it);
+ print "ITEM LABEL: ".$item->index()."\n";
+ push @l, $item;
+ $it = $tbl->nextItem($it);
+ $i++;
+ if ($i == $tbl->itemsCount()) {
+ last;
+ }
+ }
+ # using items
+ #for($i=0;$i<$tbl->itemsCount();$i++) {
+ # print " item label " . $tbl->item($i)->cell(0)->label() . "\n";
+ # push @l, $tbl->item($i);
+ #}
+ return @l;
+}
+
sub children {
- my ($w) = @_;
- map { $w->{detail_list_model}->get($_, $pkg_columns{text}) } gtktreeview_children($w->{detail_list_model});
+ my ($w, @table_item_list) = @_;
+ # map { $w->{detail_list}->get($_, $pkg_columns{text}) } treeview_children($w->{detail_list});
+ # map { $table_item_list[$_->index()] } treeview_children($w->{detail_list});
+ my @children = treeview_children($w->{detail_list});
+ my @result;
+ for my $child(@children){
+ push @result, $table_item_list[$child->index()];
+ }
+ return @result;
}
sub toggle_all {
my ($common, $_val) = @_;
my $w = $common->{widgets};
- my @l = children($w) or return;
+ my @l = children($w, $common->{table_item_list}) or return;
my @unsel = grep_unselected(@l);
my @p = @unsel ?
#- not all is selected, select all if no option to potentially override
(exists $common->{partialsel_unsel} && $common->{partialsel_unsel}->(\@unsel, \@l) ? difference2(\@l, \@unsel) : @unsel)
: @l;
- toggle_nodes($w->{detail_list}->window, $w->{detail_list_model}, \&set_leaf_state, node_state($p[0]), @p);
+ # toggle_nodes($w->{detail_list}, $w->{detail_list_model}, \&set_leaf_state, node_state($p[0]), @p);
+ print "Toggle Nodes: p[0][0]=".$p[0][0]." node_state(".$p[0][0].")=".node_state($p[0][0])."\n";
+ toggle_nodes($w->{detail_list}, $w->{detail_list_model}, \&set_leaf_state, node_state($p[0][0]), @{$p[0]});
update_size($common);
}
+sub fast_toggle {
+ my ($item) = @_;
+ #gtkset_mousecursor_wait($w->{w}{rwindow}->window);
+ #my $_cleaner = before_leaving { gtkset_mousecursor_normal($w->{w}{rwindow}->window) };
+ my $name = $common->{table_item_list}[$item->index()];
+ print "Name: $name\n";
+ my $urpm_obj = $pkgs->{$name}{pkg};
+ if ($urpm_obj->flag_base) {
+ interactive_msg(N("Warning"), N("Removing package %s would break your system", $name));
+ return '';
+ }
+ if ($urpm_obj->flag_skip) {
+ interactive_msg(N("Warning"), N("The \"%s\" package is in urpmi skip list.\nDo you want to select it anyway?", $name), yesno => 1) or return '';
+ $urpm_obj->set_flag_skip(0);
+ }
+ if ($Rpmdragora::pkg::need_restart && !$priority_up_alread_warned) {
+ $priority_up_alread_warned = 1;
+ interactive_msg(N("Warning"), '<b>' . N("Rpmdragora or one of its priority dependencies needs to be updated first. Rpmdragora will then restart.") . '</b>' . "\n\n");
+ }
+ # toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, $w->{detail_list_model}->get($iter, $pkg_columns{state}),
+ my $state;
+ if($item->selected){
+ $state = "to_remove";
+ }else{
+ $state = "to_install";
+ }
+ toggle_nodes($w->{tree}, $w->{detail_list}, \&set_leaf_state, $state, $name);
+ update_size($common);
+};
+
# ask_browse_tree_given_widgets_for_rpmdragora will run gtk+ loop. its main parameter "common" is a hash containing:
# - a "widgets" subhash which holds:
# o a "w" reference on a ugtk2 object
@@ -602,10 +671,10 @@ sub ask_browse_tree_given_widgets_for_rpmdragora {
};
my $fast_toggle = sub {
- my ($iter) = @_;
- gtkset_mousecursor_wait($w->{w}{rwindow}->window);
- my $_cleaner = before_leaving { gtkset_mousecursor_normal($w->{w}{rwindow}->window) };
- my $name = $w->{detail_list_model}->get($iter, $pkg_columns{text});
+ my ($item) = @_;
+ #gtkset_mousecursor_wait($w->{w}{rwindow}->window);
+ #my $_cleaner = before_leaving { gtkset_mousecursor_normal($w->{w}{rwindow}->window) };
+ my $name = $common->{table_item_list}[$item->index()];
my $urpm_obj = $pkgs->{$name}{pkg};
if ($urpm_obj->flag_base) {
@@ -624,8 +693,8 @@ sub ask_browse_tree_given_widgets_for_rpmdragora {
interactive_msg(N("Warning"), '<b>' . N("Rpmdragora or one of its priority dependencies needs to be updated first. Rpmdragora will then restart.") . '</b>' . "\n\n");
}
- toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, $w->{detail_list_model}->get($iter, $pkg_columns{state}),
- $w->{detail_list_model}->get($iter, $pkg_columns{text}));
+ # toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, $w->{detail_list_model}->get($iter, $pkg_columns{state}),
+ toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, $item->selected, $common->{table_item_list}[$item->index()]);
update_size($common);
};
#$w->{detail_list}->get_selection->signal_connect(changed => sub {
@@ -633,16 +702,18 @@ sub ask_browse_tree_given_widgets_for_rpmdragora {
#$model && $iter or return;
# $common->{display_info}($model->get($iter, $pkg_columns{text}));
#});
+ # WARNING: è interessante!
#($w->{detail_list}->get_column(0)->get_cell_renderers)[0]->signal_connect(toggled => sub {
- # my ($_cell, $path) = @_; #text_
- # my $iter = $w->{detail_list_model}->get_iter_from_string($path);
- # $fast_toggle->($iter) if $iter;
+ # my ($_cell, $path) = @_; #text_
+ # my $iter = $w->{detail_list_model}->get_iter_from_string($path);
+ # $fast_toggle->($iter) if $iter;
# 1;
#});
$common->{rebuild_tree}->();
update_size($common);
- #$common->{initial_selection} and toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, undef, @{$common->{initial_selection}});
- #my $_b = before_leaving { $clear_all_caches->() };
+ $common->{initial_selection} and toggle_nodes($w->{tree}->window, $w->{detail_list_model}, \&set_leaf_state, undef, @{$common->{initial_selection}});
+ print "QUANTO VALE common->initial_selection ? ".$common->{initial_selection}."\n";
+ my $_b = before_leaving { $clear_all_caches->() };
$common->{init_callback}->() if $common->{init_callback};
#OLD $w->{w}->main;
$w->{w};
@@ -829,9 +900,8 @@ sub toggle_nodes {
format_list(@impossible_to_remove));
@nodes_with_deps = difference2(\@nodes_with_deps, \@impossible_to_remove);
} else {
- slow_func($widget,
- sub { @nodes_with_deps = grep { intersection(\@nodes, [ closure_removal($_) ]) }
- grep { $pkgs->{$_}{selected} && !member($_, @nodes) } keys %$pkgs });
+ @nodes_with_deps = grep { intersection(\@nodes, [ closure_removal($_) ]) }
+ grep { $pkgs->{$_}{selected} && !member($_, @nodes) } keys %$pkgs;
push @nodes_with_deps, @nodes;
$warn_about_additional_packages_to_remove->(
N("Because of their dependencies, the following package(s) must be unselected now:\n\n"));
@@ -851,15 +921,10 @@ sub toggle_nodes {
@nodes = difference2(\@nodes, \@bad_i18n_pkgs);
}
my @requested;
- slow_func(
- $widget,
- sub {
- @requested = $urpm->resolve_requested(
- open_rpm_db(), $urpm->{state},
- { map { $pkgs->{$_}{pkg}->id => 1 } @nodes },
- callback_choices => \&callback_choices,
- );
- },
+ @requested = $urpm->resolve_requested(
+ open_rpm_db(), $urpm->{state},
+ { map { $pkgs->{$_}{pkg}->id => 1 } @nodes },
+ callback_choices => \&callback_choices,
);
@nodes_with_deps = map { urpm_name($_) } @requested;
statusbar_msg_remove($bar_id);
@@ -905,9 +970,8 @@ sub toggle_nodes {
packages_selection_ok:
} else {
my @unrequested;
- slow_func($widget,
- sub { @unrequested = $urpm->disable_selected(open_rpm_db(), $urpm->{state},
- map { $pkgs->{$_}{pkg} } @nodes) });
+ @unrequested = $urpm->disable_selected(open_rpm_db(), $urpm->{state},
+ map { $pkgs->{$_}{pkg} } @nodes);
@nodes_with_deps = map { urpm_name($_) } @unrequested;
statusbar_msg_remove($bar_id);
if (!deps_msg(N("Some packages need to be removed"),
diff --git a/AdminPanel/Rpmdragora/pkg.pm b/AdminPanel/Rpmdragora/pkg.pm
index 67cf8aae..e8c1a08a 100644
--- a/AdminPanel/Rpmdragora/pkg.pm
+++ b/AdminPanel/Rpmdragora/pkg.pm
@@ -120,8 +120,9 @@ sub extract_header {
my ($local_source, %xml_info_pkgs, $bar_id);
my $_statusbar_clean_guard = before_leaving { $bar_id and statusbar_msg_remove($bar_id) };
my $dir = urpm::file_from_local_url($medium->{url});
- $local_source = "$dir/" . $p->filename if $dir;
-
+ print "p->filename: ". $p->filename."\n";
+ $local_source = "$dir/" . $p->filename if $dir;
+ print "local_source: $local_source\n";
if (-e $local_source) {
$bar_id = statusbar_msg(N("Getting information from %s...", $dir), 0);
$urpm->{log}("getting information from rpms from $dir");
@@ -658,10 +659,10 @@ sub perform_installation { #- (partially) duplicated from /usr/sbin/urpmi :-(
local $urpm->{error} = sub { printf STDERR "Error: %s\n", $_[0]; push @error_msgs, $_[0] };
my $w = $::main_window;
- $w->set_sensitive(0);
- my $_restore_sensitive = before_leaving { $w->set_sensitive(1) };
+ #$w->set_sensitive(0);
+ #my $_restore_sensitive = before_leaving { $w->set_sensitive(1) };
- my $_flush_guard = Gtk2::GUI_Update_Guard->new;
+ # my $_flush_guard = Gtk2::GUI_Update_Guard->new;
if (my $group = get_parallel_group()) {
return perform_parallel_install($urpm, $group, $w, \$statusbar_msg_id);
@@ -735,8 +736,8 @@ sub perform_installation { #- (partially) duplicated from /usr/sbin/urpmi :-(
# select packages to uninstall for !update mode:
perform_removal($urpm, { map { $_ => $pkgs->{$_} } @to_remove }) if !$probe_only_for_updates;
- $gurpm = Rpmdragora::gurpm->new(1 ? N("Please wait") : N("Package installation..."), N("Initializing..."), transient => $::main_window);
- my $_gurpm_clean_guard = before_leaving { undef $gurpm };
+ # $gurpm = Rpmdragora::gurpm->new(1 ? N("Please wait") : N("Package installation..."), N("Initializing..."), transient => $::main_window);
+ # my $_gurpm_clean_guard = before_leaving { undef $gurpm };
my $something_installed;
if (@to_install && $::rpmdragora_options{auto_orphans}) {
@@ -758,14 +759,17 @@ sub perform_installation { #- (partially) duplicated from /usr/sbin/urpmi :-(
my $pkg = defined $id ? $urpm->{depslist}[$id] : undef;
if ($subtype eq 'start') {
if ($type eq 'trans') {
- $gurpm->label(1 ? N("Preparing package installation...") : N("Preparing package installation transaction..."));
+ print(1 ? N("Preparing package installation...") : N("Preparing package installation transaction..."));
+ # $gurpm->label(1 ? N("Preparing package installation...") : N("Preparing package installation transaction..."));
} elsif (defined $pkg) {
$something_installed = 1;
- $gurpm->label(N("Installing package `%s' (%s/%s)...", $pkg->name, ++$transaction_progress_nb, scalar(@{$transaction->{upgrade}}))
- . "\n" . N("Total: %s/%s", ++$progress_nb, $install_count));
+ print(N("Installing package `%s' (%s/%s)...", $pkg->name, ++$transaction_progress_nb, scalar(@{$transaction->{upgrade}}))."\n" . N("Total: %s/%s", ++$progress_nb, $install_count));
+ # $gurpm->label(N("Installing package `%s' (%s/%s)...", $pkg->name, ++$transaction_progress_nb, scalar(@{$transaction->{upgrade}}))
+ # . "\n" . N("Total: %s/%s", ++$progress_nb, $install_count));
}
} elsif ($subtype eq 'progress') {
$gurpm->progress($total ? ($amount/$total)*100 : 100);
+ print("Progress: ".($total ? ($amount/$total)*100 : 100)."\n");
}
};
diff --git a/AdminPanel/rpmdragora.pm b/AdminPanel/rpmdragora.pm
index c9e0c057..b96ed53d 100644
--- a/AdminPanel/rpmdragora.pm
+++ b/AdminPanel/rpmdragora.pm
@@ -312,46 +312,42 @@ sub interactive_packtable {
sub interactive_list {
my ($title, $contents, $list, $callback, %options) = @_;
- my $d = ugtk2->new($title, grab => 1, if_(exists $options{transient}, transient => $options{transient}));
- $d->{rwindow}->set_position($options{transient} ? 'center_on_parent' : 'center_always');
- my @radios = gtkradio('', @$list);
- my $vbradios = $callback ? create_packtable(
- {},
- mapn {
- my $n = $_[1];
- [ $_[0],
- gtksignal_connect(
- Gtk2::Button->new(but(N("Info..."))),
- clicked => sub { $callback->($n) },
- ) ];
- } \@radios, $list,
- ) : gtkpack__(Gtk2::VBox->new(0, 0), @radios);
+
+ my $factory = yui::YUI::widgetFactory;
+ my $mainw = $factory->createPopupDialog();
+ my $vbox = $factory->createVBox($mainw);
+ my $lbltitle = $factory->createLabel($vbox, N("Dependencies"));
+ my $radiobuttongroup = $factory->createRadioButtonGroup($vbox);
+ my $rbbox = $factory->createVBox($radiobuttongroup);
+ foreach my $item(@$list){
+ my $radiobutton = $factory->createRadioButton($rbbox,$item);
+ $radiobutton->setNotify(0);
+ $radiobuttongroup->addRadioButton($radiobutton);
+ }
+ my $submitButton = $factory->createIconButton($vbox,"", N("OK"));
my $choice;
- my $button_ok;
- gtkadd(
- $d->{window},
- gtkpack__(
- Gtk2::VBox->new(0,5),
- Gtk2::Label->new($contents),
- int(@$list) > 8 ? gtkset_size_request(create_scrolled_window($vbradios), 250, 320) : $vbradios,
- gtkpack__(
- create_hbox(),
- if_(!$options{nocancel},
- gtksignal_connect(
- Gtk2::Button->new(N("Cancel")), clicked => sub { Gtk2->main_quit }),
- ),
- gtksignal_connect(
- $button_ok=Gtk2::Button->new(N("Ok")), clicked => sub {
- each_index { $_->get_active and $choice = $::i } @radios;
- Gtk2->main_quit;
- }
- )
- )
- )
- );
- $d->{window}->set_focus($button_ok);
- $d->main;
- $choice;
+
+ while(1) {
+ my $event = $mainw->waitForEvent();
+ my $eventType = $event->eventType();
+ #event type checking
+ if ($eventType == $yui::YEvent::CancelEvent) {
+ $mainw->destroy();
+ last;
+ }
+ elsif ($eventType == $yui::YEvent::WidgetEvent) {
+ # widget selected
+ my $widget = $event->widget();
+
+ if($widget == $submitButton) {
+ $choice = $radiobuttongroup->currentButton->label();
+ $choice =~s/\&//g;
+ last;
+ }
+ }
+ }
+ $mainw->destroy();
+ return $choice;
}
sub interactive_list_ { interactive_list(@_, if_($::main_window, transient => $::main_window)) }
diff --git a/modules/rpmdragora/rpmdragora b/modules/rpmdragora/rpmdragora
index 9a061096..22b8256b 100755
--- a/modules/rpmdragora/rpmdragora
+++ b/modules/rpmdragora/rpmdragora
@@ -61,6 +61,10 @@ my $my_win;
my $factory;
my $mgaFactory;
my $optFactory;
+my $extWidgets;
+
+my @itemsToBeRemoved;
+my @itemsToBeInstalled;
our $w;
our $statusbar;
@@ -68,6 +72,7 @@ our $statusbar;
my %elems;
my $old_value;
+
sub viewbox_callback {
my %wanted_categories = ();
my ($selection, $options, $wanted_categories) = @_;
@@ -138,10 +143,60 @@ sub tree_callback {
return;
}
+sub detaillist_changeditem_callback {
+ my ($detail_list, $options) = @_;
+ my $changedItem = $detail_list->changedItem();
+ # handles installist and droplist
+ my $index=0;
+ if ($changedItem->selected()) {
+ # to be installed if not in to be removed list
+ my $found = 0;
+ foreach $index (0 .. scalar(@itemsToBeRemoved)) {
+ my $currItem = $itemsToBeRemoved[$index];
+ if(ref $currItem eq "yui::YItem") {
+ if ($currItem->label() == $changedItem->label()) {
+ $found = 1;
+ splice (@itemsToBeRemoved, $index ,1);
+ last;
+ }
+ }
+ }
+ if ($found == 0) {
+ push(@itemsToBeInstalled, $changedItem);
+ # $pkgs->{$options->{table_item_list}[$changedItem->index()]}{selected} = 1;
+ # toggle_veloce($options->{table_item_list}[$changedItem->index()],"to_install");
+ fast_toggle($changedItem);
+ }
+ }
+ else {
+ # to be removed if not in to be installed list
+ my $found = 0;
+ foreach $index (0 .. scalar(@itemsToBeInstalled)) {
+ my $currItem = $itemsToBeInstalled[$index];
+ if(ref $currItem eq "yui::YItem") {
+ if ($currItem->label() == $changedItem->label()) {
+ $found = 1;
+ splice (@itemsToBeInstalled, $index ,1);
+ last;
+ }
+ }
+ }
+ if ($found == 0) {
+ push(@itemsToBeRemoved, $changedItem);
+ # $pkgs->{$options->{table_item_list}[$changedItem->index()]}{selected} = 0;
+ # toggle_veloce($options->{table_item_list}[$changedItem->index()],"to_remove");
+ fast_toggle($changedItem);
+ }
+ }
+ print "itemsToBeRemoved counts ".scalar(@itemsToBeRemoved)." items\n";
+ print "itemsToBeInstalled counts ".scalar(@itemsToBeInstalled)." items\n";
+}
+
sub detaillist_callback {
my ($selection, $info, $options) = @_;
$info->setValue("");
$info->setValue("<h2>".N("Informations")."</h2>");
+ return if( ref $selection ne "yui::YItem");
my @data = get_info($options->{table_item_list}[$selection->index()],$info->parent()->parent());
for(@{$data[0]}){
if(ref $_ ne "ARRAY"){
@@ -486,8 +541,8 @@ sub run_treeview_dialog {
#$pixcolumn->set_sort_column_id($pkg_columns{state});
$detail_list_header->addColumn(N("Status"));
-### print " yui::YTableCheckBoxOnLastColumn ". $yui::YTableCheckBoxOnLastColumn . "\n" ;
-
+ # it should be istanciated this way
+ # $detail_list = $mgaFactory->createTable($hbox_middle,$detail_list_header,$yui::YTableCheckBoxOnLastColumn);
$detail_list = $mgaFactory->createCBTable($hbox_middle,$detail_list_header,$yui::YTableCheckBoxOnLastColumn);
$detail_list->setWeight(0,50);
$detail_list->setNotify(1);
@@ -844,12 +899,12 @@ sub run_treeview_dialog {
$license =~ s/\n/\n\n/sg; # nicer formatting
my $w = gtknew('AboutDialog', name => N("Rpmdragora"),
version => $Rpmdragora::init::version,
- copyright => N("Copyright (C) %s by Mandriva", '2002-2009'),
+ copyright => N("Copyright (C) %s by Mandriva", '2002-2009')."\n".N("Copyright (C) %s by Mageia.Org", '2010-2013'),
license => $license, wrap_license => 1,
comments => N("Rpmdragora is the Mageia package management tool."),
website => 'http://www.mageia.org',
website_label => N("Mageia"),
- authors => 'Thierry Vignaud <vignaud@mandriva.com>\nAngelo Naselli <anaselli@gmail.com>\nMatteo Pasotti <matteo.pasotti@gmail.com>',
+ authors => "Thierry Vignaud <vignaud@mandriva.com>\nAngelo Naselli <anaselli@gmail.com>\nMatteo Pasotti <matteo.pasotti@gmail.com>",
artists => 'Hélène Durosini <ln@mandriva.com>',
translator_credits =>
#-PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
@@ -987,6 +1042,7 @@ sub run_treeview_dialog {
#OLD slow_func($::main_window->window, sub { pkgs_provider($default_list_mode) }); # default mode
slow_func($::main_window, sub { pkgs_provider($default_list_mode) }); # default mode
if (@initial_selection) {
+ print "\n== Initial selection: @initial_selection\n";
$options->{initial_selection} = \@initial_selection;
undef $pkgs->{$_}{selected} foreach @initial_selection;
}
@@ -1030,6 +1086,7 @@ sub run_treeview_dialog {
}
elsif ($widget == $select_all_button) {
toggle_all($options, 1);
+ #select_all_current_packages(\$detail_list);
}
elsif ($widget == $apply_button) {
do_action($options, $callback_action, $info);
@@ -1045,6 +1102,7 @@ sub run_treeview_dialog {
}
elsif ($widget == $detail_list){
detaillist_callback($detail_list->selectedItem(), $info, \%$options);
+ detaillist_changeditem_callback($detail_list, \%$options);
}
elsif ($widget == $file_menu && $mnuItemUpdateMedia) {
update_sources_interactive($urpm, transient => $my_win)
@@ -1087,7 +1145,8 @@ sub run_treeview_dialog {
last;
}
elsif ($itemLabel eq N("About")) {
- my $license = translate($::license);
+ my $license = formatAlaTeX(translate($::license));
+ $license =~ s/\n/\n\n/sg; # nicer formatting
AboutDialog({ name => N("Rpmdragora"),
version => $Rpmdragora::init::version,
copyright => N("Copyright (C) %s by Mandriva", '2002-2009'),
@@ -1095,7 +1154,7 @@ sub run_treeview_dialog {
comments => N("Rpmdragora is the Mageia package management tool."),
website => 'http://www.mageia.org',
website_label => N("Mageia"),
- authors => "Thierry Vignaud <vignaud\@mandriva.com>\nAngelo Naselli <anaselli\@linux.it>\nMatteo Pasotti <matteo.pasotti\@gmail.com>",
+ authors => 'Thierry Vignaud <vignaud@mandriva.com>\nAngelo Naselli <anaselli@linux.it>\nMatteo Pasotti <matteo.pasotti@gmail.com>',
artists => 'Hélène Durosini <ln@mandriva.com>',
translator_credits =>
#-PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
@@ -1120,11 +1179,19 @@ if (my $pid = is_running('rpmdragora')) {
yui::YUI::app()->setApplicationTitle(N("Software Management"));
yui::YUI::app()->setApplicationIcon($wm_icon);
+my $MGAPlugin = "mga";
+
+#yui::YUILoader::loadExternalWidgets($MGAPlugin);
+
$factory = yui::YUI::widgetFactory;
-yui::YUILoader::loadExternalWidgets("mga");
-$mgaFactory = yui::YMGAWidgetFactory::getYMGAWidgetFactory(yui::YExternalWidgets::externalWidgetFactory());
+$extWidgets = yui::YExternalWidgets::externalWidgets($MGAPlugin);
+$mgaFactory = $extWidgets->externalWidgetFactory();
+# $mgaFactory = bless($extWidgets,'yui::YMGAWidgetFactory');
+$mgaFactory = yui::YMGAWidgetFactory::getYMGAWidgetFactory($mgaFactory);
$optFactory = yui::YUI::optionalWidgetFactory;
+
+
### MAIN DIALOG ###
$my_win = $factory->createMainDialog;