403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/system-config-printer/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/system-config-printer/system-config-printer.pyo
JcP@sddkZddkZddkZddkZddkZddkZddkZddkZddkZddk	Z	ddk
Z
ddkZddkZddk
TddkZyddkZWn0ej
o$ZdGeGHdGHeidnXddkZdZeideidd	Zeeidjoeidd
joeeidnddkZeidyeieiWnej
onXyddk Z e!Z"Wn
e#Z"nXddk$Z$ddk%Z%ddk&Z&dd
k'l(Z(ddk)l*Z*ddk+Tddk,Z,ddk-Z-ddk.Z.ddk/Z/ddk0Z0ddk1Z1ddk2Z2ddk3l4Z4ddk5Z5ddk5Tddk6Z6ddk7Z7ddk8l9Z9ddk:l:Z:ddk;Tddk<Tddk=Tddk>Tddk?Z?ddk@Z@ddkAZAdZBddkCZCyeCiDeCiEdWn6eCiFj
o'deiGd<eCiDeCiEdnXddkHlHZIe2iJeIe5iJeIe1iJeIddkHZHeHiKeBeHiLeBeiMei'iKeBei'iLeBeiMddkNZNeNiOeiPZQeiRiSeQdZTeiRiUeQeiViWeiViXZYeIdZZy
ei[Z\Wnej
o
dZ\nXdZ]dZ^dZ_dZ`dZade(e2ibfd YZcd!e(fd"YZdeeeee#de#e!d#Zfegd$joddkhZhy;ehiieiddd%d&d'd(d)d*d+g\ZjZkWn*ehilj
oeeidnXeeZmeeZne#Zoe#Zpe!ZqdZrxejD]\ZsZtesd,jpesd-jp
esd.jo8etZnesd-jo
e!Zonesd.jo
e!Zpnnaesd/jo
etZmnJesd0jo
etZrn3esd1jo
e#Zqnesd2joeue!nqWefemeneoerepeqndS(3iN(t*ssystem-config-printer:s?This is a graphical application and requires DISPLAY to be set.icCs&titii|tidS(N(tgtktshow_uritgdktscreen_get_defaulttget_current_event_time(turi((s9/usr/share/system-config-printer/system-config-printer.pyR(scCs
t|S((R(txty((s9/usr/share/system-config-printer/system-config-printer.pyt<lambda>-scCstd|S(smailto:(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyR	.scCs	dGHdS(Ns
This is system-config-printer, a CUPS server configuration program.

Options:

  --setup-printer URI
            Select the (detected) CUPS device URI on start-up,
            and run the new-printer wizard for it.

  --configure-printer NAME
            Select the named printer on start-up, and open its
            properties dialog.

  --choose-driver NAME
            Select the named printer on start-up, and display
            the list of drivers.

  --print-test-page NAME
            Select the named printer on start-up and print a
            test page to it.

  --no-focus-on-map
            Do not focus the main window, to prevent focus 
            stealing

  --debug   Enable debugging output.
((((s9/usr/share/system-config-printer/system-config-printer.pyt	show_help0ss--helpis1.9.42(tGtkGUI(tOptionWidget(tSMBURI(tAdvancedServerSettingsDialog(tPhysicalDevicessystem-config-printerttCtLC_ALL(tgettextsicons/sGTo do this, select System->Administration->Firewall from the main menu.t_remote_anycCs8ti|\}}|djp
|djotStS(s*Returns True is the provided URI is valid.RN(turllibt	splittypetNonetFalsetTrue(Rtschemetrest((s9/usr/share/system-config-printer/system-config-printer.pytvalidDeviceURIscCs&ti}|ddjodS|S(Nit/t	localhost(tcupst	getServer(thost((s9/usr/share/system-config-printer/system-config-printer.pytCUPS_server_hostnamescCs|i}|i\}}g}|D]}|ti||q)~}|i}xU|D]M}|i}|i|}	|i|	d}
|i|
|i	|	q^WdS(Ni(
t
get_selectiontget_selected_rowsRtTreeRowReferencet	get_modeltget_pathtget_itertgettappendtremove(t
treeview_fromttreeview_tot	selectiont
model_fromtrowst_[1]trowtmodel_totpathtitertrow_data((s9/usr/share/system-config-printer/system-config-printer.pytmoveClassMemberss-
cCsg|i}|i}g}x8|o0|i|i|dd|i|}q!W|i|S(Ni(R&t
get_iter_rootR*R)t	iter_nexttsort(ttreeviewtmodelR5tresult((s9/usr/share/system-config-printer/system-config-printer.pytgetCurrentClassMemberss
cCs|itS(N(thideR(twidgettevent((s9/usr/share/system-config-printer/system-config-printer.pyton_delete_just_hides
tGUIcBseZhedei6edei6edei6edei6Ze	e	e
de
edZdZ
dZdZd	Zd
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZe	dZe	dZ dZ!dZ"edZ#dZ$dZ%dZ&d Z'd!Z(e	d"Z)d#Z*d$Z+d%Z,d&Z-d'Z.d(Z/d)Z0d*Z1d+Z2d,Z3d-Z4d.Z5d/Z6d0Z7ed1Z8ddeed2Z9d3Z:d4Z;d5Z<d6Z=d7Z>e
e	d8Z?d9Z@d:ZAd;ZBd<ZCd=ZDd>ZEd?ZFd@ZGdAZHe	dBZIdCZJdDZKdEZLdFZMdGZNdHZOdIZPdJZQdKZRdLZSdMZTdNZUe	dOZVdPZWdQZXdRZYdSZZdTZ[dUZ\dVZ]dWZ^dXZ_dYZ`dZZad[Zbd\Zcd]Zdd^Zed_Zfd`ZgdaZhdbZidcZjddZkdeZldfZmdgZndhZodiZpdjZqdkZrdlZsdmZtdnZudoZvdpZwdqZxdrZydsZzdtZ{duZ|dvZ}dwZ~dxZdyZdzZd{ZRS(|tIdlet
ProcessingtBusytStoppedRc)nCsy.titi|_titi|_WnXtdtid<ti	ti
dtiti|_titi|_nXd|_t
|_|io|iip
ti|_ti|_ti|_t
|_t
|if|_d|_||_||_t|_|ihdddddd	d
ddd
dddg
d6dgd6ddddgd6dddgd6dddgd6ddddd d!d"d#gd6d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddSgid$6|ii|ix*|i |i!gD]}|i"dt#q)W|i$i"d|i%t&i'dt&i(d|_)|i)i*t+t&i,}t&i-t.d}	t&i/}
|
i0dt&i1|	i2|
|	i"d|i3|i)i"d|i3t&i-t.d}t&i/}|i0dt&i1|i2||i"d|i4|	i5|i5|i6|	dddd|i6|dddd|i)i7||i8i9|i)|i8i9t&i:t&i;d}
|
i"d|i<|i8i9|
|i8i=t&i>d}|i?ddt.ddd|i@fdt&iAddd|iBfdt&iCddd|iDfdt&iEt.ddd|iFfdt&iGddd|iHfdt&iIt.ddd|iJfdt&iKt.ddd|iLfddt.ddddfddt.ddd|iMfddt.ddd|iNfg
|iOddt.ddd|iPfddt.ddd|iQfg|iRddt.dfddt.dfddt.dfddt.dfgd|iSx!|iTD]}|iUtq	W|iVdiUt+|iVdiUt+|iVdiUt+|iVdiUt+|iVdiUt+t&iW|_X|iXiY|d|iXiZd|iXi[|ii\|iXi]t&i,|_^x~ddddddddddddgD]R}|pt&i_}n|iV|}|i`}|i5|i^ia|q W|ibic|i^g|_dx_|ie|if|ig|ihgD]?}t&ii}|ij|ik|t+|il|ddqW|im}|i"d|int&iot.d}t&ip}|ik|tt&ii}|ik|t|iq||ir|iq||is|itt+|iuiv||iuiw}|ixt&iyt&izt{t|}|iui}|t~||_}|ii|i|iit|iiti|iiddt&ifdY}|dt.d}|ii|ttd|i"d|i|i5d|_ti|iyti|i|_Wntj
od|_nX|iid|_|i|id|_d|_t|_|ii|_|ii"d|i|ii"d|i|ii\|iiXi]t&i|_|ii|it|_|iidjo|iit+n|iic|iit&i,|_|i|iVd}x2|iD]$}t|t&io|}Pq0q0W|ic|it&i,}xbdddddddgD]E}|pt&i_}n|iV|}|i`}|ia|qW|i=|ii|t&iztit&iititi|_|ii}|i|iid|iid|iid|iid|iid|iit+|ii"d|i|ii"d|i|ii"d|i|ii"d|i|ii"d|i|i|i|iit&iid"gt&ii|ii"d|it&i}t&i} x^t.d|i|ft.d|i|ft.d|i|ft.d|i|ft.d|i| ft.d|i| ft.d|i| ft.d|i| ft.d|i| ft.d|i| ft.d|i|ffD]o\}!}"}#t&izt|}$t&ii}t&io|!|dd}|"i}|$|"iv||"iwix|#qIW|i!i"d|i|i i"d|it&iodt&iidd}%|iiv|%|iiw}&|&i"d|i|&ixt&itidt{d|i|itidt{d|i|idddddgdt.dtidtt|i|itidt{d|i|idddddddgtidt|d|i|idddddddddgtidt{d|i|itidt{d|i|idddddddddddddddddddddddddddddgdt+tidt{d|i|itidt|d|i|idt+tidt|d	|i|idd	d
dgtidt|d
|i|idt+tidtt|i|itidt{d|i|itidt{d|i|itidt{d|i|itidt{d|i|itidtd|i|itidtd|i|itidt{d|i|itidt{d|i|itidt{d|i|itidt{d|i|itidtt|i|i	tidtt|i
|itidt{d|i|i
g}'h|_h|_x.|'D]&}(|(|i|(i<|(|i|(i<q$Wti|dt|_y|iWnHtij
o9\} d|_|i|it| |inXt|idjo|iid d!n|ii5|oF||_||_d|_y|idWqFtj
oqFXn|o[yA|i||o|iin|o|i inWqtj
oqXndS(#NRRRtPrintersWindowtview_area_vboxtview_area_scrolledwindowtdests_iconviewt
statusbarMainttoolbartserver_settings_menu_entrytnew_printert	new_classtgroup_menubar_itemtprinter_menubar_itemtview_discovered_printerstview_groupstAboutDialogt
ConnectDialogtchkEncryptedt
cmbServernamet
btnConnecttConnectingDialogt
lblConnectingtpbarConnectingtNewPrinterNametentCopyNamet	btnCopyOktServerSettingsDialogtchkServerBrowsetchkServerSharetchkServerShareAnytchkServerRemoteAdmintchkServerAllowCancelAlltchkServerLogDebugthboxServerBrowsetPrinterPropertiesDialogttvPrinterPropertiestbtnPrinterPropertiesCanceltbtnPrinterPropertiesOKtbtnPrinterPropertiesApplytbtnPrinterPropertiesClosetntbkPrintertentPDescriptiontentPLocationt
lblPMakeModeltlblPMakeModel2t	lblPStatet
entPDevicetlblPDevice2tbtnSelectDevicetbtnChangePPDtchkPEnabledt
chkPAcceptingt
chkPSharedtlblNotPublishedtbtnPrintTestPagetbtnSelfTestt
btnCleanHeadstbtnConflicttcmbPStartBannert
cmbPEndBannertcmbPErrorPolicytcmbPOperationPolicyt
rbtnPAllowt	rbtnPDenyttvPUserstentPUsertbtnPAddUsertbtnPDelUsertlblPInstallOptionstswPInstallOptionstvbPInstallOptionst
swPOptionstlblPOptionst
vbPOptionstalgnClassMemberstvbClassMemberstlblClassMembersttvClassMembersttvClassNotMemberstbtnClassAddMembertbtnClassDelMembertbtnRefreshMarkerLevelsttvPrinterStateReasonstntbkPrinterStateReasonst
sbJOCopiestbtnJOResetCopiestcmbJOOrientationRequestedtbtnJOResetOrientationRequestedtcbJOFitplottbtnJOResetFitplott
cmbJONumberUptbtnJOResetNumberUptcmbJONumberUpLayouttbtnJOResetNumberUpLayouttsbJOBrightnesstbtnJOResetBrightnesstcmbJOFinishingstbtnJOResetFinishingstsbJOJobPrioritytbtnJOResetJobPriorityt
cmbJOMediatbtnJOResetMediat
cmbJOSidestbtnJOResetSidestcmbJOHoldUntiltbtnJOResetHoldUntilt
cbJOMirrortbtnJOResetMirrortsbJOScalingtbtnJOResetScalingtsbJOSaturationtbtnJOResetSaturationtsbJOHuet
btnJOResetHuet	sbJOGammatbtnJOResetGammatsbJOCpit
btnJOResetCpitsbJOLpit
btnJOResetLpitsbJOPageLefttbtnJOResetPageLeftt
sbJOPageRighttbtnJOResetPageRighttsbJOPageToptbtnJOResetPageToptsbJOPageBottomtbtnJOResetPageBottomtcbJOPrettyPrinttbtnJOResetPrettyPrinttcbJOWraptbtnJOResetWraptsbJOColumnstbtnJOResetColumnst
tblJOOthertentNewJobOptiontbtnNewJobOptiontvboxMarkerLevelssdelete-eventtprintersgtk-newtPrintertactivatetclickedtClasssgtk-dnd-multipleiiisgtk-refreshtPrinterManagerActionGroupsrename-printert_Renamescopy-printers<Ctrl>csdelete-printersset-default-printersSet As De_faultsedit-printerscreate-classs
_Create classsview-print-queuesView Print _Queuesadd-to-groups
_Add to Groups
save-as-groupsSave Results as _Groupssave-as-search-groupsSave Filter as _Search Groupsenable-printertE_nableds
share-printert_Sharedsfilter-nametNamesfilter-descriptiontDescriptionsfilter-locationtLocationsfilter-manufacturersManufacturer / Modelis
<ui>
 <accelerator action="rename-printer"/>
 <accelerator action="copy-printer"/>
 <accelerator action="delete-printer"/>
 <accelerator action="set-default-printer"/>
 <accelerator action="edit-printer"/>
 <accelerator action="create-class"/>
 <accelerator action="view-print-queue"/>
 <accelerator action="add-to-group"/>
 <accelerator action="save-as-group"/>
 <accelerator action="save-as-search-group"/>
 <accelerator action="enable-printer"/>
 <accelerator action="share-printer"/>
 <accelerator action="filter-name"/>
 <accelerator action="filter-description"/>
 <accelerator action="filter-location"/>
 <accelerator action="filter-manufacturer"/>
</ui>
ttexttMessagetUnobtrusiveButtoncBseZdZRS(c[setii|||iti|i}|i}|it|i	ddd|dS(Ns<span size="small" sunderline="single" scolor="#0000ee">%s</span>(
RtButtont__init__t
set_relieftRELIEF_NONEt	get_childtget_texttset_use_markupRt
set_markup(tselftargstlabelR((s9/usr/share/system-config-printer/system-config-printer.pyRs
(t__name__t
__module__R(((s9/usr/share/system-config-printer/system-config-printer.pyRsRs	Problems?it
Connectionsitem-activateds
items-changediiskey-press-eventsselection-changedsbutton-press-events
popup-menutqueues
drag-data-getsMembers of this classtOtherstDevicestConnectionstMakestModelstDriverssDownloadable DriverstUserstresponsetmarkuptchangedtcopiessorientation-requestedtcombobox_mapiiitspecial_choicesAutomatic rotationtfitplots	number-upi	isnumber-up-layouttlrtbtlrbttrltbtrlbtttblrttbrltbtlrtbtrlt
brightnessidt
finishingsiii
iii
iiiiiiiiiiii2i3i4i5t
use_supportedsjob-prioritytmediatA4tsidess	one-sidedstwo-sided-long-edgestwo-sided-short-edgesjob-hold-untilsno-holdtmirrortscalingt
saturationthuetgammaitcpig$@tlpig@s	page-lefts
page-rightspage-topspage-bottomtprettyprinttwraptcolumnstmonitor_jobsi&i(squeueii(!tlocalet	getlocaletLC_MESSAGEStlanguagetLC_CTYPEtencodingtnonfatalExceptiontostenviront	setlocaleRRRtsett	conflictsR Rtconnect_servert
getEncryptiontconnect_encrypttgetUsertconnect_userRtserverstserver_is_publishingtdevidtfocus_on_mapRtupdating_widgetst
getWidgetsRHtset_focus_on_mapRhR`tconnectRBRZton_connectingdialog_deleteRtwindow_set_default_icon_nametMenuToolButtontbtnNewtset_is_importantRtMenut
ImageMenuItemt_tImagetset_from_icon_nametICON_SIZE_MENUt	set_imageton_new_printer_activateton_new_class_activatetshowtattachtset_menuRMtaddtSeparatorToolItemt
ToolButtonton_btnRefresh_clickedtshow_alltActionGrouptadd_actionston_rename_activatet
STOCK_COPYton_copy_activatetSTOCK_DELETEton_delete_activatet
STOCK_HOMEton_set_as_default_activatetSTOCK_PROPERTIESton_edit_activatetSTOCK_DND_MULTIPLEton_create_class_activatet
STOCK_FINDton_view_print_queue_activateton_save_as_group_activatet on_save_as_search_group_activatetadd_toggle_actionston_enabled_activateton_shared_activatetadd_radio_actionston_filter_criterion_changedtlist_actionst
set_sensitivet
get_actiont	UIManagert
ui_managertinsert_action_grouptadd_ui_from_stringt
ensure_updatetadd_accel_grouptget_accel_grouptprinter_context_menutSeparatorMenuItemtcreate_menu_itemR*RRtset_submenut
jobviewersRRRRtCellRendererTexttcleart
pack_startt
add_attributeRt!on_btnRefreshMarkerLevels_clickedtTreeViewColumntCellRendererPixbuftset_cell_data_functset_printer_state_reason_icontset_printer_state_reason_textt
set_resizableRt
append_columnR#tset_modetSELECTION_NONEt	ListStoretinttstrt	set_modelt
NewPrinterGUIt
newPrinterGUItNewPrinterWindowtset_transient_forRUtset_program_nametdomaintset_versiontconfigtVERSIONt
set_icon_nameRRgtpack_endton_problems_button_clickedtstatic_tabstgtk_label_autowraptset_autowraptauthconnRtRuntimeErrorRLtget_context_idtstatus_context_idtsetConnectedtsetup_toolbar_for_search_entrytcurrent_filter_texttcurrent_filter_modet
GroupsPanetgroups_panetget_selected_itemtcurrent_groups_pane_itemton_groups_pane_item_activatedton_groups_pane_items_changedtHPanedtview_area_hpanedtadd1tgroups_pane_visibletn_groupsRTt
set_activeRQtgroups_menutadd_to_group_menutupdate_add_to_group_menutget_proxiest
isinstancetMenuItemtsearch_entrytset_drop_down_menutgobjectt
TYPE_PYOBJECTRtPixbuftTYPE_STRINGtmainlistRKtset_column_spacingtset_row_spacingtset_pixbuf_columntset_text_columntset_tooltip_columntset_has_tooltiptdests_iconview_key_press_eventtdests_iconview_item_activatedt dests_iconview_selection_changedt!dests_iconview_button_press_eventtdests_iconview_popup_menutenable_model_drag_sourcetBUTTON1_MASKtACTION_COPYtdests_iconview_drag_data_gettSELECTION_MULTIPLEtSELECTION_SINGLERRttvNCMembersttvNCNotMembersttvNPDevicesttvNPDeviceURIst	tvNPMakest
tvNPModelsttvNPDriversttvNPDownloadableDriversRtserver_settings_responsetprinter_properties_responseRit(on_tvPrinterProperties_selection_changedtoptionstOptionAlwaysShownRRtOptionAlwaysShownSpecialRRtboolRRRRRRRRRRRRRRRRRRRRRRRRRRRRtfloatRRRRRRRRRRRRRRRRRRtjob_options_widgetstjob_options_buttonsR@tbuttontmonitortMonitortpopulateListt	HTTPErrortshow_HTTP_Errortlentprinterstset_default_sizet
device_uritppdt&on_autodetected_printer_without_drivertdisplay_properties_dialog_forR|RRw()Rt
setup_printertconfigure_printert
change_ppdR(tprint_test_pageR)tdialogtnewmenut
newprintertprintericontnewclasst	classicont
refreshbuttontprinter_manager_action_grouptactiontaction_nametitemtcomboboxtcelltbtntcolumnticonRR.tstoretnpRtproblemstproxytmenutmtstnameR;tselection_modeR<tcoltseltoptstoption((s9/usr/share/system-config-printer/system-config-printer.pyRs
						





	









	

		

	

		

		

		

	
	






		



																												


				
cCs|ii}|i}x|djot|i|d}||joM|i|}|ii|tdd|ii	||ii
|Pn|i|}qW|djo
tndS(Nig?(
RKR&tget_iter_firstRtunicodet	get_valueR'tscroll_to_pathRt
set_cursortitem_activatedR9R(RRR<R5RR4((s9/usr/share/system-config-printer/system-config-printer.pyRWs


cCsti}|it|ii|d|ii|dtt|_	|i	i
d|iti}|i
|i	|ii|d|iidS(Nitexpandtsearch(RR@tset_drawRRMtinserttchild_set_propertyRtToolbarSearchEntryRR-ton_search_entry_searchtToolItemR?RC(Rt	separatort	tool_item((s9/usr/share/system-config-printer/system-config-printer.pyRgs
cCse|iidi|otpt|iidi|otpt||_|idS(Ns/save-as-groups/save-as-search-group(R^R\R[RRRR(RtUNUSEDR((s9/usr/share/system-config-printer/system-config-printer.pyRvs	cCs|iit|to|id}|itijo|ii	di
n|itijo|ii	di
nb|itijo|ii	di
n5|iti
jo|ii	di
nt|ii|in||_|idS(Nis/filter-names/filter-descriptions/filter-locations/filter-manufacturer(RRjRtSavedSearchGroupItemtcriteriatsubjecttSearchCriteriontSUBJECT_NAMER^R\RtSUBJECT_DESCtSUBJECT_LOCATIONt
SUBJECT_MANUFRtset_texttvalueRR(RRRtcrit((s9/usr/share/system-config-printer/system-config-printer.pyR~s

	cCs|i|iidS(N(t
add_queuesRtcurrently_selected_queues(Rtmenuitemtgroup((s9/usr/share/system-config-printer/system-config-printer.pyt"on_add_to_group_menu_item_activatescCsx'|iiD]}|ii|qW|ii}xI|D]A}ti|it}|i	d|i
||ii|q@Wt|djo ti
}|ii|n|iiid}|i}|ii||iidS(NRis/new-group-from-selection(Rtget_childrenR+Rtget_static_groupsRRRRR-RR*RReR^R\RfRC(Rtchildt
static_groupsRRR((s9/usr/share/system-config-printer/system-config-printer.pyRs"	
cCs,|ip|iitn|idS(N(RRTRRR(RR((s9/usr/share/system-config-printer/system-config-printer.pyRs
cCs|i|_|idS(N(tget_nameRR(RRtselected_action((s9/usr/share/system-config-printer/system-config-printer.pyRYsc	Cs|i}|i|}t|i|d}|i|d}y|i|Wnvtij
oT\}}t|||i|ti	jo!d|_|i|indSt
j
odSX|ii|ixB|i|i|igD](}	|io|	iq|	iqW|io|iin|ii|i|i}
|
idt}|iitd||f|ii|i|iidS(NiisPrinter Properties - '%s' on %s(i(R&R(RRtfillPrinterTabRtIPPErrortshow_IPP_ErrorRHtIPP_SERVICE_UNAVAILABLERRRRRhR~RjRkRlt
discoveredR?R<RmtsetDataButtonStateRiRR"t	set_titleR5R,R)(RticonviewR4R<R5RtobjectteRRR;R!((s9/usr/share/system-config-printer/system-config-printer.pyRsD	
	




	
	cCsM|tijotd}|d7}x%|iD]}||iid7}q0Wti|ititi	Bti
ti|}|i|i
dS|tijp|tijo|i|i}n|tijo/y|i|iiWnnX|in|tijo|p|tijod|_|indS(Ns^There are conflicting options.
Changes can only be applied after
these conflicts are resolved.s

s
(RtRESPONSE_REJECTR5R RRt
MessageDialogRhtDIALOG_DESTROY_WITH_PARENTtDIALOG_MODALtMESSAGE_WARNINGt
BUTTONS_CLOSEtruntdestroytRESPONSE_OKtRESPONSE_APPLYtsave_printerRR#RR(tRESPONSE_CANCELRR?(RRRtmessageRtsuccess((s9/usr/share/system-config-printer/system-config-printer.pyRs8

	

	c	Cs|t|_|i}t}t}t}t}t}g|i_|i}x|D]}	|i|	}
|i|
d}t	|i|
d}|iii
||io
t}n|io
t}nt}|i
o
t}qRt}qRWt|}
|iiidi|
dj|iidi|
dj|iidi|
dj|iidi|
djo|tii}|
djp|djo|i|jo
t}nt}|iidi||iid	}|i|
djo|xL|iD]>}t|tio%|i|
djo|o|q"q"W|i|p||iid
}|i|
djo|xL|iD]>}t|tio%|i|
djo|o|qqW|i|p||iidi|
djo||iidi|
dj|iid
i|
djt|_dS(Niis/new-group-from-selections
/edit-printeris
/copy-printers/rename-printers/set-default-printers/enable-printers/share-printers/delete-printers
/create-classs
/add-to-group(RR*tget_selected_itemsRRRR&R(RRR*R'tenabledt	is_sharedRR^R\R[tuserdefaulttUserDefaultPrinterR)Rtdefault_printerRRRt
CheckMenuItemtset_inconsistentR(RR*tpathstany_disabledtany_enabledtany_discoveredt
any_sharedtany_unsharedR<R4R5R+Rtntuserdeftset_default_sensitivityRR@((s9/usr/share/system-config-printer/system-config-printer.pyRsp	









)
)cCs |iiddddddS(Nil(RdtpopupR(RR*((s9/usr/share/system-config-printer/system-config-printer.pyRCscCs|idjo|it|it|i}|i}|djo|inq||joc|i|i||i	}x)|D]!}t
|tijoPqqW|i
||n|iiddd|i|intS(Ni(Rtget_path_at_posRxRRR;Rtunselect_alltselect_patht	get_cellsttypeRRiRRdRLttimeR(RR*RAt
click_pathRCtcellsR((s9/usr/share/system-config-printer/system-config-printer.pyRFs$



	cCsti}|itiijp,|itiijp|itiijo/|i|@djo|ii	di
tS|itiijo/|i|@djo|ii	di
tSt
S(Nis/delete-printers/rename-printer(Rt accelerator_get_default_mod_masktkeyvaltkeysymst	BackSpacetDeletet	KP_DeletetstateR^R\RRtF2R(RR*RAt	modifiers((s9/usr/share/system-config-printer/system-config-printer.pyRYsc
Cs|djo|i}|i}d}x1|D])}	||i|i|	dd7}q2Wt|djo|idd|qntdS(NiRis
Ri(R&R;RR(RRR(
RR*tcontexttselection_datatinfot	timestampR<RCtselected_printer_namesR4((s9/usr/share/system-config-printer/system-config-printer.pyRls
$cCsLy|iWntij
odSX|ii|i|iidS(N(t
fillServerTabRR$R`R~RHR<(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_server_settings_activate{scCsv|tijo|ip|iqrnD|tijo)yt|i||iWqrdSXn|idS(N(RR5tsave_serversettingsR?tRESPONSE_YESRRton_adv_server_settings_apply(RRR((s9/usr/share/system-config-printer/system-config-printer.pyRs
	cCs8y|iWn#tij
o|iinXdS(N(RcRR$R`R?(R((s9/usr/share/system-config-printer/system-config-printer.pyRgscCsmyX|p
|i}n|i}|o0|itx tiotiq7WnWntnXdS(N(RHtwindowRtbusy_cursorRtevents_pendingtmain_iterationR(Rtwintgdkwin((s9/usr/share/system-config-printer/system-config-printer.pytbusys
	

cCsmyX|p
|i}n|i}|o0|idx tiotiq7WnWntnXdS(N(RHRhRRRRjRkR(RRlRm((s9/usr/share/system-config-printer/system-config-printer.pytreadys
	

c	Cs
t|i}t}|iitd||ii|i|otd|}n
td}|ii	|i
|xQ|i|i|i
|i|i|i|i|i|if	D]}|i|qW|ii}|ii|y
|`WnnXdS(NsPrinter configuration - %ssConnected to %ss
Not connected(RRR"RHR)R5R,R)RLtpushRR1RORPRaRbRdReRfRNR[t
get_activeRctserver_settings(Rt	connectedR!t
status_msgR@tsharing((s9/usr/share/system-config-printer/system-config-printer.pyRs.		

cCs-|iidt|i}|i|S(N(R&tdiscardRtlistR:(Rt
known_servers((s9/usr/share/system-config-printer/system-config-printer.pyt
getServerss
c.*stii}ii}xB|D]:}|i|}t|i|d}i|q.Wioii	|ii
tdy+ti
i_ii_WnCtij
o4\}}t||ih_d_nXiiii	tnh_d_x3iiD]"\}}	ii|	iqPWtii}
g}g}g}
g}titptit o/i!i"d}|i#ddi}ntit$o
h}ntit%oi!i"d}|i#dtdh}g}xRii&D]D}yi|}	|	||<Wqft'j
o|i(|qfXqfWii)|ni}t*t+i,djoh}t-i.i,t-i/}i0djoCx[|i1D].}|i2|djo||||<q#q#Wni0djoLx|iD]7\}}	|i2|	i3djo||||<qvqvWni0d	joLx|iD]7\}}	|i2|	i4djo||||<qqWndi0d
joLxP|iD]7\}}	|i2|	i5djo||||<q.q.Wnt*|}ni6i7pEh}x2|iD]$\}}	|	i8p|	||<qqW|}nxx|iD]j\}}	|	i9o,|	i:o|i(|qJ|
i(|q|	i:o|i(|q|i(|qW|i;|i;|
i;|i;i<i=htddfd
6tddfd6tddfd6tddfd6tddfd6tddfd6tddfd6tddfd6}t>i?}xN|||
|fD]:}|pq@nx#|D]}d}||}|i8o|i:o
d}q!d
}n|i:o
d}nut@iA|iB\}}|djo
d}nF|djo
d}n/|djo
d}n|d0jo
d}n||\}}t>iCt>iD\}}y|iE||d} WntFiGj
od} xNtHd!gD]@}!y!t>iIiJd"|!|f} PWqtFiGj
oqXqW| djoXy|iEd#|d} Wq2t>iIiKt>iIiLtd$||} | iMdq2Xq7nXd}"d}#|ijo
d%}"n||
jo
d&}"n|#p|iN}$|$id'g}%d}&x|%D]~}'|'d(joPn|'d)jot>iO}#qntPiQ|iR|iS|'}(|&djo
|(}&q|(|&jo
|(}&qqW|&o|&iT})|&iU|)}#qM	n|#o|iVo
t>iO}#n|iWo`| iX}*|*iMd| iY|*dd|*iZ|*i[ddd*d*t>iIi\d+|*} n|"ot>iCt>iD\}}yl|iE|"|dd}+| iX}*|+iY|*dd|*iZ|*i[ddd*d*t>iIi]d,|*} Wq
tFiGj
ot^d-|"q
Xn|#ot>iCt>iD\}}y|iE|#|dd},| iX}*|,iY|*dd|*iZ|*i[|*iZd|*i[dd*d*t>iIi]d,|*} WqWtFiGj
ot^d-|#qWXni<i(d.|| ||gq[Wq@Wii}fd/}-|i_|-i`djo3i`iSii1joiaibt>icndS(1Nisobtaining queue detailss/delete-printerRsRemove from Groupisfilter-namesfilter-descriptionsfilter-locationsfilter-manufacturersNetwork printer (discovered)si-network-printersdiscovered-printersNetwork class (discovered)sdiscovered-classRsgnome-dev-printers
local-printertFaxs	local-faxRslocal-classsNetwork printersipp-printersNetwork print sharessmb-printersnetwork-printertipptsmbthpfaxtsockettlpdsicons/s%s%s.pngRisemblem-defaultsemblem-favoritesprinter-state-reasonstnonetpausedg?iisNo %s icon availableR2cs=t|i|d}|joii|ndS(Ni(RRRKRO(R<R4R5R(Rtselected_printers(s9/usr/share/system-config-printer/system-config-printer.pytmaybe_selects
(R~R(dRRKR;R&R(RRR?Rt_set_prompt_allowedt_begin_operationR5tcupshelperstgetPrintersRt
getDefaultR@R$R%RHRt_end_operationRt	iteritemsR&R R>R?R)RRtAllPrintersItemR
R^R\tset_propertiestFavouritesItemtStaticGroupItemtprinter_queuestKeyErrorR*t
remove_queuesRRRtretcompiletIRtkeysRR`tlocationtmake_and_modelRSRqR'tremotetis_classR:RRjRticon_theme_get_defaultRRRticon_size_lookuptICON_SIZE_DIALOGt	load_iconRtGErrorticonpathRtpixbuf_new_from_fileRtCOLORSPACE_RGBtfilltother_attributestSTOCK_MEDIA_PAUSEtstatereasontStateReasont
connectionRt	get_levelt
LEVEL_ICONR<t	rejectingtcopyt	compositet	get_widtht
get_heighttINTERP_BILINEARtINTERP_NEARESTt
debugprinttforeachRRhRR8(.Rtprompt_allowedRCR<R4R5RR,RRRJtlocal_printerst
local_classestremote_printerstremote_classest
delete_actiontprinters_settdeleted_printerstprinter_nametprinters_subsettpatterntPRINTER_TYPEtthemeRRQR+RRttipRtwthtpixbuftpt
def_emblemtemblemtattrstreasonstworst_reasontreasontrtlevelRtdefault_emblemtother_emblemR((RRs9/usr/share/system-config-printer/system-config-printer.pyRs	
	
		



	
















	
	
	
	
	
	
	
	
















	



	

	






		
		


'
cCs&|iit|idjdS(Ni(RYR[Rtget_active_text(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_connect_servername_changedscCs|i}|io|iip
ti}titi}|ii	|x|D]}|ii
|q[W|ii|iii
||iititij|iiit|ii|ii|i|ii}|ii|tijodS|iiotitintititi|_|iii}|i i!t"d||i#i$|i%i|i|i%iti&d|i'||_(ti)|i(ti*dti+|_,t-i.|i/|if|_0dS(Ns<i>Opening connection to %s</i>i(R(1RyRR RRRwRRRXRztappend_textR<RRRWRR"tHTTP_ENCRYPT_ALWAYStset_activates_defaultRt
grab_focusRVR~RHR3R?R5Rqt
setEncryptiontHTTP_ENCRYPT_IF_REQUESTEDR#RR[RR5R|tdropPPDsRZttimeout_addtupdate_connecting_pbarR!t	setServertsetUserR$R%tthreadtstart_new_threadR-tconnect_thread(RR@R&tcurrent_serverRtserverRt
servername((s9/usr/share/system-config-printer/system-config-printer.pyton_connect_activatesH





	
cCs)|iidptS|iitS(Ntvisible(RZtget_propertyRR\tpulseR(R((s9/usr/share/system-config-printer/system-config-printer.pyR$s
cCs|i|tS(N(ton_cancel_connect_clickedR(RR@RA((s9/usr/share/system-config-printer/system-config-printer.pyR.+s
cCsd|_|iidS(s
        Stop connection to new server
        (Doesn't really stop but sets flag for the connecting thread to
        ignore the connection)
        N(RRRZR?(RR@((s9/usr/share/system-config-printer/system-config-printer.pyR/s	cCsSti|i|iddjoYy%tid|id|i}~Wq}tj
otidq}tq}Xny2t	i|d|id|i}|i
iWntj
o\}|it
ijodStii|iitd||tiidStij
ob\}}|it
ijodStii|iit|||tiidStnX|it
ijodStiiy.|ii||_|i|iWnRtij
o6\}d|_|i|it||ntnXtiidS(sV
        Open a connection to a new server. Is executed in a separate thread!
        iRR!t
encryptionRN(RRR%R!RR#RRRRR|RRRt	get_identRRt
threads_enterRZR?R%Rt
threads_leaveR$RRRR(RtparentRRR,((s9/usr/share/system-config-printer/system-config-printer.pyR-8sb	







	
	

cCs^d}xQ|djoCytid|iiPWq	tj
o|d7}q	Xq	WdS(s0Reconnect to CUPS after the server has reloaded.iiN(RRtsleepRt_connectR(Rtattempt((s9/usr/share/system-config-printer/system-config-printer.pyt	reconnectxs


cCs|iidS(sClose Connect dialogN(t
ConnectWindowR?(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_btnCancelConnect_clickedscCs[|idjo=yti|i|_Wntj
onX|in|idS(N(RRRRRHRRR(RR((s9/usr/share/system-config-printer/system-config-printer.pyRBscCst|tio|i}nt|tio|i}nnt|tio|i}nKt|tio.|i}|i	}|i
|d}n
td|i}h|i
|i6|i|i6|i|i6|i|i6|i|i6|i|i6|i|i6|i|i6|i|i6|i|i 6|i!|i"6}||}||jo|i#i$|n|i#i%||i&dS(NisWidget type not supported (yet)('RRtCheckButtonRqtEntryRtRadioButtontComboBoxR&tget_active_iterRt
ValueErrorRR`RoRRpRRtR<RxRRyR=Rztjob_sheet_startRt
job_sheet_endRterror_policyRt	op_policyRt
default_allowRRRvR?R((RR@RR<R5Rt
old_valuest	old_value((s9/usr/share/system-config-printer/system-config-printer.pyton_printer_changeds:		










cCs|io|ii|n|ii||io|ii|n|ii||i|ioO|ioE||ijo5|idjo|ii	q|ii
ndS(NR(t
is_changedRR?RvR R(toption_manualfeedtoption_inputslottget_current_valuetdisabletenable(RR((s9/usr/share/system-config-printer/system-config-printer.pytoption_changeds


cs9|ii}g|ifdiS(s%return list of usernames from the GUIcsi|i|ddS(i(R*R)(R<R4R5(R=(s9/usr/share/system-config-printer/system-config-printer.pyR	s(RR&RR:(RR<((R=s9/usr/share/system-config-printer/system-config-printer.pyt	getPUserss

cCs^|ii}|ix|D]}|i|fq W|i|i|i|idS(s$write list of usernames inot the GUIN(RR&RjR*ton_entPUser_changedRton_tvPUsers_cursor_changed(RtusersR<tuser((s9/usr/share/system-config-printer/system-config-printer.pyt	setPUserss
cCsa|i|iijo|ii|in|ii|i|i|i|idS(sLcheck if users in GUI and printer are different
        and set self.changedN(	RRtexcept_usersRR?RRvR	R((R((s9/usr/share/system-config-printer/system-config-printer.pytcheckPUsersChangeds
cCsT|ii}|o0|iiid|f|iidn|idS(NiR(RRRR&RRR(RRR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnPAddUser_clickeds
cCs|iii\}}g}|D]}|ti||q&~}x6|D].}|i}|i|}|i|qOW|idS(N(	RR#R$RR%R'R(R+R(RRR<R0R1R2R4R5((s9/usr/share/system-config-printer/system-config-printer.pyton_btnPDelUser_clickeds-cCs |iit|idS(N(RR[RR(RR@((s9/usr/share/system-config-printer/system-config-printer.pyRscCs2|ii\}}|iit|dS(N(R#R$RR[R(RR@R<R0((s9/usr/share/system-config-printer/system-config-printer.pyR	scCs}|i|}|i|ii|io|i|i=n|io|ii|n|ii||i	dS(N(
Rtresettserver_side_optionsthas_keyRRRR?RvR((RRR((s9/usr/share/system-config-printer/system-config-printer.pyton_job_option_resets


cCs|ipdS|i|}|i|io$||i|i<|ii|n8|ii|io|i|i=n|ii||i	dS(N(
RRRRRRR?RRvR((RR@R((s9/usr/share/system-config-printer/system-config-printer.pyton_job_option_changeds



c
Cst|i}|djo|iidS|ii|d|ii}x|D]}|ii|qWWd}x|iD]}|ii|idd||ddt	i
dt	i
|iidd|ii|idd||ddt	i
dd|ii
|t	id	d
}|id|i|id||i
||ii|dd||ddddd|d7}qW|iidS(
Niiitxoptionstyoptionsgg?itstocks
gtk-removeRtpyobject(Rtother_job_optionsRthide_alltresizeRR+R=RRtFILLt
set_alignmenttselectorR[RR-ton_btnJOOtherRemove_clickedtset_dataRC(RteditableRItchildrenRtitoptR((s9/usr/share/system-config-printer/system-config-printer.pytdraw_other_job_options)s:


"	
"	
cCsti||||i}||_|ii||id|||i|<||ijo
t	|_n|ii
||i|o|ii
ndS(NR"(RRRtis_newRR*R&RRRR?R(RR(RRRt	supportedR'R"R((s9/usr/share/system-config-printer/system-config-printer.pytadd_job_optionIs	


cCsu|id}|ii||i|io|ii|n|ii|i|i	|i=|i
dS(NR(tget_dataRR+R&R'RRvR?RRR((RRR((s9/usr/share/system-config-printer/system-config-printer.pyR Xs


cCsW|ii}|i||ii|iid|iit|i	dS(NR(
RRR)RRCRRR[RR((RRR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNewJobOption_clickedds

cCsE|ii}t|djo
||ij}|ii|dS(Ni(RRRRRR[(RR@Rtactive((s9/usr/share/system-config-printer/system-config-printer.pyton_entNewJobOption_changedls"cCs|i|dS(N(R+(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_entNewJobOption_activateqscCsy|io)t|io|iio|ii}|ii||ip
t|i}x'|i	|i
gD]}|i|quW|iiti
@dj}|ii|o||ii|o|WnnXt}t}|ioRtd|iixE|iD])}|i|ijo
t}qt}qWn|iitd}td}	|od|}n|od|	}	n|ii||ii|	|ii}
|
oxt|ii D]}|ii!|}|ii"|}
yv|
|ijo)|
i#|f}|
i$|d|n:|
|ijo)|
i#|f}|
i$|d|	nWqt%j
oqXqWn|i&it'|idjo|i|i(it'|idjo|idS(NisConflicts detectedsInstallable OptionssPrinter Optionss	<b>%s</b>()RRRRR<RR|R[R'RwRvRQRtCUPS_PRINTER_COMMANDSR}R~RR RRR<t	tab_labelRRR?R5RRRiR&trangeRntget_n_pagestget_nth_paget
get_tab_labelR(t	set_valueRRlRRk(Rt	printablet
adjustableRtcommandstinstallableboldtoptionsboldRtinstallabletexttoptionstextRRItpageRR5((s9/usr/share/system-config-printer/system-config-printer.pyR(usl


	







cCs|djo
|i}nt}|i}|io|iitd|n|iitd|y|ioL|ioB|i	|ii
p|o|ii|d|iqn|iot|i
}|ptidddtidtidtd	}|itd
|i}|i|tijo|iitSt}n|i}	x?|D]7}
|
|	jo|	i|
q{|ii|
|q{Wx%|	D]}
|ii|
|qWn|ii}|ii}|ii}
|i i!}|i"i!}|i#i!}||i$jp|o|ii%||n||i&jp|o|ii'||n|io.|
|i(jp|o|ii)||
n||i*jp|o|i+i,|n||i-jp|o|i+i.|n||i/jp|o|i+i0|nd}||i1}||i2}||i3}||i4}||i5jp||i6jp|o|i7||n||i8jp|o|i9|n||i:jp|o|i;|n|i<i!}|i=}||i>jp||i?jp|o|i@||nx2|iAD]'}||iBjo|iC|q~q~Wx^|iBiDD]M}|iEp|o3|iF|iGjo|iH|i|iFqqWWn<tiIj
o-\}}tJ||||iitSX|iitK|_L|iiMob|iNiOdoN|iitd
y|iiP|_QWntRnX|iin|o|iSiTn|iitdy7tUiV|i}h|||6}|iWiT|WnMtiIj
o"\}}tJ|||intXj
o|iYnX|iitS(Nsmodifying class %ssmodifying printer %sRtflagsiRQtbuttonstmessage_formatsThis will delete this class!sProceed anyway?cSs(|i}|i}|i|dS(Ni(R&RR(tcmbR<R5((s9/usr/share/system-config-printer/system-config-printer.pytget_combo_valuesRrsfetching server settingssobtaining queue details(ZRRhRRRRRR5RtgetPrinterSettingstnondefaultsMarkedt
addPrinterR>RRR.R1tBUTTONS_YES_NOtformat_secondary_textR3R4tRESPONSE_NORRt
class_membersR+taddPrinterToClasstdeletePrinterFromClassRpRRoRtRxRqRyRzR`tsetPrinterInfoRtsetPrinterLocationRtsetPrinterDeviceR<Rt
setEnabledRtsetAcceptingR=t	setSharedRRRRRRtsetJobSheetsRtsetErrorPolicyRtsetOperationPolicyRRRR
t	setAccesst
attributesRtunsetOptiont
itervaluesRRtsystem_defaultt	setOptionR$R%RRt_use_pkt__dict__RtadminGetServerSettingsRrRRtupdateRRRRR(RRtsaveallRt
class_deletedRtnew_membersRR=told_memberstmemberRR`RR<t	acceptingtsharedRBRRRRRR
RR,RRtthis_printer((s9/usr/share/system-config-printer/system-config-printer.pyR7s

	

!
		




	

%

"
cCs(x!|iiD]}|iqWdS(N(RRXt	writeback(RR((s9/usr/share/system-config-printer/system-config-printer.pyRC?scCso|i\}}|o
||_nFy
|i}Wntj
odSX|i|o|i|ndS(N(tget_selectedt%printer_properties_last_iter_selectedtAttributeErrort
iter_is_validtselect_iter(RR.R<R5((s9/usr/share/system-config-printer/system-config-printer.pyREs

cCsd|i\}}|djoA|i}|i|}|i|d}|ii|ndS(Ni(t
get_cursorRR&R(RRntset_current_page(RR;R4RR<R5RI((s9/usr/share/system-config-printer/system-config-printer.pyt%on_tvPrinterProperties_cursor_changedTs
cCsti}||ijo|i|idSti|i|i|td|itdtdtdtd	dS(NsSet Default Printers;Do you want to set this as the system-wide default printer?s'Set as the _system-wide default printers"_Clear my personal default settings#Set as my _personal default printer(	R>R?R@RjRtUserDefaultPrompttset_default_printerR5RH(RRRJ((s9/usr/share/system-config-printer/system-config-printer.pyt"set_system_or_user_default_printer^s

				cCs2|i|}t}|iitdy|i}Wnwtij
o*\}t||i|ii	dSti
j
o0\}}t|||i|ii	dSX|ii	|o|iny|i
WnHtij
o9\}d|_|i|i
t||inXdS(Nssetting default printer(RRRRR5tsetAsDefaultRRRHRR$R%RRRR(RRRtreloadRR,tmsg((s9/usr/share/system-config-printer/system-config-printer.pyRqss.



	

c
CsA|itjodSd}|itjoC|iid}|o&tiitd|ii	}qnnt
i}t
idy.t
i|idtd|id|i}Wn)tj
o}td||idSXd}|itdyj|o@tii|o-td||i|iid	|}n td
|i|ii}Wnt
ij
oy\}}	|t
ijoG|idjo7|idd
jo#ttdtd|iqt||	|inX|it
i||djo*ttdtd|d|indS(NtPageSizestestpage-%s.psRttry_as_rootR!Rsprinting test pagesPrinting custom test page tfilesPrinting default test pageRiRsNot possibles^The remote server did not accept the print job, most likely because the printer is not shared.t	SubmittedsTest page submitted as job %dR( RRRt
findOptionRR4tjointpkgdatat	defchoicetlowerRR$RRRRHR!R#RR%RR5texistsRt
printTestPageRRR$tIPP_NOT_AUTHORIZEDtshow_error_dialogRtshow_info_dialog(
RRtcustom_testpageR%RtcRtjob_idR,Ru((s9/usr/share/system-config-printer/system-config-printer.pyton_btnPrintTestPage_clickedsR
	

	


cCs>ti\}}ti|d|ti||iitdy]d}|ii|i	i
d|d|d|i}ttdtd|d	|i
Wnwtij
oh\}}|tijo6|i	i
d
jo#ttdtd|i
q t|||i
nX|iiti|dS(
Ns#CUPS-COMMAND
%s
ssending maintenance commandsapplication/vnd.cups-commandtformatRxRRys'Maintenance command submitted as job %dRRsNot possibles^The remote server did not accept the print job, most likely because the printer is not shared.(ttempfiletmkstempRtwritetcloseRRR5RRRR%RRHR$RRR%Rtunlink(RtcommandttmpfdttmpfnameRRR,Ru((s9/usr/share/system-config-printer/system-config-printer.pytmaintenance_commands.
		
cCs|iddS(NtPrintSelfTestPage(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSelfTest_clickedscCs|iddS(Ns	Clean all(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnCleanHeads_clickedsc	Cs|djoti}ntititi}|i|t}xZt	|D]L\}}|i
|i||g||jo|i|t
}qUqUW|p|idndS(Ni(Rt	ppdippstrtTranslactionDictRRwRRRzRt	enumerateR*R)RR(	RRtvaluesRttranslationdictR<Rtnrtval((s9/usr/share/system-config-printer/system-config-printer.pytfillComboBoxs




cCst|_h|_t|_|i|}||_|iy|id}||_Wnt	j
onX|ii
}|ii}yC|i|_
|i|_|itjo|iinWnntij
o+\}}t|||it|_
n6tj
o)ttdtd|inXx-|i|i|ifD]}|i|qXWxu|i|i|i|i|i |i!|i"|i#|i$|i%|i&|i'|i(|i)|i*fD]}|i+|qW|ii,|i-|ii,|i.|i/}	|ii,|	|ii0|ixT|i1|i2|i|i3|i|ifD](}|i4o|i5qd|i6qdWyG|i7o,|io|i8i9q|i8i:n|i8i9Wnt;|i8i9nX|i!i+||i"i+||i#i+||i$i+||i(i,dh|_<xq|i=i>D]`}
|
i?djo;|i
o1|i
i@d}|o|
iA|iBqn|}y|iiC|
i?}
Wn t	j
o|
iDdnXyh|iiFiG|
i?o.|iiF|
i?d}|
iD|
d|n|
iD|
|
|i<|
i?<Wn9t}ttdtd	|
i?|
f|inX|
iHi+||p|
iIi+tq^q^Wg|_J|iKd
|x|iiCiLD]}
|i<iG|
oqn|iiC|
}
|iiFiG|
o|iiF|
d}nEtM|
tNo"ddg}tO|
iP}
nd}tO|
}
|iQ|
d
|
d|dtd
|qW|iRi,d|iRi+||iSi+t|i4oJ|iTiU|iV}|djo|iTiW|n|iX||n|iY|||iZ|i[|i\t|_|i]|i^dS(Nsserver-is-sharing-printerstErrors2There was a problem connecting to the CUPS server.RRRviR(s0Option '%s' has value '%s' and cannot be edited.R"ttruetfalseRR'i(_RRRR RRt
getAttributesRR'RR'RtgetPPDRt	ppd_localRtlocalizeRR$R%RHRRR5RoRpRttset_editableRvRwRxRyRzRRRRRRRRRRR[RR`RRRvRrRqRuRR?R<R=R{RRCRRRRRRztset_defaultR}RVtreinitRtpossible_attributesRR@RRR&RRRRyR~R)RRRntpage_numRtremove_pagetfillClassMemberstfillPrinterOptionstupdateMarkerLevelstupdateStateReasonstupdatePrinterPropertiesTreeViewtupdatePrinterPropertiesR((RRRt
publishingR"teditablePPDR,RR@RRR%toption_editableRR(ttab_nr((s9/usr/share/system-config-printer/system-config-printer.pyR#	s	
	





	

	


		
	
	





cCstititi}|iitx|t|ii	D]e}|ii
|}|ii|}|id}|i|d|i|i|d|q>W|ii}|ii|dS(Nii(RRwRRtTYPE_INTRnt
set_show_tabsRR1R2R3R4R*RR5RRiR#Rz(RRRIR=RR5R((s9/usr/share/system-config-printer/system-config-printer.pyR	scCs0|i}x'|iiD]}|ii|qWt}xYddddgD]E}|ii|g}t|tjo
|g}n|||<qOWt	d|d|d|d|d}t
||iiti@dj}|i
i|t|djoOtitd}|it|idd|ii|ttdnd}	t|}
d	|
d	d
}|
d
jo
d
}
ntid|d|
d
t}|id|id|ii|xA|D]9\}
}}}|djo
d}nD|i}|tjo*|i|}|djo
|}qNn|	d
}|	d
}tidd}ti}t i!|
|}|i|ttd|i|ttdti|}|it|i|ttd|i"|||d	||d	|	d	7}	qW|ii#dS(Ns
marker-colorssmarker-namessmarker-typess
marker-levelscSs||||fS(((tcolorRRQR((s9/usr/share/system-config-printer/system-config-printer.pyR		sis0Marker levels are not reported for this printer.giiR0RthomogeneousiiRtspacing($RRRR+tdictRR)RQRwtmapRRR/RR[RRtLabelR5t
set_line_wrapRRRkRtTabletset_col_spacingstset_row_spacingsRRtlocalizeMarkerNametVBoxtHBoxtgtkinkleveltGtkInkLevelR=RC(RRR@tmarker_infotattrRtmarkerstcan_refreshRtnum_markerstcolsR0ttableRRtmarker_typeRRtlocalized_nameR2Rtvboxtsubhboxtinklevel((s9/usr/share/system-config-printer/system-config-printer.pyR	st		
	




	








!cCs|iddS(NtReportLevels(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyRm	
scCs2|i}|iidg}titt}t}x|D]}|djoPnt}|id}t
i|i|i
|}|idjo
ti}nt
ii|i}|i|d||i\}	}
|i|d|
q=W|ii|d}|o
d}n|ii|dS(Nsprinter-state-reasonsRRii(RRR)RRwRyRRR*RRRRRt
get_reasonRRRR5tget_descriptionRRzRRn(RRRRtanyRR5RRttitleRR=((s9/usr/share/system-config-printer/system-config-printer.pyR
s,	


c
Gsf|i|d}ti}y)|i|dd}|id|Wntij
o	}	nXdS(NiiR(RRRRtset_propertyRR(
RRRR<R5tdataRRRtexc((s9/usr/share/system-config-printer/system-config-printer.pyRq'
scGs |id|i|ddS(NRi(RR(RRRR<R5R((s9/usr/share/system-config-printer/system-config-printer.pyRr0
scCstd|i}|ii|i|ii|itd}|i	idd}t
|djo|d|7}n|ii|t
|idjo%td|i
i|i|ii|i|ii|i|i|i|i|iti|i|i|i|iti|i|i|i|iti|i|i |i!|i"ti#|i$i|i%|i&i|i%|i'|i(|i)|i*|i+ndS(Nsupdate printer propertiestUnknownsprinter-state-messageRis - s.no changes yet: full printer properties update(,RRRqRRtprinter_statesR)R[R5RRRsRRxRR<RyRRzR=RRtjob_sheets_supportedRRt
job_sheetsRRRterror_policy_supportedRtprinter_error_policyRtop_policy_supportedRtprinter_op_policyRRRRR
RRR(RRR[R((s9/usr/share/system-config-printer/system-config-printer.pyR3
sD
	






cCsm|ii|i}|djo|ii|nx'|iiD]}|ii|qFWx'|iiD]}|ii|qpW|ii|idjo#|ii	|i|i
|in|ipq|ii|i
}|djo|ii|n|ii|i}|djo|ii|ndS|i}|i|iit}x`|iiD]R}|idjojt}|i}|ii|i
}|djo,|ii	|i
ti|i|in|i}	ntidtii|i}
|
iit|
iti|ii|
ttdti dddd}|i!dddd|
i"||i
}	ti#d	d
t}|i$d|i%d|i"|d}d|_'|_(xt)|i*D]\}
}|i+djoqn|d	7}|i,|d
t-|||d|	}|i.|i/dd	|
|
d	dddd	ti0}|i1oti dddd}|i!dddd|i"|i1|i.|d	d
|
|
d	ti2ddd	|i.|d
d
|
|
d	ti2ddd	n-|i.|d	d
|
|
d	ti2ddd	|i|i3t||i*|i+<|i3i4||i+djo
||_'q|i+djo
||_(qqWqwW|p:|ii|i
}|djo|ii|qnx>|i*i5D]-}|i6}|o|i7i"|qqW|i
i8|ii8dS(NitInstallableOptionss	<b>%s</b>ig?g?iiiit
PageRegionR0it	InputSlott
ManualFeed(9RnRRRRRR+RRtinsert_pageRRRRtmarkDefaultsRRtoptionGroupsRRRRRRtFrameRR)tget_label_widgetRtset_shadow_typetSHADOW_NONERkt	Alignmenttset_paddingR?RRRRRRRRtkeywordRRR=tconflictIconRRRRR[RXtcheckConflictsR RC(RRR"RR@RthasInstallableOptionsRt	containerR0tframeRR0RRtothboxtaR ((s9/usr/share/system-config-printer/system-config-printer.pyRa
s
	


	


	

"
	



,
,0,


c	CsT|i|}|ii||ii||ii|i}|djo|ii|n|ii|idjo#|ii	|i|i
|in|ii
}|ii
}|i|i|ii}|ix`|D]X}|i|}||j	o8||ijo|i|fqL|i|fqqWdS(Ni(RRR[RRnRRRRRRRRR&RRjRR:RIR*(	RRR"RRt
model_memberstmodel_not_memberstnamesR((s9/usr/share/system-config-printer/system-config-printer.pyR
s.

	




cCsgt|i|it|i|iijo|ii|in|ii|i|i	dS(N(
R7RRR>RRIRR?RvR((RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnClassAddMember_clicked
s	
cCsgt|i|it|i|iijo|ii|in|ii|i|i	dS(N(
R7RRR>RRIRR?RvR((RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnClassDelMember_clicked
s	
cCsV|iix,t|idjo|idiqW|`|`tidS(Ni(RtcleanupRRhRRRt	main_quit(RR@RA((s9/usr/share/system-config-printer/system-config-printer.pyton_quit_activates
cCsW|i|idd}t|djo'ttdtdd|itStS(Ntlimitiis
Cannot RenamesThere are queued jobs.R(Rt
jobsQueuedRRR5RHRR(RRtjobs((s9/usr/share/system-config-printer/system-config-printer.pytis_rename_possibles
cCs|i|idd}t|djovti|ititiBtiti	t
d}|it
d|i}|i
|tijotSntS(s
        Renaming deletes job history. So if we have some completed jobs,
        inform the user and let him confirm the renaming.
        RiisRenaming will lose historys;Completed jobs will no longer be available for re-printing.(Rt
jobsPreservedRRR.RHR0R/R1tBUTTONS_OK_CANCELR5RGR3R4R8RR(RRtpreserved_jobsRR=((s9/usr/share/system-config-printer/system-config-printer.pytrename_confirmed_by_users
	c
Csq|ii}|djodS|\}}t|tijoZ|ii}x)|D]!}t|tijoPqYqYWt|tijodSn|ii}|i|}t	|i
|d}|i|pdS|i|pdS|i
dt|ii||dtg}	|	i|id|i|	i|id|i|	|_dS(NiR"t
start_editingteditedsediting-canceled(RKRmRRQRRiRPR&R(RRRRRRRR*R-tprinter_name_editedtprinter_name_edit_cancelt
rename_sigids(
RRttupleR4RRTR<R5Rtids((s9/usr/share/system-config-printer/system-config-printer.pyRF0s4
		
cCs|ii}|i|}t|i|d}td||fz|i||Wd|idt|i	dtx|i
D]}|i|qWXdS(Nisedited: %s -> %stcanceledR"(RKR&R(RRRtrename_printertstop_editingRRRt
disconnect(RRR4tnewnameR<R5Rtid((s9/usr/share/system-config-printer/system-config-printer.pyR	Ms
cCsOtd|idt|idtx|iD]}|i|q4WdS(Nsediting-canceledRR"(RRRRRRR(RRR((s9/usr/share/system-config-printer/system-config-printer.pyR
Zs

c
s|jodSyi|Wntj
onXi|pdSiitdii}|pyFiit	i|p"iit
iidSWqtij
o0\}}t
||iiidSXnioii|pzyi|it
Wqtij
o\}t|iqtij
o"\}}t
||iqXniidS|pvyiit
Wq0tij
o\}t|iq0tij
o"\}}t
||iq0Xni|jot	}yii}Wn[tij
o\}t|in2tij
o"\}}t
||inX|oiqnyii|Wn[tij
o\}t|in2tij
o"\}}t
||inXiifd}iii}	|	i|dS(Nsrenaming printercsFt|i|d}|GGH|joii|ndS(Ni(RRRKRO(R<R4R5R(tnew_nameR(s9/usr/share/system-config-printer/system-config-printer.pytselect_new_printers	
(R#RRRRR5RRRPRRRR$R%RHtcopy_printerRR^RRRR@RsRt
deletePrinterRRKR&R(
Rtold_nameRRR,RuRRtRR<((RRs9/usr/share/system-config-printer/system-config-printer.pyRasx

	





cCs`||i_g|i_|iitd|i|idtd|i}|ii	|S(Nscopying printerR_R(
RRRIRRR5R7RRHR(RRtret((s9/usr/share/system-config-printer/system-config-printer.pyRs
cCs|i}|i}|ii}|i|d}t|i|d}|ii||ii	|i
|ii}|ii|t
ijodSy|i|Wntj
onX|i|ii|iidS(Nii(RKR;R&R(RRR^RR]R~RHR3R?RR8R#RRRRR^(RRR*RCR<R5RR=((s9/usr/share/system-config-printer/system-config-printer.pyRHs"	
cCst|i}|}|idd}|idd}|idd}||jo|i|n|ii|i|dS(NRRt#t (RRtreplaceRR_R[tcheckNPName(RR@Rtnew_text((s9/usr/share/system-config-printer/system-config-printer.pyton_entCopyName_changeds
	cCst|itoh|ii}|ii}g}x#|D]}|i||dq>W|ii||in|i	dS(Ni(
RRRRKR;R&R*RRtdelete_selected_printer_queues(RRRCR<tselected_namesR4((s9/usr/share/system-config-printer/system-config-printer.pyRJsc
Cs|ii}|ii}t|}|djoi|i|d}|i|d}|i|d}|iotd|}qtd|}n
td}ti	|i
titiBti
ti|}|ititititi|iti|i}	|i|	tijodSyyxr|D]j}
|i|
}|i|d}|iitd|t|}|ii||iiqAWWn>tij
o/\}}|iit|||i
nXt|_|i i!dS(NiiisReally delete class '%s'?sReally delete printer '%s'?s$Really delete selected destinations?sdeleting printer %s("RKR;R&RR(RRR5RR.RHR/R0R1tBUTTONS_NONEtadd_buttonstSTOCK_CANCELR-RItRESPONSE_ACCEPTtset_default_responseR3R4RRRRRR$R%RRRR^(
RRCR<RIR5R+RR@RR=R4R,Ru((s9/usr/share/system-config-printer/system-config-printer.pyR sL

	

cCs|iodS|i}|i}|i}|i}x|D]}|i|}|i|d}t|i|dd}	|ii	t
d|	y|i|WnBtij
o3\}
}t
i|
||i|iiPnX|iiqCW|iidS(Niisutf-8smodifying printer %s(R*RqRKR;R&R(RRRRR5ROR$terrordialogsR%RHRRR^(Rt
toggle_actionRR*RCR<R4R5RRR,R((s9/usr/share/system-config-printer/system-config-printer.pyRV(s(
	
csiodS|i}i}|i}|i}t}x|D]}|i|}|i|d}	ii	t
d|	iy|	i|t
}Wn?tij
o0\}
}t|
|iiiPnXiiqIW|ol|oeidjoGy$|	i|	id}|_Wq\titfj
oq\Xninfd}
ti|
dS(Nismodifying printer %ssserver-is-sharing-printerscsitS(N(RR((R(s9/usr/share/system-config-printer/system-config-printer.pytdeferred_refreshks
(R*RqRKR;R&RR(RRRR5RRQRR$R%RHRR'RRRRtadvise_publishRtidle_add(RRtshareR*RCR<R:R4R5RR,RRR)((Rs9/usr/share/system-config-printer/system-config-printer.pyRWAs@
	





	cCs4|ip&ttdtdd|indS(NsPublish Shared PrinterssShared printers are not available to other people unless the 'Publish shared printers' option is enabled in the server settings.R(R'RR5RH(R((s9/usr/share/system-config-printer/system-config-printer.pyR*ps
cCs]|i}|i}|i}|i|d}t|i|d}|i|dS(Nii(RKR;R&R(RRRr(RRR*RCR<R5R((s9/usr/share/system-config-printer/system-config-printer.pyRLzs	cCs*|ii}|i|i|ddS(Ni(RKR;R(RRRC((s9/usr/share/system-config-printer/system-config-printer.pyRNscCs|ii}g}|ii}xE|D]=}|i|}t|i|dd}|i|q+W|iid|ii	i}|ii
i}	|i}xh|djoZ|i
|}
|i|d}|d|jo|	i||i|n|
}qWdS(Nisutf-8tclassi(RKR;R&R(RRR*R|tinitRRRRR9R)R+(RRRCRIR<R4R5Rt	out_modeltin_modeltnextR((s9/usr/share/system-config-printer/system-config-printer.pyRPs(

c	
Cs|ii}t|og}|ii}xE|D]=}|i|}t|i|dd}|i|q8Wti	dddtd|d|id|i
}n+ti	dddtd|id|i
}|ii|dS(Nisutf-8tmy_jobstspecific_deststexit_handlerR(RKR;RR&R(RRR*t	jobviewert	JobViewerRRton_jobviewer_exitRHRh(	RRRCR3R<R4R5Rtviewer((s9/usr/share/system-config-printer/system-config-printer.pyRRs"
		cCs |ii|}|i|=dS(N(Rhtindex(RR8R$((s9/usr/share/system-config-printer/system-config-printer.pyR7scCs|ioa|ipS|ii|i|ii|i|ii|i|iit	|_qn^|ioS|ii|i|ii|i|ii|i|iit
|_ndS(N(RqRRIR+RJRtadd2R?RCRR(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_view_groups_activates




cCs|idS(N(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyt$on_view_discovered_printers_activatescCs0|iidpti|i|_ndS(Nttroubleshooter(R\RttroubleshootR3ton_troubleshoot_quitR=(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_troubleshoot_activatescCs
|`dS(N(R=(RR=((s9/usr/share/system-config-printer/system-config-printer.pyR?scCsQ|ii}g}x|D]}|i|dqW|ii||idS(Ni(RKR&R*Rtcreate_new_groupR(RRR<RR+((s9/usr/share/system-config-printer/system-config-printer.pyRSscCsd}|idjotdtid|i}n|idjotdtid|i}nj|idjotdtid|i}n;|idjotdtid|i}ntdS|i	i
||idS(Nsfilter-nameRRsfilter-descriptionsfilter-locationsfilter-manufacturer(RRRRRRRRRRtcreate_new_search_group(RRt	criterion((s9/usr/share/system-config-printer/system-config-printer.pyRTs"cCs1|ii|i|ii|iidS(N(RUR~RHR3R?(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_about_activates
cCst|_|iitdy|ii|_WnAtij
o2\}}t|||i	|ii
nX|ii
x|itif|i
tif|itf|itif|itif|itifgD]t\}}|id||ii|o+|it|i||itq|it|itqW|iy)ti}t|i|}||_Wnt j
onX|i!|i
dS(Nsfetching server settingstsetting("RRRRR5R]RrR$R%RHRRatCUPS_SERVER_REMOTE_PRINTERSRbtCUPS_SERVER_SHARE_PRINTERSRcttry_CUPS_SERVER_REMOTE_ANYRdtCUPS_SERVER_REMOTE_ADMINRetCUPS_SERVER_USER_CANCEL_ANYRftCUPS_SERVER_DEBUG_LOGGINGR!RRRxR[RRR(R'Rjton_server_changed(RR,RR@REtflagR((s9/usr/share/system-config-printer/system-config-printer.pyRcs>



	
cCs|id}|ii|oNtt|i|i|jo|ii|qp|ii|n|i	i}|i
i|o|iit|i
dS(NRE(R*RrRRyRxRqRRvR?RbRcR[RHR((RR@RERu((s9/usr/share/system-config-printer/system-config-printer.pyRL
s&	c	
Cs&|ii}x|itif|itif|itf|i	ti
f|itif|i
tifgD]B\}}|ii|pqmntt|i||<qmW|iitdy|ii|Wnttij
o0\}}t|||i|iitStj
o*}td||i|iitSX|iit|_|i|ii tid}|i tid}|djo;|djo.t!tdtddt"d|int#i$d|i%y|i&Wnt'nXdS(Nsmodifying server settingst0sReview FirewallsOYou may need to adjust the firewall to allow network printing to this computer.s

Ri((RrRRaRRFRbRGRcRHRdRIReRJRfRKRRyRxRqRR5tadminSetServerSettingsR$R%R`RRRRRRR(R)RtTEXT_start_firewall_toolRRRRRcR(	Rtsetting_dictR@RER,RRtold_settingtnew_setting((s9/usr/share/system-config-printer/system-config-printer.pyRe)
sP 



	


cGs9|iidp"ti|id|i|_ndS(NR=R(R\RR>R3R?R`R=(RR((s9/usr/share/system-config-printer/system-config-printer.pyRa
scCs4|i|i|iid|i|idS(NR(RnRHR|R.Ro(RR@((s9/usr/share/system-config-printer/system-config-printer.pyR:k
scCs4|i|i|iid|i|idS(Ntprinter_with_uri(RnRHR|R.Ro(RR@((s9/usr/share/system-config-printer/system-config-printer.pyRq
scCs|iiddS(NR-(R|R.(RR@((s9/usr/share/system-config-printer/system-config-printer.pyR;w
scCs4|i|i|iid|i|idS(Ntdevice(RnRHR|R.Ro(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSelectDevice_clicked{
scCs4|i|i|iid|i|idS(NR(RnRHR|R.Ro(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnChangePPD_clicked
scCsb|ptSt|i}x=|iiD],}|io|ii|jotSq.WtS(N(RRR~RRR'RR(RRR((s9/usr/share/system-config-printer/system-config-printer.pyR
s!	cCs|idd}|idd}|idd}|i|p\d}x?|i|dt|p |d7}|djoPqOqOW|t|7}n|S(s-Make a suggested queue name valid and unique.Rt-RRiiid(RRRy(RRtsuffix((s9/usr/share/system-config-printer/system-config-printer.pytmakeNameUnique
s


cCs.tii|idttiidS(NR(RRRRRR(R((s9/usr/share/system-config-printer/system-config-printer.pytprinter_added_or_removed
s
cCs$tii||||idS(N(RtWatchert
printer_addedR[(RtmonR((s9/usr/share/system-config-printer/system-config-printer.pyR]
scstii||||fd}tiiii|oi|i|i	i
ti|i
ido8yiiiWqtij
oqXqntiidS(NcsitS(N(RR((R(s9/usr/share/system-config-printer/system-config-printer.pyR)
s
R(RR\t
printer_eventRRRRRR^RRKRR+RhRRRRRR$R(RR^Rt	eventnameRAR)((Rs9/usr/share/system-config-printer/system-config-printer.pyR_
s



cCs$tii||||idS(N(RR\tprinter_removedR[(RR^R((s9/usr/share/system-config-printer/system-config-printer.pyRa
scCstii|||tii|iido8y|ii	|i
Wqntij
oqnXntii
dS(NR(RR\tstate_reason_addedRRRRhRRRRRR$R(RR^R((s9/usr/share/system-config-printer/system-config-printer.pyRb
s

	cCstii|||tii|iido8y|ii	|i
Wqntij
oqnXntii
dS(NR(RR\tstate_reason_removedRRRRhRRRRRR$R(RR^R((s9/usr/share/system-config-printer/system-config-printer.pyRc
s

	cCsotii||y|iiWnDd|_tii|i	|i
dttiinXdS(NR(
RR\tcups_connection_errorRt
getClassesRRRRRRRR(RR^((s9/usr/share/system-config-printer/system-config-printer.pyRd
s	

(RRR5RtIPP_PRINTER_IDLEtIPP_PRINTER_PROCESSINGtIPP_PRINTER_BUSYtIPP_PRINTER_STOPPEDRRRRRRRRRRRRRYRRRRRRRRdRRgRnRoRRyRRRRR.RR-RRRBRRRRRRRRR	RRR&R)R R+R-R.R(R7RCRRoRrRqRRRRRR#RRRmRRqRrRRRRRRRRRFR	R
RRRHRRJR RVRWR*RLRNRPRRR7R;R<R@R?RSRTRDRcRLReRR:RR;RVRWRRZR[R]R_RaRbRcRd(((s9/usr/share/system-config-printer/system-config-printer.pyRCs										(	%	F					
						1				@			
	%				
								 						>			
		 	:					
	H						.	q	 					
			
		]					.		/	
														&		8	
													R{cBseZhdd6dd6dd6dd6dd6dd6dd6d	d
6d	d6d	d6d
d6dd6dd6dd6dd6ZeZeZdZdZdZ	dZ
dZdZdZ
dZdZed Zd!Zd"Zed#Zed$Zd%Zd&Zd'Zd(Zd)Zd*Zed+Zd,Zd-Zd.d/Zd0Z d1Z!eed2Z"d3Z#d4Z$d5Z%eed6Z&ed7Z'd8Z(d9Z)d:Z*d;Z+d<Z,d=Z-d>Z.d?Z/d@Z0dAZ1dBZ2dCZ3dDZ4dEZ5dFZ6dGZ7dHZ8dIZ9dJZ:dKZ;dLZ<dMZ=dNZ>dOZ?dPZ@dQZAdRZBdSZCdTZDdUZEdVZFdWZGdXZHdYZIdZZJd[ZKd\ZLd]ZMd^ZNd_ZOd`ZPdaZQdbZRdcZSddZTdeZUdfZVdgZWdhZXdiZYdjZZedkZ[RS(litparalleltusbthaltbehthpR}iR~iR{thttpthttpsiRitscsiitserialiR|itnetworkc
RCs||_|i|_h|_t|_t|_d|_t|_	t|_
t|_g|_t
i|_t
i|_t|_t
i|_|ihddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPgPd6dQdRgdQ6dSdTdUgdS6dVdWgdV6x$|igD]}|idXtqW|i|_|i|_ti|i|iit|iit|iit|i itt!i"|i#|_$dY|_%t&i'i(|_'d|_)|i*}t+i,}|i-|t.|i/|dZdY|i0o+x(|i1|i2gD]}|i3qWnd[}x0|i4|i1|i2gD]}|id\|qWx9|i5|i6|i7|i8gD]}|id]d^qWW|i9i:}|i;|i<|i9i=|i>|i9id_|i?|i@id`|iAt+iBtCiD|_E|iFiGtHtHp|iFiItJdan|iKiL|iEt+iMtJdb}t+i,}|i-|t|iN||iO|iKiP|t+iMtJdc}t+i,}|i-|t|iN||iQ|iKiP||iKi:}|i;|iR|iiS|i|iTiUt.|iTidd|iVt+iW}	|	iXtJde|	iYdf|	iYdg|	iYdh|	iYdi|	iYdj|iZi[|	t+iW}	|	iXtJdk|	iYdl|iZi[|	dS(mNR}tntbkNewPrintert	btnNPBacktbtnNPForwardt
btnNPApplytimgProcessWorkingt	entNPNametentNPDescriptiont
entNPLocationRt
ntbkNPTypetlblNPDeviceDescriptiontexpNPDeviceURIsRtcmbNPTSerialBaudtcmbNPTSerialParitytcmbNPTSerialBitstcmbNPTSerialFlowtbtnNPTLpdProbetcmbentNPTLpdHosttcmbentNPTLpdQueuetentNPTIPPHostnamet	lblIPPURItentNPTIPPQueuenametbtnIPPVerifytentNPTDirectJetHostnametentNPTDirectJetPortt	entSMBURItbtnSMBBrowset
tblSMBAuthtrbtnSMBAuthPrompttrbtnSMBAuthSettentSMBUsernametentSMBPasswordtbtnSMBVerifytentNPTNetworkHostnametbtnNetworkFindtlblNetworkFindSearchingtlblNetworkFindNotFoundtentNPTDeviceRRtbtnNCAddMembertbtnNCDelMembert
ntbkPPDSourcet	rbtnNPPPDRtrbtnNPFoomatictfilechooserPPDtrbtnNPDownloadableDriverSearchtentNPDownloadableDriverSearchtbtnNPDownloadableDriverSearcht$cmbNPDownloadableDriverFoundPrintersRRtrbtnChangePPDasIstrbtnChangePPDKeepSettingstscrNPInstallableOptionstvbNPInstallOptionsRt"ntbkNPDownloadableDriverPropertiestlblNPDownloadableDriverSuppliert$cbNPDownloadableDriverSupplierVendortlblNPDownloadableDriverLicenset$cbNPDownloadableDriverLicensePatentst!cbNPDownloadableDriverLicenseFreet"lblNPDownloadableDriverDescriptiont&lblNPDownloadableDriverSupportContactsthsDownloadableDriverPerfTextthsDownloadableDriverPerfLineArtt hsDownloadableDriverPerfGraphicsthsDownloadableDriverPerfPhotot$lblDownloadableDriverPerfTextUnknownt'lblDownloadableDriverPerfLineArtUnknownt(lblDownloadableDriverPerfGraphicsUnknownt%lblDownloadableDriverPerfPhotoUnknownt#frmNPDownloadableDriverLicenseTermsttvNPDownloadableDriverLicensetrbtnNPDownloadLicenseYestrbtnNPDownloadLicenseNot
WaitWindowtlblWaittSMBBrowseDialogttvSMBBrowsertbtnSMBBrowseOkt
InstallDialogt
lblInstallsdelete-eventiRcSs1|id}|djo|i|ndS(Ntprotect_active(R*RR(t
toggle_widgetR,((s9/usr/share/system-config-printer/system-config-printer.pytprotect_toggles
Rschange-valuecSstS((R(RRtz((s9/usr/share/system-config-printer/system-config-printer.pyR	ss
row-activatedsnotify::expandeds-Browsing not available (pysmbc not installed)tSharetComments
query-tooltipsQPostScript Printer Description files (*.ppd, *.PPD, *.ppd.gz, *.PPD.gz, *.PPD.GZ)s*.ppds*.PPDs*.ppd.gzs*.PPD.gzs*.PPD.GZs
All files (*)R(\tmainappRRRRR RRRtremotecupsqueuetexactdrivermatchtinstallable_optionstjockey_installed_filesRt
allocate_locktjockey_lockt	ppds_locktppds_queriedtdrivers_lockR+RR-RBRnRoRRR}RtRRR|Rt
gtkspinnertSpinnerRxtspinnert
spinner_countRtopenprintingtOpenPrintingtopenprinting_query_handleRRRiRkRRltDOWNLOADABLE_ONLYPPDRRR?RRRRRRR#tset_select_functiontdevice_select_functiontset_row_separator_functdevice_row_separator_fntdevice_row_activatedR~ton_expNPDeviceURIs_expandedt	TreeStoreRRt	smb_storeRR[tPYSMB_AVAILABLEtset_tooltip_textR5RRzRnRptsmbbrowser_cell_shareRttsmbbrowser_cell_commenttsmb_select_functionR~RRton_NPDrivers_query_tooltipt
FileFiltertset_nametadd_patternRt
add_filter(
RRRRRR@RtslctRt
ppd_filter((s9/usr/share/system-config-printer/system-config-printer.pyR
s`									



			
	
		
	
	






cCsA|idjo|ii|iin|id7_dS(Nii(RRxR<Rtstart(R((s9/usr/share/system-config-printer/system-config-printer.pytinc_spinner_tasks
cCsA|id8_|idjo|ii|iindS(Nii(RRxR?Rtstop(R((s9/usr/share/system-config-printer/system-config-printer.pytdec_spinner_tasks
cCst||d|iS(NR(R%R}(Rt	exceptionR9((s9/usr/share/system-config-printer/system-config-printer.pyR%scCsm|io|ii|n|ii||io|ii|n|ii||idS(N(RRR?RvR R((RR((s9/usr/share/system-config-printer/system-config-printer.pyRs


cCs|iit|idS(N(RvR[RR (R((s9/usr/share/system-config-printer/system-config-printer.pyR(scCs>||_h|_t|_t|_d|_|i}|it	i
tt|ii
d|i}|ididid}||_|i
td|idjo|idjo
d}nd}|ii
|ii||iix=|i|i|i|i|igD]}|i
dq,Wn|idjo%h}ti|ii||_n|ii
d|i i!t"|idjo]|i#i$td	|i%i&d|i'|i(i!t"|i)|i(t*|_+n|idjo4|i#i$td
|i,|i%i&dn|idjo@|i#i$td|i%i&d|i'|ii-in|id
jp|idjof|id
jo|i#i$tdn|i#i$td	|i%i&d|i(i!t"|i)|i(|i.i!t"d|_/|ii0}|ii1}	|id
jo|ii-i}
n/|ii2}
|i3|
p|i4ddS|	djoyti5|	}|i6d}x|djo|i7i8|d|d|d|d|
|i9\}
}|
|i7i:joj|djo]yI|i;o2y|i<|i6d}Wqd}qXnd}Wqd}qXqd}qW|o|i7i=|}|d}ti7i>|\|_?|_/|
|i7i:joG|id
jo7t"|_@|iA|i%i&d|iBddqrt*|_@n|d|_?|d|_/Wn!|d|_?|d|_/nXd|i_1n|o|iCd}|o
|iD}nd}|}|iCd}|p|iCd}n|p|iCd}n|o5|iDiE|o
|iD}qb|d|iD7}nd}ti7i>|\|_?|_/nd|_?d|_/y=|id
jo|iiF}n
|i#}|i6d|Wn?tGiHj
o)\}}tI||d|iiJdSdSX|iAn|iK|i#iLdS( NRiitSearchRRTR-t9100sNew Printers	New ClassRUsChange Device URIRs
Change DriveritMFGtMDLtDEStCMDsppd-make-and-modelitsteptManufacturert	ModelNamet
ShortNickNametNickNameRtGenerics	Raw QueueR(sprintersprinter_with_urisclass(Mtdialog_modeRRRR RtfetchDevices_opRRzRRwRyRRRRt#btnNPDownloadableDriverSearch_labelR5RyRRZRR{RzRRRRtDeviceRRURRRRR}R)RtRnt
fillDeviceTabRton_rbtnNPFoomatic_toggledRtnew_printer_PPDs_loadedtfillNewClassMembersRRt
auto_modelRR(Rtinstall_hplip_pluginton_NPCancelt
parseDeviceIDtloadPPDstppdstgetPPDNameFromDeviceIDRtSTATUS_SUCCESStfetchJockeyDriverRtgetInfoFromPPDNametppdMakeModelSplitt	auto_makeRtfillMakeListt	nextNPTabtfindAttrRt
startswithRhRR$R%RHtsetNPButtonsR<(RRRRRt
name_protoR@tdevice_dictRR(Rt
devid_dicttreloadedtstatustppdnametppddictt
make_modelRtmfrtmakeandmodelRR,R((s9/usr/share/system-config-printer/system-config-printer.pyR.s					$	

	



	



	






	





"			
c	Cstd|iidptddStdd}y|ii}WnnX|djoy|ii}WqqXn|djo|iidSti	|i
|ftddS(NtqueryJockeyDriverisqueryJockeyDriver: in progresss&Lock acquired for Jockey driver threadRsJockey driver thread started(RRtacquireRURRR(treleaseRRtgetJockeyDriver_thread(RR(((s9/usr/share/system-config-printer/system-config-printer.pyR"s(





cCs"td|t|_g|_yti}|idd}ti|d}|id|dd\}}||_||_|otdntdWn`ti	j
o}||_t|in4t
j
o'}t||_td	|nXtd
|ii
dS(Ns!Requesting driver from Jockey: %sscom.ubuntu.DeviceDrivers/GUIsprinter_deviceid:%sttimeouti?Bs#New driver downloaded and installeds(No new driver found or download rejecteds"Non-D-Bus error on Jockey call: %ssReleasing Jockey driver lock(RRtjockey_driver_resultRtdbust
SessionBust
get_objectt	Interfacet
search_drivert
DBusExceptiont	ExceptionRRR$(RRtbustobjtjockeyloaderR=tinstalledfilesR,((s9/usr/share/system-config-printer/system-config-printer.pyR%s.						
cCstd|itidt}x?|iio.|pst}|ii	dt
ddt
d|p
|i}n|ii
||ii|i|in|iidjoqtdyCti|ii|i_|iitd|iiWq8tj
otd	q8Xnxtiotiq;Wtid
q*W|o|iintd|i}t|to
|n|S(NRg{Gz?s"<span weight="bold" size="larger">t	Searchings	</span>

s"Searching for downloadable driverss&CUPS connection lost, reconnecting ...tReconnectedsReconnection failedg?s Driver download request finished( RR"RRRRRtlockedRRRR5R}RR~R<RnRRRRRRHRRRRRjRkR?R'RR.(RRtwaitingR=((s9/usr/share/system-config-printer/system-config-printer.pyRsJ


	





	

	
cCsjtd|iidptddStdt|_ti|i|idftddS(Nt	queryPPDsisqueryPPDs: in progresssLock acquired for PPDs threadsPPDs thread started(	RRR#RRRRtgetPPDs_threadR(R((s9/usr/share/system-config-printer/system-config-printer.pyR7s


	cCsytdti|iitidtid|iid|ii}td|i	}t
ii|d||_
td~WnWtij
o$\}}ti|||_
n&tj
o}t||_
nXtd|iidS(	NsConnecting (PPDs)cSsdS(R((R((s9/usr/share/system-config-printer/system-config-printer.pyR	sR!Rs
Fetching PPDsRsClosing connection (PPDs)sReleasing PPDs lock(RRRRR%t
setPasswordCBRR!R#tgetPPDsRRtPPDstppds_resultR$R.RRR$(RRRt	ppds_dictR,Ru((s9/usr/share/system-config-printer/system-config-printer.pyR8
s&



cCs8td|ip|int}x|iio|pst}|iidt	ddt	d|p
|i
}n|ii||ii
|i|inxtiotiqWtidq+W|o|iintdt|_|i}t|to
|n|S(Nt	fetchPPDss"<span weight="bold" size="larger">R3s	</span>

sSearching for driversg?sGot PPDs(RRR7RRR5RRRR5R}RR~R<RnRRjRkRRRR?R<RR.(RRR6R=((s9/usr/share/system-config-printer/system-config-printer.pyR> s8

	



		
cCs2y|iSWn |id||_|iSXdS(NR(RR>(RR((s9/usr/share/system-config-printer/system-config-printer.pyRCs
cCsy
|`WnnXdS(N(R(R((s9/usr/share/system-config-printer/system-config-printer.pyRJs
cCsf|ii}|i|ii}|ix-|iiiD]}|i|ifqEWdS(N(	RR&RjRRRRXR*R(RR<R((s9/usr/share/system-config-printer/system-config-printer.pyRRs

cCsCt|i|i|iitt|i|itdS(N(R7RRRwR[RR>R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNCAddMember_clickedZs	cCsCt|i|i|iitt|i|itdS(N(R7RRRwR[RR>R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNCDelMember_clicked`s	cCs8|i}|i\}}|ii|gjdS(N(R#R$RR[(RR@R.R/R0((s9/usr/share/system-config-printer/system-config-printer.pyton_tvNCMembers_cursor_changedfscCs8|i}|i\}}|ii|gjdS(N(R#R$RR[(RR@R.R/R0((s9/usr/share/system-config-printer/system-config-printer.pyt on_tvNCNotMembers_cursor_changedkscCso|io$|iid|_|in|ii|idjo |ii|id|_nt	S(N(
RtcancelRRR}R?RRtcancelOperationR(RR@RA((s9/usr/share/system-config-printer/system-config-printer.pyR	rs

	

cCs|iddS(Ni(R(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNPBack_clicked~scCs|idS(N(R(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNPForward_clickedsic!Cs8|ii}|idjodddg}n|idjp|idjo%|i|i|djo/d4\|_|_|i|i	_
|i|i	i
p|iddSt
o!|i	id5jo|in|i	i
}|o-|idotd|d
i}nd|_tid|}|o|i}y\ti|d}|idd|d|i}|idjo|d|_nWnnXyt|ddjot|d}	nd}	ti}
ti d|dd|	d|
}ddg}|i!d|d|}
|
i"dd}|
i"dd}t|djo|i#i$|nt|djo|i%i$|nWqt&j
oqt'qXn|io|i(ozy|i)|iWnVti*j
o0\}}|i+|i|i,||dS|i+|idSXt-|_(nd}y|io>d}||_.|i}|i/i0|}|i1i$|n&|i	i2o|i	i3}d}x|djo|i4i5|d|d|d|d|i	i
|i6\}}||i4i7joj|djo]yI|i8o2y|i9|i)d}Wqd}qXnd}Wqd}qXqd}qWn+|i4i5d d!d"g|i	i
\}}|o|io|i4i:|}|d#}t;i4i<|\}}||_||_||i4i7jo|id$jo
t-|_=qpt>|_=nWnt'nX|ip|i?q(n|d%jo}|i	i2plyW|i@iAiB\}}|i"|dd}|i/i0|}|i1i$|Wq$t'q$Xq(n|i+|i|idjo|ioddg}qs|i=odd
dg}qs|iCiDoddd%d
dg}qs|iEiDoddd
dg}qsddd&d
dg}q|io
dg}q|i=od
dg}q|iCiDodd%d
dg}q|iEiDodd
dg}qdd&d
dg}n|id'jo
dg}np|id$jo_|iCiDodd%dd
g}q|iEiDoddd
g}qdd&dd
g}n||iF||}t>}y7|iFdd(jo|djo
|dj}nWn,tGj
o |d
jo
|dj}nXtHd)||o|iI|_.t>|_J|i.djodStK|i.tiLo|iMn&|i.}d|_.|iM||_.|iJp,|d
jo||iF|d}qG	qK	n|d
jo3|iJo(|djo||iF|d}n|djo|d&jo|iNiOo|iPiQd*tRd+d,tRd-|iSiT|i|iSiU|i|iS|i|ixA|iNiOo0xtViWotViXq3
WtYiZd.q 
W|i+|i|iSi[n|i\n|djo}|djopd}d}y\|i	i2oK|i	id6jo8|i	i3d}d2|i	i3d|i	i3df}nWnt'nXyx|djogtK|i.tiLoQ|i.i]d3i^} t;i4i<| \}}d2||f}d2||f}nWnt'nX|djo
d}n|i/i0|}|i1i$||i#i_djo|o|i#i$|qn|ii`||iadS(7NR-iiiRRTiR~RR{ssmb://Ris!ipp://(\S+(:\d+|))/printers/(\S+)tGETs/printers/%s.ppdiiiwR!tportRsprinter-infosprinter-locationtrequested_attributesRtrawRRRRRRsGeneric Printersppd-make-and-modelRiiRUisWill fetch ppd? %ds"<span weight="bold" size="larger">R3s	</span>

sSearching for driversg?RoRpt	bluetooths%s %st	modelName(NN(ssocketslpdsipp(ssocketslpdsippRoRpRK(bRttget_current_pageRRnR}RRRtgetDeviceURIRURRR	R(RQtgetNetworkPrinterMakeModelRR
tsanitize_uriRRRtgroupsthttplibtHTTPConnectiontrequesttgetresponseRRRxRRRtgetPrinterAttributesR)RzRR{RRRRR$RoR%RRRRZRyRtid_dictRR
RRRRRRRRRRRR#RhRRqRR9RRtgetNPPPDRRtPPDtfillNPInstallableOptionsRR5RRR5RR~R<RRjRkRRRR?tfillDownloadableDriversRRRRnR(!RRtpage_nrtorderRtrestresgtconntrespRHRRRRR`RR,RuRRRWRRRRtmakeR<R5tnext_page_nrt	fetch_ppdRtdescrtmname((s9/usr/share/system-config-printer/system-config-printer.pyRs

				

		

		





	
		









!			
	

#%	

 ,#

c

Csz|ii}|idjot|ii|ii|iiy|i}t	|}Wnt
j
o
t}nX|ii|dS|idjop|djoQ|i
p(td|ii|iin|ii|iidS|djo|ii|iidS|ii|ii|djo|ii|iit}|iioC|i}|i}|o#|ii|do
t}qn|iit|iip|iip|dS|iin|djoMt}y|i}t	|}WnnX|ii||iin|ii|ii|ii|djo|ii|id	jp|id
joC|ii|ii|ii|ii|iin|idjo|iin|id
jo0|ip|io|i
o|iiqvn|djot}|iioC|i}|i}|o#|ii|do
t}qn|iit|iip|iip||id
jo|iiq7n|djo5|i i!i"\}}|iit|n|d
jo=|ii|ii|iitt#|i$n|djo/|id
jo|io|iiqn|djoj|i%idjo|i&i}n.|i'}	|	i!i"\}}|dj}|ii|ndS(NRURisNo installable optionsiiiiRRTR-iii()RtRMRRuR?RvRwR<RNRRjRR[RRRRqRRR&RRRRRtget_filenameRRRyRRRRR#RhR>RRRRR(
RRRtvalidtdownloadable_selectedRR5R<tacceptedR;((s9/usr/share/system-config-printer/system-config-printer.pyRs
















	 








	 


	 




	


	cCst|i}|}|idd}|idd}|idd}||jo|i|n|idjo |ii|ii|n|i	i|ii|dS(NRRRRR(
RRRRRRwR[RRRv(RR@RR((s9/usr/share/system-config-printer/system-config-printer.pyton_entNPName_changed%s
		c
Cstd|iiioti}ddg}yy
|i}WnKtj
o?ti	d|ii
d|dt}|p
||_qnXtd|it
dyM|o#td	ti|d
|}n tdti|d|}WnGtj
o;|o
h}qAtd
tdti|}nXWn8tj
o
n$tij
o|inX|itd|S(NtfetchDevicestdnssdtsnmpR!Rtlocksin get_devices: connectedsfetching device listsFetching network devicestinclude_schemessFetching local devicestexclude_schemessFetching all devicessin get_devices: getDevicessGot devices(RRRR[Rt
WITH_POLKIT_1tfetchDevices_connRjRRR!RRR5Rt
getDevicest	TypeErrorRR$R(RRRst
have_polkit_1tnetwork_schemesRR((s9/usr/share/system-config-printer/system-config-printer.pyRl5sF












cCs|iptS|tid<d}t|d|y^ti|dtdtddtidti}|i	\}}|i
d	jotSWntSXd
}d
}d
}dG}	dG}
x|idD]}|i
dd	jo=tid
|}|o |i}
t|
d	}qknH|i
dd	jo=tid
|}|o |i}
t|
d	}qkn|i
dd	joD|i
dd	jo
d}qk|i
dd	jo
d	}qkn|i
dd	jo7tid|}|o|i}
|
d	}	qknN|i
dd	jo7tid|}|o|i}
|
d	}
qkn|d	jo,|d	jo|d	jo|	dGjoPqqW|d	jp|
p|	otS|
ido|	tid<d}t|d|	y^ti|dtdtddtidti}|i	\}}|i
djotSWqtSXntid|
o|
ido{yitdd}xS|D]K}|iido%|iid o|itS|iqWWnqXtSqntd!}|djo|td"7}n"|djo|td#7}n|d	jo|td$7}|d@d	jo|td%7}n|d@d	jo|td&7}n|d'@d	jo|td(7}n|d)@d	jo|td*7}n|d+@d	jo|td,7}n|d-@d	jo|td.7}n|d/@d	jo|td07}n|d1@d	jo|td27}n|d3@d	jo|td47}n|d5@d	jo|td67}n|d7@d	jo|td87}n|d9@d	jo|td:7}n|d7}n|d;7}|djo8|d<7}td=dtd>dtd?d@f}ntdAdtdBd@f}ti|ii|ititiB|}ti |}|i!i"|ttd	|i#|i$}|i%|djodH}yd
}xn|D]f}ti|dtdtddtidti}|i	\}}|i
}|dEjoPqGqGW|d	jotSt&SWqt'j
o}tdF|t&SXn%|djot&S|d@jotSt&S(Is
        Attempt to install a plugin using hp-plugin.

        @return: True if plugin not needed (or needed and installed),
        False on error.
        tURIs*LC_ALL=C DISPLAY= hp-info -x -i -d"${URI}"s: tshelltstdins	/dev/nulltstdouttstderriis
splugin s(\d+)s
plugin-reasonsfw-downloadRiRR<s^\s*model\s*(\S+)\s*$sHP Linux Imaging and Printings(\d+\.\d+\.\d+\w*)t3thp_modelsLC_ALL=C hp-mkuri -cis(/usr/share/hplip/data/plugin/*%s*plugin*t2s/etc/hp/hplip.confRtplugint1sCFor this printer a proprietary driver plugin from HP is available.
sFThe installation of the plugin is required for your printer to work.

sInstalling the plugin is optional, it completes or enhances the functionality
of your printer. Without plugin at least basic operations work.

s,The plugin provides the following features:
s - Printing support
s - Faster printing
is - Better printout quality
is - Extra printing features
i@s - Scanning support
is - Faster scanning
is! - Better scanning image quality
is - Faxing support
is - Extra fax features
i@s - Better Input/Output support
is! - Extra user interface features
is - Other extra features
s4Do you want to download and install the plugin now?
se
NOTE: The plugin is required for your printer. If you do not install it, your
printer will not work.sInstall pluginsDo not set up printersSet up without pluginitYestNos[if python -c 'import PyQt4.QtGui' 2>/dev/null; then gksu -- hp-plugin -u; else exit 255; fisJgksu -- xterm -T 'HPLIP Plugin Installation' -sb -rightbar -e hp-plugin -iis!Execution of hp-plugin failed: %sN(s[if python -c 'import PyQt4.QtGui' 2>/dev/null; then gksu -- hp-plugin -u; else exit 255; fisJgksu -- xterm -T 'HPLIP Plugin Installation' -sb -rightbar -e hp-plugin -i((tHP_PLUGIN_SUPPORTRRRRt
subprocesstPopenRxtPIPEtcommunicatet
returncodeRtsplittfindRRRQRxRtglobtopentstriptendswithRR5RtDialogRUR`R}R0R/RRRkR<R3R4RtOSError(RRtcmdRR{R|t
plugin_neededt
plugin_reasontfw_downloadthpmodelt
hplip_versiontlineR^R_tfRR?RRtbutton_clickedtcmdstinstall_resultR,((s9/usr/share/system-config-printer/system-config-printer.pyRbsX

		
	
				







	


		
	



c

Cs'|tid<d}t|d|yIti|dtdtddtidti}|i\}}WndSXd	}xy|i
d
D]h}|idd	joqnti
d|}|o|i}	|	d
}n|d
joPqqW|d
jodS|djodSdSdS(NRxs*LC_ALL=C DISPLAY= hp-info -x -i -d"${URI}"s: RyRzs	/dev/nullR{R|is
sfax-types(\d+)iisMFG:HP;MDL:Fax 2;DES:HP Fax 2;sMFG:HP;MDL:Fax;DES:HP Fax;(RRRRRRRxRRRRRRRRQ(
RtfaxuriRRR{R|tfaxtypeRR^R_((s9/usr/share/system-config-printer/system-config-printer.pytget_hpfax_device_id#s6
	
	

c	
Cs|tid<|djo
d}n|djo
d}nd}d|d}t|d|d}y^ti|d	td
tddtid
ti}|i	\}}|i
djodSWndSX|i}|S(NtHOSTtprints-ctfaxs-fshp-makeuri s
 "${HOST}"s: RyRzs	/dev/nullR{R|i(RRRRRRRRxRRRR(	RR!tmodetmodRRRR{R|((s9/usr/share/system-config-printer/system-config-printer.pyt!get_hplip_uri_for_network_printerBs*




		cCs!d}|djo
|i}n|djo|iid}|djo|d7}|i|id}|djo|i|id}n|djo|i|id}n|djot|i}n|i|||!}qn|o"|tid<d}t|d	|d}ycti	|d
t
dtdd
tidti}|i
\}}	|idjo
d}nWnnX|djoytidd|}tidd|}tidd|}
tidd|
}
|
o|
djo
|
|_qqnd}t|idjo
|i}n9t|idjo"|i}tidd|}n|o|iod}d}
tii|\}}
d|d|
d|d|
d|_ti|i|_d||
f|_|i|_n||fS(s
        Try to determine the make and model for the currently selected
        network printer, and store this in the data structure for the
        printer.
        Returns (hostname or None, uri or None).
        s://iit:Rt?Rs$/usr/lib/cups/backend/snmp "${HOST}"s: RyRzs	/dev/nullR{R|is
^\s*\S+\s+Rs\s.*$s^\s*\S+\s+\S+\s+"s"\s+.*$is\s*(\(|\d+\.\d+\.\d+\.\d+).*$sMFG:s;MDL:s;DES:Rt;s%s %sN(RRURRRRRRRRRRxRRRRtsubRR`RRRRR
RW(RR!RURRR,RR{RR|tmmRtmktmd((s9/usr/share/system-config-printer/system-config-printer.pyROYsh








	

	)c		Csd|_titititi}tidht	dd6}t
|}|g|_|idd|i|tg|iddt	ddtg}hdd6t	d	d6}tid|}|i|d|dt
|tg}|i||dddtg||_||_t|_|ii||iid|ii|it|id
htd6d|id|tf|_dS(
NiRtOthersdevice-infoR2sNetwork PrinterRssdevice-classsFind Network PrintertkwargstcallbackR^( tdevice_selectedRRRRRtTYPE_BOOLEANRRR5RtdevicesR*Rtget_infoRtinsert_afterRtdevices_find_nw_itertdevices_network_itertdevices_network_fetchedRRzRRR~R?RtTimedOperationRltgot_devicesR(	Rtcurrent_uriR<tothert	physothertnetwork_itertnetwork_dictRstfind_nw_iter((s9/usr/share/system-config-printer/system-config-printer.pyRs:	"
			


	cCswd|_|i|\}}|o y
|WntnXdS|pH|tf}|it|idhtd6d|id||_nt	i
d|i|}|o|i|o|i
|}q5|i|iddo%|idd}|i
|}q5ti|}d|_n|i}x:|D]2}|id	jo|iidd|_qHqHWd
}	t|	|}xtt|dD]}
xt|
dt|D]}||
}||}
|idjp|
idjoqn|i|
ijog|ip
d|_q|
ip
d|
_qt|it|
ijo
d|_qd|
_qqWqWtd|}g}xw|D]o}t|}y*|ii|}
|i|
i|Wqtj
o$|ii||i|qXqW|ii |ozt|}y7|ii|}
|i|
i||i|
}Wqtj
o$|ii||i|qXnd}|i!i"}|i#}|i$}x|D]}|i%}|d
i&dj}|i'}||jo|t(d7}n||t)g}|o|d
i|d
ijoO|i*||d|}||jo&|i+|}|i!i,|t)qq5|i|d|}nm|i-}xE||jo7|i.|d}||joPn|i/|}qW|i*d|d|}||joN|i+|}|i!i0|dd|i!i1d
}|i!i2||qqWd
}|oz|i3i"}|i-}d
}
x|oJ|i.|d}||ijo|
}Pn|i/|}|
d7}
qWn4|i4p)|i!i1d
}|i!i2d|n|i3i1d
}|i3i2||dS(NRRsRR^is:9100RsCurrent deviceR~cSs>|idjo
d|_n|idjo
d|_n|S(Nshp:/no_device_foundRnshpfax:/no_device_foundR}(R(RU((s9/usr/share/system-config-printer/system-config-printer.pytreplace_generics


tdeletecSs
|idjS(RnR}RlRmRqRoR(shpshpfaxRlRmRqshttpR(R(R((s9/usr/share/system-config-printer/system-config-printer.pyR	sis
 (Current)R2t	row_aligng?(i(5RRRRRRRRlRRRR7RtpopRRRR`RRQRRR1RRtfilterRRR9t
add_deviceRR*R:RR&RRtget_devicestdevice_classRR5Rt
insert_beforeR't
expand_rowRRR9tscroll_to_cellt
get_columnRRR(RR=RR^RRsRtcurrentRURR$tjtdevice1tdevice2t
newdevicestphysicaldevicetcurrent_deviceR<RRtdevsR`R2R5tnetwork_pathtphysdevtdevice_select_pathRtconnection_select_pathtdev((s9/usr/share/system-config-printer/system-config-printer.pyRs	



	
 	

 




		
		
	




cCs|idS(N(R(Rtentry((s9/usr/share/system-config-printer/system-config-printer.pyton_entNPTDevice_changedZsc
Cs=|i}|i|i|idddY}|}tii|_td|_	d|_
|id|gxt
iot
iq|Wd}to
d}nti|i}tiid|d|i}d}y]xV|idjoBy|id	i}Wqtj
o}|i|qXqWWnVtj
o=\}}	|tijotd
t||	fqntnX|i|o_x\|D]P}
|
itiitii gjo(|id|
g}|i|}qqWnt!d|i"i#}
|
i$\}}}}}t%|djoddd
Y}|}tii |_||_	d|_
|id|g}|i|}|i&|}|i'i(|dn|i)|i|i*djo;|ii+t,tdtddt-d|i.ndS(sInitialise the SMB tree store.tXcBseZRS((RR(((s9/usr/share/system-config-printer/system-config-printer.pyRdssScanning...Rii
tdebugtauth_fnssmb://sRuntime error: %sRt	FakeEntrycBseZRS((RR(((s9/usr/share/system-config-printer/system-config-printer.pyRssNo Print Sharess{There were no print shares found.  Please check that the Samba service is marked as trusted in your firewall configuration.s

RN(((/RRjRnRtpysmbtsmbct
PRINTER_SHAREt	smbc_typeR5RtcommentR*RRRjRkt
get_debuggingtAuthContexttContextRtperform_authenticationtopendirtgetdentsR.tfailedRterrnotENOENTRtreprRt	WORKGROUPtSERVERR
RRtseparateRR'RRRoRR?RRPR}(RRRtdummyRt	smbc_authtctxtentriesR,RRR5R$t
specified_uriRR!R,RtpasswordRttoplevelR4((s9/usr/share/system-config-printer/system-config-printer.pytbrowse_smb_hosts_st	
		


"
			

cCs#|ii|}|ii|S(s9Don't allow this path to be selected unless it is a leaf.(RR(titer_has_child(RR4R5((s9/usr/share/system-config-printer/system-config-printer.pyRscCsF|i|d}d}|djo
|i}n|id|dS(NiRR(RRRR(RRRR<R5RR,((s9/usr/share/system-config-printer/system-config-printer.pyRs


cCsF|i|d}d}|djo
|i}n|id|dS(NiRR(RRRR(RRRR<R5RR((s9/usr/share/system-config-printer/system-config-printer.pyRs


cCs|i}|i|}|i|d}|o(|itiijo|iidS|i	|o|i
|n|i|||dS(s*Handle double-clicks in the SMB tree view.iN(RR(RRRRRRRtrow_expandedtcollapse_rowton_tvSMBBrowser_row_expanded(RtviewR4RRR5R((s9/usr/share/system-config-printer/system-config-printer.pyton_tvSMBBrowser_row_activateds	
cCs|i}|i|d}|djodS|itiijoy|iodSWnd|_nX|i|i	d|i
}d}to
d}nti|i	}tii
d|d|i}	g}
y]xV|idjoBy|	i|i}
Wqtj
o}|i|qXqWWnVtj
o=\}}|tijotdt||fqntnXx4|i|o#|i|d}
|i|
qWxr|
D]j}|itiitiigjo|i||g}
n|itiijo|i|
}qqW|i |d|`|i!|i	n!|itiijo
y|iodSWnd|_nX|i|i	d|i
}d}to
d}nti|i	}tii
d|d|i}	g}y]xV|idjoBy|	i|i}Wqtj
o}|i|qXqWWnftj
oM\}}|ti"jo.|ti#jotdt||fqntnXx4|i|o#|i|d}
|i|
qWxM|D]E}|itiijo)|i||g}
tt|qqW|i |d|`|i!|i	ndS(	s1Handler for expanding a row in the SMB tree view.iNis	smb://%s/i
RRsRuntime error: %s($R&RRRRRRt
expanding_rowRnRRRRRRRRRR.RRRRRRRRtiter_nth_childR+RRR*RRotEACCEStEPERM(RRR5R4R<RRRRRRR,RR$RItsharesR,((s9/usr/share/system-config-printer/system-config-printer.pyRs

	



"
	



 "cCs|i}td|i\}}}}}|o|ii|n|o|ii|n|p|oBtd|d|d|i}|i||iit	n+|iidjo|i
it	n|iit
||idS(NRRR!R,R(RR
RRRRtget_uriRRRRRR[RR(RtentRRR!R,RR((s9/usr/share/system-config-printer/system-config-printer.pyton_entSMBURI_changed)s$!
cCs|iii\}}t}|o6|i|d}|o|itiij}q^n|i	i
|djo|dS(Ni(RR#RhRRRRRRRR[R(RR@RR5tis_shareR((s9/usr/share/system-config-printer/system-config-printer.pyton_tvSMBBrowser_cursor_changed:scCs+|iit|ii|idS(N(RR[RRR<R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSMBBrowse_clickedDs
cCsP|iii\}}t}|o6|i|d}|o|itiij}q^n|p|o|i	i
dS|i|}|i|}|i|d}|i|d}	|o|i|di}
nd}
t
d|
d|	id|ii}|iid|iid|ii||i	i
dS(NiRRR!R,(RR#RhRRRRRRRR?titer_parentRR
RRRRR(RRRR5RRtparent_itertdomain_iterR,R!RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSMBBrowseOk_clickedIs.
	cGs|iidS(N(RR?(RR@R((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSMBBrowseCancel_clickedgscCs|idS(N(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnSMBBrowseRefresh_clickedjscCs|ii|idS(N(RR[Rq(RR@((s9/usr/share/system-config-printer/system-config-printer.pyton_rbtnSMBAuthSet_toggledmscs|ii}td|i\}}}}ddd}|ii}|o"|ii|iint	}	t	}
|i
y@d}to
d}n|o\fd}ti
id|d|}
|
id||ftid	}t}	nti|id
dd}ti
id|d|i}
xi|idjoUy,|
id||ftid	}t}	WqXtj
o}|i|qXXqXW|	p
t}
nWnHtj
o/\}}td
t||f|}ntnX|i|	o'ttdtdd|idS|
p=td}|o
|}nt td|d|indS(NRRii
cs
fS(N((tsvrtshrtwgtuntpw(RtpasswdR(s9/usr/share/system-config-printer/system-config-printer.pytdo_authsRRssmb://%s/%sit	workgroupRRsError accessing share: %ssPrint Share VerifiedsThis print share is accessible.Rs#This print share is not accessible.sPrint Share Inaccessible(!RRR
RRRRqRRRRnRRRRRRtO_RDWRRRR}RRR.RRRRRRoRR5R(RRRR!R,tuRRtauth_sett
accessibleRRRRRRR,RR((RRRs9/usr/share/system-config-printer/system-config-printer.pyton_btnSMBVerify_clickedpsn$



	




cCs|ii}|ii}t|djo
|dj}|oGd|ii||f}|ii||ii|iin|ii	|i
i||idS(Nis
/printers/s	%s://%s%s(
RRRRRURQRRR<R?RR[R(RthostnameRRhR((s9/usr/share/system-config-printer/system-config-printer.pytupdate_IPP_URI_labels

cCs&t|idj}|idS(Ni(RRR(RRRh((s9/usr/share/system-config-printer/system-config-printer.pyton_entNPTIPPHostname_changedscCs|idS(N(R(RR((s9/usr/share/system-config-printer/system-config-printer.pyton_entNPTIPPQueuename_changedsc	s|iiti\}}ti|\}}t}|djoZti|dd\ido
t	i
n
t	ifd}t|}|i
idtddtd|ii|i|ii|i|itid	|i}y|i}	t}WnQtj
on@t	ij
o#\}
}td
||
fntnXti||iint|o&t tdtdd
|in t!tdtd|idS(Ntdefportiwshttps:cs.tiddd}|idS(NR!RHRR(RRRV(R(RRR!RH(s9/usr/share/system-config-printer/system-config-printer.pytget_attributess	s"<span weight="bold" size="larger">t	Verifyings	</span>

sVerifying printeri's!Failed to get attributes: %s (%d)sPrint Share VerifiedsThis print share is accessible.RtInaccessibles#This print share is not accessible.("RRRRt	splithostRRt
splitnportRRRRRRRR5RR~R}R<RnRRRCR3RtOperationCanceledR$RRt
source_removeR?RR(RRRRthostporttverifiedR#toptsourceRVR,Ru((RHRR!Rs9/usr/share/system-config-printer/system-config-printer.pyton_btnIPPVerify_clickedsJ

		



	cCsP|i}|i|\}}}}|i}|i|||||dS(N(t
get_parenttquery_child_packingtget_expandedtset_child_packing(RR@RRRRtpaddingt	pack_type((s9/usr/share/system-config-printer/system-config-printer.pyRs
	cCs|i|dS(Ni(R(RR<R5((s9/usr/share/system-config-printer/system-config-printer.pyR
scCs5|i|o|i|n|i|tdS(N(RRRR(RRR4R((s9/usr/share/system-config-printer/system-config-printer.pyR
scCsV|ii}|i|}|i|ddjotS|i|i|dtS(s
        Allow this path to be selected as long as there
        is a device associated with it.  Otherwise, expand or collapse it.
        iN(RR&R(RRRRR(RR4R<R5((s9/usr/share/system-config-printer/system-config-printer.pyRsc	Csb|id7_|i\}}|djodS|i}|i|}|i|d}|djodSxD|iD]6}|idjotd|_	q|idjotd|_	q|idjotd|_	q|idjotd	|_	q|id
jo!tddtd	|_	q|id
jotd|_	q|idjotd|_	q|idjot
i|i\}}	t
i
|	\}
}	t
i|	\}}	|ddjo|d}n|djotd||_	qtd|_	q|idjotd|_	q|idjotd|_	q|idjp|idjotd|_	q|i|_	qWtitti}|ii||idtjot}t}
hdd 6}x|iD]}|idjot}Pq|id(jot
i|i\}}	t
i
|	\}
}	|
djo\t
i|
\}}t}
|id!|d"||i|d#<|i|d$<|i|d%<qqqW|o|
o|i|d&}|oti ||}d	|_	|i!||i|d'}|oc|i"|}||d%<td|d#<ti ||}tddd	|_	|i!|qn|i#dtqnd}x4|iD]&}|i$|i	|f|d7}qW|ii%d}|ii&d||djo|i'i(n|i'i)dS()NiRjs
Parallel PortRrsSerial PortRktUSBRns%HP Linux Imaging and Printing (HPLIP)R}Rzs - Rls Hardware Abstraction Layer (HAL)R~sAppSocket/HP JetDirectRiRRsLPD/LPR queue '%s's
LPD/LPR queueR|sWindows Printer via SAMBAR{tIPPRoRptHTTPs
checked-hplipRssdevice-classR!RUsdevice-infosdevice-make-and-models	device-idRR(ssocketslpdsipp(*RRmRR&R(RRRQR5t	menuentryRRRR&t
splitqueryRRwRyRRRRzR*RRt	splitportROR`RRRRRRRR!R*RRR~RCR?(RR@R4RR<R5RRURRR*Rthp_drivablet
is_networkRR!RHthplipuriRRtfaxdevidtfaxdevRI((s9/usr/share/system-config-printer/system-config-printer.pyton_tvNPDevices_cursor_changed s




 	




			
		




cCsU|i\}}|djodS|i}|i|}|i|d}||_|iid|ii	|i
d}|ii|d}|i
}	|i
iddd}
|djo|i
djotd}n|i
djotd	}nj|i
d
jotd}nJ|i
djotd
}n*|i
djotd}n
|i
}|ii|n%|i
djoti|i
\}}
d}d}|djoTti|
\}}
ti|d|\}}td|t|f|}n|ii||iit|nf|i
djo|ip|i
idd}|id}h}x-|D]%}|id\}}|||<qWxA|iddf|iddf|iddddgf|idddd d gffD]\}}}|i|o|djo|i}|i}d}x|oV|i	|dd}|||jo|i |Pn|i!|}|d7}q]Wq|i"||}|i |dq|i dqWqn|i
d.jo|i
i#ddjot$i%d$|i
}|o"|i&d%}|i&d&}n
d}d}|i'i||i(i||i)i|i
|i)i*|i(i*|}q|i'id|i(id'|i(i*|i)i+n|i
d(jo|i,i-id|i.i-id|i.ii/|i0i1t2t3|i
d)jo|i
d)}|i#d*}|djo||d}|| }nd}|i,i-i||i.i-i||}|i0i1t4qn|i
d+jo$|i5id|i6i1t2no|i
d+joK|i7id|i8id|i5i|i
d)|i6i1t4n|i9i|i
yt3|djog|ii:d,joT|i;i<d-jp|i;i<dd*jot=i>}|d}q%|i;i<}n|i?i|Wnt@nX|iAdS(/NiRRiiRjs)A printer connected to the parallel port.Rks"A printer connected to a USB port.RnsUHPLIP software driving a printer, or the printer function of a multi-function device.R}sUHPLIP software driving a fax machine, or the fax function of a multi-function device.Rls?Local printer detected by the Hardware Abstraction Layer (HAL).R~i#R"ssocket: host is %s, port is %sRrRt+t=tbaudtbitstparityRtoddteventflowtsoftthardR{RoRps(ipp|https?)://([^/]+)(.*)iis
/printers/RiRR|tdirectR(sippshttpshttps(BRmRR&R(RRUR}Rtnew_printer_device_tabsR)RQR|RnRRR5RRR&R'RRRRRyRRRRRRRRR9R9RRtmatchRRRRR<R?RRRRjRR[RRRRRRRRRRR!RtunameR{RR(RR@R4RR<R5RUR=RRQturlRRRR!RHR*Rtoption_dictRRRtoptionvaluesRRMRRR$R((s9/usr/share/system-config-printer/system-config-printer.pyt on_tvNPDeviceURIs_cursor_changeds
		
	
	

		








&cCs6|i}|iit|dj|idS(Ni(RRR[RR(RtcmbentR((s9/usr/share/system-config-printer/system-config-printer.pyton_cmbentNPTLpdHost_changed%scCs|ii}ti|}|iidtddtd|ii|i	|ii
|i|i|i}|ii
|ii}|ix|D]}|ii|qW|o|iidndS(Ns"<span weight="bold" size="larger">R3s	</span>

sSearching for printersi(RRt
probe_printert	LpdServerRRR5RR~R}tshow_nowRntprobeR?RR&RjRR(RRRRRR<R((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNPTLpdProbe_clicked*s"	


cCsC|i}|iit|dj|ii|idS(Ni(RRR[RRR?R(RRR((s9/usr/share/system-config-printer/system-config-printer.pyt on_entNPTNetworkHostname_changed@s
cs~ii}fd}iitiitd_iiti	}i
|i||dS(Ncstii|dS(N(tglibR+tfound_network_printer_callback(t
new_device(R(s9/usr/share/system-config-printer/system-config-printer.pytfound_callbackIsi(RRRR[Rt
network_foundRRCRUt
PrinterFinderRR(RRR!R^tfinder((Rs9/usr/share/system-config-printer/system-config-printer.pyton_btnNetworkFind_clickedFs	

cCs|o_|id7_t|}y|ii|}|i|i||ii\}}|ii}|i|}|i	|d|i|jo|i
|inWnytj
om|idt
|ii||ii|ii}|id|id|i|tg}nX|idjo#|i|}|ii|qnw|i|ii|iit
|iit
|idjo/|iidtdd|ii ndS(Nis
checked-hplipR2is<i>s%No printer was found at that address.s</i>(!R_RRR9RRRmR&R(RR@RR!RR*R:RRRRRR'RRRR?RR[RRRR5R<(RR]RR$R4RR<R5((s9/usr/share/system-config-printer/system-config-printer.pyR\Ts: 


	cCs|ii}|ii|d}|}|djo|ii}n|djoT|ii}|ii}|o+|d|7}|o|d|7}qqnu|d!jo*|ii	d	o|ii}qn>|d
joT|i
i}|ii}|o+|d|7}|o|d|7}q9qn|djog}x|i
d
df|iddf|idd"f|idd#ffD]f\}}	}
|i}|oD|
dj	o|
|d}n
|i}|i|	d|qqWdi|}|iiidd}|o|d|}qn|djo|ii}
td|
i\}}}}}d}d}|iio"|ii}|ii}ntd|d|d|d|d |i}
|
o|d|
7}qn|ii}|S($NiiR~s://RR{RoRpRRRRrRCRDRERRFRGRHRIRJRBRARR|RRRR!R,RR(sippshttpshttps(snonesoddseven(snonessoftshardshard(RURQRLR)RRRRRRRRRRRRRRRqR*R{RRR
RRRRRR(RRQR=RUR!RHRRR@RRQRRRRR,RRRR((s9/usr/share/system-config-printer/system-config-printer.pyRNzsp




		


$cCse|ii}|ii}|ii}|ii||ii||o
d}n|o
d}n|o
d}n|ii||ou|i	ok|i
i|i	d|_	|i
itdtitt}|i}|i||itnx'|i|igD]}|i|q W|ii|o
|i	dj|idS(NiiiR(RRqRRRR[RRRnRRRDRRRR5RRwRyRRzRRRR(RR@trbtn1trbtn2trbtn3R=R<R((s9/usr/share/system-config-printer/system-config-printer.pyRs6


		
	
	cCs|idS(N(R(RR@((s9/usr/share/system-config-printer/system-config-printer.pyt#on_filechooserPPD_selection_changedscCs|idjo |ii|id|_n|it|i}|itd|i	i
}|ii||i|_|i
itdS(NR3(RRRRDR[RRRR5RRtsearchPrinterstopenprinting_printers_foundR(RR@Rt
searchterm((s9/usr/share/system-config-printer/system-config-printer.pyt(on_btnNPDownloadableDriverSearch_clickeds

	c
CsHd|_|i}|i}tiiy|itd|i	t
|djo/|GHti|dddGHtii
dStitt}t|djoht|djotd}n
td}|id}|i|d||i|ddng}	x-|iD]\}
}|	i|
|fq'W|	id|iii}d}
xs|	D]k\}
}|id}|i|d||i|d|
|i|jo|i|d}
q|q|W|i}|i||i|
|i	t
|iWntnXtii
dS(	NRiiRis -- Select from search results --s-- No matches found --cSsti|d|dS(i(Rt	modelSort(RR((s9/usr/share/system-config-printer/system-config-printer.pyR		s(RRRRRRRRR5R[Rt	tracebackt
extract_tbRRwRyRR*R5RR:RRR~R'RRzRRR(RRt	user_dataRRRR<tfirstR5tsorted_listRRtsoughttselect_indexR((s9/usr/share/system-config-printer/system-config-printer.pyRhsT			




	


cCs|i|idjo-|ii|id|_|iin|i}|i}|o|i	|d}nd}|djodSt
d||iidt}|i
od|d<n|ii||id||_dS(NisQuery drivers for %siRtonlyppdfilest
extra_options(RRRRRDRR$R&RRRR#RRtlistDriverstopenprinting_drivers_found(RR@R<R5RRt((s9/usr/share/system-config-printer/system-config-printer.pyt/on_cmbNPDownloadableDriverFoundPrinters_changeds(
	
	
	cCsf|djo"|GHti|dddGHdSd|_||_td|i|iidS(NiiRsDrivers query completed: %s(	RlRmRRtdownloadable_driversRRRR$(RRRntdrivers((s9/usr/share/system-config-printer/system-config-printer.pyRv9s
		cCsX|iid|iid|iid|iid|iit|ii	|i
}tit
ti}d}d}xy|iD]k}|id}|djo
|}n|i|d|d|i|d||do
|}qqW|djo
|}n|i}|i||djo|ii|ndS(NRiRitrecommended(RRRRRRRRRR?RxRRwRyRRRRR*R5RRzR#Rl(RRyR<trecommended_itert
first_itertdriverR5R;((s9/usr/share/system-config-printer/system-config-printer.pyR[Es4
		




	

cCs|idS(N(R(RR@((s9/usr/share/system-config-printer/system-config-printer.pyt on_rbtnNPDownloadLicense_toggledfsc	CsO|ii}|ii}|it}|ii}xx|D]p}|i|f}|i|joE|i	|}|ii
||ii|dt
ddt
}qDqDW|p0|ii
d|iiddt
ddnd}|idjo6||i7}|idjo|d|i7}q;n|ii|dS(Ng?igRR(RtgetMakesRR&RjRRR~R*R'RRRRRRR(	RtmakesR<tfoundtauto_make_lowerRbR5R4R((s9/usr/share/system-config-printer/system-config-printer.pyRks.

 
cCse|i\}}|djoB|i}|i|}|i|dd|_|indS(Ni(RmRR&R(R)tNPMaket
fillModelList(RRR4RR<R5((s9/usr/share/system-config-printer/system-config-printer.pyton_tvNPMakes_cursor_changeds
c	Cs6|ii|i}|ii}|it}|ii|iij}|o|i	i}nx|D]w}|i
|f}|oX|i|joE|i|}|ii||ii
|dtddt}qsqsW|p0|iid|ii
ddtddn|iidS(Ng?ig(Rt	getModelsRRR&RjRR~RRR*R'RRRRtcolumns_autosize(	RtmodelsR<tselectedtis_auto_maketauto_model_lowertpmodelR5R4((s9/usr/share/system-config-printer/system-config-printer.pyRs(

 c
Csf||_|ii}|i|ii||}|ii|i|i|_	xt
t|i	D]}||i	|}|d}|idd}yd|d}||7}Wnt
j
onX|djoa|i|tdf}	|i|	}
|iii|
|ii|
dtddqn|i|fqnW|iidS(	Nsppd-make-and-models (recommended)Rs [%s]sppd-natural-languageig?g(tNPModelRR&RjRtgetInfoFromModeltorderPPDNamesByPreferenceRRt	NPDriversR1RRRR*R5R'R#RORRRR(RtpmakeRR<RR$RR}tlpostfixR5R4((s9/usr/share/system-config-printer/system-config-printer.pytfillDriverLists.	


 c
Cs|o&|id}|djotSnG|i||\}}|i||}	|	djotS|	d}|i|d}
|ii|
}|d}|
ido|d7}|t	d7}n|i
|tS(Nisppd-make-and-models	foomatic:Rs"This PPD is generated by foomatic.(RmRRt#convert_widget_to_bin_window_coordsRMRRRRR5RR(
RttvRRt
keyboard_modettooltipR4tbin_xtbin_yRt
drivernameRR((s9/usr/share/system-config-printer/system-config-printer.pyRs"
	




cCs{|i\}}|djoX|i}|i|}|i|dd}|i|i||i|indS(Ni(	RmRR&R(R)RRton_tvNPDrivers_cursor_changedR(RR@R4RR<R5R((s9/usr/share/system-config-printer/system-config-printer.pyton_tvNPModels_cursor_changeds
cCs|idS(N(R(RR@((s9/usr/share/system-config-printer/system-config-printer.pyRsc	Cs]|ii\}}|p%|i\}}|i|}n|i|d}ddk}|i||iid|idt	d}|i
}	|d}
d}||	|
|ii||idt	d}|i
}
|i}||
|d	|||d
|ii||idt	d}|ii||d
}xddddgD]}|i}d}|iid|}|iid|}|i|oN|oCy5t||}|i||i|iWqqXqn|djo|i|iqqqqWd}|idox|dD]}|dod|d}d}|do||d}n|do-|o|t	d}n||d}n|o7|t	d|}|o|d}n||}qq]q]Wn|pt	d}n|ii||ido?|ii|idt	d}|iii|n|ii|d o:|d	o.|ii t!|ii|i"inf|i"i t!|ii|i"i|ii|idt	d}|iii||i#dS(!NiitsupplierRtmanufacturersuppliedcSs!|i||id|dS(NR(RR!(R@R,((s9/usr/share/system-config-printer/system-config-printer.pytset_protect_actives
tlicenset
DistributabletpatentstfreesoftwaretshortdescriptionRt
functionalitytGraphicstLineArttPhototTextshsDownloadableDriverPerf%ss"lblDownloadableDriverPerf%sUnknownRtsupportcontactsRs - RORs, s
(%s)s
sNo support contacts knowntlicensetextsNot specified.tnonfreesoftware($R#RhRmR(RtpprintRRnR)R5RRRRRRRRR~RR\RRxR5RCR?RRR<Rt
get_bufferRRRRR(RR@R<R5R4RR}RRtvendorR,RRRtfreetdescriptionRtfieldtkeyRthstunknownRtsupportentrytsupportcontacttsupportcontact_extratterms((s9/usr/share/system-config-printer/system-config-printer.pyt)on_tvNPDownloadableDrivers_cursor_changeds
	
	
		











cCs@y|iio?|iii\}}|i|d}|i|}nX|iioti	|i
i}n,|i}|ii\}}|i
|d}|idot|ddjo|dd}td|d|i}t|djoti|}|i}	|iti\}
}t|ti|
d}|i|	|iti	|}ti|qqnWntj
o}
tdt|
|iiotd}td	}|iii\}}|i|d}|i|}|id
otdd}q/|||i |i!f}n|iiotd
}|i
i}tdd}yVt"i#dd|gdt$ddt"i%dt"i%}|i&\}}||7}Wq/q/Xntd}td}t'|||i(dSXtdt*|t+|tpt+|t,o|i-ii.tdyF|djo5|i-ii/|}ti	|}ti|nWnJtj
ot0tdn(ti1j
ot0tdnX|i-ii2n|S(NiiRsppd file to download [t]RsRuntimeError: sDatabase errors4The '%s' driver cannot be used with printer '%s %s'.t
gutenprintsFYou will need to install the '%s' package in order to use this driver.sgutenprint-foomatics	PPD errors2Failed to read PPD file.  Possible reason follows:s
s/usr/bin/cupstestppds-rvvRzs	/dev/nullR{R|sDownloadable driverssFailed to download PPD.sppd: sfetching PPDRJs/libcups from CUPS 1.3 not available: never minds)CUPS 1.3 server not available: never mind(3RRqRR#RhR'RRRRYRRgRRRRRRRturlopentreadRRRRtfdopenRRRRyR5RRRRRRxRRRR}RRRRRRtgetServerPPDRR$R(RR<R5RRR;R}tfile_to_downloadt	ppdurlobjt
ppdcontentRRtppdfileR,t	err_titleterr_textterrtfilenameRR{R|R((s9/usr/share/system-config-printer/system-config-printer.pyRX?s	




				 
cCstdt|_h|_|i}x!|iD]}|i|q2W|ip;ti	t
d}|i||itddSx|ii
D]}|idjoqnt|_tiddt}|id|id|i|d}xt|iD]}\}}|id	joqn|d7}|i|dt||i|}	|i|	idd||ddddd	ti}
|	iotid
d
dd}|idddd|i|	i|i|dd||dtiddd	|i|
dd||dtiddd	n-|i|
dd||dtiddd	|
i|	it|	|i|i<qWqW|ip0ti	t
d}|i||in|i i!|i i"dS(
NsExamining installable optionssNo Installable Optionss No PPD so no installable optionsRiiiiRg?g?i(#RRRRRRR+RRRR5R?R<RRRRRRRRRRR=RRRRRRRkRRR?RC(RRRtlRRR0RRRRR((s9/usr/share/system-config-printer/system-config-printer.pyRZs^
			





	



,
,0,


cCsw
|io$|iid|_|in|idjoCt|ii}t|ii}t|i	i}n|i
ii}t
}d}|i}|idjopt|i}y+x$|D]}	|i
ii|	|qWWqtij
o \}
}|i|
|dSXn_|idjp|idjo>d}|iio|ii}n
|i}|ip|iddSx!|iiD]}
|
iqW|i|ixtioti qW|i
ii!t"d|yt#|t$pt#|to5|i
ii%|d|d|d|d	|t&}n|djo)|i
ii%|d|d|d	|nOt'i(||i)d
|i
ii%|d|d|d|d	|t&}|}Wntij
o@\}
}|i*|i|i|
||i
ii+dS|i*|i|i
ii+t,dnX|i
ii+|i*|in|idjo|i
ii!t"d
|yFt'i-|i
i||i
ii.|||i
ii/||Wn?tij
o0\}
}|i|
||i
ii+dSX|i
ii+n|idjo|i
ii!t"d
|yK|i}|i0|p|i1ddS|i
ii%|d|Wn?tij
o0\}
}|i|
||i
ii+dSX|i
ii+n|idjo|p0|i2}|_|p|iddSn|i
ii!t"d
|t
}t#|t$pt#|toY|i3i4oRy|i
ii%|ddWqtij
o\}
}|i|
|qXny|i
ii%|d|Wn?tij
o0\}
}|i|
||i
ii+dSXy5|i
ii5|}ti6|}t7i8|Wqtij
oM\}
}|
ti9jo
t&}q|i|
||i
ii+dSqXn|i3i4o3t#|i
iti6ot'i:|i
i|n<x!|iiD]}
|
iqQWt'i(||i)d
y|i
ii%|d|Wn.tij
o\}
}|i|
|nX|i
ii+|pt&}|}qn|ii;|i
i<|i
i=}|i>}|i?}x|djot|i@|d}||joN|iA|}|iB|t&dd|iC|iD||iE|Pn|iF|}q6W|i
iG||i
iHiDd|oy|iI|d|WntJnXyh|i
iKd}
|
iLdjoAtMd|
iN|i
iOiP|
|i
iQ|i
inWq	tRj
oq	tJq	Xn|idjp|idjo|i
it
jotiS|i
iTtiUtiVBtiWtiXt"d}|iY}|iZ|ti[jo4|i
i\||i
i]i;|i
i^i_qs
ndS(NR-RRTisadding printer %sRRUR`RiRismodifying printer %sRJig?RsInvalid media option: resettings$Would you like to print a test page?(sclasssprintersprinter_with_uri(sclasssprintersprinter_with_uri(i(`RRCRRRRRyRR{RzRRRRRR>RRRJR$R%RURRNRRRXRgRnR}RRjRkRR5RRyRERRtsetPPDPageSizeRRoRtfatalExceptiontactivateNewPrinterRMRLRR	RXRRqRRYRRt
IPP_NOT_FOUNDtcopyPPDOptionsR?RRKR&RRR'RRNRROR9R#RitcheckDriverExistsRRRRRRR?R7RR.RHR/R0tMESSAGE_QUESTIONRFR3R4RfRRhR|R(RR@RRR`tchecktcheckppdRtmembersRcR,RuRRRJRRKR<R5RR4tqR((s9/usr/share/system-config-printer/system-config-printer.pyton_btnNPApply_clickedsn

		




 




	 











c
Cs`ti}|djp(|djp|djp|ddjpdS|py|iii|}WnGtij
o8\}}|tijodS|i||dSnXti|}ti	|nt
i|\}}t|djpt|djoNt
}	t|djo$yti}
t}	WqKqKXn|	ot|djo|d}dtdd	td
||f}|i}
|ii||
i|ii|
i}|
i|tijo7y)|iiii}|
i|d|Wq q XqXq\ttdtd|||df|iindS(
sCheck that the driver for an existing queue actually
        exists, and prompt to install the appropriate package
        if not.

        ppd: cups.PPD object, if already createdRs	127.0.0.1s::1iRNs"<span weight="bold" size="larger">sInstall drivers	</span>

sGPrinter '%s' requires the %s package but it is not currently installed.sMissing driverswPrinter '%s' requires the '%s' program but it is not currently installed.  Please install it before using this printer.(RR RRR$RR%RYRRRtmissingPackagesAndExecutablesRRtinstallpackaget
PackageKitRR5RRRR~RHR3R?RR5RhtxidtInstallPackageNameR(RRRRRR,Rutpkgstexestcan_installtpktpkgtinstall_textRRR((s9/usr/share/system-config-printer/system-config-printer.pyRsV		&

		
	(\RRRLRRRRRRRR%RR(R.R"R%RRR7R8R>RRRR?R@RARBR	RERFRRRkRlRRRRORRRRRRRRRRRR	R
RRRRRR R!R.RRRRR@RRRTRYRZRbR\RNRRfRjRhRwRvR[R~RRRRRRRRRXRZRR(((s9/usr/share/system-config-printer/system-config-printer.pyR{
s
									/		#								#		-			? 			H					`		
						B				1				
	o						&	>	"			0			!										]	c	8	cCsytitiidtitiit	||||||}ti
idotinti
dS(Nt	CUPS_USERtmain(RRRRR)R$RRtthreads_initRCR\RRtmainloop(RRRR(RR)t
mainwindow((s9/usr/share/system-config-printer/system-config-printer.pyRs"
t__main__ssetup-printer=sconfigure-printer=schoose-driver=sdevid=sprint-test-page=sno-focus-on-mapRs--configure-printers--choose-drivers--print-test-pages--setup-printers--devids--no-focus-on-maps--debug(vRRtsysRRRRRlRRRRRtsignalRttimedopsR(t	gtk.gladeRRR,texitR[Rtabout_dialog_set_url_hooktabout_dialog_set_email_hookR
RtargvRtrequiretppdSetConformancetPPD_CONFORM_RELAXEDRjRRRRRRRtgladeRt
optionwidgetsRRRURRR>R5RRtsmburiR
R'RR>tAdvancedServerSettingsRRRRtGroupsPaneModelRRRRRRRRRRRR5tset_gettext_functiont
textdomaintbindtextdomaint	localedirRR.t
pkgdatadirR|R4R{RR*RtCursortWATCHRiRPtCUPS_SERVER_REMOTE_ANYRHRR"R7R>RBR\RCR{RRRtgetoptt
gnu_getoptRRtGetoptErrorRRRRR)R(R%toptargt
set_debugging(((s9/usr/share/system-config-printer/system-config-printer.pyt<module>s>`
			*














	
				
	1,	
















Youez - 2016 - github.com/yon3zu
LinuXploit