gtkgui_helpers: remove some unused code
This commit is contained in:
parent
298fa4b96d
commit
fbc5851748
|
@ -202,99 +202,6 @@ def get_theme_font_for_option(theme, option):
|
|||
fd.merge(font_desc, True)
|
||||
return fd.to_string()
|
||||
|
||||
def get_default_font():
|
||||
"""
|
||||
Get the desktop setting for application font first check for GNOME, then
|
||||
Xfce and last KDE it returns None on failure or else a string 'Font Size'
|
||||
"""
|
||||
try:
|
||||
gi.require_version('GConf', '2.0')
|
||||
from gi.repository import GConf
|
||||
client = GConf.Client.get_default()
|
||||
value = client.get_string("/desktop/gnome/interface/font_name")
|
||||
return value.decode("utf8")
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
# try to get Xfce default font
|
||||
# Xfce 4.2 and higher follow freedesktop.org's Base Directory Specification
|
||||
# see http://www.xfce.org/~benny/xfce/file-locations.html
|
||||
# and http://freedesktop.org/Standards/basedir-spec
|
||||
xdg_config_home = os.environ.get('XDG_CONFIG_HOME', '')
|
||||
if xdg_config_home == '':
|
||||
xdg_config_home = os.path.expanduser('~/.config') # default
|
||||
xfce_config_file = os.path.join(xdg_config_home,
|
||||
'xfce4/mcs_settings/Gtk.xml')
|
||||
|
||||
kde_config_file = os.path.expanduser('~/.kde/share/config/kdeglobals')
|
||||
|
||||
if os.path.exists(xfce_config_file):
|
||||
try:
|
||||
for line in open(xfce_config_file):
|
||||
if line.find('name="Gtk/FontName"') != -1:
|
||||
start = line.find('value="') + 7
|
||||
return line[start:line.find('"', start)]
|
||||
except Exception:
|
||||
#we talk about file
|
||||
print(_('Error: cannot open %s for reading') % xfce_config_file,
|
||||
file=sys.stderr)
|
||||
|
||||
elif os.path.exists(kde_config_file):
|
||||
try:
|
||||
for line in open(kde_config_file):
|
||||
if line.find('font=') == 0: # font=Verdana,9,other_numbers
|
||||
start = 5 # 5 is len('font=')
|
||||
line = line[start:]
|
||||
values = line.split(',')
|
||||
font_name = values[0]
|
||||
font_size = values[1]
|
||||
font_string = '%s %s' % (font_name, font_size) # Verdana 9
|
||||
return font_string
|
||||
except Exception:
|
||||
#we talk about file
|
||||
print(_('Error: cannot open %s for reading') % kde_config_file,
|
||||
file=sys.stderr)
|
||||
|
||||
return None
|
||||
|
||||
def get_running_processes():
|
||||
"""
|
||||
Return running processes or None (if /proc does not exist)
|
||||
"""
|
||||
if os.path.isdir('/proc'):
|
||||
# under Linux: checking if 'gnome-session' or
|
||||
# 'startkde' programs were run before gajim, by
|
||||
# checking /proc (if it exists)
|
||||
#
|
||||
# if something is unclear, read `man proc`;
|
||||
# if /proc exists, directories that have only numbers
|
||||
# in their names contain data about processes.
|
||||
# /proc/[xxx]/exe is a symlink to executable started
|
||||
# as process number [xxx].
|
||||
# filter out everything that we are not interested in:
|
||||
files = os.listdir('/proc')
|
||||
|
||||
# files that doesn't have only digits in names...
|
||||
files = [f for f in files if f.isdigit()]
|
||||
|
||||
# files that aren't directories...
|
||||
files = [f for f in files if os.path.isdir('/proc/' + f)]
|
||||
|
||||
# processes owned by somebody not running gajim...
|
||||
# (we check if we have access to that file)
|
||||
files = [f for f in files if os.access('/proc/' + f +'/exe', os.F_OK)]
|
||||
|
||||
# be sure that /proc/[number]/exe is really a symlink
|
||||
# to avoid TBs in incorrectly configured systems
|
||||
files = [f for f in files if os.path.islink('/proc/' + f + '/exe')]
|
||||
|
||||
# list of processes
|
||||
processes = [os.path.basename(os.readlink('/proc/' + f +'/exe')) for f \
|
||||
in files]
|
||||
|
||||
return processes
|
||||
return []
|
||||
|
||||
def move_window(window, x, y):
|
||||
"""
|
||||
Move the window, but also check if out of screen
|
||||
|
@ -358,45 +265,6 @@ def scroll_to_end(widget):
|
|||
return False
|
||||
|
||||
|
||||
class HashDigest:
|
||||
def __init__(self, algo, digest):
|
||||
self.algo = self.cleanID(algo)
|
||||
self.digest = self.cleanID(digest)
|
||||
|
||||
def cleanID(self, id_):
|
||||
id_ = id_.strip().lower()
|
||||
for strip in (' :.-_'):
|
||||
id_ = id_.replace(strip, '')
|
||||
return id_
|
||||
|
||||
def __eq__(self, other):
|
||||
sa, sd = self.algo, self.digest
|
||||
if isinstance(other, self.__class__):
|
||||
oa, od = other.algo, other.digest
|
||||
elif isinstance(other, str):
|
||||
sa, oa, od = None, None, self.cleanID(other)
|
||||
elif isinstance(other, tuple) and len(other) == 2:
|
||||
oa, od = self.cleanID(other[0]), self.cleanID(other[1])
|
||||
else:
|
||||
return False
|
||||
|
||||
return sa == oa and sd == od
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self == other
|
||||
|
||||
def __hash__(self):
|
||||
return self.algo ^ self.digest
|
||||
|
||||
def __str__(self):
|
||||
prettydigest = ''
|
||||
for i in range(0, len(self.digest), 2):
|
||||
prettydigest += self.digest[i:i + 2] + ':'
|
||||
return prettydigest[:-1]
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%s, %s)" % (self.__class__, repr(self.algo), repr(str(self)))
|
||||
|
||||
class ServersXMLHandler(xml.sax.ContentHandler):
|
||||
def __init__(self):
|
||||
xml.sax.ContentHandler.__init__(self)
|
||||
|
@ -433,49 +301,6 @@ def set_unset_urgency_hint(window, unread_messages_no):
|
|||
else:
|
||||
window.props.urgency_hint = False
|
||||
|
||||
def get_abspath_for_script(scriptname, want_type = False):
|
||||
"""
|
||||
Check if we are svn or normal user and return abspath to asked script if
|
||||
want_type is True we return 'svn' or 'install'
|
||||
"""
|
||||
if os.path.isdir('.svn'): # we are svn user
|
||||
type_ = 'svn'
|
||||
cwd = os.getcwd() # it's always ending with src
|
||||
|
||||
if scriptname == 'gajim-remote':
|
||||
path_to_script = cwd + '/gajim-remote.py'
|
||||
|
||||
elif scriptname == 'gajim':
|
||||
script = '#!/bin/sh\n' # the script we may create
|
||||
script += 'cd %s' % cwd
|
||||
path_to_script = cwd + '/../scripts/gajim_sm_script'
|
||||
|
||||
try:
|
||||
if os.path.exists(path_to_script):
|
||||
os.remove(path_to_script)
|
||||
|
||||
f = open(path_to_script, 'w')
|
||||
script += '\nexec python -OOt gajim.py $0 $@\n'
|
||||
f.write(script)
|
||||
f.close()
|
||||
os.chmod(path_to_script, 0o700)
|
||||
except OSError: # do not traceback (could be a permission problem)
|
||||
#we talk about a file here
|
||||
s = _('Could not write to %s. Session Management support will '
|
||||
'not work') % path_to_script
|
||||
print(s, file=sys.stderr)
|
||||
|
||||
else: # normal user (not svn user)
|
||||
type_ = 'install'
|
||||
# always make it like '/usr/local/bin/gajim'
|
||||
path_to_script = helpers.is_in_path(scriptname, True)
|
||||
|
||||
|
||||
if want_type:
|
||||
return path_to_script, type_
|
||||
else:
|
||||
return path_to_script
|
||||
|
||||
# feeding the image directly into the pixbuf seems possible, but is error prone and causes image distortions and segfaults.
|
||||
# see http://stackoverflow.com/a/8892894/3528174
|
||||
# and https://developer.gnome.org/gdk-pixbuf/unstable/gdk-pixbuf-Image-Data-in-Memory.html#gdk-pixbuf-new-from-bytes
|
||||
|
@ -734,27 +559,6 @@ def make_pixbuf_grayscale(pixbuf):
|
|||
pixbuf.saturate_and_pixelate(pixbuf2, 0.0, False)
|
||||
return pixbuf2
|
||||
|
||||
def escape_underscore(s):
|
||||
"""
|
||||
Escape underlines to prevent them from being interpreted as keyboard
|
||||
accelerators
|
||||
"""
|
||||
return s.replace('_', '__')
|
||||
|
||||
def get_state_image_from_file_path_show(file_path, show):
|
||||
state_file = show.replace(' ', '_')
|
||||
files = []
|
||||
files.append(os.path.join(file_path, state_file + '.png'))
|
||||
files.append(os.path.join(file_path, state_file + '.gif'))
|
||||
image = Gtk.Image()
|
||||
image.set_from_pixbuf(None)
|
||||
for file_ in files:
|
||||
if os.path.exists(file_):
|
||||
image.set_from_file(file_)
|
||||
break
|
||||
|
||||
return image
|
||||
|
||||
def get_possible_button_event(event):
|
||||
"""
|
||||
Mouse or keyboard caused the event?
|
||||
|
@ -839,9 +643,6 @@ def on_avatar_save_as_menuitem_activate(widget, jid, default_name=''):
|
|||
dialog.connect('delete-event', lambda widget, event:
|
||||
on_cancel(widget))
|
||||
|
||||
def on_bm_header_changed_state(widget, event):
|
||||
widget.set_state(Gtk.StateType.NORMAL) #do not allow selected_state
|
||||
|
||||
def create_combobox(value_list, selected_value = None):
|
||||
"""
|
||||
Value_list is [(label1, value1)]
|
||||
|
|
Loading…
Reference in New Issue