diff options
-rw-r--r-- | grc/core/utils/epy_block_io.py | 2 | ||||
-rw-r--r-- | grc/gui/ActionHandler.py | 11 | ||||
-rw-r--r-- | grc/gui/Block.py | 15 | ||||
-rw-r--r-- | grc/gui/Constants.py | 3 | ||||
-rw-r--r-- | grc/gui/FlowGraph.py | 2 | ||||
-rw-r--r-- | grc/gui/PropsDialog.py | 4 | ||||
-rw-r--r-- | grc/gui/Utils.py | 7 |
7 files changed, 28 insertions, 16 deletions
diff --git a/grc/core/utils/epy_block_io.py b/grc/core/utils/epy_block_io.py index 76b50051db..4eb4d6d4e5 100644 --- a/grc/core/utils/epy_block_io.py +++ b/grc/core/utils/epy_block_io.py @@ -19,7 +19,7 @@ def _ports(sigs, msgs): for i, dtype in enumerate(sigs): port_type = TYPE_MAP.get(dtype.name, None) if not port_type: - raise ValueError("Can't map {0:!r} to GRC port type".format(dtype)) + raise ValueError("Can't map {0!r} to GRC port type".format(dtype)) ports.append((str(i), port_type)) for msg_key in msgs: if msg_key == 'system': diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py index f18fcea3e1..b9f534fdf0 100644 --- a/grc/gui/ActionHandler.py +++ b/grc/gui/ActionHandler.py @@ -23,7 +23,7 @@ import gtk import os import subprocess -from . import Dialogs, Preferences, Actions, Executor, Constants +from . import Dialogs, Preferences, Actions, Executor, Constants, Utils from .FileDialogs import (OpenFlowGraphFileDialog, SaveFlowGraphFileDialog, SaveConsoleFileDialog, SaveScreenShotDialog, OpenQSSFileDialog) @@ -515,8 +515,9 @@ class ActionHandler: elif action == Actions.FLOW_GRAPH_NEW: main.new_page() if args: + flow_graph = main.get_flow_graph() flow_graph._options_block.get_param('generate_options').set_value(args[0]) - flow_graph_update() + flow_graph_update(flow_graph) elif action == Actions.FLOW_GRAPH_OPEN: file_paths = args if args else OpenFlowGraphFileDialog(page.get_file_path()).run() if file_paths: #open a new page for each file, show only the first @@ -688,8 +689,10 @@ class ActionHandler: Actions.FLOW_GRAPH_SAVE.set_sensitive(not page.get_saved()) main.update() try: #set the size of the flow graph area (if changed) - new_size = (flow_graph.get_option('window_size') or - self.platform.config.default_canvas_size) + new_size = Utils.scale( + flow_graph.get_option('window_size') or + self.platform.config.default_canvas_size + ) if flow_graph.get_size() != tuple(new_size): flow_graph.set_size(*new_size) except: pass diff --git a/grc/gui/Block.py b/grc/gui/Block.py index 55c8805fae..b90ea485ee 100644 --- a/grc/gui/Block.py +++ b/grc/gui/Block.py @@ -95,9 +95,8 @@ class Block(Element, _Block): """ proximity = Constants.BORDER_PROXIMITY_SENSITIVITY try: #should evaluate to tuple - coor = eval(self.get_param('_coordinate').get_value()) - x, y = map(int, coor) - fgW,fgH = self.get_parent().get_size() + x, y = Utils.scale(eval(self.get_param('_coordinate').get_value())) + fgW, fgH = self.get_parent().get_size() if x <= 0: x = 0 elif x >= fgW - proximity: @@ -124,7 +123,7 @@ class Block(Element, _Block): Utils.align_to_grid(coor[0] + offset_x) - offset_x, Utils.align_to_grid(coor[1] + offset_y) - offset_y ) - self.get_param('_coordinate').set_value(str(coor)) + self.get_param('_coordinate').set_value(str(Utils.scale(coor, reverse=True))) def bound_move_delta(self, delta_coor): """ @@ -141,11 +140,11 @@ class Block(Element, _Block): try: fgW, fgH = self.get_parent().get_size() - x, y = map(int, eval(self.get_param("_coordinate").get_value())) + x, y = Utils.scale(eval(self.get_param('_coordinate').get_value())) if self.is_horizontal(): - sW, sH = self.W, self.H + sW, sH = self.W, self.H else: - sW, sH = self.H, self.W + sW, sH = self.H, self.W if x + dX < 0: dX = -x @@ -154,7 +153,7 @@ class Block(Element, _Block): if y + dY < 0: dY = -y elif dY + y + sH >= fgH: - dY = fgH - y - sH + dY = fgH - y - sH except: pass diff --git a/grc/gui/Constants.py b/grc/gui/Constants.py index 6a7b54dffa..f77221e52d 100644 --- a/grc/gui/Constants.py +++ b/grc/gui/Constants.py @@ -96,6 +96,9 @@ SCROLL_DISTANCE = 15 # How close the mouse click can be to a line and register a connection select. LINE_SELECT_SENSITIVITY = 5 +_SCREEN_RESOLUTION = gtk.gdk.screen_get_default().get_resolution() +DPI_SCALING = _SCREEN_RESOLUTION / 96.0 if _SCREEN_RESOLUTION > 0 else 1.0 + def update_font_size(font_size): global PORT_SEPARATION, BLOCK_FONT, PORT_FONT, PARAM_FONT, FONT_SIZE diff --git a/grc/gui/FlowGraph.py b/grc/gui/FlowGraph.py index f98aec41d5..5bcf018120 100644 --- a/grc/gui/FlowGraph.py +++ b/grc/gui/FlowGraph.py @@ -407,7 +407,7 @@ class FlowGraph(Element, _Flowgraph): Draw the pixmap to the drawable window of this flow graph. """ - W,H = self.get_size() + W, H = self.get_size() hide_disabled_blocks = Actions.TOGGLE_HIDE_DISABLED_BLOCKS.get_active() hide_variables = Actions.TOGGLE_HIDE_VARIABLES.get_active() diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py index 7c66a77a54..a5b46cbbac 100644 --- a/grc/gui/PropsDialog.py +++ b/grc/gui/PropsDialog.py @@ -72,7 +72,9 @@ class PropsDialog(gtk.Dialog): gtk.STOCK_APPLY, gtk.RESPONSE_APPLY) ) self.set_response_sensitive(gtk.RESPONSE_APPLY, False) - self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) + self.set_size_request(*Utils.scale( + (MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) + )) self._block = block vpaned = gtk.VPaned() diff --git a/grc/gui/Utils.py b/grc/gui/Utils.py index 51b9b19e9f..7d15d47142 100644 --- a/grc/gui/Utils.py +++ b/grc/gui/Utils.py @@ -24,7 +24,7 @@ import gobject from Cheetah.Template import Template -from Constants import POSSIBLE_ROTATIONS, CANVAS_GRID_SIZE +from Constants import POSSIBLE_ROTATIONS, CANVAS_GRID_SIZE, DPI_SCALING def rotate_pixmap(gc, src_pixmap, dst_pixmap, angle=gtk.gdk.PIXBUF_ROTATE_COUNTERCLOCKWISE): @@ -131,3 +131,8 @@ def align_to_grid(coor, mode=round): except TypeError: x = coor return align(coor) + + +def scale(coor, reverse=False): + factor = DPI_SCALING if not reverse else 1 / DPI_SCALING + return tuple(int(x * factor) for x in coor) |