Merge branch 'gtkgui_helpers' into 'master'
gtkgui_helpers: remove some unused code See merge request !125
This commit is contained in:
		
						commit
						b7efb3604e
					
				
					 1 changed files with 0 additions and 199 deletions
				
			
		|  | @ -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…
	
	Add table
		
		Reference in a new issue