From 5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6 Mon Sep 17 00:00:00 2001 From: Matteo Pasotti Date: Wed, 9 Jan 2013 16:40:23 +0000 Subject: - rpmdragora: fixed warn_about_user_mode call - rpmdragora.pm: interactive_msg now returns ask_YesOrOk() return value - Shared.pm: ask_ routines now return boolean rather than string - Shared.pm: added missing module requirement (common from libDrakX) - init.pm: warn_about_user_mode rewritten to return boolean --- AdminPanel/Rpmdragora/init.pm | 14 +++++++++----- AdminPanel/Shared.pm | 16 +++++++++------- AdminPanel/rpmdragora.pm | 4 +--- modules/rpmdragora/rpmdragora | 7 ++++--- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/AdminPanel/Rpmdragora/init.pm b/AdminPanel/Rpmdragora/init.pm index 06e0398..776ee4c 100644 --- a/AdminPanel/Rpmdragora/init.pm +++ b/AdminPanel/Rpmdragora/init.pm @@ -29,6 +29,7 @@ use strict; use MDK::Common::Func 'any'; use lib qw(/usr/lib/libDrakX); use common; +use English; BEGIN { $::no_global_argv_parsing = 1 } require urpm::args; @@ -155,11 +156,14 @@ our $changelog_first = $rpmdragora::changelog_first_config->[0]; $changelog_first = 1 if $rpmdragora_options{'changelog-first'}; sub warn_about_user_mode() { - $> and (AdminPanel::rpmdragora::interactive_msg(N("Running in user mode"), - N("You are launching this program as a normal user. -You will not be able to perform modifications on the system, -but you may still browse the existing database."), yesno => 1, text => { no => N("Cancel"), yes => N("Ok") }) - or AdminPanel::rpmdragora::myexit(0)); + my $title = N("Running in user mode"); + my $msg = N("You are launching this program as a normal user. + You will not be able to perform modifications on the system, + but you may still browse the existing database."); + if(($EUID != 0) and (!AdminPanel::rpmdragora::interactive_msg($title, $msg))) { + return 0; + } + return 1; } sub init() { diff --git a/AdminPanel/Shared.pm b/AdminPanel/Shared.pm index dce5061..6f4f703 100644 --- a/AdminPanel/Shared.pm +++ b/AdminPanel/Shared.pm @@ -22,6 +22,8 @@ package AdminPanel::Shared; use strict; use warnings; use diagnostics; +use lib qw(/usr/lib/libDrakX); +use common; use yui; use base qw(Exporter); @@ -100,7 +102,7 @@ sub ask_OkCancel { if ($eventType == $yui::YEvent::WidgetEvent) { # widget selected my $widget = $event->widget(); - $retVal = ($widget == $okButton); + $retVal = ($widget == $okButton) ? 1 : 0; } destroy $msg_box; @@ -110,7 +112,7 @@ sub ask_OkCancel { sub ask_YesOrNo { my ($title, $text) = @_; - my $retVal = "No"; + my $retVal = 0; my $factory = yui::YUI::widgetFactory; my $msg_box = $factory->createPopupDialog($yui::YDialogNormalColor); @@ -124,8 +126,8 @@ sub ask_YesOrNo { $align = $factory->createRight($layout); my $hbox = $factory->createHBox($align); - my $yesButton = $factory->createPushButton($hbox, "Yes"); - my $noButton = $factory->createPushButton($hbox, "No"); + my $yesButton = $factory->createPushButton($hbox, N("Yes")); + my $noButton = $factory->createPushButton($hbox, N("No")); my $event = $msg_box->waitForEvent(); @@ -134,7 +136,7 @@ sub ask_YesOrNo { if ($eventType == $yui::YEvent::WidgetEvent) { # widget selected my $widget = $event->widget(); - $retVal = ($widget == $yesButton) ? "Yes" : "No"; + $retVal = ($widget == $yesButton) ? 1 : 0; } destroy $msg_box; @@ -174,10 +176,10 @@ sub trim { shows a dialog with two buttons (Yes/No) -=head3 return value(string) +=head3 return bool =head2 ask_OkCancel shows a dialog with to buttons (Ok/Cancel) -=head3 return value(string) +=head3 return bool diff --git a/AdminPanel/rpmdragora.pm b/AdminPanel/rpmdragora.pm index 5f15301..b490ccc 100644 --- a/AdminPanel/rpmdragora.pm +++ b/AdminPanel/rpmdragora.pm @@ -249,9 +249,7 @@ sub getbanner() { # - 1 if if Yes/Ok sub interactive_msg { my ($title, $contents, %options) = @_; - my $retVal = ask_YesOrNo($title, $contents); - return 1 if($retVal eq "Yes"); - return 0; + return ask_YesOrNo($title, $contents); =comment $options{transient} ||= $::main_window if $::main_window; local $::isEmbedded; diff --git a/modules/rpmdragora/rpmdragora b/modules/rpmdragora/rpmdragora index 63d8f85..d8225e4 100755 --- a/modules/rpmdragora/rpmdragora +++ b/modules/rpmdragora/rpmdragora @@ -1034,7 +1034,10 @@ $my_win = $factory->createMainDialog; readconf(); -warn_about_user_mode(); +if(!warn_about_user_mode()) { + quit(); + exit(0); +} do_merge_if_needed(); @@ -1044,5 +1047,3 @@ init(); run_treeview_dialog(\&perform_installation); writeconf(); - -myexit(0); -- cgit v1.2.1