Commits

Ches Martin committed 157277a

Cruft removal: RIP Pida, Ruby autotest

Comments (0)

Files changed (87)

.autotest

-require 'autotest/growl'
-require 'autotest/timestamp'
-#require 'autotest/fsevent'
-
-# Take a load off autotest's back, and my CPU!
-Autotest.add_hook :initialize do |at|
-  %w{.svn .hg .git vendor}.each {|exception| at.add_exception(exception)}
-end
-

.autotest_images/rails_fail.png

Removed
Old image

.autotest_images/rails_ok.png

Removed
Old image

.autotest_images/rails_pending.png

Removed
Old image

.pida2/first_run_wizard

-#Remove this to rerun the start wizard
-

.pida2/openwith.ini

-[See]
-glob = *
-command = see %s
-name = See

.pida2/pida_emacs_init.el

-;; Emacs client script for Pida.
-;; David Soulayrol <david.soulayrol@anciens.enib.fr>
-;;
-;; This script is automatically generated by pida when destroyed.
-;; Leave untouched or modify it at your own risk.
-
-(defconst pida-connection-terminator "
-"
-  "The terminator used to send notifications to pida")
-
-(defconst pida-connection-port 5001
-  "The port used to communicate with pida")
-
-(defvar pida-connection nil
-  "The socket to comunicate with pida")
-
-
-;; open-network-stream name buffer-or-name host service
-(setq pida-connection 
-      (open-network-stream "pida-connection" nil "localhost" pida-connection-port))
-(process-kill-without-query pida-connection nil)
-
-(defun pida-send-message (message)
-  (process-send-string "pida-connection"
-		       (concat message pida-connection-terminator)))
-
-  
-(defun pida-ping ()
-  (pida-send-message "pida-pong ready"))
-
-;; hook to the events pida is interested in.
-(add-hook 
- 'find-file-hooks
- '(lambda () 
-    (pida-send-message (concat "find-file-hooks " buffer-file-name))))
-
-(add-hook 
- 'after-save-hook
- '(lambda () 
-    (pida-send-message (concat "after-save-hook " buffer-file-name))))
-
-(add-hook
- 'kill-buffer-hook 
- '(lambda ()
-    (pida-send-message (concat "kill-buffer-hook " buffer-file-name))))
-
-(add-hook
- 'window-configuration-change-hook
- '(lambda ()
-    (pida-send-message (concat "window-configuration-change-hook " buffer-file-name))))
-
-(add-hook
- 'kill-emacs-hook
- '(lambda ()
-    (pida-send-message "kill-emacs-hook")
-    (delete-process pida-connection)))
-
-;; <d_rol> is there a way to prevent emacs from showing the "GNU Emacs"
-;;         first buffer ?
-;; <pgas> d_rol: M-x customize-variable RET inhibit-splash-screen RET
-(setq inhibit-splash-screen 1)

.pida2/pida_vim_init.vim

-:silent function! Bufferlist()
-let i = 1
-    let max = bufnr('$') + 1
-    let lis = ""
-    while i < max
-        if bufexists(i)
-            let lis = lis.";".i.":".bufname(i)
-        endif
-        let i = i + 1
-    endwhile
-    return lis
-:endfunction
-:silent function! BreakPoint(l)
-    call Async_event(v:servername.":set_breakpoint,".a:l)
-:endfunction
-:silent function! Yank_visual()
-    y
-    return @"
-:endfunction
-:silent function! Async_event(e)
-    let args = substitute(a:e, ",", "", "g")
-    let c = "silent call server2client('".expand('<client>')."', '".args."')"
-    try
-        exec c
-    catch /.*/
-        echo c
-    endtry
-:endfunction
-:silent function! Pida_Started()
-    silent call Async_event(v:servername.":filesave,")
-    echo "PIDA connected"
-:endfunction
-:silent sign define break text=!B
-:silent augroup pida
-:silent set guioptions-=T
-:silent set guioptions-=m
-:silent au! pida
-:silent au pida BufEnter * silent call Async_event(v:servername.":bufferchange,".getcwd().",".bufname('%').",".bufnr('%'))
-:silent au pida BufDelete * silent call Async_event(v:servername.":bufferunload,".expand('<amatch>'))
-:silent au pida VimLeave * silent call Async_event(v:servername.":shutdown,")
-:silent au pida VimEnter * silent call Pida_Started()
-:silent au pida BufWritePost * silent call Async_event(v:servername.":filesave,")
-:silent au pida CursorMovedI * silent call Async_event(v:servername.":cursor_move,".line('.'))
-:silent au pida CursorMoved * silent call Async_event(v:servername.":cursor_move,".line('.'))
-
-:silent function! Pida_Complete(findstart, base)
-    " locate the start of the word
-    let line = getline('.')
-    let start = col('.') - 1
-    while start > 0 && line[start - 1] =~ ''
-        let start -= 1
-    endwhile
-    if a:findstart
-        let g:completing = 1
-	    return start
-    else
-        call Async_event(v:servername.":complete".a:findstart."".a:base."".line."".start)
-        let completion_time = 0
-        while g:completing && completion_time < 500
-            sleep 100m
-            let completion_time = completion_time + 100
-            "if complete_check()
-            "    break
-            "endif
-        endwhile
-        return []
-    endif
-:endfunction
-
-:silent function! Pida_Stop_Completing()
-    let g:completing = 1
-:endfunction
-set completefunc=Pida_Complete

.pida2/plugins/bookmark/__init__.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-
-
-
-
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/bookmark/bookmark.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-import gtk
-import os
-import cgi
-
-from kiwi.ui.objectlist import ObjectList, Column
-
-# PIDA Imports
-from pida.core.service import Service
-from pida.core.features import FeaturesConfig
-from pida.core.commands import CommandsConfig
-from pida.core.events import EventsConfig
-from pida.core.actions import ActionsConfig
-from pida.core.actions import TYPE_NORMAL, TYPE_MENUTOOL, TYPE_RADIO, TYPE_TOGGLE
-from pida.core.environment import get_uidef_path
-
-from pida.ui.views import PidaView
-
-from pida.utils.gthreads import GeneratorTask, AsyncTask, gcall
-
-# locale
-from pida.core.locale import Locale
-locale = Locale('bookmark')
-_ = locale.gettext
-
-class BookmarkItem(object):
-
-    def __init__(self, group='none', title='no title', data=None):
-        self.group = group
-        self.title = title
-        self.data = data
-
-    def get_markup(self):
-        return self.title
-    markup = property(get_markup)
-
-    def run(self, service):
-        pass
-
-    def key(self):
-        return self.data + self.group + self.title
-
-
-class BookmarkItemFile(BookmarkItem):
-
-    def __init__(self, title='no title', data=None, line=1):
-        self.line = line
-        BookmarkItem.__init__(self, group='file', title=title, data=data)
-
-    def key(self):
-        return BookmarkItem.key(self) + str(self.line)
-
-    def run(self, service):
-        service.boss.cmd('buffer', 'open_file', file_name=self.data)
-        service.boss.editor.goto_line(self.line)
-
-class BookmarkItemPath(BookmarkItem):
-
-    ICON_NAME = 'folder'
-
-    def __init__(self, title='no title', data=None):
-        BookmarkItem.__init__(self, group='path', title=title, data=data)
-
-    def run(self, service):
-        service.boss.cmd('filemanager', 'browse', new_path=self.data)
-        service.boss.cmd('filemanager', 'present_view')
-
-"""
-class BookmarkItemUrl(BookmarkItem):
-
-    ICON_NAME = 'www'
-
-    def __init__(self, title='no title', data=None):
-        BookmarkItem.__init__(self, group='url', title=title, data=data)
-
-    def run(self, service):
-        service.boss.call_command('webbrowser', 'browse', url=self.data)
-"""
-
-
-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)
-
-class BookmarkActions(ActionsConfig):
-
-    def create_actions(self):
-        self.create_action(
-            'show_bookmark',
-            TYPE_TOGGLE,
-            _('Bookmark Viewer'),
-            _('Show bookmarks'),
-            '',
-            self.on_show_bookmark,
-            '<Shift><Control>1',
-        )
-
-        self.create_action(
-            'bookmark_curfile',
-            TYPE_NORMAL,
-            _('Bookmark current file'),
-            _('Bookmark current file'),
-            'text-x-generic',
-            self.on_bookmark_curfile,
-            'NOACCEL',
-        )
-
-        self.create_action(
-            'bookmark_curdir',
-            TYPE_NORMAL,
-            _('Bookmark current directory'),
-            _('Bookmark current directory'),
-            'stock_folder',
-            self.on_bookmark_curdir,
-            'NOACCEL',
-        )
-
-        self.create_action(
-            'bookmark_delsel',
-            TYPE_NORMAL,
-            _('Delete selected item'),
-            _('Delete selected item'),
-            gtk.STOCK_DELETE,
-            self.on_bookmark_delsel,
-            'NOACCEL',
-        )
-
-        self.create_action(
-            'bookmark-for-dir',
-            TYPE_NORMAL,
-            _('Add as bookmark'),
-            _('Add selected directory as bookmark'),
-            gtk.STOCK_ADD,
-            self.on_bookmark_for_dir,
-            'NOACCEL',
-        )
-
-        self.create_action(
-            'bookmark-for-file',
-            TYPE_NORMAL,
-            _('Add as bookmark'),
-            _('Add selected file as bookmark'),
-            gtk.STOCK_ADD,
-            self.on_bookmark_for_file,
-            'NOACCEL',
-        )
-
-
-    def on_show_bookmark(self, action):
-        if action.get_active():
-            self.svc.show_bookmark()
-        else:
-            self.svc.hide_bookmark()
-
-    def on_bookmark_curdir(self, action):
-        self.svc.bookmark_dir()
-
-    def on_bookmark_curfile(self, action):
-        self.svc.bookmark_file()
-
-    def on_bookmark_delsel(self, action):
-        self.svc.remove_current()
-
-    def on_bookmark_for_file(self, action):
-        self.svc.bookmark_file(filename=action.contexts_kw['file_name'])
-
-    def on_bookmark_for_dir(self, action):
-        self.svc.bookmark_dir(path=action.contexts_kw['dir_name'])
-
-class BookmarkFeatures(FeaturesConfig):
-
-    def subscribe_foreign_features(self):
-        self.subscribe_foreign_feature('contexts', 'file-menu',
-            (self.svc.get_action_group(), 'bookmark-file-menu.xml'))
-        self.subscribe_foreign_feature('contexts', 'dir-menu',
-            (self.svc.get_action_group(), 'bookmark-dir-menu.xml'))
-
-class BookmarkEvents(EventsConfig):
-
-    def subscribe_foreign_events(self):
-        self.subscribe_foreign_event('project', 'project_switched',
-                                     self.svc.on_project_switched)
-
-
-
-# Service class
-class Bookmark(Service):
-    """Manage bookmarks"""
-
-    actions_config = BookmarkActions
-    features_config = BookmarkFeatures
-    events_config = BookmarkEvents
-
-    def start(self):
-        self._view = BookmarkView(self)
-        self._has_loaded = False
-        self._items = []
-        self._current = None
-        self._project = None
-
-    def show_bookmark(self):
-        self.boss.cmd('window', 'add_view', paned='Plugin', view=self._view)
-        if not self._has_loaded:
-            self._has_loaded = True
-
-    def hide_bookmark(self):
-        self.boss.cmd('window', 'remove_view', view=self._view)
-
-
-    def set_current(self, item):
-        self._current = item
-
-    def add_item(self, item):
-        for t in self._items:
-            if t.key() == item.key():
-                return
-        self._items.append(item)
-        self._view.add_item(item)
-        self.save()
-
-    def remove_current(self):
-        if self._current == None:
-            return
-        self._items.remove(self._current)
-        self._view.remove_item(self._current)
-        self._current = None
-        self.save()
-
-    def bookmark_dir(self, path=None):
-        if path == None:
-            path = self.boss.cmd('filemanager', 'get_browsed_path')
-        source_directory = self.boss.cmd('project', 'get_current_project').source_directory
-        title = path
-        if title.startswith(source_directory):
-            title = title[len(source_directory):]
-            if title == '':
-                title = _('(project root)')
-            else:
-                title = '.' + title
-        item = BookmarkItemPath(title=title, data=path)
-        self.add_item(item)
-
-    def bookmark_file(self, filename=None, line=None):
-        if filename == None:
-            document = self.boss.cmd('buffer', 'get_current')
-            if document == None:
-                return
-            filename = document.get_filename()
-        if line == None:
-            line = self.boss.editor.cmd('get_current_line_number')
-        filename_title = os.path.basename(filename)
-        title = '%s:<span color="#000099">%d</span>' % (
-                cgi.escape(filename_title), int(line))
-        item = BookmarkItemFile(title=title, data=filename, line=line)
-        self.add_item(item)
-
-    def on_project_switched(self, project):
-        if project != self._project:
-            self._project = project
-            self.load()
-
-    def _serialize(self):
-        data = {}
-        for t in self._items:
-            if not data.has_key(t.group):
-                data[t.group] = []
-            if t.group == 'file':
-                data[t.group].append('%s:%d' % (t.data, int(t.line)))
-            else:
-                data[t.group].append(t.data)
-        return data
-
-    def _unserialize(self, data):
-        if data == None:
-            return
-        for key in data:
-            items = data[key]
-            for item in items:
-                if key == 'file':
-                    t = item.rsplit(':')
-                    self.bookmark_file(filename=t[0], line=t[1])
-                elif key == 'path':
-                    self.bookmark_dir(path=item)
-
-    def load(self):
-        self._items = []
-        self._view.clear_all()
-        data = self.boss.cmd('project', 'get_current_project_data',
-                section_name='bookmark')
-        self._unserialize(data)
-
-    def save(self):
-        data = self._serialize()
-        self.boss.cmd('project', 'save_to_current_project',
-                section_name='bookmark', section_data=data)
-
-    def stop(self):
-        if self.get_action('show_bookmark').get_active():
-            self.hide_bookmark()
-
-
-# Required Service attribute for service loading
-Service = Bookmark
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/bookmark/bookmark.pyc

Binary file removed.

.pida2/plugins/bookmark/locale/fr_FR/LC_MESSAGES/bookmark.po

-# PIDA
-# Copyright (C) 2005-2007 The PIDA Team
-# This file is distributed under the same license as the PIDA package.
-#
-
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-02 18:40+0200\n"
-"PO-Revision-Date: 2007-05-02 18:40+0200\n"
-"Last-Translator: Mathieu Virbel <tito@bankiz.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../bookmark.py:105
-msgid "Bookmarks"
-msgstr "Marque-pages"
-
-#: ../../bookmark.py:135
-msgid "Dirs"
-msgstr "Réps"
-
-#: ../../bookmark.py:142
-msgid "Files"
-msgstr "Fichiers"
-
-#: ../../bookmark.py:195
-msgid "Bookmark Viewer"
-msgstr "Marque-pages"
-
-#: ../../bookmark.py:196
-msgid "Show bookmarks"
-msgstr "Afficher les marque-pages"
-
-#: ../../bookmark.py:205 ../../bookmark.py:206
-msgid "Bookmark current file"
-msgstr "Marquer le fichier courant"
-
-#: ../../bookmark.py:215 ../../bookmark.py:216
-msgid "Bookmark current directory"
-msgstr "Marquer le répertoire courant"
-
-#: ../../bookmark.py:225 ../../bookmark.py:226
-msgid "Delete selected item"
-msgstr "Supprimer l'élément sélectionné"
-
-#: ../../bookmark.py:235 ../../bookmark.py:245
-msgid "Add as bookmark"
-msgstr "Ajouter dans les marque-pages"
-
-#: ../../bookmark.py:236
-msgid "Add selected directory as bookmark"
-msgstr "Ajouter dans les marque-pages"
-
-#: ../../bookmark.py:246
-msgid "Add selected file as bookmark"
-msgstr "Marquer le fichier sélectionné"
-
-#: ../../bookmark.py:341
-msgid "(project root)"
-msgstr "(racine du projet)"

.pida2/plugins/bookmark/service.pida

-[plugin]
-plugin = bookmark
-name = Bookmarks
-author = Mathieu Virbel <tito@bankiz.org>
-version = 0.3
-require_pida = 0.5
-depends = "gtk,os,cgi"
-category = user
-description = "Manage bookmark (files, directories...)"

.pida2/plugins/bookmark/test_bookmark.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-
-
-
-
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/bookmark/uidef/bookmark-dir-menu.xml

-<ui>
-<popup>
-<placeholder name="1"/>
-<menuitem action="bookmark-for-dir" name="bookmark-for-dir"/>
-<separator/>
-<placeholder name="2">
-</placeholder>
-<separator/>
-<placeholder name="3"/>
-<separator/>
-<placeholder name="4"/>
-<separator/>
-</popup>
-</ui>
-

.pida2/plugins/bookmark/uidef/bookmark-file-menu.xml

-<ui>
-<popup>
-<placeholder name="1"/>
-<menuitem action="bookmark-for-file" name="bookmark-for-file"/>
-<separator/>
-<placeholder name="2">
-</placeholder>
-<separator/>
-<placeholder name="3"/>
-<separator/>
-<placeholder name="4"/>
-<separator/>
-</popup>
-</ui>
-
-

.pida2/plugins/bookmark/uidef/bookmark-toolbar.xml

-<ui>
-    <toolbar>
-        <toolitem action="bookmark_curdir" name="bookmark_curdir"/>
-        <toolitem action="bookmark_curfile" name="bookmark_curfile"/>
-        <toolitem action="bookmark_delsel" name="bookmark_delsel"/>
-    </toolbar>
-</ui>

.pida2/plugins/bookmark/uidef/bookmark.xml

-<ui>
-    <menubar>
-
-        <menu name="FileMenu" action="FileMenu">
-        </menu>
-    
-        <menu name="EditMenu" action="EditMenu">
-        </menu>
-        
-        <menu name="ProjectMenu" action="ProjectMenu">
-        </menu>
-        
-        <menu name="LanguageMenu" action="LanguageMenu">
-        </menu>
-        
-        <menu name="ToolsMenu" action="ToolsMenu">
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <placeholder name="tools">
-            <menuitem action="show_bookmark" name="show_bookmark" />
-            </placeholder>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-        </menu>
-    
-    </menubar>
-    
-    <toolbar>
-        <placeholder name="OpenFileToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="SaveFileToolbar">
-        <separator/>
-        <separator/>
-        </placeholder>
-        <placeholder name="EditToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="ProjectToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="VcToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="ToolsToolbar">
-        </placeholder>
-
-    </toolbar>
-
-</ui>

.pida2/plugins/man/__init__.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-
-
-
-
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/man/locale/fr_FR/LC_MESSAGES/man.po

-# PIDA
-# Copyright (C) 2005-2007 The PIDA Team
-# This file is distributed under the same license as the PIDA package.
-#
-
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-02 18:40+0200\n"
-"PO-Revision-Date: 2007-05-02 18:40+0200\n"
-"Last-Translator: Mathieu Virbel <tito@bankiz.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../man.py:89
-#, python-format
-msgid "Man %(pattern)s(%(number)d)"
-msgstr "Man %(pattern)s(%(number)d)"
-
-#: ../../man.py:104
-msgid "Man Viewer"
-msgstr "Visualiseur de Man"
-
-#: ../../man.py:105
-msgid "Show the man"
-msgstr "Afficher le man"

.pida2/plugins/man/man.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-import os
-import gtk
-import commands
-import re
-import cgi
-
-from kiwi.ui.objectlist import ObjectList, Column
-
-# PIDA Imports
-from pida.core.service import Service
-from pida.core.actions import ActionsConfig
-from pida.core.actions import TYPE_TOGGLE
-
-from pida.ui.views import PidaView
-
-from pida.utils.gthreads import GeneratorSubprocessTask
-
-# locale
-from pida.core.locale import Locale
-locale = Locale('man')
-_ = locale.gettext
-
-class ManItem(object):
-
-    def __init__(self, pattern, number, description, search):
-        self.pattern = pattern
-        self.number = number
-        self.description = self._color_match(cgi.escape(description), search)
-        patternmark = self._color_match(cgi.escape(pattern), search)
-        self.markup = '%s(<span color="#0000cc">%d</span>)' % (
-            patternmark, int(self.number))
-
-    def _color_match(self, data, match):
-        return data.replace(match, '<span color="#c00000"><b>%s</b></span>' % match)
-
-
-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)
-
-
-class ManActions(ActionsConfig):
-
-    def create_actions(self):
-        self.create_action(
-            'show_man',
-            TYPE_TOGGLE,
-            _('Man Viewer'),
-            _('Show the man'),
-            '',
-            self.on_show_man,
-            '<Shift><Control>m',
-        )
-
-    def on_show_man(self, action):
-        if action.get_active():
-            self.svc.show_man()
-        else:
-            self.svc.hide_man()
-
-# Service class
-class Man(Service):
-    """Show manpage of command"""
-
-    actions_config = ManActions
-
-    def start(self):
-        self._view = ManView(self)
-        self._has_loaded = False
-        self.task = None
-
-    def show_man(self):
-        self.boss.cmd('window', 'add_view', paned='Terminal', view=self._view)
-        if not self._has_loaded:
-            self._has_loaded = True
-
-    def hide_man(self):
-        self.boss.cmd('window', 'remove_view', view=self._view)
-
-    def cmd_find(self, options, pattern):
-
-        # stop and clear task
-        if self.task:
-            self.task.stop()
-        self._view.clear_items()
-
-        # don't make empty search
-        if len(pattern) <= 0:
-            return
-
-        # prepare command
-        cmd = '/usr/bin/env man %s "%s"' % (options, pattern)
-        reman = re.compile('[(]([\d]+)[)]')
-
-        # match and add each line
-        def _line(result):
-            list = reman.findall(result)
-            if not len(list):
-                return
-            name = result.split('(')[0].strip()
-            res = result.split('- ',1)
-
-            # avoid too much result
-            if self._view._count > 100:
-                self.task.stop()
-
-            # add in list
-            self._view.add_item(ManItem(name, list[0], res[1], pattern))
-
-        # launch man subprocess
-        self.task = GeneratorSubprocessTask(_line)
-        self.task.start(cmd, shell=True)
-
-    def stop(self):
-        if self.task:
-            self.task.stop()
-        if self.get_action('show_man').get_active():
-            self.hide_man()
-
-
-# Required Service attribute for service loading
-Service = Man
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/man/man.pyc

Binary file removed.

.pida2/plugins/man/pixmaps/gtk-library.svg

-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="128.00000pt"
-   id="svg1"
-   version="1.0"
-   width="128.00000pt"
-   x="0.0000000"
-   y="0.0000000"
-   sodipodi:version="0.32"
-   inkscape:version="0.42"
-   sodipodi:docname="gtk-library.svg"
-   sodipodi:docbase="/home/ali/working/pida-source/data/icons">
-  <sodipodi:namedview
-     inkscape:window-height="513"
-     inkscape:window-width="718"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:zoom="0.34303779"
-     inkscape:cx="372.04724"
-     inkscape:cy="242.62185"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:current-layer="svg1" />
-  <metadata
-     id="metadata3">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:title>open bible 01</dc:title>
-        <dc:description />
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>hash</rdf:li>
-            <rdf:li />
-            <rdf:li>christianity</rdf:li>
-            <rdf:li>religion</rdf:li>
-            <rdf:li>education</rdf:li>
-            <rdf:li>book</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:publisher>
-          <cc:Agent
-             rdf:about="http://www.openclipart.org">
-            <dc:title>Aaron Johnson</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Aaron Johnson</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>Aaron Johnson</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date />
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://web.resource.org/cc/PublicDomain" />
-        <dc:language>en</dc:language>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3" />
-  <g
-     id="layer1" />
-  <g
-     id="g4874"
-     transform="matrix(0.625272,0.000000,0.000000,0.657218,-59.23657,-329.3587)">
-    <path
-       d="M 108.91824,624.83263 L 172.02974,720.51781 C 192.38829,692.01584 239.21297,673.69314 265.67909,679.80070 C 298.25277,657.40630 334.89815,661.47800 345.07743,669.62143 L 271.78665,573.93624 C 271.78665,573.93624 220.89027,559.68526 200.53172,590.22309 C 163.88633,573.93624 119.09751,600.40236 108.91824,624.83263 z "
-       id="path2354"
-       style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
-    <path
-       d="M 116.72056,612.20892 L 171.68864,695.67897 C 194.08305,654.96187 238.87186,636.63917 261.26627,663.10529 C 295.87581,614.24477 336.59290,663.10529 340.66461,663.10529 L 267.37384,563.34840 C 267.37384,563.34840 218.51331,540.95399 198.15476,571.49182 C 177.79621,555.20497 128.93568,575.56352 116.72056,612.20892 z "
-       id="path2356"
-       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
-    <path
-       d="M 199.51379,571.90040 L 262.62530,657.40631 C 270.76872,669.62144 254.48188,692.01585 289.09142,706.26683"
-       id="path3599"
-       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
-  </g>
-</svg>

.pida2/plugins/man/service.pida

-[plugin]
-plugin = man
-name = Man
-author = Mathieu Virbel <tito@bankiz.org>
-version = 0.2
-require_pida = 0.5
-depends = "os,gtk,commands,re,cgi"
-category = documentation
-description = Search and browse man page

.pida2/plugins/man/test_man.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-
-
-
-
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/man/uidef/man.xml

-<ui>
-    <menubar>
-
-        <menu name="FileMenu" action="FileMenu">
-        </menu>
-    
-        <menu name="EditMenu" action="EditMenu">
-        </menu>
-        
-        <menu name="ProjectMenu" action="ProjectMenu">
-        </menu>
-        
-        <menu name="LanguageMenu" action="LanguageMenu">
-        </menu>
-        
-        <menu name="ToolsMenu" action="ToolsMenu">
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <placeholder name="tools">
-            <menuitem action="show_man" name="show_man" />
-            </placeholder>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-        </menu>
-    
-    </menubar>
-    
-    <toolbar>
-        <placeholder name="OpenFileToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="SaveFileToolbar">
-        <separator/>
-        <separator/>
-        </placeholder>
-        <placeholder name="EditToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="ProjectToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="VcToolbar">
-        </placeholder>
-        <separator/>
-        <placeholder name="ToolsToolbar">
-        </placeholder>
-
-    </toolbar>
-
-</ui>

.pida2/plugins/pastebin/__init__.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-
-
-
-
-
-
-
-# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:

.pida2/plugins/pastebin/glade/paste-editor.glade

-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkWindow" id="paste-editor">
-    <property name="default_width">440</property>
-    <property name="default_height">250</property>
-    <child>
-      <widget class="GtkVBox" id="pida_view">
-        <property name="visible">True</property>
-        <property name="border_width">6</property>
-        <child>
-          <widget class="GtkVBox" id="vbox1">
-            <property name="width_request">300</property>
-            <property name="height_request">400</property>
-            <property name="visible">True</property>
-            <property name="spacing">12</property>
-            <child>
-              <widget class="GtkFrame" id="frame2">
-                <property name="visible">True</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">GTK_SHADOW_NONE</property>
-                <child>
-                  <widget class="GtkAlignment" id="alignment2">
-                    <property name="visible">True</property>
-                    <child>
-                      <widget class="GtkTable" id="table1">
-                        <property name="visible">True</property>
-                        <property name="border_width">6</property>
-                        <property name="n_rows">4</property>
-                        <property name="n_columns">2</property>
-                        <property name="column_spacing">6</property>
-                        <property name="row_spacing">12</property>
-                        <child>
-                          <widget class="GtkLabel" id="post_nickname_label">
-                            <property name="visible">True</property>
-                            <property name="xalign">1</property>
-                            <property name="label" translatable="yes" context="yes">Name:</property>
-                            <property name="use_markup">True</property>
-                            <property name="width_chars">1</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label1">
-                            <property name="visible">True</property>
-                            <property name="xalign">1</property>
-                            <property name="label" translatable="yes" context="yes">Location:</property>
-                            <property name="width_chars">0</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkEntry" id="paste_title">
-                            <property name="visible">True</property>
-                            <property name="invisible_char">*</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkEntry" id="paste_name">
-                            <property name="visible">True</property>
-                            <property name="invisible_char">*</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="post_title_label">
-                            <property name="visible">True</property>
-                            <property name="xalign">1</property>
-                            <property name="label" translatable="yes" context="yes">Title:</property>
-                            <property name="use_markup">True</property>
-                            <property name="width_chars">0</property>
-                          </widget>
-                          <packing>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="ProxyComboBox" id="paste_location">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label4">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="xalign">1</property>
-                            <property name="label" translatable="yes" context="yes">Syntax:</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">3</property>
-                            <property name="bottom_attach">4</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="ProxyComboBox" id="paste_syntax">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">3</property>
-                            <property name="bottom_attach">4</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label3">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes" context="yes">&lt;b&gt;Snippet Properties&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                    <property name="width_chars">0</property>
-                  </widget>
-                  <packing>
-                    <property name="type">label_item</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkFrame" id="frame1">
-                <property name="visible">True</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">GTK_SHADOW_NONE</property>
-                <child>
-                  <widget class="GtkAlignment" id="alignment1">
-                    <property name="visible">True</property>
-                    <child>
-                      <widget class="GtkScrolledWindow" id="scrolledwindow1">
-                        <property name="visible">True</property>
-                        <property name="border_width">6</property>
-                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="shadow_type">GTK_SHADOW_OUT</property>
-                        <child>
-                          <widget class="GtkTextView" id="paste_content">
-                            <property name="visible">True</property>
-                          </widget>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes" context="yes">&lt;b&gt;Snippet Text&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                    <property name="width_chars">0</property>
-                  </widget>
-                  <packing>
-                    <property name="type">label_item</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <widget class="GtkHButtonBox" id="hbuttonbox1">
-                <property name="visible">True</property>
-                <property name="spacing">6</property>
-                <property name="layout_style">GTK_BUTTONBOX_END</property>
-                <child>
-                  <widget class="GtkButton" id="cancel_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes" context="yes">gtk-cancel</property>
-                    <property name="use_stock">True</property>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="clear_button">
-                    <property name="visible">True</property>
-                    <property name="label" context="yes">gtk-clear</property>
-                    <property name="use_stock">True</property>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="post_button">
-                    <property name="visible">True</property>
-                    <property name="label" context="yes">gtk-paste</property>
-                    <property name="use_stock">True</property>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>

.pida2/plugins/pastebin/locale/fr_FR/LC_MESSAGES/pastebin.po

-# PIDA
-# Copyright (C) 2005-2007 The PIDA Team
-# This file is distributed under the same license as the PIDA package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-03 10:41+0200\n"
-"PO-Revision-Date: 2007-05-02 18:40+0200\n"
-"Last-Translator: Mathieu Virbel <tito@bankiz.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: glade/paste-editor.glade.h:1
-msgid "<b>Snippet Properties</b>"
-msgstr "<b>Propriété de la sélection</b>"
-
-#: glade/paste-editor.glade.h:2
-msgid "<b>Snippet Text</b>"
-msgstr "<b>Sélection de code</b>"
-
-#: glade/paste-editor.glade.h:3
-msgid "Location:"
-msgstr "Adresse:"
-
-#: glade/paste-editor.glade.h:4
-msgid "Name:"
-msgstr "Nom:"
-
-#: glade/paste-editor.glade.h:5
-msgid "Syntax:"
-msgstr "Syntaxe:"
-
-#: glade/paste-editor.glade.h:6
-msgid "Title:"
-msgstr "Titre"
-
-#: pastebin.py:110
-msgid "Paste"
-msgstr "Pastebin"
-
-#: pastebin.py:151
-msgid "Paste Editor"
-msgstr "Editeur Pastebin"
-
-#: pastebin.py:179 pastebin.py:316
-msgid "Paste History"
-msgstr "Historique de Pastebin"
-
-#: pastebin.py:234 pastebin.py:243
-msgid "ERROR: No paste selected"
-msgstr "Erreur: Aucune séléction"
-
-#: pastebin.py:307
-msgid "Upload Text Snippet"
-msgstr "Envoyer une sélection de code"
-
-#: pastebin.py:308
-msgid "Upload a text snippet to a pastebin"
-msgstr "Envoyer une sélection de code sur un Pastebin"
-
-#: pastebin.py:317
-msgid "Show the paste history viewer"
-msgstr "Afficher l'historique des envois"

.pida2/plugins/pastebin/pastebin.py

-# -*- coding: utf-8 -*- 
-
-# Copyright (c) 2007 The PIDA Project
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-#SOFTWARE.
-
-import gtk, gobject
-
-from kiwi.ui.objectlist import ObjectList, Column
-
-# PIDA Imports
-from pida.core.service import Service
-from pida.core.features import FeaturesConfig
-from pida.core.commands import CommandsConfig
-from pida.core.events import EventsConfig
-from pida.core.actions import ActionsConfig
-from pida.core.actions import TYPE_NORMAL, TYPE_MENUTOOL, TYPE_RADIO, TYPE_TOGGLE
-
-from pida.ui.views import PidaGladeView, PidaView
-
-from pida.utils.web import fetch_url
-
-# locale
-from pida.core.locale import Locale
-locale = Locale('pastebin')
-_ = locale.gettext
-
-
-class Bin(object):
-
-    PASTE_URL = None
-
-    def __init__(self, svc):
-        self.svc = svc
-
-    def create_data_dict(self, title, name, content, syntax):
-        """Override in individual pastebins"""
-
-    @classmethod
-    def get_syntax_items(cls):
-        """Override to return a list of syntax item tuples (lable, value)"""
-
-    def post(self, *args):
-        self.args = args
-        fetch_url(self.PASTE_URL, self.on_posted, self.create_data_dict(*args))
-
-    def on_posted(self, url, content):
-        self.svc.new_paste_complete(url, *self.args)
-
-
-class Dpaste(Bin):
-
-    PASTE_URL = 'http://dpaste.com/'
-
-    def create_data_dict(self, title, name, content, syntax):
-        return dict(
-            poster = name,
-            title = title,
-            content = content,
-            language = syntax,
-        )
-
-    @classmethod
-    def get_syntax_items(cls):
-        return [
-            ('Python', 'Python'),
-            ('Python Interactive / Traceback', 'PythonConsole'),
-            ('SQL', 'Sql'),
-            ('HTML / Django Template', 'DjangoTemplate'),
-            ('JavaScript', 'JScript'),
-            ('CSS', 'Css'),
-            ('XML', 'Xml'),
-            ('Diff', 'Diff'),
-            ('Ruby', 'Ruby'),
-            ('Ruby HTML (ERB)', 'Rhtml'),
-            ('Haskell', 'Haskell'),
-            ('Apache Configuration', 'Apache'),
-            ('Bash Script', 'Bash'),
-            ('Plain Text', ''),
-        ]
-
-
-class Rafb(Bin):
-
-    PASTE_URL = 'http://www.rafb.net/paste/paste.php'
-
-    def create_data_dict(self, title, name, content, syntax):
-        return dict(
-            text=content,
-            nick=name,
-            desc=title,
-            lang=syntax,
-            cvt_tabs=4,
-            submit=_('Paste')
-        )
-
-    @classmethod
-    def get_syntax_items(cls):
-        return [
-            ('C89', 'C89'),
-            ('C', 'C'),
-            ('C++', 'C++'), 
-            ('C#', 'C#'),
-            ('Java', 'Java'),
-            ('Pascal', 'Pascal'),
-            ('Perl', 'Perl'),
-            ('PHP', 'PHP'),
-            ('PL/I', 'PL/I'),
-            ('Python', 'Python'),
-            ('Ruby', 'Ruby'),
-            ('SQL', 'SQL'),
-            ('VB', 'VB'),
-            ('Plain Text', 'Plain Text')
-        ]
-
-class Twisted(Bin):
-
-    PASTE_URL = 'http://deadbeefbabe.org/paste/freeform_post!!addPasting'
-
-    def create_data_dict(self, title, name, content, syntax):
-        return dict(
-            author=name,
-            text=content,
-            addPasting='addPasting',
-            _charset_='',
-        )
-
-    @classmethod
-    def get_syntax_items(cls):
-        return [('Python', '')]
-
-class PastebinEditorView(PidaGladeView):
-
-    gladefile = 'paste-editor'
-    locale = locale
-    label_text = _('Paste Editor')
-    icon_name = gtk.STOCK_PASTE
-
-    def create_ui(self):
-        self.paste_location.prefill(self.svc.get_pastebin_types())
-
-    def on_paste_location__content_changed(self, cmb):
-        self.paste_syntax.prefill(self.paste_location.read().get_syntax_items())
-
-    def on_post_button__clicked(self, button):
-        paste_type = self.paste_location.read()
-        self.svc.commence_paste(paste_type, *self.read_values())
-
-    def on_cancel_button__clicked(self, button):
-        self.svc.cancel_paste()
-
-    def read_values(self):
-        return (self.paste_title.get_text(),
-                self.paste_name.get_text(),
-                self.paste_content.get_buffer().get_text(
-                    self.paste_content.get_buffer().get_start_iter(),
-                    self.paste_content.get_buffer().get_end_iter(),
-                ),
-                self.paste_syntax.read(),
-        )
-
-    def can_be_closed(self):
-        self.svc.cancel_paste()
-
-class PasteHistoryView(PidaView):
-
-    label_text = _('Paste History')
-    icon_name = gtk.STOCK_PASTE
-
-    #glade_file_name = 'paste-history.glade'
-
-    def create_ui(self):
-        self.__history_tree = ObjectList(
-            [Column('markup', use_markup=True, expand=True)])
-        self.__history_tree.set_headers_visible(False)
-        self.add_main_widget(self.__history_tree)
-        self.__x11_clipboard = gtk.Clipboard(selection="PRIMARY")
-        self.__gnome_clipboard = gtk.Clipboard(selection="CLIPBOARD")
-        self.__tree_selected = None
-        #self.__history_tree.connect('selection-changed', self.cb_paste_clicked)
-        self.__history_tree.connect('double-click', self.cb_paste_db_clicked)
-        #self.__history_tree.connect('middle-clicked', self.cb_paste_m_clicked)
-        self.__history_tree.connect('right-click', self.on_paste_rclick)
-        self.__pulse_bar = gtk.ProgressBar()
-        self.add_main_widget(self.__pulse_bar, expand=False)
-        self.__pulse_bar.show_all()
-        self.__pulse_bar.set_size_request(-1, 12)
-        self.__pulse_bar.set_pulse_step(0.01)
-        self.__history_tree.show_all()
-
-    def set(self, pastes):
-        '''Sets the paste list to the tree view.
-           First reset it, then rebuild it.
-        '''
-        self.__history_tree.clear()
-        for paste in pastes:
-            self.__history_tree.append(paste)
-        self.__tree_selected = None
-
-    def add_paste(self, item):
-        self.__history_tree.append(item)
-
-    #def on_add__clicked(self, but):
-    #    '''Callback function bound to the toolbar button new that creates a new
-    #    paste to post'''
-    #    self.service.boss.call_command('pastemanager','create_paste')
-
-    def copy_current_paste(self):
-        '''Callback function bound to the toolbar button view that copies the
-        selected paste'''
-        if self.__tree_selected != None:
-            self.__x11_clipboard.set_text(self.__tree_selected.get_url())
-            self.__gnome_clipboard.set_text(self.__tree_selected.get_url())