This commit is contained in:
Nicolas Évrard committed 2011-05-17 15:21:23 +02:00
commit f08c11bcb2
8 files changed
+45 -15

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
Version 2.0.0 - 2010-04-26
Version 2.0.0 - 2011-04-26
* Bug fixes (see mercurial logs for details)
* Popup form dialog has 3 buttons (close, ok, new)
* New UI layout
@@ -228,6 +228,12 @@ class Group(SignalEvent, list):
self.append(record)
else:
self.insert(position, record)
for record_rm in self.record_removed:
if record_rm.id == record.id:
self.record_removed.remove(record)
for record_del in self.record_deleted:
if record_del.id == record.id:
self.record_deleted.remove(record)
self.current_idx = position
if modified:
record.modified_fields.setdefault('id')
+6
View File
@@ -43,6 +43,12 @@ class ViewForm(ParserView):
viewport.add(scroll)
if isinstance(self.screen.window, gtk.Dialog):
width, height = self.widget.size_request()
if self.screen.window:
parent = self.screen.window.get_transient_for()
if parent:
parent_width, parent_height = parent.get_size()
width = min(parent_width - 40, width)
height = min(parent_height - 80, height)
vbox.set_size_request(width or -1, height or -1)
vbox.pack_start(viewport, expand=True, fill=True)
@@ -36,7 +36,7 @@ class Many2One(WidgetInterface):
self.wid_text.connect('focus-out-event', lambda x, y: self._focus_out())
self.wid_text.connect_after('changed', self.sig_changed)
self.changed = True
self.wid_text.connect_after('activate', self.sig_activate)
self.wid_text.connect('activate', self.sig_activate)
self.wid_text.connect_after('focus-out-event', self.sig_activate)
self.focus_out = True
self.widget.pack_start(self.wid_text, expand=True, fill=True)
@@ -93,6 +93,8 @@ class Many2One(WidgetInterface):
self.focus_out = False
if not value:
if not key_press and not event:
widget.emit_stop_by_name('activate')
if not self._readonly and (self.wid_text.get_text() or \
(self.field.get_state_attrs(
self.record)['required']) and key_press):
@@ -44,3 +44,6 @@ class ViewGraph(ParserView):
def set_cursor(self, new=False, reset_view=True):
pass
def get_fields(self):
return []
+14 -1
View File
@@ -84,9 +84,18 @@ class AdaptModelGroup(gtk.GenericTreeModel):
group = record_pos.group
pos = group.index(record_pos) + offset
if group is not record.group:
prev_group = record.group
record.group.remove(record, remove=True, force_remove=True)
# Don't remove record from previous group
# as the new parent will change the parent
# This prevents concurrency conflict
record.group.record_removed.remove(record)
group.add(record)
record.modified_fields.setdefault(record.parent_name or 'id')
if not record.parent_name:
record.modified_fields.setdefault(prev_group.parent_name)
record.value[prev_group.parent_name] = False
else:
record.modified_fields.setdefault(record.parent_name)
group.move(record, pos)
def move_before(self, record, path):
@@ -740,6 +749,8 @@ class ViewList(ParserView):
if model and iter_:
record = model.get_value(iter_, 0)
self.screen.current_record = record
else:
self.screen.current_record = None
elif tree_sel.get_mode() == gtk.SELECTION_MULTIPLE:
model, paths = tree_sel.get_selected_rows()
@@ -747,6 +758,8 @@ class ViewList(ParserView):
iter_ = model.get_iter(paths[0])
record = model.get_value(iter_, 0)
self.screen.current_record = record
else:
self.screen.current_record = None
if hasattr(self.widget_tree, 'editable') \
and self.widget_tree.editable \
+8 -8
View File
@@ -177,15 +177,15 @@ class PySocket:
+ (gzip_p and "1" or "0") + msg
size = len(msg)
totalsent = 0
while totalsent < size:
if self.ssl:
if self.ssl:
totalsent = 0
while totalsent < size:
sent = self.ssl_sock.write(msg[totalsent:])
else:
sent = self.sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError, "socket connection broken"
totalsent = totalsent + sent
if sent == 0:
raise RuntimeError, "socket connection broken"
totalsent = totalsent + sent
else:
self.sock.sendall(msg)
def receive(self):
buf = self.buffer
+4 -4
View File
@@ -103,10 +103,10 @@ class Dialog(object):
width, height = self.screen.screen_container.size_get()
parent_width, parent_height = parent.get_size()
dia_width, dia_height = self.dia.get_size()
self.widget_width = max(min(parent_width - 20,
max(dia_width, width + 20)), size[0])
self.widget_height = max(min(parent_height - 60,
height + dia_height + 20), size[1])
self.widget_width = min(parent_width - 20,
max(dia_width, width + 20, size[0]))
self.widget_height = min(parent_height - 60,
max(height + dia_height + 20, size[1]))
self.dia.set_default_size(self.widget_width,
self.widget_height)
self.screen.widget.show()