@@ -250,6 +250,7 @@ def __init__(self):
250250 "entNPName" ,
251251 "entNPDescription" ,
252252 "entNPLocation" ,
253+ "isSharedCbx" ,
253254 "tvNPDevices" ,
254255 "ntbkNPType" ,
255256 "lblNPDeviceDescription" ,
@@ -621,6 +622,19 @@ def init(self, dialog_mode, device_uri=None, name=None, ppd=None,
621622 nonfatalException (e )
622623 return False
623624
625+ self .cups ._begin_operation (_ ("fetching server settings" ))
626+ try :
627+ server_settings = self .cups .adminGetServerSettings ()
628+ except cups .IPPError as e :
629+ (e , m ) = e .args
630+ show_IPP_Error (e , m , self ._parent )
631+ self .cups ._end_operation ()
632+ raise
633+
634+ self .cups ._end_operation ()
635+ self .isShared = server_settings .get (cups .CUPS_SERVER_SHARE_PRINTERS ,
636+ '0' ) == '1'
637+
624638 try :
625639 self .printers = cupshelpers .getPrinters (self .cups )
626640 except cups .IPPError as e :
@@ -754,6 +768,7 @@ def _initialisePPDMode (self):
754768 def _initialiseWidgetsForMode (self , mode_name ):
755769 self .entNPName .set_text (self .makeNameUnique (mode_name ))
756770 self .entNPName .grab_focus ()
771+ self .isSharedCbx .set_active (self .isShared )
757772 for widget in [self .entNPLocation ,
758773 self .entNPDescription ,
759774 self .entSMBURI , self .entSMBUsername ,
@@ -4320,8 +4335,10 @@ def on_btnNPApply_clicked(self, widget):
43204335 name = self .entNPName .get_text ()
43214336 location = self .entNPLocation .get_text ()
43224337 info = self .entNPDescription .get_text ()
4338+ isShared = self .isSharedCbx .get_active ()
43234339 else :
43244340 name = self ._name
4341+ isShared = self .isShared
43254342
43264343 ppd = self .ppd
43274344
@@ -4391,6 +4408,7 @@ def on_btnNPApply_clicked(self, widget):
43914408 cupshelpers .activateNewPrinter (self .cups , name )
43924409 self .cups .setPrinterLocation (name , location )
43934410 self .cups .setPrinterInfo (name , info )
4411+ self .cups .setPrinterShared (name , isShared )
43944412 except cups .IPPError as e :
43954413 (e , msg ) = e .args
43964414 self .show_IPP_Error (e , msg )
0 commit comments