
    4e                     F   d dl Z dZ	  e j                  dd       d dlmZ dZ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jP                  jR                  jT                        Z+ G d dejP                  jR                  jX                        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(  r3 e3       Z5 e.e5      Z6 e/e5      Z7e5jq                         js                  g d#        e	jt                           ejv                  d         ejx                         Z=ej|                  dd D ]8  Z?e=e?   j                  re=e?   j                          &e=e?   j                          : e=j                  e6e7        e	jt                          e7j                  d$d%       e5jq                         js                  g d#       e5j                  d&d'd(       e5j                  d)g d*       yy# e$ rB  e j                  dd       d dlmZ ej                  j                  ej                  _        Y |w xY w)+    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y)GtkCdromProgressAdapterzi Report the cdrom add progress
        Subclass this class to implement cdrom add progress reporting
    c                 V    |j                   | _        |j                  | _        || _        y N)label_statusstatusprogressbar_cacheprogressparentselfr   s     A/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeViewGtk3.py__init__z GtkCdromProgressAdapter.__init__D   s#    ))00    c                 0   |r| j                   j                  |       | j                  j                  |j                  t        | j                        z         t        j                         r*t        j                          t        j                         r)yy)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   sa    KK  &""4::eDOO.D#DE  "    "r!   c                      y)N)F  r   s    r   ask_cdrom_namez&GtkCdromProgressAdapter.ask_cdrom_nameO   s    r!   c                      y)NFr/   r0   s    r   change_cdromz$GtkCdromProgressAdapter.change_cdromQ   s    r!   N)__name__
__module____qualname____doc__r    r,   r1   r3   r/   r!   r   r   r   @   s    !r!   r   c                   ,     e Zd Zd Zd fd	Zd Z xZS )GtkOpProgressc                      || _         d| _        y )N        )progressbarfraction)r   r<   s     r   r    zGtkOpProgress.__init__V   s    & r!   c                 T   t         t        |   |       | j                  dz  }t	        | j
                  |z
        dkD  r,|| _        | j                  j                  | j
                         t        j                         r*t        j                          t        j                         r)y y )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
 ||E)t}}\)*S0(DM))$--8  "    "r!   c                 :    | j                   j                  d       y )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                  j                  d| j                         y )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   sc    '79))00#77""9d.@.@Ar!   c                 <    t        j                  d       d| _        y )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                        }|j                  |       |j                         }|j                  d       |j                          |t        j                  j                   k(  ryy)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9VENJ""$++*A*A),)>)>(+(@(@+.??+D+DF 	#jjl#""%%%r!   c                     t         t        |           | j                  j	                  d       | j
                  j                          | j                  j                          y )Nr   )rA   rL   startr   r$   r   showrQ   )r   rE   s    r   rs   zGtkAcquireProgressAdapter.start   sE    '46""1%!r!   c                     | j                   j                  d       | j                  j                  t        d             | j                  j                          y )NrG   zFetching is complete)r   r#   r   r]   rQ   hider0   s    r   stopzGtkAcquireProgressAdapter.stop   s>    s#Q567!r!   c                    t         t        |   |       t        | j                  | j
                  j                         dz  z
        dkD  rp| j
                  j                  | j                  dz         | j                  dz   }|| j                  kD  r| j                  }| j                  dkD  rt        j                  | j                        }t        |t              r#|j                  t!        j"                               }| j$                  j'                  t)        d      || j                  |fz         | j
                  j'                  t)        d      t+        | j,                        z         nN| j$                  j'                  t)        d      || j                  fz         | j
                  j'                  d       t/        j0                         r)t/        j2                          t/        j0                         r)| j4                   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   '4U;t||DMM668>>?#EMM&&t||E'9:,,q0KT---"..!#%11$2B2BCk51"-"4"4335#7K$$Q'J%K!1!1;O@ &@ A&&q)='>HHB (  $$Q'A%B!1!1F3 &3 4&&t,  "    "MM!"r!   )
r4   r5   r6   r    rS   rq   rs   rw   rz   rI   rJ   s   @r   rL   rL   m   s'    B""
# #r!   rL   c                   T    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y	)GtkInstallProgressAdapteri,  c                 ^   t        j                  |        d | _        |j                  | _        |j                  | _        |j                  | _        |j                  | _	        | j                  j                  d| j                         || _        t        j                  j                  dd       y )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00LL			.$*;*;< 	.w7r!   c                 L   t        j                  |        d| _        | j                  j	                  t        d             | j                  j                  d       | j                  j	                  d       | j                  j                  d       | j                  j                          | j                  j                  d| j                         t        j                  j!                  d      xs d}|dk(  rP| j"                  rDd	| j"                  vs| j"                  d	   j$                  sd
}| j                  j'                  d       d| j(                  z  dg| _        dt        j                  vr| j*                  j-                  d|z         d| _        d| _        d| _        y )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   s=   $$T* 	""1%7#89""3's###D)				,d.K.KL**..!23>ww4;;"dkk1KK/<<#**40($,,635BJJ.HHOO08;< r!   c                    t        j                  | ||       t        j                  d|d|d       t        j                  dd      |v ry| j
                  j                  j                  | j
                  j                         t        d      |z  }t        d      |z  }d	|d
|}| j
                  j                  j                          | j
                  j                  j                  d       | j
                  j                  j                         j                  t        j                  j                          | j
                  j"                  j%                  |       | j
                  j&                  j)                         j+                  |       | j
                  j,                  j/                          | j
                  j                  j1                          | j
                  j                  j3                          y )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   sj   dC2c8TUF$PQU]] 	  224;;3J3JK,-3 ' (*-. 07<  ((*  **2.  ++-;;CNN<O<OP**62""--/88B  %%'  $$&  %%'r!   c                 j   t        j                  d|z         t        j                         }t        d      |z  }t        d      }d|d|}| j                  j
                  j                  |       | j                  j                  j                  d       | j                  j                  j                  | j                  j                         t        j                  j                  |      s|dz   }t        j                  j                  d      rdd	||g}t        j                  |t        j                   
      j#                         d   }|j%                  dd      }| j                  j&                  j)                         j+                  |       n<| j                  j&                  j)                         j+                  t        d             | j                  j                  j-                         }	| j                  j                  j/                          | xj0                  t        j                         |z
  z  c_        |	t2        j4                  j6                  k(  rd}
nd}
	 | j8                  j;                  |
j=                  d             y #  | j8                  j;                  |
d       Y y 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   s   FPQ		CDwN # $ OSTWX""--f5##--b1##55dkk6M6MN ww~~g&l*G 77>>/*"D'37C##JOO--8[]1>D;;w	2DKK))446??EKK))446??Bd@efkk))--/##((*		e++#""&&&HH	/II  !9:	/II  2.s   '*J J2c                    t         j                  j                  t         j                  j                        }t        j                         }|dk(  r]| j                  D ])  }|j                  d      \  }}|t
        j                  |<   + |j                          dt
        j                  d<   |S | j                  j                  |       | 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    ggs||334ggi!8xx ("yy~e"'

3( OO 8;BJJ34 
 IIc"II!!#&
r!   c                 D    t        j                          | _        d| _        y)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     "YY[).&r!   c                 P   | j                   dk(  rt        j                         | _         t        || j                  j	                         dz  z
        dkD  rP| j                  j                  t        |      dz         | j                  j                  |j                                |dkD  r| j                  | j                   z
  }|| j                  z  }t        |      |z  }d|z
  |z  }|dkD  r6|dk  r1| j                  j                  t        d      t        |      z         n| j                  j                  d       | j                  j                  rR| j                  j                  j!                  d	      d
k(  r)| j                  j                  j#                  d|z         y y y y )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  sV   ??c!"iikDOwt}}113E99:S@MM&&uW~e';<&&v||~6S=&&8ET\\!E %eW 47?&66CTzcZ0&&q)='>PSAT'TU&&s+((((55mDI((778H78RS J ) r!   Nc                 ^    ||j                         | _        d| _        y || _        d| _        y NT)get_child_exit_status
apt_statusr   )r   r   r   s      r   r   z&GtkInstallProgressAdapter.child_exitedO  s0    >"88:DO   &DOr!   c                 l    | j                   s| j                          | j                   s| j                  S r   )r   update_interfacer   r0   s    r   
wait_childz$GtkInstallProgressAdapter.wait_childX  s(    --!!# --r!   c                 :    | j                   j                  d       y )Nr.   r   r#   r0   s    r   finish_updatez'GtkInstallProgressAdapter.finish_update]  s    ""2&r!   c                    t        j                  |        | j                  dk(  r/| j                  j	                          t        j                  d       | j                  dkD  r| j                  | j                  z   t        j
                         k  rv| j                  sEt        j                  d| j                  d| j                  j                         d       d| _	        | j                  j                  j!                  d       t#        j$                         r)t#        j&                          t#        j$                         r)t        j                  d       y )	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!MM!JJsO!!?!??499;N11QUQoQoqu  rC  rC  rL  rL  rN  !O  P15.KK))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      sC     !$8!8(.%/N$/T4
'r!   r   c                       e Zd Zd ZddZy)DistUpgradeVteTerminalc                      || _         || _        y r   )r   r   )r   r   r   s      r   r    zDistUpgradeVteTerminal.__init__t  s    	r!   c           
      *    t         r fd}n fd} j                  j                           j                  j                  d|        j                  j
                  j                  d       |dk(  r% j                  j
                  j                  d       d _        t         r> j                  j                  t        j                  j                  d|d dd d d       \  }}n< j                  j                  t        j                  j                  d|d dd d       \  }}|r|dk  ry  j                  s_t        j                         r)t        j                           t        j                         r)t#        j$                  d        j                  s_ `y )	Nc                     d_         y r   r   )terminalr   r   s     r   wait_for_childz3DistUpgradeVteTerminal.call.<locals>.wait_for_childy  
    "r!   c                     d_         y 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%%33D95=KK))66t<!YY11$$	NWc "YY88$$NWc #'--$$&""$ $$&JJsO -- Mr!   NF)r4   r5   r6   r    r  r/   r!   r   r  r  s  s    +r!   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)HtmlViewc                     || _         y r   )r   )r   webkit_views     r   r    zHtmlView.__init__  s
    'r!   c                 V   | j                   sy 	 ddlm} |sJ | j                   j                  |       | j                   j	                  d| j
                         y # t        $ rD | j                   j                  |       | j                   j	                  d| j                         Y y 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      	O-N7&&s+%%nd6K6KL 	O""3'%%ot7M7MN	Os   AA A
B('B(c                 8    | j                   j                          y r   )r   rt   r0   s    r   rt   zHtmlView.show       r!   c                 8    | j                   j                          y r   )r   rv   r0   s    r   rv   zHtmlView.hide  r$  r!   c                 $    |j                          y r   )rt   )r   viewframes      r   r!  zHtmlView._on_load_finished  s    		r!   c                 d    ddl m} ||j                  j                  k(  r|j	                          y y )Nr   r  )r  r  	LoadEventLOAD_FINISHEDrt   )r   r'  eventdatar  s        r   r  zHtmlView._on_load_changed  s'    )G%%333IIK 4r!   N)	r4   r5   r6   r    r   rt   rv   r!  r  r/   r!   r   r  r    s!    (
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 c                 :	    t        j                          | _        |r|dk(  rit        j                  j                  t        j                         d      }t        j                         }t        t        j                                _        n2d}t        j                  j                  |d      }t        |       _        t        j                  t        j                         t               j                  d       	 t        j                   d|       t#        j$                  d       t-        j                   |dz   d       t        j.                  j1                         }	  j2                  j5                  |j7                  d	d
d              j                  j?                  dd      }tA        jB                         jE                  |      } jF                  jI                         }	|	jK                  d|      }	 jF                  jM                  |	        jO                          d  _(        t        j.                  j1                          _)        d  _*         j2                  jW                           j2                  jY                         j[                  t\        j^                  j`                         tc         jd                         _3        ti                _5        tm                _7        tq                _9        t        jt                  t8        jv                         _<        t        jz                  d      }
t        j|                         }|
j                  |d       |
j                  |dd        j                  j                  |
        jx                  j                  dt        j                  j                          j                  j                   jx                          j                  j                  d        fd} j                  j                  d|        j                  t        _L        y # t&        $ r#}t)        j*                  d|z         Y d }~4d }~ww xY w# t8        j:                  $ r#}t)        j<                  d|z         Y d }~d }~ww xY w)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                 r    j                   j                         }j                  j                  |        y r   )expander_detailsget_expandeddialog_changesset_resizable)wexpandedr   s     r   
_activatedz0DistUpgradeViewGtk3.__init__.<locals>._activated  s-    ,,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__  sf     &'S.ggll299;t4IYY[H+BIIK8DK*IWW\\'<8H+G4DK 	sxx ((/	>!!";IF89 	$$T%-.?%?%>	@ ))+	--eoo>VXZ\].^_
 ++//)T2 113;;GD
''113#++D*=""<0 	 224   "##%33CNN4G4GH -d.D.D E 9$ ?5d; 9$ ?MM'*=*=>##B'%%'&$'VXq1++F3,,Q0F0FG''(9(9:))%0	< 	%%j*= ..w  	>OO81<==	> ~~ 	MMEIJ	s0   =+P5 !,Q$ 5	Q!>QQ!$R7RRc                 @   dd l }|j                  |||      }t        j                  ddj	                  |      z         t        |||       t               s4| j                  t        d      t        d      dj	                  |             t        j                  d       y )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;2TYYu5EEF 	T5"%|JJq12 > ? yy') 	r!   c                 .    t        | | j                        S r   )r  r   r0   s    r   getTerminalzDistUpgradeViewGtk3.getTerminal(  s    %dDJJ77r!   c                    | j                   q	 	 ddlm} |j                         | _         | j                   j                         }|j                  dd       | j                  j                  | j                   ddd       t        | j                         S # t        $ r	 ddlm} Y w xY w#  t        j                  d       t        j                         cY S xY w)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? %+NN$4!,,99;%%&6>''(9(94qI ))** # 5458!!-0&5577s)   B A)B( B%"B( $B%%B( (+Cc                     t        |j                        dk(  rYt        |j                        dk(  rAt        d      }t        d      }| j	                  ||      }t        j                  d|       | S y)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:  so    u||!c%,,&71&<()G K LC''5COO %&)+7Nr!   c                    t         j                  j                         | _        t	        | j                  d      s%| j                  j
                  | j                  _        | j                  j                  d| j                         t        j                  d      }| j                  j                  |       g | _        | j                  j                  | j                  ddd       | j                  j                          t!        j"                         | _        | j$                  j'                          | j                  j                  | j$                  ddd       | j$                  j)                  | j                  j+                                	 t-        t.        j0                  j3                  | j4                  d      d      | _        | j                  S # t8        $ r# t:        j<                  | _        Y | j                  S w xY w)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  si   \\%%'
tzz9-!%!:!:DJJ

,d.E.EF55nE

H%!##DJJdA>

#&>>#3   %%'##D$<$<dD!L  //

0J0J0LM	,!%bggll4;;z&J3!OD zz  	,!$Dzz	,s   9G G>=G>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                   j                  d|z         y )Nr8  r   )r   rn   s     r   updateStatusz DistUpgradeViewGtk3.updateStatush  s    ""4#:.r!   c                     t        | d|j                  z        }t        | d|j                  z        }|j                          |j                          y Nimage_step%ilabel_step%i)getattrr%   rv   r   r+   imagelabels       r   hideStepzDistUpgradeViewGtk3.hideStepj  s>    ^djj89^djj89



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



r!   c                 :   t         j                  j                  }| j                  }|rst	        | d|j
                  z        }t	        | d|j
                  z        }|j                  t         j                  |       |j                          |j                          y y )Nr  arrow_step%i)
r   IconSizeMENUrY  r  r%   set_from_stockSTOCK_CANCELrt   rv   )r   sizer+   r  arrows        r   abortzDistUpgradeViewGtk3.abortu  st    ||  ~~D$**!<=ED$**!<=E  !1!148JJLJJL r!   c                 |   t         t        |   |       | j                  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        }|j                  d|       |j!                  t        j"                  |       |j%                          |j'                          || _        t        | d|j                  z        }t        | d|j                  z        }t        | d|j                  z        }|j)                  d      sy |j%                          |j'                          y )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~  sB   !406>>**,MM:;||  !>>D$..2F2F!FGED$..2F2F!FGED$..2F2F!FGE|H5  $7JJLJJL^djj89^djj89^djj89!!),



r!   c                 .   | j                   j                  d       | j                   j                  | j                         d|d|}| j                  j                  |       |d k7  rF| j                  j                         }|j                  |       | j                  j                          n| j                  j                          | j                   j                          | j                   j                         j                  t        j                   j"                         | j                   j%                          | j                   j                          t'        j(                         r*t'        j*                          t'        j(                         r)y y )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  s   ))"-11$2B2BC.5c:))#.4..99;FOOL)##((*##((*'')**,::3>>;N;NO##%$$&  "    "r!   c                    | j                   j                  d       | j                   j                  | j                         d|d|}| j                  j                  |       |d k7  rF| j                  j                         }|j                  |       | j                  j                          n| j                  j                          | j                   j                          | j                   j                         j                  t        j                   j"                         | j                   j%                          | j                   j                          y)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,<,<=,3S9##C(4((335FOOL)""$""$!!#$$&44S^^5H5HI r!   c                 ^   t        j                  | ||||      sy| xj                  dt        d      z  z  c_        |d k7  rr| j                  j                  d       | j                  j                  d       | j                  j                  |d          | j                  j                  |d          | j                  j                  d|z         | j                  j                  | 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 ]  \  }}|s	| j                  j)                  d |t+        |      z  g      }	|D ]W  }
| j                  j)                  |	d|
j,                  dt/        j0                  t3        |
j4                  dd             g       Y  | j6                  j9                          | j6                  j;                  | j<                         | j6                  j?                  d       | j6                  jA                         jC                  tD        jF                  jH                  tD        jF                  jJ                  z         | j6                  jM                         }| j6                  jO                          |tP        jR                  jT                  k(  ryy)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"" , -(- 	-" d?&&44U;&&88>&&00<''11'!*=%%&<w&FG%%d&@&@A!78$..I'($*:*:;.'($*;*;<00, 	h'[, ((//1<s<?P1P0QS' hC%%,,T((D$;$;GCMMS\^b<c$d5f 4g hh	h 	##%--d.>.>?%%b)&&(66s~~7J7J141F1F8G 	H!!%%'  "#""&&&r!   c                 Z   d|d|}t        j                  | j                  t         j                  j                  t         j
                  j                  t         j                  j                        }|j                  d       |dk(  r*|j                  t         j                  j                         n)|j                  t         j                  j                         |j                  |       |j                         }|j!                          |t         j                  j                  k(  ryy)Nr   r   rY   r.   NoTF)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    .5c:""$*:*:),)>)>(+(@(@+.??+A+AC 	d?''(8(8(;(;<''(8(8(<(<=#jjl#""&&&r!   c                 
   |rd|d|}t        j                  | j                  t         j                  j                  t         j
                  j                  t         j                  j                        }|j                  d       |j                  |       |j                  t        d      t         j                  j                  t        d      t         j                  j                         |dk(  r*|j!                  t         j                  j                         n)|j!                  t         j                  j                         |j#                         }|j%                          |t         j                  j                  k(  ryy)	Nr   r   rY   r.   CancelContinueTF)r   r^   r_   r`   ra   rb   WARNINGrd   NONErh   rf   add_buttonsr]   rj   CANCELACCEPTr  rg   ri   r  s         r   askCancelContinueQuestionz-DistUpgradeViewGtk3.askCancelContinueQuestion  s   29#>C""$*:*:),)>)>(+(?(?+.??+?+?A 	#1X;(8(8(?(?Z=#*:*:*A*A	C h''(8(8(?(?@''(8(8(?(?@jjl#"")))r!   c                    | j                   j                  | j                         | j                   j                  d       | j                   j	                          | j                   j                         j                  t        j                  j                         | j                   j                         }| j                   j                          |t        j                  j                  k(  ryy)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~~7J7JK!!%%'  "#""&&&r!   c                     t        j                         r*t        j                          t        j                         r)y y r   )r   r(   r)   r0   s    r   processEventsz!DistUpgradeViewGtk3.processEvents%  s(      "    "r!   c                 t    | j                   j                          |r| j                   j                  d       y y )Nr   )r   rz   r$   )r   r   s     r   pulseProgressz!DistUpgradeViewGtk3.pulseProgress)  s0    $$&""//4 r!   c                    | j                   j                  | j                         | j                   j                  d       | j                   j	                          | j                   j                         j                  t        j                  j                         | j                   j                         }| j                   j                          |t        j                  j                  k(  rt        j                   d       y)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5cnn6I6IJ  $$&!#"")))HHQKr!   )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/b,8+ 
2%%%#/
<!$& 37.`$0	!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!     sL  , 
		#Buf%!F    !  
     
   	 7 ^ ^ 6 + 5  ,cll//== *'CLL%%00 '0@# @#F@ @F/V /dv 4x/*= xv z D	"4	(B	"4	(B@ACHHJCHHQKCIIKExx| &:""#J""$#J##%	&
 
LLBCHHJ KKw@AJJwvQ 	R%A {  #Buf% "ww{{CGG#s   I AJ J 