HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/DistUpgrade/__pycache__/DistUpgradeViewKDE.cpython-38.pyc
U

٪zcr��	@sz�ddlmZe�dkre�ddlmZddlmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZmZmZmZddlmZmZmZWn~ek
�r ddlmZddl mZmZmZm	Z	m
Z
dd	l!mZmZmZm
Z
mZmZmZmZmZmZmZmZmZmZYnXdd
l"Z"dd
l#Z#dd
l$Z$dd
l%Z%dd
l&Z&dd
l'Z'dd
l(Z(dd
l)Z)dd
l*Z*dd
l+Z+dd
l,Z,dd
l-Z-ddl.m/Z/m0Z0ddl1m1Z1m2Z2m3Z3m4Z4dd
l5m6Z7dd
l8Z8dd
l9Z9ddl:m9Z;ddl:m<Z<ddl=m=Z=d7dd�Z>dd�Z?dd�Z@gfdd�ZAdd�ZBejBe_CeBe_BGdd�d�ZDGdd�de�ZEGd d!�d!e)jFjGjH�ZIGd"d#�d#e)jFjGjJ�ZKGd$d%�d%e4�ZLGd&d'�d'e3�ZMGd(d)�d)e�ZNGd*d+�d+e1�ZOePd,k�r�eO�ZQeQ�Rd-d.�e#jSdd/k�r$eQjT�U�ZVeVdk�re'�Wd0g�e#�X�eQjT�Y�e
�Z�e&�[d1��qe#jSdd2k�r�e\e#jSd3��Z]e]�^�Z_W5QRXe_D]$Z`eQjT�ae`�e
�Z�e&�[d4��qZe
�Z��q�e)�b�Zce#jSdd
�D]<Zdecedje�r�ecedjf�s�ecedjgd5d6�neced�h��q�ec�ieQjjeQjk�e
�Z��q�d
S)8�)�get_distZtrusty�)�uic)�Qt�QLocale�QTranslator�PYQT_VERSION�QTimer)
�	QTextEdit�QApplication�QDialog�QMessageBox�QDialogButtonBox�QTreeWidgetItem�QPushButton�QWidget�QHBoxLayout�QLabel)�QTextOption�QPixmap�QIcon�QTextCursor)�QDBusConnection�QDBusInterface�
QDBusReply)r
rrrr
rrrrrrrrrN)�
run_apport�apport_crash)�DistUpgradeView�FuzzyTimeToStr�InstallProgress�AcquireProgress)�get)�gettext)�unicode_gettext)�
QUrlOpener�strictcCst|t�r|�d|�S|SdS)N�UTF-8)�
isinstance�bytes�decode)�s�errors�r,�@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeViewKDE.py�utf8Ms
r.cCs*tj�|�rt�||�ntd|�dS)Nzerror, can't find file: )�os�path�existsr�loadUi�print)�file�parentr,r,r-r2Tsr2cCstj�|�rt|�SdS�N)r/r0r1r)r0r,r,r-�_find_pixmap[sr7cCs<tt�tkrt�|�S|D]}t|�}|rt|�SqdSr6)�typer�intrZ	fromThemer7)�name�	fallbacksr0�pixmapr,r,r-�_icon`s
r=cCs|��s|�|�dSr6)ZisMaximized�origAdjustSize��selfr,r,r-�
adjustSizeqsrAc@s>eZdZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Z	d
S)�
_OSReleasez/etc/os-releaseTcCsDi|_d|_tj|_tj�|j�s&dS|��d|_|r@|�	�dS)NFT)
�resultZvalidrB�OS_RELEASE_FILEr4r/r0�isfile�parse�inject_lsb_compat)r@Z
lsb_compatr,r,r-�__init__{sz_OSRelease.__init__cCsd|jd|jd<|jd|jd<|j�d�|jd<|jdsN|j�d�|jd<|j�d�|jd	<dS)
NZIDzDistributor ID�PRETTY_NAMEZDescriptionZVERSION_CODENAMEZCodenameZUBUNTU_CODENAMEZ
VERSION_IDZRelease)rCr!r?r,r,r-rG�s
z_OSRelease.inject_lsb_compatcCsBt|jd�}|D]$}|��}|s"q|j|�dd��q|��dS)N�r�=r)�openr4�strip�parse_entry�split�close)r@�f�liner,r,r-rF�sz_OSRelease.parsecCs4|�|�}|dkr&t|t�r&|�d�}||j|<dS)NZID_LIKE� )�parse_valuer'�strrOrC)r@�key�valuer,r,r-rN�s

z_OSRelease.parse_entrycCs"t�|�}t|�dkr|dS|S)Nrr)�shlexrO�len)r@rW�valuesr,r,r-rT�s
z_OSRelease.parse_valueN)T)
�__name__�
__module__�__qualname__ZDEFAULT_OS_RELEASE_FILErDrHrGrFrNrTr,r,r,r-rBws

	rBc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�DumbTerminalz A very dumb terminal cCsRt�|d|�||_|�d�|�d�|�tj�|�d�|�	d�d|_
dS)z2 really dumb terminal with simple editing support �Z	Monospace�FTN)r
rH�installProgressZ
setFontFamilyZsetFontPointSizeZsetWordWrapModerZNoWrapZsetUndoRedoEnabledZsetOverwriteMode�_block)r@raZparent_framer,r,r-rH�s



zDumbTerminal.__init__cCs,t��\|_|j_|jdkr&dtjd<|jS)�
pty voodoor�dumb�TERM)�pty�fork�	child_pidra�	master_fdr/�environr?r,r,r-rg�s

zDumbTerminal.forkcCsRt�|jjgggd�\}}}t|�dkrFt�|jjd�}|�t|��t�	�dS)Nr�)
�selectrarirYr/�read�insertWithTermCodesr.r�
processEvents)r@�rlist�wlist�xlistrRr,r,r-�update_interface�s
zDumbTerminal.update_interfacecCshd}|D]P}t|�dkr4|�|�|����d}q|td�krBq|td�krPq||7}q|�|�dS)z support basic terminal codes r_r`�
�N)�ordZinsertPlainTextZ
textCursorZdeletePreviousChar�chr)r@�textZdisplay_text�cr,r,r-rn�s

z DumbTerminal.insertWithTermCodescCs^t|jd�sdS|��tjkr6t�|jjtd��dS|�	�sBdSt�|jj|�	��
��dS)z$ send (ascii) key events to the pty riNr`)�hasattrrarVrZ
Key_Backspacer/�writerirwrxZtoUtf8)r@Zevr,r,r-�
keyPressEvent�szDumbTerminal.keyPressEventcCs&|jr
dSd|_|�tj�d|_dS)z: helper that ensures that the cursor is always at the end NTF)rbZ
moveCursorrZEndr?r,r,r-�onCursorPositionChanged�s
z$DumbTerminal.onCursorPositionChangedN)
r[r\r]�__doc__rHrgrsrnr|r}r,r,r,r-r^�sr^c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�KDECdromProgressAdapterz Report the cdrom add progress cCs|jj|_|jj|_||_dSr6)�window_main�label_status�status�progressbar_cache�progressbarr5�r@r5r,r,r-rH�s

z KDECdromProgressAdapter.__init__cCs4|r|j�|�|j�|jt|j��t��dS)z; update is called regularly so that the gui can be redrawn N)	r��setTextr��setValuerW�floatZ
totalStepsrro)r@rx�stepr,r,r-�update�szKDECdromProgressAdapter.updatecCsdS)N)Fr_r,r?r,r,r-�ask_cdrom_namesz&KDECdromProgressAdapter.ask_cdrom_namecCsdS)NFr,r?r,r,r-�change_cdromsz$KDECdromProgressAdapter.change_cdromN)r[r\r]r~rHr�r�r�r,r,r,r-r�s
rcs2eZdZdZdd�Zd	�fdd�	Zdd�Z�ZS)
�
KDEOpProgressz methods on the progress bar cCs||_||_dSr6)r��progressbar_label)r@r�r�r,r,r-rH
szKDEOpProgress.__init__Ncs*tt|��|�|j�|j�t��dSr6)�superr�r�r�r��percentrro)r@r���	__class__r,r-r�szKDEOpProgress.updatecCs|j�d�dS�Nr_)r�r�r?r,r,r-�doneszKDEOpProgress.done)N)r[r\r]r~rHr�r��
__classcell__r,r,r�r-r�s
r�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�KDEAcquireProgressAdapterz? methods for updating the progress bar while fetching packages cCs(t�|�|jj|_|jj|_||_dSr6)r rHr�r�r�r��progressr5r�r,r,r-rH&s


z"KDEAcquireProgressAdapter.__init__cCs@td�||f}t�|jjtd�|tjtj�}|tjkr<dSdS)Nz&Please insert '%s' into the drive '%s'zMedia ChangeTF)�_r
�questionr5r��Ok�Cancel)r@ZmediumZdrive�msgZchanger,r,r-�media_change-s

z&KDEAcquireProgressAdapter.media_changecCs$t�|�|j�d�|j��dS)Nr)r �startr�r�r��showr?r,r,r-r�4s
zKDEAcquireProgressAdapter.startcCs$|jjj�d�|j�td��dS)N�  zFetching is complete)r5r��
progress_textr�r�r�r?r,r,r-�stop:szKDEAcquireProgressAdapter.stopcCs�t�||�|j�|j�|jd}||jkr4|j}|jdkr�t�	|j�}t
|t�rb|�t
���}|j�td�||j|f�|jjj�dtd�t|j�d�n*|j�td�||jf�|jjj�d�t��d	S)
z\ we don't have a mainloop in this application, we just call processEvents here and elsewhererrz!Fetching file %li of %li at %sB/sz<i>�About %s remainingz</i>zFetching file %li of %lir�T)r �pulser�r�r�Z
current_itemsZtotal_items�current_cps�apt_pkgZsize_to_strr'r(r)�locale�getpreferredencodingr�r�r�r5r�r�r�etarro)r@�ownerZcurrent_itemr�r,r,r-r�>s



(zKDEAcquireProgressAdapter.pulseN)	r[r\r]r~rHr�r�r�r�r,r,r,r-r�!sr�c@sdeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�ZdS)�KDEInstallProgressAdapterz?methods for updating the progress bar while installing packages��c
Cs�t�|�d|_|jj|_|jj|_|jj|_||_zt	dd�|_
WnNtk
r�}z0t�
d|�tjdkrztjj|_
ntj|_
W5d}~XYnXtj�dd�dS)Nz/var/log/dist-upgrade/term.log�wbzCan not open terminal log: '%s'�3zDPkg::StopOnError�False)rrH�_cacher�r�r�r�r�r5rL�
_terminal_log�	Exception�logging�error�sys�version�stdout�bufferr�Zconfig�set)r@r5�er,r,r-rH\s




z"KDEInstallProgressAdapter.__init__cCs^t�|�d|_|j�td��|j�d�|j�d�d|_	d|_
d|_|jj
j�d�dS)NFzApplying changesrrS�T)r�start_update�finishedr�r�r�r�r�r��
start_time�time_ui�
last_activityr5r��showTerminalButton�
setEnabledr?r,r,r-r�os
z&KDEInstallProgressAdapter.start_updatecCs�t�|||�t�d||f�t�dd�|kr4dStd�|}td�|}d||f}t|jj�}t	d|�|j�
|�|j�|�|dkr�|j
�|�|j
��n
|j
��|��|��dS)	Nz*got an error from dpkg for pkg: '%s': '%s'Zdpkgz*dependency problems - leaving unconfiguredFzCould not install '%s'zThe upgrade will continue but the '%s' package may not be in a working state. Please consider submitting a bug report about it.�<big><b>%s</b></big><br />%s�dialog_error.ui)rr�r�r"�dgettextr�rr5r�r2�translate_widget_children�label_errorr��textview_errorr��hiderA�exec_)r@�pkgZerrormsg�summaryr��dialoguer,r,r-r�~s&�

zKDEInstallProgressAdapter.errorc
Cs<t�d|�t��}td�|}td�}d||f}t|jj�|_td|j�|jj	�
|�|jj��|jj
j�|j�tj�|�s�|d}tj�d�r�dd||g}tj|tjd	���d
}|�dd�}|jj�
|�n|jj�
td
��|j��}	|jt��|7_|	tjk�r*t�|jd�nt�|jd�dS)z6ask question in case conffile has been changed by userz.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.z1<span weight="bold" size="larger">%s </span> 

%szdialog_conffile.uiz
.dpkg-distz
/usr/bin/diffz-u)r�rr&�replacez The 'diff' command was not foundsy
sn
N)r��debug�timer�rr5r��confDialoguer2Zlabel_conffiler��textview_conffiler��show_difference_button�clicked�connect�showConffiler/r0r1�
subprocess�Popen�PIPEZcommunicater)r�r��Acceptedr{ri)
r@Zcurrent�newr�ZprimZsecZmarkup�cmdZdiffrCr,r,r-�conffile�s.
z"KDEInstallProgressAdapter.conffilecCsN|jj��r,|jj��|jj�td��n|jj��|jj�td��dS)NzShow Difference >>>z<<< Hide Difference)r�r��	isVisibler�r�r�r�r�r?r,r,r-r��s
z&KDEInstallProgressAdapter.showConffilecCsft��\|_|_|jdkrPdtjd<dtjks<tjddkrFdtjd<dtjd<t�d	|j�|jS)
rcrrdreZDEBIAN_FRONTEND�kdeZnoninteractiveZnoneZAPT_LISTCHANGES_FRONTENDz fork pid is: %s)rfrgrhrir/rjr�r�r?r,r,r-rg�s


�

zKDEInstallProgressAdapter.forkcCs�|jdkrt��|_|j�|j�|j�t|����|dkr�t��|_	d|_
|j	|j}||j8}t|�|}d|j|}|dkr�|dkr�|j
�td�t|��n|j
�d�d	S)
zupdate progress bar and labelr�g�?FgY@g�N@i�r�rSN)r�r�r�r�r�r�r�r.rMr��activity_timeout_reportedr�r�r�r�r)r@r�r�r�ZdeltaZtime_per_percentr�r,r,r-�
status_change�s



z'KDEInstallProgressAdapter.status_changecCs|j�d�dSr�)r�r�r?r,r,r-�
finish_update�sz'KDEInstallProgressAdapter.finish_updatec
Cs�z`t�|jgggd�\}}}t|�dkrZt�|jd�}|j�|�|jj�	t
|dd��nWq�Wqtk
r�}z"t|�t
�d|�WY�q�W5d}~XYqXqzt�|�Wn<tk
r�}zt
�d|j|f�d|_W5d}~XYnX|jdk�rt|j|jt��k�rt|j�sfzt
�d	|j|j��f�Wn&tk
�r^t
�d
|j�YnXd|_|jjj��t��t� d�dS)
z�
        no mainloop in this application, just call processEvents lots here
        it's also important to sleep for a minimum amount of time
        rrkr�)r+z&error reading from self.master_fd '%s'NzHgot ValueError from InstallProgress.update_interface. Line was '%s' (%s)r_z+no activity on terminal for %s seconds (%s)z&no activity on terminal for %s secondsTg{�G�z�?)!rlrirYr/rmr�r{r5�
terminal_textrnr.r�r3r�r�rrs�
ValueErrorr�r��TIMEOUT_TERMINAL_ACTIVITYr�r��warningr�rx�UnicodeEncodeErrorr��
konsole_framer�rro�sleep)r@rprqrrrRr�r,r,r-rs�s<
��z*KDEInstallProgressAdapter.update_interfacecCs.|��t�|jtj�\}}||jkrq*q|Sr6)rsr/�waitpidrh�WNOHANG)r@�pid�resr,r,r-�
wait_childs

z$KDEInstallProgressAdapter.wait_childN)r[r\r]r~r�rHr�r�r�r�rgr�r�rsr�r,r,r,r-r�Vs%*r�c@s$eZdZdd�Zdd�Zdd�ZdS)�UpgraderMainWindowcCst�|�td|�dS)Nzwindow_main.ui)rrHr2r?r,r,r-rH"s
zUpgraderMainWindow.__init__cCs
||_dSr6)r5)r@Z	parentRefr,r,r-�	setParent'szUpgraderMainWindow.setParentcCs$|j��}|r|��n|��dSr6)r5�on_window_main_delete_eventZaccept�ignore)r@ZeventrPr,r,r-�
closeEvent*s

zUpgraderMainWindow.closeEventN)r[r\r]rHr�r�r,r,r,r-r� sr�cs�eZdZdZd;dd�Zdd�Zdd�Zd	d
�Zd<dd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Z�fd!d"�Zd=d#d$�Zd>d%d&�Zd?d(d)�Zd*d+�Zd@d-d.�ZdAd0d1�Zd2d3�Zd4d5�ZdBd7d8�Zd9d:�Z�ZS)C�DistUpgradeViewKDEz$KDE frontend of the distUpgrade toolNc

Cs�t�|�t��d�t�d�}|�tj�|r8|dkrLtj	�
t��d�}nd}zt�
d|�t�d�Wn0tk
r�}zt�d|�W5d}~XYnXdtjkr�td	��d
tjd<dtjd
<dtjd<d
tjd<tdg�|_t|j�}tt�tk�r|�t��ddd�n|�t��ddd�|j�|�t���tdddgd�}|j�|�t �|_!|j!�"|�|j!�#�d|_$t%|j!j&|j!j'�|_(t)|�|_*t+|�|_,t-|�|_.|j/t0_1|j!j2�3d�|j!j2j4�5|j6�t�
d|�t�d�|�7�t8�j9d}|�r|dk�rd}|j!j:�;�}	|	�<d|�}	|	�<dd�}	|j!j:�=|	�|j!j>�?�t@|j!j>�|_A|j!j>�Bdd �tC|j.|j!j>�|_D|jA�E|jD�|jD�#�|�F�tG�H|jI�tJ�Kd!|jL�|j�M�dS)"NZKDE�PyQt4�.Zmoz)/usr/share/locale/ubuntu-release-upgraderzubuntu-release-upgraderzError setting locales (%s)ZDISPLAYzNo DISPLAY in os.environ foundr�ZQT_PLATFORM_PLUGINZTRUEZKDE_FULL_SESSION�5ZKDE_SESSION_VERSIONZQT_QPA_PLATFORMTHEMEZqtr�z/usr/share/qt5/translationsz/usr/share/qt4/translationszsystem-software-updatez=/usr/share/icons/oxygen/48x48/apps/system-software-update.pngz5/usr/share/icons/hicolor/48x48/apps/adept_manager.png�r;FrIZUbuntuZKubuntuz%sz20.04iXi��
)NrrH�
get_telemetryZset_updater_typer�Z	getLoggerZsetLevel�INFOr/r0�join�getcwdr"�bindtextdomain�
textdomainr�r�rjr�apprr8rr9�loadr�systemZinstallTranslatorr$ZsetupUrlHandlesr=Z
setWindowIconr�r�r�r��	prev_stepr�r�r��_opCacheProgressr��_acquireProgressr�_cdromProgressr��_installProgress�_handleExceptionr��
excepthookr�r�r�r��showTerminalr�rBrCZlabel_titlerxr�r�r�r�rZkonsole_frame_layoutZsetMinimumSizer^r�Z	addWidget�inhibitScreenlock�atexit�register�uninhibitScreenlockr	Z
singleShot�exitMainLoopMidFlightr�)
r@ZdatadirZlogdirZloggerZ	localedirr�Z
translator�messageIconr:Ztitle_stringr,r,r-rH4s|

 






��





zDistUpgradeViewKDE.__init__cCstd�|j��dS)Nr)r3r�exitr?r,r,r-r�sz(DistUpgradeViewKDE.exitMainLoopMidFlightcCsZt����stj�d�dStdddt���}|��rV|�ddd�}t	|�}|�
�|_dS)N�]Cannot connect to the D-Bus session bus.
To start it, run:
	eval `dbus-launch --auto-syntax`
�org.kde.screensaver�/ScreenSaverr_ZInhibitZDisUpgradeViewKDEzUpgrading base OS)r�
sessionBus�isConnectedr��stderrr{r�isValid�callrrW�screenLockCookie)r@�ifacer�Zreplyr,r,r-r�s�z$DistUpgradeViewKDE.inhibitScreenlockcCsHt����stj�d�dStdddt���}|��rD|�d|j	�dS)Nrrrr_Z	UnInhibit)
rrrr�rr{rrrr)r@rr,r,r-r�s�z&DistUpgradeViewKDE.uninhibitScreenlockcCs�|dkr|j}t|t�s"t|t�r\t|���dkrF|�t�dd��n|�t	t|�����|�
�dkr�|�
�D]}|�|�|�|�qpdS)N�Error�kdelibs)
r�r'rrrUZwindowTitle�setWindowTitler"r�r�Zchildren�translate_widgetr�)r@ZparentWidget�widgetr,r,r-r��s
z,DistUpgradeViewKDE.translate_widget_childrencCs�t|t�st|t�r�t|���dkrLtjdt�d�dd�}|�t	|d��nft|���dkr�tjdt�d�dd�}|�t	|d��n.t|���dkr�|�t
t|�����dd��dS)	Nz&CancelrT)Zfallback�&Closer_r��&)r'rrrUrxr"Ztranslationr�r�r#r�r�)r@r rr,r,r-r�s"��z#DistUpgradeViewKDE.translate_widgetcCs�t|t�st|t�rdSt�|||�}t�dd�|��t|||�t	�s�d�t�|||��}t
|j�}td|�|�
|j�|j�|�|��|��t�d�dS)zCrash handler.Nz)not handled exception in KDE frontend:
%s�
r_r�r)�
issubclass�KeyboardInterrupt�
SystemExit�	traceback�format_exceptionr�r�r�rrrr�r2r��dialogZcrash_detailr�rAr�r�r)r@�exctypeZexcvalue�exctb�lines�tbtextr)r,r,r-r�s 
�

z#DistUpgradeViewKDE._handleExceptioncCsX|jj��r,|jj��|jj�td��n|jj��|jj�td��|j��dS)NzShow Terminal >>>z<<< Hide Terminal)	r�r�r�r�r�r�r�r�rAr?r,r,r-r
�szDistUpgradeViewKDE.showTerminalcCs|jSr6)rr?r,r,r-�getAcquireProgress�sz%DistUpgradeViewKDE.getAcquireProgresscCs||j_|jSr6)rr�)r@�cacher,r,r-�getInstallProgress�sz%DistUpgradeViewKDE.getInstallProgresscCs|jSr6)rr?r,r,r-�getOpCacheProgress�sz%DistUpgradeViewKDE.getOpCacheProgresscCs|jSr6)rr?r,r,r-�getCdromProgresssz#DistUpgradeViewKDE.getCdromProgresscCs|jj�|�dSr6)r�r�r�)r@r�r,r,r-�
update_statussz DistUpgradeViewKDE.update_statuscCs8t|jd|j�}t|jd|j�}|��|��dS)N�image_step%i�label_step%i)�getattrr�rWr�)r@r��image�labelr,r,r-�hideStepszDistUpgradeViewKDE.hideStepcCsL|j}|rHt|jd|j�}tddddgd�}|�|�dd��|��dS)Nr4z
dialog-cancelz7/usr/share/icons/oxygen/16x16/actions/dialog-cancel.pngz@/usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-cancel.pngz4/usr/share/icons/crystalsvg/16x16/actions/cancel.pngr��)rr6r�rWr=�	setPixmapr<r�)r@r�r7Z
cancelIconr,r,r-�abort
s��zDistUpgradeViewKDE.abortcs�tt|��|�tddddgd�}tdddd	gd�}|jr|t|jd
|jj�}t|jd|jj�}|�|�	dd��|�
�||_t|jd
|j�}t|jd|j�}|�|�	dd��|�
�|�d
|��d�dS)Nz	dialog-okz3/usr/share/icons/oxygen/16x16/actions/dialog-ok.pngz</usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-ok.pngz0/usr/share/icons/crystalsvg/16x16/actions/ok.pngr�zarrow-rightz5/usr/share/icons/oxygen/16x16/actions/arrow-right.pngz>/usr/lib/kde4/share/icons/oxygen/16x16/actions/arrow-right.pngz9/usr/share/icons/crystalsvg/16x16/actions/1rightarrow.pngr4r5r:z<b>z</b>)
r�r��setStepr=rr6r�rWr;r<r�r�rx)r@r�ZokIconZ	arrowIconr7r8r�r,r-r=s0����zDistUpgradeViewKDE.setStepcCs�d||f}t|j�}td|�|�|�|j�|�|dkrV|j�|�|j��n
|j��|�	t
d��tddddgd�}|j�
|�d	d	��|��|��dS)
Nr�r�ZInformationzdialog-informationz;/usr/share/icons/oxygen/48x48/status/dialog-information.pngzD/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-information.pngz=/usr/share/icons/crystalsvg/32x32/actions/messagebox_info.pngr��0)rr�r2r�r�r�r�r�r�rr�r=r7r;r<rAr��r@r�r�Zextended_msgr�rr,r,r-�information1s&



��zDistUpgradeViewKDE.informationcCs�d||f}t|j�}td|�|�|�|j�|�|dkrV|j�|�|j��n
|j��t	ddddgd�}|j
�|�dd��|�
�|��d	S)
Nr�r�zdialog-errorz5/usr/share/icons/oxygen/48x48/status/dialog-error.pngz>/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-error.pngzA/usr/share/icons/crystalsvg/32x32/actions/messagebox_critical.pngr�r>F)rr�r2r�r�r�r�r�r�r=r7r;r<rAr�r?r,r,r-r�Hs&



��zDistUpgradeViewKDE.errorTcCs�t�|||||�t|j�|_td|j�|jj��|jjj	�
|j�|�|j�|jj�
tj��td��|jj�
tj��t��|jj�
tj��td�d�tddddgd	�}|jj�|�d
d
��|dk�r"|d�d
d�}|jj�
tj��|�|d�d
d�}	|jj�
tj��|	�d|}
|jj�|
�|jj�|j�|jj��|jj�dg�|jj� ���|j!D],}|jj�"dt#|jjtd�|j$g���qz|j%D],}|jj�"dt#|jjtd�|j$g���q�|j&D],}|jj�"dt#|jjtd�|j$g���q�|j'D],}
|jj�"dt#|jjtd�|
j$g���q|j(D],}|jj�"dt#|jjtd�|j$g���qJ|j�)�|j�*�}|tj+k�r�dSdS)zshow the changes dialoguezdialog_changes.uiz&Start Upgrade�Details� >>>zdialog-warningz7/usr/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/share/icons/crystalsvg/32x32/actions/messagebox_warning.pngr�r>Nrr�r_rz<big><b>%s</b></big>ZPackageszNo longer supported %sz	Remove %szRemove (was auto installed) %sz
Install %sz
Upgrade %sTF),r�confirmChangesrr��changesDialoguer2�treeview_detailsr��	buttonBoxZ
helpRequestedr��showChangesDialogueDetailsr��buttonrr�r�r��HelpZsetIconrr=Zquestion_pixmapr;r<r�r�Z
label_summaryZ
label_changesZconfirmChangesMessage�clearZsetHeaderLabels�header�	demotionsZinsertTopLevelItemrr:ZtoRemoveZtoRemoveAutoZ	toInstallZ	toUpgraderAr�r�)r@r�ZchangesrLZdownloadSizeZactionsZremoval_boldr�cancelZconfirmZsummaryTextZdemotedZrm�instZupr�r,r,r-rC`sX���

*
*
*
*
*

z!DistUpgradeViewKDE.confirmChangescCsp|jj��r8|jj��|jj�tj��t	d�d�n*|jj�
�|jj�tj��dt	d��|j��dS)NrArBz<<< )rDrEr�r�rFrHrrIr�r�r�rAr?r,r,r-rG�s z-DistUpgradeViewKDE.showChangesDialogueDetails�NocCs4t�|j|d|tjtjBtj�}|tjkr0dSdS)Nz<font>TF)r
r�r��YesrO)r@r�r��default�answerr,r,r-�askYesNoQuestion�s"
z#DistUpgradeViewKDE.askYesNoQuestionr�c	Cs�ttj||tj|j�}|�tj�}|�tj�}|�td��|dkrP|�	|�n
|�	|�|dkrz|�
�}|�|tj
B�|��}|tjkr�dSdS)NZContinuer�TF)r
�Warning�NoButtonr��	addButtonZApplyr�r�r�ZsetDefaultButtonZwindowFlagsZsetWindowFlagsrZFramelessWindowHintr�)	r@r�r�rQ�
messageBoxZcontinueButtonZcancelButton�flagsrRr,r,r-�askCancelContinueQuestion�s

z,DistUpgradeViewKDE.askCancelContinueQuestioncCsxttjtd�td�tj|j�}|�tj�}|�tj�}|�td��	dd��|�t
�dd��|��}|tjkrtdSd	S)
NzRestart requiredz<<b><big>Restart the system to complete the upgrade</big></b>z_Restart Nowr�r"rr!TF)
r
ZQuestionr�rUr�rVrPrOr�r�r"r�r�)r@rWZ	yesButtonZnoButtonrRr,r,r-�confirmRestart�s
z!DistUpgradeViewKDE.confirmRestartcCst��dSr6)rror?r,r,r-ro�sz DistUpgradeViewKDE.processEventsFcCsdSr6r,)r@r�r,r,r-�
pulseProgress�sz DistUpgradeViewKDE.pulseProgresscCsBtd�}|�dd�}t�|jtd�|tjtj�}|tjkr>dSdS)Nz�<b><big>Cancel the running upgrade?</big></b>

The system could be in an unusable state if you cancel the upgrade. You are strongly advised to resume the upgrade.r#z<br />zCancel Upgrade?TF)r�r�r
r�r�rPrO)r@rxrMr,r,r-r��s
z.DistUpgradeViewKDE.on_window_main_delete_event)NN)N)N)N)NT)rO)r�)F)r[r\r]r~rHrrrr�rrr
r.r0r1r2r3r9r<r=r@r�rCrGrSrYrZror[r�r�r,r,r�r-r�2s:
c

	

�
8	


r��__main__zinput box testz�bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar z--test-termZbashg{�G�z�?z--show-in-terminal�g�������?T)�purge)r%)lZutilsr�ImportErrorZPyQt5rZPyQt5.QtCorerrrrr	ZPyQt5.QtWidgetsr
rrr
rrrrrrZPyQt5.QtGuirrrrZPyQt5.QtDBusrrrr�ZPyQt4.QtCoreZPyQt4.QtGuirr�r�r�r�r�r'Zaptr�rXr/rfZDistUpgradeApportrrrrrr Z	telemetryr!r�rlr"ZDistUpgradeGettextr�r#r$r.r2r7r=rAr>rBr^r��baseZ
CdromProgressrZ
OpProgressr�r�r�r�r�r[ZviewrS�argvr�rgr�rrrsror�rLrQrm�charsryrnZCacher/r�Zis_installedZ
is_upgradableZmark_deleteZmark_installZcommitrrr,r,r,r-�<module>s�
0F
4K5K,