
    =	f                        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	 d dl
mZ d dl ddl d dlmZ d dlmZmZmZ 	 d dl d dl ddlmZ dd	lmZ dd
lmZ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*d Z+dZ,d Z-dZ.dZ/ G d de0      Z1d Z2ddZ3 G d de4      Z5 G d de0e      Z6y# e$ r d dl d dl d dl Y ww xY w# e$ r dZ e!jE                  d       Y xw xY w)    N)*)deviceutilsmodelspkit)cups   )pluginhandler)
to_unicodePY3from_unicode_to_str)	Ui_Dialog)PluginDialog)WifiSetupDialogSUCCESS_CONNECTED)faxTFz*Fax setup disabled - Python 2.3+ required.      c                   6    e Zd ZddZd	dZd Zd Zd Zd
dZy)PasswordDialogNc                    t         j                  | |       | j                  t        t	        dd                   || _        t        |       }|j                  dddd       |j                  d       t        |       | _
        |j                  | j                  dddd       t        |       | _        |j                  | j                  dd       t        |       | _        | j                  j                  t        j                          |j                  | j                  dddd       t        |       | _        |j                  | j"                  dd       t        |       | _        | j$                  j                  t        j&                         |j                  | j$                  dddd       t)        |       | _        |j                  | j*                  dd       t)        |       | _        |j                  | j,                  dd       | j/                          | j1                  t3        d	d
      j5                  | j7                                      | j*                  j8                  j;                  | j<                         | j,                  j8                  j;                  | j>                         | j$                  j@                  j;                  | j<                         y )Nhp_logo128x128      r   r	   r   r   i     )!QDialog__init__setWindowIconQIconload_pixmappromptQGridLayoutsetContentsMargins
setSpacingQLabelPromptTextLabel	addWidgetUsernameTextLabel	QLineEditUsernameLineEditsetEchoModeNormalPasswordTextLabelPasswordLineEditPasswordQPushButtonOkPushButtonCancelPushButtonlanguageChangeresizeQSize
expandedTominimumSizeHintclickedconnectacceptrejectreturnPressed)selfr"   parentnamemodalflLayouts          #/usr/share/hplip/ui5/setupdialog.pyr   zPasswordDialog.__init__Q   s)   v&5Y	!BCDT"!!"b"b1!%d|--q!Q:!'//A6 )$)))*:*:;..1a;!'//A6 )$)))*<*<=..1a;'-**Aq1 +D 1..15E#sO..t/C/C/EFG!!))$++6%%--dkk:++33DKK@    c                     | j                   j                  |       |s7| j                   j                  d       | j                   j                  d       y y )NTz'QLineEdit {background-color: lightgray})r+   setTextsetReadOnlysetStyleSheet)r>   defUserallowUsernameEdits      rD   setDefaultUsernamez!PasswordDialog.setDefaultUsernamez   sI    %%g. !!--d3!!//9; !rE   c                 H    t        | j                  j                               S N)r   r+   textr>   s    rD   getUsernamezPasswordDialog.getUsername       $//44677rE   c                 H    t        | j                  j                               S rN   )r   r/   rO   rP   s    rD   getPasswordzPasswordDialog.getPassword   rR   rE   c                    | j                  | j                  d             | j                  j                  | j                  | j                               | j
                  j                  | j                  d             | j                  j                  | j                  d             | j                  j                  | j                  d             | j                  j                  | j                  d             y )Nz+HP Device Manager - Enter Username/Passwordz	Username:z	Password:OKCancel)	setWindowTitle_PasswordDialog__trr'   rG   r"   r)   r.   r2   r3   rP   s    rD   r4   zPasswordDialog.languageChange   s    IICD	F$$TYYt{{%;<&&tyy'=>&&tyy'=>!!$))D/2%%dii&9:rE   c                 0    t         j                  d||      S NSetupDialogqApp	translater>   scs      rD   __trzPasswordDialog.__tr       ~~mQ22rE   )NNr   r   TrN   )	__name__
__module____qualname__r   rL   rQ   rT   r4   rY    rE   rD   r   r   P   s"    'AR;88;3rE   r   c                 @    	 t        | d       }t        ||        y # w xY wrN   )r   	FailureUI)r"   dlgs     rD   FailureMessageUIrm      s$    VT*#vs    c                     	 t        | d       }|d k7  r|j                  ||       |j                         t        j                  k(  r |j                         |j                         fS 	 	 y# w xY w)N) ro   )r   rL   exec_r   AcceptedrQ   rT   )r"   userNamerK   rl   s       rD   showPasswordUIrs      so    
VT*t""8->?99;'***OO%s'89 		 + 	 	s   A#A) )A+c                       e Zd Zd Zy)DeviceTableWidgetItemc                 \    t         j                  | |t         j                         || _        y rN   )QTableWidgetItemr   UserType
device_uri)r>   rO   ry   s      rD   r   zDeviceTableWidgetItem.__init__   s"    !!$.>.G.GH$rE   N)rf   rg   rh   r   ri   rE   rD   ru   ru      s    %rE   ru   c                   x   e Zd Zd=dZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d>d1Z2d2 Z3d3 Z4d4 Z5d5 Z6d6 Z7d7 Z8d8 Z9d9 Z:e;fd:Z<d; Z=d?d<Z>y)@r\   Nc                    t         j                  | |       | j                  |        || _        || _        || _        || _        |rt        j                  d|z         | j                          | j                  r!t        j                  d| j                         nT| j                  r(d| _        t        j                  d| j                         n t        j                  d| j                          t#        j$                  t&               y )NzUsing device: %sr   )r   r   setupUiparamjd_portry   removeloginfoinitUiQTimer
singleShotshowRemovePageskip_discoverydiscovery_methodshowDevicesPageshowDiscoveryPager   setPasswordCallbackrs   )r>   r?   r}   r~   ry   r   s         rD   r   zSetupDialog.__init__   s    v&T
$HH'*45;;a!4!45""()%!!!T%9%9:!!!T%;%;<  0rE   c                    | j                  t        t        dd                   | j                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  j                  | j                         t        j                  t        j                  t        j                         d| _        d| _        | j$                  r| j'                          d| _        y | j+                          | j-                          | j/                          t0        | _        y )Nr   r   Fr	   )r   r    r!   CancelButtonr9   r:   CancelButton_clicked
BackButtonBackButton_clicked
NextButtonNextButton_clickedManualGroupBoxManualGroupBox_clickedsignalSIGINTSIG_DFLfaxnumberChangedfaxCompanyNameChangedr   initRemovePagemax_pageinitDiscoveryPageinitDevicesPageinitAddPrinterPagePAGE_ADD_PRINTERrP   s    rD   r   zSetupDialog.initUi   s   5Y	!BCD 	!!))$*C*CD''(?(?@''(?(?@##++D,G,GHfmmV^^4 %%*";;!DM""$  "##%,DMrE   c           	         | j                   j                  d       | j                  d       | j                  j                  d       d| _        d| _        d| _        d| _        | j                  j                  t        j                         | j                  j                  t        j                         | j                  j                  t        j                         i | _        d| _        d| _        d| _        d| _        d| _        t*        | _        | j.                  rt0        j3                  d       d| _        d| _        | j4                  j7                  | j.                         | j8                  j;                  | j<                         | j                  j                  d       | j>                  j                  d       | jA                         r	d| _        nmtC        | | jE                  d	             tF        jH                  jK                  | j.                        }|.| j                   j                  d       | j                  d       ntF        jL                  jK                  | j.                        }|>t        j                  r.| j                  j                  d       | jO                  d       ntF        jP                  jK                  | j.                        }|>t        j                  r.| j                  j                  d       | jS                  d       n'tC        | | jE                  d
             n
| jT                  r	 tG        jV                  | jT                        \	  }}| _        }}}}}}	|}
| j                   dk(  rF	 t0        jY                  d       t[        j\                  |      d   }
t0        jY                  d|
z         | jT                  |||
fi| _        d| _        nZt        j                  sJt        j                  s:d| _        d| _        | j                   j                  d       | j                  d       t        jd                  rqt        jf                  ra| jh                  jk                  dt*               | jh                  jk                  dtl               | jh                  jk                  dtn               n| jh                  j                  d       | jp                  jr                  ju                  | jv                         | j                   jx                  ju                  | jz                         | j                  jx                  ju                  | j|                         | j                  jx                  ju                  | j~                         | j                  jx                  ju                  | j                         | j                  j                  ju                  | j                         | j                  j                  ju                  | j                         | j                  jx                  ju                  | j                         | j                          y # tZ        j^                  $ r t0        jY                  d       Y w xY w# t`        $ r& t0        jc                  d| jT                  z         Y w xY w)NTFr   usb      ro   zSearching for device...z_<b>Device not found.</b> <p>Please make sure your printer is properly connected and powered-on.z*<b>Invalid manual discovery parameter.</b>netz$Trying to get hostname for device...zHost name=%szFailed.z Invalid device URI specified: %szAll devices/printerszSingle function printers onlyzAll-in-one/MFP devices only)HUsbRadioButton
setCheckedsetUsbRadioButtonr   advancedmanualr   r   NetworkRadioButton
setEnabledprop	net_buildWirelessButtonParallelRadioButton	par_builddevicesbustimeoutttlsearchprint_test_pageDEVICE_DESC_ALLdevice_descr}   r   r   ManualParamLineEditrG   JetDirectSpinBoxsetValuer~   DiscoveryOptionsGroupBoxmanualDiscoveryrk   _SetupDialog__trr   usb_patmatchdev_patsetParallelRadioButtonip_patsetNetworkRadioButtonry   parseDeviceURIdebugsocketgethostbyaddrherrorErrorerror	fax_build
scan_buildDeviceTypeComboBoxaddItemDEVICE_DESC_SINGLE_FUNCDEVICE_DESC_MULTI_FUNCAdvancedButtonr9   r:   AdvancedButton_clickedtoggledUsbRadioButton_toggledNetworkRadioButton_toggledWirelessButton_toggledParallelRadioButton_toggledNetworkTTLSpinBoxvalueChangedNetworkTTLSpinBox_valueChangedNetworkTimeoutSpinBox"NetworkTimeoutSpinBox_valueChangedManualGroupBox_toggledshowAdvanced)r>   r   back_endis_hpmodelserialdev_filehostzcportr@   s              rD   r   zSetupDialog.initDiscoveryPage   s!   &&t,t$&&u-# !**4>>:&&t~~6  ++DNN;$*::HH./DK DM$$,,TZZ8!!**4<<8**40))44U;##%&*#$		u!w x ,,TZZ8$''2248**40 #NN00<E(T^^00;;DA33D9 !' 3 3DJJ ? , 33>>tD 66t< &dDII L-N O __+))$//: S%5&(D"d 88u$9		"HI%33D9!< 		.4"78 $%1EF&*# "&DDH**40""4(>>doo##++&9##++/1HJ##++-/EG ##..u5##++D,G,GH##++D,G,GH''//++	-##++D,G,GH  ((00,,	.++33//	1""//7733	5##++D,G,GHM "== -		),-  P		<tNOPs$   .Z -Y/ /(ZZ+[[c                 <    | j                   j                  |        y rN   )r   r   r>   checkeds     rD   r   z"SetupDialog.ManualGroupBox_toggledW  s    %%00W=rE   c           	      X   t        j                  | j                  | j                        \  }}}|rPt        j                  d|z         t        j                  |      \	  }}}}}}	}
}}|
}|dk(  rP	 t         j                  j                  |      0t        j                  d|z         t        j                  |
      d   }||||fi| _        |dk(  r-| j                  j!                  d       | j#                  d       y|dk(  r=t$        j&                  r-| j(                  j!                  d       | j+                  d       y|dk(  r<t$        j,                  r,| j.                  j!                  d       | j1                  d       yy# t        j                  t        j                  f$ r Y w xY w)	NzFound device: %sr   z&Getting host name from IP address (%s)r   r   TparF)r   makeURIr}   r~   r   r   r   r   r   r   r   r   r   gaierrorr   r   r   r   r   r   r   r   r   r   r   )r>   ry   sane_urifax_urir   r   r   r   r   r   r   r   r   r@   s                 rD   r   zSetupDialog.manualDiscoveryZ  s   (.JJ)&%
Hg HH'*45%%j1 JHeS%4T De|}}++D1=		DtKM%33D9!< 't(<=DLe|##..t4&&t,  $..''2248**40 	 $..((33D9++D1' v7 s   1AF #F)(F)c                 h    || _         | j                  j                         }| j                  |       y rN   )r   r   	isCheckedsetJetDirect)r>   r   networks      rD   r   z"SetupDialog.ManualGroupBox_clicked  s+    ))335'"rE   c                     | j                   j                  d       | j                  j                  d       | j                  t               | j                  t               y NFT)r   r   r   setNextButtonBUTTON_NEXTdisplayPagePAGE_DISCOVERYrP   s    rD   r   zSetupDialog.showDiscoveryPage  sB    ""5)""4(;'(rE   c                 H    | j                    | _         | j                          y rN   )r   r   rP   s    rD   r   z"SetupDialog.AdvancedButton_clicked  s     MM)rE   c                    | j                   rx| j                  j                  t               | j                  j                  | j                  d             | j                  j                  t        t        dd                   y | j                  j                  t               | j                  j                  | j                  d             | j                  j                  t        t        dd                   y )NzHide Advanced Optionsminus16x16zShow Advanced Optionsplus)r   AdvancedStackedWidgetsetCurrentIndexADVANCED_SHOWr   rG   r   setIconr    r!   ADVANCED_HIDErP   s    rD   r   zSetupDialog.showAdvanced  s    ==&&66}E''		2I(JK''k'7.K(LM&&66}E''		2I(JK''k&'.J(KLrE   c                     | j                   j                  |xr | j                         | j                  j                  |xr | j                         y rN   )JetDirectLabelr   r   r   r>   enableds     rD   r   zSetupDialog.setJetDirect  s<    &&w'>4;;?(()@T[[ArE   c                     | j                   j                  |       | j                  j                  |       | j                  j                  |       | j                  j                  |       y rN   )NetworkTimeoutLabelr   r   NetworkTTLLabelr   r  s     rD   setNetworkOptionszSetupDialog.setNetworkOptions  sR      ++G4""--g6''0))'2rE   c                     | j                   j                  |       | j                  j                  |       | j                  j                  |       y rN   )SearchLineEditr   r   DeviceTypeLabelr  s     rD   setSearchOptionszSetupDialog.setSearchOptions  s>    &&w/**73''0rE   c                 :    | j                   j                  |       y rN   )r   r   r  s     rD   setManualDiscoveryzSetupDialog.setManualDiscovery  s    &&w/rE   c                     | j                   j                  |       | j                  j                  |       | j                  j                  d       y Nr   )NetworkDiscoveryMethodLabelr   NetworkDiscoveryMethodComboBoxr   r  s     rD   setNetworkDiscoveryzSetupDialog.setNetworkDiscovery  s>    ((33G<++66w?++;;A>rE   c                 &    | j                  |       y rN   )r   r>   radio_enableds     rD   r   z"SetupDialog.UsbRadioButton_toggled      }-rE   c                    | j                  |        | j                  |        | j                  |        | j                  |       | j	                  |       |r2| j
                  j                  | j                  d             d| _        y y )NzUSB bus ID:device ID (bbb:ddd):r   	r  r   r  r  r  ManualParamLabelrG   r   r   r   s     rD   r   zSetupDialog.setUsbRadioButton  s~      W-g+&7{+g&(!!))		;<>DH rE   c                 &    | j                  |       y rN   )r   r  s     rD   r   z&SetupDialog.NetworkRadioButton_toggled  s    ""=1rE   c                    | j                  |       | j                  |       | j                  |       | j                  |       | j	                  |       |r2| j
                  j                  | j                  d             d| _        y y NzIP Address or network name:r   r  r   s     rD   r   z!SetupDialog.setNetworkRadioButton  sx      )'"w'g&(!!))		78:DH rE   c                 &    | j                  |       y rN   )setWirelessButtonr  s     rD   r   z"SetupDialog.WirelessButton_toggled  r  rE   c                     | j                  |        | j                  |        | j                  |        | j                  |        | j	                  |        |r2| j
                  j                  | j                  d             d| _        y y r   r  r   s     rD   r"  zSetupDialog.setWirelessButton  s      W-g+&7{+'k*G,!!))		78:DH rE   c                 &    | j                  |       y rN   )r   r  s     rD   r   z'SetupDialog.ParallelRadioButton_toggled  s    ##M2rE   c                     | j                  |        | j                  |        | j                  |        | j                  |        | j	                  |        |r2| j
                  j                  | j                  d             d| _        y y )NzDevice node (/dev/...):r   r  r   s     rD   r   z"SetupDialog.setParallelRadioButton  s      W-g+&7{+'k*G,!!))$))4M*NODH rE   c                     || _         y rN   )r   )r>   r   s     rD   r   z*SetupDialog.NetworkTTLSpinBox_valueChanged  s	    rE   c                     || _         y rN   )r   )r>   r   s     rD   r   z.SetupDialog.NetworkTimeoutSpinBox_valueChanged  s	    rE   c                 b    | j                   j                  j                  | j                         y rN   )RefreshButtonr9   r:   RefreshButton_clickedrP   s    rD   r   zSetupDialog.initDevicesPage  s"    ""**4+E+EFrE   c           	      B	   | j                   j                  d       | j                  t               d}t        j                  t        t        j                               	 | j                  s| j                  r| j                  r| j                          nd}| j                  dk(  r{| j                  dk(  rd}n| j                  dk(  rd}nd}t        j!                  d	| j                  | j"                  | j$                  | j&                  xs d
| j(                  |fz         n=t        j!                  d| j                  | j&                  xs d
| j(                  fz         | j(                  t*        k(  rdt,        j.                  t0        fi}n.| j(                  t2        k(  rdt,        j4                  t0        fi}ni }| j                  dk(  r]	 ddlm} t        j;                          |j=                  t>        d       t        j                  t        t        j                               tE        jF                  | j                  g| j"                  | j$                  || j&                  |      | _	        t        j;                          | jI                          | j                  r| jJ                  j                  d       | jL                  jO                  tQ        dd             tS        | j                        dk(  r+| jT                  jW                  | jY                  d             n@| jT                  jW                  | jY                  dtS        | j                        z               | j[                          n| jJ                  j                  d       | jL                  jO                  tQ        dd             t        jC                  d| j                  z         | jT                  jW                  | jY                  d             | j                  dk(  r?t]        j^                         r+ta        | | jY                  d      | jY                  d             | jc                  td               y # t@        $ r t        jC                  d       Y ^w xY w# t        j;                          w xY w)NTro   r   r   mdnsr	   slpavahizGSearching... (bus=%s, timeout=%d, ttl=%d, search=%s desc=%d, method=%s)z(None)z)Searching... (bus=%s, search=%s, desc=%d)z	scan-typer   )smart_installqt4z+Failed to Import smart_install.py from base)
net_searchr   r   z5<b>1 device found.</b> Click <i>Next</i> to continue.zX<b>%s devices found.</b> Select the device to install and click <i>Next</i> to continue.Fr   zNo devices found on bus: %szm<b>No devices found.</b><br>Click <i>Back</i> to change discovery options, or <i>Refresh</i> to search again.a  <b>HPLIP cannot detect printers in your network.</b><p>This may be due to existing firewall settings blocking the required ports.
                When you are in a trusted network environment, you may open the ports for network services like mdns and slp in the firewall. For detailed steps follow the link.
                <b>https://developers.hp.com/hp-linux-imaging-and-printing/KnowledgeBase/Troubleshooting/TroubleshootNetwork</b></p>zHP Device Manager)3r   r   r   r   QApplicationsetOverrideCursorQCursorQt
WaitCursorr   r   r}   r   r   r   r   r   r   r   r   r   r   operatorleSCAN_TYPE_NONEr   gtbaser/  restoreOverrideCursordisableGUI_MODEImportErrorr   r   probeDevicesclearDevicesTabler   DevicesFoundIcon	setPixmapr!   lenDevicesFoundLabelrG   r   loadDevicesTabler   	check_lanrk   r   PAGE_DEVICES)r>   r   net_search_typefilter_dictr/  s        rD   r   zSetupDialog.showDevicesPage  s   ""4(;'&&wr}}'=>2	1<<;;4::((* ')Oxx5(00A5.4O!22a7.3O.5O!j"&((T\\488T[[E\T\"&"2"2O"E"E F !L"&((T[[-DHdFVFV!W"X Y ''+BB'(++~)F'H ))-CC'(++~)F'H ')xx5(	8:
 )>>@)11(EB(:: ' 68 $*#6#6z4<<QUQYQY7BDKK\k$mDL ..0 <<OO&&t,!!++K,HI4<< A%&&..IIUVX &&..tyynruvz  wC  wC  sD  E0F G !!# OO&&u-!!++K,IJII3dhh>?""**499,A Bxx5 U__%6$		 +H !I ))$78:
 	&U  + OII MOO ..0s2    E)R 
Q# BR #RR RR Rc           
         | j                   j                  t        | j                               | j                  dk(  rE| j                  d      | j                  d      | j                  d      | j                  d      g}d}n$| j                  d      | j                  d      g}d}| j                   j                  t        |             | j                   j                  |       t        j                  t        j                  z  }t        | j                        D ]c  \  }}t        j                  |      \	  }}}}	}
}}}}t        j                  |	      }t!        t#        |      |      }|j%                  |       | j                   j'                  |d|       t)        t#        |            }|j%                  |       | j                   j'                  |||       | j                  dk(  st)        t#        |            }|j%                  |       | j                   j'                  |d|       t)        t#        | j                  |   d	               }|j%                  |       | j                   j'                  |d	|       f | j                   j+                          | j                   j-                  d       | j                   j/                  d
       | j                   j1                  d       y )Nr   Modelz
IP Addressz	Host Name
Device URIr   r	   r   r   T)DevicesTableWidgetsetRowCountrD  r   r   r   setColumnCountsetHorizontalHeaderLabelsr5  ItemIsSelectableItemIsEnabled	enumerater   r   r   normalizeModelUINameru   strsetFlagssetItemrw   resizeColumnsToContents	selectRowsetSortingEnabled	sortItems)r>   headersdevice_uri_colflagsrowdr   r   r   r   r   r   r   r   r   model_uiis                    rD   rF  zSetupDialog.loadDevicesTableR  sM   ++C,=>88uyy)499\+BDIIkDZ\`\e\efr\stGNyy)499\+BCGN..s7|<99'B##b&6&66- 	;FCLRLaLabcLdIHeS%4T2259H%c(mQ7AJJu##++CA6 Q(AJJu##++CCxx5 $SY/

5!''//Q:$Sa);%<=

5!''//Q:'	;* 	779))!,11$7))!,rE   c                     | j                   j                          | j                   j                  d       | j                   j                  d       y r  )rN  clearrO  rP  rP   s    rD   rA  zSetupDialog.clearDevicesTablez  s<    %%'++A...q1rE   c                 r    | j                          g | _        t        j                  d| j                         y r  )rA  r   r   r   r   rP   s    rD   r*  z!SetupDialog.RefreshButton_clicked  s+     !T112rE   c                     i | _         | j                  j                  j                  | j                         | j
                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  j                  | j                         | j                  j                  t        | j                               | j
                  j                  t        | j
                               | j                  j                  t        | j                               | j                   j#                  t%        t'        dd                   | j                   j                  j                  | j(                         | j                   j+                  | j-                  d             d| _        d| _        d| _        d| _        d| _        d| _        y )Nfolder_openr   z4Browse for an alternative PPD file for this printer.Fro   T)mqPrinterNameLineEdit
textEditedr:   PrinterNameLineEdit_textEditedFaxNameLineEditFaxNameLineEdit_textEditedSetupPrintGroupBoxr9   SetupPrintGroupBox_clickedSetupFaxGroupBoxSetupFaxGroupBox_clickedsetValidatorPrinterNameValidatorFaxNumberLineEditPhoneNumValidatorOtherPPDButtonr  r    r!   OtherPPDButton_clicked
setToolTipr   printer_fax_names_sameprinter_namefax_namefax_setup_ok	fax_setupprint_setuprP   s    rD   r   zSetupDialog.initAddPrinterPage  s     ++33//	1 	''//++	- 	''//++	-%%--d.K.KL  -- !9!9:	<)) !5!56	8++d445	7##E+mW*M$NO##++D,G,GH&&IILM	O ',#  rE   c                    t        j                         }| j                  j                  dt              }| j                  j                  dt
              }|t        kD  r|j                         t         j                  k7  rt        j                  |t        k(  |      \  }}|st        | | j                  d             y |r!|j                         t         j                  k7  r@|t        k(  rt        | | j                  d             y t        | | j                  d             | j                  t               | j!                         | _        | j"                  r| j$                  j'                  d       | j$                  j)                  d       | j*                  j'                  d       | j*                  j)                  d       | j-                          | j/                          nsd | _        | j$                  j'                  d       | j$                  j)                  d       | j*                  j'                  d       | j*                  j)                  d       t2        rt4        j6                  r| j                  j                  dt8              t8        t:        fvrd| _        | j>                  jA                  d       | j>                  j)                  d       | jC                         | _        | j<                  r!| jE                          | jG                          nd| _        | j>                  jA                  d       | j>                  j)                  d       nR| j>                  jA                  d       | j>                  j)                  d       d	| _$        d| _%        d| _        d| _&        | j"                  s| j<                  r&| jO                          | jQ                  tR               y tT        jW                  d
       | jY                          y )Npluginzplugin-reasonzn<b>Unable to find an appropriate su/sudo utiltity to run hp-plugin.</b><p>Install kdesu, gnomesu, or gksu.</p>a	  <b>The device you are trying to setup requires a binary plug-in. Some functionalities may not work as expected without plug-ins.<p> Please run 'hp-plugin' as normal user to install plug-ins.</b></p><p>Visit <u>http://hplipopensource.com</u> for more infomation.</p>zEither you have chosen to skip the installation of the optional plug-in or that installation has failed.  Your printer may not function at optimal performance.TFzfax-typero   zExiting the setup...)-r
   PluginHandleri  getPLUGIN_NONEPLUGIN_REASON_NONE	getStatusPLUGIN_INSTALLEDr   run_plugin_commandPLUGIN_REQUIREDrk   r   	WarningUIr   BUTTON_ADD_PRINTERsetDefaultPrinterNamer  ro  setCheckabler   SendTestPageCheckBoxfindPrinterPPD	updatePPD	print_ppdfax_import_okr   r   FAX_TYPE_NONEFAX_TYPE_NOT_SUPPORTEDr~  rq  r   setDefaultFaxName
findFaxPPDreadwriteFaxInformationr|  fax_name_okr}  setAddPrinterButtonr   r   r   r   close)r>   	pluginObjr  plugin_reasonoksudo_oks         rD   showAddPrinterPagezSetupDialog.showAddPrinterPage  s   !..0	X{3O5GHK""$(F(FF"55o-}>GdDII I%J KY002m6T6TT0!$		  3~  )  @!$		 ~) @ 	-.557##006##..t4%%2248%%006!NN!DN##007##..u5%%2259%%007T^^J6}Nd>ee!DN!!,,T2!!,,T2!335DN~~!,,.!&%%007%%007 !!,,U3!!,,U3DM#D"DN $Dt~~$$&-.HH+,JJLrE   c                 0   | j                   t        j                  d| j                  z         | j                  j                  | j                  d             	 | j                  j                  d       | j                  j                  t        d             y | j                  j                  | j                   d          | j                  j                  d       	 | j                  j                  d       y # t        $ r Y w xY w# t        $ r Y y w xY w)Nz0No appropriate print PPD file found for model %sz6(Not found. Click browse button to select a PPD file.)background-color: yellowro   r   )r  r   r   r   PPDFileLineEditrG   r   rI   AttributeErrorPrinterDescriptionLineEditrV  rP   s    rD   r  zSetupDialog.updatePPD  s    >>!IIH4::UV  ((3k)lm$$223MN ++33CG<   (():;++33B7$$2226 "  " s$   C: D	 :	DD		DDc           
      h   t        t        j                  | | j                  d      t        j                  dd      | j                  d                  }|r]t        j                  j                  |      r=|t        j                  |      f| _        | j                          | j                          y y y )NzSelect PPD Filedirsppdz)PPD Files (*.ppd *.ppd.gz);;All Files (*))r   QFileDialoggetOpenFileNamer   sys_confr  ospathexistsr   getPPDDescriptionr  r  r  )r>   bppd_files      rD   rx  z"SetupDialog.OtherPPDButton_clicked  s    k99$		J[@\:B,,E;IIABD E
 x0&(>(>x(HIDNNN$$& 18rE   c                    t         j                  t        t        j                               	 t        j                         | _        d| _        | j                  slt        j                  | j                        }t        j                         | _        t        | j                  dz   |z         | _        | j                  df| _        n:t        j                  | j                   | j                  | j                        | _        d| j                  v sd| j                  v rd| _        t         j#                          y# t         j#                          w xY w)zw
        for ubuntu 20.10 not able get ppd list from cups server.
        so fetching ppds hplip ppds directly
        ro   /scanjetdigital_senderN)r2  r3  r4  r5  r6  r   getSystemPPDsppdsppd_name
getPpdNamer   getPPDPath1r  rV  r  getPPDFile2ri  r<  )r>   ppdNames     rD   r  zSetupDialog.findPrinterPPD	  s    
 	&&wr}}'=>	1**,DIDM99//$**5 ,,.	 #DIIOg$= >"&--!4 "&!1!1GGTZZ"4 DJJ&*:djj*H!% ..0L..0s   C5D8 8Ec                 
   t         j                  t        t        j                               	 t        j                  | j                  | j                        \  | _	        }}| j                  rd| _
        nbd| _
        t        | | j                  d|z               d| _        | j                  j                  d       | j                  j!                  d       t         j#                          y # t         j#                          w xY w)NTFz^<b>Unable to locate the HPLIP Fax PPD file:</b><p>%s.ppd.gz</p><p>Fax setup has been disabled.)r2  r3  r4  r5  r6  r   getFaxPPDFileri  r   fax_ppdr}  rk   r   r~  rq  r   r   r<  )r>   fax_ppd_namenicks      rD   r  zSetupDialog.findFaxPPD&  s    &&wr}}'=>	1/3/A/A0%,DL,||$(!$)!$		t  xD  D!E F!&%%007%%007..0L..0s   B)C, ,Dc           
         t        j                  dg      | _        t        j	                  | j                         t        j                         D cg c]  }|j                   c}| _        t        j                  | j                        \	  }}}}}}}}	}
t        j                  |j                  dd      j                  dd      d      }|}t        j                  dg      }| j                  | j                  v r|| j                  | j                     v s||v r| j                  ddj!                  |D cg c]	  }||v s| c}      z        }t"        j%                  | | j'                         |t"        j(                  t"        j*                  z  t"        j,                        t"        j(                  k(  rQd}	 |d
|z  z   }||vr<| j                  | j                  vs|| j                  | j                     vr	|d
|z  z  }n|dz  }Nd| _        yd	| _        | j0                  j3                  |       t        j	                  |       || _        y	c c}w c c}w )Nhpseriesro   Series_z<b>One or more print queues already exist for this device: %s</b>.<br> <b>Would you like to install another print queue for this device ?</b>, r   T_%dr	   F)r   getSupportedCUPSDevicesinstalled_print_devicesr   r   r   getPrintersr@   installed_queuesr   ry   r   xstripreplacegetSupportedCUPSPrinterNamesr   joinQMessageBoxwarningwindowTitleYesNoNoButtonprinter_name_okrj  rG   r{  )r>   pr   r   r   r   r   r   r   r   r   default_modelr{  installed_printer_namesprinter	warn_textrc  ts                     rD   r  z!SetupDialog.setDefaultPrinterName7  sP   '-'E'Etf'M$		$../151A1A1C DA DHNH]H]OOIE%eVXtRU]]b&!'(B/6 %"("E"Etf"MOOt;;;PTPlPlmqm|m|P}@}66		  #r"&))D[,w_kov_vW,w"x#y zI##D$($4$4$6$-$/OO$/NN%3$/$8$8:
 >I__M $uqy0A!88tVZVrVr?rvw  @D  @\  @\  ]a  ]l  ]l  @m  wm$	1FA  (-$#  ((6		,(I !E -xs   I5	I?Ic           
      `   t        j                  dg      | _        t        j	                  | j                         | j
                  j                  dd      | _        t        j                  | j                        \	  }}}}}}}}}	t        j                  |j                  dd      j                  dd      d      }
|
dz   }t        j                  dg      }| j                  | j                  v r|| j                  | j                     v s||v r| j                  d	d
j                  |D cg c]	  }||v s| c}      z        }t        j                  | | j!                         |t        j"                  t        j$                  z  t        j&                        t        j"                  k(  rQd}	 |d|z  z   }||vr<| j                  | j                  vs|| j                  | j                     vr	|d|z  z  }n|dz  }Nd| _        yd| _        | j*                  j-                  |       || _        yc c}w )Nhpfaxzhp:zhpfax:r  ro   r  r  _faxz<b>One or more fax queues already exist for this device: %s</b>.<br> <b>Would you like to install another fax queue for this device ?</b>r  r   Tr  r	   F)r   r  installed_fax_devicesr   r   ry   r  r   r   r   r  r  r   r  r  r  r  r  r  r  r  rm  rG   r|  )r>   r   r   r   r   r   r   r   r   r   r  r|  installed_fax_names
fax_devicer  rc  r  s                    rD   r  zSetupDialog.setDefaultFaxNamea  s4   %+%C%CWI%N"		$,,-..uh?HNH]H]LLIE%eVXtRU]]b&!'(B/6 !6)$AA7)LLLD6668tGaGabfbnbnGo;o..		 \		8Kf*x[eOe:fghiI ##D$($4$4$6$-$/OO$/NN%3$/$8$8:
 >I__M  519,A!444<<tOiOi;imnvz  wQ  wQ  RV  R^  R^  w_  n_ EAI-FA  $) $$X. + gs   (	H+2H+c                 P   t        |      | _        d| _        | j                  s3| j                  j	                  | j                  d             d| _        n0| j                  | j                  k(  r]| j                  d      }| j                  j	                  |       | j                  j	                  |       d| _        d| _        d| _	        n| j                  | j                  v r2| j                  j	                  | j                  d             d| _        np| j                  rd| j                  | j                  k7  rKd| _	        d| _        | j                  j                  t        d      | j                  j                                | j                          | j                          y )NTz&You must enter a name for the printer.FOThe printer name and fax name must be different. Please choose different names.zHA printer already exists with this name. Please choose a different name.ztextEdited(const QString &))r   r{  r  rj  ry  r   r|  rm  r  rz  r  emitSIGNALrO   setIndicatorsr  r>   r  ra   s      rD   rl  z*SetupDialog.PrinterNameLineEdit_textEdited  sa   &qM#  $$//		BCE#(D ]]d///		acA$$//2  ++A.$D#(D *.D'$"7"77$$//		Z1\ ]#(D ((}} 1 11.3+'+$$$))&1N*O*.*>*>*C*C*EG 	  "rE   c                 P   t        |      | _        d| _        | j                  s3| j                  j	                  | j                  d             d| _        n0| j                  | j                  k(  r]| j                  d      }| j                  j	                  |       | j                  j	                  |       d| _        d| _        d| _	        n| j                  | j                  v r2| j                  j	                  | j                  d             d| _        np| j                  rd| j                  | j                  k7  rKd| _	        d| _        | j                  j                  t        d      | j                  j                                | j                          | j                          y )NTzYou must enter a fax name.Fr  zDA fax already exists with this name. Please choose a different name.ztextEdited(const QString&))r   r|  r  rm  ry  r   r{  rj  r  rz  r  r  r  rO   r  r  r  s      rD   rn  z&SetupDialog.FaxNameLineEdit_textEdited  s[   "1}}  ++		679$D]]d///		acA$$//2  ++A.#(D $D*.D']]d333  ++DIIV-X Y$D((}} 1 11.3+#' ((--f5Q.R.2.F.F.K.K.MO 	  "rE   c                 2   | j                   j                         s7| j                  j                  d       | j                  j	                  d       n6| j                  j                  d       | j                  j	                  d       | j                          y r   )ro  r   r  r  r   r  rP   s    rD   rp  z&SetupDialog.SetupPrintGroupBox_clicked  sp    &&002%%2259%%007%%2248%%006  "rE   c                 $    | j                          y rN   )r  rP   s    rD   rr  z$SetupDialog.SetupFaxGroupBox_clicked  s      "rE   c                     | j                   rA| j                  j                  t        d             	 | j                  j	                  d       n	 | j                  j	                  d       | j                  rA| j                  j                  t        d             	 | j                  j	                  d       y 	 | j                  j	                  d       y # t
        $ r Y uw xY w# t
        $ r Y w xY w# t
        $ r Y y w xY w# t
        $ r Y y w xY w)Nro   r  )r  rj  ry  rV  rI   r  r  rm  rP   s    rD   r  zSetupDialog.setIndicators  s    $$//B8((66r:((66.0
   ++CG4((66r:((66.0# "  "  "  " sG   C C# C2 8D 	C C #	C/.C/2	C>=C>	DDc                    | j                   dk(  rt        j                  j                  d      sddlm} ddlm} 	 |j                  dd      }t        j                  d	       t        j                  |       | j                  j                  d
d      }t        j                  d       t        j                  |       |D ]G  }||   j                         |j                         k(  r t        j                  d       |d   | _        G y 	 | j$                  j'                         s| j(                  j'                         r`| j*                  j-                  | j.                  xr | j0                  xr | j2                  duxs | j4                  xr | j6                         y| j*                  j-                  d       y# t        $ r.}|t        _        t        j!                  d|z         t"        d}~ww xY w)z
        If the device is on usb and os doesn't supports ipp-usb we assign new ipp uri to the printer.
        this is for driverless usb printer held by ippusbxd service on ubuntu 20 and above.
        For network devices follow the old code.
        r   z/usr/share/ipp-usb/quirksr   )local)detectLocalDevicesr   
   )r   r   z  Detected devices from local.py r   z current pritner is: z%Assign ipp URI to the current printerprinter_uriNz*An error occured during network probe.[%s]F)r   r  r  isdirr;  r  
base.localr  r   r   r   r  lowerry   r   r   r   ERROR_INTERNALro  r   rq  r   r   r  r  r  r~  r  )r>   r  r  detected_devicescurrent_printerkeysocket_errors          rD   r  zSetupDialog.setAddPrinterButton  s    88uRWW]]3N%O"5%#(#;#;2#;#N 		<=		*+"&**"4"4S#">		12		/*+ C',2248M8M8OO		"IJ*:=*I "",,.$2G2G2Q2Q2SOO&&(8(8(pT=Q=Q(pVZVdVdlpVp (M(,(K4;K;KN OO&&u-  %+		@<OQ$$	%s   CF< 
F< <	G3)G..G3c                 R   | j                   r| j                         }|t        j                  k(  s&|t        j                  k(  s|t        j
                  k(  r	 |t        j                  k(  r| j                          | j                  r| j                          | j                  r| j                         t        j                  k(  r| j                  j                         | j                  k7  rd| _        | j                   j                         | j"                  k7  rd| _        | j                  s| j$                  rat'        | j                   j                               | _        t'        | j                  j                               | _        | j)                  d       | j+                          y )NTF)r  setupPrinterr   IPP_FORBIDDENIPP_NOT_AUTHENTICATEDIPP_NOT_AUTHORIZEDIPP_OKflashFirmwarer   printTestPager~  setupFaxru  rO   
fax_numberr   NameCompanyLineEditfax_name_companyr   r   r  r  )r>   	print_stss     rD   
addPrinterzSetupDialog.addPrinter  sB   ))+ID...)t?Y?Y2Y]fjn  kB  kB  ^BDKK'""$##""$>>}}$++-))..0DOOC,0D)++002d6K6KK15D.((D,F,F,600557-9D)&01G1G1L1L1N&ODO007

rE   c                    | j                   j                  dd      rr	 t        j                  | j                        }|j                         rt        j                  d       nt        | | j                  d             |j                          y y # t        $ r@}t        | | j                  d|j                  d|j                  d             Y d }~y d }~ww xY w)Nzfw-downloadFzFirmware download successful.
z#<b>Firmware download is Failed.</b>z<<b>Error opening device. Firmware download is Failed.</b><p> ().)ri  r  r   Devicery   downloadFirmwarer   r   rk   r   r  r   msgoptr>   ra  es      rD   r  zSetupDialog.flashFirmware:  s    77;;}e,MM$//2
 %%'HH>?dDII=%? @	 -  n$		^_^c^cefejejk!m n nns   B 	C6CCc                    t         j                  }t        j                  t	        t
        j                               	 t        j                  j                  | j                  d         sGt        | j                        | j                  | j                  d| j                  d   | j                  f}nFt        | j                        | j                  | j                  | j                  d   d| j                  f}t        j                   t         j"                  t$        d| g| \  }}t&        j)                  t+        j,                  dg             |t         j.                  k7  r3t        j1                          t3        | | j5                  d|z               n/t7        j8                  t:        | j                  | j                         t        j1                          |S # t        j1                          w xY w)Nr   ro   r0  r  z0<b>Printer queue setup failed.</b> <p>Error : %s)r   IPP_BAD_REQUESTr2  r3  r4  r5  r6  r  r  r  r  r   r{  ry   print_location
print_desccups_operationr  r>  r   r   r   r  r   r<  rk   r   r   	sendEventEVENT_CUPS_QUEUES_ADDED)r>   statusadd_prnt_args
status_strs       rD   r  zSetupDialog.setupPrinterM  sv   %%&&wr}}'=>	177>>$.."34!4T5F5F!G!%!4!4b$..:KT__!^ "5T5F5F!G!%!4!4dnnQ6GT__!^ "&!4!45$"H9F"HFJIIf44dV<=$224$		FS!U V  7 $1B1BD ..0 ..0s   FG G/c                    t         j                  }t        j                  t	        t
        j                               	 t        j                  j                  | j                        sPt        j                  | j                  | j                  | j                  d| j                  | j                        \  }}nOt        j                  | j                  | j                  | j                  | j                  d| j                        \  }}t         j#                  t%        j&                  dg             |t         j(                  k7  r3t        j+                          t-        | | j/                  d|z               n/t1        j2                  t4        | j                  | j                         t        j+                          |S # t        j+                          w xY w)Nro   r  z+<b>Fax queue setup failed.</b><p>Error : %s)r   r  r2  r3  r4  r5  r6  r  r  r  r  r  r|  r   fax_locationfax_descr   r   r   r  r   r<  rk   r   r   r  r  )r>   r  r  s      rD   r  zSetupDialog.setupFaxj  sN   %%&&wr}}'=>	177>>$,,/%)__T]]59\\4CTCTVXZ^ZfZfimiviv&x"
 &*__T]]59\\4CTCTVZVbVbdfhlhuhu&w"
 IIf44gY?@$224$		AJN!P Q  7 $dmm= ..0 ..0s   E&F: :Gc                    	 t         j                  t        t        j                               t        j                  | j                  d      }	 	 |j                          	 d}d}	 |dz  }	 |r>	 t        |j                               | _        t        |j                               | _        n|j!                         dk(  r\d}	 t#        |      \  }}|dk(  s|dk(  r&	 |j%                          t         j'                          y |j)                  ||      }|dk7  rd	}Y	 | j*                  r|j-                  | j                         | j.                  r|j1                  | j                         d}	 |j%                          |rL|rJ| jL                  jO                  | j                         | jP                  jO                  | j                         	 t         j'                          y #  t        j                  d       d| _        d| _        Y xY w# t2        $ r | j5                  d
      }	t        j7                  t        |	             t8        j;                  | | j=                         |	t8        j>                  t8        j@                  z  t8        jB                  z  t8        jD                  z  t8        jF                        t8        jB                  k(  rY `tH        jK                  d       d}|dkD  rY Y nw xY w# |j%                          w xY w# t2        $ r | j5                  d      }	t        j7                  t        |	             t8        j;                  | | j=                         |	t8        j>                  t8        j@                  z  t8        jB                  z  t8        jD                  z  t8        jF                        t8        jB                  k(  rY Y nw xY w# t         j'                          w xY w)NT)disable_dbusr   r	   zIO Errorro   z/Enter the printer's username password password
   zPInvalid Username or Password!.
Rernter the printer's username password password
zP<b>Device I/O Error</b><p>Could not communicate with device. Device may be busy.r   F   zMUnable to communicate with the device. Please check the device and try again.))r2  r3  r4  r5  r6  r   getFaxDevicer   openr   getPhoneNumr  getStationNamer  r   r   isAuthRequiredrs   r  r<  getCDMTokenr   setStationNamer   setPhoneNumr   r   r   r  criticalr  RetryDefaultrW   Escaper  timesleepru  rG   r  )
r>   readra  triesr  
promptTextusernamepasswordrespCode
error_texts
             rD   r  z#SetupDialog.readwriteFaxInformation  sn   \	1**72==+AB  DAASFFH>" !!"!QJE4&#'%C:DQ]]_:U@J1K[K[K]@^(= ()'7'7'9T'A5g
.2AO0:B<,>Hh/72~R06H 	 ..0Y 89}}08(8DH/73 >R
08,1'+'A'A()(8(89N9N(O'+'<'<()doo(F, &* % 	d..66tG00889N9NO ..0s%C(+		*(=:<@B(=* $) *-1YY$v.x
 #		*Z*@ A#.#7#78<8H8H8J8B8C8I8IKL_L_8_8C8J8J9KMXM_M_9`8C8L8L$N
 R]QcQc$d %* $

1%*#(2:$) $.!*E #t 	W  
!%g"iJIIj45"++D,0,<,<,>,6,7,=,=@S@S,S,7,>,>-?ALASAS-T,7,@,@B
 FQEWEWX X	
 n ..0s   AO L	 "
K4 -H 0<G! ,/H O A)H *K4 -AO !%HH B?K/
K4 K/)K4 .K//K4 4LO 	B?OO OO O)c                    	 t        j                  | j                        }	 |j                          |j	                         r-|j                          	 |j                  | j                         y t        | | j                  d             |j                          y # t        $ rr}|j                  t        k(  rt        | | j                  d             n9t        | | j                  d|j                  |j                  fz               Y d }~y Y d }~y d }~ww xY w# t        $ r t        | | j                  d             Y y w xY w# t        $ r@}t        | | j                  d|j                  d|j                  d             Y d }~y d }~ww xY w)NzZ<b>No CUPS queue found for device.</b><p>Please install the printer in CUPS and try again.z6<b>Printer Error</b><p>An error occured: %s (code=%d).zn<b>Printer Error.</b><p>Printer is busy, offline, or in an error state. Please check the device and try again.zG<b>Unable to print to printer.</b><p>Please check device and try again.z<b>Device error:</b><p>r
  r  )r   r  ry   r$  isIdleAndNoErrorr  r  r{  r   r  $ERROR_NO_CUPS_QUEUE_FOUND_FOR_DEVICErk   r   r  r  s      rD   r  zSetupDialog.printTestPage  se   	doo.A
 %%'GGIl(9(9: dDII I%J KGGI ! l55$HH%dDII |-~  &dDII X\]\a\acdchch[i i-k l ll  `$		]!_ ``  	EdDII56UUAEEBD E E	EsA   E D B 	D$A#DD$E ?E 	F6FFc                      y rN   ri   rP   s    rD   r   zSetupDialog.initRemovePage  s    rE   c           
      $   | j                  t               | j                  j                  | j	                  d             | j                  t               | j                  j                  d       | j                  j                  d       | j                  j                         j                          t        j                  ddg      | _        t         j#                  | j                         | j                  s,t%        | | j	                  d             | j'                          y | j                  j)                  t+        | j                               | j	                  d      | j	                  d      | j	                  d      | j	                  d	      g}| j                  j-                  t+        |             | j                  j/                  |       t0        j2                  t0        j4                  z  }d
}| j                  D ]  }t7        | j                        }|j8                  j;                  | j<                         | j                  j?                  |d
|       t        j@                  |jB                        \	  }}}}	}
}}}}| jB                  8| jB                  |jB                  k(  r|jE                  t0        jF                         tI        tK        |jL                              }|jO                  |       |jQ                  t0        jR                  |jL                         | j                  jU                  |d|       |dk(  r| j	                  d      }n| j	                  d      }tI        |      }|jO                  |       | j                  jU                  |d|       tI        tK        |jB                              }|jO                  |       | j                  jU                  |d|       |dz  } | j                  jW                          y )NzStep 1 of 1Fr  r  zr<b>No printers or faxes found to remove.</b><p>You must setup a least one printer or fax before you can remove it.SelectzPrinter (Queue) NameTyperM  r   r	   FaxPrinterr   r   ),r   PAGE_REMOVEStepTextrG   r   r   BUTTON_REMOVEr   r   r   RemoveDevicesTableWidgetverticalHeaderhider   getSupportedCUPSPrintersinstalled_printersr   r   rk   r  rO  rD  rP  rQ  r5  rR  rS  	QCheckBoxstateChangedr:   CheckBox_stateChangedsetCellWidgetr   ry   setCheckStateCheckedrw   rV  r@   rW  setDataUserRolerX  rY  )r>   r]  r_  r`  r  widgetr   r   r   r   r   r   r   r   r   rc  typs                    rD   r   zSetupDialog.showRemovePage
  s   %dii67=)""5)""5)%%446;;="("A"ABFCQ #R		$))*&&dDII EF GJJL%%11#d6M6M2NO99X&		")$%)YYv%6		,8OQ 	%%44S\B%%??H##b&6&66(( 	At<<=F''(B(BC))77QG %%all3 JHeS%4T *t!,,/N$$RZZ0 QVV-AJJuIIbkk166*))11#q!<7"ii&ii	* %AJJu))11#q!< Q\\!23AJJu))11#q!<1HC;	> 	%%==?rE   c                 >   t        | j                  j                               D ]\  }| j                  j                  |d      }|j	                         t
        j                  k(  sA| j                  j                  d        y  | j                  j                  d       y )Nr   TF)	rangerD  rowCount
cellWidget
checkStater5  rN  r   r   )r>   rc  r`  rQ  s       rD   rK  z!SetupDialog.CheckBox_stateChangedH  s{    66??AB 	.C22==c1EF  "bjj0**40		. OO&&u-rE   c           
         | j                   j                         }|t        k(  r| j                  j	                         | _        t        | j                  j                               | _	        | j                  j                         | _        t        | j                  j                               | _        t        | j                   j#                  | j                   j                                     d   | _        | j&                  j                         | _        | j*                  j	                         rPt-        | d d      }|j/                          |j0                  t2        k(  rd| _        |j4                  | _	        d| _        | j*                  j	                         s| j9                          y y |t:        k(  r| j<                  j?                         }| j<                  jA                  |d      jB                  | _!        tE        jF                  | jB                        | _$        tE        jJ                  | jB                        \	  }}}}}}	}
}}tM        jN                  |      jQ                         | _)        | jU                          y |tV        k(  r2| jX                  j	                         | _-        | j\                  j	                         | _/        | j`                  j	                         | _1        te        t        | jf                  j                                     | _4        te        t        | jj                  j                                     | _6        te        t        | jn                  j                                     | _8        te        t        | jr                  j                                     | _:        | jw                          y |tx        k(  rt{        | j|                  j                               D ]u  }| j|                  j                  |d      }|j                         t        j                  k(  sB| j|                  jA                  |d      }t        t        |j                  t        j                                    }tE        j                  |      }t        j                  d|z         t        j                  t        j                  t        d| |      \  }}|t        j                  k7  r^t        | | j                  d	|d
|             |t        j                  k(  s(|t        j                  k(  s|t        j                  k(  sY nt        j                  t        ||       x | j                          y t        j                  d       y )Nr   F)ry   
standaloneTr   r	   zRemoving printer: %sr0  z<b>Unable to delete 'z' queue. </b><p>Error : Invalid page!)YStackedWidgetcurrentIndexr   r   r   r   r   r   rO   r}   r   valuer~   r  r   	value_intr   itemDatar   r  r   r   r   rp   successr   hnr   r   rH  rN  
currentRowitemry   r   queryModelByURIri  r   r   normalizeModelNamer  r   r  r   r  r   ro  r  rq  r~  r   PrinterLocationLineEditr  r  r  FaxDescriptionLineEditr  FaxLocationLineEditr  r  rA  rT  rD  rU  rV  rW  r5  rN  	value_strdatarP  getDeviceURIByPrinterNamer   r   r   r  
delPrinterr>  r   rk   r   r  r  r  r   r  EVENT_CUPS_QUEUES_REMOVEDr  r   )r>   r  rl   r`  r   r   r   r   r   r   r   r   r   rQ  rc  r  urir  r  s                      rD   r   zSetupDialog.NextButton_clickedU  s>   ++---779DK#D$<$<$A$A$CDDJ00668DL$T%8%8%=%=%?@DK()@)@)I)I''446*8  99: <D$($G$G$T$T$VD!"",,.%dtN		;;"33"&DK!$DJ$DH&&002$$& 3 ,))446C"55::3BMMDO,,T__=DGLRLaLaM!IHeS%4T2259??ADJ##%""#'#<#<#F#F#HD #66@@BD!22<<>DN"5477<<>?#AD14::??ABDDO/466;;=>@DM 343388:;!=D OO+T::CCEF E66AA#qI$$&"**488==c1ED(499R[[3I)JKG ::7CCII4w>?)-)<)<5$*I&FJ ,!$		SZ\fg)i j!T%7%776TE_E_;_cimq  nE  nE  dE! 5sGE#E( JJL IIo&rE   c                     | j                   j                         }|t        k(  ri | _        | j	                          y |t
        k(  r| j                          y t        j                  d       y )NrZ  )	r[  r\  rH  r   r   r   r   r   r   r>   r  s     rD   r   zSetupDialog.BackButton_clicked  sT    ++-DL""$""  " IIo&rE   c                 $    | j                          y rN   )r  rP   s    rD   r   z SetupDialog.CancelButton_clicked  s    

rE   c                 \    | j                   j                  |       | j                  |       y rN   )r[  r   updateStepText)r>   pages     rD   r   zSetupDialog.displayPage  s$    **40D!rE   c                    |t         k(  r+| j                  j                  | j                  d             y |t        k(  r+| j                  j                  | j                  d             y |t
        k(  r+| j                  j                  | j                  d             y |t        k(  r+| j                  j                  | j                  d             y y )NzAdd PrinterzNext >FinishRemove)r  r   rG   r   r   BUTTON_FINISHrC  )r>   rR  s     rD   r   zSetupDialog.setNextButton  s    $$OO##DIIm$<=KOO##DIIh$78M!OO##DIIh$78M!OO##DIIh$78 "rE   c           	          | j                   j                  | j                  d|dz   d| j                  dz                y )NzStep r	   z of )rB  rG   r   r   rp  s     rD   rs  zSetupDialog.updateStepText  s5    dii sDMM!O)5 6 	7rE   c                 0    t         j                  d||      S r[   r]   r`   s      rD   rc   zSetupDialog.__tr  rd   rE   )NFre   rN   )?rf   rg   rh   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   rF  rA  r*  r   r  r  rx  r  r  r  r  rl  rn  rp  rr  r  r  r  r  r  r  r  r  r   r   rK  r   r   r   r   rx  r   rs  r   ri   rE   rD   r\   r\      sE   1:-0m^>$L#
)MB31
0?
.
2
.
3	GU'n&-P2
3!>BH&	'1:1"(T'R #D #D##6".P:&:6]1~F<@|.G'R
'" !. 973rE   r\   )NT)7r   r7  
subprocessr   base.gr;  r   r   r   r   prntr   
base.codesui_utils	installerr
   base.sixextr   r   r   PyQt5.QtCorePyQt5.QtGuir?  PyQt5.QtWidgetssetupdialog_baser   plugindialogr   wifisetupdialogr   r   r   r  r   r  r   rH  r   rA  r   rx  r  rC  r  r  r   r   r   r   r   rm   rs   rw   ru   r\   ri   rE   rD   <module>r     s  .      , ,    # < <" ( & ?>M      A3W A3H %, %N3'9 N3U  "!"  >MKK<=>s$   
B. "C .CCC#"C#