3
NZ:                @   s   d dl Z d dlT d dlmZ d dlmZ d dlT ddlT d dlm	Z	 d dlm
Z
 d dlT d dlT d dlT G dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    N)*)utils)cups   )PY3)
to_unicodec               @   s   e Zd ZdddZdd ZdS )RangeValidatorNc             C   s   t j| | d S )N)
QValidator__init__)selfparentname r   ,/usr/share/hplip/ui5/printsettingstoolbox.pyr
   *   s    zRangeValidator.__init__c             C   sD   x>t ||d d  D ]&}|t dkr2tj||fS tj||fS W d S )Nr   z0123456789,- )r   r	   Invalid
Acceptable)r   inputposxr   r   r   validate.   s    zRangeValidator.validate)NN)__name__
__module____qualname__r
   r   r   r   r   r   r   )   s   
r   c               @   s   e Zd ZdddZdd ZdS )PinValidatorNc             C   s   t j| | d S )N)r	   r
   )r   r   r   r   r   r   r
   6   s    zPinValidator.__init__c             C   sD   x>t ||d d  D ]&}|t dkr2tj||fS tj||fS W d S )Nr   
0123456789)r   r	   r   r   )r   r   r   r   r   r   r   r   :   s    zPinValidator.validate)NN)r   r   r   r
   r   r   r   r   r   r   5   s   
r   c               @   s   e Zd ZdddZdd ZdS )UsernameAndJobnameValidatorNc             C   s   t j| | d S )N)r	   r
   )r   r   r   r   r   r   r
   C   s    z$UsernameAndJobnameValidator.__init__c             C   sD   x>t ||d d  D ]&}|t dkr2tj||fS tj||fS W d S )Nr   z /=,.:;'"[]{}-+!@#$%^&*())r   r	   r   r   )r   r   r   r   r   r   r   r   G   s    z$UsernameAndJobnameValidator.validate)NN)r   r   r   r
   r   r   r   r   r   r   B   s   
r   c               @   s.   e Zd ZejddfddZdd Zdd ZdS )	OptionComboBoxNFc             C   sD   t j| | || _|| _|| _|| _|| _|	| _|
| _| j	| d S )N)
	QComboBoxr
   groupoptionchoicesdefaulttypother
job_optionsetObjectName)r   Zrwr   r   r   r   r    r!   r"   r#   r$   r   r   r   r
   O   s    zOptionComboBox.__init__c             C   s
   || _ d S )N)
pushbutton)r   r&   r   r   r   setDefaultPushbutton]   s    z#OptionComboBox.setDefaultPushbuttonc             C   s
   || _ d S )N)r#   )r   r#   r   r   r   setOthera   s    zOptionComboBox.setOther)r   r   r   r   PPD_UI_PICKONEr
   r'   r(   r   r   r   r   r   N   s   r   c               @   s   e Zd ZdddZdd ZdS )OptionSpinBoxFc             C   s2   t j| | || _|| _|| _|| _| j| d S )N)QSpinBoxr
   r   r   r!   r$   r%   )r   r   r   r   r   r!   r$   r   r   r   r
   g   s    zOptionSpinBox.__init__c             C   s
   || _ d S )N)r&   )r   r&   r   r   r   r'   p   s    z"OptionSpinBox.setDefaultPushbuttonN)F)r   r   r   r
   r'   r   r   r   r   r*   f   s   
	r*   c               @   s   e Zd ZdddZdd ZdS )OptionRadioButtonFc             C   s2   t j| | || _|| _|| _|| _| j| d S )N)QRadioButtonr
   r   r   r!   r$   r%   )r   r   r   r   r   r!   r$   r   r   r   r
   v   s    zOptionRadioButton.__init__c             C   s
   || _ d S )N)r&   )r   r&   r   r   r   r'      s    z&OptionRadioButton.setDefaultPushbuttonN)F)r   r   r   r
   r'   r   r   r   r   r,   u   s   
	r,   c               @   s   e Zd ZdddZdS )DefaultPushButtonFc
       
      C   sD   t j| | || _|| _|| _|| _|| _|| _|	| _| j	| d S )N)
QPushButtonr
   r   r   r!   controlr"   r    r$   r%   )
r   r   r   r   r   r    r!   r0   r"   r$   r   r   r   r
      s    zDefaultPushButton.__init__N)F)r   r   r   r
   r   r   r   r   r.      s   r.   c               @   s$   e Zd Zdd Zdd Zdd ZdS )PageRangeRadioButtonc             C   s2   t j| | || _|| _|| _d| _| j| d S )NT)r-   r
   r   r   r!   r$   r%   )r   r   r   r   r   r!   r   r   r   r
      s    zPageRangeRadioButton.__init__c             C   s
   || _ d S )N)edit_control)r   r2   r   r   r   setRangeEdit   s    z!PageRangeRadioButton.setRangeEditc             C   s
   || _ d S )N)r&   )r   r&   r   r   r   r'      s    z)PageRangeRadioButton.setDefaultPushbuttonN)r   r   r   r
   r3   r'   r   r   r   r   r1      s   	r1   c               @   sD  e Zd ZdPddZdQddZdd Zd	d
 Zdd Zdd ZdRd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/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z d@dA Z!dBdC Z"dDdE Z#dFdG Z$dHdI Z%dJdK Z&dLdM Z'dSdNdOZ(dS )TPrintSettingsToolboxFc             C   sf   t j| | || _ttdd| _ttdd| _d| _i | _d| _	d| _
d| _| jt j| j d S )NZplusZ16x16Zminusr   F)QToolBoxr
   include_job_optionsZQIconZload_pixmap	plus_icon
minus_icon	last_itemjob_optionsjob_storage_enableppd_type	pin_countZcurrentChangedintconnect#PrintSettingsToolbox_currentChanged)r   r   r6   r   r   r   r
      s    zPrintSettingsToolbox.__init__Nc             C   s  |d ks| rg S g }yt | jd }W n tk
r@   d}Y nX |dk rZd}tjd n|dkrpd}tjd | jd }ytj|}W n" tk
r   tjd|  g S X | }| jd }tj	  tj
| j | jdkr| jd	kr| jd
d ttj }tj  t |jdd}	tjd}
x|D ]\}}}}}|	dkoL|dkoL|
}tjdr|rdjdd|	 djd|dgd| jg}ndjd| jg}|dkrdj|d| g}nZ|rdjdd|	 djd|dgd| jg}ndjd| jg}|dkrdj|d| g}| r0|r0dj|d| g}|rHdj|d| g}| jr| jtkr| jtkrxdj|dg}n| jtkr| jrdj|dg}dj|dg}dj|d| jjd  g}ndj|dg}dj|dg}n| jtkrdj|dg}dj|d!g}nZ| jtkrf| jrXdj|d"g}dj|dg}dj|d| jjd  g}ndj|d"g}dj|d#| jjd j dd$ g}dj|d%| j!jd j dd$ g}| j"dkrdj|d&g}ndj|d'g}ndj|d(g}|sdj|d)|dg}|j#| q&W |S )*Ncopiesr   zCopies < 1, setting to 1.c   zCopies > 99, setting to 99.	pagerangezInvalid page range: %spagesetr   HPDigitZ1111z	number-uppsnupzapplication/postscriptZlpr z-%d "z| lpr -Pzlpr -Pz-#%dz
| lp -c -dzlp -c -dz-n%dz-o page-ranges=%sz-o page-set=%sz-o HOLD=PROOFz
-o HOLD=ONz-o HOLDTYPE=PRIVATEz-o HOLDKEY=%sasciiz-o HOLDTYPE=PUBLICz-o HOLD=STOREz-o USERNAME=%s_z-o JOBNAME=%sz-o DUPLICATEJOB=APPENDz-o DUPLICATEJOB=REPLACEz-o HOLD=OFFz ")$r>   r:   
ValueErrorlogZwarningr   expand_rangeerrorr   resetOptionsopenPPDcur_printerr<   r=   setPrinterOptiondict
getOptionsclosePPDgetZwhichjoinr;   job_storage_modeJOB_STORAGE_TYPE_OFFJOB_STORAGE_TYPE_PROOF_AND_HOLDJOB_STORAGE_TYPE_PERSONALjob_storage_use_pinjob_storage_pinencodeJOB_STORAGE_TYPE_QUICK_COPYJOB_STORAGE_TYPE_STOREjob_storage_usernamereplacejob_storage_jobnamejob_storage_job_existappend)r   Z	file_listZprint_commandsrA   Z
page_ranger   Z	all_pagesZpage_setcurrent_optionsnuprF   ptdtitleZ	num_pagesZalt_nupcmdr   r   r   getPrintCommands   s    




(
(
z%PrintSettingsToolbox.getPrintCommandsc             C   s0   |dkr,| j | j| j | j || j || _d S )Nr   )setItemIconr9   r7   r8   )r   ir   r   r   r@   ?  s    z8PrintSettingsToolbox.PrintSettingsToolbox_currentChangedc           ,   C   s  || _ || _d | _x| j r(| jd qW d| _tj  tj| j d}zbt	tj
 }|| _| jrh| jd| jd yt|jdd}W n tk
r   d}Y nX | jd| jd	tj|dddd || jd< |jdd}| jd| jdtj|d d dd || jd< |jdd}| jd| jdtj|d| jdfd| jdfd| jdfgddd || jd< | j  | j jtks:| jd| jd |jdd}| jd| jdtj|d| jdfd| jdfd| jdfd | jd!fgd tjd" tjd#|  | j jjd$d}tjd%|  |r|jd&d'}| jd&| jd(tj|d'| jd)fd*| jd+fd,| jd-fgd' tjd. tjd#|  |jd/d0}| jd/| jd1tj|d0| jd2fd3| jd4fgd0 tjd5 tjd#|  tjd6}|dkr2tj|jd7d8}| jd7| jd9tj|g d tjd: tjd#|  | j  tj  }x|D ]}	d;|	j! krltjd< qJy&tj"|	\}
}|
d=krd>}
d| _#W n( t$k
r   tj%d?|	  wJY nX d@|	j! k}|	j! dAkr| jdB}
| j|	t&|
 tjdCt&|
  tjdD|  tj'|	}x|D ]}tjdEt(|  dF|j! krVtjdG q"ytj)|	|\}}}}W n, t$k
r   tj%dH||	f  w"Y nX |j! dIkr| jdJ}tjdKt(|  tjdLt(|  tj*|	|}d }g }x|D ]~}tjdMt(|  dN|j! kr2dO|j! kr2tjdP qtj+|	||\}}tjdQt(|  |r`|}|j,||f qW |j! dRkr|d k	r|}n|}|dSkr| j||tjdTddT n| j||||||| q"W | j  qJW | jdW| jdX |jdYd}| jdY| jdZtj|d| jd[fd\| jd]fd| jd^fgd tjd_ tjd`|  |jdadb}| jda| jdctj|dd| jdefdf| jdgfdh| jdifdb| jdjfdk| jdlfdm| jdnfdo| jdpfdq| jdrfgdb tjds tjd`|  |jdtdu}| jdt| jdvtj|dw| jdxfdy| jdzfdu| jd{fd|| jd}fd~| jdfgdu tjd tjd`|  | j  | j jtks0| jd| jd t|jdd}tjd tjd`|  | jd| jdtj|dddd t|jddU}tjd tjd`|  | jd| jdtj|ddU | j  | jd| jd tj|jdd}| jd| jdtj|g d |jdd}| jd| jdtj|d| jdfd| jdfd| jdfd| jdfd| jdfd| jdfd| jdfd| jdfd| jdfg	d tjd tjd`|  | j jtk	st|jdd}tjd tjd`|  | jd| jdtj|dddd t|jdd}tjd tjd`|  | jd| jdtj|dd t|jdd}tjd tjd`|  | jd| jdtj|dddd t|jdd}tjd tjd`|  | jd| jdtj|dddd | j  | jd| jd tjd tj|jdd8}| jd| jdtj|g d tjd tjd`|  | j jtks|jdduj-d}y|d }W n t.k

r   du}Y nX y|d }W n t.k
r   du}Y nX | jd| jdtj/||fdu| jdfd| jdfd| jdfd| jdăfd| jdƃfd| jdȃfd| jdʃfgd  tjd˃ tjd||f  tj|jdd8}| jd| jd΃tj|g d tjdσ tjd`|  | j  d}tj0||}|d k	rtjd|  tjdt1|  | jd| jdԃ | jd| jdփtj2t1|g | | jdI| jd׃tj2|g | | j  tjd؃ d| _3| j3rt1|jddڃd dۅ | _4t1|jdt5j6d d݅ | _7t1|jdt1d߃d d݅ | _8t1|jdt1d}t1|jdt1d}d| _9t1|jdt1d}d| _:d| _;t<| _=|dkrbt<| _=n~|dkr|t1dkrt>| _=nt?| _=d| _9nP|t1dkr|t1dkrt@| _=nt?| _=d| _9n|t1dkrtA| _=|dk| _9|t1dkrtB| _CntD| _C| jd| jd | jd| jdtjEd d d  | jd| jdtjFd d d  | jd| jdtjGd d d  | jd| jdtjHd d d  | jd| jdtjId d d  | j  | jJ  W d tjK  d| _X d S (  Nr   TrH   r:   zJob OptionsrA   1r   zNumber of copiesrB   )r$   rC   z
Page RangerD   allzPage SetZAllPagesZevenZEvenZoddZOddZbasicZBasiczorientation-requested3zPage OrientationZPortrait4Z	Landscape5zReverse landscape6zReverse portraitzOption: orientation-requestedzCurrent value: %sduplexerzDuplexer = %dZsidesz	one-sidedz(Duplex (Print on both sides of the page)zSingle sidedztwo-sided-long-edgezTwo sided (long edge)ztwo-sided-short-edgezTwo sided (short edge)zOption: sidesZoutputorderZnormalzOutput OrderzNormal (Print first page first)reversez Reversed (Print last page first)zOption: outputorderZcollateZCollate0z(Collate (Group together multiple copies)zOption: CollateZjobretentionzHPJobRetention skipped.ZJCLzSecure PrintingzGroup %s returned NoneinstallZprintoutmodez2Quality (also see 'Printout Mode' under 'General')z
  Text: %szNum subgroups: %dz  Option: %sZ
pageregionzPage Region skipped.z#Option %s in group %s returned NoneZqualityZQualityz    Text: %sz    Defchoice: %sz    Choice: %sZpagesizeZcustomzSkipped.z      Text: %sZ
outputmodez[Pin-4 Digits]iW    '  rh   z/N-Up (Multiple document pages per printed page)z	number-upzPages per Sheetz1 page per sheet2z2 pages per sheetz4 pages per sheetz  Option: number-upz  Current value: %sznumber-up-layoutZlrtbZLayoutZbtlrzBottom to top, left to rightZbtrlzBottom to top, right to leftZlrbtzLeft to right, bottom to topzLeft to right, top to bottomZrlbtzRight to left, bottom to topZrltbzRight to left, top to bottomZtblrzTop to bottom, left to rightZtbrlzTop to bottom, right to leftz  Option: number-up-layoutzpage-bordernonezPrinted Border Around Each PageZdoublezTwo thin borderszdouble-thickzTwo thick bordersz	No borderZsinglezOne thin borderzsingle-thickzOne thick borderz  Option: page-borderZ
adjustmentzPrintout AppearanceZ
brightnessd   z  Option: brightnessZ
Brightness   z %)suffixZgammaz  Option: gammaZGamma'  ZimagezImage PrintingZfitplotfalsezFit to PageZpositioncenterzPosition on PageZCenteredtopZTopleftZLeftrightZRightztop-leftzTop leftz	top-rightz	Top rightZbottomZBottomzbottom-leftzBottom leftzbottom-rightzBottom rightz  Option: positionZ
saturationz  Option: saturationZ
SaturationZhuez  Option: huezHue (color shift/rotation)znatural-scalingz  Option: natural-scalingz%"Natural" Scaling (relative to image)   Zscalingz  Option: scalingzScaling (relative to page)ZmiscZMiscellaneouszGroup: MiscZprettyprintz:"Pretty Print" Text Documents (Add headers and formatting)z  Option: prettyprintz
job-sheets,zBanner PageszNo banner pageZ
classifiedZ
ClassifiedZconfidentialZConfidentialZsecretZSecretZstandardZStandardZ	topsecretz
Top secretZunclassifiedZUnclassifiedz  Option: job-sheetsz  Current value: %s,%sZmirrorzMirror Printingz  Option: mirrorOutputModeDPIz(Adding Group: Summary outputmode is : %sz,Adding Group: Summary outputmode dpi is : %sZsumryZSummaryZ
colorinputzColor Input / Black RenderzPrint QualityzEnd adding Group: SummaryHOLDKEYZ0000   USERNAME   JOBNAMEZUntitledHOLDOFFHOLDTYPEPUBLICFDUPLICATEJOBREPLACEONPROOFSTOREPRIVATEZ
jobstoragezJob Storage and Secure Printingzjob-storage-modeZModezjob-storage-pinz#Make job private (use PIN to print)zjob-storage-usernamez"User name (for job identification)zjob-storage-idz$Job name/ID (for job identification)zjob-storage-id-existsz If job name/ID already exists...)r   rB   )r|   r}   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )L
cur_devicerR   rg   countZ
removeItemZloadingr   rP   rQ   rT   rU   r6   beginControlGroup_PrintSettingsToolbox__trr>   rW   rL   addControlRow
UI_SPINNERr:   UI_PAGE_RANGEr)   endControlGroupZdevice_typeZDEVICE_TYPE_FAXrM   debugZdqZduplicateSectionr   Zto_boolPPD_UI_BOOLEANZgetGroupListlowerZgetGroupr<   	TypeErrorwarnstrZgetOptionListreprZ	getOptionZgetChoiceListZ	getChoicerf   split
IndexErrorUI_BANNER_JOB_SHEETSfindPPDAttributer   UI_INFOr;   r^   ZpropZusernamerb   rd   r]   job_storage_auto_usernamejob_storage_auto_jobnamerZ   rY   r`   r\   r[   ra    JOB_STORAGE_EXISTING_JOB_REPLACEre   $JOB_STORAGE_EXISTING_JOB_APPEND_1_99UI_JOB_STORAGE_MODEUI_JOB_STORAGE_PINUI_JOB_STORAGE_USERNAMEUI_JOB_STORAGE_IDUI_JOB_STORAGE_ID_EXISTSupdateJobStorageControlsrV   ) r   r   rR   Zcur_outputmoderg   Zcurrentrx   Zto_addgroupsgtextZnum_subgroups	read_onlyZoptionsoZoption_textZ	defchoiceZ
conflictedZuir    valueZchoice_datacZchoice_textZmarkedstartendquality_attr_nameZcur_outputmode_dpiZholdZholdtypeZ	duplicater   r   r   updateUiF  sr   




	























/
















zPrintSettingsToolbox.updateUic             C   s8   t jd|  d| _t | _t| j| _|| _|| _d S )NzBeginGroup: %sr   )	rM   r   rowZQWidgetwidgetQGridLayout
gridlayoutr   r   )r   r   r   r   r   r   r   m  s    z&PrintSettingsToolbox.beginControlGroupc             C   s   t jd| j  tddtjtj}|  jd7  _| jj	|| jddd | j	| j
| j}|rj| j|| j n| j|| j d\| _
| _d S )NzEndGroup: %s   r   r   )NN)rM   r   r   QSpacerItemQSizePolicyMinimum	Expandingr   r   addItemr   r   rp   r7   r8   )r   Zspacerrq   r   r   r   r   v  s    z$PrintSettingsToolbox.endControlGrouprH   c
       )      C   s  |t jkrt }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t| j}t|}t|d| j|||	}|j|dddd t|d| j|||	}|j|dddd |
j| t| jd| j|||||f||		}|j| |j| |
j| | jj|
| jddd |j| |j| jd	 |j| jd
 |jd |dksd|dksd|dkrjd}nd}|dks|dks|dkrd}nd}||kr|jd |jj| j |r|jd n
|jd |jt j| j |r|jd |jd |jd nx|t jkrt }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t d| jd| j||||d |	
}|
j| t| jd| j||||||		}|j| |
j| | jj|
| jddd |j| |jd d5\}}}x\|D ]T\}}|j! }|d k	r"||j! kr"|}||j! kr4|}|j"|| |d7 }qW |d k	rd|j#| n
|j#d |d k	r|j! |j! kr|jd |jj| j |j$d j| j% |j&d j| j' |}n|t j(kr"t }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t)| jd| j|||	}|
j| t| jd| j||||||		}|j| |
j| | jj|
| jddd |\}}|j*| |j+| |j,| |r|j-| |j| |jd |j.t/ j| j0 |jj| j |j||k  |r|jd |jd nd|t j1krt }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t| j}|
j| t d| jd| jd|||}|
j| t| j}|
j| t d| jd| jd||||	} |
j|  |j2|  t| jd| j||||| f||		}|
j| | jj|
| jddd |j| | j| |j| |jd |j| jd |j| jd d6\}!}"}}#x|D ]\}}|j! }|d k	r||d j! kr|}!||d j! kr|}"||d j! kr|}||d j! kr |}#|j"d| | j"d| qW |!d k	r8|j#|j3|! |"d k	rR| j#| j3|" |d k	r|d j! |d j! kr|d j! |d j! kr|jd |j4d j| j5 | j4d j| j5 |jj| j 
n|t j6krt7j8d 
n|t j9krt7j8d 
n|t j:k	rt }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t| j}t|}t;|d| j||}$|j|$dddd t;|d| j||}%|j|%dddd |
j| t<| j}&|
j|& |&j=t>|& |$j?|& |%j?|& t| jd| j||||$|%|&f||		}|$j| |%j| |
j| | jj|
| jddd |j| |$j| jd |%j| jd  |jd |jd |$jd |&jd |$jt j| j@ |%jt j| jA |jj| j |&jBd j| jC |&jDj| jE n|t jFkr6t }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| tG| j| _H|
j| jH tI| j| _J|
j| jJ | jj|
| jddd |j| | jJj| jd | jHj| jd!tK | jHj| jd"tL | jHj| jd#tM | jHj| jd$tN | jHj| jd%tO | jHj4t/ j| jP | jJjj| jQ nP|t jRkrt }
|
jd t| j}|jd |
j| tddtj	tj
}|
j| t| j| _St| jS}tT| jS| _U|j| jUdddd tT| jS| _V|j| jVdddd t<| jS| _W| jWjXd& | jWj=tY| jW |j| jWdd'dd |
j| jS tI| j| _Z|
j| jZ | jUj| jd( | jVj| jd) | jj|
| jddd |j| | jZj| jd | jUjt j| j[ | jVjt j| j\ | jZjj| j] | jWj^d j| j_ n|t j`krt }
|
jd t| j}|jd |
j| |j| tddtj	tj
}|
j| t| j| _at| ja}tT| ja| _b|j| jbdddd tT| ja| _c|j| jcdddd t<| ja| _d| jdj=te| jd | jdjXd* |j| jddd'dd |
j| ja tI| j| _f|
j| jf | jbj| jd+ | jcj| jd, | jfj| jd | jbjt j| jg | jcjt j| jh | jfjj| ji | jdj^d j| jj | jj|
| jddd n|t jkkrRt }
|
jd t| j}|jd |
j| |j| tddtj	tj
}|
j| t| j| _lt| jl}tT| jl| _m|j| jmdddd tT| jl| _n|j| jndddd t<| jl| _o| joj=te| jo | jojXd* |j| jodd'dd |
j| jl tI| j| _p|
j| jp | jmj| jd+ | jnj| jd, | jpj| jd | jmjt j| jq | jnjt j| jr | jpjj| js | joj^d j| jt | jj|
| jddd n4|t jukrZt }
|
jd t| j}|jd |
j| |j| tddtj	tj
}|
j| tG| j| _v|
j| jv tI| j| _w|
j| jw | jvj| jd-tx | jvj| jd.ty | jwj| jd | jj|
| jddd | jvj4t/ j| jz | jwjj| j{ n,|t j|krrt }
|
jd t| j}'|'jd |
j|' |'j| tddtj	tj
}|
j| |d/krt| j| _}| j}jd0 |
j| j} | j}j| nd|d1kr2t| j| _~| j~jd2 |
j| j~ | j~j| n(t| j}(|(jd3 |
j|( |(j| | jj|
| jddd nt7j8d4| j|f  |  jd7  _d S )7N
HBoxLayoutOptionLabelr   OnRadioButtonr   r   OffRadioButtonZdefaultPushButtonZOnZOffZDefaultTTruetrueFComboBoxDefaultButtonzconst QString &SpinBoxStartComboBoxr   EndComboBoxr   zStart:zEnd:zconst QString&zUnrecognized type: pickmanyz Unrecognized type: units spinnerAllRadioButtonRangeRadioButtonz	All pageszPage Range:zOff/DisabledzProof and HoldzPersonal/Private Jobz
Quick Copyz
Stored Jobr      z
Public/OffzPrivate/Use PIN:r   Z	AutomaticzCustom:zReplace existing jobzUse job name appended with 1-99zPrint QualityPQValueLabelzColor Input / Black RenderPQColorInputLabelOptionValuezInvalid UI value: %s/%s)r   NN)NNNN)r   r   ZQHBoxLayoutr%   ZQLabelr   Z	addWidgetr   r   r   r   r   ZQFramer   r,   r   r.   r'   r   Z	addLayoutr   setTextr   
setEnabledZclickedr?   DefaultButton_clicked
setCheckedZtoggledboolBoolRadioButtons_clickedr)   r   r   Z
insertItemsetCurrentIndexZcurrentIndexChangedComboBox_indexChangedZhighlightedComboBox_highlightedr   r*   Z
setMinimumZ
setMaximumsetValueZ	setSuffixZvalueChangedr>   SpinBox_valueChangedr   r(   findTextZ	activatedBannerComboBox_activatedZPPD_UI_PICKMANYrM   rO   ZUI_UNITS_SPINNERr   r1   Z	QLineEditZsetValidatorr   r3   PageRangeAllRadio_toggledPageRangeRangeRadio_toggledZtextChangedPageRangeEdit_textChangedZeditingFinishedPageRangeEdit_editingFinishedr   r   JobStorageModeComboBoxr/   JobStorageModeDefaultButtonrZ   r[   r\   r`   ra    JobStorageModeComboBox_activated#JobStorageModeDefaultButton_clickedr   JobStoragePinGroupBoxr-   JobStoragePinOffRadioButtonJobStoragePinPrivateRadioButtonJobStoragePinEditZsetMaxLengthr   JobStoragePinDefaultButton#JobStoragePinOffRadioButton_toggled'JobStoragePinPrivateRadioButton_toggled"JobStoragePinDefaultButton_clickedZ
textEditedJobStoragePinEdit_textEditedr   JobStorageUsernameGroupBox!JobStorageUsernameAutoRadioButtonZ#JobStorageUsernameCustomRadioButtonJobStorageUsernameEditr   JobStorageUsernameDefaultButton)JobStorageUsernameAutoRadioButton_toggled+JobStorageUsernameCustomRadioButton_toggled'JobStorageUsernameDefaultButton_clicked!JobStorageUsernameEdit_textEditedr   JobStorageIDGroupBoxJobStorageIDAutoRadioButtonZJobStorageIDCustomRadioButtonJobStorageIDEditJobStorageIDDefaultButton#JobStorageIDAutoRadioButton_toggled%JobStorageIDCustomRadioButton_toggled!JobStorageIDDefaultButton_clickedJobStorageIDEdit_textEditedr   JobStorageExistingComboBoxJobStorageExistingDefaultButtonr   r   $JobStorageExistingComboBox_activated'JobStorageExistingDefaultButton_clickedr   r   r   ))r   r   r   r"   r   r    r!   r   r   r$   r   r   Z
SpacerItemZGroupBoxZgridlayout1r   r   r   r   rq   r   yr   rj   rk   r0   r   minmaxZ
StartLabelr   ZEndLabelr   sezr   r   ZPageRangeEditZ
OptionNamer   r   r   r   r     s   








































































































































z"PrintSettingsToolbox.addControlRowc             C   s  t |}| j }d }d\}}x |jD ]\}}||kr$|}P q$W x(|jjD ]\}}||jj krH|}P qHW |jdkr||| }}|d k	r|d k	r|j |jd j kr|j |jd j kr| jd |j	j
d n4|j	j
d |d k	o|d k	r| jddj||g d S )	Nr   r   r   z
job-sheetsFTr   )NN)r   senderr    r#   ZcurrentTextr   r   r!   removePrinterOptionr&   r   rS   rX   )r   ar  choicer   r   r   rj   r   r   r   r     s0    



z-PrintSettingsToolbox.BannerComboBox_activatedc             C   s   t |}| j }d }d }x |jD ]\}}||kr |}P q W |d k	r|||jkr||jrb|j| j|j< n| j|j |jj	d n6|jj	d |d k	r|jr|| j|j< n| j
|j| d S )NFT)r   r  r    r!   r$   r:   r   r  r&   r   rS   )r   rj   r  r  r   r  r   r   r   r     s$    z)PrintSettingsToolbox.ComboBox_highlightedc             C   s   | j  }|jdkrd| _|jsr||jkrR| j|j |jjd |jdkrpd| _q|jjd | j|jt	| n8yt
|| j|j< W n" tk
r   |j| j|j< Y nX d S )NrE   r   Fr   T)r  r   r=   r$   r!   r  r&   r   rS   r   r>   r:   rL   )r   rq   r  r   r   r   r     s    


z)PrintSettingsToolbox.SpinBox_valueChangedc             C   s   | j  }t|}|jdks.|jdks.|jdkr:td|_n
td|_||jkrh| j|j |jjd n.|jjd |r| j|jd n| j|jd d S )NTr   r   Fr   )r  r>   r!   r  r   r&   r   rS   )r   br  r   r   r   r   0  s    

z-PrintSettingsToolbox.BoolRadioButtons_clickedc             C   s   | j  }t|}t| dd }t| dd }|d k	r|jdkr|d k	r|d k	r| jj| d}tj| j tj	||}t
jd|  tj  | jj| t
jd|  d S )Nr   r   Z
OutputModer   z.Outputmode changed, setting outputmode_dpi: %sz0Outputmode changed, setting value outputmode: %s)r  r   getattrr   r   r   r   rQ   rR   r   rM   r   rV   r   )r   ZcurrentItemr  ZlabelPQValaueZlabelPQColorInputr   Zoutputmode_dpir   r   r   r   C  s    "z*PrintSettingsToolbox.ComboBox_indexChangedc             C   s  | j  }|jd |jtjkr|jdks<|jdks<|jdkrDd|_nd|_|jrt|jd jd |jd jt	j
 n"|jd jd |jd jt	j
 |js| j|j n|jtjkr>d	\}}x2|jD ](\}}||jkr|}|}|| j|j< P qW |d k	r|js| j|j |jj|}|jj| |jjt	j
 n\|jtjkr|jj|j |jsn| j|j |jjt	j
 n|jtjkrZd
\}}}	}
xD|jD ]:\}}||jd kr|}|}	||jd kr|}|}
qW |d k	r
|jd j|	}|jd j| |d k	r4|jd j|
}|jd j| |jsF| jd |jd jt	j
 n@|jtjkr|jd jd |jd jt	j
 |jd jd d S )NFTr   r   r   r   z
job-sheetsr   )NN)NNNN)r  r   r"   r   r   r!   r0   r   setFocusQtOtherFocusReasonr$   r  r   r)   r    r:   r   r   r   r   r   r   )r   r  r  r   r   rj   indexr   r   Z
start_textZend_textr   r   r   r   Y  sl    






z*PrintSettingsToolbox.DefaultButton_clickedc             C   s2   |r.| j  }|jjd |jjd d| jd< d S )NFrH   rC   )r  r2   r   r&   r:   )r   r  r  r   r   r   r     s
    z.PrintSettingsToolbox.PageRangeAllRadio_toggledc             C   s<   |r8| j  }|jjd |jjd t|jj | jd< d S )NTrC   )r  r&   r   r2   r   r   r:   )r   r  r  r   r   r   r     s
    z0PrintSettingsToolbox.PageRangeRangeRadio_toggledc             C   s   | j  }| jd dg   }}}ytj|}W n tk
rD   d}Y nX |rnx"|D ]}|dksd|dkrPd}P qPW |sd| jd< tjd|  t| | jd |j	t
j d S )	NrC   TFr   i  rH   zInvalid page range: %sz|<b>Invalid page range.</b><p>Please enter a range using page numbers (1-999), dashes, and commas. For example: 1-2,3,5-7</p>)r  r:   r   rN   rL   rM   rO   Z	FailureUIr   r  r  r   )r   r  rj   okr   r  r   r   r   r     s     


z2PrintSettingsToolbox.PageRangeEdit_editingFinishedc             C   s   t || jd< d S )NrC   )r   r:   )r   rj   r   r   r   r     s    z.PrintSettingsToolbox.PageRangeEdit_textChangedc          
   C   s>  t   z(| jj| jj| j | jj| jtk | jj	| j
 | jj	| j | jj	| j | jj| jj| j | jtkr| jjd | jjd | jjd | jjt  | jjd | jjd | jjd | jjd | jjd | jjd | jjd n&| jttfkrT| jjd | jj| j
 | jj| j
 | jjt| j n2| jjd | jjd | jjd | jjt  | jjd | jj| j  | jj| j  | jjt| j | jjd | jj| j  | jj| j  | jjt| j  | jj| j  | j!j| j o*| jt"k W d t#  X d S )NFT)$beginWaitCursorr   r   ZfindDatarY   r   r   rZ   r   r   r]   r   r   r  r   r  re   r   r   r   r   r   r   r   r  r  r  r	  r\   ra   r^   rb   rd   r  r   endWaitCursor)r   r   r   r   r     sP     z-PrintSettingsToolbox.updateJobStorageControlsc          
   C   s  t   ztjd | jtkr^tjd | jdd | jd | jd | jd | jd n| jtkrtjd	 | jdd
 | jdd n| jtkrtjd | j	r| jdd n| jdd
 | jdd nb| jt
krtjd | jdd | jdd n4| jtkr0tjd | jdd | j	s0| jd tjd| j	  | j	rT| jdd | jtkrxtjd | jdd ntjd | jdd W d t  X d S )NzSaving job storage options...z'Job storage mode = JOB_STORAGE_TYPE_OFFr   r   r   r   r   r   z2Job storage mode = JOB_STORAGE_TYPE_PROOF_AND_HOLDr   r   z,Job storage mode = JOB_STORAGE_TYPE_PERSONALr   z.Job storage mode = JOB_STORAGE_TYPE_QUICK_COPYz)Job storage mode = JOB_STORAGE_TYPE_STOREr   zJob storage use pin = %dr   z8Job storage duplicate = JOB_STORAGE_EXISTING_JOB_REPLACEr   z<Job storage duplicate = JOB_STORAGE_EXISTING_JOB_APPEND_1_99ZAPPEND)r#  rM   r   rY   rZ   rS   r  r[   r\   r]   r`   ra   re   r   r$  )r   r   r   r   saveJobStorageOptions  sL    















z*PrintSettingsToolbox.saveJobStorageOptionsc             C   s8   | j  }t|j|\}}|r4|| _| j  | j  d S )N)r  	value_intitemDatarY   r%  r   )r   rq   r  moder"  r   r   r   r   ]  s    z5PrintSettingsToolbox.JobStorageModeComboBox_activatedc             C   s   | j jtdt d S )Nzactivated(int))r   emitSIGNALrZ   )r   r   r   r   r   f  s    z8PrintSettingsToolbox.JobStorageModeDefaultButton_clickedc             C   s   | | _ | j  | j  d S )N)r]   r   r%  )r   r  r   r   r   r   n  s    z8PrintSettingsToolbox.JobStoragePinOffRadioButton_toggledc             C   s   || _ | j  | j  d S )N)r]   r   r%  )r   r  r   r   r   r   t  s    z<PrintSettingsToolbox.JobStoragePinPrivateRadioButton_toggledc             C   s   | j jtdd d S )Nztoggled(bool)T)r   r)  r*  )r   r   r   r   r   z  s    z7PrintSettingsToolbox.JobStoragePinDefaultButton_clickedc             C   s"   t || _| jd| jjd d S )Nr   rJ   )r   r^   rS   r_   )r   r  r   r   r   r   ~  s    
z1PrintSettingsToolbox.JobStoragePinEdit_textEditedc             C   s   || _ | j  | j  d S )N)r   r   r%  )r   r  r   r   r   r    s    z>PrintSettingsToolbox.JobStorageUsernameAutoRadioButton_toggledc             C   s   | | _ | j  | j  d S )N)r   r   r%  )r   r  r   r   r   r    s    z@PrintSettingsToolbox.JobStorageUsernameCustomRadioButton_toggledc             C   s   | j jtdd d S )Nztoggled(bool)T)r   r)  r*  )r   r   r   r   r    s    z<PrintSettingsToolbox.JobStorageUsernameDefaultButton_clickedc             C   s"   t || _| jd| jjd d S )Nr   rJ   )r   rb   rS   r_   )r   r  r   r   r   r    s    
z6PrintSettingsToolbox.JobStorageUsernameEdit_textEditedc             C   s   || _ | j  | j  d S )N)r   r   r%  )r   r  r   r   r   r
    s    z8PrintSettingsToolbox.JobStorageIDAutoRadioButton_toggledc             C   s   | | _ | j  | j  d S )N)r   r   r%  )r   r  r   r   r   r    s    z:PrintSettingsToolbox.JobStorageIDCustomRadioButton_toggledc             C   s   | j jtdd d S )Nztoggled(bool)T)r  r)  r*  )r   r   r   r   r    s    z6PrintSettingsToolbox.JobStorageIDDefaultButton_clickedc             C   s"   t || _| jd| jjd d S )Nr   rJ   )r   rd   rS   r_   )r   r  r   r   r   r    s    
z0PrintSettingsToolbox.JobStorageIDEdit_textEditedc             C   s8   | j  }t|j|\}}|r4|| _| j  | j  d S )N)r  r&  r'  re   r   r%  )r   rq   r  Zoptr"  r   r   r   r    s    z9PrintSettingsToolbox.JobStorageExistingComboBox_activatedc             C   s   | j jtdt d S )Nzactivated(int))r  r)  r*  r   )r   r   r   r   r    s    z<PrintSettingsToolbox.JobStorageExistingDefaultButton_clickedc          
   C   s   t jd||f  tj| j z|dkrt|dkr<d| }t|dkrT|d| 7 }t|dkrl|d| 7 }t|d	kr|dd  }tjd
||f  tj  W d tj  X d S )NzsetPrinterOption(%s, %s)rE   r   Z000r   Z00   rz   r   z%s=%s)	rM   r   r   rQ   rR   lenZ	addOption
setOptionsrV   )r   r   r   r   r   r   rS     s    z%PrintSettingsToolbox.setPrinterOptionc          
   C   s@   t jd|  tj| j ztj| tj  W d tj  X d S )NzremovePrinterOption(%s))rM   r   r   rQ   rR   ZremoveOptionr.  rV   )r   r   r   r   r   r    s    
z(PrintSettingsToolbox.removePrinterOptionc             C   s   t jd||S )Nr4   )ZqApp	translate)r   r  r   r   r   r   Z__tr  s    zPrintSettingsToolbox.__tr)F)N)FrH   F)N))r   r   r   r
   rn   r@   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%  r   r   r   r   r   r   r  r  r  r  r
  r  r  r  r  r  rS   r  r   r   r   r   r   r4      s^   

     +	
    2"FKHC	
	r4   )sysZbase.gbaser   Zprntr   Z
base.codesZui_utilsZbase.sixextr   r   ZPyQt5.QtCoreZPyQt5.QtGuiZPyQt5.QtWidgetsr	   r   r   r   r   r   r+   r*   r-   r,   r/   r.   r1   r5   r4   r   r   r   r   <module>   s&   