Пример #1
0
    def _contacts_as_dbus_structure(self, contacts):
        """
        Get info from list of Contact objects and create dbus dict
        """
        if not contacts:
            return None
        prim_contact = None  # primary contact
        for contact in contacts:
            if prim_contact is None or contact.priority > prim_contact.priority:
                prim_contact = contact
        contact_dict = {}
        name = prim_contact.name if prim_contact.name is not None else ''
        contact_dict['name'] = GLib.Variant('s', name)
        contact_dict['show'] = GLib.Variant('s', prim_contact.show)
        contact_dict['jid'] = GLib.Variant('s', prim_contact.jid)

        resources = GLib.VariantBuilder(GLib.VariantType('a(sis)'))
        for contact in contacts:
            resource_props = (contact.resource, int(contact.priority),
                              contact.status)
            resources.add_value(GLib.Variant('(sis)', resource_props))
        contact_dict['resources'] = resources.end()

        groups = GLib.VariantBuilder(GLib.VariantType('as'))
        for group in prim_contact.groups:
            groups.add_value(GLib.Variant('s', group))
        contact_dict['groups'] = groups.end()
        return contact_dict
Пример #2
0
 def create_configuration_variant(self):
     try:
         b = GLib.VariantBuilder(GLib.VariantType.new('a{sv}'))
         b.add_value(self.create_dict_entry_boolean('initialized', self.initialized))
         b.add_value(self.create_dict_entry_boolean('defaultNamespaces', self.default_namespaces))
         b.add_value(self.create_dict_entry_boolean('defaultVapiDirs', self.default_vapi_dirs))
         b.add_value(self.create_dict_entry_boolean('scanWorkspace', self.scan_work_space))
         b.add_value(self.create_dict_entry_boolean('addUsingNamespaces', self.add_using_namespaces))
         b.add_value(self.create_dict_entry_boolean('mesonBuildSystem', self.meson_build_system))
         b.add_value(self.create_dict_entry_string('libraryVapi', self.library_vapidir))
         b.add_value(self.create_dict_entry_string('systemVapi', self.system_vapidir))
         b.add_value(self.create_dict_entry_string('valaApiVersion', self.vala_api_version))
         b.add_value(self.create_dict_entry_string('mesonCompileCommands', self.meson_compile_commands))
         ad = GLib.Variant.new_string ('valaArgs')
         vadi = self.dict_to_array_variant(self.vala_args)
         adi = GLib.Variant.new_dict_entry(ad, GLib.Variant.new_variant (vadi))
         b.add_value(adi)
         od = GLib.Variant.new_string ('options')
         vodi = self.list_to_variant(self.options)
         odi = GLib.Variant.new_dict_entry(od, GLib.Variant.new_variant (vodi))
         b.add_value(odi)
         pd = GLib.Variant.new_string ('packages')
         vpdi = self.list_to_variant(self.packages)
         pdi = GLib.Variant.new_dict_entry(pd, GLib.Variant.new_variant (vpdi))
         b.add_value(pdi)
         fd = GLib.Variant.new_string ('files')
         vfdi = self.list_to_variant(self.files)
         fdi = GLib.Variant.new_dict_entry(fd, GLib.Variant.new_variant (vfdi))
         b.add_value(fdi)
         return GLib.Variant.new_variant (b.end())
     except Error as e:
         Ide.debug ('On Load Configuration Error: {}'.format(e.message))
         return GLib.Variant ('a{sv}', {})
Пример #3
0
    def recurrence_generated(self, ical_comp, instance_start, instance_end,
                             calendar, cancellable):
        if calendar.view_cancellable.is_cancelled():
            return False

        comp = ECal.Component.new_from_icalcomponent(ical_comp)
        all_objects = GLib.VariantBuilder(GLib.VariantType.new("a(sssbxx)"))

        comptext = comp.get_summary()
        if comptext != None:
            summary = comptext.get_value()
        else:
            summary = ""

        default_zone = calendar.client.get_default_timezone()

        dts_timezone = instance_start.get_timezone()
        if dts_timezone == None:
            dts_timezone = default_zone

        dte_timezone = instance_end.get_timezone()
        if dte_timezone == None:
            dte_timezone = default_zone

        all_day = instance_start.is_date()
        start_timet = instance_start.as_timet_with_zone(dts_timezone)
        end_timet = instance_end.as_timet_with_zone(dte_timezone)
        mod_timet = self.get_mod_timet(ical_comp)

        event = Event(self.create_uid(calendar, comp), calendar.color, summary,
                      all_day, start_timet, end_timet, mod_timet)

        self.emit_events_added_or_updated(calendar, [event])

        return True
Пример #4
0
 def dict_to_array_variant(self, d):
     b = GLib.VariantBuilder(GLib.VariantType.new('av'))
     for k in d.keys():
         a = d[k]
         b2 = GLib.VariantBuilder(GLib.VariantType.new('a{sv}'))
         ndi = GLib.Variant.new_string('name')
         vndi = GLib.Variant.new_variant(GLib.Variant.new_string(k))
         di = GLib.Variant.new_dict_entry(ndi, vndi)
         vdi = GLib.Variant.new_variant(di)
         b2.add_value(di)
         vdi = GLib.Variant.new_string('value')
         vvdi = GLib.Variant.new_variant(GLib.Variant.new_string(a))
         div = GLib.Variant.new_dict_entry(vdi, vvdi)
         vdi = GLib.Variant.new_variant(div)
         b2.add_value(div)
         b.add_value(GLib.Variant.new_variant(b2.end()))
     return b.end()
Пример #5
0
 def properties_changed(self, props, dest=None):
     '''
     Send a PropertiesChanged signal to the given destination (if any).
     The props argument is a { name: value } dictionary of the
     property values, the values are GVariant.bool, etc.
     '''
     builder = GLib.VariantBuilder(GLib.VariantType('a{sv}'))
     for name, value in props.items():
         de = GLib.Variant.new_dict_entry(GLib.Variant.new_string(name),
                                          GLib.Variant.new_variant(value))
         builder.add_value(de)
     properties = builder.end()
     inval_props = GLib.VariantBuilder(GLib.VariantType('as'))
     inval_props = inval_props.end()
     self.connection.emit_signal(
         dest, self.objpath, 'org.freedesktop.DBus.Properties',
         'PropertiesChanged',
         GLib.Variant.new_tuple(GLib.Variant.new_string(self.interface),
                                properties, inval_props))
Пример #6
0
 def serialize(cls, dict_item):
     builder = GLib.VariantBuilder(GLib.VariantType('r'))
     builder.add_value(GLib.Variant.new_string(dict_item.id))
     builder.add_value(GLib.Variant.new_string(dict_item.short_label))
     builder.add_value(GLib.Variant.new_string(dict_item.long_label))
     builder.add_value(GLib.Variant.new_string(dict_item.icon))
     builder.add_value(GLib.Variant.new_boolean(dict_item.is_system))
     builder.add_value(GLib.Variant.new_int32(dict_item.preview_lines))
     builder.add_value(GLib.Variant.new_boolean(dict_item.embed))
     builder.add_value(GLib.Variant.new_boolean(dict_item.single))
     builder.add_value(GLib.Variant.new_boolean(dict_item.reverse))
     builder.add_value(GLib.Variant.new_string(dict_item.encoding))
     return builder.end()
Пример #7
0
 def _notify_change_configuration(self):
     try:
         vconf = self.create_configuration_variant(None)
         cancellable = self._client.ref_cancellable()
         b = GLib.VariantBuilder(GLib.VariantType.new('a{sv}'))
         vk = GLib.Variant.new_string ('settings')
         vv = GLib.Variant.new_variant(GLib.Variant.new_variant(vconf))
         de = GLib.Variant.new_dict_entry(vk, vv)
         b.add_value(de)
         vnotify = GLib.Variant.new_variant(b.end())
         self._client.send_notification_async("workspace/didChangeConfiguration", vnotify, cancellable, self._did_change_configuration, None)
     except BaseException as exc:
         Ide.debug('Notify change configuration error: {}'.format(exc.args))
    def _emit_signal(self, signal, *args):
        retval = GLib.VariantBuilder(variant_type_from_string('r'))
        for arg in args:
            retval.add_value(GLib.Variant.new_string(arg))

        self._debug('[DBUS] emitting signal %s.%s(%s)', self.get_application_id(), signal, str(args))
        self.get_dbus_connection().emit_signal(
            None,
            self.get_dbus_object_path(),
            self.get_application_id(),
            signal,
            retval.end()
        )
Пример #9
0
    def variant_list(l):
        """ Converts a list to a GLib.Variant
        """

        # If this is a zero-length array, handle it specially
        if len(l) == 0:
            return GLib.Variant.new_array(GLib.VariantType("v"))

        # Build the array from each entry
        builder = GLib.VariantBuilder(GLib.VariantType("a*"))
        for item in l:
            if item is None:
                item = ""
            builder.add_value(ModulemdUtil.python_to_variant(item))

        return builder.end()
Пример #10
0
 def create_configuration_variant(self):
     try:
         b = GLib.VariantBuilder(GLib.VariantType.new('a{sv}'))
         b.add_value(
             self.create_dict_entry_boolean('initialized',
                                            self.initialized))
         b.add_value(
             self.create_dict_entry_boolean('defaultNamespaces',
                                            self.default_namespaces))
         b.add_value(
             self.create_dict_entry_boolean('defaultVapiDirs',
                                            self.default_vapi_dirs))
         b.add_value(
             self.create_dict_entry_boolean('scanWorkspace',
                                            self.scan_work_space))
         b.add_value(
             self.create_dict_entry_boolean('addUsingNamespaces',
                                            self.add_using_namespaces))
         b.add_value(
             self.create_dict_entry_boolean('mesonBuildSystem',
                                            self.meson_build_system))
         ad = GLib.Variant.new_string('valaArgs')
         vadi = self.dict_to_array_variant(self.vala_args)
         adi = GLib.Variant.new_dict_entry(ad,
                                           GLib.Variant.new_variant(vadi))
         b.add_value(adi)
         od = GLib.Variant.new_string('options')
         vodi = self.list_to_variant(self.options)
         odi = GLib.Variant.new_dict_entry(od,
                                           GLib.Variant.new_variant(vodi))
         b.add_value(odi)
         pd = GLib.Variant.new_string('packages')
         vpdi = self.list_to_variant(self.packages)
         pdi = GLib.Variant.new_dict_entry(pd,
                                           GLib.Variant.new_variant(vpdi))
         b.add_value(pdi)
         fd = GLib.Variant.new_string('files')
         vfdi = self.list_to_variant(self.files)
         fdi = GLib.Variant.new_dict_entry(fd,
                                           GLib.Variant.new_variant(vfdi))
         b.add_value(fdi)
         return GLib.Variant.new_variant(b.end())
     except:
         print('>>>>>>>>>>>>>>>> On Load Configuration Error:\n\n\n')
         return GLib.Variant('a{sv}', {})
         print('\n\n\n')
Пример #11
0
    def emit_events_added_or_updated(self, calendar, events):
        # print("package: ",len(events))
        all_events = GLib.VariantBuilder(GLib.VariantType.new("a(sssbxxx)"))

        for event in events:
            if event.end_timet <= (calendar.start -
                                   1) and event.start_timet >= calendar.end:
                continue

            event_var = GLib.Variant("(sssbxxx)", [
                event.uid, event.color, event.summary, event.all_day,
                event.start_timet, event.end_timet, event.mod_timet
            ])

            all_events.add_value(event_var)

        self.interface.emit_events_added_or_updated(all_events.end())
Пример #12
0
 def list_to_variant(self, l):
     b = GLib.VariantBuilder(GLib.VariantType.new('av'))
     for s in l:
         v = GLib.Variant.new_string(s)
         b.add_value(GLib.Variant.new_variant(v))
     return b.end()