Skip to content
Snippets Groups Projects

Move add_ports logic to drag_button

Merged Oscar Gustafsson requested to merge addportrefactor into master
Files
2
+ 10
14
@@ -10,6 +10,7 @@ from qtpy.QtCore import QSize, Qt, Signal
from qtpy.QtGui import QIcon
from qtpy.QtWidgets import QAction, QMenu, QPushButton
from b_asic.GUI.port_button import PortButton
from b_asic.GUI.properties_window import PropertiesWindow
from b_asic.GUI.utils import decorate_class, handle_error
from b_asic.GUI._preferences import (
@@ -73,7 +74,8 @@ class DragButton(QPushButton):
menu.exec_(self.cursor().pos())
def show_properties_window(self, event):
PropertiesWindow(self, self._window).show()
self._properties_window = PropertiesWindow(self, self._window)
self._properties_window.show()
def add_label(self, label):
self.label = label
@@ -233,7 +235,8 @@ class DragButton(QPushButton):
def add_ports(self):
def _determine_port_distance(height, ports):
"""Determine the distance between each port on the side of an operation.
"""
Determine the distance between each port on the side of an operation.
The method returns the distance that each port should have from 0.
"""
return (
@@ -242,24 +245,17 @@ class DragButton(QPushButton):
else [(PORTHEIGHT + GAP) * i for i in range(ports)]
)
def _get_button_height(op):
max_ports = max(op.input_count, op.output_count)
return max(
MINBUTTONSIZE, max_ports * PORTHEIGHT + (max_ports - 1) * GAP
)
op = self.operation
# TODO: get height from operation
height = _get_button_height(op)
_output_ports_dist = _determine_port_distance(height, op.output_count)
_input_ports_dist = _determine_port_distance(height, op.input_count)
for i, dist in enumerate(_input_ports_dist):
height = self.height()
output_ports_dist = _determine_port_distance(height, op.output_count)
input_ports_dist = _determine_port_distance(height, op.input_count)
for i, dist in enumerate(input_ports_dist):
port = PortButton(">", self, op.input(i), self._window)
self.ports.append(port)
port.move(0, dist)
port.show()
for i, dist in enumerate(_output_ports_dist):
for i, dist in enumerate(output_ports_dist):
port = PortButton(">", self, op.output(i), self._window)
self.ports.append(port)
port.move(MINBUTTONSIZE - PORTWIDTH, dist)
Loading