# HG changeset patch # User Edouard Tisserant # Date 1681320758 -7200 # Node ID 365f866ee1206e19a733b9ee264a9207a35e83a0 # Parent c98646b1c9814678d0394c9a953fa84772336d21 IDE: python-3.10: wxPython calls don't accept float anymore when int is expected diff -r c98646b1c981 -r 365f866ee120 editors/Viewer.py --- a/editors/Viewer.py Wed Apr 12 19:28:37 2023 +0200 +++ b/editors/Viewer.py Wed Apr 12 19:32:38 2023 +0200 @@ -717,7 +717,7 @@ faces["size"] -= 1 self.Editor.SetFont(font) self.MiniTextDC = wx.MemoryDC(wx.Bitmap(1, 1)) - self.MiniTextDC.SetFont(wx.Font(faces["size"] * 0.75, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName=faces["helv"])) + self.MiniTextDC.SetFont(wx.Font(int(faces["size"] * 0.75), wx.SWISS, wx.NORMAL, wx.NORMAL, faceName=faces["helv"])) self.CurrentScale = None self.SetScale(ZOOM_FACTORS.index(1.0), False) @@ -1373,7 +1373,7 @@ element.SetPosition(instance.x, instance.y) element.SetSize(instance.width, instance.height) for i, output_connector in enumerate(instance.outputs): - connector_pos = wx.Point(*output_connector.position) + connector_pos = wx.Point(*map(int, output_connector.position)) if isinstance(element, FBD_Block): connector = element.GetConnector(connector_pos, output_name=output_connector.name) @@ -1389,7 +1389,7 @@ if connectors["outputs"].index(connector) == i: connector.SetPosition(connector_pos) for i, input_connector in enumerate(instance.inputs): - connector_pos = wx.Point(*input_connector.position) + connector_pos = wx.Point(*map(int,input_connector.position)) if isinstance(element, FBD_Block): connector = element.GetConnector(connector_pos, input_name=input_connector.name) @@ -1430,7 +1430,7 @@ points = link.points end_connector = connected.GetConnector( - wx.Point(points[-1].x, points[-1].y) + wx.Point(int(points[-1].x), int(points[-1].y)) if len(points) > 0 else wx.Point(0, 0), link.formalParameter) if end_connector is not None: diff -r c98646b1c981 -r 365f866ee120 graphics/GraphicCommons.py --- a/graphics/GraphicCommons.py Wed Apr 12 19:28:37 2023 +0200 +++ b/graphics/GraphicCommons.py Wed Apr 12 19:32:38 2023 +0200 @@ -183,8 +183,9 @@ """ pos = event.GetLogicalPosition(dc) if scaling: - pos.x = round(pos.x / scaling[0]) * scaling[0] - pos.y = round(pos.y / scaling[1]) * scaling[1] + sx,sy=tuple(map(round,scaling)) + pos.x = round(pos.x / sx) * sx + pos.y = round(pos.y / sy) * sy return pos @@ -201,7 +202,7 @@ def MiterPen(colour, width=1, style=wx.SOLID): - pen = wx.Pen(colour, width, style) + pen = wx.Pen(colour, round(width), style) pen.SetJoin(wx.JOIN_MITER) pen.SetCap(wx.CAP_PROJECTING) return pen @@ -314,8 +315,8 @@ # Changes the block position def SetPosition(self, x, y): - self.Pos.x = x - self.Pos.y = y + self.Pos.x = int(x) + self.Pos.y = int(y) self.RefreshConnected() self.RefreshBoundingBox() @@ -325,8 +326,8 @@ # Changes the element size def SetSize(self, width, height): - self.Size.SetWidth(width) - self.Size.SetHeight(height) + self.Size.SetWidth(int(width)) + self.Size.SetHeight(int(height)) self.RefreshConnectors() self.RefreshBoundingBox() @@ -431,13 +432,13 @@ pos = event.GetPosition() pt = wx.Point(*self.Parent.CalcUnscrolledPosition(pos.x, pos.y)) - left = (self.BoundingBox.x - 2) * scalex - HANDLE_SIZE - center = (self.BoundingBox.x + self.BoundingBox.width // 2) * scalex - HANDLE_SIZE // 2 - right = (self.BoundingBox.x + self.BoundingBox.width + 2) * scalex - - top = (self.BoundingBox.y - 2) * scaley - HANDLE_SIZE - middle = (self.BoundingBox.y + self.BoundingBox.height / 2) * scaley - HANDLE_SIZE // 2 - bottom = (self.BoundingBox.y + self.BoundingBox.height + 2) * scaley + left = round((self.BoundingBox.x - 2) * scalex - HANDLE_SIZE) + center = round((self.BoundingBox.x + self.BoundingBox.width // 2) * scalex - HANDLE_SIZE // 2) + right = round((self.BoundingBox.x + self.BoundingBox.width + 2) * scalex) + + top = round((self.BoundingBox.y - 2) * scaley - HANDLE_SIZE) + middle = round((self.BoundingBox.y + self.BoundingBox.height / 2) * scaley - HANDLE_SIZE // 2) + bottom = round((self.BoundingBox.y + self.BoundingBox.height + 2) * scaley) extern_rect = wx.Rect(left, top, right + HANDLE_SIZE - left, bottom + HANDLE_SIZE - top) intern_rect = wx.Rect(left + HANDLE_SIZE, top + HANDLE_SIZE, right - left - HANDLE_SIZE, bottom - top - HANDLE_SIZE) @@ -679,13 +680,13 @@ dc.SetPen(MiterPen(wx.BLACK)) dc.SetBrush(wx.BLACK_BRUSH) - left = (self.BoundingBox.x - 2) * scalex - HANDLE_SIZE - center = (self.BoundingBox.x + self.BoundingBox.width // 2) * scalex - HANDLE_SIZE // 2 - right = (self.BoundingBox.x + self.BoundingBox.width + 2) * scalex - - top = (self.BoundingBox.y - 2) * scaley - HANDLE_SIZE - middle = (self.BoundingBox.y + self.BoundingBox.height // 2) * scaley - HANDLE_SIZE // 2 - bottom = (self.BoundingBox.y + self.BoundingBox.height + 2) * scaley + left = round((self.BoundingBox.x - 2) * scalex - HANDLE_SIZE) + center = round((self.BoundingBox.x + self.BoundingBox.width // 2) * scalex - HANDLE_SIZE // 2) + right = round((self.BoundingBox.x + self.BoundingBox.width + 2) * scalex) + + top = round((self.BoundingBox.y - 2) * scaley - HANDLE_SIZE) + middle = round((self.BoundingBox.y + self.BoundingBox.height // 2) * scaley - HANDLE_SIZE // 2) + bottom = round((self.BoundingBox.y + self.BoundingBox.height + 2) * scaley) for x, y in [(left, top), (center, top), (right, top), (left, middle), (right, middle), @@ -1978,10 +1979,10 @@ self.StartPoint = [None, vector(self.Points[0], self.Points[1])] self.EndPoint = [None, vector(self.Points[-1], self.Points[-2])] # Calculate the start and end points - self.StartPoint[0] = wx.Point(self.Points[0].x + CONNECTOR_SIZE * self.StartPoint[1][0], - self.Points[0].y + CONNECTOR_SIZE * self.StartPoint[1][1]) - self.EndPoint[0] = wx.Point(self.Points[-1].x + CONNECTOR_SIZE * self.EndPoint[1][0], - self.Points[-1].y + CONNECTOR_SIZE * self.EndPoint[1][1]) + self.StartPoint[0] = wx.Point(self.Points[0].x + round(CONNECTOR_SIZE * self.StartPoint[1][0]), + self.Points[0].y + round(CONNECTOR_SIZE * self.StartPoint[1][1])) + self.EndPoint[0] = wx.Point(self.Points[-1].x + round(CONNECTOR_SIZE * self.EndPoint[1][0]), + self.Points[-1].y + round(CONNECTOR_SIZE * self.EndPoint[1][1])) self.Points[0] = self.StartPoint[0] self.Points[-1] = self.EndPoint[0] # Calculate the segments directions @@ -1992,7 +1993,7 @@ if i > lp - 2: break - segment = vector(self.Points[i], self.Points[i + 1]) + segment = tuple(map(round,vector(self.Points[i], self.Points[i + 1]))) # merge segment if requested if merge_segments and 0 < i and \ @@ -2026,10 +2027,10 @@ # Returns a list of the position of all wire points def GetPoints(self, invert=False): points = self.VerifyPoints() - points[0] = wx.Point(points[0].x - CONNECTOR_SIZE * self.StartPoint[1][0], - points[0].y - CONNECTOR_SIZE * self.StartPoint[1][1]) - points[-1] = wx.Point(points[-1].x - CONNECTOR_SIZE * self.EndPoint[1][0], - points[-1].y - CONNECTOR_SIZE * self.EndPoint[1][1]) + points[0] = wx.Point(points[0].x - round(CONNECTOR_SIZE * self.StartPoint[1][0]), + points[0].y - round(CONNECTOR_SIZE * self.StartPoint[1][1])) + points[-1] = wx.Point(points[-1].x - round(CONNECTOR_SIZE * self.EndPoint[1][0]), + points[-1].y - round(CONNECTOR_SIZE * self.EndPoint[1][1])) # An inversion of the list is asked if invert: points.reverse() @@ -2068,16 +2069,16 @@ def GeneratePoints(self, realpoints=True): i = 0 # Calculate the start enad end points with the minimum segment size in the right direction - end = wx.Point(self.EndPoint[0].x + self.EndPoint[1][0] * MIN_SEGMENT_SIZE, - self.EndPoint[0].y + self.EndPoint[1][1] * MIN_SEGMENT_SIZE) - start = wx.Point(self.StartPoint[0].x + self.StartPoint[1][0] * MIN_SEGMENT_SIZE, - self.StartPoint[0].y + self.StartPoint[1][1] * MIN_SEGMENT_SIZE) + end = wx.Point(self.EndPoint[0].x + round(self.EndPoint[1][0] * MIN_SEGMENT_SIZE), + self.EndPoint[0].y + round(self.EndPoint[1][1] * MIN_SEGMENT_SIZE)) + start = wx.Point(self.StartPoint[0].x + round(self.StartPoint[1][0] * MIN_SEGMENT_SIZE), + self.StartPoint[0].y + round(self.StartPoint[1][1] * MIN_SEGMENT_SIZE)) # Evaluate the point till it's the last while i < len(self.Points) - 1: # The next point is the last if i + 1 == len(self.Points) - 1: # Calculate the direction from current point to end point - v_end = vector(self.Points[i], end) + v_end = tuple(map(round,vector(self.Points[i], end))) # The current point is the first if i == 0: # If the end point is not in the start direction, a point is added @@ -2199,7 +2200,7 @@ 1, DirectionChoice((self.Segments[0][1], self.Segments[0][0]), - vector(start, self.Points[1]), + tuple(map(round,vector(start, self.Points[1]))), self.Segments[1])) else: self.Points[1].x, self.Points[1].y = start.x, start.y @@ -2286,8 +2287,8 @@ # during a resize dragging for i, point in enumerate(self.RealPoints): if not (i == 0 and self.StartConnected) and not (i == len(self.Points) - 1 and self.EndConnected): - point[0] = point[0] * width / max(lastwidth, 1) - point[1] = point[1] * height / max(lastheight, 1) + point[0] = int(point[0] * width / max(lastwidth, 1)) + point[1] = int(point[1] * height / max(lastheight, 1)) # Calculate the correct position of the points from real points for i, point in enumerate(self.RealPoints): if not (i == 0 and self.StartConnected) and not (i == len(self.Points) - 1 and self.EndConnected): @@ -2671,9 +2672,9 @@ if len(self.Points) > 0 and (not self.StartConnected or self.OverStart): dc.DrawCircle(round(self.Points[0].x * scalex), round(self.Points[0].y * scaley), - (POINT_RADIUS + 1) * scalex + 2) + round((POINT_RADIUS + 1) * scalex + 2)) if len(self.Points) > 1 and (not self.EndConnected or self.OverEnd): - dc.DrawCircle(self.Points[-1].x * scalex, self.Points[-1].y * scaley, (POINT_RADIUS + 1) * scalex + 2) + dc.DrawCircle(round(self.Points[-1].x * scalex), round(self.Points[-1].y * scaley), round((POINT_RADIUS + 1) * scalex + 2)) # Draw the wire lines and the last point (it seems that DrawLines stop before the last point) if len(self.Points) > 1: points = [wx.Point(round((self.Points[0].x - self.Segments[0][0]) * scalex), @@ -2922,12 +2923,12 @@ dc.SetBrush(wx.Brush(HIGHLIGHTCOLOR)) dc.SetLogicalFunction(wx.AND) - left = (self.Pos.x - 1) * scalex - 2 - right = (self.Pos.x + self.Size[0] + 1) * scalex + 2 - top = (self.Pos.y - 1) * scaley - 2 - bottom = (self.Pos.y + self.Size[1] + 1) * scaley + 2 - angle_top = (self.Pos.x + self.Size[0] - 9) * scalex + 2 - angle_right = (self.Pos.y + 9) * scaley - 2 + left = round((self.Pos.x - 1) * scalex - 2) + right = round((self.Pos.x + self.Size[0] + 1) * scalex + 2) + top = round((self.Pos.y - 1) * scaley - 2) + bottom = round((self.Pos.y + self.Size[1] + 1) * scaley + 2) + angle_top = round((self.Pos.x + self.Size[0] - 9) * scalex + 2) + angle_right = round((self.Pos.y + 9) * scaley - 2) polygon = [wx.Point(left, top), wx.Point(angle_top, top), wx.Point(right, angle_right), wx.Point(right, bottom), diff -r c98646b1c981 -r 365f866ee120 graphics/RubberBand.py --- a/graphics/RubberBand.py Wed Apr 12 19:28:37 2023 +0200 +++ b/graphics/RubberBand.py Wed Apr 12 19:32:38 2023 +0200 @@ -168,8 +168,8 @@ for bbox in bboxes: if bbox is not None: dc.DrawRectangle( - bbox.x * scalex, bbox.y * scaley, - bbox.width * scalex, bbox.height * scaley) + round(bbox.x * scalex), round(bbox.y * scaley), + round(bbox.width * scalex), round(bbox.height * scaley)) dc.SetLogicalFunction(wx.COPY) diff -r c98646b1c981 -r 365f866ee120 plcopen/BlockInstanceCollector.py --- a/plcopen/BlockInstanceCollector.py Wed Apr 12 19:28:37 2023 +0200 +++ b/plcopen/BlockInstanceCollector.py Wed Apr 12 19:32:38 2023 +0200 @@ -124,14 +124,14 @@ self.SpecificValues = None self.CurrentInstance = _BlockInstanceInfos( - *(_translate_args([_StringValue, int] + [float] * 4, args) + + *(_translate_args([_StringValue, int] + [int] * 4, args) + [specific_values, [], []])) self.BlockInstances[self.CurrentInstance.id] = self.CurrentInstance def AddInstanceConnection(self, context, *args): connection_args = _translate_args( - [_StringValue] * 2 + [_BoolValue, _StringValue] + [float] * 2, args) + [_StringValue] * 2 + [_BoolValue, _StringValue] + [int] * 2, args) self.CurrentConnection = _InstanceConnectionInfos( *(connection_args[1:4] + [ @@ -152,7 +152,7 @@ def AddLinkPoint(self, context, *args): self.CurrentLink.points.append(_Point( - *_translate_args([float] * 2, args))) + *_translate_args([int] * 2, args))) def AddAction(self, context, *args): if len(self.SpecificValues) == 0: