Esempio n. 1
0
class ManView(PidaView):

    icon_name = 'gtk-library'
    label_text = 'Man'

    def create_ui(self):
        self._count = 0
        self.__vbox = gtk.VBox(spacing=3)
        self.__vbox.set_border_width(6)
        self.__hbox = gtk.HBox()
        self.__entry = gtk.Entry()
        self.__entry.connect('changed', self.cb_entry_changed)
        self.__check = gtk.CheckButton(label='-k')
        self.__check.connect('toggled', self.cb_entry_changed)
        self.__list = ObjectList([
                   Column('markup', title=_('Man page'), sorted=True,
                       use_markup=True),
                   Column('description', title=_('Description'),
                       use_markup=True),
               ])
        self.__list.connect('double-click', self._on_man_double_click)
        self.__list.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.__hbox.pack_start(self.__entry)
        self.__hbox.pack_start(self.__check, expand=False)
        self.__vbox.pack_start(self.__hbox, expand=False)
        self.__vbox.pack_start(self.__list)
        self.add_main_widget(self.__vbox)
        self.__vbox.show_all()

    def clear_items(self):
        self._count = 0
        self.__list.clear()

    def add_item(self, item):
        self._count += 1
        self.__list.append(item)

    def _on_man_double_click(self, olist, item):
        commandargs = ['/usr/bin/env', 'man', item.number, item.pattern]
        directory = os.path.dirname(commandargs[0])
        self.svc.boss.cmd('commander', 'execute',
                commandargs=commandargs,
                cwd=directory,
                icon='gnome-library',
                title='%(pattern)s(%(number)d)' % dict(
                    pattern=item.pattern,
                    number=int(item.number)
                ))

    def cb_entry_changed(self, w):
        options = '-f'
        if self.__check.get_active():
            options = '-k'
        self.svc.cmd_find(options=options, pattern=self.__entry.get_text())

    def can_be_closed(self):
        self.svc.get_action('show_man').set_active(False)
Esempio n. 2
0
 def create_objectlist(self, icon_name, text):
         l = ObjectList([Column('title', use_markup=True)])
         l.connect('row-activated', self._on_item_activated)
         l.connect('selection-changed', self._on_item_selected)
         l.set_headers_visible(False)
         l.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
         self._books.append_page(l,
                 tab_label=self.create_tab_label(icon_name, text))
         return l
Esempio n. 3
0
 def create_objectlist(self, icon_name, text):
     l = ObjectList([Column('title', use_markup=True)])
     l.connect('row-activated', self._on_item_activated)
     l.connect('selection-changed', self._on_item_selected)
     l.set_headers_visible(False)
     l.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
     self._books.append_page(l,
                             tab_label=self.create_tab_label(
                                 icon_name, text))
     return l
Esempio n. 4
0
class PyflakeView(PidaView):
    
    icon_name = 'python-icon'
    label_text = _('Python Errors')

    def create_ui(self):
        self.errors_ol = ObjectList(
            Column('markup', use_markup=True)
        )
        self.errors_ol.set_headers_visible(False)
        self.errors_ol.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.add_main_widget(self.errors_ol)
        self.errors_ol.connect('double-click', self._on_errors_double_clicked)
        self.errors_ol.show_all()
        self.sort_combo = AttrSortCombo(
            self.errors_ol,
            [
                ('lineno', _('Line Number')),
                ('message_string', _('Message')),
                ('name', _('Type')),
            ],
            'lineno',
        )
        self.sort_combo.show()
        self.add_main_widget(self.sort_combo, expand=False)

    def clear_items(self):
        self.errors_ol.clear()

    def set_items(self, items):
        self.clear_items()
        for item in items:
            self.errors_ol.append(self.decorate_pyflake_message(item))

    def decorate_pyflake_message(self, msg):
        args = [('<b>%s</b>' % arg) for arg in msg.message_args]
        msg.message_string = msg.message % tuple(args)
        msg.name = msg.__class__.__name__
        msg.markup = ('<tt>%s </tt><i>%s</i>\n%s' % 
                      (msg.lineno, msg.name, msg.message_string))
        return msg

    def _on_errors_double_clicked(self, ol, item):
        self.svc.boss.editor.cmd('goto_line', line=item.lineno)

    def can_be_closed(self):
        self.svc.get_action('show_python_errors').set_active(False)
Esempio n. 5
0
class BookmarkView(PidaView):

    icon_name = 'gtk-library'
    label_text = _('Bookmarks')

    def create_ui(self):
        self._vbox = gtk.VBox()
        self.create_toolbar()
        self.create_ui_list()
        self.add_main_widget(self._vbox)
        self._vbox.show_all()

    def create_tab_label(self, icon_name, text):
        if None in [icon_name, text]:
            return None
        label = gtk.Label(text)
        b_factory = gtk.HBox
        b = b_factory(spacing=2)
        icon = gtk.image_new_from_stock(icon_name, gtk.ICON_SIZE_MENU)
        b.pack_start(icon)
        b.pack_start(label)
        b.show_all()
        return b

    def create_ui_list(self):
        self._books = gtk.Notebook()
        self._books.set_border_width(6)
        self._list_dirs = ObjectList([Column('markup', data_type=str, use_markup=True)])
        self._list_dirs.connect('row-activated', self._on_item_activated)
        self._list_dirs.connect('selection-changed', self._on_item_selected)
        self._list_dirs.set_headers_visible(False)
        self._list_dirs.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self._books.append_page(self._list_dirs,
                tab_label=self.create_tab_label('stock_folder', _('Dirs')))
        self._list_files = ObjectList([Column('markup', data_type=str, use_markup=True)])
        self._list_files.connect('row-activated', self._on_item_activated)
        self._list_files.connect('selection-changed', self._on_item_selected)
        self._list_files.set_headers_visible(False)
        self._list_files.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self._books.append_page(self._list_files,
                tab_label=self.create_tab_label('text-x-generic', _('Files')))
        """
        self._list_url = ObjectList([Column('markup', data_type=str, use_markup=True)])
        self._list_url.set_headers_visible(False)
        self._books.add(self._list_url)
        """
        self._vbox.add(self._books)
        self._books.show_all()

    def create_toolbar(self):
        self._uim = gtk.UIManager()
        self._uim.insert_action_group(self.svc.get_action_group(), 0)
        self._uim.add_ui_from_file(get_uidef_path('bookmark-toolbar.xml'))
        self._uim.ensure_update()
        self._toolbar = self._uim.get_toplevels('toolbar')[0]
        self._toolbar.set_style(gtk.TOOLBAR_ICONS)
        self._toolbar.set_icon_size(gtk.ICON_SIZE_SMALL_TOOLBAR)
        self._vbox.pack_start(self._toolbar, expand=False)
        self._toolbar.show_all()

    def add_item(self, item):
        if item.group == 'file':
            self._list_files.append(item)
        elif item.group == 'path':
            self._list_dirs.append(item)
        elif item.group == 'url':
            self._list_urls.append(item)

    def remove_item(self, item):
        if item.group == 'file':
            self._list_files.remove(item)
        elif item.group == 'path':
            self._list_dirs.remove(item)
        elif item.group == 'url':
            self._list_urls.remove(item)

    def clear_all(self):
        self._list_files.clear()
        self._list_dirs.clear()
        #self._list_urls.clear()

    def can_be_closed(self):
        self.svc.get_action('show_bookmark').set_active(False)

    def _on_item_selected(self, olist, item):
        self.svc.set_current(item)

    def _on_item_activated(self, olist, item):
        item.run(self.svc)
Esempio n. 6
0
class ChecklistView(PidaView):
    
    key = 'checklist.view'

    icon_name = 'gtk-todo'
    label_text = _('Check list')

    def create_ui(self):
        self._vbox = gtk.VBox(spacing=3)
        self._vbox.set_border_width(3)
        self.create_toolbar()
        self.create_newitem()
        self.create_list()
        self.add_main_widget(self._vbox)
        self._vbox.show_all()

    def create_tab_label(self, icon_name, text):
        if None in [icon_name, text]:
            return None
        label = gtk.Label(text)
        b_factory = gtk.HBox
        b = b_factory(spacing=2)
        icon = gtk.image_new_from_stock(icon_name, gtk.ICON_SIZE_MENU)
        b.pack_start(icon)
        b.pack_start(label)
        b.show_all()
        return b

    def create_list(self):
        self._list = ObjectList([
                Column('done', title=_('Done'), data_type=bool, editable=True),
                Column('title', title=_('Title'), data_type=str,
                    editable=True, expand=True),
                Column('priority', title=_('Priority'),
                    data_type=ChecklistStatus, editable=True)
                ])
        self._list.connect('cell-edited', self._on_item_edit)
        self._list.connect('selection-changed', self._on_item_selected)
        self._list.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self._vbox.add(self._list)

        self._sort_combo = AttrSortCombo(self._list,
            [
                ('done', _('Done')),
                ('title', _('Title')),
                ('priority', _('Priority')),
            ],
            'title')

        self._vbox.pack_start(self._sort_combo, expand=False)
        self._list.show_all()
        self._sort_combo.show_all()

    def create_newitem(self):
        self._hbox = gtk.HBox(spacing=3)
        self._newitem_title = gtk.Entry()
        self._newitem_title.connect('changed', self._on_newitem_changed)
        self._newitem_ok = gtk.Button(stock=gtk.STOCK_ADD)
        self._newitem_ok.connect('clicked', self._on_item_add)
        self._newitem_ok.set_sensitive(False)
        self._hbox.pack_start(self._newitem_title, expand=True)
        self._hbox.pack_start(self._newitem_ok, expand=False)
        self._vbox.pack_start(self._hbox, expand=False)
        self._hbox.show_all()

    def create_toolbar(self):
        self._uim = gtk.UIManager()
        self._uim.insert_action_group(self.svc.get_action_group(), 0)
        uim_data = pkgutil.get_data(__name__, 'uidef/checklist-toolbar.xml')
        self._uim.add_ui_from_string(uim_data)
        self._uim.ensure_update()
        self._toolbar = self._uim.get_toplevels('toolbar')[0]
        self._toolbar.set_style(gtk.TOOLBAR_ICONS)
        self._toolbar.set_icon_size(gtk.ICON_SIZE_SMALL_TOOLBAR)
        self._vbox.pack_start(self._toolbar, expand=False)
        self.svc.get_action('checklist_del').set_sensitive(False)
        self._toolbar.show_all()

    def add_item(self, item):
        self._list.append(item, select=True)
        self.svc.save()

    def update_item(self, item):
        self._list.update(item)
        self.svc.save()

    def remove_item(self, item):
        self._list.remove(item)
        self.svc.save()

    def clear(self):
        self._list.clear()

    def _on_item_selected(self, olist, item):
        self.svc.get_action('checklist_del').set_sensitive(item is not None)
        self.svc.set_current(item)

    def _on_item_edit(self, olist, item, value):
        self.svc.save()

    def _on_item_add(self, w):
        title = self._newitem_title.get_text()
        self.svc.add_item(ChecklistItem(title=title))
        self._newitem_title.set_text('')

    def _on_newitem_changed(self, w):
        self._newitem_ok.set_sensitive(self._newitem_title.get_text() != '')

    def can_be_closed(self):
        self.svc.get_action('show_checklist').set_active(False)
Esempio n. 7
0
class ChecklistView(PidaView):

    key = 'checklist.view'

    icon_name = 'gtk-todo'
    label_text = _('Check list')

    def create_ui(self):
        self._vbox = gtk.VBox(spacing=3)
        self._vbox.set_border_width(3)
        self.create_toolbar()
        self.create_newitem()
        self.create_list()
        self.add_main_widget(self._vbox)
        self._vbox.show_all()

    def create_tab_label(self, icon_name, text):
        if None in [icon_name, text]:
            return None
        label = gtk.Label(text)
        b_factory = gtk.HBox
        b = b_factory(spacing=2)
        icon = gtk.image_new_from_stock(icon_name, gtk.ICON_SIZE_MENU)
        b.pack_start(icon)
        b.pack_start(label)
        b.show_all()
        return b

    def create_list(self):
        self._list = ObjectList([
            Column('done', title=_('Done'), data_type=bool, editable=True),
            Column('title',
                   title=_('Title'),
                   data_type=str,
                   editable=True,
                   expand=True),
            Column('priority',
                   title=_('Priority'),
                   data_type=ChecklistStatus,
                   editable=True)
        ])
        self._list.connect('cell-edited', self._on_item_edit)
        self._list.connect('selection-changed', self._on_item_selected)
        self._list.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self._vbox.add(self._list)

        self._sort_combo = AttrSortCombo(self._list, [
            ('done', _('Done')),
            ('title', _('Title')),
            ('priority', _('Priority')),
        ], 'title')

        self._vbox.pack_start(self._sort_combo, expand=False)
        self._list.show_all()
        self._sort_combo.show_all()

    def create_newitem(self):
        self._hbox = gtk.HBox(spacing=3)
        self._newitem_title = gtk.Entry()
        self._newitem_title.connect('changed', self._on_newitem_changed)
        self._newitem_ok = gtk.Button(stock=gtk.STOCK_ADD)
        self._newitem_ok.connect('clicked', self._on_item_add)
        self._newitem_ok.set_sensitive(False)
        self._hbox.pack_start(self._newitem_title, expand=True)
        self._hbox.pack_start(self._newitem_ok, expand=False)
        self._vbox.pack_start(self._hbox, expand=False)
        self._hbox.show_all()

    def create_toolbar(self):
        self._uim = gtk.UIManager()
        self._uim.insert_action_group(self.svc.get_action_group(), 0)
        uim_data = pkgutil.get_data(__name__, 'uidef/checklist-toolbar.xml')
        self._uim.add_ui_from_string(uim_data)
        self._uim.ensure_update()
        self._toolbar = self._uim.get_toplevels('toolbar')[0]
        self._toolbar.set_style(gtk.TOOLBAR_ICONS)
        self._toolbar.set_icon_size(gtk.ICON_SIZE_SMALL_TOOLBAR)
        self._vbox.pack_start(self._toolbar, expand=False)
        self.svc.get_action('checklist_del').set_sensitive(False)
        self._toolbar.show_all()

    def add_item(self, item):
        self._list.append(item, select=True)
        self.svc.save()

    def update_item(self, item):
        self._list.update(item)
        self.svc.save()

    def remove_item(self, item):
        self._list.remove(item)
        self.svc.save()

    def clear(self):
        self._list.clear()

    def _on_item_selected(self, olist, item):
        self.svc.get_action('checklist_del').set_sensitive(item is not None)
        self.svc.set_current(item)

    def _on_item_edit(self, olist, item, value):
        self.svc.save()

    def _on_item_add(self, w):
        title = self._newitem_title.get_text()
        self.svc.add_item(ChecklistItem(title=title))
        self._newitem_title.set_text('')

    def _on_newitem_changed(self, w):
        self._newitem_ok.set_sensitive(self._newitem_title.get_text() != '')

    def can_be_closed(self):
        self.svc.get_action('show_checklist').set_active(False)