~ubuntu-branches/ubuntu/wily/system-config-printer/wily

« back to all changes in this revision

Viewing changes to serversettings.py

  • Committer: Package Import Robot
  • Author(s): Till Kamppeter
  • Date: 2014-08-05 23:59:59 UTC
  • mfrom: (256.1.1 utopic-proposed)
  • Revision ID: package-import@ubuntu.com-20140805235959-v1yzis5mo1nkxo2m
Tags: 1.5.0+20140805-0ubuntu2
debian/control: Build-depend on Python 3 (python3-all-dev).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python
 
1
#!/usr/bin/python3
2
2
 
3
3
## system-config-printer
4
4
 
22
22
 
23
23
import config
24
24
import gettext
25
 
gettext.install(domain=config.PACKAGE, localedir=config.localedir, unicode=True)
 
25
gettext.install(domain=config.PACKAGE, localedir=config.localedir)
26
26
import cups
27
27
import dbus
28
28
from gi.repository import GObject
131
131
 
132
132
    def _fillAdvanced(self):
133
133
        # Fetch cupsd.conf
134
 
        f = tempfile.TemporaryFile ()
 
134
        f = tempfile.TemporaryFile () # mode='w+b'
135
135
        try:
136
136
            self.cupsconn.getFile (self.RESOURCE, file=f)
137
137
        except cups.HTTPError as e:
157
157
        browsing = True
158
158
        self.browse_poll = []
159
159
        f.seek (0)
160
 
        for line in f.readlines ():
 
160
        for line in f:
 
161
            line = line.decode ('UTF-8')
161
162
            l = line.lower ().strip ()
162
163
            if l.startswith ("preservejobhistory "):
163
164
                try:
215
216
            (self.chkServerAllowCancelAll, cups.CUPS_SERVER_USER_CANCEL_ANY),
216
217
            (self.chkServerLogDebug, cups.CUPS_SERVER_DEBUG_LOGGING),]:
217
218
            widget.setting = setting
218
 
            if self.server_settings.has_key(setting):
 
219
            if setting in self.server_settings:
219
220
                widget.set_active(int(self.server_settings[setting]))
220
221
                widget.set_sensitive(True)
221
222
                widget.show()
224
225
                widget.set_sensitive(False)
225
226
                widget.hide()
226
227
 
227
 
        if self.server_settings.has_key(cups.CUPS_SERVER_REMOTE_PRINTERS):
 
228
        if cups.CUPS_SERVER_REMOTE_PRINTERS in self.server_settings:
228
229
            self.frameBrowseServers.show()
229
230
        else:
230
231
            self.frameBrowseServers.hide()
242
243
    def on_server_changed(self, widget):
243
244
        debugprint ("on_server_changed: %s" % widget)
244
245
        setting = widget.setting
245
 
        if self.server_settings.has_key (setting):
 
246
        if setting in self.server_settings:
246
247
            if str(int(widget.get_active())) == self.server_settings[setting]:
247
248
                self.changed.discard(widget)
248
249
            else:
250
251
 
251
252
        sharing = self.chkServerShare.get_active ()
252
253
        self.chkServerShareAny.set_sensitive (
253
 
            sharing and self.server_settings.has_key(try_CUPS_SERVER_REMOTE_ANY))
 
254
            sharing and try_CUPS_SERVER_REMOTE_ANY in self.server_settings)
254
255
 
255
256
    def _connect (self, widget, signal, handler, reason=None):
256
257
        id = widget.connect (signal, handler)
257
 
        if not self.handler_ids.has_key (reason):
 
258
        if reason not in self.handler_ids:
258
259
            self.handler_ids[reason] = []
259
260
        self.handler_ids[reason].append ((widget, id))
260
261
 
261
262
    def _disconnect (self, reason=None):
262
 
        if self.handler_ids.has_key (reason):
 
263
        if reason in self.handler_ids:
263
264
            for (widget, id) in self.handler_ids[reason]:
264
265
                widget.disconnect (id)
265
266
            del self.handler_ids[reason]
349
350
        model = self.browse_treeview.get_model ()
350
351
        selection = self.browse_treeview.get_selection ()
351
352
        rows = selection.get_selected_rows ()
352
 
        refs = map (lambda path: Gtk.TreeRowReference.new (model, path),
353
 
                    rows[1])
 
353
        refs = [Gtk.TreeRowReference.new (model, path) for path in rows[1]]
354
354
        for ref in refs:
355
355
            path = ref.get_path ()
356
356
            iter = model.get_iter (path)
407
407
            return
408
408
 
409
409
        # Fetch cupsd.conf afresh
410
 
        f = tempfile.TemporaryFile ()
 
410
        f = tempfile.TemporaryFile () # mode='w+b'
411
411
        try:
412
412
            self.cupsconn.getFile (self.RESOURCE, file=f)
413
413
        except cups.HTTPError as e:
429
429
            browsepoll_lines += "BrowsePoll %s\n" % server
430
430
 
431
431
        f.seek (0)
432
 
        conf = tempfile.TemporaryFile ()
 
432
        conf = tempfile.TemporaryFile () # mode='w+b'
433
433
        wrote_preserve_history = wrote_preserve_files = False
434
434
        wrote_browsepoll = False
435
435
        has_browsepoll = False
436
 
        lines = f.readlines ()
437
 
        for line in lines:
 
436
        for line in f:
 
437
            line = line.decode('UTF-8')
438
438
            l = line.lower ().strip ()
439
439
            if l.startswith ("browsepoll "):
440
440
                has_browsepoll = True
441
441
                break
442
442
 
443
 
        for line in lines:
 
443
        for line in f:
 
444
            line = line.decode('UTF-8')
444
445
            l = line.lower ().strip ()
445
446
            if l.startswith ("preservejobhistory "):
446
447
                if wrote_preserve_history:
462
463
                    # Ignore extra BrowsePoll lines.
463
464
                    continue
464
465
                # Write new BrowsePoll section.
465
 
                conf.write (browsepoll_lines)
 
466
                conf.write (browsepoll_lines.encode('UTF-8'))
466
467
                wrote_browsepoll = True
467
468
                # Don't write out the original BrowsePoll line.
468
469
                continue
470
471
                  l.startswith ("browsing ")):
471
472
                if not wrote_browsepoll:
472
473
                    # Write original Browsing line.
473
 
                    conf.write (line)
 
474
                    conf.write (line.encode('UTF-8'))
474
475
                    # Write new BrowsePoll section.
475
 
                    conf.write (browsepoll_lines)
 
476
                    conf.write (browsepoll_lines.encode('UTF-8'))
476
477
                    wrote_browsepoll = True
477
478
                    continue
478
479
 
479
 
            conf.write (line)
 
480
            conf.write (line.encode('UTF-8'))
480
481
 
481
482
        if not wrote_preserve_history:
482
 
            conf.write (job_history_line)
 
483
            conf.write (job_history_line.encode('UTF-8'))
483
484
        if not wrote_preserve_files:
484
 
            conf.write (job_files_line)
 
485
            conf.write (job_files_line.encode('UTF-8'))
485
486
        if not wrote_browsepoll:
486
 
            conf.write (browsepoll_lines)
 
487
            conf.write (browsepoll_lines.encode('UTF-8'))
487
488
 
488
489
        conf.flush ()
489
490
        fd = conf.fileno ()
514
515
            (self.chkServerRemoteAdmin, cups.CUPS_SERVER_REMOTE_ADMIN),
515
516
            (self.chkServerAllowCancelAll, cups.CUPS_SERVER_USER_CANCEL_ANY),
516
517
            (self.chkServerLogDebug, cups.CUPS_SERVER_DEBUG_LOGGING),]:
517
 
            if not self.server_settings.has_key(setting): continue
 
518
            if setting not in self.server_settings: continue
518
519
            setting_dict[setting] = str(int(widget.get_active()))
519
520
        self.cupsconn._begin_operation (_("modifying server settings"))
520
521
        try:
584
585
        loop.quit ()
585
586
 
586
587
    def problems (obj):
587
 
        print "%s: problems" % obj
 
588
        print("%s: problems" % obj)
588
589
 
589
590
    set_debugging (True)
590
591
    s = ServerSettings ()