/usr/lib/python2.7/dist-packages/gi/overrides/Unity.py is in gir1.2-unity-5.0 7.1.4+14.04.20140210-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | from gi.overrides import override
from gi.importer import modules
import threading
import sys
Unity = modules['Unity']._introspection_module
from gi.repository import GLib
__all__ = []
class ScopeSearchBase(Unity.ScopeSearchBase):
def __init__(self):
Unity.ScopeSearchBase.__init__(self)
def do_run_async(self, callback, callback_data=None):
def thread_method():
try:
self.run()
finally:
callback(self)
t = threading.Thread(target=thread_method, name="python-search-thread")
t.start()
class ResultPreviewer(Unity.ResultPreviewer):
def __init__(self):
Unity.ResultPreviewer.__init__(self)
def do_run_async(self, callback, callback_data=None):
def thread_method():
preview = None
try:
preview = self.run()
finally:
callback(self, preview)
t = threading.Thread(target=thread_method, name="python-preview-thread")
t.start()
class ResultSet(Unity.ResultSet):
def __init__ (self):
Unity.ResultSet.__init__(self)
def add_result(self, *args, **kwargs):
if len(args) > 0:
Unity.ResultSet.add_result(self, *args)
elif len(kwargs) > 0:
result = kwargs_to_result_variant(**kwargs)
Unity.ResultSet.add_result_from_variant(self, result)
def kwargs_to_result_variant(**kwargs):
uri = None
icon = ""
category = 0
result_type = 0
mimetype = None
title = None
comment = ""
dnd_uri = None
metadata = {}
for col_name, value in kwargs.items():
if col_name == "uri": uri = value
elif col_name == "icon": icon = value
elif col_name == "category": category = value
elif col_name == "result_type": result_type = value
elif col_name == "mimetype": mimetype = value
elif col_name == "title": title = value
elif col_name == "comment": comment = value
elif col_name == "dnd_uri": dnd_uri = value
else:
if isinstance(value, GLib.Variant):
metadata[col_name] = value
elif isinstance(value, str):
metadata[col_name] = GLib.Variant("s", value)
elif isinstance(value, int):
metadata[col_name] = GLib.Variant("i", value)
elif sys.version_info < (3, 0, 0):
# unicode is not defined in py3
if isinstance(value, unicode):
metadata[col_name] = GLib.Variant("s", value)
result = GLib.Variant("(ssuussssa{sv})", (uri, icon, category,
result_type, mimetype,
title, comment, dnd_uri,
metadata))
return result
def dict_to_variant(metadata_dict):
metadata = {}
for name, value in metadata_dict.items():
if isinstance(value, GLib.Variant):
metadata[name] = value
elif isinstance(value, str):
metadata[name] = GLib.Variant("s", value)
elif isinstance(value, int):
metadata[name] = GLib.Variant("i", value)
elif sys.version_info < (3, 0, 0):
# unicode is not defined in py3
if isinstance(value, unicode):
metadata[name] = GLib.Variant("s", value)
return GLib.Variant("a{sv}", metadata)
class ScopeResult(Unity.ScopeResult):
@staticmethod
def create(*args, **kwargs):
if len(kwargs) > 0:
result = kwargs_to_result_variant(**kwargs)
return Unity.ScopeResult.create_from_variant(result)
return Unity.ScopeResult.create(*args)
class SearchContext(Unity.SearchContext):
@staticmethod
def create(search_query, search_type, filter_state, metadata_dict, result_set, cancellable):
context = Unity.SearchContext.create(search_query, search_type, filter_state, None, result_set, cancellable)
if metadata_dict and len(metadata_dict) > 0:
metadata_variant = dict_to_variant(metadata_dict)
context.set_search_metadata(Unity.SearchMetadata.create_from_variant(metadata_variant))
return context
ScopeSearchBase = override(ScopeSearchBase)
__all__.append('ScopeSearchBase')
ResultPreviewer = override(ResultPreviewer)
__all__.append('ResultPreviewer')
ResultSet = override(ResultSet)
__all__.append('ResultSet')
ScopeResult = override(ScopeResult)
__all__.append('ScopeResult')
SearchContext = override(SearchContext)
__all__.append('SearchContext')
|