本文整理汇总了Python中sugar3.bundle.activitybundle.get_bundle_instance函数的典型用法代码示例。如果您正苦于以下问题:Python get_bundle_instance函数的具体用法?Python get_bundle_instance怎么用?Python get_bundle_instance使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_bundle_instance函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_icon_name
def get_icon_name(metadata):
file_name = None
bundle_id = metadata.get('activity', '')
if not bundle_id:
bundle_id = metadata.get('bundle_id', '')
if bundle_id:
activity_info = bundleregistry.get_registry().get_bundle(bundle_id)
if activity_info:
file_name = activity_info.get_icon()
if file_name is None and is_activity_bundle(metadata):
file_path = model.get_file(metadata['uid'])
if file_path is not None and os.path.exists(file_path):
try:
bundle = get_bundle_instance(file_path)
file_name = bundle.get_icon()
except Exception:
logging.exception('Could not read bundle')
if file_name is None:
file_name = _get_icon_for_mime(metadata.get('mime_type', ''))
if file_name is None:
file_name = get_icon_file_name('application-octet-stream')
return file_name
示例2: get_bundle
def get_bundle(metadata):
try:
if is_activity_bundle(metadata):
file_path = model.get_file(metadata['uid'])
if not os.path.exists(file_path):
logging.warning('Invalid path: %r', file_path)
return None
return get_bundle_instance(file_path)
elif is_content_bundle(metadata):
file_path = model.get_file(metadata['uid'])
if not os.path.exists(file_path):
logging.warning('Invalid path: %r', file_path)
return None
return ContentBundle(file_path)
elif is_journal_bundle(metadata):
file_path = model.get_file(metadata['uid'])
if not os.path.exists(file_path):
logging.warning('Invalid path: %r', file_path)
return None
return JournalEntryBundle(file_path, metadata['uid'])
else:
return None
except Exception:
logging.exception('Incorrect bundle')
return None
示例3: get_max_participants
def get_max_participants(self):
# If max_participants has not been set in the activity, get it
# from the bundle.
if self._max_participants is None:
bundle = get_bundle_instance(get_bundle_path())
self._max_participants = bundle.get_max_participants()
return self._max_participants
示例4: get_icon_name
def get_icon_name(metadata):
file_name = None
bundle_id = metadata.get('activity', '')
if not bundle_id:
bundle_id = metadata.get('bundle_id', '')
if bundle_id:
if bundle_id == PROJECT_BUNDLE_ID:
file_name = \
'/home/broot/sugar-build/build' + \
'/out/install/share/icons/sugar/' + \
'scalable/mimetypes/project-box.svg'
return file_name
activity_info = bundleregistry.get_registry().get_bundle(bundle_id)
if activity_info:
file_name = activity_info.get_icon()
if file_name is None and is_activity_bundle(metadata):
file_path = model.get_file(metadata['uid'])
if file_path is not None and os.path.exists(file_path):
try:
bundle = get_bundle_instance(file_path)
file_name = bundle.get_icon()
except Exception:
logging.exception('Could not read bundle')
if file_name is None:
file_name = _get_icon_for_mime(metadata.get('mime_type', ''))
if file_name is None:
file_name = get_icon_file_name('application-octet-stream')
return file_name
示例5: _create_activity_icon
def _create_activity_icon(metadata):
if metadata is not None and metadata.get('icon-color'):
color = XoColor(metadata['icon-color'])
else:
color = profile.get_color()
from sugar3.activity.activity import get_bundle_path
bundle = get_bundle_instance(get_bundle_path())
icon = Icon(file=bundle.get_icon(), xo_color=color)
return icon
示例6: get_max_participants
def get_max_participants(self):
'''
Returns:
int: the max number of users than can share a instance of the
activity. Should be configured in the activity.info file.
'''
# If max_participants has not been set in the activity, get it
# from the bundle.
if self._max_participants is None:
bundle = get_bundle_instance(get_bundle_path())
self._max_participants = bundle.get_max_participants()
return self._max_participants
示例7: notify_user
def notify_user(self, summary, body):
'''
Display a notification with the given summary and body.
The notification will go under the activities icon in the frame.
'''
bundle = get_bundle_instance(get_bundle_path())
icon = bundle.get_icon()
bus = dbus.SessionBus()
notify_obj = bus.get_object(N_BUS_NAME, N_OBJ_PATH)
notifications = dbus.Interface(notify_obj, N_IFACE_NAME)
notifications.Notify(self.get_id(), 0, '', summary, body, [],
{'x-sugar-icon-file-name': icon}, -1)
示例8: get_help_url_and_title
def get_help_url_and_title(activity):
"""
Returns the help document name and the title to display,
or None if not content is available.
"""
bundle_path = activity.get_bundle_path()
if bundle_path is None:
shell_model = shell.get_model()
zoom_level = shell_model.zoom_level
if zoom_level == shell_model.ZOOM_MESH:
title = _("Mesh")
link_id = "mesh_view"
elif zoom_level == shell_model.ZOOM_GROUP:
title = _("Group")
link_id = "group_view"
elif zoom_level == shell_model.ZOOM_HOME:
title = _("Home")
link_id = "home_view"
else:
title = _("Journal")
link_id = "org.laptop.JournalActivity"
else:
# get activity name and window id
activity_bundle = get_bundle_instance(bundle_path)
title = activity_bundle.get_name()
link_id = activity_bundle.get_bundle_id()
# get the help file name for the activity
activity_path = _get_help_activity_path()
if activity_path is None:
return None, title
help_content_link = os.path.join(activity_path, "helplink.json")
if not os.path.exists(help_content_link):
_logger.error("Help activity not installed or json file not found")
return None, title
links = None
try:
with open(help_content_link) as json_file:
links = json.load(json_file)
except IOError:
_logger.error("helplink.json malformed, or can't be read")
if links:
if link_id in links.keys():
return links[link_id], title
return None, title
示例9: _is_web_activity
def _is_web_activity(bundle_path):
activity_bundle = get_bundle_instance(bundle_path)
return activity_bundle.get_command() == 'sugar-activity-web'
示例10: __init__
def __init__(self, title, bundle_path, document_path, sugar_toolkit_path):
Gtk.Toolbar.__init__(self)
document_button = None
self.bundle_path = bundle_path
self.sugar_toolkit_path = sugar_toolkit_path
self._add_separator()
activity_bundle = get_bundle_instance(bundle_path)
file_name = activity_bundle.get_icon()
if document_path is not None and os.path.exists(document_path):
document_button = DocumentButton(file_name, document_path, title)
document_button.connect('toggled', self.__button_toggled_cb,
document_path)
self.insert(document_button, -1)
document_button.show()
self._add_separator()
if bundle_path is not None and os.path.exists(bundle_path):
activity_button = DocumentButton(file_name, bundle_path, title,
bundle=True)
icon = Icon(file=file_name,
pixel_size=style.STANDARD_ICON_SIZE,
fill_color=style.COLOR_TRANSPARENT.get_svg(),
stroke_color=style.COLOR_WHITE.get_svg())
activity_button.set_icon_widget(icon)
icon.show()
if document_button is not None:
activity_button.props.group = document_button
activity_button.props.tooltip = _('Activity Bundle Source')
activity_button.connect('toggled', self.__button_toggled_cb,
bundle_path)
self.insert(activity_button, -1)
activity_button.show()
self._add_separator()
if sugar_toolkit_path is not None:
sugar_button = RadioToolButton()
icon = Icon(icon_name='computer-xo',
pixel_size=style.STANDARD_ICON_SIZE,
fill_color=style.COLOR_TRANSPARENT.get_svg(),
stroke_color=style.COLOR_WHITE.get_svg())
sugar_button.set_icon_widget(icon)
icon.show()
if document_button is not None:
sugar_button.props.group = document_button
else:
sugar_button.props.group = activity_button
sugar_button.props.tooltip = _('Sugar Toolkit Source')
sugar_button.connect('toggled', self.__button_toggled_cb,
sugar_toolkit_path)
self.insert(sugar_button, -1)
sugar_button.show()
self._add_separator()
self.activity_title_text = _('View source: %s') % title
self.sugar_toolkit_title_text = _('View source: %r') % 'Sugar Toolkit'
self.label = Gtk.Label()
self.label.set_markup('<b>%s</b>' % self.activity_title_text)
self.label.set_ellipsize(style.ELLIPSIZE_MODE_DEFAULT)
self.label.set_alignment(0, 0.5)
self._add_widget(self.label, expand=True)
self._add_separator(False)
stop = ToolButton(icon_name='dialog-cancel')
stop.set_tooltip(_('Close'))
stop.connect('clicked', self.__stop_clicked_cb)
self.insert(stop, -1)
stop.show()
示例11: __init__
#.........这里部分代码省略.........
if 'SUGAR_ACTIVITY_ROOT' in os.environ:
# If this activity runs inside Sugar, we want it to take all the
# screen. Would be better if it was the shell to do this, but we
# haven't found yet a good way to do it there. See #1263.
self.connect('window-state-event', self.__window_state_event_cb)
screen = Gdk.Screen.get_default()
screen.connect('size-changed', self.__screen_size_changed_cb)
self._adapt_window_to_screen()
# process titles will only show 15 characters
# but they get truncated anyway so if more characters
# are supported in the future we will get a better view
# of the processes
proc_title = '%s <%s>' % (get_bundle_name(), handle.activity_id)
util.set_proc_title(proc_title)
self.connect('realize', self.__realize_cb)
self.connect('delete-event', self.__delete_event_cb)
self._active = False
self._active_time = None
self._spent_time = 0
self._activity_id = handle.activity_id
self.shared_activity = None
self._join_id = None
self._updating_jobject = False
self._closing = False
self._quit_requested = False
self._deleting = False
self._max_participants = None
self._invites_queue = []
self._jobject = None
self._read_file_called = False
self._session = _get_session()
self._session.register(self)
self._session.connect('quit-requested',
self.__session_quit_requested_cb)
self._session.connect('quit', self.__session_quit_cb)
accel_group = Gtk.AccelGroup()
self.sugar_accel_group = accel_group
self.add_accel_group(accel_group)
self._bus = ActivityService(self)
self._owns_file = False
share_scope = SCOPE_PRIVATE
if handle.object_id:
self._jobject = datastore.get(handle.object_id)
if 'share-scope' in self._jobject.metadata:
share_scope = self._jobject.metadata['share-scope']
if 'launch-times' in self._jobject.metadata:
self._jobject.metadata['launch-times'] += ', %d' % \
int(time.time())
else:
self._jobject.metadata['launch-times'] = \
str(int(time.time()))
if 'spent-times' in self._jobject.metadata:
self._jobject.metadata['spent-times'] += ', 0'
else:
self._jobject.metadata['spent-times'] = '0'
self.shared_activity = None
self._join_id = None
if handle.object_id is None:
logging.debug('Creating a jobject.')
self._jobject = self._initialize_journal_object()
if handle.invited:
wait_loop = GObject.MainLoop()
self._client_handler = _ClientHandler(
self.get_bundle_id(),
partial(self.__got_channel_cb, wait_loop))
# FIXME: The current API requires that self.shared_activity is set
# before exiting from __init__, so we wait until we have got the
# shared activity. http://bugs.sugarlabs.org/ticket/2168
wait_loop.run()
else:
pservice = presenceservice.get_instance()
mesh_instance = pservice.get_activity(self._activity_id,
warn_if_none=False)
self._set_up_sharing(mesh_instance, share_scope)
if self.shared_activity is not None:
self._jobject.metadata['title'] = self.shared_activity.props.name
self._jobject.metadata['icon-color'] = \
self.shared_activity.props.color
else:
self._jobject.metadata.connect('updated',
self.__jobject_updated_cb)
self.set_title(self._jobject.metadata['title'])
bundle = get_bundle_instance(get_bundle_path())
self.set_icon_from_file(bundle.get_icon())