diff options
-rw-r--r-- | lib/AdminPanel/rpmdragora.pm | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/lib/AdminPanel/rpmdragora.pm b/lib/AdminPanel/rpmdragora.pm index a2a3c2cf..78a257ad 100644 --- a/lib/AdminPanel/rpmdragora.pm +++ b/lib/AdminPanel/rpmdragora.pm @@ -252,7 +252,6 @@ sub getbanner() { # - 1 if if Yes/Ok sub interactive_msg { my ($title, $contents, %options) = @_; - my $sh_gui = AdminPanel::Shared::GUI->new(); my $retVal = 0; yui::YUI::widgetFactory; @@ -294,10 +293,6 @@ sub interactive_msg { $dlg = undef; return $retVal; - -=comment - return $sh_gui->ask_YesOrNo({ title => $title, text => $contents, richtext => 0}); -=cut } sub interactive_packtable { @@ -410,15 +405,18 @@ sub but_ { " $_[0] " } sub slow_func ($&) { my ($param, $func) = @_; - if (ref($param) =~ /^Gtk/) { - #gtkset_mousecursor_wait($param); - #ugtk2::flush(); - #$func->(); - #gtkset_mousecursor_normal($param); - } else { - my $w = wait_msg($param); - $func->(); - remove_wait_msg($w); + + # NOTE busy cursor is not implemented in yui-ncurses + # but we can avoid a waiting dialog in Gtk and QT + if (yui::YUI::app()->isTextMode()) { + my $w = wait_msg($param); + $func->(); + remove_wait_msg($w) + } + else { + yui::YUI::app()->busyCursor(); + $func->(); + yui::YUI::app()->normalCursor(); } } @@ -427,7 +425,7 @@ sub statusbar_msg { if (defined &::wait_msg_) { goto &::wait_msg_ } else { goto &wait_msg } } my ($msg, $o_timeout) = @_; - $::statusbar->setText($msg); + $::statusbar->setLabel($msg); #- always use the same context description for now #my $cx = $::statusbar->get_context_id("foo"); #$::w and $::w->{rwindow} and gtkset_mousecursor_wait($::w->{rwindow}->window); @@ -435,15 +433,17 @@ sub statusbar_msg { #my $id = $::statusbar->push($cx, $msg); #gtkflush(); #Glib::Timeout->add(5000, sub { statusbar_msg_remove($id); 0 }) if $o_timeout; + $::statusbar->setTimeout ( 5000 ); Glib::Timeout->add(5000, sub { statusbar_msg_remove(); 0 }) if $o_timeout; #$id; + return 1; } sub statusbar_msg_remove { - #my ($msg_id) = @_; - #if (!$::statusbar || ref $msg_id) { #- fallback if no status bar - #goto &remove_wait_msg; - #} + if (!$::statusbar) { #- fallback if no status bar + goto &remove_wait_msg; + } + my ($msg_id) = @_; #my $cx = $::statusbar->get_context_id("foo"); #if (defined $msg_id) { #$::statusbar->remove($cx, $msg_id); @@ -451,17 +451,18 @@ sub statusbar_msg_remove { #$::statusbar->pop($cx); #} #$::w and $::w->{rwindow} and gtkset_mousecursor_normal($::w->{rwindow}->window); - $::statusbar->setValue(""); + $::statusbar->setLabel(""); } sub slow_func_statusbar ($$&) { my ($msg, $w, $func) = @_; - gtkset_mousecursor_wait($w->window); + yui::YUI::app()->busyCursor(); + my $msg_id = statusbar_msg($msg); - gtkflush(); $func->(); statusbar_msg_remove($msg_id); - gtkset_mousecursor_normal($w->window); + + yui::YUI::app()->normalCursor(); } my %u2l = ( |