aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/Rpmdragora/gui.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AdminPanel/Rpmdragora/gui.pm')
-rw-r--r--lib/AdminPanel/Rpmdragora/gui.pm87
1 files changed, 46 insertions, 41 deletions
diff --git a/lib/AdminPanel/Rpmdragora/gui.pm b/lib/AdminPanel/Rpmdragora/gui.pm
index 882187b..4a3f483 100644
--- a/lib/AdminPanel/Rpmdragora/gui.pm
+++ b/lib/AdminPanel/Rpmdragora/gui.pm
@@ -64,7 +64,6 @@ our @EXPORT = qw(
$urpm
%grp_columns
%pkg_columns
- %hidden_info
@filtered_pkgs
@initial_selection
ask_browse_tree_given_widgets_for_rpmdragora
@@ -252,31 +251,22 @@ sub get_details {
sub get_new_deps {
my ($urpm, $upkg) = @_;
- my $deps_textview;
- my @a = [ gtkadd(
- gtksignal_connect(
- gtkshow(my $dependencies = Gtk2::Expander->new(format_field($loc->N("New dependencies:")))),
- activate => sub {
- slow_func($::main_window->window, sub {
- my $state = {};
- my $db = open_rpm_db();
- my @requested = $urpm->resolve_requested__no_suggests_(
- $db, $state,
- { $upkg->id => 1 },
- );
- @requested = $urpm->resolve_requested_suggests($db, $state, \@requested);
- undef $db;
- my @nodes_with_deps = map { urpm_name($_) } @requested;
- my @deps = sort { $a cmp $b } difference2(\@nodes_with_deps, [ urpm_name($upkg) ]);
- @deps = $loc->N("All dependencies installed.") if !@deps;
- gtktext_insert($deps_textview, join("\n", @deps));
- });
- }
- ),
- $deps_textview = gtknew('TextView')
- ) ];
- $dependencies->set_use_markup(1);
- @a;
+
+ my $deps = slow_func(undef, sub {
+ my $state = {};
+ my $db = open_rpm_db();
+ my @requested = $urpm->resolve_requested__no_suggests_(
+ $db, $state,
+ { $upkg->id => 1 },
+ );
+ @requested = $urpm->resolve_requested_suggests($db, $state, \@requested);
+ undef $db;
+ my @nodes_with_deps = map { urpm_name($_) } @requested;
+ my @deps = sort { $a cmp $b } difference2(\@nodes_with_deps, [ urpm_name($upkg) ]);
+ @deps = $loc->N("All dependencies installed.") if !@deps;
+ return \@deps;
+ });
+ return $deps;
}
sub get_url_link {
@@ -299,7 +289,7 @@ sub files_format {
my ($files) = @_;
# ugtk2::markup_to_TextView_format(
'<tt>' . $spacing #- to highlight information
- . join("\n$spacing", map { "\x{200e}$_" } @$files)
+ . join("\n\t", @$files)
. '</tt>';
}
@@ -350,7 +340,7 @@ sub format_pkg_simplifiedinfo {
push @$s, get_advisory_link($update_descr) if $is_update;
push @$s, get_description($pkg, $update_descr);
- push @$s, [ "\n" ];
+
my $installed_version = eval { find_installed_version($upkg) };
#push @$s, [ gtkadd(gtkshow(my $details_exp = Gtk2::Expander->new(format_field($loc->N("Details:")))),
@@ -366,28 +356,43 @@ sub format_pkg_simplifiedinfo {
#push @$s, [ build_expander($pkg, $loc->N("Files:"), 'files', sub { files_format($pkg->{files}) }) ];
my $files_link = format_link(format_field($loc->N("Files:")), $hidden_info{files} );
if ($options->{files}) {
- $DB::single = 1;
-# my $files = files_format($pkg->{files});
-# utf8::encode($files);
- $files_link .= join("\n", $pkg->{files});
-# $files_link .= "\n" . $files;
+ my $wait = AdminPanel::rpmdragora::wait_msg();
+ if (!$pkg->{files}) {
+ extract_header($pkg, $urpm, 'files', $installed_version);
+ }
+ my $files = $pkg->{files} ? files_format($pkg->{files}) : $loc->N("(Not available)");
+ utf8::encode($files);
+ $files_link .= "\n\n" . $files;
+ AdminPanel::rpmdragora::remove_wait_msg($wait);
}
push @$s, join("\n", $files_link, "\n");
#push @$s, [ build_expander($pkg, $loc->N("Changelog:"), 'changelog', sub { $pkg->{changelog} }, $installed_version) ];
my $changelog_link = format_link(format_field($loc->N("Changelog:")), $hidden_info{changelog} );
if ($options->{changelog}) {
- $DB::single = 1;
-# my $changelog = $pkg->{changelog};
-# utf8::encode($changelog);
-# $changelog_link .= "\n" . $changelog;
+ my $wait = AdminPanel::rpmdragora::wait_msg();
+ my @changelog = $pkg->{changelog} ? @{$pkg->{changelog}} : ( $loc->N("(Not available)") );
+ if (!$pkg->{changelog} || !scalar @{$pkg->{changelog}} ) {
+ # my ($pkg, $label, $type, $get_data, $o_installed_version) = @_;
+ extract_header($pkg, $urpm, 'changelog', $installed_version);
+ @changelog = $pkg->{changelog} ? @{$pkg->{changelog}} : ( $loc->N("(Not available)") );
+ }
+ utf8::encode(\@changelog);
+ $changelog_link .= "\n\n". join("", @changelog);
+ AdminPanel::rpmdragora::remove_wait_msg($wait);
}
- push @$s, join("\n", $changelog_link, "\n");
+ push @$s, join("\n\n", $changelog_link, "\n");
- if ($upkg->id) { # If not installed
- # push @$s, get_new_deps($urpm, $upkg);
+ my $deps_link = format_link(format_field($loc->N("New dependencies:")), $hidden_info{new_deps} );
+ if ($options->{new_deps}) {
+ if ($upkg->id) { # If not installed
+ $deps_link .= "\n\n". join("\n", @{get_new_deps($urpm, $upkg)});
+ # push @$s, get_new_deps($urpm, $upkg);
+ }
}
- $s;
+ push @$s, join("\n", $deps_link, "\n");
+
+ return $s;
}
sub format_pkg_info {