je me distrais avec pygtk...
This commit is contained in:
parent
cddd494e20
commit
487bb90831
|
@ -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 = '',
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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):
|
||||
|
|
Reference in New Issue