
    =	f$              
       2   d Z dZdZdZddlZddlZddlZddlZddlZddl	 ddl
mZmZmZmZmZmZ ddlmZ 	 dd	lmZ d Zd Zd Zd Zd Zd Z d Z!d Z"d Z#	  ejH                  eee ede%e&fe'e(f      Z)e)jU                  ejV                  g d       e)jY                         \  Z-Z.Z/Z0Z1Z2e)jg                  e.e/dejh                  e5fi      Z.e.s ejl                  d       ejo                  de.z         e0e&k(  r' ejp                         sejs                  dez         e%Z0e0e%k(  r	  ejt                  e.e/      Z;	 	 e;j}                          e;j                         r~e;j                  j                  de5      ZBej1                  deBz         e;j                          eBeDk(  rejs                  d       n7eBeEk(  r ej                  e;ej                         neBeHk(  r* ej                  e;ej                  ej                         neBeKk(  r! ej                  e;ej                  ee       neBeMeNfv r" ej                  e;ej                  eeeP       neBeQk(  r! ej                  e;e!e#ej                         npeBeSk(  r  ej                  e;ej                  e       nKeBeUeVeWfv r$ ej                  e;eBej                  eeee       n eBeYk(  r ej                  e;ej                  e"       neBe[k(  r  ej                  e;ej                  e"e        neBe]k(  r ej                  e;ej                         neBe_k(  r  ej                  e;ej                  e"e        neBeak(  r ej                  e;ej                  e#       nkeBeck(  r ej                  e;ej                  e       nGeBeek(  r ej                  e;ej                  e#       n#ejs                  d       nejs                  d       e;j                          n ej                  e1      \  ZhZi eeid z         Zj	  ehej                        Zlejj                  de.      Znenj                          	 ej1                  d!       elj                          	  ejl                  d       ejo                  d#       ejo                  d$       y# e$ r"Zej1                  e       dd
lmZ Y dZ[dZ[ww xY w# e<$ r;Zejs                  dejz                  z          ejl                  d       Y dZ[dZ[ww xY w# e<$ r' ejs                  d        ejl                  d       Y w xY w# e;j                          w xY w# eq$ r  ejl                  d       Y w xY w# eq$ r ejs                  d"       Y w xY w)%z5.0z#Printer Cartridge Alignment Utilityzhp-alignzzCartridge alignment utility for HPLIP supported inkjet printers. (Note: Not all printers require the use of this utility).    N)*)devicestatusutilsmainttuimodule)cups)import_module)dyn_import_modc                 v    t        j                  d| |fz  d|      \  }}|st        j                  d       ||fS )NzRFrom the printed Alignment page, Enter the best aligned value for line %s (1-%d):    r   r   enter_rangesysexit)letterhortvertcolors
line_countmaximumokvalues          /usr/share/hplip/align.pyenterAlignmentNumberr   /   sD     t)!*!IB u9    c                 r    t        j                  d| z  d|       \  }}|st        j                  d       ||fS )NzFEnter numbered arrow that is best aligned with the paper edge (1-%d): r   r   r   )r   r   r   s      r   enterPaperEdger   :   s?     h!!"!IB u9r   c                 v    t        j                  d| |fz  d|      \  }}|st        j                  d       ||fS )Nz]Enter the numbered box on line %s that is best color matched to the background color (1-%d): r   r   r   )liner   r   r   s       r   colorAdjr!   E   sC     w!(!IB u9r   c                  .    t         j                  d       y )NzhCannot perform alignment with 0 or 1 cartridges installed.
Please install both cartridges and try again.logerror r   r   bothPensRequiredr'   P   s    IIyzr   c                  .    t         j                  d       y )NzNInvalid cartridge(s) installed.
Please install valid cartridges and try again.r#   r&   r   r   
invalidPenr)   T   s    II_`r   c                  .    t         j                  d       y )NzInvalid cartridge(s) installed. Cannot align with only the photo cartridge installed.
Please install other cartridges and try again.r#   r&   r   r   invalidPen2r+   X   s    II  V  Wr   c                      t         j                  d       t         j                  d       t         j                  d       t         j                  d       t        j                  dg dd      \  } }|dk(  rt	        j
                  d	       |d
k(  S )NzyTo perform alignment, you will need the alignment page that is automatically
printed after you install a print cartridge.z*
p		Print the alignment page and continue.zGn		Do Not print the alignment page (you already have one) and continue.z	q		Quit.
z6Choice (p=print page*, n=do not print page, q=quit) ? )pnqr-   r/   r   y)r$   infor   enter_choicer   r   )r   choices     r   aioUI1r4   \   sr    HH  J  KHH<=HHXYHH^!!"Z\kmpqJB}S=r   c                 r   t        j                  | |      }g }t        |j                               }|j	                          |D ]p  }||   d   s|j                  d       t        j                  d|||   d   fz  d||   d         \  }}|j                  |       |r\t        j                  d       r |S )Nr   zbEnter the numbered box on line %s where the inner lines best line up with the outer lines (1-%d): r   )
r   align10and11and14Controlslistkeyssortappendr   r   r   r   )pattern
align_typecontrolsvalues
s_controlsr    r   r   s           r   type10and11and14Alignr@   j   s    ..w
CHFhmmo&JOO 	~a MM!  )M$*+),./$1BDIBMM% 	 Mr   c                  &   t         j                  d       t         j                  t         j                  d             t         j                  d       t         j                  d       t         j                  d       t         j                  d       y )N z-Follow these steps to complete the alignment:z@1. Place the alignment page, with the printed side facing down, z   in the scanner.z12. Press the Enter or Scan button on the printer.zX3. "Alignment Complete" will be displayed when the process is finished (on some models).)r$   r1   boldr&   r   r   aioUI2rD   ~   sW    HHRLHHSXXEFGHHOPHH!"HH@AHHghr   )zhp-cleanzhp-colorcalzhp-linefeedcalz	hp-pqdiag)see_also_listz
align-type)filterr   zUsing device : %s
z@%s -u/--gui requires Qt4 GUI support. Entering interactive mode.zUnable to open device: %szGDevice is busy or in an error state. Please check device and try again.zAlignment type=%dz|Alignment through HPLIP not supported for this printer. Please use the printer's front panel to perform cartridge alignment.zInvalid alignment type.z.aligndialogzStarting GUI loop...z	User exitrB   zDone.)r__version__	__title____mod____doc__r   regetoptoperatorosbase.gbaser   r   r   r   r   r	   prntr
   	importlibr   ImportErrorer$   debug
base.utilsr   r   r   r!   r'   r)   r+   r4   r@   rD   ModuleINTERACTIVE_MODEGUI_MODEUI_TOOLKIT_QT4UI_TOOLKIT_QT5modsetUsageUSAGE_FLAG_DEVICE_ARGSparseStdOptsopts
device_uriprinter_namemode
ui_toolkitlanggetDeviceUrineALIGN_TYPE_NONEr   r1   canEnterGUIMode4r%   DevicedErrormsgopenisIdleAndNoErrormqgetr<   closeALIGN_TYPE_UNSUPPORTEDALIGN_TYPE_AUTOAlignType1PMLload_paper_promptALIGN_TYPE_AIOAlignType13load_scanner_for_align_promptALIGN_TYPE_8XX
AlignType2ALIGN_TYPE_9XXALIGN_TYPE_9XX_NO_EDGE_ALIGN
AlignType3update_spinnerALIGN_TYPE_LIDIL_AIO
AlignType6ALIGN_TYPE_DESKJET_450
AlignType8ALIGN_TYPE_LIDIL_0_3_8ALIGN_TYPE_LIDIL_0_4_3ALIGN_TYPE_LIDIL_VIP	AlignxBowALIGN_TYPE_LBOWAlignType10ALIGN_TYPE_LIDIL_0_5_4AlignType11ALIGN_TYPE_OJ_PROAlignType12ALIGN_TYPE_LIDIL_DJ_D1600AlignType14ALIGN_TYPE_LEDMAlignType15ALIGN_TYPE_LEDM_MANUALAlignType16ALIGN_TYPE_LEDM_FF_CC_0AlignType17import_dialogQApplication
ui_packageuiargvappAlignDialogdlgshowexec_KeyboardInterruptr&   r   r   <module>r      s  . 1	
 G  	   	  : : ;'
{aW(i~
&--K$)84~~6VXC LL.. -  .
 	 ;D*lD*d !!*l_=> " @J HH"Z/0x%u%%'IIX[bbc#D	j,7A
D	
 !!#TTXXlOD
		-
:;	!77II  ]  ^?2'E''3+@+@A>1%E%%a)>)>@a@ab>1$E$$Q(=(=?S&68  N3O#PP$E$$Q(=(=?S&4nF  #77$E$$Q8M8MN#99$E$$Q(=(=?ST$:<RTh#ii#EOOAz33H3HJ^`n%/;  O3%E%%a)>)>@UV#99%E%%a)>)>@UWbc#44%E%%a)>)>?#<<%E%%a)>)>@UWbc?2%E%%a)>)>G#99%E%%a)>)>@TU#::%E%%a)>)>G II78 		cd GGI $75#6#6z#B j:67 sxx(C..z2CHHJ		01		
 CHHQK   A  ;IIaL::;n  	II1AEE9:CHHQKK	  		cdB GGI* %   IIks   R- CU< *S ?T J U	 /A&U< !U 7U< -S2SST0TU< TU< (UU	 UU	 	UU< U95U< 8U99U< <VV