
    f                     j   d dl Z dZ	  e j        dd           d dlmZ dZn8# e$ r0  e j        dd           d dlmZ ej        j        ej        _        Y nw xY wd dlm	Z	 d d	lm
Z
 d d
lmZ d dlmZ d dlm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 m!Z" ddl#m$Z$ d dl%Z%ddl&m%Z'  G d dej(        j)        j*                  Z+ G d dej(        j)        j,                  Z- G d de          Z. G d de          Z/ G d de0          Z1 G d de0          Z2 G d  d!ee$          Z3e4d"k    r_ e3            Z5 e.e5          Z6 e/e5          Z7e58                                9                    g d#            e	j:                      ej;        d             ej<                    Z=ej>        dd         D ]DZ?e=e?         j@        re=e?         A                                 *e=e?         B                                 Ee=C                    e6e7            e	j:                     e7D                    d$d%           e58                                9                    g d#           e5E                    d&d'd(           e5F                    d)g d*           dS dS )+    NFVtez2.91)r   Tz2.90)Gtk)Gdk)GLib)GObject)Pango   )
run_apportapport_crash)DistUpgradeViewFuzzyTimeToStrInstallProgressAcquireProgress)DistUpgradeConfig)get)SimpleGtkbuilderApp)gettextc                   *    e Zd ZdZd Zd Zd Zd ZdS )GtkCdromProgressAdapterzi Report the cdrom add progress
        Subclass this class to implement cdrom add progress reporting
    c                 D    |j         | _        |j        | _        || _        d S N)label_statusstatusprogressbar_cacheprogressparentselfr   s     R/home/let_prod/public_html/lightetech2/upgrader/DistUpgrade/DistUpgradeViewGtk3.py__init__z GtkCdromProgressAdapter.__init__D   s!    )0    c                    |r| j                             |           | j                            |j        t          | j                  z             t          j                    r(t          j	                     t          j                    &dS dS )z; update is called regularly so that the gui can be redrawn N)
r   set_textr   set_fractionvaluefloat
totalStepsr   events_pendingmain_iteration)r   textsteps      r   updatezGtkCdromProgressAdapter.updateH   s     	'K  &&&""4:eDO.D.D#DEEE "" 	!     "" 	! 	! 	! 	! 	!r!   c                     dS )N)F  r   s    r   ask_cdrom_namez&GtkCdromProgressAdapter.ask_cdrom_nameO   s    {r!   c                     dS )NFr/   r0   s    r   change_cdromz$GtkCdromProgressAdapter.change_cdromQ   s    ur!   N)__name__
__module____qualname____doc__r    r,   r1   r3   r/   r!   r   r   r   @   sZ           ! ! !      r!   r   c                   ,     e Zd Zd Zd fd	Zd Z xZS )GtkOpProgressc                 "    || _         d| _        d S )N        )progressbarfraction)r   r<   s     r   r    zGtkOpProgress.__init__V   s    & r!   Nc                 d   t          t          |                               |           | j        dz  }t	          | j        |z
            dk    r&|| _        | j                            | j                   t          j	                    r(t          j
                     t          j	                    &d S d S )N      Y@皙?)superr9   r,   percentabsr=   r<   r$   r   r(   r)   )r   rB   new_fraction	__class__s      r   r,   zGtkOpProgress.update\   s    mT""))'222
 |E)t}\)**S00(DM))$-888 "" 	!     "" 	! 	! 	! 	! 	!r!   c                 :    | j                             d           d S )N )r<   r#   r0   s    r   donezGtkOpProgress.donei   s    !!#&&&&&r!   r   )r4   r5   r6   r    r,   rH   __classcell__rE   s   @r   r9   r9   U   s[          ! ! ! ! ! !' ' ' ' ' ' 'r!   r9   c                   D     e Zd Z fdZd Zd Z fdZd Z fdZ xZ	S )GtkAcquireProgressAdapterc                     t          t          |                                            |j        | _        |j        | _        || _        d| _        |j	        | _
        | j
                            d| j                   d S )NFclicked)rA   rL   r    r   r   r   r   r   canceledbutton_fetch_cancelbutton_cancelconnectcancelClicked)r   r   rE   s     r   r    z"GtkAcquireProgressAdapter.__init__q   so    '..77999)0#7""9d.@AAAAAr!   c                 <    t          j        d           d| _        d S )NrS   T)loggingdebugrO   )r   widgets     r   rS   z'GtkAcquireProgressAdapter.cancelClickedz   s    o&&&r!   c                    t          d          ||fz  }t          j        | j        j        t          j        j        t          j        j        t          j	        j
                  }|                    |           |                                }|                    d           |                                 |t          j        j        k    rdS dS )Nz&Please insert '%s' into the drive '%s'r   flagstypebuttonsr.   TF)_r   MessageDialogr   window_mainDialogFlagsMODALMessageTypeQUESTIONButtonsType	OK_CANCEL
set_markuprun	set_titledestroyResponseTypeOK)r   mediumdrivemsgdialogress         r   media_changez&GtkAcquireProgressAdapter.media_change}   s    899VENJ"$+*A),)>(+(@+.?+DF F F 	#jjll#"%%%4ur!   c                     t          t          |                                            | j                            d           | j                                         | j                                         d S )Nr   )rA   rL   startr   r$   r   showrQ   )r   rE   s    r   rs   zGtkAcquireProgressAdapter.start   se    '..44666""1%%%!!!!!r!   c                     | j                             d           | j                            t          d                     | j                                         d S )NrG   zFetching is complete)r   r#   r   r]   rQ   hider0   s    r   stopzGtkAcquireProgressAdapter.stop   sR    s###Q566777!!!!!r!   c                    t          t          |                               |           t          | j        | j                                        dz  z
            dk    rW| j                            | j        dz             | j        dz   }|| j	        k    r| j	        }| j
        dk    rt          j        | j
                  }t          |t                    r&|                    t!          j                              }| j                            t)          d          || j	        |fz             | j                            t)          d          t+          | j                  z             nK| j                            t)          d          || j	        fz             | j                            d           t/          j                    r&t/          j                     t/          j                    &| j         S )	Nr?   r@   r	   r   z!Fetching file %li of %li at %sB/sAbout %s remainingzFetching file %li of %liz  )rA   rL   pulserC   rB   r   get_fractionr$   current_itemstotal_itemscurrent_cpsapt_pkgsize_to_str
isinstancebytesdecodelocalegetpreferredencodingr   r#   r]   r   etar   r(   r)   rO   )r   ownercurrentItemr~   rE   s       r   rz   zGtkAcquireProgressAdapter.pulse   s   '..44U;;;t|DM6688>>??#EEM&&t|E'9:::,q0KT---".!##%1$2BCCk511 7"-"4"4355#7 #7K$$Q'J%K%K!1;O@ &@ A A A&&q)='>'>HB B (     $$Q'A%B%B!1F3 &3 4 4 4&&t,,, "" 	!     "" 	!M!"r!   )
r4   r5   r6   r    rS   rq   rs   rw   rz   rI   rJ   s   @r   rL   rL   m   s        B B B B B    " " " " "" " "
# # # # # # # # #r!   rL   c                   V    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
dd
Zd Zd Zd Zd	S )GtkInstallProgressAdapteri,  c                 *   t          j        |            d | _        |j        | _        |j        | _        |j        | _        |j        | _	        | j	        
                    d| j                   || _        t          j                            dd           d S )Nchild-exitedzDPkg::StopOnErrorFalse)r   r    _cacher   r   r   expander_terminalexpander_termtermrR   child_exitedr   r   configsetr   s     r   r    z"GtkInstallProgressAdapter.__init__   s     &&&"/00L		.$*;<<< 	.w77777r!   c                    t          j        |            d| _        | j                            t          d                     | j                            d           | j                            d           | j        	                    d           | j
                                         | j
                            d| j                   t          j                            d          pd}|dk    r>| j        r7d	| j        vs| j        d	         j        sd
}| j                            d           d| j        z  dg| _        dt          j        vr| j                            d|z             d| _        d| _        d| _        d S )NFzApplying changesr;   rG   Tzcontents-changedDEBIAN_FRONTENDgnomezlibgtk3-perlro   zVTE_PTY_KEEP_FD=%szAPT_LISTCHANGES_FRONTEND=nonezDEBIAN_FRONTEND=%s)r   start_updatefinishedr   r#   r]   r   r$   r   set_sensitiver   rt   rR   _on_term_content_changedosenvironr   r   is_installedset_expandedwritefdenvappend
start_timetime_uilast_activity)r   frontends     r   r   z&GtkInstallProgressAdapter.start_update   sj   $T*** 	""1%7#8#8999""3'''s#####D)))		,d.KLLL*..!233>ww4;"dk11K/< 2#**4000($,635BJ..HOO08;<<< r!   c                    t          j        | ||           t          j        d|d|d           t          j        dd          |v rdS | j        j                            | j        j                   t          d          |z  }t          d          |z  }d	|d
|}| j        j        
                                 | j        j                            d           | j        j                                                            t          j        j                   | j        j                            |           | j        j                                                            |           | j        j                                         | j        j                                         | j        j                                         d S )Nz!got an error from dpkg for pkg: 'z': ''dpkgz*dependency problems - leaving unconfiguredFzCould not install '%s'zThe upgrade will continue but the '%s' package may not be in a working state. Please consider submitting a bug report about it.<big><b></b></big>

r.   )r   errorrU   r   dgettextr   dialog_errorset_transient_forr_   r]   realizerh   
get_windowset_functionsr   
WMFunctionMOVElabel_errorrf   textview_error
get_bufferr#   scroll_errorrt   rg   rv   )r   pkgerrormsgsummaryrn   markups         r   r   zGtkInstallProgressAdapter.error   s   dC222ccc888TUUUF$PQQU]]]5 	 224;3JKKK,--3 ' ( (*-. 07ww< ((*** **2... ++--;;CN<OPPP**6222"--//88BBB %%''' $$&&& %%'''''r!   c                    t          j        d|z             t          j                    }t          d          |z  }t          d          }d|d|}| j        j                            |           | j        j                            d           | j        j        	                    | j        j
                   t          j                            |          s|dz   }t          j                            d          rdd	||g}t          j        |t          j        
                                          d         }|                    dd          }| j        j                                                            |           n>| j        j                                                            t          d                     | j        j                                        }	| j        j                                         | xj        t          j                    |z
  z  c_        |	t2          j        j        k    rd}
nd}
	 | j                            |
                    d                     d S #  | j                            |
d           Y d S xY w)Nz.got a conffile-prompt from dpkg for file: '%s'z/Replace the customized configuration file
'%s'?ztYou will lose any changes you have made to this configuration file if you choose to replace it with a newer version.z"<span weight="bold" size="larger">z </span> 

r.   z
.dpkg-distz/usr/bin/diffz-u)stdoutr   zUTF-8replacez The 'diff' command was not foundzy
zn
zutf-8)rU   rV   timer]   r   label_conffilerf   dialog_conffilerh   r   r_   r   pathexists
subprocessPopenPIPEcommunicater   textview_conffiler   r#   rg   rv   r   r   rj   YESr   
feed_childencode)r   currentnewrs   primsecr   cmddiffrp   responses              r   conffilez"GtkInstallProgressAdapter.conffile   sN   FPQQQ	CDDwN # $ $ OSddTWTWX"--f555#--b111#55dk6MNNN w~~g&& 	+l*G 7>>/** 	g"D'37C#JO- - --8[]]1>D;;w	22DK)4466??EEEEK)4466??Bd@e@efffk)--//#((***	e++#"&&&HHH	/I  !9!9:::::	/I  2......s   =-I, ,Jc                    t           j                            t           j        j                  }t          j                    }|dk    rU| j        D ])}|                    d          \  }}|t
          j	        |<   *|
                                 dt
          j	        d<   n4| j                            |           | j                            |           |S )Nr   =1DPKG_UNTRANSLATED_MESSAGES)r   Ptynew_syncPtyFlagsDEFAULTr   forkr   splitr   child_setupr   set_ptywatch_child)r   ptypidr   keyr%   s         r   r   zGtkInstallProgressAdapter.fork  s    gs|344gii!88x ( ("yy~~e"'
3OO 8;BJ344Ic"""I!!#&&&
r!   c                 D    t          j                     | _        d| _        dS )z helper function that is called when the terminal changed
            to ensure that we have a accurate idea when something hangs
        FN)r   r   activity_timeout_reported)r   r   s     r   r   z2GtkInstallProgressAdapter._on_term_content_changed.  s      "Y[[).&&&r!   c                 4   | j         dk    rt          j                    | _         t          || j                                        dz  z
            dk    rV| j                            t          |          dz             | j                            |	                                           |dk    r| j
        | j         z
  }|| j        z  }t          |          |z  }d|z
  |z  }|dk    r>|dk     r8| j                            t          d          t          |          z             n| j                            d           | j        j        rI| j        j                            d	          d
k    r(| j        j                            d|z             d S d S d S d S )Nr;   r?   r@         ?g     N@i  ry   rG   zload-status   zprogress("%s"))r   r   rC   r   r{   r$   r&   r   r#   stripr   r   r]   r   r   _webkit_viewget_propertyexecute_script)r   r   rB   r   deltatime_per_percentr   s          r   status_changez'GtkInstallProgressAdapter.status_change5  s   ?c!!"ikkDOwt}1133E99::S@@M&&uW~~e';<<<&&v||~~666S==&8ET\!E %eW 47?&66CTzzcZ00&&q)='>'>PSATAT'TUUUU&&s+++( T(55mDDII(778H78RSSSSS =T TIIr!   Nc                 Z    ||                                 | _        n|| _        d| _        d S NT)get_child_exit_status
apt_statusr   )r   r   r   s      r   r   z&GtkInstallProgressAdapter.child_exitedO  s.    >"88::DOO%DOr!   c                 T    | j         s|                                  | j         | j        S r   )r   update_interfacer   r0   s    r   
wait_childz$GtkInstallProgressAdapter.wait_childX  s2    - 	$!!### - 	$r!   c                 :    | j                             d           d S )Nr.   r   r#   r0   s    r   finish_updatez'GtkInstallProgressAdapter.finish_update]  s    ""2&&&&&r!   c                 ^   t          j        |            | j        dk    r-| j                                         t          j        d           | j        dk    r| j        | j        z   t          j                    k     rd| j	        s>t          j        d| j        d| j                                        d           d| _	        | j        j                            d           t#          j                    r&t#          j                     t#          j                    &t          j        d           d S )	Nr;   g?r   zno activity on terminal for z
 seconds ()Tg{Gz?)r   r   r   r   rz   r   sleepr   TIMEOUT_TERMINAL_ACTIVITYr   rU   warningr   get_textr   r   r   r   r(   r)   r0   s    r   r   z*GtkInstallProgressAdapter.update_interface`  s?   (...?c!!M!!!JsOOO!!!??49;;NN1 6QUQoQoQoqu  rC  rL  rL  rN  rN  rN  rN  !O  P  P  P15.K)66t<<< "" 	!     "" 	!
4r!   r   )r4   r5   r6   r   r    r   r   r   r   r   r   r   r   r   r   r/   r!   r   r   r      s         !$8 8 8! ! !8( ( (.%/ %/ %/N  $/ / /T T T4     
' ' '    r!   r   c                       e Zd Zd ZddZdS )DistUpgradeVteTerminalc                 "    || _         || _        d S r   )r   r   )r   r   r   s      r   r    zDistUpgradeVteTerminal.__init__t  s    	r!   Fc           
          t           r fd}n fd} j                                          j                            d|            j        j                            d           |dk    r j        j                            d           d _        t           r4 j        	                    t          j        j        d|d dd d d           \  }}n2 j                            t          j        j        d|d dd d           \  }}|r|dk     rd S  j        sTt          j                    r&t          j                     t          j                    &t#          j        d            j        T `d S )	Nc                     d_         d S r   r   )terminalr   r   s     r   wait_for_childz3DistUpgradeVteTerminal.call.<locals>.wait_for_childy      "r!   c                     d_         d S r   r  )rW   r   s    r   r
  z3DistUpgradeVteTerminal.call.<locals>.wait_for_child}  r  r!   r   TF/r   r@   )vte291r   rt   rR   r   r   r   r   r   
spawn_syncr   r   r   fork_command_fullr   r(   r)   r   r   )r   r   hiddenr
  successr   s   `     r   callzDistUpgradeVteTerminal.callw  s    	## # # # # ## # # # # 			..999%33D9995==K)66t<<< 	!Y11$	 	NWcc "Y88$ NWc  	#''F- 	$&& %"$$$ $&& %JsOOO - 	 MMMr!   NF)r4   r5   r6   r    r  r/   r!   r   r  r  s  s7          + + + + + +r!   r  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )HtmlViewc                     || _         d S r   )r   )r   webkit_views     r   r    zHtmlView.__init__  s    'r!   c                 8   | j         sd S 	 ddlm} |sJ | j                             |           | j                             d| j                   d S # t          $ r> | j                             |           | j                             d| j                   Y d S w xY w)Nr   WebKit2zload-changedzload-finished)	r   gi.repositoryr  load_urirR   _on_load_changedImportErroropen_on_load_finished)r   urlr  s      r   r   zHtmlView.open  s      	F	O------NNN&&s+++%%nd6KLLLLL 	O 	O 	O""3'''%%ot7MNNNNNN	Os   AA ABBc                 8    | j                                          d S r   )r   rt   r0   s    r   rt   zHtmlView.show           r!   c                 8    | j                                          d S r   )r   rv   r0   s    r   rv   zHtmlView.hide  r$  r!   c                 .    |                                  d S r   )rt   )r   viewframes      r   r!  zHtmlView._on_load_finished  s    		r!   c                 ^    ddl m} ||j        j        k    r|                                 d S d S )Nr   r  )r  r  	LoadEventLOAD_FINISHEDrt   )r   r'  eventdatar  s        r   r  zHtmlView._on_load_changed  s>    ))))))G%333IIKKKKK 43r!   N)	r4   r5   r6   r    r   rt   rv   r!  r  r/   r!   r   r  r    sq        ( ( (
O 
O 
O! ! !! ! !      r!   r  c                        e Zd ZdZ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 fdZd dZd dZ	 d!dZd"dZd#dZd Zd Zd$dZd Z xZS )%DistUpgradeViewGtk3z& gtk frontend of the distUpgrade tool Nc                 .	    t          j                    | _        |r|dk    rjt          j                            t          j                    d          }t          j                    }t          t          j                               _        n6d}t          j                            |d          }t          |           _        t          j
        t          j                   t                                          d           	 t          j        d|           t#          j        d           n.# t&          $ r!}t)          j        d|z             Y d }~nd }~ww xY wt-          j         |dz   d           t          j                                        }	  j                            |                    d	d
d                     n3# t8          j        $ r!}t)          j        d|z             Y d }~nd }~ww xY w j                            dd          }tA          j!                    "                    |          } j#        $                                }	|	%                    d|          }	 j#        &                    |	            '                                 d  _(        t          j                                         _)        d  _*         j        +                                  j        ,                                -                    t\          j/        j0                   tc           j2                   _3        ti                      _5        tm                      _7        tq                      _9        t          j:        t8          j;                   _<        t          j=        d          }
t          j>                    }|
?                    |d           |
@                    |dd            jA        B                    |
            j<        C                    dt          jD        jE                    jA        F                     j<                    jG        H                    d            fd} jI        J                    d|            jK        t          _L        d S )N.moz/usr/share/locale/
gtkbuilderGTKzubuntu-release-upgraderzError setting locales (%s)z/DistUpgrade.uizsystem-software-update    r   z)error setting default icon, ignoring (%s)SourcesTo%sr.   Tr   Fc                 p    j                                         }j                            |            d S r   )expander_detailsget_expandeddialog_changesset_resizable)wexpandedr   s     r   
_activatedz0DistUpgradeViewGtk3.__init__.<locals>._activated  s6    ,99;;H--(l;;;;;r!   activate)Mr   r    logdirr   r   joingetcwdr   r   r   
init_checksysargvget_telemetryset_updater_typer   bindtextdomainr   
textdomain	ExceptionrU   r  r   	IconThemeget_defaultr_   set_default_icon	load_iconr   GErrorrV   r   distro_infoUbuntuDistroInfoversionlabel_title	get_labelr   	set_labelcreate_terminal	prev_step	iconthemer   r   r   r   r   r   r   r9   r   _opCacheProgressrL   _acquireProgressr   _cdromProgressr   _installProgress	TreeStoreTYPE_STRINGdetails_listTreeViewColumnCellRendererText
pack_startadd_attributetreeview_detailsappend_columnset_sort_column_idSortType	ASCENDING	set_modelr<  r=  r:  rR   _handleException
excepthook)r   datadirrB  	localedirgladedireiconsto_dist
to_versiontitle_stringcolumnrenderr@  s   `            r   r    zDistUpgradeViewGtk3.__init__  s    &&& 	5'S..gll29;;t44IY[[H+BIKK88DKK*IW\\'<88H+G44DK 	sx   ((///	>!";IFFF89999 	> 	> 	>O81<========	> 	$T%-.?%?%>	@ 	@ 	@ ))++	--eoo>VXZ\].^.^____~ 	 	 	MEIJJJDDDD	 +//)T22 133;;GDD
'1133#++D*==""<000 	 2244   """##%%33CN4GHHH -d.D E E 9$ ? ?5d;; 9$ ? ?M'*=>>#B''%''&$'''VXq111++F333,,Q0FGGG''(9:::))%000	< 	< 	< 	< 	< 	%%j*=== .s0   )D/ /
E9EE/G G5G00G5c                 ~   dd l }|                    |||          }t          j        dd                    |          z             t          |||           t                      sD|                     t          d          t          d          d                    |                     t          j	        d           d S )Nr   znot handled exception:
%s
zA fatal error occurredzPlease 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.r	   )
	tracebackformat_exceptionrU   r   rC  r   r
   r]   rF  exit)r   r[   r%   tbrz  liness         r   rl  z$DistUpgradeViewGtk3._handleException  s    
 	**4;;2TYYu5E5EEFFF 	T5"%%%|| 	)JJq122 > ? ? yy'') ) ) 	r!   c                 ,    t          | | j                  S r   )r  r   r0   s    r   getTerminalzDistUpgradeViewGtk3.getTerminal(  s    %dDJ777r!   c                    | j         	 	 ddlm} n# t          $ r	 ddlm} Y nw xY w|                                | _         | j                                         }|                    dd           | j        	                    | j         ddd           n.#  t          j        d           t          j                    cY S xY wt          | j                   S )Nr   r  )WebKitzenable-pluginsFTzhtml widget)r   r  r  r  r  WebViewget_settingsset_property	vbox_mainpack_endrU   	exceptionr   SampleHtmlViewr  )r   r  settingss      r   getHtmlViewzDistUpgradeViewGtk3.getHtmlView*  s    $85???????" 5 5 5444444445$*NN$4$4!,99;;%%&6>>>''(94qIIII8!-000&577777)***s"    B $B $A-B )B=c                     t          |j                  dk    rdt          |j                  dk    rLt          d          }t          d          }|                     ||          }t          j        d|           | S dS )Nr	      zCtrl-c pressedzkThis will abort the operation and may leave the system in a broken state. Are you sure you want to do that?z5ctrl-c press detected, user decided to pass it on: %sF)lenstringordr]   askYesNoQuestionrU   r  )r   rW   keyevr   rn   rp   s         r   _key_press_handlerz&DistUpgradeViewGtk3._key_press_handler:  s    u|!!c%,&7&71&<&<())G K L LC''55CO %&)+ + +7Nur!   c                    t           j                                        | _        t	          | j        d          s| j        j        | j        _        | j                            d| j                   t          j
        d          }| j                            |           g | _        | j                            | j        ddd           | j                                         t!          j                    | _        | j                                         | j                            | j        ddd           | j                            | j                                                   	 t-          t.          j                            | j        d          d          | _        n!# t8          $ r t:          j        | _        Y nw xY w| j        S )z! helper to create a vte terminal r   zkey-press-eventzmonospace 10Tr   zterm.logr>  )r   Terminalr   r   hasattrset_pty_objectr   rR   r  r   font_description_from_stringset_font_terminal_lineshbox_customrd  r   r   
VScrollbarvscrollbar_terminalrt   set_adjustmentget_vadjustmentr   r   r   rC  rB  _terminal_logrL  rF  r   )r   fontdescs     r   rX  z#DistUpgradeViewGtk3.create_terminalF  s   \%%''
tz9-- 	;!%!:DJ
,d.EFFF5nEE
H%%%!##DJdA>>>
#&>#3#3  %%'''##D$<dD!LLL //
0J0J0L0LMMM	,!%bgll4;z&J&J3!O!OD 	, 	, 	,!$D	, zs   $8F F;:F;c                     | j         S r   )r\  r0   s    r   getAcquireProgressz&DistUpgradeViewGtk3.getAcquireProgress_      $$r!   c                 (    || j         _        | j         S r   )r^  r   )r   caches     r   getInstallProgressz&DistUpgradeViewGtk3.getInstallProgressa  s    ',$$$r!   c                     | j         S r   )r[  r0   s    r   getOpCacheProgressz&DistUpgradeViewGtk3.getOpCacheProgressd  r  r!   c                     | j         S r   )r]  r0   s    r   getCdromProgressz$DistUpgradeViewGtk3.getCdromProgressf  s    ""r!   c                 @    | j                             d|z             d S )Nr8  r   )r   rn   s     r   updateStatusz DistUpgradeViewGtk3.updateStatush  s#    ""4#:.....r!   c                     t          | d|j        z            }t          | d|j        z            }|                                 |                                 d S Nimage_step%ilabel_step%i)getattrr%   rv   r   r+   imagelabels       r   hideStepzDistUpgradeViewGtk3.hideStepj  sL    ^dj899^dj899



r!   c                     t          | d|j        z            }t          | d|j        z            }|                                 |                                 d S r  )r  r%   rt   r  s       r   showStepzDistUpgradeViewGtk3.showStepp  sL    ^dj899^dj899



r!   c                 .   t           j        j        }| j        }|rzt	          | d|j        z            }t	          | d|j        z            }|                    t           j        |           |                                 |	                                 d S d S )Nr  arrow_step%i)
r   IconSizeMENUrY  r  r%   set_from_stockSTOCK_CANCELrt   rv   )r   sizer+   r  arrows        r   abortzDistUpgradeViewGtk3.abortu  s    | ~ 	D$*!<==ED$*!<==E  !14888JJLLLJJLLLLL	 	r!   c                    t          t          |                               |           | j                                        rt          j        d           t          j        j	        }t          j                    }| j        rt          | d| j        j        z            }t          | d| j        j        z            }t          | d| j        j        z            }|                    d|           |                    t          j        |           |                                 |                                 || _        t          | d|j        z            }t          | d|j        z            }t          | d|j        z            }|                    d          sd S |                                 |                                 d S )Nzicon theme changed, re-readingr  r  r  
attributesvisible)rA   r/  setSteprZ  rescan_if_neededrU   rV   r   r  r  r   AttrListrY  r  r%   r  r  STOCK_APPLYrt   rv   r   )r   r+   r  attrlistr  r  r  rE   s          r   r  zDistUpgradeViewGtk3.setStep~  s   !4((00666>**,, 	<M:;;;| !!> 	D$.2F!FGGED$.2F!FGGED$.2F!FGGE|H555  $777JJLLLJJLLL^dj899^dj899^dj899!!),, 	F



r!   c                    | j                             d           | j                             | j                   d|d|}| j                            |           |d k    rH| j                                        }|                    |           | j	        
                                 n| j	                                         | j                                          | j                                                             t          j        j                   | j                                          | j                                          t'          j                    r(t'          j                     t'          j                    &d S d S )Nr.   r   r   )dialog_informationrh   r   r_   label_informationrf   textview_informationr   r#   scroll_informationrt   rv   r   r   r   r   r   r   rg   r   r(   r)   r   r   rn   extended_msgbuffers        r   informationzDistUpgradeViewGtk3.information  si   ))"---11$2BCCCC.5ggcc:))#...4.99;;FOOL)))#((****#((***'')))**,,::3>;NOOO##%%%$$&&& "" 	!     "" 	! 	! 	! 	! 	!r!   c                    | j                             d           | j                             | j                   d|d|}| j                            |           |d k    rH| j                                        }|                    |           | j	        
                                 n| j	                                         | j                                          | j                                                             t          j        j                   | j                                          | j                                          dS )Nr.   r   r   F)r   rh   r   r_   r   rf   r   r   r#   r   rt   rv   r   r   r   r   r   r   rg   r  s        r   r   zDistUpgradeViewGtk3.error  s'   ##B'''++D,<====,3GGSS9##C(((4(3355FOOL)))""$$$$""$$$!!###$$&&44S^5HIII   ur!   Tc                    t          j        | ||||          sdS | xj        dt          d          z  z  c_        |d k    rt| j                            d           | j                            d           | j                            |d                    | j                            |d                    | j	        
                    d|z             | j        
                    | j                   | j                                         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 ]\  }}|r~| j                            d |t+          |          z  g          }	|D ]O}
| j                            |	d|
j        dt/          j        t3          |
j        dd                     g           P| j                                         | j                            | j                   | j                            d           | j                                         !                    tD          j#        j$        tD          j#        j%        z             | j        &                                }| j        '                                 |tP          j)        j*        k    rdS dS )NFz

<b>%s</b>z?To prevent data loss close all open applications and documents.Tr   r	   z<big><b>%s</b></big>z%No longer supported by Canonical (%s)z<b>Downgrade (%s)</b>zRemove (%s)zNo longer needed (%s)zInstall (%s)zUpgrade (%s)z<b>z</b> - r   r.   )+r   confirmChangesconfirmChangesMessager]   button_cancel_changesset_use_stockset_use_underlinerW  button_confirm_changeslabel_summaryrf   label_changesra  clear	demotionstoDowngradetoRemovetoRemoveAuto	toInstall	toUpgrader   r  namer   markup_escape_textr  	candidater<  r   r   r_   rh   r   r   r   r   r   RESIZErg   rv   r   rj   r   )r   r   changesr  downloadSizeactionsremoval_boldparent_textra  noder   rp   s               r   r  z"DistUpgradeViewGtk3.confirmChanges  s    -dGW.7G G 	5"" , - -(- 	-"" d??&44U;;;&88>>>&00<<<'11'!*===%%&<w&FGGG%%d&@AAA!!!788$.I'(($*:;.'(($*;<00, 	h 	h'[,  h(//1<s<?P?P1P0QS S' h hC%,,TT(((D$;GCMS\^b<c<c$d$d$d5f 4g h h h h 	##%%%--d.>???%%b)))&&((66s~7J141F8G 	H 	H 	H!%%''  """#"&&&4ur!   Noc                    d|d|}t          j        | j        t           j        j        t           j        j        t           j        j                  }|	                    d           |dk    r%|
                    t           j        j                   n$|
                    t           j        j                   |                    |           |                                }|                                 |t           j        j        k    rdS dS )Nr   r   rY   r.   r  TF)r   r^   r_   r`   ra   rb   rc   rd   YES_NOrh   set_default_responserj   NOr   rf   rg   ri   r   r   rn   defaultro   rp   s         r   r  z$DistUpgradeViewGtk3.askYesNoQuestion  s     .5ggcc:"$*:),)>(+(@+.?+AC C C 	d??''(8(;<<<<''(8(<===#jjll#"&&&4ur!   Cancelc                    |rd|d|}t          j        | j        t           j        j        t           j        j        t           j        j                  }|	                    d           |
                    |           |                    t          d          t           j        j        t          d          t           j        j                   |dk    r%|                    t           j        j                   n$|                    t           j        j                   |                                }|                                 |t           j        j        k    rdS dS )	Nr   r   rY   r.   r  ContinueTF)r   r^   r_   r`   ra   rb   WARNINGrd   NONErh   rf   add_buttonsr]   rj   CANCELACCEPTr  rg   ri   r  s         r   askCancelContinueQuestionz-DistUpgradeViewGtk3.askCancelContinueQuestion  s8    	? 	?29''##>C"$*:),)>(+(?+.?+?A A A 	#1X;;(8(?Z==#*:*A	C 	C 	C h''(8(?@@@@''(8(?@@@jjll#")))4ur!   c                    | j                             | j                   | j                             d           | j                                          | j                                                             t          j        j	                   | j         
                                }| j                                          |t          j        j        k    rdS dS )Nr.   TF)dialog_restartr   r_   rh   r   r   r   r   r   r   rg   rv   r   rj   r   )r   rp   s     r   confirmRestartz"DistUpgradeViewGtk3.confirmRestart  s    --d.>???%%b)))##%%%&&((66s~7JKKK!%%''  """#"&&&4ur!   c                 |    t          j                    r(t          j                     t          j                    &d S d S r   )r   r(   r)   r0   s    r   processEventsz!DistUpgradeViewGtk3.processEvents%  sI     "" 	!     "" 	! 	! 	! 	! 	!r!   Fc                 t    | j                                          |r| j                             d           d S d S )Nr   )r   rz   r$   )r   r   s     r   pulseProgressz!DistUpgradeViewGtk3.pulseProgress)  sF    $$&&& 	5"//44444	5 	5r!   c                    | j                             | j                   | j                             d           | j                                          | j                                                             t          j        j	                   | j         
                                }| j                                          |t          j        j        k    rt          j        d           dS )Nr.   r	   T)dialog_cancelr   r_   rh   r   r   r   r   r   r   rg   rv   r   rj   r  rF  r|  )r   rW   r,  rp   s       r   on_window_main_delete_eventz/DistUpgradeViewGtk3.on_window_main_delete_event.  s    ,,T-=>>>$$R(((""$$$%%''55cn6IJJJ $$&&!!!#")))HQKKKtr!   )NNr   r   )r  )r  r  )r4   r5   r6   r7   r    rl  r  r  r  rX  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   r  r  r  rI   rJ   s   @r   r/  r/    s       ,,O/ O/ O/ O/b  ,8 8 8+ + + 
 
 
  2% % %% % %% % %# # #/ / /    
      <! ! ! !$   & 37. . . .`   $   0	 	 	! ! !5 5 5 5
	 	 	 	 	 	 	r!   r/  __main__)z/usr/bin/dpkgz--configurez-aTODOzTODO~shortlonga  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
xxd   )Ggir  require_versionr  r   rL  r   r   r   r   r   r   r   r   rF  r   rU   r   r   aptr   rR  r   DistUpgradeApportr
   r   r   r   r   r   DistUpgradeConfigParserr   	telemetryr   rH  SimpleGtk3builderAppr   r   DistUpgradeGettextr]   r   baseCdromProgressr   
OpProgressr9   rL   r   objectr  r  r/  r4   r'  fpipr  r  mainr|  Cacher  rG  r   r   mark_deletemark_installcommitr   r   r  r/   r!   r   <module>r!     s  , 
					#Buf%%%!!!!!!FF # # #Buf%%% "!!!!!w{CG#                   ! ! ! ! ! !       



        



      				 7 7 7 7 7 7 7 7 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 6 6 6 6 6 6 + + + + + + 5 5 5 5 5 5  , , , , , ,    cl/=   *' ' ' ' 'CL%0 ' ' '0@# @# @# @# @# @# @# @#F@ @ @ @ @ @ @ @F/ / / / /V / / /d    v   4x x x x x/*= x x xv z  D	"	"4	(	(B	"	"4	(	(B@@@AAACHJJJCHQKKKCIKKEx| & &:" 	&#J""$$$$#J##%%%%	LLBCHJJJ KKw@@@AAAJJwvQ   	R%%%%%A s   " 2AA