aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatteo Pasotti <matteo@mageia.org>2013-01-09 16:40:23 +0000
committerMatteo Pasotti <matteo@mageia.org>2013-01-09 16:40:23 +0000
commit5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6 (patch)
tree0279f7b29f4a41aa6adc05cf017dc79c14e323b2
parent7deb546103eea4647985d5ec7bcbc97d1b0d886b (diff)
downloadmanatools-5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6.tar
manatools-5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6.tar.gz
manatools-5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6.tar.bz2
manatools-5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6.tar.xz
manatools-5b97980dd59e47ebf1d6f8ca37b7cafb48410bf6.zip
- 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
-rw-r--r--AdminPanel/Rpmdragora/init.pm14
-rw-r--r--AdminPanel/Shared.pm16
-rw-r--r--AdminPanel/rpmdragora.pm4
-rwxr-xr-xmodules/rpmdragora/rpmdragora7
4 files changed, 23 insertions, 18 deletions
diff --git a/AdminPanel/Rpmdragora/init.pm b/AdminPanel/Rpmdragora/init.pm
index 06e03988..776ee4c0 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 dce5061e..6f4f703b 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 5f153019..b490ccc4 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 63d8f856..d8225e42 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);