diff options
author | Mageia SVN-Git Migration <svn-git-migration@mageia.org> | 2011-05-14 01:22:07 +0100 |
---|---|---|
committer | Mageia SVN-Git Migration <svn-git-migration@mageia.org> | 2011-05-14 01:22:07 +0100 |
commit | e0ada251ac68dc91192c7ec7d10f3a1d7784916a (patch) | |
tree | 225ed465e93c82ad37c2794144850635b395d594 /mdkapplet_gui.pm | |
parent | 5d4a18c95ac1ef5a657b5dcefd8a47e429d74058 (diff) | |
download | mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.gz mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.bz2 mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.xz mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.zip |
Synthesized commit during git-svn import combining previous Mandriva history with Mageia.2.77.22
This commit consitsts of the following subversion commits:
------------------------------------------------------------------------
r1310 | dmorgan | 2011-05-14 01:22:07 +0100 (Sat, 14 May 2011) | 1 line
Import cleaned mgaonline
------------------------------------------------------------------------
Diffstat (limited to 'mdkapplet_gui.pm')
-rw-r--r-- | mdkapplet_gui.pm | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/mdkapplet_gui.pm b/mdkapplet_gui.pm deleted file mode 100644 index 89da5d60..00000000 --- a/mdkapplet_gui.pm +++ /dev/null @@ -1,318 +0,0 @@ -package mdkapplet_gui; - -################################################################################ -# Mandriva Online # -# # -# Copyright (C) 2003-2010 Mandriva # -# # -# Daouda Lo # -# Thierry Vignaud <tvignaud at mandriva dot com> # -# # -# 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. # -################################################################################ - -use strict; -use feature 'state'; -use lib qw(/usr/lib/libDrakX); -use common; - -our @ISA = qw(Exporter); -our @EXPORT = qw( - @common - %local_config - $localdir - $localfile - $width - fill_n_run_portable_dialog - iso8601_date_to_locale - new_link_button - new_portable_dialog - setVar - ); - -our @EXPORT_OK = qw( - $powerpack_ad - run_ask_credentials_dialog - run_no_rights_dialog - open_ask_powerpack_dialog -); - -use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version -use ugtk2 qw(:all); -use mdkonline qw(); # you don't want to polute the namespace -use interactive; -use interactive::gtk; -use lib qw(/usr/lib/libDrakX/drakfirsttime); - -ugtk2::add_icon_path("/usr/share/mdkonline/pixmaps/"); - -our $localdir = "$ENV{HOME}/.MdkOnline"; -our $localfile = "$localdir/mdkonline"; - -#compatibility -mkdir_p($localdir) if !-d $localdir; --e "$ENV{HOME}/.mdkonline" and system("mv", "$ENV{HOME}/.mdkonline", $localfile); - -# make it work on 2008.X: -eval { interactive::gtk::add_padding(Gtk2::Label->new) }; -if ($@) { - *interactive::gtk::add_padding = sub { $_[0] }; -} - -our %local_config; -read_local_config(); - -our $width = 500; -our @common = ( - # explicitely wrap (for 2008.1): - line_wrap => 1, - # workaround infamous 6 years old gnome bug #101968: - width => $width - 50, -); - -# List of widgets advertising Powerpack -our $powerpack_ad = [ - gtknew('Label_Left', - text => N("Mandriva Powerpack brings you the best of Linux experience for desktop: stability and efficiency of open source solutions together with exclusive softwares and Mandriva official support."), - @common), - gtknew('HButtonBox', - layout => 'center', - children_tight => [ - new_link_button( - 'http://www2.mandriva.com/linux/features/', - N("Mandriva Linux Features") - ) - ]), - gtknew('Label_Left', - text => 'You can order now access for Powerpack', - ), - gtknew('HButtonBox', - layout => 'center', - children_tight => [ - new_link_button( - 'http://store.mandriva.com/pwp/', - N("Online subscription") - ) - ]), -]; - -sub new_portable_dialog { - my ($title) = @_; - ugtk2->new($title, width => $width + 20); -} - -sub fill_n_run_portable_dialog { - my ($w, $widgets) = @_; - - # use wizard button order (for both 2008.1 & 2009.0): - { - local $::isWizard = 1; - local $w->{pop_it} = 0; - local $::isInstall = 1; - my %children; - if ($::isEmbedded) { - my (@children_tight, $child); - @children_tight = @$widgets; - $child = pop @children_tight; - %children = ( - children => [ - (map { (0, $_) } @children_tight), - 1, gtknew('Label'), - 0, $child, - ] - ); - } else { - %children = (children_tight => $widgets); - } - - gtkadd($w->{window}, gtknew('VBox', %children)); - } - - $w->{ok}->grab_focus; - $w->main; -} - -sub new_link_button { - my ($url, $text) = @_; - my $link = Gtk2::LinkButton->new($url, $text); - $link->set_uri_hook(sub { - my (undef, $url) = @_; - run_program::raw({ detach => 1, setuid => get_parent_uid() }, 'www-browser', $url); - }); - $link; -} - -sub read_local_config() { - %local_config = getVarsFromSh($localfile); -} - -sub setVar { - my ($var, $st) = @_; - my %s = getVarsFromSh($localfile); - $s{$var} = $st; - setVarsInSh($localfile, \%s); - read_local_config(); -} - -sub iso8601_date_to_locale { - my ($date) = @_; - return $date if $date !~ /(\d\d\d\d)-?(\d\d)-?(\d\d)/; - require POSIX; - POSIX::strftime("%x", 0, 0, 0, $3, $2-1, $1-1900); -} - -# %options keys: -# -# 'top_extra': reference to a list of widgets to shown on top of dialog. -# -sub run_ask_credentials_dialog { - my ($title, $description, $callback, %options) = @_; - - my $w = new_portable_dialog($title); - my $password_text; - state $email_text; - my $password_w = gtknew('Entry'); - my $email_w = gtknew('Entry', text => $email_text); - my $ok_clicked; - - $password_w->set_visibility(0); - - $w->{ok_clicked} = sub { - $password_text = $password_w->get_text; - $email_text = $email_w->get_text; - $ok_clicked = 1; - Gtk2->main_quit; - }; - - my @widgets = ( - if_(!$::isEmbedded, mdkonline::get_banner($title)), - if_($options{top_extra}, - @{ $options{top_extra} }, - gtknew('HSeparator'), - ), - gtknew('Label_Left', - text => $description, - @common), - gtknew('HButtonBox', - layout => 'start', - children_tight => [ - interactive::gtk::add_padding( - new_link_button( - 'https://my.mandriva.com/info', - N("More information on your user account") - ) - ) - ]), - gtknew('Table', - col_spacings => 5, - row_spacings => 5, - children => [ [ N("Your email"), $email_w ], - [ N("Your password"), $password_w ] ]), - gtknew('HButtonBox', - layout => 'start', - children_tight => [ - interactive::gtk::add_padding( - new_link_button( - 'https://my.mandriva.com/reset/password/', - N("Forgotten password") - ) - ) - ]), - ugtk2::create_okcancel($w, N("Next"), N("Cancel")), - ); - - fill_n_run_portable_dialog($w, \@widgets); - - if ($ok_clicked) { - $ok_clicked = 0; - if ($email_text && $password_text) { - $callback->($email_text, $password_text); - } - else { - interactive->vnew->ask_warn( - N("Error"), - N("Password and email cannot be empty.") - ); - goto &run_ask_credentials_dialog; - } - } -} - -sub run_no_rights_dialog { - my ($title, $info, $info_url) = @_; - my $w = new_portable_dialog($title); - my @widgets = ( - mdkonline::get_banner($title), - gtknew('Label_Left', - text => $info, - @mdkapplet_gui::common), - gtknew('HButtonBox', - layout => 'start', - children_tight => [ - interactive::gtk::add_padding( - new_link_button($info_url, N("More Information")) - ) - ]), - create_okcancel($w, N("Close"), undef) - ); - fill_n_run_portable_dialog($w, \@widgets); -} - -# Returns a string of user's choice: 'powerpack' or 'free'. -sub open_ask_powerpack_dialog { - my ($current_product, $new_version) = @_; - - # Setup powerpack offering radio buttons... - - my @radio_widgets; - my $rbutton; - # pwp/flash users will be offered powerpack by default - my $want_powerpack = $current_product =~ /powerpack|flash/i; - for my $product ($want_powerpack - ? ('powerpack', 'free') : ('free', 'powerpack')) { - my $info = mdkonline::get_product_info($product); - $rbutton - = Gtk2::RadioButton->new_with_label($rbutton - ? $rbutton->get_group - : undef, - $info->{name}); - $rbutton->signal_connect('toggled', - sub { - my ($button, $is_pwp) = @_; - $want_powerpack = $is_pwp - unless not $button->get_active(); - }, - $product eq 'powerpack'); - push @radio_widgets, [ $rbutton, $info->{description} ]; - } - - # Setup dialog widgets... - - my $title = N("Choose your upgrade version"); - my $w = new_portable_dialog($title); - my @widgets - = (mdkonline::get_banner($current_product =~ /powerpack/i - ? N("Your Powerpack access has ended") - : $title), - gtknew('Label_Left', - text => N("%s is now available, you can upgrade to:", - $new_version), - @common), - gtknew('Table', children => \@radio_widgets, row_spacings => 10), - ugtk2::create_okcancel($w, N("Next"), N("Cancel")), - ); - - fill_n_run_portable_dialog($w, \@widgets) or return undef; - return $want_powerpack; -} |