
QNc           @   s  d  d l  Z  e  j d  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z d  d l m Z m Z m Z m Z d  d l m Z d  d l Z d  d l m Z e j   d   Z d e j j f d	     YZ d
 e j j  j! f d     YZ" d e f d     YZ# d e f d     YZ$ d e% f d     YZ& d e% f d     YZ' d e e f d     YZ( e) d k re(   Z* e# e*  Z+ e$ e*  Z, e j-   Z. xA e j/ d D]2 Z0 e. e0 j1 rOe. e0 j2   n e. e0 j3   q+We. j4 e+ e,  e j5   e j6 d  e, j7 d d  e* j8   j9 d d d g  e* j: d d d   e* j; d! g  d"  n  d S(#   iNs   2.0(   t
   run_apportt   apport_crash(   t   DistUpgradeViewt   FuzzyTimeToStrt   InstallProgresst   FetchProgress(   t   SimpleGtkbuilderApp(   t   gettextc         C   s   t  |  d  j d  S(   Nt   latin1s   utf-8(   t   unicodet   encode(   t   str(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   utf82   s    t   GtkCdromProgressAdapterc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   si    Report the cdrom add progress
        Subclass this class to implement cdrom add progress reporting
    c         C   s%   | j  |  _ | j |  _ | |  _ d  S(   N(   t   label_statust   statust   progressbar_cachet   progresst   parent(   t   selfR   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   __init__9   s    c         C   sW   | r |  j  j |  n  |  j j | t |  j   x t j   rR t j   q9 Wd S(   s;    update is called regularly so that the gui can be redrawn N(	   R   t   set_textR   t   set_fractiont   floatt
   totalStepst   gtkt   events_pendingt   main_iteration(   R   t   textt   step(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   update=   s
    c         C   s
   t  d f S(   Nt    (   t   False(   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   askCdromNameD   s    c         C   s   t  S(   N(   R    (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   changeCdromF   s    (   t   __name__t
   __module__t   __doc__R   R   R!   R"   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   5   s
   			t   GtkOpProgressc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d |  _ d  S(   Ng        (   t   progressbart   fraction(   R   R'   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   J   s    	c         C   sc   | d } t  |  j |  d k rB | |  _ |  j j |  j  n  x t j   r^ t j   qE Wd  S(   Ng      Y@g?(   t   absR(   R'   R   R   R   R   (   R   t   percentt   new_fraction(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   P   s    
	c         C   s   |  j  j d  d  S(   Nt    (   R'   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   done\   s    (   R#   R$   R   R   R-   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR&   I   s   		t   GtkFetchProgressAdapterc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sc   t  t |   j   | j |  _ | j |  _ | |  _ t |  _	 | j
 |  _ |  j j d |  j  d  S(   Nt   clicked(   t   superR.   R   R   R   R   R   R   R    t   canceledt   button_fetch_cancelt   button_cancelt   connectt   cancelClicked(   R   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   d   s    		c         C   s   t  j d  t |  _ d  S(   NR5   (   t   loggingt   debugt   TrueR1   (   R   t   widget(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR5   m   s    c      	   C   s   t  d  | | f } t j d |  j j d t j d t j d t j  } | j |  | j	   } | j
 d  | j   | t j k r t St S(   Ns&   Please insert '%s' into the drive '%s'R   t   flagst   typet   buttonsR   (   t   _R   t   MessageDialogR   t   window_maint   DIALOG_MODALt   MESSAGE_QUESTIONt   BUTTONS_OK_CANCELt
   set_markupt   runt	   set_titlet   destroyt   RESPONSE_OKR8   R    (   R   t   mediumt   drivet   msgt   dialogt   res(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   media_changep   s    		
c         C   sA   t  t |   j   |  j j d  |  j j   |  j j   d  S(   Ni    (   R0   R.   t   startR   R   R   t   showR3   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRN   ~   s    c         C   s7   |  j  j d  |  j j t d   |  j j   d  S(   NR,   s   Fetching is complete(   R   R   R   R=   R3   t   hide(   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   stop   s    c         C   s=  t  t |   j |  t |  j |  j j   d  d k r|  j j |  j d  |  j d } | |  j	 k r{ |  j	 } n  |  j
 d k r |  j j t d  | |  j	 t j |  j
  f  |  j j t d  t |  j   q|  j j t d  | |  j	 f  |  j j d  n  x t j   r4t j   qW|  j S(	   Ng      Y@g?i   i    s!   Fetching file %li of %li at %sB/ss   About %s remainings   Fetching file %li of %lis     (   R0   R.   t   pulseR)   R*   R   t   get_fractionR   t   current_itemst   total_itemst   current_cpsR   R   R=   t   apt_pkgt   size_to_strR   t   etaR   R   R   R1   (   R   t   ownert   currentItem(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRR      s$    &	(   R#   R$   R   R5   RM   RN   RQ   RR   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR.   `   s   						t   GtkInstallProgressAdapterc           B   sh   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   i   c         C   s|   t  j |   d  |  _ | j |  _ | j |  _ | j |  _ | j	 |  _
 |  j
 j d |  j  | |  _ t j j d d  d  S(   Ns   child-exiteds   DPkg::StopOnErrorR    (   R   R   t   Nonet   _cacheR   R   R   t   expander_terminalt   expandert   _termt   termR4   t   child_exitedR   RW   t   Configt   set(   R   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR      s    		c         C   s0  t  j |   t |  _ |  j j t d   |  j j d  |  j j d  |  j	 j
 t  |  j j   t j j d  p~ d } | d k r |  j r d |  j k s |  j d j r d } |  j	 j t  q n  d |  j d	 g |  _ t j j d  s|  j j d
 |  n  d |  _ d |  _ d |  _ d  S(   Ns   Applying changesg        R,   t   DEBIAN_FRONTENDt   gnomes   libgtk2-perlRK   s   VTE_PTY_KEEP_FD=%ss   APT_LISTCHANGES_FRONTEND=nones   DEBIAN_FRONTEND=%s(   R   t   start_updateR    t   finishedR   R   R=   R   R   R`   t   set_sensitiveR8   Rb   RO   t   ost   environt   getR^   t   is_installedt   set_expandedt   writefdt   envt   has_keyt   appendt
   start_timet   time_uit   last_activity(   R   t   frontend(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRh      s(    	
		c         C   s4  t  j |  | |  t j d | | f  t j d d  | k rF t S|  j j j |  j j	  t
 d  | } t
 d  | } d | | f } |  j j j   |  j j j d  |  j j j j t j j  |  j j j |  |  j j j   j t |   |  j j j   |  j j j   |  j j j   d  S(   Ns*   got an error from dpkg for pkg: '%s': '%s't   dpkgs*   dependency problems - leaving unconfigureds   Could not install '%s's   The upgrade will continue but the '%s' package may not be in a working state. Please consider submitting a bug report about it.s   <big><b>%s</b></big>

%sR   (   R   t   errorR6   R   t   dgettextR    R   t   dialog_errort   set_transient_forR?   R=   t   realizeRE   t   windowt   set_functionsR   t   gdkt	   FUNC_MOVEt   label_errorRC   t   textview_errort
   get_bufferR   R   t   scroll_errorRO   RD   RP   (   R   t   pkgt   errormsgt   summaryRJ   t   markup(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRy      s"    	c   
      C   s  t  j d |  t j   } t d  | } t d  } d | | f } |  j j j |  |  j j j d  |  j j j	 |  j j
  t j j |  s | d } n  t j j d  rd d | | g } t t j | d	 t j j   d
  } |  j j j   j |  n |  j j j   j t d   |  j j j   }	 |  j j j   |  j t j   | 7_ |	 t j k r|  j j d d  n |  j j d d  d  S(   Ns.   got a conffile-prompt from dpkg for file: '%s's/   Replace the customized configuration file
'%s'?st   You will lose any changes you have made to this configuration file if you choose to replace it with a newer version.s1   <span weight="bold" size="larger">%s </span> 

%sR   s
   .dpkg-dists   /usr/bin/diffs   -ut   stdouti    s    The 'diff' command was not founds   y
is   n
(   R6   R7   t   timeR=   R   t   label_conffileRC   t   dialog_conffileRE   R|   R?   Rk   t   patht   existsR   t
   subprocesst   Popent   PIPEt   communicatet   textview_conffileR   R   RD   RP   Ru   R   t   RESPONSE_YESRb   t
   feed_child(
   R   t   currentt   newRN   t   primt   secR   t   cmdt   diffRL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   conffile   s*    (c         C   sz   |  j  j d |  j  } | d k rv x@ |  j D]5 } | j d  \ } } | t j | <d t j d <q. Wd   t _ n  | S(   Nt   envvi    t   =t   1t   DPKG_UNTRANSLATED_MESSAGESc           S   s   t  S(   N(   R8   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   <lambda>  s    (   Rb   t   forkptyRq   t   splitRk   Rl   t   syst   exitfunc(   R   t   pidRq   t   keyt   value(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   fork  s    c         C   si  |  j  d k r! t j   |  _  n  t | |  j j   d  d k rw |  j j t |  d  |  j j | j	    n  | d k ret j   |  _
 t |  _ |  j
 |  j  } | |  j 8} t |  | } d | | } | d k r| d k  r|  j j t d	  t |   n |  j j d
  |  j j re|  j j j d  d k re|  j j j d |  qen  d  S(   Ng        g      Y@g?g      ?g     N@i<   i   i   s   About %s remainingR,   s   load-statuss   progress("%s")i  iQ i  (   Rt   R   R)   R   RS   R   R   R   R   t   stripRv   R    t   activity_timeout_reportedRu   R=   R   R   t   _webkit_viewt   get_propertyt   execute_script(   R   R   R*   R   t   deltat   time_per_percentRY   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   status_change  s$    #	#c         C   s   | j    |  _ t |  _ d  S(   N(   t   get_child_exit_statust
   apt_statusR8   Ri   (   R   Rb   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRc   /  s    c         C   s!   x |  j  s |  j   q W|  j S(   N(   Ri   t   update_interfaceR   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt
   wait_child4  s    c         C   s   |  j  j d  d  S(   NR   (   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   finish_update9  s    c         C   s   t  j |   |  j d k r9 |  j j   t j d  n  |  j d k r |  j |  j t j   k  r |  j	 s t
 j d |  j |  j j   f  t |  _	 n  |  j j j t  n  x t j   r t j   q Wt j d  d  S(   Ng        g?i    s+   no activity on terminal for %s seconds (%s)g{Gz?(   R   R   Rt   R   RR   R   t   sleepRv   t   TIMEOUT_TERMINAL_ACTIVITYR   R6   t   warningR   t   get_textR8   R   R_   Ro   R   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   <  s    	#(   R#   R$   R   R   Rh   Ry   R   R   R   Rc   R   R   R   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR\      s   				!					t   DistUpgradeVteTerminalc           B   s   e  Z d    Z e d  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   Rb   R   (   R   R   Rb   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   O  s    	c            s     f d   }   j  j     j  j d |    j j j t  | t k rd   j j j t  n  t   _	   j  j
 d | d d |  } | d k  r d  Sx7   j	 s x t j   r t j   q Wt j d  q W  `	 d  S(   Nc            s   t    _ d  S(   N(   R8   Ri   (   R9   (   R   (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   wait_for_childS  s    s   child-exitedt   commandi    t   argvg?(   Rb   RO   R4   R   R_   Rj   R8   R    Ro   Ri   t   fork_commandR   R   R   R   R   (   R   R   t   hiddenR   R   (    (   R   sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   callR  s    	(   R#   R$   R   R    R   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   N  s   	t   HtmlViewc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   t   webkit_view(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   g  s    c         C   s7   |  j  s d  S|  j  j |  |  j  j d |  j  d  S(   Ns   load-finished(   R   t   openR4   t   _on_load_finished(   R   t   url(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   i  s    	c         C   s   |  j  j   d  S(   N(   R   RO   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRO   n  s    c         C   s   |  j  j   d  S(   N(   R   RP   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRP   p  s    c         C   s   | j    d  S(   N(   RO   (   R   t   viewt   frame(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   r  s    (   R#   R$   R   R   RO   RP   R   (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   f  s
   				t   DistUpgradeViewGtkc           B   s   e  Z d  Z d d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d d  Z d d  Z d e d  Z d d  Z d   Z d   Z e d  Z d   Z RS(   s&    gtk frontend of the distUpgrade tool c         C   s>  t  j |   | |  _ | sF t j j t j   d  } t j   } n d } t j j | d  } t j   y! t	 j
 d |  t j d  Wn$ t k
 r } t j d |  n Xt j   } y  t j | j d d d   Wn' t j k
 r} t j d |  n Xt j |  | d	 d  |  j   d |  _ t j   |  _ t j j d
  |  _ y& t j j d  |  _ |  j j   Wn' t j k
 r} t j d |  n Xy2 d d  l } | j    |  _! |  j" j# |  j!  Wn t j$ d  d  |  _! n X|  j& j'   |  j& j( j) t j j*  t+ |  j,  |  _- t. |   |  _/ t0 |   |  _1 t2 |   |  _3 t j4 t j5  |  _6 t j7 d  } t j8   }	 | j9 |	 t:  | j; |	 d d  |  j< j= |  |  j6 j> d t j?  |  j< j@ |  j6  tA jB   }
 tA jC tA jD d d  } |
 jE |  |  jF jG d |
  |  jH tI _J d  S(   Nt   mos   /usr/share/locale/t
   gtkbuilders   update-managers   Error setting locales (%s)i    i    s)   error setting default icon, ignoring (%s)s   /DistUpgrade.uit   pngt   svgs   svg pixbuf loader failed (%s)is   html widgetR   R   t
   attributes(K   R   R   t   logdirRk   R   t   joint   getcwdR   t
   init_checkt   localet   bindtextdomainR   t
   textdomaint	   ExceptionR6   R   t   icon_theme_get_defaultt   window_set_default_icont	   load_icont   gobjectt   GErrorR7   R   t   create_terminalt	   prev_stept	   iconthemeR   t   PixbufLoadert	   pngloadert	   svgloadert   closet   webkitt   WebViewR   t	   vbox_maint   pack_endt	   exceptionR]   R?   R}   R~   R   R   R&   R   t   _opCacheProgressR.   t   _fetchProgressR   t   _cdromProgressR\   t   _installProgresst	   TreeStoret   TYPE_STRINGt   details_listt   TreeViewColumnt   CellRendererTextt
   pack_startR8   t   add_attributet   treeview_detailst   append_columnt   set_sort_column_idt   SORT_ASCENDINGt	   set_modelt   pangot   AttrListt	   AttrScalet   SCALE_SMALLt   insertR   t   set_propertyt   _handleExceptionR   t
   excepthook(   R   t   datadirR   t	   localedirt   gladedirt   et   iconsR   t   columnt   rendert   attrlistt   attr(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   w  st    	
 	
	c         C   s   d d  l  } | j | | |  } t j d d j |   t | | |  t   s |  j t d  t d  d j |   n  t j	 d  d  S(   Nis   not handled expection:
%ss   
s   A fatal error occurreds   Please report this as a bug (if you haven't already) and include the files /var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in your report. The upgrade has aborted.
Your original sources.list was saved in /etc/apt/sources.list.distUpgrade.i   (
   t	   tracebackt   format_exceptionR6   Ry   R   R   R    R=   R   t   exit(   R   R;   R   t   tbR
  t   lines(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR     s    		c         C   s   t  |  |  j  S(   N(   R   Ra   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getTerminal  s    c         C   s   t  |  j  S(   N(   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getHtmlView  s    c         C   sm   t  | j  d k ri t | j  d k ri t d  } t d  } |  j | |  } t j d |  | St S(   Ni   i   s   Ctrl-c pressedsk   This will abort the operation and may leave the system in a broken state. Are you sure you want to do that?s5   ctrl-c press detected, user decided to pass it on: %s(   t   lent   stringt   ordR=   t   askYesNoQuestionR6   R   R    (   R   R9   t   keyevR   RJ   RL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   _key_press_handler  s    *	c         C   s  t  j   |  _ |  j j d |  j  |  j j d  |  j j d |  j  g  |  _ |  j j	 |  j  |  j j
   t j   |  _ |  j j   |  j j	 |  j  |  j j |  j j    y( t t j j |  j d  d  |  _ Wn t k
 rt j |  _ n X|  j S(   s!    helper to create a vte terminal s   key-press-events   monospace 10s   contents-changeds   term.logt   w(   t   vtet   TerminalRa   R4   R  t   set_font_from_stringt   _term_content_changedt   _terminal_linest   hbox_customR   R}   R   t
   VScrollbart   vscrollbar_terminalRO   t   set_adjustmentt   get_adjustmentR   Rk   R   R   R   t   _terminal_logR   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR     s     	(c         C   s   |  j  j d    } g  } x| | j d  D]k } | j |  | |  j k r+ |  j j | d  y |  j j   Wq t k
 r t	 j
 d  q Xq+ q+ W| |  _ d S(   s8    called when the *visible* part of the terminal changes c         S   s   t  S(   N(   R8   (   t   at   bt   ct   d(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR     s    s   
s   flush()N(   Ra   R   R   Rs   R  R"  t   writet   flusht   IOErrorR6   R   (   R   Rb   t   current_textt	   new_linest   line(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR    s    c         C   s   |  j  S(   N(   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getFetchProgress  s    c         C   s   | |  j  _ |  j  S(   N(   R   R^   (   R   t   cache(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getInstallProgress  s    c         C   s   |  j  S(   N(   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getOpCacheProgress  s    c         C   s   |  j  S(   N(   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   getCdromProgress  s    c         C   s   |  j  j d |  d  S(   Ns   %s(   R   R   (   R   RJ   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   updateStatus  s    c         C   s>   t  |  d |  } t  |  d |  } | j   | j   d  S(   Ns   image_step%is   label_step%i(   t   getattrRP   (   R   R   t   imaget   label(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   hideStep  s    
c         C   s>   t  |  d |  } t  |  d |  } | j   | j   d  S(   Ns   image_step%is   label_step%i(   R3  RO   (   R   R   R4  R5  (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   showStep  s    
c         C   sr   t  j } |  j } | d k rn t |  d |  } t |  d |  } | j t  j |  | j   | j   n  d  S(   Ni    s   image_step%is   arrow_step%i(   R   t   ICON_SIZE_MENUR   R3  t   set_from_stockt   STOCK_CANCELRO   RP   (   R   t   sizeR   R4  t   arrow(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   abort$  s    		
c         C   s[  |  j  j   r t j d  n  t j } t j   } |  j r t	 |  d |  j  } t	 |  d |  j  } t	 |  d |  j  } | j
 d |  | j t j |  | j   | j   n  | |  _ t	 |  d |  } t	 |  d |  } t	 |  d |  } | j d  sd  S| j   | j   t j t j d d  } | j |  | j
 d |  d  S(	   Ns   icon theme changed, re-readings   image_step%is   label_step%is   arrow_step%iR   t   visiblei    i(   R   t   rescan_if_neededR6   R7   R   R8  R   R   R   R3  R   R9  t   STOCK_APPLYRO   RP   R   t
   AttrWeightt   WEIGHT_BOLDR   (   R   R   R;  R  R4  R5  R<  R	  (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   setStep-  s.    		
	

c         C   s   |  j  j d  |  j  j |  j  d | | f } |  j j |  | d  k r{ |  j j   } | j	 |  |  j
 j   n |  j
 j   |  j  j   |  j  j j t j j  |  j  j   |  j  j   x t j   r t j   q Wd  S(   NR   s   <big><b>%s</b></big>

%s(   t   dialog_informationRE   R|   R?   t   label_informationRC   R]   t   textview_informationR   R   t   scroll_informationRO   RP   R}   R~   R   R   R   R   RD   R   R   (   R   R   RJ   t   extended_msgt   buffer(    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   informationI  s    c         C   s   |  j  j d  |  j  j |  j  d | | f } |  j j |  | d  k r{ |  j j   } | j	 |  |  j
 j   n |  j
 j   |  j  j   |  j  j j t j j  |  j  j   |  j  j   t S(   NR   s   <big><b>%s</b></big>

%s(   R{   RE   R|   R?   R   RC   R]   R   R   R   R   RO   RP   R}   R~   R   R   R   R   RD   R    (   R   R   RJ   RH  RI  (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRy   [  s    c         C   s7  t  j |  | | | |  s t S|  j d t d  7_ | d  k r |  j j t  |  j j t	  |  j j
 | d  |  j j
 | d  n  |  j j d |  |  j j |  j  |  j j   x t d  |  j f t d  |  j f t d  |  j f t d	  |  j f t d
  |  j f t d  |  j f f D]w \ } } | r6|  j j d  | t |  g  }	 x@ | D]5 }
 |  j j |	 d |
 j t j |
 j  f g  qqWq6q6W|  j j   |  j j |  j   |  j j! d  |  j j" j# t$ j% j& t$ j% j' B |  j j(   } |  j j)   | t$ j* k r3t	 St S(   Ns   

<b>%s</b>s?   To prevent data loss close all open applications and documents.i    i   s   <big><b>%s</b></big>s%   No longer supported by Canonical (%s)s   <b>Downgrade (%s)</b>s   Remove (%s)s   No longer needed (%s)s   Install (%s)s   Upgrade (%s)s   <b>%s</b> - %sR   (+   R   t   confirmChangesR    t   confirmChangesMessageR=   R]   t   button_cancel_changest   set_use_stockt   set_use_underlineR8   t	   set_labelt   button_confirm_changest   label_summaryRC   t   label_changesR   t   cleart	   demotionst   toDowngradet   toRemovet   toRemoveAutot	   toInstallt	   toUpgradeRs   R  t   namet   glibt   markup_escape_textR   t   dialog_changesR}   R|   R?   RE   R~   R   R   R   R   t   FUNC_RESIZERD   RP   R   (   R   R   t   changesRU  t   downloadSizet   actionst   removal_boldt   parent_textR   t   nodeR   RL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyRK  m  sH    
"+t   Noc      	   C   s   d | | f } t  j d |  j d t  j d t  j d t  j  } | j d  | d k rl | j t  j  n | j t  j	  | j
 |  | j   } | j   | t  j	 k r t St S(   Ns   <big><b>%s</b></big>

%sR   R:   R;   R<   R   Rf  (   R   R>   R?   R@   RA   t   BUTTONS_YES_NORE   t   set_default_responset   RESPONSE_NOR   RC   RD   RF   R8   R    (   R   R   RJ   t   defaultRK   RL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR    s    		
c         C   s|   |  j  j |  j  |  j  j d  |  j  j   |  j  j j t j j	  |  j  j
   } |  j  j   | t j k rx t St S(   NR   (   t   dialog_restartR|   R?   RE   R}   R~   R   R   R   R   RD   RP   R   R8   R    (   R   RL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   confirmRestart  s    c         C   s!   x t  j   r t  j   q Wd  S(   N(   R   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   processEvents  s    c         C   s*   |  j  j   | r& |  j  j d  n  d  S(   Ng      ?(   R   RR   R   (   R   Ri   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   pulseProgress  s    c         C   s   |  j  j |  j  |  j  j d  |  j  j   |  j  j j t j j	  |  j  j
   } |  j  j   | t j k r t j d  n  t S(   NR   i   (   t   dialog_cancelR|   R?   RE   R}   R~   R   R   R   R   RD   RP   t   RESPONSE_CANCELR   R  R8   (   R   R9   t   eventRL   (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   on_window_main_delete_event  s    N(   R#   R$   R%   R]   R   R   R  R  R  R   R  R-  R/  R0  R1  R2  R6  R7  R=  RC  RJ  Ry   R8   RK  R  Rl  Rm  R    Rn  Rr  (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyR   u  s2   L																/		t   __main__i   i    t   TODOs   TODO~Rx   s   --configures   -at   shortt   longs  asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
t   xxid   (<   t   pygtkt   requireR\  R   t   gtk.gdkR  R   R   R   R   R6   R   R   t   aptRW   Rk   t   DistUpgradeApportR    R   R   R   R   R   R   R   t   DistUpgradeGettextR=   t   threads_initR   R   t   CdromProgressR   t   baset
   OpProgressR&   R.   R\   t   objectR   R   R   R#   R   t   fpt   ipt   CacheR.  R   R   Rn   t   mark_deletet   mark_installt   committ   mainR  R   R  R   Ry   RK  (    (    (    sB   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeViewGtk.pyt   <module>   s^   "
	? Z	
