Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
usr /
share /
system-config-printer /
[ HOME SHELL ]
Name
Size
Permission
Action
icons
[ DIR ]
drwxr-xr-x
__pycache__
[ DIR ]
drwxr-xr-x
troubleshoot
[ DIR ]
drwxr-xr-x
ui
[ DIR ]
drwxr-xr-x
xml
[ DIR ]
drwxr-xr-x
applet.py
16.83
KB
-rwxr-xr-x
asyncconn.py
9.6
KB
-rw-r--r--
asyncipp.py
26.13
KB
-rw-r--r--
asyncpk1.py
25.86
KB
-rw-r--r--
authconn.py
18.85
KB
-rw-r--r--
check-device-ids.py
11.16
KB
-rwxr-xr-x
config.py
1.19
KB
-rw-r--r--
cupspk.py
27.48
KB
-rw-r--r--
debug.py
1.62
KB
-rw-r--r--
dnssdresolve.py
4.66
KB
-rw-r--r--
errordialogs.py
3.12
KB
-rw-r--r--
firewallsettings.py
9.38
KB
-rw-r--r--
gtkinklevel.py
4.71
KB
-rw-r--r--
gui.py
2.13
KB
-rw-r--r--
HIG.py
57
B
-rw-r--r--
installpackage.py
2.2
KB
-rw-r--r--
install-printerdriver.py
5.34
KB
-rwxr-xr-x
jobviewer.py
96.57
KB
-rw-r--r--
killtimer.py
2.08
KB
-rw-r--r--
monitor.py
32.36
KB
-rw-r--r--
newprinter.py
178.27
KB
-rw-r--r--
OpenPrintingRequest.py
6.81
KB
-rw-r--r--
options.py
18.97
KB
-rw-r--r--
optionwidgets.py
8.89
KB
-rw-r--r--
PhysicalDevice.py
16.19
KB
-rw-r--r--
ppdcache.py
7.57
KB
-rw-r--r--
ppdippstr.py
16.19
KB
-rw-r--r--
ppdsloader.py
10.98
KB
-rw-r--r--
printerproperties.py
78.11
KB
-rw-r--r--
probe_printer.py
15.82
KB
-rw-r--r--
pysmb.py
6.81
KB
-rwxr-xr-x
scp-dbus-service.py
22.22
KB
-rwxr-xr-x
SearchCriterion.py
1.32
KB
-rw-r--r--
serversettings.py
21.83
KB
-rw-r--r--
smburi.py
3.22
KB
-rw-r--r--
statereason.py
6.83
KB
-rw-r--r--
system-config-printer.py
86.48
KB
-rwxr-xr-x
timedops.py
8.21
KB
-rw-r--r--
ToolbarSearchEntry.py
6.96
KB
-rw-r--r--
userdefault.py
6.2
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : optionwidgets.py
## system-config-printer ## Copyright (C) 2006, 2007, 2008, 2009, 2014 Red Hat, Inc. ## Copyright (C) 2006 Florian Festi <ffesti@redhat.com> ## Copyright (C) 2007, 2008, 2009 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 config from gi.repository import Gtk import cups import gettext gettext.install(domain=config.PACKAGE, localedir=config.localedir) import ppdippstr def OptionWidget(option, ppd, gui, tab_label=None): """Factory function""" ui = option.ui if (ui == cups.PPD_UI_BOOLEAN and len (option.choices) != 2): # This option is advertised as a Boolean but in fact has more # than two choices. print("Treating Boolean option %s as PickOne" % option.keyword) ui = cups.PPD_UI_PICKONE if ui == cups.PPD_UI_BOOLEAN: return OptionBool(option, ppd, gui, tab_label=tab_label) elif ui == cups.PPD_UI_PICKONE: return OptionPickOne(option, ppd, gui, tab_label=tab_label) elif ui == cups.PPD_UI_PICKMANY: return OptionPickMany(option, ppd, gui, tab_label=tab_label) # --------------------------------------------------------------------------- class Option: def __init__(self, option, ppd, gui, tab_label=None): self.option = option self.ppd = ppd self.gui = gui self.enabled = True self.tab_label = tab_label vbox = Gtk.VBox() self.btnConflict = Gtk.Button() icon = Gtk.Image.new_from_icon_name(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.SMALL_TOOLBAR) self.btnConflict.add(icon) self.btnConflict.set_no_show_all(True) #avoid the button taking # over control again vbox.add(self.btnConflict) # vbox reserves space while button #vbox.set_size_request(32, 28) # is hidden self.conflictIcon = vbox self.btnConflict.connect("clicked", self.on_btnConflict_clicked) icon.show() self.constraints = [c for c in ppd.constraints if (c.option1 == option.keyword or c.option2 == option.keyword)] #for c in self.constraints: # if not c.choice1 or not c.choice2: # print c.option1, repr(c.choice1), c.option2, repr(c.choice2) self.conflicts = set() self.conflict_message = "" def enable(self, enabled=True): self.selector.set_sensitive (enabled) self.enabled = enabled def disable(self): self.enable (False) def is_enabled(self): return self.enabled def get_current_value(self): raise NotImplemented def is_changed(self): return self.get_current_value()!= self.option.defchoice def writeback(self): #print repr(self.option.keyword), repr(self.get_current_value()) if self.enabled: self.ppd.markOption(self.option.keyword, self.get_current_value()) def checkConflicts(self, update_others=True): value = self.get_current_value() for constraint in self.constraints: if constraint.option1 == self.option.keyword: option2 = self.gui.options.get(constraint.option2, None) choice1 = constraint.choice1 choice2 = constraint.choice2 else: option2 = self.gui.options.get(constraint.option1, None) choice1 = constraint.choice2 choice2 = constraint.choice1 if option2 is None: continue def matches (constraint_choice, value): if constraint_choice != '': return constraint_choice == value return value not in ['None', 'False', 'Off'] if (matches (choice1, value) and matches (choice2, option2.get_current_value())): # conflict self.conflicts.add(constraint) if update_others: option2.checkConflicts(update_others=False) elif constraint in self.conflicts: # remove conflict self.conflicts.remove(constraint) option2.checkConflicts(update_others=False) tooltip = [_("Conflicts with:")] conflicting_options = dict() for c in self.conflicts: if c.option1 == self.option.keyword: option = self.gui.options.get(c.option2) else: option = self.gui.options.get(c.option1) conflicting_options[option.option.keyword] = option for option in conflicting_options.values (): opt = option.option.text val = option.get_current_value () for choice in option.option.choices: if choice['choice'] == val: val = ppdippstr.ppd.get (choice['text']) tooltip.append ("%s: %s" % (opt, val)) tooltip = "\n".join(tooltip) self.conflict_message = tooltip # XXX more verbose if self.conflicts: self.btnConflict.set_tooltip_text (tooltip) self.btnConflict.show() else: self.btnConflict.hide() self.gui.option_changed(self) return self.conflicts def on_change(self, widget): self.checkConflicts() def on_btnConflict_clicked(self, button): parent = self.btnConflict while parent is not None and not isinstance (parent, Gtk.Window): parent = parent.get_parent () dialog = Gtk.MessageDialog (parent=parent, modal=True, destroy_with_parent=True, message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.CLOSE, text=self.conflict_message) dialog.run() dialog.destroy() # --------------------------------------------------------------------------- class OptionBool(Option): def __init__(self, option, ppd, gui, tab_label=None): self.selector = Gtk.CheckButton.new_with_label( ppdippstr.ppd.get (option.text)) self.label = None self.false = "False" # hack to allow "None" instead of "False" self.true = "True" for c in option.choices: if c["choice"] in ("None", "False", "Off"): self.false = c["choice"] if c["choice"] in ("True", "On"): self.true = c["choice"] self.selector.set_active(option.defchoice == self.true) self.selector.set_alignment(0.0, 0.5) self.selector.connect("toggled", self.on_change) Option.__init__(self, option, ppd, gui, tab_label=tab_label) def get_current_value(self): return (self.false, self.true)[self.selector.get_active()] # --------------------------------------------------------------------------- class OptionPickOne(Option): widget_name = "OptionPickOne" def __init__(self, option, ppd, gui, tab_label=None): self.selector = Gtk.ComboBoxText() #self.selector.set_alignment(0.0, 0.5) label = ppdippstr.ppd.get (option.text) if not label.endswith (':'): label += ':' self.label = Gtk.Label(label=label) self.label.set_alignment(0.0, 0.5) selected = None for nr, choice in enumerate(option.choices): self.selector.append_text(ppdippstr.ppd.get (choice['text'])) if option.defchoice == choice['choice']: selected = nr if selected is not None: self.selector.set_active(selected) else: print(option.text, "unknown value:", option.defchoice) self.selector.connect("changed", self.on_change) Option.__init__(self, option, ppd, gui, tab_label=tab_label) def get_current_value(self): return self.option.choices[self.selector.get_active()]['choice'] # --------------------------------------------------------------------------- class OptionPickMany(OptionPickOne): widget_name = "OptionPickMany" def __init__(self, option, ppd, gui, tab_label=None): raise NotImplemented Option.__init__(self, option, ppd, gui, tab_label=tab_label)
Close