|
|
@@ -18,8 +18,8 @@ from copy import copy, deepcopy
|
|
|
import logging
|
|
|
|
|
|
from camlib import distance, arc, three_point_circle
|
|
|
-from appGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, \
|
|
|
- EvalEntry2, FCInputDialog, FCButton, OptionalInputSection, FCCheckBox, NumericalEvalTupleEntry, FCComboBox2
|
|
|
+from appGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, EvalEntry2, \
|
|
|
+ FCInputDoubleSpinner, FCButton, OptionalInputSection, FCCheckBox, NumericalEvalTupleEntry, FCComboBox2, FCLabel
|
|
|
from appTool import AppTool
|
|
|
|
|
|
import numpy as np
|
|
|
@@ -174,7 +174,7 @@ class DrawTool(object):
|
|
|
return bounds_rec(obj)
|
|
|
|
|
|
|
|
|
-class FCShapeTool(DrawTool):
|
|
|
+class ShapeToolEditorGrb(DrawTool):
|
|
|
"""
|
|
|
Abstract class for tools that create a shape.
|
|
|
"""
|
|
|
@@ -187,7 +187,7 @@ class FCShapeTool(DrawTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCPad(FCShapeTool):
|
|
|
+class PadEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: Polygon
|
|
|
"""
|
|
|
@@ -383,7 +383,7 @@ class FCPad(FCShapeTool):
|
|
|
try:
|
|
|
self.geometry = DrawToolShape(self.util_shape(self.points))
|
|
|
except Exception as e:
|
|
|
- log.debug("FCPad.make() --> %s" % str(e))
|
|
|
+ log.debug("PadEditorGrb.make() --> %s" % str(e))
|
|
|
|
|
|
self.draw_app.in_action = False
|
|
|
self.complete = True
|
|
|
@@ -400,7 +400,7 @@ class FCPad(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCPadArray(FCShapeTool):
|
|
|
+class PadArrayEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: MultiPolygon
|
|
|
"""
|
|
|
@@ -779,7 +779,7 @@ class FCPadArray(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCPoligonize(FCShapeTool):
|
|
|
+class PoligonizeEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: Polygon
|
|
|
"""
|
|
|
@@ -889,7 +889,7 @@ class FCPoligonize(FCShapeTool):
|
|
|
self.draw_app.plot_all()
|
|
|
|
|
|
|
|
|
-class FCRegion(FCShapeTool):
|
|
|
+class RegionEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: Polygon
|
|
|
"""
|
|
|
@@ -929,7 +929,7 @@ class FCRegion(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCRegion --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.RegionEditorGrb --> %s" % str(e))
|
|
|
|
|
|
self.cursor = QtGui.QCursor(QtGui.QPixmap(self.draw_app.app.resource_location + '/aero.png'))
|
|
|
QtGui.QGuiApplication.setOverrideCursor(self.cursor)
|
|
|
@@ -1039,7 +1039,7 @@ class FCRegion(FCShapeTool):
|
|
|
join_style=1)
|
|
|
return DrawToolUtilityShape(new_geo_el)
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCRegion.utility_geometry() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.RegionEditorGrb.utility_geometry() --> %s" % str(e))
|
|
|
else:
|
|
|
new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val,
|
|
|
resolution=int(self.steps_per_circle / 4))
|
|
|
@@ -1205,7 +1205,7 @@ class FCRegion(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCTrack(FCShapeTool):
|
|
|
+class TrackEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: Polygon
|
|
|
"""
|
|
|
@@ -1243,7 +1243,7 @@ class FCTrack(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCTrack.__init__() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.TrackEditorGrb.__init__() --> %s" % str(e))
|
|
|
|
|
|
self.cursor = QtGui.QCursor(QtGui.QPixmap(self.draw_app.app.resource_location +
|
|
|
'/aero_path%s.png' % self.draw_app.bend_mode))
|
|
|
@@ -1394,7 +1394,7 @@ class FCTrack(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCTrack.on_key() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.TrackEditorGrb.on_key() --> %s" % str(e))
|
|
|
|
|
|
if self.draw_app.bend_mode == 1:
|
|
|
self.draw_app.bend_mode = 2
|
|
|
@@ -1433,7 +1433,7 @@ class FCTrack(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCTrack.on_key() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.TrackEditorGrb.on_key() --> %s" % str(e))
|
|
|
|
|
|
if self.draw_app.bend_mode == 1:
|
|
|
self.draw_app.bend_mode = 5
|
|
|
@@ -1478,7 +1478,7 @@ class FCTrack(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCDisc(FCShapeTool):
|
|
|
+class DiscEditorGrb(ShapeToolEditorGrb):
|
|
|
"""
|
|
|
Resulting type: Polygon
|
|
|
"""
|
|
|
@@ -1562,7 +1562,7 @@ class FCDisc(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCDisc --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.DiscEditorGrb --> %s" % str(e))
|
|
|
|
|
|
self.draw_app.current_storage = self.storage_obj
|
|
|
|
|
|
@@ -1591,7 +1591,7 @@ class FCDisc(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCSemiDisc(FCShapeTool):
|
|
|
+class DiscSemiEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
DrawTool.__init__(self, draw_app)
|
|
|
self.name = 'semidisc'
|
|
|
@@ -1600,7 +1600,7 @@ class FCSemiDisc(FCShapeTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCSemiDisc --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.DiscSemiEditorGrb --> %s" % str(e))
|
|
|
|
|
|
self.cursor = QtGui.QCursor(QtGui.QPixmap(self.draw_app.app.resource_location + '/aero_semidisc.png'))
|
|
|
QtGui.QGuiApplication.setOverrideCursor(self.cursor)
|
|
|
@@ -1880,9 +1880,9 @@ class FCSemiDisc(FCShapeTool):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class FCScale(FCShapeTool):
|
|
|
+class ScaleEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
- FCShapeTool.__init__(self, draw_app)
|
|
|
+ ShapeToolEditorGrb.__init__(self, draw_app)
|
|
|
self.name = 'scale'
|
|
|
|
|
|
# self.shape_buffer = self.draw_app.shape_buffer
|
|
|
@@ -1922,9 +1922,9 @@ class FCScale(FCShapeTool):
|
|
|
self.draw_app.plot_all()
|
|
|
|
|
|
|
|
|
-class FCBuffer(FCShapeTool):
|
|
|
+class BufferEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
- FCShapeTool.__init__(self, draw_app)
|
|
|
+ ShapeToolEditorGrb.__init__(self, draw_app)
|
|
|
self.name = 'buffer'
|
|
|
|
|
|
# self.shape_buffer = self.draw_app.shape_buffer
|
|
|
@@ -1964,9 +1964,9 @@ class FCBuffer(FCShapeTool):
|
|
|
self.draw_app.plot_all()
|
|
|
|
|
|
|
|
|
-class FCMarkArea(FCShapeTool):
|
|
|
+class MarkEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
- FCShapeTool.__init__(self, draw_app)
|
|
|
+ ShapeToolEditorGrb.__init__(self, draw_app)
|
|
|
self.name = 'markarea'
|
|
|
|
|
|
# self.shape_buffer = self.draw_app.shape_buffer
|
|
|
@@ -2027,7 +2027,7 @@ class FCMarkArea(FCShapeTool):
|
|
|
self.draw_app.plot_all()
|
|
|
|
|
|
|
|
|
-class FCApertureMove(FCShapeTool):
|
|
|
+class MoveEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
DrawTool.__init__(self, draw_app)
|
|
|
self.name = 'move'
|
|
|
@@ -2211,9 +2211,9 @@ class FCApertureMove(FCShapeTool):
|
|
|
return DrawToolUtilityShape(ss_el)
|
|
|
|
|
|
|
|
|
-class FCApertureCopy(FCApertureMove):
|
|
|
+class CopyEditorGrb(MoveEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
- FCApertureMove.__init__(self, draw_app)
|
|
|
+ MoveEditorGrb.__init__(self, draw_app)
|
|
|
self.name = 'copy'
|
|
|
|
|
|
def make(self):
|
|
|
@@ -2249,7 +2249,7 @@ class FCApertureCopy(FCApertureMove):
|
|
|
self.draw_app.app.jump_signal.disconnect()
|
|
|
|
|
|
|
|
|
-class FCEraser(FCShapeTool):
|
|
|
+class EraserEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
DrawTool.__init__(self, draw_app)
|
|
|
self.name = 'eraser'
|
|
|
@@ -2305,7 +2305,7 @@ class FCEraser(FCShapeTool):
|
|
|
try:
|
|
|
self.draw_app.ui.apertures_table.cellPressed.disconnect()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCEraser.click_release() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.EraserEditorGrb.click_release() --> %s" % str(e))
|
|
|
|
|
|
self.draw_app.ui.apertures_table.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
|
|
|
for aper in sel_aperture:
|
|
|
@@ -2397,7 +2397,7 @@ class FCEraser(FCShapeTool):
|
|
|
return DrawToolUtilityShape(geo_list)
|
|
|
|
|
|
|
|
|
-class FCApertureSelect(DrawTool):
|
|
|
+class SelectEditorGrb(DrawTool):
|
|
|
def __init__(self, draw_app):
|
|
|
DrawTool.__init__(self, draw_app)
|
|
|
self.name = 'select'
|
|
|
@@ -2410,8 +2410,8 @@ class FCApertureSelect(DrawTool):
|
|
|
# here we store all shapes that were selected
|
|
|
self.sel_storage = []
|
|
|
|
|
|
- # since FCApertureSelect tool is activated whenever a tool is exited I place here the reinitialization of the
|
|
|
- # bending modes using in FCRegion and FCTrack
|
|
|
+ # since SelectEditorGrb tool is activated whenever a tool is exited I place here the reinitialization of the
|
|
|
+ # bending modes using in RegionEditorGrb and TrackEditorGrb
|
|
|
self.draw_app.bend_mode = 1
|
|
|
|
|
|
# here store the selected apertures
|
|
|
@@ -2420,7 +2420,7 @@ class FCApertureSelect(DrawTool):
|
|
|
try:
|
|
|
self.draw_app.ui.apertures_table.clearSelection()
|
|
|
except Exception as e:
|
|
|
- log.error("FlatCAMGerbEditor.FCApertureSelect.__init__() --> %s" % str(e))
|
|
|
+ log.error("FlatCAMGerbEditor.SelectEditorGrb.__init__() --> %s" % str(e))
|
|
|
|
|
|
self.draw_app.hide_tool('all')
|
|
|
self.draw_app.hide_tool('select')
|
|
|
@@ -2429,7 +2429,7 @@ class FCApertureSelect(DrawTool):
|
|
|
try:
|
|
|
QtGui.QGuiApplication.restoreOverrideCursor()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCApertureSelect --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.SelectEditorGrb --> %s" % str(e))
|
|
|
|
|
|
try:
|
|
|
self.draw_app.selection_triggered.disconnect()
|
|
|
@@ -2507,7 +2507,7 @@ class FCApertureSelect(DrawTool):
|
|
|
try:
|
|
|
editor_obj.ui.apertures_table.cellPressed.disconnect()
|
|
|
except Exception as e:
|
|
|
- log.debug("AppGerberEditor.FCApertureSelect.click_release() --> %s" % str(e))
|
|
|
+ log.debug("AppGerberEditor.SelectEditorGrb.click_release() --> %s" % str(e))
|
|
|
|
|
|
brake_flag = False
|
|
|
for shape_s in editor_obj.selected:
|
|
|
@@ -2538,9 +2538,9 @@ class FCApertureSelect(DrawTool):
|
|
|
self.draw_app.plot_all()
|
|
|
|
|
|
|
|
|
-class FCTransform(FCShapeTool):
|
|
|
+class TransformEditorGrb(ShapeToolEditorGrb):
|
|
|
def __init__(self, draw_app):
|
|
|
- FCShapeTool.__init__(self, draw_app)
|
|
|
+ ShapeToolEditorGrb.__init__(self, draw_app)
|
|
|
self.name = 'transformation'
|
|
|
|
|
|
# self.shape_buffer = self.draw_app.shape_buffer
|
|
|
@@ -2663,7 +2663,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.snap_y = None
|
|
|
self.pos = None
|
|
|
|
|
|
- # used in FCRegion and FCTrack. Will store the bending mode
|
|
|
+ # used in RegionEditorGrb and TrackEditorGrb. Will store the bending mode
|
|
|
self.bend_mode = 1
|
|
|
|
|
|
# signal that there is an action active like polygon or path
|
|
|
@@ -2779,21 +2779,21 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
|
|
|
def connect_grb_toolbar_signals(self):
|
|
|
self.tools_gerber.update({
|
|
|
- "select": {"button": self.app.ui.grb_select_btn, "constructor": FCApertureSelect},
|
|
|
- "pad": {"button": self.app.ui.grb_add_pad_btn, "constructor": FCPad},
|
|
|
- "array": {"button": self.app.ui.add_pad_ar_btn, "constructor": FCPadArray},
|
|
|
- "track": {"button": self.app.ui.grb_add_track_btn, "constructor": FCTrack},
|
|
|
- "region": {"button": self.app.ui.grb_add_region_btn, "constructor": FCRegion},
|
|
|
- "poligonize": {"button": self.app.ui.grb_convert_poly_btn, "constructor": FCPoligonize},
|
|
|
- "semidisc": {"button": self.app.ui.grb_add_semidisc_btn, "constructor": FCSemiDisc},
|
|
|
- "disc": {"button": self.app.ui.grb_add_disc_btn, "constructor": FCDisc},
|
|
|
- "buffer": {"button": self.app.ui.aperture_buffer_btn, "constructor": FCBuffer},
|
|
|
- "scale": {"button": self.app.ui.aperture_scale_btn, "constructor": FCScale},
|
|
|
- "markarea": {"button": self.app.ui.aperture_markarea_btn, "constructor": FCMarkArea},
|
|
|
- "eraser": {"button": self.app.ui.aperture_eraser_btn, "constructor": FCEraser},
|
|
|
- "copy": {"button": self.app.ui.aperture_copy_btn, "constructor": FCApertureCopy},
|
|
|
- "transform": {"button": self.app.ui.grb_transform_btn, "constructor": FCTransform},
|
|
|
- "move": {"button": self.app.ui.aperture_move_btn, "constructor": FCApertureMove},
|
|
|
+ "select": {"button": self.app.ui.grb_select_btn, "constructor": SelectEditorGrb},
|
|
|
+ "pad": {"button": self.app.ui.grb_add_pad_btn, "constructor": PadEditorGrb},
|
|
|
+ "array": {"button": self.app.ui.add_pad_ar_btn, "constructor": PadArrayEditorGrb},
|
|
|
+ "track": {"button": self.app.ui.grb_add_track_btn, "constructor": TrackEditorGrb},
|
|
|
+ "region": {"button": self.app.ui.grb_add_region_btn, "constructor": RegionEditorGrb},
|
|
|
+ "poligonize": {"button": self.app.ui.grb_convert_poly_btn, "constructor": PoligonizeEditorGrb},
|
|
|
+ "semidisc": {"button": self.app.ui.grb_add_semidisc_btn, "constructor": DiscSemiEditorGrb},
|
|
|
+ "disc": {"button": self.app.ui.grb_add_disc_btn, "constructor": DiscEditorGrb},
|
|
|
+ "buffer": {"button": self.app.ui.aperture_buffer_btn, "constructor": BufferEditorGrb},
|
|
|
+ "scale": {"button": self.app.ui.aperture_scale_btn, "constructor": ScaleEditorGrb},
|
|
|
+ "markarea": {"button": self.app.ui.aperture_markarea_btn, "constructor": MarkEditorGrb},
|
|
|
+ "eraser": {"button": self.app.ui.aperture_eraser_btn, "constructor": EraserEditorGrb},
|
|
|
+ "copy": {"button": self.app.ui.aperture_copy_btn, "constructor": CopyEditorGrb},
|
|
|
+ "transform": {"button": self.app.ui.grb_transform_btn, "constructor": TransformEditorGrb},
|
|
|
+ "move": {"button": self.app.ui.aperture_move_btn, "constructor": MoveEditorGrb},
|
|
|
})
|
|
|
|
|
|
for tool in self.tools_gerber:
|
|
|
@@ -3800,6 +3800,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
pass
|
|
|
else:
|
|
|
for clear_geo in global_clear_geo:
|
|
|
+ # Make sure that the clear_geo is within the solid_geo otherwise we loose
|
|
|
# Make sure that the clear_geo is within the solid_geo otherwise we loose
|
|
|
# the solid_geometry. We want for clear_geometry just to cut into
|
|
|
# solid_geometry not to delete it
|
|
|
@@ -4072,7 +4073,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.tools_gerber[t]["button"].setChecked(False)
|
|
|
|
|
|
self.select_tool('select')
|
|
|
- self.active_tool = FCApertureSelect(self)
|
|
|
+ self.active_tool = SelectEditorGrb(self)
|
|
|
|
|
|
def on_row_selected(self, row, col):
|
|
|
# if col == 0:
|
|
|
@@ -4215,7 +4216,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.active_tool.click(self.app.geo_editor.snap(self.pos[0], self.pos[1]))
|
|
|
|
|
|
# If it is a shape generating tool
|
|
|
- if isinstance(self.active_tool, FCShapeTool) and self.active_tool.complete:
|
|
|
+ if isinstance(self.active_tool, ShapeToolEditorGrb) and self.active_tool.complete:
|
|
|
if self.current_storage is not None:
|
|
|
self.on_grb_shape_complete(self.current_storage)
|
|
|
self.build_ui()
|
|
|
@@ -4233,14 +4234,14 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
if key_modifier == modifier_to_use:
|
|
|
self.select_tool(self.active_tool.name)
|
|
|
else:
|
|
|
- # return to Select tool but not for FCPad
|
|
|
- if isinstance(self.active_tool, FCPad):
|
|
|
+ # return to Select tool but not for PadEditorGrb
|
|
|
+ if isinstance(self.active_tool, PadEditorGrb):
|
|
|
self.select_tool(self.active_tool.name)
|
|
|
else:
|
|
|
self.select_tool("select")
|
|
|
return
|
|
|
|
|
|
- # if isinstance(self.active_tool, FCApertureSelect):
|
|
|
+ # if isinstance(self.active_tool, SelectEditorGrb):
|
|
|
# self.plot_all()
|
|
|
else:
|
|
|
self.app.log.debug("No active tool to respond to click!")
|
|
|
@@ -4273,7 +4274,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
except Exception as e:
|
|
|
log.debug("AppGerberEditor.on_grb_click_release() --> %s" % str(e))
|
|
|
|
|
|
- if self.active_tool.complete is False and not isinstance(self.active_tool, FCApertureSelect):
|
|
|
+ if self.active_tool.complete is False and not isinstance(self.active_tool, SelectEditorGrb):
|
|
|
self.active_tool.complete = True
|
|
|
self.in_action = False
|
|
|
self.delete_utility_geometry()
|
|
|
@@ -4287,8 +4288,8 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
else:
|
|
|
# if right click on canvas and the active tool need to be finished (like Path or Polygon)
|
|
|
# right mouse click will finish the action
|
|
|
- if isinstance(self.active_tool, FCShapeTool):
|
|
|
- if isinstance(self.active_tool, FCTrack):
|
|
|
+ if isinstance(self.active_tool, ShapeToolEditorGrb):
|
|
|
+ if isinstance(self.active_tool, TrackEditorGrb):
|
|
|
self.active_tool.make()
|
|
|
else:
|
|
|
self.active_tool.click(self.app.geo_editor.snap(self.x, self.y))
|
|
|
@@ -4298,9 +4299,9 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.app.inform.emit('[success] %s' % _("Done."))
|
|
|
|
|
|
# MS: always return to the Select Tool if modifier key is not pressed
|
|
|
- # else return to the current tool but not for FCTrack
|
|
|
+ # else return to the current tool but not for TrackEditorGrb
|
|
|
|
|
|
- if isinstance(self.active_tool, FCTrack):
|
|
|
+ if isinstance(self.active_tool, TrackEditorGrb):
|
|
|
self.select_tool(self.active_tool.name)
|
|
|
else:
|
|
|
key_modifier = QtWidgets.QApplication.keyboardModifiers()
|
|
|
@@ -4324,7 +4325,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.draw_selection_area_handler(self.pos, pos, self.app.selection_type)
|
|
|
self.app.selection_type = None
|
|
|
|
|
|
- elif isinstance(self.active_tool, FCApertureSelect):
|
|
|
+ elif isinstance(self.active_tool, SelectEditorGrb):
|
|
|
self.active_tool.click_release((self.pos[0], self.pos[1]))
|
|
|
|
|
|
# # if there are selected objects then plot them
|
|
|
@@ -4461,9 +4462,9 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
|
|
|
# # ## Selection area on canvas section # ##
|
|
|
if event_is_dragging == 1 and event.button == 1:
|
|
|
- # I make an exception for FCRegion and FCTrack because clicking and dragging while making regions can
|
|
|
- # create strange issues like missing a point in a track/region
|
|
|
- if isinstance(self.active_tool, FCRegion) or isinstance(self.active_tool, FCTrack):
|
|
|
+ # I make an exception for RegionEditorGrb and TrackEditorGrb because clicking and dragging while making
|
|
|
+ # regions can create strange issues like missing a point in a track/region
|
|
|
+ if isinstance(self.active_tool, RegionEditorGrb) or isinstance(self.active_tool, TrackEditorGrb):
|
|
|
pass
|
|
|
else:
|
|
|
dx = pos_canvas[0] - self.pos[0]
|
|
|
@@ -4944,7 +4945,7 @@ class AppGerberEditor(QtCore.QObject):
|
|
|
self.select_tool('eraser')
|
|
|
|
|
|
def on_transform(self):
|
|
|
- if type(self.active_tool) == FCTransform:
|
|
|
+ if type(self.active_tool) == TransformEditorGrb:
|
|
|
self.select_tool('select')
|
|
|
else:
|
|
|
self.select_tool('transform')
|
|
|
@@ -4988,19 +4989,19 @@ class AppGerberEditorUI:
|
|
|
|
|
|
# Page Title icon
|
|
|
pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png')
|
|
|
- self.icon = QtWidgets.QLabel()
|
|
|
+ self.icon = FCLabel()
|
|
|
self.icon.setPixmap(pixmap)
|
|
|
self.title_box.addWidget(self.icon, stretch=0)
|
|
|
|
|
|
# Title label
|
|
|
- self.title_label = QtWidgets.QLabel("<font size=5><b>%s</b></font>" % _('Gerber Editor'))
|
|
|
+ self.title_label = FCLabel("<font size=5><b>%s</b></font>" % _('Gerber Editor'))
|
|
|
self.title_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
|
|
|
self.title_box.addWidget(self.title_label, stretch=1)
|
|
|
|
|
|
# Object name
|
|
|
self.name_box = QtWidgets.QHBoxLayout()
|
|
|
layout.addLayout(self.name_box)
|
|
|
- name_label = QtWidgets.QLabel(_("Name:"))
|
|
|
+ name_label = FCLabel(_("Name:"))
|
|
|
self.name_box.addWidget(name_label)
|
|
|
self.name_entry = FCEntry()
|
|
|
self.name_box.addWidget(self.name_entry)
|
|
|
@@ -5013,7 +5014,7 @@ class AppGerberEditorUI:
|
|
|
# #########################
|
|
|
# ### Gerber Apertures ####
|
|
|
# #########################
|
|
|
- self.apertures_table_label = QtWidgets.QLabel('<b>%s:</b>' % _('Apertures'))
|
|
|
+ self.apertures_table_label = FCLabel('<b>%s:</b>' % _('Apertures'))
|
|
|
self.apertures_table_label.setToolTip(
|
|
|
_("Apertures Table for the Gerber Object.")
|
|
|
)
|
|
|
@@ -5043,7 +5044,7 @@ class AppGerberEditorUI:
|
|
|
" - (width, height) for R, O type.\n"
|
|
|
" - (dia, nVertices) for P type"))
|
|
|
|
|
|
- self.empty_label = QtWidgets.QLabel('')
|
|
|
+ self.empty_label = FCLabel('')
|
|
|
self.custom_box.addWidget(self.empty_label)
|
|
|
|
|
|
# add a frame and inside add a vertical box layout. Inside this vbox layout I add all the Apertures widgets
|
|
|
@@ -5062,7 +5063,7 @@ class AppGerberEditorUI:
|
|
|
grid1.setColumnStretch(0, 0)
|
|
|
grid1.setColumnStretch(1, 1)
|
|
|
|
|
|
- apcode_lbl = QtWidgets.QLabel('%s:' % _('Aperture Code'))
|
|
|
+ apcode_lbl = FCLabel('%s:' % _('Aperture Code'))
|
|
|
apcode_lbl.setToolTip(_("Code for the new aperture"))
|
|
|
grid1.addWidget(apcode_lbl, 1, 0)
|
|
|
|
|
|
@@ -5072,7 +5073,7 @@ class AppGerberEditorUI:
|
|
|
|
|
|
grid1.addWidget(self.apcode_entry, 1, 1)
|
|
|
|
|
|
- apsize_lbl = QtWidgets.QLabel('%s' % _('Aperture Size:'))
|
|
|
+ apsize_lbl = FCLabel('%s' % _('Aperture Size:'))
|
|
|
apsize_lbl.setToolTip(
|
|
|
_("Size for the new aperture.\n"
|
|
|
"If aperture type is 'R' or 'O' then\n"
|
|
|
@@ -5088,7 +5089,7 @@ class AppGerberEditorUI:
|
|
|
|
|
|
grid1.addWidget(self.apsize_entry, 2, 1)
|
|
|
|
|
|
- aptype_lbl = QtWidgets.QLabel('%s:' % _('Aperture Type'))
|
|
|
+ aptype_lbl = FCLabel('%s:' % _('Aperture Type'))
|
|
|
aptype_lbl.setToolTip(
|
|
|
_("Select the type of new aperture. Can be:\n"
|
|
|
"C = circular\n"
|
|
|
@@ -5101,7 +5102,7 @@ class AppGerberEditorUI:
|
|
|
self.aptype_cb.addItems(['C', 'R', 'O'])
|
|
|
grid1.addWidget(self.aptype_cb, 3, 1)
|
|
|
|
|
|
- self.apdim_lbl = QtWidgets.QLabel('%s:' % _('Aperture Dim'))
|
|
|
+ self.apdim_lbl = FCLabel('%s:' % _('Aperture Dim'))
|
|
|
self.apdim_lbl.setToolTip(
|
|
|
_("Dimensions for the new aperture.\n"
|
|
|
"Active only for rectangular apertures (type R).\n"
|
|
|
@@ -5112,7 +5113,7 @@ class AppGerberEditorUI:
|
|
|
self.apdim_entry = EvalEntry2()
|
|
|
grid1.addWidget(self.apdim_entry, 4, 1)
|
|
|
|
|
|
- apadd_del_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('Add/Delete Aperture'))
|
|
|
+ apadd_del_lbl = FCLabel('<b>%s:</b>' % _('Add/Delete Aperture'))
|
|
|
apadd_del_lbl.setToolTip(
|
|
|
_("Add/Delete an aperture in the aperture table")
|
|
|
)
|
|
|
@@ -5121,12 +5122,14 @@ class AppGerberEditorUI:
|
|
|
hlay_ad = QtWidgets.QHBoxLayout()
|
|
|
self.apertures_box.addLayout(hlay_ad)
|
|
|
|
|
|
- self.addaperture_btn = QtWidgets.QPushButton(_('Add'))
|
|
|
+ self.addaperture_btn = FCButton(_('Add'))
|
|
|
+ self.addaperture_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/plus16.png'))
|
|
|
self.addaperture_btn.setToolTip(
|
|
|
_("Add a new aperture to the aperture list.")
|
|
|
)
|
|
|
|
|
|
- self.delaperture_btn = QtWidgets.QPushButton(_('Delete'))
|
|
|
+ self.delaperture_btn = FCButton(_('Delete'))
|
|
|
+ self.delaperture_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/trash32.png'))
|
|
|
self.delaperture_btn.setToolTip(
|
|
|
_("Delete a aperture in the aperture list")
|
|
|
)
|
|
|
@@ -5145,7 +5148,7 @@ class AppGerberEditorUI:
|
|
|
self.buffer_tool_frame.hide()
|
|
|
|
|
|
# Title
|
|
|
- buf_title_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('Buffer Aperture'))
|
|
|
+ buf_title_lbl = FCLabel('<b>%s:</b>' % _('Buffer Aperture'))
|
|
|
buf_title_lbl.setToolTip(
|
|
|
_("Buffer a aperture in the aperture list")
|
|
|
)
|
|
|
@@ -5161,7 +5164,7 @@ class AppGerberEditorUI:
|
|
|
self.buffer_distance_entry.set_range(-10000.0000, 10000.0000)
|
|
|
|
|
|
buf_form_layout.addRow('%s:' % _("Buffer distance"), self.buffer_distance_entry)
|
|
|
- self.buffer_corner_lbl = QtWidgets.QLabel('%s:' % _("Buffer corner"))
|
|
|
+ self.buffer_corner_lbl = FCLabel('%s:' % _("Buffer corner"))
|
|
|
self.buffer_corner_lbl.setToolTip(
|
|
|
_("There are 3 types of corners:\n"
|
|
|
" - 'Round': the corner is rounded.\n"
|
|
|
@@ -5178,7 +5181,8 @@ class AppGerberEditorUI:
|
|
|
hlay_buf = QtWidgets.QHBoxLayout()
|
|
|
self.buffer_tools_box.addLayout(hlay_buf)
|
|
|
|
|
|
- self.buffer_button = QtWidgets.QPushButton(_("Buffer"))
|
|
|
+ self.buffer_button = FCButton(_("Buffer"))
|
|
|
+ self.buffer_button.setIcon(QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'))
|
|
|
hlay_buf.addWidget(self.buffer_button)
|
|
|
|
|
|
# ##################
|
|
|
@@ -5193,7 +5197,7 @@ class AppGerberEditorUI:
|
|
|
self.scale_tool_frame.hide()
|
|
|
|
|
|
# Title
|
|
|
- scale_title_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('Scale Aperture'))
|
|
|
+ scale_title_lbl = FCLabel('<b>%s:</b>' % _('Scale Aperture'))
|
|
|
scale_title_lbl.setToolTip(
|
|
|
_("Scale a aperture in the aperture list")
|
|
|
)
|
|
|
@@ -5203,7 +5207,7 @@ class AppGerberEditorUI:
|
|
|
scale_form_layout = QtWidgets.QFormLayout()
|
|
|
self.scale_tools_box.addLayout(scale_form_layout)
|
|
|
|
|
|
- self.scale_factor_lbl = QtWidgets.QLabel('%s:' % _("Scale factor"))
|
|
|
+ self.scale_factor_lbl = FCLabel('%s:' % _("Scale factor"))
|
|
|
self.scale_factor_lbl.setToolTip(
|
|
|
_("The factor by which to scale the selected aperture.\n"
|
|
|
"Values can be between 0.0000 and 999.9999")
|
|
|
@@ -5218,7 +5222,8 @@ class AppGerberEditorUI:
|
|
|
hlay_scale = QtWidgets.QHBoxLayout()
|
|
|
self.scale_tools_box.addLayout(hlay_scale)
|
|
|
|
|
|
- self.scale_button = QtWidgets.QPushButton(_("Scale"))
|
|
|
+ self.scale_button = FCButton(_("Scale"))
|
|
|
+ self.scale_button.setIcon(QtGui.QIcon(self.app.resource_location + '/clean32.png'))
|
|
|
hlay_scale.addWidget(self.scale_button)
|
|
|
|
|
|
# ######################
|
|
|
@@ -5233,7 +5238,7 @@ class AppGerberEditorUI:
|
|
|
self.ma_tool_frame.hide()
|
|
|
|
|
|
# Title
|
|
|
- ma_title_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('Mark polygons'))
|
|
|
+ ma_title_lbl = FCLabel('<b>%s:</b>' % _('Mark polygons'))
|
|
|
ma_title_lbl.setToolTip(
|
|
|
_("Mark the polygon areas.")
|
|
|
)
|
|
|
@@ -5243,7 +5248,7 @@ class AppGerberEditorUI:
|
|
|
ma_form_layout = QtWidgets.QFormLayout()
|
|
|
self.ma_tools_box.addLayout(ma_form_layout)
|
|
|
|
|
|
- self.ma_upper_threshold_lbl = QtWidgets.QLabel('%s:' % _("Area UPPER threshold"))
|
|
|
+ self.ma_upper_threshold_lbl = FCLabel('%s:' % _("Area UPPER threshold"))
|
|
|
self.ma_upper_threshold_lbl.setToolTip(
|
|
|
_("The threshold value, all areas less than this are marked.\n"
|
|
|
"Can have a value between 0.0000 and 10000.0000")
|
|
|
@@ -5252,7 +5257,7 @@ class AppGerberEditorUI:
|
|
|
self.ma_upper_threshold_entry.set_precision(self.decimals)
|
|
|
self.ma_upper_threshold_entry.set_range(0, 10000)
|
|
|
|
|
|
- self.ma_lower_threshold_lbl = QtWidgets.QLabel('%s:' % _("Area LOWER threshold"))
|
|
|
+ self.ma_lower_threshold_lbl = FCLabel('%s:' % _("Area LOWER threshold"))
|
|
|
self.ma_lower_threshold_lbl.setToolTip(
|
|
|
_("The threshold value, all areas more than this are marked.\n"
|
|
|
"Can have a value between 0.0000 and 10000.0000")
|
|
|
@@ -5268,19 +5273,22 @@ class AppGerberEditorUI:
|
|
|
hlay_ma = QtWidgets.QHBoxLayout()
|
|
|
self.ma_tools_box.addLayout(hlay_ma)
|
|
|
|
|
|
- self.ma_threshold_button = QtWidgets.QPushButton(_("Mark"))
|
|
|
+ self.ma_threshold_button = FCButton(_("Mark"))
|
|
|
+ self.ma_threshold_button.setIcon(QtGui.QIcon(self.app.resource_location + '/markarea32.png'))
|
|
|
self.ma_threshold_button.setToolTip(
|
|
|
_("Mark the polygons that fit within limits.")
|
|
|
)
|
|
|
hlay_ma.addWidget(self.ma_threshold_button)
|
|
|
|
|
|
- self.ma_delete_button = QtWidgets.QPushButton(_("Delete"))
|
|
|
+ self.ma_delete_button = FCButton(_("Delete"))
|
|
|
+ self.ma_delete_button.setIcon(QtGui.QIcon(self.app.resource_location + '/trash32.png'))
|
|
|
self.ma_delete_button.setToolTip(
|
|
|
_("Delete all the marked polygons.")
|
|
|
)
|
|
|
hlay_ma.addWidget(self.ma_delete_button)
|
|
|
|
|
|
- self.ma_clear_button = QtWidgets.QPushButton(_("Clear"))
|
|
|
+ self.ma_clear_button = FCButton(_("Clear"))
|
|
|
+ self.ma_clear_button.setIcon(QtGui.QIcon(self.app.resource_location + '/clean32.png'))
|
|
|
self.ma_clear_button.setToolTip(
|
|
|
_("Clear all the markings.")
|
|
|
)
|
|
|
@@ -5299,10 +5307,10 @@ class AppGerberEditorUI:
|
|
|
self.array_box.setContentsMargins(0, 0, 0, 0)
|
|
|
self.array_frame.setLayout(self.array_box)
|
|
|
|
|
|
- self.emptyarray_label = QtWidgets.QLabel('')
|
|
|
+ self.emptyarray_label = FCLabel('')
|
|
|
self.array_box.addWidget(self.emptyarray_label)
|
|
|
|
|
|
- self.padarray_label = QtWidgets.QLabel('<b>%s</b>' % _("Add Pad Array"))
|
|
|
+ self.padarray_label = FCLabel('<b>%s</b>' % _("Add Pad Array"))
|
|
|
self.padarray_label.setToolTip(
|
|
|
_("Add an array of pads (linear or circular array)")
|
|
|
)
|
|
|
@@ -5321,7 +5329,7 @@ class AppGerberEditorUI:
|
|
|
self.array_form = QtWidgets.QFormLayout()
|
|
|
self.array_box.addLayout(self.array_form)
|
|
|
|
|
|
- self.pad_array_size_label = QtWidgets.QLabel('%s:' % _('Nr of pads'))
|
|
|
+ self.pad_array_size_label = FCLabel('%s:' % _('Nr of pads'))
|
|
|
self.pad_array_size_label.setToolTip(
|
|
|
_("Specify how many pads to be in the array.")
|
|
|
)
|
|
|
@@ -5342,7 +5350,7 @@ class AppGerberEditorUI:
|
|
|
self.linear_form = QtWidgets.QFormLayout()
|
|
|
self.linear_box.addLayout(self.linear_form)
|
|
|
|
|
|
- self.pad_axis_label = QtWidgets.QLabel('%s:' % _('Direction'))
|
|
|
+ self.pad_axis_label = FCLabel('%s:' % _('Direction'))
|
|
|
self.pad_axis_label.setToolTip(
|
|
|
_("Direction on which the linear array is oriented:\n"
|
|
|
"- 'X' - horizontal axis \n"
|
|
|
@@ -5357,7 +5365,7 @@ class AppGerberEditorUI:
|
|
|
self.pad_axis_radio.set_value('X')
|
|
|
self.linear_form.addRow(self.pad_axis_label, self.pad_axis_radio)
|
|
|
|
|
|
- self.pad_pitch_label = QtWidgets.QLabel('%s:' % _('Pitch'))
|
|
|
+ self.pad_pitch_label = FCLabel('%s:' % _('Pitch'))
|
|
|
self.pad_pitch_label.setToolTip(
|
|
|
_("Pitch = Distance between elements of the array.")
|
|
|
)
|
|
|
@@ -5370,7 +5378,7 @@ class AppGerberEditorUI:
|
|
|
|
|
|
self.linear_form.addRow(self.pad_pitch_label, self.pad_pitch_entry)
|
|
|
|
|
|
- self.linear_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
|
|
|
+ self.linear_angle_label = FCLabel('%s:' % _('Angle'))
|
|
|
self.linear_angle_label.setToolTip(
|
|
|
_("Angle at which the linear array is placed.\n"
|
|
|
"The precision is of max 2 decimals.\n"
|
|
|
@@ -5391,7 +5399,7 @@ class AppGerberEditorUI:
|
|
|
self.circular_box.setContentsMargins(0, 0, 0, 0)
|
|
|
self.array_circular_frame.setLayout(self.circular_box)
|
|
|
|
|
|
- self.pad_direction_label = QtWidgets.QLabel('%s:' % _('Direction'))
|
|
|
+ self.pad_direction_label = FCLabel('%s:' % _('Direction'))
|
|
|
self.pad_direction_label.setToolTip(
|
|
|
_("Direction for circular array.\n"
|
|
|
"Can be CW = clockwise or CCW = counter clockwise.")
|
|
|
@@ -5406,7 +5414,7 @@ class AppGerberEditorUI:
|
|
|
self.pad_direction_radio.set_value('CW')
|
|
|
self.circular_form.addRow(self.pad_direction_label, self.pad_direction_radio)
|
|
|
|
|
|
- self.pad_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
|
|
|
+ self.pad_angle_label = FCLabel('%s:' % _('Angle'))
|
|
|
self.pad_angle_label.setToolTip(
|
|
|
_("Angle at which each element in circular array is placed.")
|
|
|
)
|
|
|
@@ -5430,7 +5438,7 @@ class AppGerberEditorUI:
|
|
|
layout.addStretch()
|
|
|
|
|
|
# Editor
|
|
|
- self.exit_editor_button = QtWidgets.QPushButton(_('Exit Editor'))
|
|
|
+ self.exit_editor_button = FCButton(_('Exit Editor'))
|
|
|
self.exit_editor_button.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png'))
|
|
|
self.exit_editor_button.setToolTip(
|
|
|
_("Exit from Editor.")
|
|
|
@@ -5465,7 +5473,7 @@ class TransformEditorTool(AppTool):
|
|
|
self.decimals = self.app.decimals
|
|
|
|
|
|
# ## Title
|
|
|
- title_label = QtWidgets.QLabel("%s" % self.toolName)
|
|
|
+ title_label = FCLabel("%s" % self.toolName)
|
|
|
title_label.setStyleSheet("""
|
|
|
QLabel
|
|
|
{
|
|
|
@@ -5474,7 +5482,7 @@ class TransformEditorTool(AppTool):
|
|
|
}
|
|
|
""")
|
|
|
self.layout.addWidget(title_label)
|
|
|
- self.layout.addWidget(QtWidgets.QLabel(''))
|
|
|
+ self.layout.addWidget(FCLabel(''))
|
|
|
|
|
|
# ## Layout
|
|
|
grid0 = QtWidgets.QGridLayout()
|
|
|
@@ -5483,10 +5491,10 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.setColumnStretch(1, 1)
|
|
|
grid0.setColumnStretch(2, 0)
|
|
|
|
|
|
- grid0.addWidget(QtWidgets.QLabel(''))
|
|
|
+ grid0.addWidget(FCLabel(''))
|
|
|
|
|
|
# Reference
|
|
|
- ref_label = QtWidgets.QLabel('%s:' % _("Reference"))
|
|
|
+ ref_label = FCLabel('%s:' % _("Reference"))
|
|
|
ref_label.setToolTip(
|
|
|
_("The reference point for Rotate, Skew, Scale, Mirror.\n"
|
|
|
"Can be:\n"
|
|
|
@@ -5502,7 +5510,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(ref_label, 0, 0)
|
|
|
grid0.addWidget(self.ref_combo, 0, 1, 1, 2)
|
|
|
|
|
|
- self.point_label = QtWidgets.QLabel('%s:' % _("Value"))
|
|
|
+ self.point_label = FCLabel('%s:' % _("Value"))
|
|
|
self.point_label.setToolTip(
|
|
|
_("A point of reference in format X,Y.")
|
|
|
)
|
|
|
@@ -5523,10 +5531,10 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 5, 0, 1, 3)
|
|
|
|
|
|
# ## Rotate Title
|
|
|
- rotate_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.rotateName)
|
|
|
+ rotate_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.rotateName)
|
|
|
grid0.addWidget(rotate_title_label, 6, 0, 1, 3)
|
|
|
|
|
|
- self.rotate_label = QtWidgets.QLabel('%s:' % _("Angle"))
|
|
|
+ self.rotate_label = FCLabel('%s:' % _("Angle"))
|
|
|
self.rotate_label.setToolTip(
|
|
|
_("Angle, in degrees.\n"
|
|
|
"Float number between -360 and 359.\n"
|
|
|
@@ -5560,7 +5568,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 8, 0, 1, 3)
|
|
|
|
|
|
# ## Skew Title
|
|
|
- skew_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.skewName)
|
|
|
+ skew_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.skewName)
|
|
|
grid0.addWidget(skew_title_label, 9, 0, 1, 2)
|
|
|
|
|
|
self.skew_link_cb = FCCheckBox()
|
|
|
@@ -5571,7 +5579,7 @@ class TransformEditorTool(AppTool):
|
|
|
|
|
|
grid0.addWidget(self.skew_link_cb, 9, 2)
|
|
|
|
|
|
- self.skewx_label = QtWidgets.QLabel('%s:' % _("X angle"))
|
|
|
+ self.skewx_label = FCLabel('%s:' % _("X angle"))
|
|
|
self.skewx_label.setToolTip(
|
|
|
_("Angle for Skew action, in degrees.\n"
|
|
|
"Float number between -360 and 360.")
|
|
|
@@ -5592,7 +5600,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(self.skewx_entry, 10, 1)
|
|
|
grid0.addWidget(self.skewx_button, 10, 2)
|
|
|
|
|
|
- self.skewy_label = QtWidgets.QLabel('%s:' % _("Y angle"))
|
|
|
+ self.skewy_label = FCLabel('%s:' % _("Y angle"))
|
|
|
self.skewy_label.setToolTip(
|
|
|
_("Angle for Skew action, in degrees.\n"
|
|
|
"Float number between -360 and 360.")
|
|
|
@@ -5622,7 +5630,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 14, 0, 1, 3)
|
|
|
|
|
|
# ## Scale Title
|
|
|
- scale_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.scaleName)
|
|
|
+ scale_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.scaleName)
|
|
|
grid0.addWidget(scale_title_label, 15, 0, 1, 2)
|
|
|
|
|
|
self.scale_link_cb = FCCheckBox()
|
|
|
@@ -5633,7 +5641,7 @@ class TransformEditorTool(AppTool):
|
|
|
|
|
|
grid0.addWidget(self.scale_link_cb, 15, 2)
|
|
|
|
|
|
- self.scalex_label = QtWidgets.QLabel('%s:' % _("X factor"))
|
|
|
+ self.scalex_label = FCLabel('%s:' % _("X factor"))
|
|
|
self.scalex_label.setToolTip(
|
|
|
_("Factor for scaling on X axis.")
|
|
|
)
|
|
|
@@ -5653,7 +5661,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(self.scalex_entry, 17, 1)
|
|
|
grid0.addWidget(self.scalex_button, 17, 2)
|
|
|
|
|
|
- self.scaley_label = QtWidgets.QLabel('%s:' % _("Y factor"))
|
|
|
+ self.scaley_label = FCLabel('%s:' % _("Y factor"))
|
|
|
self.scaley_label.setToolTip(
|
|
|
_("Factor for scaling on Y axis.")
|
|
|
)
|
|
|
@@ -5686,7 +5694,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 21, 0, 1, 3)
|
|
|
|
|
|
# ## Flip Title
|
|
|
- flip_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.flipName)
|
|
|
+ flip_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.flipName)
|
|
|
grid0.addWidget(flip_title_label, 23, 0, 1, 3)
|
|
|
|
|
|
self.flipx_button = FCButton(_("Flip on X"))
|
|
|
@@ -5711,10 +5719,10 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 27, 0, 1, 3)
|
|
|
|
|
|
# ## Offset Title
|
|
|
- offset_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.offsetName)
|
|
|
+ offset_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.offsetName)
|
|
|
grid0.addWidget(offset_title_label, 29, 0, 1, 3)
|
|
|
|
|
|
- self.offx_label = QtWidgets.QLabel('%s:' % _("X val"))
|
|
|
+ self.offx_label = FCLabel('%s:' % _("X val"))
|
|
|
self.offx_label.setToolTip(
|
|
|
_("Distance to offset on X axis. In current units.")
|
|
|
)
|
|
|
@@ -5734,7 +5742,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(self.offx_entry, 31, 1)
|
|
|
grid0.addWidget(self.offx_button, 31, 2)
|
|
|
|
|
|
- self.offy_label = QtWidgets.QLabel('%s:' % _("Y val"))
|
|
|
+ self.offy_label = FCLabel('%s:' % _("Y val"))
|
|
|
self.offy_label.setToolTip(
|
|
|
_("Distance to offset on Y axis. In current units.")
|
|
|
)
|
|
|
@@ -5760,7 +5768,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(separator_line, 34, 0, 1, 3)
|
|
|
|
|
|
# ## Buffer Title
|
|
|
- buffer_title_label = QtWidgets.QLabel("<font size=3><b>%s</b></font>" % self.bufferName)
|
|
|
+ buffer_title_label = FCLabel("<font size=3><b>%s</b></font>" % self.bufferName)
|
|
|
grid0.addWidget(buffer_title_label, 35, 0, 1, 2)
|
|
|
|
|
|
self.buffer_rounded_cb = FCCheckBox('%s' % _("Rounded"))
|
|
|
@@ -5773,7 +5781,7 @@ class TransformEditorTool(AppTool):
|
|
|
|
|
|
grid0.addWidget(self.buffer_rounded_cb, 35, 2)
|
|
|
|
|
|
- self.buffer_label = QtWidgets.QLabel('%s:' % _("Distance"))
|
|
|
+ self.buffer_label = FCLabel('%s:' % _("Distance"))
|
|
|
self.buffer_label.setToolTip(
|
|
|
_("A positive value will create the effect of dilation,\n"
|
|
|
"while a negative value will create the effect of erosion.\n"
|
|
|
@@ -5798,7 +5806,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(self.buffer_entry, 37, 1)
|
|
|
grid0.addWidget(self.buffer_button, 37, 2)
|
|
|
|
|
|
- self.buffer_factor_label = QtWidgets.QLabel('%s:' % _("Value"))
|
|
|
+ self.buffer_factor_label = FCLabel('%s:' % _("Value"))
|
|
|
self.buffer_factor_label.setToolTip(
|
|
|
_("A positive value will create the effect of dilation,\n"
|
|
|
"while a negative value will create the effect of erosion.\n"
|
|
|
@@ -5824,7 +5832,7 @@ class TransformEditorTool(AppTool):
|
|
|
grid0.addWidget(self.buffer_factor_entry, 38, 1)
|
|
|
grid0.addWidget(self.buffer_factor_button, 38, 2)
|
|
|
|
|
|
- grid0.addWidget(QtWidgets.QLabel(''), 42, 0, 1, 3)
|
|
|
+ grid0.addWidget(FCLabel(''), 42, 0, 1, 3)
|
|
|
|
|
|
self.layout.addStretch()
|
|
|
|
|
|
@@ -6340,12 +6348,12 @@ class TransformEditorTool(AppTool):
|
|
|
return
|
|
|
|
|
|
def on_rotate_key(self):
|
|
|
- val_box = FCInputDialog(title=_("Rotate ..."),
|
|
|
- text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
- min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
- init_val=float(self.app.defaults['tools_transform_rotate']),
|
|
|
- parent=self.app.ui)
|
|
|
- val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/rotate.png'))
|
|
|
+ val_box = FCInputDoubleSpinner(title=_("Rotate ..."),
|
|
|
+ text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
+ min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
+ init_val=float(self.app.defaults['tools_transform_rotate']),
|
|
|
+ parent=self.app.ui)
|
|
|
+ val_box.set_icon(QtGui.QIcon(self.app.resource_location + '/rotate.png'))
|
|
|
|
|
|
val, ok = val_box.get_value()
|
|
|
if ok:
|
|
|
@@ -6358,11 +6366,11 @@ class TransformEditorTool(AppTool):
|
|
|
def on_offx_key(self):
|
|
|
units = self.app.defaults['units'].lower()
|
|
|
|
|
|
- val_box = FCInputDialog(title=_("Offset on X axis ..."),
|
|
|
- text='%s: (%s)' % (_('Enter a distance Value'), str(units)),
|
|
|
- min=-10000.0000, max=10000.0000, decimals=self.decimals,
|
|
|
- init_val=float(self.app.defaults['tools_transform_offset_x']),
|
|
|
- parent=self.app.ui)
|
|
|
+ val_box = FCInputDoubleSpinner(title=_("Offset on X axis ..."),
|
|
|
+ text='%s: (%s)' % (_('Enter a distance Value'), str(units)),
|
|
|
+ min=-10000.0000, max=10000.0000, decimals=self.decimals,
|
|
|
+ init_val=float(self.app.defaults['tools_transform_offset_x']),
|
|
|
+ parent=self.app.ui)
|
|
|
val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsetx32.png'))
|
|
|
|
|
|
val, ok = val_box.get_value()
|
|
|
@@ -6376,12 +6384,12 @@ class TransformEditorTool(AppTool):
|
|
|
def on_offy_key(self):
|
|
|
units = self.app.defaults['units'].lower()
|
|
|
|
|
|
- val_box = FCInputDialog(title=_("Offset on Y axis ..."),
|
|
|
- text='%s: (%s)' % (_('Enter a distance Value'), str(units)),
|
|
|
- min=-10000.0000, max=10000.0000, decimals=self.decimals,
|
|
|
- init_val=float(self.app.defaults['tools_transform_offset_y']),
|
|
|
- parent=self.app.ui)
|
|
|
- val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsety32.png'))
|
|
|
+ val_box = FCInputDoubleSpinner(title=_("Offset on Y axis ..."),
|
|
|
+ text='%s: (%s)' % (_('Enter a distance Value'), str(units)),
|
|
|
+ min=-10000.0000, max=10000.0000, decimals=self.decimals,
|
|
|
+ init_val=float(self.app.defaults['tools_transform_offset_y']),
|
|
|
+ parent=self.app.ui)
|
|
|
+ val_box.set_icon(QtGui.QIcon(self.app.resource_location + '/offsety32.png'))
|
|
|
|
|
|
val, ok = val_box.get_value()
|
|
|
if ok:
|
|
|
@@ -6392,11 +6400,11 @@ class TransformEditorTool(AppTool):
|
|
|
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Offset Y cancelled"))
|
|
|
|
|
|
def on_skewx_key(self):
|
|
|
- val_box = FCInputDialog(title=_("Skew on X axis ..."),
|
|
|
- text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
- min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
- init_val=float(self.app.defaults['tools_transform_skew_x']),
|
|
|
- parent=self.app.ui)
|
|
|
+ val_box = FCInputDoubleSpinner(title=_("Skew on X axis ..."),
|
|
|
+ text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
+ min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
+ init_val=float(self.app.defaults['tools_transform_skew_x']),
|
|
|
+ parent=self.app.ui)
|
|
|
val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/skewX.png'))
|
|
|
|
|
|
val, ok = val_box.get_value()
|
|
|
@@ -6408,11 +6416,11 @@ class TransformEditorTool(AppTool):
|
|
|
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Skew X cancelled"))
|
|
|
|
|
|
def on_skewy_key(self):
|
|
|
- val_box = FCInputDialog(title=_("Skew on Y axis ..."),
|
|
|
- text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
- min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
- init_val=float(self.app.defaults['tools_transform_skew_y']),
|
|
|
- parent=self.app.ui)
|
|
|
+ val_box = FCInputDoubleSpinner(title=_("Skew on Y axis ..."),
|
|
|
+ text='%s:' % _('Enter an Angle Value (degrees)'),
|
|
|
+ min=-359.9999, max=360.0000, decimals=self.decimals,
|
|
|
+ init_val=float(self.app.defaults['tools_transform_skew_y']),
|
|
|
+ parent=self.app.ui)
|
|
|
val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/skewY.png'))
|
|
|
|
|
|
val, ok = val_box.get_value()
|