summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--grc/core/utils/epy_block_io.py2
-rw-r--r--grc/gui/ActionHandler.py11
-rw-r--r--grc/gui/Block.py15
-rw-r--r--grc/gui/Constants.py3
-rw-r--r--grc/gui/FlowGraph.py2
-rw-r--r--grc/gui/PropsDialog.py4
-rw-r--r--grc/gui/Utils.py7
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 b9fc12b782..39c6993a37 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 44a8ae24a9..e0cd7d1441 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 0e7005d7a7..cfea13e1a8 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 80dcb4283a..d85b846b3a 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)