je me distrais avec pygtk...

This commit is contained in:
fpeters 2003-06-11 18:20:21 +00:00
parent cddd494e20
commit 487bb90831
6 changed files with 91 additions and 16 deletions

View File

@ -60,6 +60,7 @@ import glasnost
import glasnost.common.context as context
import glasnost.common.tools_new as commonTools
from glasnost.common.tools import utf8
from glasnost.common.cache import cache
import glasnost.gtk.MainWindow
import glasnost.gtk.LoginBox
@ -72,6 +73,11 @@ def main():
'%s-web' % glasnost.applicationName).split(',') ]
translation = commonTools.translation(domains + ['gnome-libs'])
__builtin__.__dict__['_'] = lambda x: utf8(translation.gettext(x))
language = os.environ.get('LANG')
if language:
language = language.split('_')[0].split('@')[0]
else:
language = 'C'
imagesDirectory = glasnost.gtk.MainWindow.__file__
imagesDirectory = imagesDirectory[:imagesDirectory.rindex('/')]
@ -84,6 +90,8 @@ def main():
context.push(
applicationId = "glasnost://localhost/glasnost-gtk",
readLanguages = [language],
cache = cache,
#Must be chosen by user (default follows...)
userId = '',
userToken = '',

View File

@ -50,8 +50,8 @@ class GnomeMainWindow:
gnome.init('glasnost', '0.1')
xmlGlade = glade.XML('glasnost-gtk/glasnost-gnome.glade', 'MainWindow')
self._window = xmlGlade.get_widget('MainWindow')
self._window.show()
optionMenu = xmlGlade.get_widget('OptionMenuServerRoles')
self._window.set_default_size(800,600)
optionMenu = xmlGlade.get_widget('optionmenu-serverroles')
menu = gtk.Menu()
menu.show()
@ -80,12 +80,31 @@ class GnomeMainWindow:
menu.add(menuitem)
menuitem.show()
self.objectBrowser = MiniBrowser.MiniBrowser(None, 'favorite')
self.contents = xmlGlade.get_widget('hbox-content')
self.contents.pack_start(self.objectBrowser, TRUE, TRUE, 0)
xmlGlade.signal_connect('on_exit', self.delete_event)
self.treeviewObjects = xmlGlade.get_widget('treeview-objects')
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
self.treeviewObjects.set_model(model)
self.treeviewObjects.set_rules_hint(gtk.TRUE)
self.treeviewObjects.set_search_column(0)
column = gtk.TreeViewColumn('Label', gtk.CellRendererText(), text = 0)
self.treeviewObjects.append_column(column)
self.treeviewObjects.get_selection().connect('changed', self.onObjectSelected)
self.objectLabel = xmlGlade.get_widget('label-objectLabel')
self.objectLabel.set_text('')
self.frameObject = xmlGlade.get_widget('frame-object')
self.objectTable = None
paned = xmlGlade.get_widget('hpaned-content')
paned.set_position(200)
self.appbar = xmlGlade.get_widget('appbar')
self._window.show()
def show_all(self):
pass
@ -93,10 +112,46 @@ class GnomeMainWindow:
return gtk.main_quit()
def onChangeRole(self, *args):
self.objectBrowser.destroy()
self.objectBrowser = MiniBrowser.MiniBrowser(args[1])
self.contents.pack_start(self.objectBrowser, TRUE, TRUE, 0)
proxy = getProxyForServerRole(args[1])
self.objectIds = proxy.getObjectIds()
model = self.treeviewObjects.get_model()
model.clear()
percentage = 0
if self.objectIds:
step = 1.0/len(self.objectIds)
for id in self.objectIds:
label = proxy.getObjectLabelTranslated(id, context.getVar('readLanguages'))
iter = model.append()
model.set(iter, 0, utf8(label), 1, id)
percentage += step
self.appbar.set_progress_percentage(percentage)
while gtk.events_pending():
gtk.mainiteration()
self.objectLabel.set_text(_('Nothing selected'))
self.appbar.set_progress_percentage(0)
def onObjectSelected(self, selection):
s = selection.get_selected()
if not s:
return
model, iter = s
if iter is None:
return
path = model.get_path(iter)
objectId = self.objectIds[path[0]]
object = getObject(objectId)
self.objectLabel.set_markup('<big><b>%s</b></big>' % utf8(object.getLabel()) )
if self.objectTable:
self.objectTable.destroy()
self.objectTable = object.getViewTable()
self.objectTable.show_all()
self.frameObject.add(self.objectTable)
class MainWindow(gtk.Window):
def delete_event(self, widget, event, data=None):

View File

@ -71,6 +71,16 @@ class ObjectGtkMixin(things.ThingMixin):
def getListValues(self):
return [self.id, self.getLabel()]
def getViewTable(self):
slotNames = self.getViewLayoutSlotNames(self)
table = gtk.Table(len(slotNames), 2, gtk.TRUE)
for slotName, i in zip(slotNames, range(len(slotNames))):
slot = self.getSlot(slotName)
widget = slot.getWidget()
table.attach(widget.getWidgetLabel(slot), 0, 1, i, i+1)
table.attach(widget.getWidgetView(slot), 1, 2, i, i+1)
return table
class GtkMixin(things.ThingMixin):
thingCategory = 'gtk'
@ -205,3 +215,4 @@ class ObjectsGtkMixin(GtkMixin):
objViewer.add_infoframe(objInfos)
#Not very very clean ...
objViewer.stock_slot_list(self.SlotDico)

View File

@ -54,7 +54,7 @@ class SessionsManager(GlasnostGui.scaffold_view):
def __init__(self, parentWindow):
GlasnostGui.scaffold_view.__init__(self)
self.sessionsList = getSessionsList()
self.sessionsList = sessions.getSessionsList()
self.set_position(gtk.WIN_POS_CENTER)
self.connect('delete_event', self.delete_event)
@ -68,7 +68,7 @@ class SessionsManager(GlasnostGui.scaffold_view):
#Widgets Instances
self.selector = gtk.OptionMenu()
sessionMenu = getSessionMenu(self.sessionsList, self.set_parent_fields)
sessionMenu = sessions.getSessionMenu(self.sessionsList, self.set_parent_fields)
self.active_menu = sessionMenu
self.selector.set_menu(sessionMenu)

View File

@ -123,13 +123,13 @@ class ThingMixin:
def getViewLayoutVisibleSlotNames(self, parentSlot = None):
slotNames = self.getViewLayoutSlotNames(parentSlot = parentSlot)
VisibleSlotNames = []
visibleSlotNames = []
for slotName in slotNames:
slot = self.getSlot(slotName, parentSlot = parentSlot)
kind = slot.getKind()
if not kind.isHidden:
VisibleSlotNames.append(slotName)
return VisibleSlotNames
visibleSlotNames.append(slotName)
return visibleSlotNames
def getLayoutSlotNames(self, parentSlot = None):
allSlotNames = self.getSlotNames(parentSlot = parentSlot)

View File

@ -338,8 +338,9 @@ class SelectId(WidgetMixin, proxyWidgets.SelectId):
if type(value) is not type(''):
value = repr(value)
ref = gtk.Button(value)
GlobalEventRef = context.getVar('gtkGlobalEvent_instance')
ref.connect("clicked",GlobalEventRef.new_view_by_id, value)
globalEventRef = context.getVar('gtkGlobalEvent_instance')
if globalEventRef:
ref.connect("clicked", globalEventRef.new_view_by_id, value)
return ref
def getWidgetEdit(self, slot):