
    }c7                         d dl Z  e j                  dd       d dlmZmZmZmZmZmZ d dl	Z	dZ
dZ e	j                  e
ed      Zej                  Zd d	lmZ  G d
 de      Z G d dej$                        ZddZd Zy)    NXAppz1.0)GLibGtkGObjectGdkr   Pangozmint-commonz/usr/share/linuxmint/localeT)fallback)AptConfirmDialogc                   6     e Zd ZdZd fd	Zd Zd Zd Z xZS )ChangesConfirmDialogzODialog to confirm the changes that would be required by a
    transaction.
    c                 r    t         t        |   |d |       || _        | j	                  dd       || _        y )N)cacheparenti  ^  )superr   __init__parent_windowset_size_requesttask)selftransactionr   r   	__class__s       >/usr/lib/python3/dist-packages/mintcommon/installer/dialogs.pyr   zChangesConfirmDialog.__init__   s:    "D2;dSY2Z#c3'	    c           
         | j                   j                          | j                  s"| j                  d       | j	                  d       | j
                  rG| j
                  j                  r| j
                  j                  j                  j                  d      r	 | j                   j                          | j
                  j                  t        d      | j
                  j                  | j
                  j                  k(  rdndg| j
                  j                  t        d      dg| j
                  j                  t        d      | j
                  j                  | j
                  j                  k(  rdndg| j
                  j                   t        d      dg| j
                  j"                  t        d	      dg| j
                  j$                  t        d
      dg| j
                  j&                  t        d      dgfD ]  \  }}}t)        |      |kD  s| j                   j+                  dd|z  g      }|D ]n  }|| j
                  j                  k(  r(|j-                         | j
                  j.                  k(  rD| j                   j+                  ||j-                         g       p  t        d      }t)        | j                         dk(  rR| j                   j1                  t2        j4                  j7                               }| j8                  j;                          | j8                  j=                  |       | j8                  j?                  d       t)        | j
                  j                        dkD  rt        d      }nt)        | j
                  j                        dkD  rt        d      }nt)        | j
                  j                        dkD  rt        d      }nt)        | j
                  j                         dkD  rt        d      }nt)        | j
                  j"                        dkD  rt        d      }n[t)        | j
                  j$                        dkD  rt        d      }n-t)        | j
                  j&                        dkD  rt        d      }t)        |      dk  r^| jA                  d       | jB                  jE                  t2        jF                  jH                  t2        jF                  jJ                         n^| j8                  jM                  dd       nAt        d      }| j8                  jM                  dd       | j8                  jO                          | j
                  jP                  dkD  r=|dz  }|t        d      tS        jT                  | j
                  jP                        z  z  }| j
                  jV                  dkD  r>|dz  }|t        d      tS        jT                  | j
                  jV                        z  z  }nV| j
                  jX                  dkD  r=|dz  }|t        d      tS        jT                  | j
                  jX                        z  z  }| jZ                  j]                  dd |       y| j_                  t        d!             | j
                  j                  | j
                  j                  k(  rdnd}t)        | j
                  j                        |kD  r| j                   j+                  ddt        d      z  g      }| j
                  j                  D ]u  }| j
                  j                  r2| j
                  j                  j`                  |jc                         k(  rK| j                   j+                  ||j-                         g       w | j
                  j                  | j
                  j                  k(  rdnd}t)        | j
                  j                        |kD  r| j                   j+                  ddt        d      z  g      }| j
                  j                  D ]u  }| j
                  j                  r2| j
                  j                  j`                  |jc                         k(  rK| j                   j+                  ||j-                         g       w t)        | j
                  j"                        dkD  rd}	| j
                  j"                  D ]  }| j
                  j                  | j
                  jd                  k(  rIt)        | j
                  jf                        dk(  s&|jc                         | j
                  jf                  v ry|	s+| j                   j+                  ddt        d	      z  g      }d}	| j                   j+                  |j-                         g        t        d      }t)        | j                         dk(  r| j                   j1                  t2        j4                  j7                               }| j8                  j;                          | j8                  j=                  |       | j8                  j?                  d       t)        | j
                  j                        dkD  rt        d      }n[t)        | j
                  j                        dkD  rt        d      }n-t)        | j
                  j"                        dkD  rt        d      }t)        |      dk  r^| jA                  d       | jB                  jE                  t2        jF                  jH                  t2        jF                  jJ                         n^| j8                  jM                  dd       nAt        d      }| j8                  jM                  dd       | j8                  jO                          | j
                  jP                  dkD  r=|dz  }|t        d      tS        jT                  | j
                  jP                        z  z  }| j
                  jV                  dkD  r>|dz  }|t        d      tS        jT                  | j
                  jV                        z  z  }nV| j
                  jX                  dkD  r=|dz  }|t        d      tS        jT                  | j
                  jX                        z  z  }| jZ                  j]                  dd |       y)"z2Show a message and the dependencies in the dialog.TaInstall   r   	ReinstallRemovePurgeUpgrade	DowngradezSkip upgradeNz	<b>%s</b>z0Please take a look at the list of changes below.Fz%Additional software will be installedz(Additional software will be re-installedz#Additional software will be removedz"Additional software will be purgedz$Additional software will be upgradedz&Additional software will be downgradedzUpdates will be skipped   r      zAdditional changes are required
z%s will be downloaded in total.z%s of disk space will be freed.z %s more disk space will be used.z<b><big>z</big></b>

Flatpaks)4	treestoreclearr   set_skip_taskbar_hintset_keep_abover   pkginfopkg_hash
startswith
to_install_typeINSTALL_TASKto_reinstall	to_removeUNINSTALL_TASKto_purge	to_updateto_downgradeto_skip_upgradelenappendget_namename
filter_newr   TreePath	new_firsttreeview
expand_all	set_modelset_show_expandersset_resizablescrolled
set_policy
PolicyType	AUTOMATICNEVERr   collapse_alldownload_sizer   format_size
freed_sizeinstall_sizelabel
set_markup	set_titlerefid
format_refUPDATE_TASKinitial_refs_to_update)
r   pkg_listmsgmin_packagespiterpkgfiltered_storetitlerefheader_addeds
             r   _show_changesz"ChangesConfirmDialog._show_changes   s	   !!&&t,% yyTYY..4993D3D3M3M3X3XY\3]DNN  "#'99#7#7a	lQUQZQZQ_Q_cgclclcycyQyA  @A  #B#'99#9#9ana"P#'99#6#6akPTPYPYP^P^bfbkbkbzbzPz1  AB  #C#'99#5#5aj!"L#'99#6#6a	lA"N#'99#9#9ana"P#'99#<#<a>OQR"S0# G+#| x=</ NN11$s9J8KLE' G#tyy';';;RVR[R[R`R`@`$--eclln5EF	GG. FGC4>>"a'!%!:!:3<<;Q;Q;S!T((*''7007tyy++,q0EFE//014HIE,,-1CDE++,q0BCE,,-1DEE//014FGE223a778E~&*&&u-MM,,S^^-E-E-0^^-A-AC MM223<;<..sC8**,yy&&*t;<(()@)@AB Cyy##a't;<(()=)=>? @''!+t<=(()?)?@A BJJ!!%"MN NN1Z=) $		$))2H2H H1aL499''(<7--d[1Y<5O4PQ99// CCyy((TYY->->-D-DHX-X NN))%#,,.1AB	C !%		$))2J2J J1PQL499&&',6--d[1X;5N4OP99.. CCyy((TYY->->-D-DHX-X NN))%#,,.1AB	C 499&&'!+
  %99.. 	CCyy~~)>)>>tyy??@AEIY]a]f]f]}]}I}$' $ 5 5d[1Y<=W<X Y'+NN))%#,,.1AB	C FGC4>>"a'!%!:!:LL**,".((*''7007tyy++,q0EFE,,-1CDE,,-1DEE~&*&&u-MM,,S^^-E-E-0^^-A-AC MM223<;<..sC8**,yy&&*t;<(()@)@AB Cyy##a't;<(()=)=>? @''!+t<=(()?)?@A BJJ!!%"MNr   c                     |gS )a  Map a package to a different object type, e.g. applications
        and return a list of those.

        By default return the package itself inside a list.

        Override this method if you don't want to store package names
        in the treeview.
         )r   r[   s     r   map_packagez ChangesConfirmDialog.map_package   s     ur   c                 L    |j                  |d      }|j                  d|       y )Nr   markup)	get_valueset_property)r   columncellmodeliterdatavalues          r   render_package_descz(ChangesConfirmDialog.render_package_desc   s"    a((E*r   )NN)	__name__
__module____qualname____doc__r   r`   rc   rn   __classcell__)r   s   @r   r   r      s    ]O~	+r   r   c                   B    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zy)FlatpakProgressWindowz
    Progress dialog for standalone flatpak installs, removals, updates.
    Intended to be used when not working as part of a parent app (like mintinstall)
    Nc                    t         j                  j                  | |       | j                  dd       || _        d| _        | j                  |_        |j                  | _	        | j                  |_        d| _        d | _        | j                  d       | j                  d       | j                         j!                  d       t         j"                  j%                  t         j&                        | _        | j(                  j+                  d       | j-                         j/                  | j(                  ddd       | j(                  j1                  d| j2                         | j(                  j5                          t        j6                  t         j8                  j:                  	      }|j!                  d
       |j                  d       t        j<                  d      | _        |j/                  | j>                  ddd       | j>                  jA                  t         jB                  jD                         | j>                  jG                  d       t        jH                         | _%        |jM                  | jJ                  ddd       | j                         j/                  |ddd       | jO                  tQ        d             tS        jT                  | d       |jW                          | jY                          | jJ                  j[                  dd       t\        j^                  j`                  t\        j^                  jb                  z  }	 | je                         jg                  |       | j1                  d| jj                         y # th        $ r5 | je                         jg                  t]        j^                  |             Y Zw xY w)N)r        Fr   r$   Tclicked)orientation   
   -   )max_width_charsFlatpakzsystem-software-installerr   zdelete-event)6r   Dialogr   set_default_sizer   finishedwindow_client_progress_cbclient_progress_cbclient_finished_cbfinal_finished_cbwindow_client_finished_cbpulse_timerreal_progress_textset_border_widthrE   get_content_areaset_spacingButtonnew_from_stockSTOCK_CANCELbuttonset_use_stockget_action_area
pack_startconnecton_button_clickedshowBoxOrientationVERTICALLabelrP   
set_halignAlignSTARTset_line_wrapProgressBarprogresspack_endrR   r0   r   set_window_icon_nameshow_allrealizer   r   
WMFunctionMOVERESIZE
get_windowset_functions	TypeError_on_dialog_delete_event)r   r   r   vbox	functionss        r   r   zFlatpakProgressWindow.__init__   s   

D0c3'	 #'"@"@ "&!8!8"&"@"@"& 	a 5!++A.jj//0@0@A!!$'))$++ueQGIt'='=> ww3??#;#;<b!YYr2


E5!4

ciioo.

  &)dmmUD!4**4tQ?q|$!!$(CD&&sB/NN''#..*?*??		GOO++I6 	^T%A%AB  	GOO++CNN9,EF	Gs   N ;O	O	c                     | j                   dkD  ry | j                  j                          t        j                  d| j
                        | _         y )Nr   i  )r   r   pulser   timeout_addprogress_pulse_tickr   s    r   start_progress_pulsez*FlatpakProgressWindow.start_progress_pulse  s>    a"..tT5M5MNr   c                 V    | j                   j                          t        j                  S N)r   r   r   SOURCE_CONTINUEr   s    r   r   z)FlatpakProgressWindow.progress_pulse_tick  s    ###r   c                 p    | j                   dkD  r't        j                  | j                          d| _         y y )Nr   )r   r   source_remover   s    r   stop_progress_pulsez)FlatpakProgressWindow.stop_progress_pulse  s1    a!!$"2"23 D  r   c                 8    | j                   j                          yNT)r   ry   )r   dialogevents      r   r   z-FlatpakProgressWindow._on_dialog_delete_event  s    r   c                     |r| j                          nD| j                          | j                  j                  |dz         t	        j
                  | |       | j                  j                  |       y )Ng      Y@)r   r   r   set_fractionr   set_window_progressrP   set_text)r   r,   r   
estimatingstatus_texts        r   r   z/FlatpakProgressWindow.window_client_progress_cb!  sV    %%'$$&MM&&x%'78$$T84

K(r   c                 T    d| _         | j                          | j                  |       y r   )r   destroyr   )r   r   s     r   r   z/FlatpakProgressWindow.window_client_finished_cb,  s     t$r   c                 R    | j                   s| j                  j                          y y r   )r   r   cancel)r   r   s     r   r   z'FlatpakProgressWindow.on_button_clicked2  s    }}II r   r   )ro   rp   rq   rr   r   r   r   r   r   r   r   r   rb   r   r   ru   ru      s2    
9CvO$
!
	)%r   ru   c                 X    t        j                  t        j                  t        | |       y r   )r   threads_add_idler   PRIORITY_DEFAULT_IDLE_show_error_mainloop)messager   s     r   
show_errorr   6  s    335I7Tabr   c                 N   t        j                  d t         j                  j                  t         j                  j
                  t         j                  j                  d      }|"|j                  |       |j                  d       |j                  t        j                                t        d      }|j                  d|z         t        j                  dddd      }|j!                         j#                  |ddd	       t        j$                  | d
dt&        j(                  j*                  d      }|j-                  d       |j/                          |j1                  |       |j3                          |j5                          |j7                          t        j8                  S )N TzAn error occurredz<big><b>%s</b></big>K   rw   )min_content_heightmax_content_heightmin_content_widthpropagate_natural_heightF      )lineswrap	wrap_mode
selectable<   )r   MessageDialogDialogFlagsDESTROY_WITH_PARENTMessageTypeERRORButtonsTypeOKset_transient_for	set_modalrR   r   get_application_namer0   rQ   ScrolledWindowget_message_arear   r   r   WrapMode	WORD_CHARset_max_width_charsr   addr   runr   SOURCE_REMOVE)r   r   r   textscrollermessage_labels         r   r   r   9  sD   t"BB"44"11!	#F
    /
T..01 !D
,t34!!rceh  DH  IH
((5%CIIgRdennF^F^kopM%%b)LL
OO
JJL
NNr   r   )girequire_versiongi.repositoryr   r   r   r   r   r   gettextAPP
LOCALE_DIRtranslationtr0   aptdaemon.gtk3widgetsr
   r   r   ru   r   r   rb   r   r   <module>r      s}    	   65 ! > > *
GZ$7II 2y++ y+xiCJJ iVcr   