o S(eÞ&ã@sPz1ddlmZeƒdkre‚ddlmZddlmZmZmZddl m Z ddl m Z m Z mZmZWn+ey\ddlmZmZmZdd lm Z m Z mZm Z dd lmZddlmZYnwdd lZdd lmZdd lmZddlmZddlmZdd l Z dd l!Z!ddl"m"Z"dd„Z#dd„Z$dd„Z%Gdd„deƒZ&Gdd„de!j'j(j)ƒZ*d S)é)Úget_distÚtrustyé)Úuic)Ú QTranslatorÚ PYQT_VERSIONÚQLocale)ÚQIcon)ÚQDialogÚQDialogButtonBoxÚ QMessageBoxÚ QApplication)ÚKIconÚ KMessageBoxÚKStandardGuiItem)r r r r )rN)ÚDistUpgradeFetcherCore)Úgettext)Úurlopen)Ú HTTPError)Ú QUrlOpenercCsŽt ¡sCdtjd<dtjd<dtjd<dtjd<tdgƒ}t|ƒ}ttƒtkr2| t   ¡d d d ¡n | t   ¡d d d ¡|  |¡|St ¡S) NÚkdeÚQT_PLATFORM_PLUGINÚTRUEÚKDE_FULL_SESSIONÚ5ÚKDE_SESSION_VERSIONÚQT_QPA_PLATFORMTHEMEzubuntu-release-upgraderÚqtÚ_z/usr/share/qt5/translationsz/usr/share/qt4/translations) r ÚinstanceÚosÚenvironrÚtyperÚintÚloadrÚsystemÚinstallTranslator)ÚappÚ translator©r)úC/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeFetcherKDE.pyÚ_ensureQApplicationEs"      ÿÿ r+cCs0ttƒtkrt dd|¡dSt d|d¡dS)NÚ)r"rr#r ÚwarningrÚsorry)Útextr)r)r*Ú_warningdó r0cCsttƒtkr t |¡St|ƒS©N)r"rr#r Ú fromThemer)Únamer)r)r*Ú_iconks  r5c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚDistUpgradeFetcherKDEcCsBt |||¡tƒ|_|j tdƒ¡||_tƒ ¡t   ¡dS)Nzsystem-software-update) rÚ__init__r+r'Ú setWindowIconr5ÚdatadirrÚsetupUrlHandlesr Ú processEvents)ÚselfÚnew_distÚprogressÚparentr9r)r)r*r7ts   zDistUpgradeFetcherKDE.__init__cCs0ttƒtkrt d||¡dSt d||¡dSr2)r"rr#r Úcriticalrr.)r<ÚsummaryÚmessager)r)r*Úerror€r1zDistUpgradeFetcherKDE.errorcCsDt ¡dkrt dd|jdg¡dSt |j|jdg|j¡dS)Nrz/usr/bin/pkexecÚpkexecz --frontend=DistUpgradeViewKDEz--frontend=DistUpgradeViewKDE)r ÚgetuidÚexecvÚscriptÚ run_options©r<r)r)r*ÚrunDistUpgrader†s ÿÿÿÿz%DistUpgradeFetcherKDE.runDistUpgraderc Cs^tƒ|_t |jd|j¡|jj tj¡}|  t dƒ¡|  t dƒ¡|jj tj ¡}|  t dƒ¡|  t dƒ¡|j t dƒ¡|j ¡|jjdur­| |jj¡}d}zt|ƒ}| ¡ dd¡}|jj  |¡|j ¡}Wn5ty‹d t d ƒ}t d ƒ}t|d |ƒYnty¥d t d ƒ}t dƒ}t|d |ƒYnw|tjkr­dSdS)Nz/dialog_release_notes.uiz&Upgradez dialog-okz&Cancelz dialog-cancelz Release NoteszUTF-8Úreplacez+%sz Could not find the release noteszThe server may be overloaded. z
z$Could not download the release notesz&Please check your internet connection.TF)r ÚdialogrÚloadUir9Ú buttonBoxÚbuttonr ÚOkÚsetTextrÚsetIconr5ÚCancelÚsetWindowTitleÚshowr=ÚreleaseNotesHtmlUriÚ _expandUrirÚreadÚdecodeÚscrolled_notesÚexec_rr0ÚIOErrorÚAccepted) r<Ú upgradeButtonÚ cancelButtonÚuriÚresultÚ release_notesÚnotesÚprimaryÚ secondaryr)r)r*ÚshowReleaseNotes‘sD   ÿ ÿü z&DistUpgradeFetcherKDE.showReleaseNotesN)Ú__name__Ú __module__Ú __qualname__r7rCrJrfr)r)r)r*r6rs   r6c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚKDEAcquireProgressAdaptercCsntƒ|_tƒ|_tj |d¡}t ||j¡|j  t dƒ¡|jj   |¡|jj j |j¡d|_t ¡dS)Nzfetch-progress.uiÚUpgradeT)r+r'r rLr ÚpathÚjoinrrMrTrÚinstallingLabelrQrNÚrejectedÚconnectÚabortÚ _continuer r;)r<r?r9ÚlabelÚuiFiler)r)r*r7¹s z"KDEAcquireProgressAdapter.__init__cCs d|_dS)NF)rrrIr)r)r*rqÊs zKDEAcquireProgressAdapter.abortcCs.|jj tdƒ¡|jj d¡|j ¡dS)Nú'Downloading additional package files...r)rLrnrQrÚinstallationProgressÚsetValuerUrIr)r)r*ÚstartÍs ÿzKDEAcquireProgressAdapter.startcCs|j ¡dSr2)rLÚhiderIr)r)r*ÚstopÓszKDEAcquireProgressAdapter.stopcCsÀtjjj ||¡|jj |j|j t |j |j ƒd¡|j d}||j kr+|j }t dƒ}|jdkrF|t dƒ|j |j t |j¡f7}n |t dƒ|j |j f7}|jj |¡t ¡|jS)NédrrurzFile %s of %s at %sB/sz File %s of %s)Úaptr>ÚbaseÚAcquireProgressÚpulserLrvrwÚ current_bytesÚ current_itemsÚfloatÚ total_bytesÚ total_itemsrÚ current_cpsÚapt_pkgÚ size_to_strrnrQr r;rr)r<ÚownerÚ current_itemÚ label_textr)r)r*rÖs. ÿÿÿ     þÿzKDEAcquireProgressAdapter.pulsecCs„tdƒ||f}ttƒtkr$t dtdƒ|tjtj¡}|tjkr"dSdSt  dtdƒtdƒd|t   ¡t   ¡¡}|tj kr@dSdS)Nz&Please insert '%s' into the drive '%s'z Media ChangeTz
F)rr"rr#r ÚquestionrPrSrÚ questionYesNorÚokÚcancelÚYes)r<ÚmediumÚdriveÚmsgÚchanger)r)r*Ú mediaChangeês$ ÿ  ú ÿý z%KDEAcquireProgressAdapter.mediaChangeN) rgrhrir7rqrxrzrr”r)r)r)r*rj¸s rj)+ÚutilsrÚ ImportErrorÚPyQt5rÚ PyQt5.QtCorerrrÚ PyQt5.QtGuir ÚPyQt5.QtWidgetsr r r r Ú PyKDE4.kdeuirrrÚ PyQt4.QtGuiÚ PyQt4.QtCoreÚPyQt4r†Ú"DistUpgrade.DistUpgradeFetcherCorerrrÚurllib.requestrÚ urllib.errorrr r|rr+r0r5r6r>r}r~rjr)r)r)r*Ús6      ü     F