Improve size of nested views
This commit is contained in:
1 parent
ac67026f8e
commit
1571bfabd7
4 files changed
+25
-9
No files matched your search
@@ -35,13 +35,16 @@ class ViewForm(ParserView):
|
||||
scroll = gtk.ScrolledWindow()
|
||||
scroll.add(vp)
|
||||
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
self.viewport = gtk.Viewport()
|
||||
self.viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN)
|
||||
self.viewport.add(scroll)
|
||||
scroll.set_placement(gtk.CORNER_TOP_LEFT)
|
||||
viewport = gtk.Viewport()
|
||||
viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN)
|
||||
viewport.add(scroll)
|
||||
width, height = self.widget.size_request()
|
||||
if isinstance(self.screen.window, gtk.Dialog):
|
||||
vbox.set_size_request(width or -1, height or -1)
|
||||
vbox.pack_start(viewport, expand=True, fill=True)
|
||||
|
||||
self.widget = vbox
|
||||
self.widget.set_size_request(width, height)
|
||||
self.widget.pack_start(self.viewport, expand=True, fill=True)
|
||||
|
||||
if toolbar and not CONFIG['client.modepda']:
|
||||
hbox = gtk.HBox(homogeneous=False)
|
||||
|
||||
@@ -64,6 +64,8 @@ class Many2Many(WidgetInterface):
|
||||
view_type=['tree'], views_preload=attrs.get('views', {}),
|
||||
row_activate=self._on_activate)
|
||||
|
||||
if not isinstance(self.screen.window, gtk.Dialog):
|
||||
self.screen.widget.set_size_request(0, 0)
|
||||
self.widget.pack_start(self.screen.widget, expand=True, fill=True)
|
||||
|
||||
self.screen.widget.connect('key_press_event', self.on_keypress)
|
||||
|
||||
@@ -166,6 +166,8 @@ class One2Many(WidgetInterface):
|
||||
self.screen.signal_connect(self, 'record-message', self._sig_label)
|
||||
menuitem_title.get_child().set_text(attrs.get('string', ''))
|
||||
|
||||
if not isinstance(self.screen.window, gtk.Dialog):
|
||||
self.screen.widget.set_size_request(0, 0)
|
||||
self.widget.pack_start(self.screen.widget, expand=True, fill=True)
|
||||
|
||||
self.screen.widget.connect('key_press_event', self.on_keypress)
|
||||
|
||||
@@ -150,16 +150,25 @@ class ViewList(ParserView):
|
||||
buttons, toolbar, notebooks, cursor_widget)
|
||||
self.store = None
|
||||
self.view_type = 'tree'
|
||||
self.widget = gtk.VBox()
|
||||
self.widget_tree = widget
|
||||
|
||||
vbox = gtk.VBox()
|
||||
scroll = gtk.ScrolledWindow()
|
||||
scroll.add(self.widget_tree)
|
||||
scroll.add(self.widget)
|
||||
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
scroll.set_placement(gtk.CORNER_TOP_LEFT)
|
||||
viewport = gtk.Viewport()
|
||||
viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN)
|
||||
viewport.add(scroll)
|
||||
self.widget.pack_start(viewport, expand=True, fill=True)
|
||||
width, height = self.widget.size_request()
|
||||
self.widget_tree = self.widget
|
||||
|
||||
if isinstance(self.screen.window, gtk.Dialog):
|
||||
vbox.set_size_request(width or -1, height or -1)
|
||||
vbox.pack_start(viewport, expand=True, fill=True)
|
||||
|
||||
self.widget_tree.screen = screen
|
||||
|
||||
self.widget = vbox
|
||||
self.reload = False
|
||||
self.children = children
|
||||
|
||||
|
||||
Reference in new issue
Block a user