Example #1
0
 def fill_table_with_accounts(self, accounts):
     iconset = gajim.config.get('iconset')
     if not iconset:
         iconset = 'dcraven'
     file_path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
     for acct in accounts:
         message = acct['message']
         # before reducing the chars we should assure we send unicode, else
         # there are possible pango TBs on 'set_markup'
         if isinstance(message, str):
             message = unicode(message, encoding='utf-8')
         message = helpers.reduce_chars_newlines(message, 100, 1)
         message = gobject.markup_escape_text(message)
         if acct['name'] in gajim.con_types and \
          gajim.con_types[acct['name']] in ('tls', 'ssl'):
             show_lock = True
         else:
             show_lock = False
         if message:
             self.add_status_row(file_path, acct['show'],
              gobject.markup_escape_text(acct['name']) + \
              ' - ' + message, show_lock=show_lock, indent=False)
         else:
             self.add_status_row(file_path,
                                 acct['show'],
                                 gobject.markup_escape_text(acct['name']),
                                 show_lock=show_lock,
                                 indent=False)
         for line in acct['event_lines']:
             self.add_text_row('  ' + line, 1)
Example #2
0
    def __set_object(self, obj):
        self.__obj = obj
        self.__orepr.set_markup(
            _('<b>Object</b>: %s') % (gobject.markup_escape_text(repr(obj), )))
        self.__oclass.set_markup(
            _('<b>Type</b>: %s') %
            (gobject.markup_escape_text(repr(type(obj))), ))

        try:
            if isinstance(obj, type):
                osrc_target = obj
            else:
                osrc_target = type(obj)
            srcpath = inspect.getsourcefile(osrc_target)
        except TypeError as e:
            _logger.debug("failed to get sourcefile", exc_info=True)
            srcpath = None
        if srcpath:
            self.__definedin.set_text(srcpath)

        doc = inspect.getdoc(obj)
        if doc:
            self.__doctext.get_buffer().set_text(doc)
        else:
            self.__doctext.get_buffer().insert_at_cursor(_('(Not documented)'))
        self.__set_members()
Example #3
0
	def displayNextEntry(self):
		''' Get next entry from the queue and display it in the window. '''
		assert len(self.__class__.entries)>0

		newentry = self.__class__.entries.pop(0)
		
		# fill the fields
		if newentry.feed_link is not None:
			self.feed_title_label.set_markup(
				u'<span foreground="blue" underline="single">%s</span>' % \
				gobject.markup_escape_text(newentry.feed_title))
		else:
			self.feed_title_label.set_markup(
				gobject.markup_escape_text(newentry.feed_title))

		self.feed_tagline_label.set_markup(
			u'<small>%s</small>' % \
			gobject.markup_escape_text(newentry.feed_tagline))

		if newentry.uri is not None:
			self.entry_title_label.set_markup(
				u'<span foreground="blue" underline="single">%s</span>' % \
				gobject.markup_escape_text(newentry.title))
		else:
			self.entry_title_label.set_markup(
				gobject.markup_escape_text(newentry.title))

		self.last_modified_label.set_text(newentry.updated)

		# update the counters
		self.updateCounter()

		self.entry = newentry
Example #4
0
 def _markup_escape_contact(self, contact):
     """return contact with escaped markup"""
     return (
         gobject.markup_escape_text(contact.display_name),
         gobject.markup_escape_text(contact.nick),
         gobject.markup_escape_text(contact.message),
     )
Example #5
0
    def format_nick(self, contact):
        """replace the appearance of the template vars using the values of
        the contact
        # valid values:
        # + NICK
        # + ACCOUNT
        # + DISPLAY_NAME (alias if available, or nick if available or mail)
        # + STATUS
        # + MESSAGE
        # + NL
        """
        message = gobject.markup_escape_text(contact.message)
        nick = gobject.markup_escape_text(contact.nick)
        display_name = gobject.markup_escape_text(contact.display_name)

        template = self.nick_template
        template = template.replace("[$NL]", "\n")
        template = template.replace("[$NICK]", self.escape_tags(nick))
        template = template.replace("[$ACCOUNT]", self.escape_tags(contact.account))
        template = template.replace("[$MESSAGE]", self.escape_tags(message))
        template = template.replace("[$STATUS]", self.escape_tags(e3.status.STATUS[contact.status]))
        template = template.replace("[$DISPLAY_NAME]", self.escape_tags(display_name))

        blocked_text = ""

        if contact.blocked:
            blocked_text = "(blocked)"

        template = template.replace("[$BLOCKED]", blocked_text)

        return template
Example #6
0
 def __append_builtin_arghelp(self, builtin):
     if builtin.argspec is None:
         self._buf.insert_markup('    <i>%s</i>\n' % (_('(No arguments)'),))                        
     elif builtin.argspec is not False:
         self._buf.insert_markup('    %s: ' % (_('Arguments'),))             
         if isinstance(builtin.argspec, tuple):
             for arg in builtin.argspec:
                 argname = gobject.markup_escape_text(arg.name)
                 if arg.opt:
                     argname = '[%s]' % (argname,)
                 self._buf.insert_markup('%s ' % (argname,))
         elif isinstance(builtin.argspec, MultiArgSpec):
             argname = gobject.markup_escape_text(builtin.argspec.name) + '*'
             self._buf.insert_markup(argname)
         else:
             assert False 
         self._buf.insert_markup('\n')
     else:
         assert builtin.argspec is False
         self._buf.insert_markup('    <i>%s</i>\n' % (_('(Unspecified arguments)'),))
     if not builtin.options:
         self._buf.insert_markup('    <i>%s</i>\n' % (_('(No options)'),))
     else:
         argstr = '  '.join(map(lambda x: ','.join(x), builtin.options))
         self._buf.insert_markup('    %s: ' % (_('Options'),))
         self._buf.insert_markup('<tt>' + gobject.markup_escape_text(argstr) + '</tt>')
         self._buf.insert_markup('\n')                
Example #7
0
def _run_dialog(short, long=None, parent=None, buttons=gtk.BUTTONS_NONE,
                dlg_type=gtk.STOCK_DIALOG_INFO, title=None):
    if dlg_type == gtk.STOCK_DIALOG_ERROR:
        dlg_type2 = gtk.MESSAGE_ERROR
    elif dlg_type == gtk.STOCK_DIALOG_WARNING:
        dlg_type2 = gtk.MESSAGE_WARNING
    elif dlg_type == gtk.STOCK_DIALOG_QUESTION:
        dlg_type2 = gtk.MESSAGE_QUESTION
    else:
        dlg_type2 = gtk.MESSAGE_INFO
    if title is None:
        title = DIALOG_TITLES.get(dlg_type, 'CrunchyFrog')
    dlg = gtk.MessageDialog(parent,
                            gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
                            dlg_type2, buttons)
    short = gobject.markup_escape_text(short)
    dlg.set_markup('<b>%s</b>' % short)
    if long is not None:
        dlg.format_secondary_markup(gobject.markup_escape_text(long))
    img = gtk.image_new_from_stock(dlg_type, gtk.ICON_SIZE_DIALOG)
    dlg.set_image(img)
    dlg.set_title(title)
    dlg.set_icon_name('crunchyfrog')
    img.show()
    ret = dlg.run()
    dlg.destroy()
    return ret
Example #8
0
 def add_tweet(self, tweet):
     p = self.mainwin.parse_tweet(tweet)
     pix = self.mainwin.get_user_avatar(p['username'], p['avatar'])
     
     urls = [gobject.markup_escape_text(u) for u in util.detect_urls(p['text'])]
     
     pango_twt = gobject.markup_escape_text(p['text'])
     pango_twt = '<span size="9000"><b>@%s</b> %s</span>' % (p['username'], pango_twt)
     pango_twt = self.__highlight_hashtags(pango_twt)
     pango_twt = self.__highlight_mentions(pango_twt)
     pango_twt = self.__highlight_urls(urls, pango_twt)
     pango_twt += '<span size="2000">\n\n</span>'
     
     footer = '<span size="small" foreground="#999">%s' % p['datetime']
     if p['client']: 
         footer += ' desde %s' % p['client']
     if p['in_reply_to_user']:
         footer += ' en respuesta a %s' % p['in_reply_to_user']
     if p['retweet_by']:
         footer += '\nRetweeted by %s' % p['retweet_by']
     footer += '</span>'
     
     pango_twt += footer
     #color = gtk.gdk.Color(255*257, 242*257, 212*257) if p['fav'] else None
     color = gtk.gdk.Color(250*257, 237*257, 187*257) if p['fav'] else None
     
     self.model.append([pix, p['username'], p['datetime'], p['client'], 
         pango_twt, p['text'], p['id'], p['fav'], p['in_reply_to_id'], 
         p['in_reply_to_user'], p['retweet_by'], color])
     del pix
Example #9
0
    def __xmms_cb_id_info(self, result):
        if not result.value():
            # Wtf? Why is xmms2 not giving us the information we requested?
            self.info_label.set_markup(_('<b>No info found</b>\nI blame xmms2'))
            return

        try:
            picture_front = result.value()['picture_front']
            self.__at.xmms.bindata_retrieve(picture_front,
                    cb=self.__xmms_cb_bindata_retrieve)
        except KeyError:
            ca = CoverArt(None, 64)
            self.cover_art.set_from_pixbuf(ca.pixbuf)

        try:
            artist = result.value()['artist']
        except KeyError:
            artist = const.UNKNOWN
        try:
            title = result.value()['title']
        except KeyError:
            title = '%s (%s)' % (const.UNKNOWN, result.value()['url'])
        try:
            album = result.value()['album']
        except KeyError:
            album = const.UNKNOWN

        self.info_label.set_markup(
                '<b>%s</b>\n<small>by</small> %s <small>from</small> %s' %
                (markup_escape_text(title), markup_escape_text(artist),
                    markup_escape_text(album)))
Example #10
0
    def update_information(self):
        '''update the information of the contact'''
        if self.contact:
            if self.contact.display_name == self.contact.nick:
                self.nick.set_markup(
                    gobject.markup_escape_text(self.contact.display_name))
            else:
                self.nick.set_markup(
                    gobject.markup_escape_text(self.contact.nick + ' (' +
                                               self.contact.display_name +
                                               ')'))

            self.mail.set_markup(self.contact.account)
            self.message.set_markup(
                gobject.markup_escape_text(self.contact.message))
            self.status.set_from_file(
                gui.theme.image_theme.status_icons[self.contact.status])

            self.image.set_from_file(self.contact.picture,
                                     self.contact.blocked)

            if self.contact.blocked:
                self.blocked.set_markup(_('Yes'))
            else:
                self.blocked.set_markup(_('No'))
Example #11
0
def _run_dialog(short,
                long=None,
                parent=None,
                buttons=gtk.BUTTONS_NONE,
                dlg_type=gtk.STOCK_DIALOG_INFO,
                title=None):
    if dlg_type == gtk.STOCK_DIALOG_ERROR:
        dlg_type2 = gtk.MESSAGE_ERROR
    elif dlg_type == gtk.STOCK_DIALOG_WARNING:
        dlg_type2 = gtk.MESSAGE_WARNING
    elif dlg_type == gtk.STOCK_DIALOG_QUESTION:
        dlg_type2 = gtk.MESSAGE_QUESTION
    else:
        dlg_type2 = gtk.MESSAGE_INFO
    if title is None:
        title = DIALOG_TITLES.get(dlg_type, 'CrunchyFrog')
    dlg = gtk.MessageDialog(parent,
                            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                            dlg_type2, buttons)
    short = gobject.markup_escape_text(short)
    dlg.set_markup('<b>%s</b>' % short)
    if long is not None:
        dlg.format_secondary_markup(gobject.markup_escape_text(long))
    img = gtk.image_new_from_stock(dlg_type, gtk.ICON_SIZE_DIALOG)
    dlg.set_image(img)
    dlg.set_title(title)
    dlg.set_icon_name('crunchyfrog')
    img.show()
    ret = dlg.run()
    dlg.destroy()
    return ret
Example #12
0
    def on_get_value(self, rowref, column):
        name = rowref[0]
        child = -1
        if len(rowref) > 1:
            child = rowref[1]

        if column == self.BUSNAME_OBJ_COL:
            return name 
        elif column == self.UNIQUE_NAME_COL:
            return name.get_unique_name()
        elif column == self.COMMON_NAME_COL:
            return name.get_common_name()
        elif column == self.IS_PUBLIC_COL:
            return name.is_public()
        elif column == self.PROCESS_ID_COL:
            return name.get_process_id()
        elif column == self.PROCESS_PATH_COL:
            return name.get_process_path()
        elif column == self.PROCESS_NAME_COL:
            return name.get_process_name()
        elif column == self.ICON_COL:
            return name.get_icon()
        elif column == self.DISPLAY_COL:
            if child == -1:
                return '<b>' + gobject.markup_escape_text(name.get_display_name()) + '</b>'
            elif child == 1:
                return '<b>Command Line: </b>' + gobject.markup_escape_text(name.get_process_name()) + ' (' + gobject.markup_escape_text(str(name.get_process_id())) + ')' 
            elif child == 0:
                return '<b>Unique Name: </b>'+ gobject.markup_escape_text(name.get_unique_name())
        else:
            raise InvalidColumnError(column) 

        return None
Example #13
0
	def fill_table_with_accounts(self, accounts):
		iconset = gajim.config.get('iconset')
		if not iconset:
			iconset = 'dcraven'
		file_path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
		for acct in accounts:
			message = acct['message']
			# before reducing the chars we should assure we send unicode, else 
			# there are possible pango TBs on 'set_markup'
			if isinstance(message, str):
				message = unicode(message, encoding = 'utf-8')
			message = helpers.reduce_chars_newlines(message, 100, 1)
			message = gobject.markup_escape_text(message)
			if acct['name'] in gajim.con_types and \
				gajim.con_types[acct['name']] in ('tls', 'ssl'):
				show_lock = True
			else:
				show_lock = False
			if message:
				self.add_status_row(file_path, acct['show'], 
					gobject.markup_escape_text(acct['name']) + \
					' - ' + message, show_lock=show_lock, indent=False)
			else:
				self.add_status_row(file_path, acct['show'], 
					gobject.markup_escape_text(acct['name']) 
					, show_lock=show_lock, indent=False)
			for line in acct['event_lines']:
				self.add_text_row('  ' + line, 1)
Example #14
0
    def displayNextEntry(self):
        ''' Get next entry from the queue and display it in the window. '''
        assert len(self.__class__.entries) > 0

        newentry = self.__class__.entries.pop(0)

        # fill the fields
        if newentry.feed_link is not None:
            self.feed_title_label.set_markup(
             u'<span foreground="blue" underline="single">%s</span>' % \
             gobject.markup_escape_text(newentry.feed_title))
        else:
            self.feed_title_label.set_markup(
                gobject.markup_escape_text(newentry.feed_title))

        self.feed_tagline_label.set_markup(
         u'<small>%s</small>' % \
         gobject.markup_escape_text(newentry.feed_tagline))

        if newentry.uri is not None:
            self.entry_title_label.set_markup(
             u'<span foreground="blue" underline="single">%s</span>' % \
             gobject.markup_escape_text(newentry.title))
        else:
            self.entry_title_label.set_markup(
                gobject.markup_escape_text(newentry.title))

        self.last_modified_label.set_text(newentry.updated)

        # update the counters
        self.updateCounter()

        self.entry = newentry
Example #15
0
    def format_nick(self, contact):
        '''replace the appearance of the template vars using the values of
        the contact
        # valid values:
        # + NICK
        # + ACCOUNT
        # + DISPLAY_NAME (alias if available, or nick if available or mail)
        # + STATUS
        # + MESSAGE
        # + NL
        '''
        message = gobject.markup_escape_text(
                contact.message).replace('%MESSAGE%', '% MESSAGE %')
        nick = gobject.markup_escape_text(
                contact.nick).replace('%NICK%', '% NICK %')
        display_name = gobject.markup_escape_text(
                contact.display_name).replace('%DISPLAY_NAME%', '% DISPLAY_NAME %')

        template = self.nick_template
        template = template.replace('%NL%', '\n')
        template = template.replace('%ACCOUNT%',
            gobject.markup_escape_text(contact.account))
        template = template.replace('%STATUS%',
            gobject.markup_escape_text(e3.status.STATUS[contact.status]))
        template = template.replace('%DISPLAY_NAME%', display_name)
        template = template.replace('%MESSAGE%', message)
        template = template.replace('%NICK%', nick)

        blocked_text = ''
        if contact.blocked:
            blocked_text = '(blocked)'

        template = template.replace('%BLOCKED%', blocked_text)

        return template
Example #16
0
    def __group_cell_func(self, col, cell, model, iter):
        obj = model.get_value(iter, 0)
        color, markup = self.style.mid[gtk.STATE_NORMAL], None

        if isinstance(obj, TFlag):
            color = None
            markup = '<b>%s</b>' % gobject.markup_escape_text(obj.ref)

        elif isinstance(obj, TField):
            # This is a property

            name = gobject.markup_escape_text(backend.get_field_name(obj.ref))
            proto = obj.proto

            if not backend.is_flags(obj.ref):
                color = None

            if backend.is_field_autofilled(obj.ref):
                markup = '<i>%s</i>' % name
            else:
                markup = '<b>%s</b>' % name
        else:
            # Ok. This is the protocol
            name = gobject.markup_escape_text(backend.get_proto_name(obj))
            markup = '<b>%s</b>' % name

        # Setting the values
        cell.set_property('cell-background-gdk', color)
        cell.set_property('markup', markup)
Example #17
0
    def map_user_event(self, stamp, name, account, data):
        '''create a dict with the data from a user event that can 
        be used to replace values on the template'''

        return {'mail' : account, 
        'data' : gobject.markup_escape_text(data), 
        'date' : gobject.markup_escape_text(time.ctime(stamp)), 
        'event' : gobject.markup_escape_text(name)}
Example #18
0
    def map_user_event(self, stamp, name, account, data):
        '''create a dict with the data from a user event that can 
        be used to replace values on the template'''

        return {'mail' : account, 
        'data' : gobject.markup_escape_text(data), 
        'date' : gobject.markup_escape_text(time.ctime(stamp)), 
        'event' : gobject.markup_escape_text(name)}
Example #19
0
    def __property_cell_func(self, col, cell, model, iter):
        cell.editor, cell.field = None, None
        cell.set_property('editable', False)
        cell.set_property('text', '')

        obj = model.get_value(iter, 0)

        if isinstance(obj, TField) and backend.is_flags(obj.ref):
            # Flag container

            cell.set_property('cell-background-gdk',
                              self.style.mid[gtk.STATE_NORMAL])

            value = backend.get_field_value_repr(obj.proto, obj.ref)

            try:
                if value:
                    cell.set_property('markup', '<tt>%s</tt>' % \
                                  gobject.markup_escape_text(unicode(value)))
            except UnicodeDecodeError:
                cell.set_property('markup', _('<tt>N/A</tt>'))


        # If we are a field or a string (a sub field of flags)
        elif isinstance(obj, (TField, TFlag)):

            cell.field = None
            cell.set_property('editable', True)
            cell.set_property('cell-background-gdk', None)

            # We have a standard field

            if isinstance(obj, TField):
                value = backend.get_field_value(obj.proto, obj.ref)

                if value is not None:
                    try:
                        value = gobject.markup_escape_text(unicode(value))
                    except UnicodeDecodeError:
                        value = None

                if not value:
                    value = _("N/A")

                cell.set_property('markup', '<tt>%s</tt>' % value)
                cell.editor = get_editor(obj.ref)

                if cell.editor:
                    cell.field = (obj.proto, obj.ref)

            elif isinstance(obj, TFlag):
                # We have a subkey of Flags

                cell.editor = BitEditor
                cell.field = (obj.proto, obj.field.ref, obj.ref)
        else:
            cell.set_property('cell-background-gdk',
                              self.style.mid[gtk.STATE_NORMAL])
Example #20
0
    def format_nick(self, contact):
        '''replace the appearance of the template vars using the values of
        the contact
        # valid values:
        # + NICK
        # + ACCOUNT
        # + DISPLAY_NAME (alias if available, or nick if available or mail)
        # + STATUS
        # + MESSAGE
        # + NL
        '''
        message = gobject.markup_escape_text(contact.message)
        nick = gobject.markup_escape_text(contact.nick)
        display_name = gobject.markup_escape_text(contact.display_name)

        #TODO: fix those "no-more-color" with msgplus codes, '&#173;'?
        def fix_plus(text):
            escaped = self.escape_tags(text)
            pos = escaped.find("\xc2\xb7")
            tail = ""
            irc = "#&@'"
            flag = False
            while pos != -1:
                try:
                    char = escaped[pos+2]
                    if char in irc and escaped.count("\xc2\xb7"+char)%2 != 0:
                        tail = "\xc2\xb7" + char + tail
                        irc = irc.replace(char,"")
                    flag = flag or char == "$"
                except:
                    pos = pos+1
                pos = escaped.find("\xc2\xb7",pos+2)
            if flag:
                tail += "no-more-color"
            return escaped + tail

        template = self.nick_template
        template = template.replace('[$NL]', '\n')
        template = template.replace('[$NICK]',
                fix_plus(nick))
        template = template.replace('[$ACCOUNT]',
                self.escape_tags(contact.account))
        template = template.replace('[$MESSAGE]',
                fix_plus(message))
        template = template.replace('[$STATUS]',
                self.escape_tags(e3.status.STATUS[contact.status]))
        template = template.replace('[$DISPLAY_NAME]',
                fix_plus(display_name))
        
        blocked_text = ''

        if contact.blocked:
            blocked_text = _('Blocked')

        template = template.replace('[$BLOCKED]', blocked_text)

        return template
Example #21
0
 def asMarkupText(self):
     assert not self._retracted
     untranslated_mood = self._pep_specific_data['mood']
     mood = self._translate_mood(untranslated_mood)
     markuptext = '<b>%s</b>' % gobject.markup_escape_text(mood)
     if 'text' in self._pep_specific_data:
         text = self._pep_specific_data['text']
         markuptext += ' (%s)' % gobject.markup_escape_text(text)
     return markuptext
Example #22
0
    def __init__(self,
                 title=None,
                 path_to_image=None,
                 text=None,
                 bg_color=BG_COLOR,
                 timeout=8000):
        xml = gtk.Builder()
        xml.add_from_string(XML_WINDOW)

        self.window = xml.get_object('popup_notification_window')

        if gtk.gtk_version >= (2, 10, 0) and gtk.pygtk_version >= (2, 10, 0):
            self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLTIP)

        close_button = xml.get_object('close_button')
        event_type_label = xml.get_object('event_type_label')
        event_description_label = xml.get_object('event_description_label')
        eventbox = xml.get_object('eventbox')
        image = xml.get_object('notification_image')

        if not text:
            text = ''
        if not title:
            title = ''

        event_type_label.set_markup(
            '<span foreground="black" weight="bold">%s</span>' %
            gobject.markup_escape_text(title))

        # set colors [ http://www.pitt.edu/~nisg/cis/web/cgi/rgb.html ]
        self.window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))

        popup_bg_color = gtk.gdk.color_parse(bg_color)
        close_button.modify_bg(gtk.STATE_NORMAL, popup_bg_color)
        eventbox.modify_bg(gtk.STATE_NORMAL, popup_bg_color)
        event_description_label.set_markup(
            '<span foreground="black">%s</span>' %
            gobject.markup_escape_text(text))

        # set the image
        image.set_from_file(path_to_image)

        # position the window to bottom-right of screen
        window_width, self.window_height = self.window.get_size()
        popup_manager.popups_notification_height += self.window_height

        pos_x = gtk.gdk.screen_width() - window_width + 1 + POS_X
        pos_y = gtk.gdk.screen_height() - \
            popup_manager.popups_notification_height + 1 + POS_Y
        self.window.move(pos_x, pos_y)

        xml.connect_signals(self)
        self.window.show_all()
        gobject.timeout_add(timeout, self.on_timeout)

        popup_manager.popup_notification_windows.append(self)
Example #23
0
 def format_nick(self, contact):
     """replace the appearance of the template vars using the values of
     the contact
     """
     template = self.nick_template
     template = template.replace("%NICK%", gobject.markup_escape_text(contact.nick))
     template = template.replace("%ACCOUNT%", gobject.markup_escape_text(contact.account))
     template = template.replace("%MESSAGE%", gobject.markup_escape_text(contact.message))
     template = template.replace("%STATUS%", gobject.markup_escape_text(status.STATUS[contact.status]))
     template = template.replace("%DISPLAY_NAME%", gobject.markup_escape_text(contact.display_name))
     return template
Example #24
0
 def make_objects_frame(objs, title):
     frame_label = gtk.Label()
     frame_label.set_markup(u"<b>%s</b>" %
                            gobject.markup_escape_text(title))
     frame_label.set_alignment(0, 0)
     objvbox = gtk.VBox()
     objvbox.pack_start(frame_label, False)
     objvbox.set_property("spacing", 3)
     for item in objs:
         plugin_type = plugins.get_plugin_attribute(plugin_id, item)
         if not plugin_type:
             continue
         hbox = gtk.HBox()
         hbox.set_property("spacing", 3)
         obj = plugin_type()
         name = unicode(obj)
         desc = obj.get_description() or u""
         gicon = obj.get_icon()
         im = gtk.Image()
         im.set_property("gicon", gicon)
         im.set_property("pixel-size", 32)
         hbox.pack_start(im, False)
         m_name = gobject.markup_escape_text(name)
         m_desc = gobject.markup_escape_text(desc)
         name_label = \
          u"%s\n<small>%s</small>" % (m_name, m_desc) if m_desc else \
          u"%s" % (m_name, )
         label = wrapped_label()
         label.set_markup(name_label)
         hbox.pack_start(label, False)
         objvbox.pack_start(hbox)
         # Display information for application content-sources.
         if not kobject_should_show(obj):
             continue
         try:
             leaf_repr = obj.get_leaf_repr()
         except AttributeError:
             continue
         if leaf_repr is None:
             continue
         hbox = gtk.HBox()
         hbox.set_property("spacing", 3)
         gicon = leaf_repr.get_icon()
         im = gtk.Image()
         im.set_property("gicon", gicon)
         im.set_property("pixel-size", 16)
         hbox.pack_start(gtk.Label(_("Content of")), False)
         hbox.pack_start(im, False)
         hbox.pack_start(gtk.Label(unicode(leaf_repr)), False)
         objvbox.pack_start(hbox)
     return objvbox
Example #25
0
		def make_objects_frame(objs, title):
			frame_label = gtk.Label()
			frame_label.set_markup(u"<b>%s</b>" %
			                       gobject.markup_escape_text(title))
			frame_label.set_alignment(0, 0)
			objvbox = gtk.VBox()
			objvbox.pack_start(frame_label, False)
			objvbox.set_property("spacing", 3)
			for item in objs:
				plugin_type = plugins.get_plugin_attribute(plugin_id, item)
				if not plugin_type:
					continue
				hbox = gtk.HBox()
				hbox.set_property("spacing", 3)
				obj = plugin_type()
				name = unicode(obj)
				desc = obj.get_description() or u""
				gicon = obj.get_icon()
				im = gtk.Image()
				im.set_property("gicon", gicon)
				im.set_property("pixel-size", 32)
				hbox.pack_start(im, False)
				m_name = gobject.markup_escape_text(name)
				m_desc = gobject.markup_escape_text(desc)
				name_label = \
					u"%s\n<small>%s</small>" % (m_name, m_desc) if m_desc else \
					u"%s" % (m_name, )
				label = wrapped_label()
				label.set_markup(name_label)
				hbox.pack_start(label, False)
				objvbox.pack_start(hbox)
				# Display information for application content-sources.
				if not kobject_should_show(obj):
					continue
				try:
					leaf_repr = obj.get_leaf_repr()
				except AttributeError:
					continue
				if leaf_repr is None:
					continue
				hbox = gtk.HBox()
				hbox.set_property("spacing", 3)
				gicon = leaf_repr.get_icon()
				im = gtk.Image()
				im.set_property("gicon", gicon)
				im.set_property("pixel-size", 16)
				hbox.pack_start(gtk.Label(_("Content of")), False)
				hbox.pack_start(im, False)
				hbox.pack_start(gtk.Label(unicode(leaf_repr)), False)
				objvbox.pack_start(hbox)
			return objvbox
Example #26
0
    def __init__(self, title=None, path_to_image=None, 
                 text=None, bg_color=BG_COLOR, timeout=8000):
        xml = gtk.Builder()
        xml.add_from_string(XML_WINDOW)
        
        self.window = xml.get_object('popup_notification_window')

        if gtk.gtk_version >= (2, 10, 0) and gtk.pygtk_version >= (2, 10, 0):
                self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLTIP)

        close_button = xml.get_object('close_button')
        event_type_label = xml.get_object('event_type_label')
        event_description_label = xml.get_object('event_description_label')
        eventbox = xml.get_object('eventbox')
        image = xml.get_object('notification_image')
            
        if not text:
            text = ''
        if not title:
            title = ''

        event_type_label.set_markup(
                '<span foreground="black" weight="bold">%s</span>' %
                gobject.markup_escape_text(title))

        # set colors [ http://www.pitt.edu/~nisg/cis/web/cgi/rgb.html ]
        self.window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))

        popup_bg_color = gtk.gdk.color_parse(bg_color)
        close_button.modify_bg(gtk.STATE_NORMAL, popup_bg_color)
        eventbox.modify_bg(gtk.STATE_NORMAL, popup_bg_color)
        event_description_label.set_markup('<span foreground="black">%s</span>' %
                                           gobject.markup_escape_text(text))

        # set the image
        image.set_from_file(path_to_image)

        # position the window to bottom-right of screen
        window_width, self.window_height = self.window.get_size()
        popup_manager.popups_notification_height += self.window_height
		
        pos_x = gtk.gdk.screen_width() - window_width + 1 + POS_X
        pos_y = gtk.gdk.screen_height() - \
            popup_manager.popups_notification_height + 1 + POS_Y
        self.window.move(pos_x, pos_y)
		
        xml.connect_signals(self)
        self.window.show_all()
        gobject.timeout_add(timeout, self.on_timeout)
            
        popup_manager.popup_notification_windows.append(self)
Example #27
0
    def __add_name_to_stores(self, xml_file, name_node, context_node):
        """Add name_node to the various gtk.TreeStores.

        Arguments:
        
        - `xml_file`: XMLFile object containing name_node
        - `name_node`: `lxml.etree.Element`
        - `context_node`: `lxml.etree.Element` of context for name

        """
        name_string = context_node.find('name').text
        normalised_name = self.__normalise_name(name_string)
        name = self.__names.setdefault(normalised_name, Name(name_string))
        # Get/add a name item to the file item.
        file_name_iter = self.__get_child_iter(xml_file, name,
                                               self.file_markup_tree)
        # Get/add a top-level name item.
        self.__get_root_iter(name, self.name_markup_tree)
        # Get/add a file item to the name item.
        name_file_iter = self.__get_child_iter(name, xml_file,
                                               self.name_markup_tree)
        # Get the preceding and following context.
        preceding = gobject.markup_escape_text(
            context_node.find('preceding').text or '')
        following = gobject.markup_escape_text(
            context_node.find('following').text or '')
        name_instance = NameInstance(name, name_node, xml_file, preceding,
                                     following)
        xml_file.add_name_instance(name_instance)
        name_key = name_instance.key_value
        if name_key is None:
            # Add a name instance item to the file/name item.
            file_instance_iter = self.file_markup_tree.append(
                file_name_iter, [False, name_instance, False])
            # Add a name instance item to the name/file item.
            name_instance_iter = self.name_markup_tree.append(
                name_file_iter, [False, name_instance, False])
            key_instance_iter = None
        else:
            file_instance_iter, name_instance_iter, key_instance_iter = self.__add_keyed_name_instance(
                name_instance, name, name_key, xml_file, file_name_iter,
                name_file_iter)
        name_instance.row_refs = (self.__get_ref_from_iter(
            self.file_markup_tree, file_instance_iter),
                                  self.__get_ref_from_iter(
                                      self.name_markup_tree,
                                      name_instance_iter),
                                  self.__get_ref_from_iter(
                                      self.key_markup_tree,
                                      key_instance_iter), None)
        self.name_count += 1.0
Example #28
0
	def get_status_info(self, resource, priority, show, status):
		str_status = resource + ' (' + unicode(priority) + ')'
		if status:
			status = status.strip()
			if status != '':
				# make sure 'status' is unicode before we send to to reduce_chars
				if isinstance(status, str):
					status = unicode(status, encoding='utf-8')
				# reduce to 100 chars, 1 line
				status = helpers.reduce_chars_newlines(status, 100, 1)
				str_status = gobject.markup_escape_text(str_status)
				status = gobject.markup_escape_text(status)
				str_status += ' - <i>' + status + '</i>'
		return str_status
Example #29
0
 def get_status_info(self, resource, priority, show, status):
     str_status = resource + ' (' + unicode(priority) + ')'
     if status:
         status = status.strip()
         if status != '':
             # make sure 'status' is unicode before we send to to reduce_chars
             if isinstance(status, str):
                 status = unicode(status, encoding='utf-8')
             # reduce to 100 chars, 1 line
             status = helpers.reduce_chars_newlines(status, 100, 1)
             str_status = gobject.markup_escape_text(str_status)
             status = gobject.markup_escape_text(status)
             str_status += ' - <i>' + status + '</i>'
     return str_status
Example #30
0
 def __set_object(self, obj):
     self.__obj = obj
     self.__orepr.set_markup(_('<b>Object</b>: %s')  % (gobject.markup_escape_text(repr(obj),)))
     self.__oclass.set_markup(_('<b>Type</b>: %s') % (gobject.markup_escape_text(repr(type(obj))),))
     
     try:
         if isinstance(obj, type):
             osrc_target = obj 
         else:
             osrc_target = type(obj)
         srcpath = inspect.getsourcefile(osrc_target)                
     except TypeError, e:
         _logger.debug("failed to get sourcefile", exc_info=True)
         srcpath = None
Example #31
0
	def get_title_string(self):
		rowString = ""
		markup = ""
		if(self.event.is_past()):
			markup+= 'strikethrough="true"'
		if(not self.event.is_confirmed()):
			markup+= 'font-style="italic"'
		if(self.event.is_all_day()):
			rowString = self.row_string_template % (markup, gobject.markup_escape_text(self.event.title.strip()) )
		else:
			if(self.event.is_now()):
				rowString = self.row_string_template_now % (markup, gobject.markup_escape_text(self.event.title.strip() ))
			else:
				rowString = self.row_string_template % (markup, gobject.markup_escape_text(self.event.title.strip() ))
		return rowString
Example #32
0
    def __del_bookmark_button_cb(self, widget, data):
        treeselection = self.bookmarks_treeview.get_selection()
        (model, list_iter) = treeselection.get_selected()
        bookmark = model.get_value(list_iter, 0)

        # Determine the current parent for this dialog
        parent = self.__get_current_window_parent()

        dlg = gtk.MessageDialog(parent = parent, \
                type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_OK_CANCEL)
        dlg.set_icon_from_file(self.window_icon_path)
        dlg.set_markup(MSG_DELETE_BOOKMARK_TITLE)
        dlg.format_secondary_markup(MSG_DELETE_BOOKMARK % gobject.markup_escape_text (bookmark.name))
        ret = dlg.run()
        dlg.destroy()

        if ret != gtk.RESPONSE_OK:
            return

        iter_tmp = model.get_iter(0)

        while iter_tmp != None:
            if model.get_value(iter_tmp, 0) == bookmark:
                model.remove(iter_tmp)
                break
            iter_tmp = model.iter_next(iter_tmp)

        bookmark.delete()
Example #33
0
    def __del_bookmark_button_cb(self, widget, data):
        treeselection = self.bookmarks_treeview.get_selection()
        (model, list_iter) = treeselection.get_selected()
        bookmark = model.get_value(list_iter, 0)

        # Determine the current parent for this dialog
        parent = self.__get_current_window_parent()

        dlg = gtk.MessageDialog(parent = parent, \
                type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_OK_CANCEL)
        dlg.set_icon_from_file(self.window_icon_path)
        dlg.set_markup(MSG_DELETE_BOOKMARK_TITLE)
        dlg.format_secondary_markup(MSG_DELETE_BOOKMARK %
                                    gobject.markup_escape_text(bookmark.name))
        ret = dlg.run()
        dlg.destroy()

        if ret != gtk.RESPONSE_OK:
            return

        iter_tmp = model.get_iter(0)

        while iter_tmp != None:
            if model.get_value(iter_tmp, 0) == bookmark:
                model.remove(iter_tmp)
                break
            iter_tmp = model.iter_next(iter_tmp)

        bookmark.delete()
Example #34
0
 def set_label(self, label):
     # escape special characters
     label = gobject.markup_escape_text(label.strip())
     # some hackery to preserve italics markup
     label = label.replace('&lt;i&gt;', '<i>').replace('&lt;/i&gt;', '</i>')
     self.label = label
     return
Example #35
0
    def on_music_view_right_press_items(self, widget, x, y, current_item,
                                        select_items):
        if current_item and select_items:
            selected_songs_id = [
                item.get_song()['id'] for item in select_items
            ]
            # 子菜单 - 添加到创建的歌单
            addto_submenu = [
                (None, _(gobject.markup_escape_text(key)), self.add_to_list,
                 selected_songs_id, self.CREATED_LISTS_DICT[key])
                for key in self.CREATED_LISTS_DICT.keys()
            ]
            addto_submenu.insert(
                0, (None, _('播放列表'), self.add_to_list, selected_songs_id, 0))
            addto_submenu = Menu(addto_submenu)

            if len(select_items) > 1:
                items = [
                    (None, _("播放"), lambda: self.add_play_emit(
                        [item.get_song()['id'] for item in select_items])),
                ]
            else:
                items = [
                    (None, _("播放"), lambda: self.add_play_emit(
                        [current_item.get_song()['id']])),
                ]
            items.insert(0, (None, _("添加到"), addto_submenu))
            Menu(items, True).show((int(x), int(y)))
Example #36
0
    def __initialize_font_list(self):
        """
        Construct font list
        """

        def compare_data(model, iter1, iter2):
            """
            Sorting function for the fonts list store
            """
            data1 = model.get_value(iter1,0)
            data2 = model.get_value(iter2,0)
            return cmp(data1, data2)        

        self.__fontlist=TreeViewFactory('list', ['str','markup'], [],treeview=self.__tview)
        
        # Get all system fonts
        self.__font_families=pangocairo.cairo_font_map_get_default().list_families()
        for family in self.__font_families:
            escaped=gobject.markup_escape_text(family.get_name())
            markedup='<span face="%s">%s</span>' % (escaped,escaped)
            self.__fontlist.append([family.get_name(),markedup])
        self.__tview.set_headers_visible(False)
        self.__tview.get_column(0).set_property('visible',False)
        self.__scroller.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC)
        self.__fontlist.storagemodel.set_sort_func(0,compare_data)
        self.__fontlist.storagemodel.set_sort_column_id(0,gtk.SORT_ASCENDING)
Example #37
0
 def set_text(button, sensitive=True):
     if sensitive:
         colour = HobColors.PALE_BLUE
     else:
         colour = HobColors.LIGHT_GRAY
     button.set_label("<span size='large' color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(button.text)))
     button.child.set_use_markup(True)
Example #38
0
 def _set_text(self, value):
     '''set the value of text'''
     self._text = value
     self.label.set_markup(
         Renderers.msnplus_to_list(
             gobject.markup_escape_text(self._text or self.empty_text)))
     self.entry.set_text(self._text)
Example #39
0
 def __append_builtin_aliases(self, builtin):
     if not builtin.aliases:
         return
     self._buf.insert_markup('    Aliases: ')
     names = ['<b>%s</b>' % (gobject.markup_escape_text(x),) for x in builtin.aliases]
     self._buf.insert_markup(', '.join(names))
     self._buf.insert_markup('\n')
 def __del_connection_button_cb(self, widget, data):
     treeselection = self.connections_treeview.get_selection()
     (model, iter) = treeselection.get_selected()
     default_conn = model.get_value(iter, 2)
     conn_name =  model.get_value(iter, 1)
     
     dlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK_CANCEL)
     dlg.set_icon_from_file(MSD.icons_files_dir + "connections_16x16.png")
     dlg.set_markup(MSD.MSG_DELETE_CONNECTION_TITLE)
     dlg.format_secondary_markup(MSD.MSG_DELETE_CONNECTION % gobject.markup_escape_text (conn_name))
     ret = dlg.run()
     dlg.destroy()
     
     if ret != gtk.RESPONSE_OK:
         return
     
     if default_conn == True:
         iter_tmp = model.get_iter(0)
         default_icon = gtk.gdk.pixbuf_new_from_file (os.path.join(MSD.icons_files_dir,
                                                                   "default_16x16.png"))
         while iter_tmp != None:
             if model.get_value(iter_tmp, 1) == "movistar Internet":
                 model.set_value(iter_tmp, 0, default_icon)
                 model.set_value(iter_tmp, 2, True)
                 break
             iter_tmp = model.iter_next(iter_tmp)
     print "Del connection %s " % model.get_value(iter, 1)
     self.conf.del_connection(model.get_value(iter, 1))
     self.conf.save_conf()
     model.remove(iter)
     self.act_manager.show_actions_conf()
Example #41
0
 def on_update_hash_pause(self, widget):
     self.paused = not self.paused
     if self.paused:
         self.progresslabel.set_markup(
             _("<i>%s (Paused)</i>") %
             gobject.markup_escape_text(self.current_file))
         self.progressbar.set_text(_("Paused"))
Example #42
0
	def add_transfer(self, account, contact, file_props):
		''' add new transfer to FT window and show the FT window '''
		self.on_transfers_list_leave_notify_event(None)
		if file_props is None:
			return
		file_props['elapsed-time'] = 0
		self.files_props[file_props['type']][file_props['sid']] = file_props
		iter = self.model.append()
		text_labels = '<b>' + _('Name: ') + '</b>\n' 
		if file_props['type'] == 'r':
			text_labels += '<b>' + _('Sender: ') + '</b>' 
		else:
			text_labels += '<b>' + _('Recipient: ') + '</b>' 

		if file_props['type'] == 'r':
			(file_path, file_name) = os.path.split(file_props['file-name'])
		else:
			file_name = file_props['name']
		text_props = gobject.markup_escape_text(file_name) + '\n'
		text_props += contact.get_shown_name()
		self.model.set(iter, 1, text_labels, 2, text_props, C_SID,
			file_props['type'] + file_props['sid'])
		self.set_progress(file_props['type'], file_props['sid'], 0, iter)
		if 'started' in file_props and file_props['started'] is False:
			status = 'waiting'
		elif file_props['type'] == 'r':
			status = 'download'
		else:
			status = 'upload'
		file_props['tt_account'] = account
		self.set_status(file_props['type'], file_props['sid'], status)
		self.set_cleanup_sensitivity()
		self.window.show_all()
Example #43
0
def test_markup_escape_text():
    '''
    Ensure that ``gobject.markup_escape_text`` works as expected.

    :bug: #540696
    '''
    assert gobject.markup_escape_text('Hi') == 'Hi'
def display_reset_prompt(parent=None, more_settings_shown=False):
    dialog = gtk.MessageDialog(parent=parent,
                               type=gtk.MESSAGE_WARNING,
                               flags=gtk.DIALOG_MODAL
                               | gtk.DIALOG_DESTROY_WITH_PARENT,
                               buttons=gtk.BUTTONS_YES_NO)
    dialog.set_transient_for(parent)
    dialog.set_title(pg.config.PLUGIN_TITLE)

    dialog.set_markup(
        gobject.markup_escape_text(
            _("Are you sure you want to reset settings?")))

    if more_settings_shown:
        checkbutton_reset_operations = gtk.CheckButton(
            label=_("Remove procedures and constraints"), use_underline=False)
        dialog.vbox.pack_start(checkbutton_reset_operations,
                               expand=False,
                               fill=False)

    dialog.set_focus(dialog.get_widget_for_response(gtk.RESPONSE_NO))

    dialog.show_all()
    response_id = dialog.run()
    dialog.destroy()

    clear_operations = (checkbutton_reset_operations.get_active()
                        if more_settings_shown else False)

    return response_id, clear_operations
Example #45
0
 def __init__(self, sMessage, sDetails):
     super(DetailDialog, self).__init__('Sutekh has encounterd an error',
             oButtons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
     oHBox = gtk.HBox(False, 2)
     oMessageBox = gtk.VBox(False, 2)
     oImage = gtk.Image()
     oImage.set_from_stock(gtk.STOCK_DIALOG_ERROR, gtk.ICON_SIZE_DIALOG)
     oImage.set_alignment(0, 0)
     oHBox.pack_start(oImage, expand=False)
     oInfo = gtk.Label()
     oInfo.set_markup('<b>%s</b>' % markup_escape_text(sMessage))
     oInfo.set_alignment(0, 0)
     oInfo.set_selectable(True)
     oMessageBox.pack_start(oInfo, expand=False)
     oExpander = gtk.Expander('Details')
     oFrame = gtk.Frame()
     oDetails = gtk.Label(sDetails)
     oDetails.set_selectable(True)
     oFrame.add(oDetails)
     oExpander.add(oFrame)
     oMessageBox.pack_start(oExpander)
     oHBox.pack_start(oMessageBox)
     # pylint: disable-msg=E1101
     # vbox confuses pylint
     self.vbox.pack_start(oHBox)
     oExpander.set_expanded(False)
     self.show_all()
     self.set_name("Sutekh.dialog")
Example #46
0
 def set_label(self, label):
     # escape special characters
     label = gobject.markup_escape_text(label.strip())
     # some hackery to preserve italics markup
     label = label.replace('&lt;i&gt;', '<i>').replace('&lt;/i&gt;', '</i>')
     self.label = label
     return
Example #47
0
 def _choose(self, filename):
   if filename is not None:
     filename_root, basename = os.path.split(filename)
     if filename_root:
       parent_directory = os.path.split(filename_root)[1]
       text_choose = (
         _("A file named \"{0}\" already exists in \"{1}\".").format(basename, parent_directory) + " ")
     else:
       text_choose = _("A file named \"{0}\" already exists.").format(basename) + "\n"
   else:
     text_choose = _("A file with the same name already exists.") + "\n"
   
   text_choose += _("What would you like to do?")
   
   self._dialog_text.set_markup(
     "<span font_size=\"large\"><b>" + gobject.markup_escape_text(text_choose) + "</b></span>")
   
   self._dialog.show_all()
   
   self._overwrite_mode = self._dialog.run()
   
   if self._overwrite_mode not in self._values:
     self._overwrite_mode = self.default_response
   
   self._dialog.hide()
   
   return self._overwrite_mode
    def __del_bookmark_button_cb(self, widget, data):
        treeselection = self.bookmarks_treeview.get_selection()
        (model, iter) = treeselection.get_selected()
        bookmark_name = model.get_value(iter, 1)

        dlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK_CANCEL)
        dlg.set_icon_from_file(MSD.icons_files_dir + "bookmarks_16x16.png")
        dlg.set_markup(MSD.MSG_DELETE_BOOKMARK_TITLE)
        dlg.format_secondary_markup(MSD.MSG_DELETE_BOOKMARK % gobject.markup_escape_text (bookmark_name))
        ret = dlg.run()
        dlg.destroy()
        
        if ret != gtk.RESPONSE_OK:
            return

        iter_tmp = model.get_iter(0)
        
        while iter_tmp != None:
            if model.get_value(iter_tmp, 1) == bookmark_name:
                model.remove(iter_tmp)
                break
            iter_tmp = model.iter_next(iter_tmp)
                
        self.conf.del_bookmark(bookmark_name)
        self.conf.save_conf()
Example #49
0
def run_dialog(text,
               parent=None,
               messagetype=gtk.MESSAGE_WARNING,
               buttonstype=gtk.BUTTONS_OK,
               extrabuttons=()):
    """Run a dialog with text 'text'.
       Extra buttons are passed as tuples of (button label, response id).
    """
    escaped = gobject.markup_escape_text(text)
    d = gtk.MessageDialog(
        None, gtk.DIALOG_DESTROY_WITH_PARENT, messagetype, buttonstype,
        '<span weight="bold" size="larger">%s</span>' % escaped)
    if parent and isinstance(parent, gtk.Window):
        d.set_transient_for(parent.widget.get_toplevel())
    for b, rid in extrabuttons:
        d.add_button(b, rid)
    d.vbox.set_spacing(12)
    hbox = d.vbox.get_children()[0]
    hbox.set_spacing(12)
    d.image.set_alignment(0.5, 0)
    d.image.set_padding(12, 12)
    d.label.set_use_markup(1)
    d.label.set_padding(12, 12)
    ret = d.run()
    d.destroy()
    return ret
    def _choose(self, filepath):
        if filepath is not None:
            dirpath, filename = os.path.split(filepath)
            if dirpath:
                text_choose = (
                    _('A file named "{}" already exists in "{}". ').format(
                        filename, os.path.basename(dirpath)))
            else:
                text_choose = _('A file named "{}" already exists.\n').format(
                    filename)
        else:
            text_choose = _("A file with the same name already exists.\n")

        text_choose += _("What would you like to do?")

        self._dialog_text.set_markup(
            '<span font_size="large"><b>{}</b></span>'.format(
                gobject.markup_escape_text(text_choose)))

        self._dialog.show_all()

        self._overwrite_mode = self._dialog.run()

        if self._overwrite_mode not in self._values:
            self._overwrite_mode = self.default_response

        self._dialog.hide()

        return self._overwrite_mode
 def _choose(self, filepath):
   if filepath is not None:
     dirpath, filename = os.path.split(filepath)
     if dirpath:
       text_choose = (
         _('A file named "{}" already exists in "{}". ').format(
           filename, os.path.basename(dirpath)))
     else:
       text_choose = _('A file named "{}" already exists.\n').format(filename)
   else:
     text_choose = _("A file with the same name already exists.\n")
   
   text_choose += _("What would you like to do?")
   
   self._dialog_text.set_markup(
     '<span font_size="large"><b>{}</b></span>'.format(
       gobject.markup_escape_text(text_choose)))
   
   self._dialog.show_all()
   
   self._overwrite_mode = self._dialog.run()
   
   if self._overwrite_mode not in self._values:
     self._overwrite_mode = self.default_response
   
   self._dialog.hide()
   
   return self._overwrite_mode
Example #52
0
def password(title, msg=None, parent=None):
    dlg = gtk.MessageDialog(parent,
                            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                            gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL)
    title = gobject.markup_escape_text(title)
    dlg.set_markup('<b>%s</b>' % title)
    dlg.set_title(_(u'Password required'))
    dlg.set_icon_name('crunchyfrog')
    if msg is not None:
        dlg.format_secondary_markup(msg)
    hbox = gtk.HBox()
    hbox.set_border_width(6)
    hbox.set_spacing(7)
    hbox.show()
    dlg.vbox.pack_start(hbox)

    label = gtk.Label(_('Password:'******'\u2022')
    entry.set_visibility(False)
    entry.show()
    hbox.pack_start(entry)

    if dlg.run() == gtk.RESPONSE_OK:
        ret = entry.get_text()
    else:
        ret = None
    dlg.destroy()
    return ret
Example #53
0
 def do_set_property(self, pspec, value):
     if pspec.name == 'title':
         self.__title.set_markup('<span weight="bold">%s</span>' %
                                 gobject.markup_escape_text(value))
         self.__title_text = value
     else:
         raise AttributeError, 'unknown property %s' % pspec.name
Example #54
0
    def to_string(self, parent):
        """Return a string form of the name for display.

        Arguments:

        - `parent`: `RowItem` object that is the parent of the name in the display context

        """
        text = gobject.markup_escape_text(self.name)
        unkeyed_children = False
        count = 0
        count_string = ''
        if parent is None and len(self.__unkeyed_instances.keys()):
            unkeyed_children = True
            count = sum([
                len(instances)
                for instances in self.__unkeyed_instances.values()
            ])
        elif isinstance(parent,
                        XMLFile) and parent in self.__unkeyed_instances:
            unkeyed_children = True
            count = len(self.__unkeyed_instances[parent])
        if unkeyed_children:
            if count > 0:
                count_string = ' [%d]' % count
            text = '<b>%s%s</b>' % (text, count_string)
        return text
Example #55
0
def _escape_ml(msg):
    """ escape every invalid character via gobject.markup_escape_text
		from the given string but leave the irc color/bold characters:
		- chr(2)
		- chr(3)
		- chr(31)
	"""

    msg = msg.replace("%", "%%")  # escape %
    msg = msg.replace(chr(2), "%2")
    msg = msg.replace(chr(31), "%31")
    msg = msg.replace(chr(3), "%3")

    msg = gobject.markup_escape_text(msg)

    l = escape_helper.unescape_split("%2", msg, escape_char="%")
    msg = chr(2).join(l)

    l = escape_helper.unescape_split("%3", msg, escape_char="%")
    msg = chr(3).join(l)

    l = escape_helper.unescape_split("%31", msg, escape_char="%")
    msg = chr(31).join(l)

    return msg.replace("%%", "%")