diff options
author | Angelo Naselli <anaselli@linux.it> | 2015-03-16 19:20:40 +0100 |
---|---|---|
committer | Angelo Naselli <anaselli@linux.it> | 2015-03-16 19:20:40 +0100 |
commit | b4e446c21e299af0441ec44db7a86334980b77c2 (patch) | |
tree | ea17c359431cb9e10aeed60346cb7b5a2c7af19d /lib/AdminPanel/Rpmdragora/gurpm.pm | |
parent | fc9772f1f03684e8dab50ff77d2c46c5e0309c7b (diff) | |
download | manatools-b4e446c21e299af0441ec44db7a86334980b77c2.tar manatools-b4e446c21e299af0441ec44db7a86334980b77c2.tar.gz manatools-b4e446c21e299af0441ec44db7a86334980b77c2.tar.bz2 manatools-b4e446c21e299af0441ec44db7a86334980b77c2.tar.xz manatools-b4e446c21e299af0441ec44db7a86334980b77c2.zip |
Moved the tree accordingly
Diffstat (limited to 'lib/AdminPanel/Rpmdragora/gurpm.pm')
-rw-r--r-- | lib/AdminPanel/Rpmdragora/gurpm.pm | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/lib/AdminPanel/Rpmdragora/gurpm.pm b/lib/AdminPanel/Rpmdragora/gurpm.pm deleted file mode 100644 index 20cac6ee..00000000 --- a/lib/AdminPanel/Rpmdragora/gurpm.pm +++ /dev/null @@ -1,298 +0,0 @@ -# vim: set et ts=4 sw=4: -package ManaTools::Rpmdragora::gurpm; - -#============================================================= -*-perl-*- - -=head1 NAME - - ManaTools::Rpmdragora::gurpm - Module that shows the urpmi - progress status - -=head1 SYNOPSIS - - my %option = (title => "Urpmi action ivoked", text => "Please wait", ); - my $gurpmi = ManaTools::Rpmdragora::gurpm->new(%option); - $gurpmi->progress(45); - - #add to an existing dialog - %option = (title => "Urpmi action ivoked", text => "Please wait", main_dialog => $dialog, parent => $parent_container); - $gurpmi = ManaTools::Rpmdragora::gurpm->new(%option); - $gurpmi->progress(20); - -=head1 DESCRIPTION - - This class is used to show the progress of an urpmi operation on - its progress bar. It can be istantiated as a popup dialog or used - to add label and progress bar into a YLayoutBox container. - -=head1 SUPPORT - - You can find documentation for this module with the perldoc command: - - perldoc ManaTools::Rpmdragora::gurpm - -=head1 AUTHOR - - Angelo Naselli <anaselli@linux.it> - - Matteo Pasotti <matteo.pasotti@gmail.com> - -=head1 COPYRIGHT and LICENSE - - Copyright (c) 2002 Guillaume Cottenceau - Copyright (c) 2002-2007 Thierry Vignaud <tvignaud@mandriva.com> - Copyright (c) 2003, 2004, 2005 MandrakeSoft SA - Copyright (c) 2005-2007 Mandriva SA - Copyright (c) 2013 - 2015 Matteo Pasotti <matteo.pasotti@gmail.com> - Copyright (C) 2015, Angelo Naselli <anaselli@linux.it> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2, as - published by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - -=cut - - -use Moose; -use Carp; -use Time::HiRes; - -use yui; -use feature 'state'; - - -has 'title' => ( - is => 'rw', - isa => 'Str', -); - -has 'text' => ( - is => 'rw', - isa => 'Str', -); - -has 'main_dialog' => ( - is => 'rw', - isa => 'yui::YDialog', -); - -has 'parent' => ( - is => 'rw', - isa => 'yui::YReplacePoint', -); - -has 'label_widget' => ( - is => 'rw', - isa => 'yui::YLabel', - init_arg => undef, -); - -has 'progressbar' => ( - is => 'rw', - isa => 'yui::YProgressBar', - init_arg => undef, -); - -#============================================================= - -=head2 BUILD - -=head3 DESCRIPTION - - The BUILD method is called after a Moose object is created, - in this methods Services loads all the service information. - -=cut - -#============================================================= -sub BUILD { - my $self = shift; - - my $factory = yui::YUI::widgetFactory; - my $vbox; - - if (! $self->main_dialog) { - if ($self->parent) { - carp "WARNING: parent parameter is skipped without main_dialog set\n" ; - $self->parent(undef); - } - $self->main_dialog($factory->createPopupDialog()); - $vbox = $factory->createVBox($self->main_dialog); - } - else { - die "parent parameter is mandatory with main_dialog" if !$self->parent; - $self->main_dialog->startMultipleChanges(); - $self->parent->deleteChildren(); - $vbox = $factory->createVBox($self->parent); - $factory->createVSpacing($vbox, 0.5); - } - - $self->label_widget( $factory->createLabel($vbox, $self->text) ); - $self->label_widget->setStretchable( $yui::YD_HORIZ, 1 ); - $self->progressbar( $factory->createProgressBar($vbox, "") ); - - if ($self->parent) { - $factory->createVSpacing($vbox, 0.5); - $self->parent->showChild(); - $self->main_dialog->recalcLayout(); - $self->main_dialog->doneMultipleChanges(); - } - - $self->main_dialog->pollEvent(); - $self->flush(); -} - - -#============================================================= - -=head2 flush - -=head3 DESCRIPTION - - Polls a dialog event to refresh the dialog - -=cut - -#============================================================= -sub flush { - my ($self) = @_; - - $self->main_dialog->startMultipleChanges(); - $self->main_dialog->recalcLayout(); - $self->main_dialog->doneMultipleChanges(); - - if ($self->main_dialog->isTopmostDialog()) { - $self->main_dialog->waitForEvent(10); - $self->main_dialog->pollEvent(); - } - else { - carp "This dialog is not a top most dialog\n"; - } - yui::YUI::app()->redrawScreen(); -} - -#============================================================= - -=head2 label - -=head3 INPUT - - $text: text to be shown on label - -=head3 DESCRIPTION - - Sets the label text - -=cut - -#============================================================= -sub label { - my ($self, $text) = @_; - - $self->main_dialog->startMultipleChanges(); - $self->label_widget->setValue($text) if $text; - $self->main_dialog->doneMultipleChanges(); - - $self->flush(); -} - -#============================================================= - -=head2 progress - -=head3 INPUT - - $value: integer value in the range 0..100 - -=head3 DESCRIPTION - - Sets the progress bar percentage value - -=cut - -#============================================================= -sub progress { - my ($self, $value) = @_; - state $time = 0; - - $value = 0 if !defined($value) || $value < 0; - $value = 100 if 100 < $value; - - $self->progressbar->setValue($value); - return if Time::HiRes::clock_gettime() - $time < 0.333; - $time = Time::HiRes::clock_gettime(); - - $self->flush(); -} - -#============================================================= - -=head2 DEMOLISH - -=head3 INPUT - - $val: boolean value indicating whether or not this method - was called as part of the global destruction process - (when the Perl interpreter exits) - -=head3 DESCRIPTION - - Moose provides a hook for object destruction with the - DEMOLISH method as it does for construtor with BUILD - -=cut - -#============================================================= -sub DEMOLISH { - my ($self, $val) = @_; - - $self->main_dialog->destroy if !$self->parent; -} - -# TODO cancel button cannot be easily managed in libyui polling events -# removed atm -# -# sub validate_cancel { -# my ($self, $cancel_msg, $cancel_cb) = @_; -# $self->{main_dialog}->startMultipleChanges(); -# if (!$self->{cancel}) { -# $self->{cancel} = $self->{factory}->createIconButton($self->{vbox},"",$cancel_msg); -# #gtkpack__( -# #$self->{vbox}, -# #$self->{hbox_cancel} = gtkpack__( -# #gtknew('HButtonBox'), -# #$self->{cancel} = gtknew('Button', text => $cancel_msg, clicked => \&$cancel_cb), -# #), -# #); -# } -# #$self->{cancel}->set_sensitive(1); -# #$self->{cancel}->show; -# $self->flush(); -# } -# -# sub invalidate_cancel { -# my ($self) = @_; -# $self->{cancel} and $self->{cancel}->setEnabled(0); -# } -# -# sub invalidate_cancel_forever { -# my ($self) = @_; -# #$self->{hbox_cancel} or return; -# #$self->{hbox_cancel}->destroy; -# # FIXME: temporary workaround that prevents -# # Gtk2::Label::set_text() set_text_internal() -> queue_resize() -> -# # size_allocate() call chain to mess up when ->shrink_topwindow() -# # has been called (#32613): -# #$self->shrink_topwindow; -# } - -1; |