3
NZ                 @   s   d dl T d dlmZmZ d dlmZ d dlT ddlT d dlT d dl	T d dl
T ddlmZ ddlmZmZ ddlmZ d dlZd ZdZdZG d	d
 d
eeZdS )    )*)deviceutils)cups   )	Ui_Dialog)	FileTableFILETABLE_TYPE_PRINT)%PRINTERNAMECOMBOBOX_TYPE_PRINTER_ONLYNc               @   s   e Zd Zd"ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd#d d!ZdS )$PrintDialogNc             C   s   t j| | | j|  || _t | _| jj  | jj  | j  g | _	|d k	rpx |D ]}| j
jtjj| qTW i | _tjd| j d S )Nr   )QDialog__init__ZsetupUiprinter_nameZUserSettingsuser_settingsloaddebuginitUi	file_listFilesZaddFileFromUIospathabspathdevicesZQTimerZ
singleShotupdateFilePage)selfparentr   argsa r   #/usr/share/hplip/ui5/printdialog.pyr   2   s    



zPrintDialog.__init__c             C   s   d| j _| jjj| j | jjj| j | jjj| j	 t
j
t
jt
j | j  | j  | jttdd | jr| jj| j | jjd d S )NTZhp_logoZ128x128r   )OptionsToolBoxZinclude_job_optionsZCancelButtonZclickedconnectCancelButton_clicked
BackButtonBackButton_clicked
NextButtonNextButton_clickedsignalSIGINTSIG_DFLinitFilePageinitOptionsPageZsetWindowIconZQIconZload_pixmapr   PrinterNameZsetInitialPrinterStackedWidgetsetCurrentIndex)r   r   r   r   r   J   s    zPrintDialog.initUic             C   s@   | j jt | j j| jj | j jj| j | j j	j| j
 d S )N)r   setTyper	   ZsetWorkingDirr   Zworking_dirZisEmptyr!   Files_isEmptyZ	isNotEmptFiles_isNotEmpty)r   r   r   r   r*   c   s    zPrintDialog.initFilePagec             C   sH   | j j| jd | j j| jj  | jjd | jt | jj	  d S )NzNext >F)
r%   setText_PrintDialog__tr
setEnabledr   Z
isNotEmptyr#   updateStepText	PAGE_FILEupdateUi)r   r   r   r   r   k   s
    
zPrintDialog.updateFilePagec             C   s   | j jd d S )NF)r%   r4   )r   r   r   r   r0   r   s    zPrintDialog.Files_isEmptyc             C   s   | j jd d S )NT)r%   r4   )r   r   r   r   r1   v   s    zPrintDialog.Files_isNotEmptyc             C   s<   | j jd | jjt | jjj| j | jjj| j d S )NT)r#   r4   r,   r/   r
   "PrinterNameComboBox_currentChangedr!   PrinterNameComboBox_noPrinters)r   r   r   r   r+   ~   s    zPrintDialog.initOptionsPagec          
   C   s   t jttj zb| jj  | jjd t	| j
j}|dkrT| jj| jd|  n| jj| jd | jt W d t j  X d S )NTr   zPrint %s Filesz
Print File)ZQApplicationZsetOverrideCursorZQCursorZQtZ
WaitCursorr,   r7   r#   r4   lenr   r   r%   r2   r3   r5   PAGE_OPTIONSZrestoreOverrideCursor)r   Z	num_filesr   r   r   updateOptionsPage   s    
zPrintDialog.updateOptionsPagec             C   sL   y| j |  W n$ tk
r2   tj|| j |< Y nX | jj| j | | d S )N)r   KeyErrorr   ZDevicer    r7   )r   Z
device_urir   r   r   r   r8      s
    z.PrintDialog.PrinterNameComboBox_currentChangedc             C   s   t | | jd | j  d S )NzA<b>No printers found.</b><p>Please setup a printer and try again.)	FailureUIr3   close)r   r   r   r   r9      s    z*PrintDialog.PrinterNameComboBox_noPrintersc             C   s^   xP| j j| jjD ]<}tj| tj|\}}|dkrt| | j	d||f  qW | j
  d S )Nr   z9<b>Print command failed with status code %s.</b><p>%s</p>)r    ZgetPrintCommandsr   r   logr   r   Zrunr>   r3   r?   )r   cmdZstatusoutputr   r   r   executePrint   s    
zPrintDialog.executePrintc             C   s   | j   d S )N)r?   )r   r   r   r   r"      s    z PrintDialog.CancelButton_clickedc             C   s6   | j j }|tkr(| j jt | j  n
tjd d S )NzInvalid page!)r-   currentIndexr;   r.   r6   r   r@   error)r   pr   r   r   r$      s
    

zPrintDialog.BackButton_clickedc             C   s<   | j j }|tkr(| j jt | j  n|tkr8| j  d S )N)r-   rD   r6   r.   r;   r<   rC   )r   rF   r   r   r   r&      s    

zPrintDialog.NextButton_clickedc             C   s&   | j j| jd|d td f  d S )NzStep %d of %dr   )ZStepTextr2   r3   PAGE_MAX)r   rF   r   r   r   r5      s    zPrintDialog.updateStepTextc             C   s   t jd||S )Nr   )ZqApp	translate)r   scr   r   r   Z__tr   s    zPrintDialog.__tr)N)N)__name__
__module____qualname__r   r   r*   r   r0   r1   r+   r<   r8   r9   rC   r"   r$   r&   r5   r3   r   r   r   r   r   0   s    
			

r   )Zbase.gbaser   r   Zprntr   Z
base.codesZui_utilsZPyQt5.QtCoreZPyQt5.QtGuiZPyQt5.QtWidgetsZprintdialog_baser   Z	filetabler   r	   Zprinternamecomboboxr
   r'   r6   r;   rG   r   r   r   r   r   r   <module>   s   