
    Be&                        	 d dl mZ  e       dk(  reddlmZ ddlmZmZmZ ddl	m
Z
 ddlmZmZmZmZ ddl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"m"Z" d Z#d Z$d Z% G d de      Z& G d de!jN                  jP                  jR                        Z*y# e$ r% ddlmZ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 Y w xY w)   )get_disttrusty    )uic)QTranslatorPYQT_VERSIONQLocale)QIcon)QDialogQDialogButtonBoxQMessageBoxQApplication)KIconKMessageBoxKStandardGuiItem)r   r   r   r
   )r   N)DistUpgradeFetcherCore)gettext)urlopen)	HTTPError)
QUrlOpenerc                      t        j                         sdt        j                  d<   dt        j                  d<   dt        j                  d<   dt        j                  d<   t        dg      } t	        |       }t        t        t              r'|j                  t        j                         d	d
d       n&|j                  t        j                         d	d
d       | j                  |       | S t        j                         S )NkdeQT_PLATFORM_PLUGINTRUEKDE_FULL_SESSION5KDE_SESSION_VERSIONQT_QPA_PLATFORMTHEMEzubuntu-release-upgraderqt_z/usr/share/qt5/translationsz/usr/share/qt4/translations)r   instanceosenvironr   
isinstancer   intloadr	   systeminstallTranslator)app
translators     C/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeFetcherKDE.py_ensureQApplicationr,   E   s      "+0

'( *0

%& -0

()-2

)*567
 !%
lC(OOGNN,dC9; OOGNN,dC9;j)
  ""    c                     t        t        t              rt        j                  d d|        y t        j                  d | d       y )N )r$   r   r%   r   warningr   sorry)texts    r+   _warningr3   d   s0    ,$D"d+$b)r-   c                 j    t        t        t              rt        j                  |       S t        |       S N)r$   r   r%   r
   	fromThemer   )names    r+   _iconr8   k   s%    ,$t$$T{r-   c                   $    e Zd Zd Zd Zd Zd Zy)DistUpgradeFetcherKDEc                     t        j                  | ||       t               | _        | j                  j	                  t        d             || _        t               j                          t        j                          y )Nzsystem-software-update)r   __init__r,   r)   setWindowIconr8   datadirr   setupUrlHandlesr   processEvents)selfnew_distprogressparentr>   s        r+   r<   zDistUpgradeFetcherKDE.__init__t   sW    ''hA&(u%=>?$$&""$r-   c                     t        t        t              rt        j                  d ||       y t        j                  d ||       y r5   )r$   r   r%   r   criticalr   r1   )rA   summarymessages      r+   errorzDistUpgradeFetcherKDE.error   s0    lC(  w8dGW5r-   c                     t        j                         dk7  r&t        j                  dd| j                  dz   g       y t        j                  | j                  | j                  dg| j                  z          y )Nr   z/usr/bin/pkexecpkexecz --frontend=DistUpgradeViewKDEz--frontend=DistUpgradeViewKDE)r"   getuidexecvscriptrun_optionsrA   s    r+   runDistUpgraderz%DistUpgradeFetcherKDE.runDistUpgrader   se    99;!HH&kk$DDFG HHT[[kk#BC%%&'r-   c                    t               | _        t        j                  | j                  dz   | j                         | j                  j
                  j                  t        j                        }|j                  t        d             |j                  t        d             | j                  j
                  j                  t        j                        }|j                  t        d             |j                  t        d             | j                  j                  t        d             | j                  j                          | j                   j"                  | j%                  | j                   j"                        }d }	 t'        |      }|j)                         j+                  dd      }| j                  j,                  j                  |       | j                  j/                         }|t         j6                  k(  ryy# t0        $ r- d	t        d
      z  }t        d      }t3        |dz   |z          Y Jt4        $ r- d	t        d      z  }t        d      }t3        |dz   |z          Y ~w xY w)Nz/dialog_release_notes.uiz&Upgradez	dialog-okz&Cancelzdialog-cancelzRelease NoteszUTF-8replacez+<span weight="bold" size="larger">%s</span>z Could not find the release noteszThe server may be overloaded. z<br />z$Could not download the release notesz&Please check your internet connection.TF)r   dialogr   loadUir>   	buttonBoxbuttonr   OksetTextr    setIconr8   CancelsetWindowTitleshowrB   releaseNotesHtmlUri
_expandUrir   readdecodescrolled_notesexec_r   r3   IOErrorAccepted)	rA   upgradeButtoncancelButtonuriresultrelease_notesnotesprimary	secondarys	            r+   showReleaseNotesz&DistUpgradeFetcherKDE.showReleaseNotes   s    i

4<<"<<dkkJ--445E5H5HIa
m,eK01{{,,334D4K4KLQy\*U?34""1_#56==,,8//$--"C"CDC F9 '%**,33GYG**2259**, )))  9K>?@>?	8+i78 9KBCDFG	8+i78	9s   A*H 3I0;2I0/I0N)__name__
__module____qualname__r<   rI   rQ   rn    r-   r+   r:   r:   r   s    
%6	'$r-   r:   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)KDEAcquireProgressAdapterc                    t               | _        t               | _        t        j
                  j                  |d      }t        j                  || j                         | j                  j                  t        d             | j                  j                  j                  |       | j                  j                  j                  j                  | j                          d| _        t%        j&                          y )Nzfetch-progress.uiUpgradeT)r,   r)   r   rT   r"   pathjoinr   rU   r\   r    installingLabelrY   rV   rejectedconnectabort	_continuer   r@   )rA   rD   r>   labeluiFiles        r+   r<   z"KDEAcquireProgressAdapter.__init__   s    &(ig':;

64;;'""1Y<0##++E2&&..tzz:
 ""$r-   c                     d| _         y )NF)r}   rP   s    r+   r|   zKDEAcquireProgressAdapter.abort   s	    r-   c                     | j                   j                  j                  t        d             | j                   j                  j                  d       | j                   j                          y )N'Downloading additional package files...r   )rT   ry   rY   r    installationProgresssetValuer]   rP   s    r+   startzKDEAcquireProgressAdapter.start   sK    ##++78	:((11!4r-   c                 8    | j                   j                          y r5   )rT   hiderP   s    r+   stopzKDEAcquireProgressAdapter.stop   s    r-   c           	      ,   t         j                  j                  j                  j	                  | |       | j
                  j                  j                  t        | j                  | j                  z   t        | j                  | j                  z         z  dz               | j                  dz   }|| j                  kD  r| j                  }t        d      }| j                  dkD  rF|t        d      | j                  | j                  t!        j"                  | j                        fz  z  }n'|t        d      | j                  | j                  fz  z  }| j
                  j$                  j'                  |       t)        j*                          | j,                  S )Nd   r   r   r   zFile %s of %s at %sB/szFile %s of %s)aptrC   baseAcquireProgresspulserT   r   r   r%   current_bytescurrent_itemsfloattotal_bytestotal_itemsr    current_cpsapt_pkgsize_to_strry   rY   r   r@   r}   )rA   ownercurrent_item
label_texts       r+   r   zKDEAcquireProgressAdapter.pulse   s\   ))//e<((11#$"4"44$""T%5%55679<=3> 	? ))A-$***++L@A
a!45""D$4$4##D$4$4597 7 7J !O,""D$4$406 6 6J##++J7""$~~r-   c                    t        d      ||fz  }t        t        t              rSt	        j
                  d t        d      |t        j                  t        j                        }|t        j                  k(  ryyt        j                  d t        d      t        d      dz   |z   t        j                         t        j                               }|t        j                  k(  ryy)Nz&Please insert '%s' into the drive '%s'zMedia ChangeTz<br>F)r    r$   r   r%   r   questionrX   r[   r   questionYesNor   okcancelYes)rA   mediumdrivemsgchanges        r+   mediaChangez%KDEAcquireProgressAdapter.mediaChange   s    89VUOKlC( ))$.0A3*5..+:L:LNF'  !..tQ~5F/0/@6/I/2034D4G4G4I/?/F/F/HJF (r-   N)	ro   rp   rq   r<   r|   r   r   r   r   rr   r-   r+   rt   rt      s     %"(r-   rt   )+utilsr   ImportErrorPyQt5r   PyQt5.QtCorer   r   r	   PyQt5.QtGuir
   PyQt5.QtWidgetsr   r   r   r   PyKDE4.kdeuir   r   r   PyQt4.QtGuiPyQt4.QtCorePyQt4r   "DistUpgrade.DistUpgradeFetcherCorer   r   r    urllib.requestr   urllib.errorr   r"   r   r   r,   r3   r8   r:   rC   r   r   rt   rr   r-   r+   <module>r      s   ,  zX !   E   " " 	 
 "#>*C2 CL@ 1 1 A A @c  AAJJ)	s   4B 'CC