X7ROOT File Manager
Current Path:
/usr/share/system-config-printer
usr
/
share
/
system-config-printer
/
📁
..
📄
HIG.py
(57 B)
📄
HIG.pyc
(231 B)
📄
HIG.pyo
(231 B)
📄
PhysicalDevice.py
(10.69 KB)
📄
PhysicalDevice.pyc
(7.72 KB)
📄
PhysicalDevice.pyo
(7.72 KB)
📄
SearchCriterion.py
(1.32 KB)
📄
SearchCriterion.pyc
(982 B)
📄
SearchCriterion.pyo
(982 B)
📄
ToolbarSearchEntry.py
(6.91 KB)
📄
ToolbarSearchEntry.pyc
(6.43 KB)
📄
ToolbarSearchEntry.pyo
(6.43 KB)
📄
applet.py
(15.71 KB)
📄
applet.pyc
(14.03 KB)
📄
applet.pyo
(14.03 KB)
📄
asyncconn.py
(9.63 KB)
📄
asyncconn.pyc
(9.8 KB)
📄
asyncconn.pyo
(9.8 KB)
📄
asyncipp.py
(26.02 KB)
📄
asyncipp.pyc
(20.5 KB)
📄
asyncipp.pyo
(20.5 KB)
📄
asyncpk1.py
(25.68 KB)
📄
asyncpk1.pyc
(20.4 KB)
📄
asyncpk1.pyo
(20.4 KB)
📄
authconn.py
(18.34 KB)
📄
authconn.pyc
(15.74 KB)
📄
authconn.pyo
(15.74 KB)
📄
check-device-ids.py
(10.9 KB)
📄
check-device-ids.pyc
(8.13 KB)
📄
check-device-ids.pyo
(8.13 KB)
📄
config.py
(1.05 KB)
📄
config.pyc
(370 B)
📄
config.pyo
(370 B)
📄
cupspk.py
(27.35 KB)
📄
cupspk.pyc
(18.01 KB)
📄
cupspk.pyo
(18.01 KB)
📄
debug.py
(1.62 KB)
📄
debug.pyc
(1.55 KB)
📄
debug.pyo
(1.55 KB)
📄
dnssdresolve.py
(4.91 KB)
📄
dnssdresolve.pyc
(5.17 KB)
📄
dnssdresolve.pyo
(5.17 KB)
📄
errordialogs.py
(3.13 KB)
📄
errordialogs.pyc
(2.57 KB)
📄
errordialogs.pyo
(2.57 KB)
📄
firewallsettings.py
(9.25 KB)
📄
firewallsettings.pyc
(8.69 KB)
📄
firewallsettings.pyo
(8.69 KB)
📄
gtkinklevel.py
(4.71 KB)
📄
gtkinklevel.pyc
(4.18 KB)
📄
gtkinklevel.pyo
(4.18 KB)
📄
gui.py
(2.12 KB)
📄
gui.pyc
(1.76 KB)
📄
gui.pyo
(1.76 KB)
📁
icons
📄
install-printerdriver.py
(2.82 KB)
📄
install-printerdriver.pyc
(2.42 KB)
📄
install-printerdriver.pyo
(2.42 KB)
📄
installpackage.py
(1.34 KB)
📄
installpackage.pyc
(1.1 KB)
📄
installpackage.pyo
(1.1 KB)
📄
jobviewer.py
(91.15 KB)
📄
jobviewer.pyc
(64.36 KB)
📄
jobviewer.pyo
(64.36 KB)
📄
monitor.py
(31.96 KB)
📄
monitor.pyc
(23 KB)
📄
monitor.pyo
(23 KB)
📄
newprinter.py
(164.81 KB)
📄
newprinter.pyc
(102.42 KB)
📄
newprinter.pyo
(102.42 KB)
📄
options.py
(18.73 KB)
📄
options.pyc
(16.57 KB)
📄
options.pyo
(16.57 KB)
📄
optionwidgets.py
(8.78 KB)
📄
optionwidgets.pyc
(7.94 KB)
📄
optionwidgets.pyo
(7.94 KB)
📄
ppdcache.py
(7.41 KB)
📄
ppdcache.pyc
(6.1 KB)
📄
ppdcache.pyo
(6.1 KB)
📄
ppdippstr.py
(7.15 KB)
📄
ppdippstr.pyc
(5.64 KB)
📄
ppdippstr.pyo
(5.64 KB)
📄
ppdsloader.py
(10.78 KB)
📄
ppdsloader.pyc
(10.22 KB)
📄
ppdsloader.pyo
(10.22 KB)
📄
printerproperties.py
(78.52 KB)
📄
printerproperties.pyc
(51.48 KB)
📄
printerproperties.pyo
(51.48 KB)
📄
probe_printer.py
(15.24 KB)
📄
probe_printer.pyc
(13.82 KB)
📄
probe_printer.pyo
(13.82 KB)
📄
pysmb.py
(6.8 KB)
📄
pysmb.pyc
(5.47 KB)
📄
pysmb.pyo
(5.47 KB)
📄
scp-dbus-service.py
(19.04 KB)
📄
scp-dbus-service.pyc
(21.34 KB)
📄
scp-dbus-service.pyo
(21.34 KB)
📄
serversettings.py
(21.4 KB)
📄
serversettings.pyc
(16.15 KB)
📄
serversettings.pyo
(16.15 KB)
📄
smburi.py
(3.22 KB)
📄
smburi.pyc
(2.61 KB)
📄
smburi.pyo
(2.61 KB)
📄
statereason.py
(6.09 KB)
📄
statereason.pyc
(5.02 KB)
📄
statereason.pyo
(5.02 KB)
📄
system-config-printer.py
(80.8 KB)
📄
system-config-printer.pyc
(57.95 KB)
📄
system-config-printer.pyo
(57.95 KB)
📄
timedops.py
(8 KB)
📄
timedops.pyc
(8 KB)
📄
timedops.pyo
(8 KB)
📁
troubleshoot
📁
ui
📄
userdefault.py
(6.12 KB)
📄
userdefault.pyc
(5.34 KB)
📄
userdefault.pyo
(5.34 KB)
📁
xml
Editing: timedops.py
#!/usr/bin/python ## Copyright (C) 2008, 2009, 2010, 2012 Red Hat, Inc. ## Authors: ## Tim Waugh <twaugh@redhat.com> ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import dbus.mainloop.glib from gi.repository import GObject from gi.repository import GLib from gi.repository import Gdk from gi.repository import Gtk import subprocess import threading from gettext import gettext as _ from debug import * # Initialise threading for D-Bus. This is needed as long as it is # used from two separate threads. We only do this in a few places # now, but in particular the troubleshooter does this (bug #662047). GObject.threads_init () Gdk.threads_init () dbus.mainloop.glib.threads_init () class OperationCanceled(RuntimeError): pass class Timed: def run (self): pass def cancel (self): return False class TimedSubprocess(Timed): def __init__ (self, timeout=60000, parent=None, show_dialog=True, **args): self.subp = subprocess.Popen (**args) self.output = dict() self.io_source = [] self.watchers = 2 self.timeout = timeout self.parent = parent self.show_dialog = show_dialog for f in [self.subp.stdout, self.subp.stderr]: if f != None: source = GLib.io_add_watch (f, GLib.IO_IN | GLib.IO_HUP | GLib.IO_ERR, self.watcher) self.io_source.append (source) self.wait_window = None def run (self): if self.show_dialog: self.wait_source = GLib.timeout_add_seconds ( 1, self.show_wait_window) self.timeout_source = GLib.timeout_add (self.timeout, self.do_timeout) Gtk.main () GLib.source_remove (self.timeout_source) if self.show_dialog: GLib.source_remove (self.wait_source) for source in self.io_source: GLib.source_remove (source) if self.wait_window != None: self.wait_window.destroy () return (self.output.get (self.subp.stdout, '').split ('\n'), self.output.get (self.subp.stderr, '').split ('\n'), self.subp.poll ()) def do_timeout (self): Gtk.main_quit () return False def watcher (self, source, condition): if condition & GLib.IO_IN: buffer = self.output.get (source, '') buffer += source.read () self.output[source] = buffer if condition & GLib.IO_HUP: self.watchers -= 1 if self.watchers == 0: Gtk.main_quit () return False return True def show_wait_window (self): Gdk.threads_enter () wait = Gtk.MessageDialog (self.parent, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, Gtk.ButtonsType.CANCEL, _("Please wait")) wait.connect ("delete_event", lambda *args: False) wait.connect ("response", self.wait_window_response) if self.parent: wait.set_transient_for (self.parent) wait.set_position (Gtk.WindowPosition.CENTER_ON_PARENT) wait.format_secondary_text (_("Gathering information")) wait.show_all () self.wait_window = wait Gdk.threads_leave () return False def wait_window_response (self, dialog, response): if response == Gtk.ResponseType.CANCEL: self.cancel () def cancel (self): if self.watchers > 0: debugprint ("Command canceled") Gtk.main_quit () self.watchers = 0 return False class OperationThread(threading.Thread): def __init__ (self, target=None, args=(), kwargs={}): threading.Thread.__init__ (self) self.setDaemon (True) self.target = target self.args = args self.kwargs = kwargs self.exception = None self.result = None def run (self): try: debugprint ("Calling %s" % self.target) self.result = self.target (*self.args, **self.kwargs) debugprint ("Done") except Exception, e: debugprint ("Caught exception %s" % e) self.exception = e def collect_result (self): if self.isAlive (): # We've been canceled. raise OperationCanceled() if self.exception: raise self.exception return self.result class TimedOperation(Timed): def __init__ (self, target, args=(), kwargs={}, parent=None, show_dialog=False, callback=None, context=None): self.wait_window = None self.parent = parent self.show_dialog = show_dialog self.callback = callback self.context = context self.thread = OperationThread (target=target, args=args, kwargs=kwargs) self.thread.start () self.use_callback = callback != None if self.use_callback: self.timeout_source = GLib.timeout_add (50, self._check_thread) def run (self): if self.use_callback: raise RuntimeError if self.show_dialog: wait = Gtk.MessageDialog (self.parent, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, Gtk.ButtonsType.CANCEL, _("Please wait")) wait.connect ("delete_event", lambda *args: False) wait.connect ("response", self._wait_window_response) if self.parent: wait.set_transient_for (self.parent) wait.set_position (Gtk.WindowPosition.CENTER_ON_PARENT) wait.format_secondary_text (_("Gathering information")) wait.show_all () self.timeout_source = GLib.timeout_add (50, self._check_thread) Gtk.main () GLib.source_remove (self.timeout_source) if self.show_dialog: wait.destroy () return self.thread.collect_result () def _check_thread (self): if self.thread.isAlive (): # Thread still running. return True # Thread has finished. Stop the sub-loop or trigger callback. if self.use_callback: if self.callback != None: if self.context != None: self.callback (self.thread.result, self.thread.exception, self.context) else: self.callback (self.thread.result, self.thread.exception) else: Gtk.main_quit () return False def _wait_window_response (self, dialog, response): if response == Gtk.ResponseType.CANCEL: self.cancel () def cancel (self): debugprint ("Command canceled") if self.use_callback: self.callback = None else: Gtk.main_quit () return False
Upload File
Create Folder