mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 17:59:37 +00:00
tools: various improvements in gimp-performance-log-viewer.py
Fix int-ratio variable formatting when the input is NaN, which can happen when calculating the standard deviation, if all the values are infinite. Fix keyboard sample-range selection. Deselect all samples when right-clicking a sample graph.
This commit is contained in:
parent
9a2999a553
commit
d33fb0e7b8
1 changed files with 35 additions and 33 deletions
|
@ -103,9 +103,11 @@ var_types = {
|
||||||
"int-ratio": VariableType (
|
"int-ratio": VariableType (
|
||||||
parse = lambda x: div (*map (int, x.split (":"))),
|
parse = lambda x: div (*map (int, x.split (":"))),
|
||||||
format = lambda x: "%g:%g" % (
|
format = lambda x: "%g:%g" % (
|
||||||
(1, 0) if math.isinf (x) else
|
(0, 0) if math.isnan (x) else
|
||||||
|
(1, 0) if x == math.inf else
|
||||||
|
(-1, 0) if x == -math.inf else
|
||||||
(0, 1) if x == 0 else
|
(0, 1) if x == 0 else
|
||||||
(round (100 * x) / 100, 1) if x > 1 else
|
(round (100 * x) / 100, 1) if abs (x) > 1 else
|
||||||
(1, round (100 / x) / 100)
|
(1, round (100 / x) / 100)
|
||||||
),
|
),
|
||||||
format_numeric = None
|
format_numeric = None
|
||||||
|
@ -719,50 +721,49 @@ class SampleGraph (Gtk.DrawingArea):
|
||||||
def do_button_press_event (self, event):
|
def do_button_press_event (self, event):
|
||||||
self.grab_focus ()
|
self.grab_focus ()
|
||||||
|
|
||||||
if event.button != 1:
|
if event.button == 1:
|
||||||
return False
|
i = self.x_to_sample (event.x)
|
||||||
|
|
||||||
i = self.x_to_sample (event.x)
|
if i is None:
|
||||||
|
return False
|
||||||
|
|
||||||
if i is None:
|
self.selection = selection.copy ()
|
||||||
return False
|
self.selection_i0 = i
|
||||||
|
self.selection_i1 = i
|
||||||
|
self.selection_op = SelectionOp.REPLACE
|
||||||
|
self.selection_range = event.type != Gdk.EventType.BUTTON_PRESS
|
||||||
|
|
||||||
self.selection = selection.copy ()
|
state = event.state & Gdk.ModifierType.MODIFIER_MASK
|
||||||
self.selection_i0 = i
|
|
||||||
self.selection_i1 = i
|
|
||||||
self.selection_op = SelectionOp.REPLACE
|
|
||||||
self.selection_range = event.type != Gdk.EventType.BUTTON_PRESS
|
|
||||||
|
|
||||||
state = event.state & Gdk.ModifierType.MODIFIER_MASK
|
if state == Gdk.ModifierType.SHIFT_MASK:
|
||||||
|
self.selection_op = SelectionOp.ADD
|
||||||
|
elif state == Gdk.ModifierType.CONTROL_MASK:
|
||||||
|
self.selection_op = SelectionOp.SUBTRACT
|
||||||
|
elif state == (Gdk.ModifierType.SHIFT_MASK |
|
||||||
|
Gdk.ModifierType.CONTROL_MASK):
|
||||||
|
self.selection_op = SelectionOp.INTERSECT
|
||||||
|
|
||||||
if state == Gdk.ModifierType.SHIFT_MASK:
|
self.update_selection ()
|
||||||
self.selection_op = SelectionOp.ADD
|
|
||||||
elif state == Gdk.ModifierType.CONTROL_MASK:
|
|
||||||
self.selection_op = SelectionOp.SUBTRACT
|
|
||||||
elif state == (Gdk.ModifierType.SHIFT_MASK |
|
|
||||||
Gdk.ModifierType.CONTROL_MASK):
|
|
||||||
self.selection_op = SelectionOp.INTERSECT
|
|
||||||
|
|
||||||
self.update_selection ()
|
self.grab_add ()
|
||||||
|
elif event.button == 3:
|
||||||
|
selection.select (set ())
|
||||||
|
|
||||||
self.grab_add ()
|
self.grab_add ()
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def do_button_release_event (self, event):
|
def do_button_release_event (self, event):
|
||||||
if event.button != 1:
|
if event.button == 1 or event.button == 3:
|
||||||
return False
|
self.selection = None
|
||||||
|
|
||||||
if self.selection is None:
|
selection.change_complete ()
|
||||||
return False
|
|
||||||
|
|
||||||
self.selection = None
|
self.grab_remove ()
|
||||||
|
|
||||||
self.grab_remove ()
|
return True
|
||||||
|
|
||||||
selection.change_complete ()
|
return False
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
def do_motion_notify_event (self, event):
|
def do_motion_notify_event (self, event):
|
||||||
i = self.x_to_sample (event.x)
|
i = self.x_to_sample (event.x)
|
||||||
|
@ -846,8 +847,9 @@ class SampleGraph (Gtk.DrawingArea):
|
||||||
|
|
||||||
selection.select_range (i0, cursor, op)
|
selection.select_range (i0, cursor, op)
|
||||||
|
|
||||||
selection.cursor = cursor
|
if len (selection.selection) > 1:
|
||||||
selection.cursor_dir = cursor_dir
|
selection.cursor = cursor
|
||||||
|
selection.cursor_dir = cursor_dir
|
||||||
|
|
||||||
return True
|
return True
|
||||||
elif event.keyval == Gdk.KEY_Escape:
|
elif event.keyval == Gdk.KEY_Escape:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue