Skip to content

Commit 35969a3

Browse files
authored
Merge pull request #376 from lazyDesertMan/master
#375 Add checkbox for sharing when adding a printer
2 parents 1974d95 + 7c9e377 commit 35969a3

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

newprinter.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

ui/NewPrinterWindow.ui

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,36 @@
219219
<property name="position">2</property>
220220
</packing>
221221
</child>
222+
<child>
223+
<object class="GtkFrame" id="isSharedFrame">
224+
<property name="visible">True</property>
225+
<property name="can-focus">False</property>
226+
<property name="label-xalign">0</property>
227+
<property name="shadow-type">none</property>
228+
<child>
229+
<object class="GtkCheckButton" id="isSharedCbx">
230+
<property name="label" translatable="yes">Use sharing</property>
231+
<property name="visible">True</property>
232+
<property name="can-focus">True</property>
233+
<property name="receives-default">False</property>
234+
<property name="draw-indicator">True</property>
235+
</object>
236+
</child>
237+
<child type="label">
238+
<object class="GtkLabel" id="isSharedTitle">
239+
<property name="visible">True</property>
240+
<property name="can-focus">False</property>
241+
<property name="label" translatable="yes">&lt;b&gt;Shared&lt;/b&gt;</property>
242+
<property name="use-markup">True</property>
243+
</object>
244+
</child>
245+
</object>
246+
<packing>
247+
<property name="expand">False</property>
248+
<property name="fill">True</property>
249+
<property name="position">3</property>
250+
</packing>
251+
</child>
222252
</object>
223253
<packing>
224254
<property name="expand">True</property>

0 commit comments

Comments
 (0)