*** empty log message ***

git-svn-id: file:///Users/arjan/backup/gaphor/trunk/gaphor@399 a8418922-720d-0410-834f-a69b97ada669
This commit is contained in:
Arjan Molenaar 2004-09-10 13:41:08 +00:00
parent 13d2b49fbc
commit c9ba332367
2 changed files with 94 additions and 5 deletions

View File

@ -5,13 +5,15 @@
import sys
import gobject
import pango
import gtk
import gaphor
from gaphor.ui.abstractwindow import AbstractWindow
from gaphor.plugin import resource
NAME_COLUMN = 0
STATUS_COLUMN = 1
PLUGIN_COLUMN = 0
NAME_COLUMN = 1
STATUS_COLUMN = 2
class PluginEditorWindow(AbstractWindow):
@ -21,9 +23,12 @@ class PluginEditorWindow(AbstractWindow):
AbstractWindow.__init__(self)
def construct(self):
model = gtk.ListStore(gobject.TYPE_STRING,
model = gtk.ListStore(gobject.TYPE_PYOBJECT,
gobject.TYPE_STRING,
gobject.TYPE_STRING)
vbox = gtk.VBox()
treeview = gtk.TreeView(model)
treeview.connect('row-activated', self.on_row_activated)
selection = treeview.get_selection()
@ -34,8 +39,10 @@ class PluginEditorWindow(AbstractWindow):
scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scrolled_window.set_shadow_type(gtk.SHADOW_IN)
scrolled_window.add(treeview)
vbox.pack_start(scrolled_window, expand=True)
scrolled_window.show()
#cell = gtk.CellRendererText()
cell = gtk.CellRendererText()
column = gtk.TreeViewColumn("Name", cell, text=NAME_COLUMN)
treeview.append_column(column)
@ -45,13 +52,35 @@ class PluginEditorWindow(AbstractWindow):
treeview.append_column(column)
treeview.show()
detail = gtk.TextView()
detail.set_wrap_mode(gtk.WRAP_WORD)
detail.show()
scrolled_window = gtk.ScrolledWindow()
scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scrolled_window.set_shadow_type(gtk.SHADOW_IN)
scrolled_window.add(detail)
vbox.pack_start(scrolled_window, expand=True)
scrolled_window.show()
vbox.show()
self._construct_window(name='plugineditor',
title='Plugin editor',
size=(400, 400),
contents=scrolled_window)
contents=vbox)
self.model = model
self.treeview = treeview
self.detail = detail
# Create some nice tags for the text buffer:
buffer = detail.get_buffer()
tag = buffer.create_tag('bold')
tag.set_property('weight', pango.WEIGHT_BOLD)
tag = buffer.create_tag('indent')
tag.set_property('font', 'Sans 18')
treeview.connect_after('cursor_changed', self.on_view_cursor_changed)
self.update()
def update(self):
@ -60,10 +89,69 @@ class PluginEditorWindow(AbstractWindow):
for plugin in manager.get_plugins():
iter = model.append()
model.set_value(iter, PLUGIN_COLUMN, plugin)
model.set_value(iter, NAME_COLUMN, plugin.name)
model.set_value(iter, STATUS_COLUMN, plugin.status)
def update_detail(self, plugin):
"""Update the detail section with the plugin data
"""
buffer = self.detail.get_buffer()
start, end = buffer.get_bounds()
buffer.delete(start, end)
iter = buffer.get_iter_at_offset(0)
buffer.insert(iter, 'Name: ')
mark = buffer.create_mark('insert_mark', iter)
#start = buffer.get_iter_at_offset(0)
#buffer.apply_tag_by_name('bold', start, iter)
buffer.insert(iter, plugin.name)
start = buffer.get_iter_at_mark(mark)
buffer.apply_tag_by_name('bold', start, iter)
mark = buffer.create_mark('insert_mark', iter)
buffer.insert(iter, '\nVersion: ')
start = buffer.get_iter_at_mark(mark)
buffer.apply_tag_by_name('bold', start, iter)
buffer.insert(iter, plugin.version)
buffer.insert(iter, '\nAuthor: ')
buffer.insert(iter, plugin.author)
buffer.insert(iter, '\nDescription: ')
start = buffer.get_iter_at_mark(mark)
buffer.apply_tag_by_name('bold', start, iter)
buffer.move_mark(mark, iter)
for line in plugin.description.split('\n'):
buffer.insert(iter, line.strip())
start = buffer.get_iter_at_mark(mark)
iter = buffer.get_end_iter()
buffer.apply_tag_by_name('indent', start, iter)
buffer.move_mark(mark, iter)
buffer.insert(iter, '\nPath: ')
buffer.insert(iter, plugin.path)
buffer.insert(iter, '\nProvided actions: ')
buffer.insert(iter, ', '.join(map(getattr, plugin.provided_actions, ['label'] * len(plugin.provided_actions))))
def on_row_activated(self, treeview, row, column):
iter = self.model.get_iter(row)
name = self.model.get_value(iter, NAME_COLUMN)
def on_view_cursor_changed(self, view):
selection = view.get_selection()
model, iter = selection.get_selected()
if not iter:
return
element = model.get_value(iter, PLUGIN_COLUMN)
self.update_detail(element)

View File

@ -8,7 +8,7 @@
MAJOR_VERSION = 0
MINOR_VERSION = 5
MICRO_VERSION = 1
MICRO_VERSION = 2
VERSION = '%d.%d.%d' % ( MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION )
@ -363,6 +363,7 @@ setup(name='gaphor',
data_files=[('', ['data/icons.xml']),
('pixmaps', glob('data/pixmaps/*.png')),
('plugins/plugineditor', glob('data/plugins/plugineditor/*.*')),
('plugins/liveobjectbrowser', glob('data/plugins/liveobjectbrowser/*.*')),
('plugins/checkmetamodel', glob('data/plugins/checkmetamodel/*.*'))
],
scripts=['bin/gaphor'],