Explorar el Código

- fixed the UI layout in Excellon Editor and made sure that after changing a value in the Notebook side after the mouse is inside the canvas, the canvas takes the focus allowing the key shortcuts to work
- Turkish language strings updated (by Mehmet Kaya)

Marius Stanciu hace 5 años
padre
commit
846c0dc59d

+ 3 - 1
CHANGELOG.md

@@ -14,6 +14,8 @@ CHANGELOG for FlatCAM beta
 - fixed issue in the Excellon Editor where the Space key did not toggle the direction of the array of drills
 - fixed issue in the Excellon Editor where the Space key did not toggle the direction of the array of drills
 - combed the application strings all over the app and trimmed them up until those starting with letter 'O'
 - combed the application strings all over the app and trimmed them up until those starting with letter 'O'
 - updated the translation strings
 - updated the translation strings
+- fixed the UI layout in Excellon Editor and made sure that after changing a value in the Notebook side after the mouse is inside the canvas, the canvas takes the focus allowing the key shortcuts to work
+- Turkish language strings updated (by Mehmet Kaya)
 
 
 3.11.2020
 3.11.2020
 
 
@@ -3080,7 +3082,7 @@ RELEASE 8.993
 - added all the tools from Gerber Editor to the the contextual menu
 - added all the tools from Gerber Editor to the the contextual menu
 - added the menu entry "Edit" in the Project contextual menu for Gerber objects
 - added the menu entry "Edit" in the Project contextual menu for Gerber objects
 - started to work in adding slots and slots array in Excellon Editor
 - started to work in adding slots and slots array in Excellon Editor
-- in FCSlot finished the utility geometry and the GUI for it
+- in SlotAdd finished the utility geometry and the GUI for it
 
 
 12.08.2019
 12.08.2019
 
 

+ 292 - 242
appEditors/AppExcEditor.py

@@ -9,7 +9,7 @@ from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5.QtCore import Qt
 from PyQt5.QtCore import Qt
 
 
 from camlib import distance, arc, FlatCAMRTreeStorage
 from camlib import distance, arc, FlatCAMRTreeStorage
-from appGUI.GUIElements import FCEntry, FCComboBox2, FCTable, FCDoubleSpinner, RadioSet, FCSpinner, FCButton
+from appGUI.GUIElements import FCEntry, FCComboBox2, FCTable, FCDoubleSpinner, RadioSet, FCSpinner, FCButton, FCLabel
 from appEditors.AppGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, AppGeoEditor
 from appEditors.AppGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, AppGeoEditor
 
 
 from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon, Point
 from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon, Point
@@ -35,7 +35,7 @@ if '_' not in builtins.__dict__:
 log = logging.getLogger('base')
 log = logging.getLogger('base')
 
 
 
 
-class FCDrillSelect(FCShapeTool):
+class SelectEditorExc(FCShapeTool):
     def __init__(self, draw_app):
     def __init__(self, draw_app):
         DrawTool.__init__(self, draw_app)
         DrawTool.__init__(self, draw_app)
         self.name = 'drill_select'
         self.name = 'drill_select'
@@ -219,7 +219,7 @@ class FCDrillSelect(FCShapeTool):
         pass
         pass
 
 
 
 
-class FCDrillAdd(FCShapeTool):
+class DrillAdd(FCShapeTool):
     """
     """
     Resulting type: MultiLineString
     Resulting type: MultiLineString
     """
     """
@@ -317,7 +317,7 @@ class FCDrillAdd(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCDrillArray(FCShapeTool):
+class DrillArray(FCShapeTool):
     """
     """
     Resulting type: MultiLineString
     Resulting type: MultiLineString
     """
     """
@@ -404,7 +404,7 @@ class FCDrillArray(FCShapeTool):
 
 
     def utility_geometry(self, data=None, static=None):
     def utility_geometry(self, data=None, static=None):
         self.drill_axis = self.draw_app.ui.drill_axis_radio.get_value()
         self.drill_axis = self.draw_app.ui.drill_axis_radio.get_value()
-        self.drill_direction = self.draw_app.ui.drill_direction_radio.get_value()
+        self.drill_direction = self.draw_app.ui.drill_array_dir_radio.get_value()
         self.drill_array = self.draw_app.ui.array_type_combo.get_value()
         self.drill_array = self.draw_app.ui.array_type_combo.get_value()
         try:
         try:
             self.drill_array_size = int(self.draw_app.ui.drill_array_size_entry.get_value())
             self.drill_array_size = int(self.draw_app.ui.drill_array_size_entry.get_value())
@@ -577,7 +577,7 @@ class FCDrillArray(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCSlot(FCShapeTool):
+class SlotAdd(FCShapeTool):
     """
     """
     Resulting type: Polygon
     Resulting type: Polygon
     """
     """
@@ -751,7 +751,7 @@ class FCSlot(FCShapeTool):
         try:
         try:
             self.geometry = DrawToolShape(self.util_shape(self.points))
             self.geometry = DrawToolShape(self.util_shape(self.points))
         except Exception as e:
         except Exception as e:
-            log.debug("FCSlot.make() --> %s" % str(e))
+            log.debug("SlotAdd.make() --> %s" % str(e))
 
 
         # add the point to drills/slots if the diameter is a key in the dict, if not, create it add the drill location
         # add the point to drills/slots if the diameter is a key in the dict, if not, create it add the drill location
         # to the value, as a list of itself
         # to the value, as a list of itself
@@ -791,7 +791,7 @@ class FCSlot(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCSlotArray(FCShapeTool):
+class SlotArray(FCShapeTool):
     """
     """
     Resulting type: MultiPolygon
     Resulting type: MultiPolygon
     """
     """
@@ -1150,7 +1150,7 @@ class FCSlotArray(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCDrillResize(FCShapeTool):
+class ResizeEditorExc(FCShapeTool):
     def __init__(self, draw_app):
     def __init__(self, draw_app):
         DrawTool.__init__(self, draw_app)
         DrawTool.__init__(self, draw_app)
         self.name = 'drill_resize'
         self.name = 'drill_resize'
@@ -1386,7 +1386,7 @@ class FCDrillResize(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCDrillMove(FCShapeTool):
+class MoveEditorExc(FCShapeTool):
     def __init__(self, draw_app):
     def __init__(self, draw_app):
         DrawTool.__init__(self, draw_app)
         DrawTool.__init__(self, draw_app)
         self.name = 'drill_move'
         self.name = 'drill_move'
@@ -1535,9 +1535,9 @@ class FCDrillMove(FCShapeTool):
             pass
             pass
 
 
 
 
-class FCDrillCopy(FCDrillMove):
+class CopyEditorExc(MoveEditorExc):
     def __init__(self, draw_app):
     def __init__(self, draw_app):
-        FCDrillMove.__init__(self, draw_app)
+        MoveEditorExc.__init__(self, draw_app)
         self.name = 'drill_copy'
         self.name = 'drill_copy'
 
 
     def make(self):
     def make(self):
@@ -1777,14 +1777,14 @@ class AppExcEditor(QtCore.QObject):
 
 
     def connect_exc_toolbar_signals(self):
     def connect_exc_toolbar_signals(self):
         self.tools_exc.update({
         self.tools_exc.update({
-            "drill_select":     {"button": self.app.ui.select_drill_btn,    "constructor": FCDrillSelect},
-            "drill_add":        {"button": self.app.ui.add_drill_btn,       "constructor": FCDrillAdd},
-            "drill_array":      {"button": self.app.ui.add_drill_array_btn, "constructor": FCDrillArray},
-            "slot_add":         {"button": self.app.ui.add_slot_btn,        "constructor": FCSlot},
-            "slot_array":       {"button": self.app.ui.add_slot_array_btn,  "constructor": FCSlotArray},
-            "drill_resize":     {"button": self.app.ui.resize_drill_btn,    "constructor": FCDrillResize},
-            "drill_copy":       {"button": self.app.ui.copy_drill_btn,      "constructor": FCDrillCopy},
-            "drill_move":       {"button": self.app.ui.move_drill_btn,      "constructor": FCDrillMove},
+            "drill_select":     {"button": self.app.ui.select_drill_btn,    "constructor": SelectEditorExc},
+            "drill_add":        {"button": self.app.ui.add_drill_btn,       "constructor": DrillAdd},
+            "drill_array":      {"button": self.app.ui.add_drill_array_btn, "constructor": DrillArray},
+            "slot_add":         {"button": self.app.ui.add_slot_btn,        "constructor": SlotAdd},
+            "slot_array":       {"button": self.app.ui.add_slot_array_btn,  "constructor": SlotArray},
+            "drill_resize":     {"button": self.app.ui.resize_drill_btn,    "constructor": ResizeEditorExc},
+            "drill_copy":       {"button": self.app.ui.copy_drill_btn,      "constructor": CopyEditorExc},
+            "drill_move":       {"button": self.app.ui.move_drill_btn,      "constructor": MoveEditorExc},
         })
         })
 
 
         for tool in self.tools_exc:
         for tool in self.tools_exc:
@@ -1842,7 +1842,7 @@ class AppExcEditor(QtCore.QObject):
         self.ui.drill_axis_radio.set_value(self.app.defaults['excellon_editor_lin_dir'])
         self.ui.drill_axis_radio.set_value(self.app.defaults['excellon_editor_lin_dir'])
         self.ui.drill_pitch_entry.set_value(float(self.app.defaults['excellon_editor_lin_pitch']))
         self.ui.drill_pitch_entry.set_value(float(self.app.defaults['excellon_editor_lin_pitch']))
         self.ui.linear_angle_spinner.set_value(float(self.app.defaults['excellon_editor_lin_angle']))
         self.ui.linear_angle_spinner.set_value(float(self.app.defaults['excellon_editor_lin_angle']))
-        self.ui.drill_direction_radio.set_value(self.app.defaults['excellon_editor_circ_dir'])
+        self.ui.drill_array_dir_radio.set_value(self.app.defaults['excellon_editor_circ_dir'])
         self.ui.drill_angle_entry.set_value(float(self.app.defaults['excellon_editor_circ_angle']))
         self.ui.drill_angle_entry.set_value(float(self.app.defaults['excellon_editor_circ_angle']))
 
 
         self.ui.slot_length_entry.set_value(float(self.app.defaults['excellon_editor_slot_length']))
         self.ui.slot_length_entry.set_value(float(self.app.defaults['excellon_editor_slot_length']))
@@ -1856,8 +1856,14 @@ class AppExcEditor(QtCore.QObject):
         self.ui.slot_array_direction_radio.set_value(self.app.defaults['excellon_editor_slot_circ_dir'])
         self.ui.slot_array_direction_radio.set_value(self.app.defaults['excellon_editor_slot_circ_dir'])
         self.ui.slot_array_angle_entry.set_value(float(self.app.defaults['excellon_editor_slot_circ_angle']))
         self.ui.slot_array_angle_entry.set_value(float(self.app.defaults['excellon_editor_slot_circ_angle']))
 
 
-        self.ui.slot_array_circular_frame.hide()
-        self.ui.slot_array_linear_frame.show()
+        # make sure that th visibility of the various UI frame are updated
+        # according to the set Preferences already loaded
+        self.on_slot_angle_radio()
+
+        self.on_array_type_combo()
+        self.on_slot_array_type_combo()
+        self.on_linear_angle_radio()
+        self.on_slot_array_linear_angle_radio()
 
 
     def build_ui(self, first_run=None):
     def build_ui(self, first_run=None):
 
 
@@ -2989,7 +2995,7 @@ class AppExcEditor(QtCore.QObject):
                     self.tools_exc[t]["button"].setChecked(False)
                     self.tools_exc[t]["button"].setChecked(False)
 
 
                 self.select_tool('drill_select')
                 self.select_tool('drill_select')
-                self.active_tool = FCDrillSelect(self)
+                self.active_tool = SelectEditorExc(self)
 
 
     def on_row_selected(self, row, col):
     def on_row_selected(self, row, col):
         if col == 0:
         if col == 0:
@@ -3067,14 +3073,14 @@ class AppExcEditor(QtCore.QObject):
                     if key_modifier == modifier_to_use:
                     if key_modifier == modifier_to_use:
                         self.select_tool(self.active_tool.name)
                         self.select_tool(self.active_tool.name)
                     else:
                     else:
-                        # return to Select tool but not for FCDrillAdd or FCSlot
-                        if isinstance(self.active_tool, FCDrillAdd) or isinstance(self.active_tool, FCSlot):
+                        # return to Select tool but not for FCDrillAdd or SlotAdd
+                        if isinstance(self.active_tool, DrillAdd) or isinstance(self.active_tool, SlotAdd):
                             self.select_tool(self.active_tool.name)
                             self.select_tool(self.active_tool.name)
                         else:
                         else:
                             self.select_tool("drill_select")
                             self.select_tool("drill_select")
                         return
                         return
 
 
-                if isinstance(self.active_tool, FCDrillSelect):
+                if isinstance(self.active_tool, SelectEditorExc):
                     # self.app.log.debug("Replotting after click.")
                     # self.app.log.debug("Replotting after click.")
                     self.replot()
                     self.replot()
             else:
             else:
@@ -3192,14 +3198,14 @@ class AppExcEditor(QtCore.QObject):
                         QtGui.QGuiApplication.restoreOverrideCursor()
                         QtGui.QGuiApplication.restoreOverrideCursor()
                     except Exception:
                     except Exception:
                         pass
                         pass
-                    if self.active_tool.complete is False and not isinstance(self.active_tool, FCDrillSelect):
+                    if self.active_tool.complete is False and not isinstance(self.active_tool, SelectEditorExc):
                         self.active_tool.complete = True
                         self.active_tool.complete = True
                         self.in_action = False
                         self.in_action = False
                         self.delete_utility_geometry()
                         self.delete_utility_geometry()
                         self.app.inform.emit('[success] %s' % _("Done."))
                         self.app.inform.emit('[success] %s' % _("Done."))
                         self.select_tool('drill_select')
                         self.select_tool('drill_select')
                     else:
                     else:
-                        if isinstance(self.active_tool, FCDrillAdd):
+                        if isinstance(self.active_tool, DrillAdd):
                             self.active_tool.complete = True
                             self.active_tool.complete = True
                             self.in_action = False
                             self.in_action = False
                             self.delete_utility_geometry()
                             self.delete_utility_geometry()
@@ -3222,7 +3228,7 @@ class AppExcEditor(QtCore.QObject):
                     self.draw_selection_area_handler(self.pos, pos, self.app.selection_type)
                     self.draw_selection_area_handler(self.pos, pos, self.app.selection_type)
                     self.app.selection_type = None
                     self.app.selection_type = None
 
 
-                elif isinstance(self.active_tool, FCDrillSelect):
+                elif isinstance(self.active_tool, SelectEditorExc):
                     self.active_tool.click_release((self.pos[0], self.pos[1]))
                     self.active_tool.click_release((self.pos[0], self.pos[1]))
 
 
                     # if there are selected objects then plot them
                     # if there are selected objects then plot them
@@ -3333,6 +3339,9 @@ class AppExcEditor(QtCore.QObject):
         :return:            None
         :return:            None
         """
         """
 
 
+        if not self.app.plotcanvas.native.hasFocus():
+            self.app.plotcanvas.native.setFocus()
+
         if self.app.is_legacy is False:
         if self.app.is_legacy is False:
             event_pos = event.pos
             event_pos = event.pos
             event_is_dragging = event.is_dragging
             event_is_dragging = event.is_dragging
@@ -3398,10 +3407,10 @@ class AppExcEditor(QtCore.QObject):
 
 
         # ## Selection area on canvas section # ##
         # ## Selection area on canvas section # ##
         if event_is_dragging == 1 and event.button == 1:
         if event_is_dragging == 1 and event.button == 1:
-            # I make an exception for FCDrillAdd and FCDrillArray because clicking and dragging while making regions
-            # can create strange issues. Also for FCSlot and FCSlotArray
-            if isinstance(self.active_tool, FCDrillAdd) or isinstance(self.active_tool, FCDrillArray) or \
-                    isinstance(self.active_tool, FCSlot) or isinstance(self.active_tool, FCSlotArray):
+            # I make an exception for FCDrillAdd and DrillArray because clicking and dragging while making regions
+            # can create strange issues. Also for SlotAdd and SlotArray
+            if isinstance(self.active_tool, DrillAdd) or isinstance(self.active_tool, DrillArray) or \
+                    isinstance(self.active_tool, SlotAdd) or isinstance(self.active_tool, SlotArray):
                 self.app.selection_type = None
                 self.app.selection_type = None
             else:
             else:
                 dx = pos[0] - self.pos[0]
                 dx = pos[0] - self.pos[0]
@@ -3764,144 +3773,155 @@ class AppExcEditorUI:
         self.drills_frame = QtWidgets.QFrame()
         self.drills_frame = QtWidgets.QFrame()
         self.drills_frame.setContentsMargins(0, 0, 0, 0)
         self.drills_frame.setContentsMargins(0, 0, 0, 0)
         layout.addWidget(self.drills_frame)
         layout.addWidget(self.drills_frame)
-        self.tools_box = QtWidgets.QVBoxLayout()
-        self.tools_box.setContentsMargins(0, 0, 0, 0)
-        self.drills_frame.setLayout(self.tools_box)
+
+        # #############################################################################################################
+        # ######################## MAIN Grid ##########################################################################
+        # #############################################################################################################
+        self.ui_vertical_lay = QtWidgets.QVBoxLayout()
+        self.ui_vertical_lay.setContentsMargins(0, 0, 0, 0)
+        self.drills_frame.setLayout(self.ui_vertical_lay)
 
 
         # ## Page Title box (spacing between children)
         # ## Page Title box (spacing between children)
         self.title_box = QtWidgets.QHBoxLayout()
         self.title_box = QtWidgets.QHBoxLayout()
-        self.tools_box.addLayout(self.title_box)
+        self.ui_vertical_lay.addLayout(self.title_box)
 
 
-        # ## Page Title icon
+        # ## Page Title
         pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png')
         pixmap = QtGui.QPixmap(self.app.resource_location + '/flatcam_icon32.png')
-        self.icon = QtWidgets.QLabel()
+        self.icon = FCLabel()
         self.icon.setPixmap(pixmap)
         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>" % _('Excellon Editor'))
+        self.title_label = FCLabel("<font size=5><b>%s</b></font>" % _('Excellon Editor'))
         self.title_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
         self.title_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
+
+        self.title_box.addWidget(self.icon, stretch=0)
         self.title_box.addWidget(self.title_label, stretch=1)
         self.title_box.addWidget(self.title_label, stretch=1)
 
 
         # ## Object name
         # ## Object name
         self.name_box = QtWidgets.QHBoxLayout()
         self.name_box = QtWidgets.QHBoxLayout()
-        self.tools_box.addLayout(self.name_box)
-        name_label = QtWidgets.QLabel(_("Name:"))
-        self.name_box.addWidget(name_label)
+        self.ui_vertical_lay.addLayout(self.name_box)
+
+        name_label = FCLabel(_("Name:"))
         self.name_entry = FCEntry()
         self.name_entry = FCEntry()
+
+        self.name_box.addWidget(name_label)
         self.name_box.addWidget(self.name_entry)
         self.name_box.addWidget(self.name_entry)
 
 
         # ### Tools Drills ## ##
         # ### Tools Drills ## ##
-        self.tools_table_label = QtWidgets.QLabel("<b>%s</b>" % _('Tools Table'))
+        self.tools_table_label = FCLabel("<b>%s</b>" % _('Tools Table'))
         self.tools_table_label.setToolTip(
         self.tools_table_label.setToolTip(
             _("Tools in this Excellon object\n"
             _("Tools in this Excellon object\n"
               "when are used for drilling.")
               "when are used for drilling.")
         )
         )
-        self.tools_box.addWidget(self.tools_table_label)
+        self.ui_vertical_lay.addWidget(self.tools_table_label)
 
 
+        # Drills TABLE
         self.tools_table_exc = FCTable()
         self.tools_table_exc = FCTable()
-        # delegate = SpinBoxDelegate(units=self.units)
-        # self.ui.tools_table_exc.setItemDelegateForColumn(1, delegate)
-
-        self.tools_box.addWidget(self.tools_table_exc)
-
         self.tools_table_exc.setColumnCount(4)
         self.tools_table_exc.setColumnCount(4)
         self.tools_table_exc.setHorizontalHeaderLabels(['#', _('Diameter'), 'D', 'S'])
         self.tools_table_exc.setHorizontalHeaderLabels(['#', _('Diameter'), 'D', 'S'])
         self.tools_table_exc.setSortingEnabled(False)
         self.tools_table_exc.setSortingEnabled(False)
         self.tools_table_exc.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
         self.tools_table_exc.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
 
 
+        self.ui_vertical_lay.addWidget(self.tools_table_exc)
+
         separator_line = QtWidgets.QFrame()
         separator_line = QtWidgets.QFrame()
         separator_line.setFrameShape(QtWidgets.QFrame.HLine)
         separator_line.setFrameShape(QtWidgets.QFrame.HLine)
         separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
         separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
-        self.tools_box.addWidget(separator_line)
+        self.ui_vertical_lay.addWidget(separator_line)
 
 
         self.convert_slots_btn = FCButton('%s' % _("Convert Slots"))
         self.convert_slots_btn = FCButton('%s' % _("Convert Slots"))
         self.convert_slots_btn.setToolTip(
         self.convert_slots_btn.setToolTip(
             _("Convert the slots in the selected tools to drills.")
             _("Convert the slots in the selected tools to drills.")
         )
         )
-        self.tools_box.addWidget(self.convert_slots_btn)
+        self.ui_vertical_lay.addWidget(self.convert_slots_btn)
 
 
         separator_line = QtWidgets.QFrame()
         separator_line = QtWidgets.QFrame()
         separator_line.setFrameShape(QtWidgets.QFrame.HLine)
         separator_line.setFrameShape(QtWidgets.QFrame.HLine)
         separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
         separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
-        self.tools_box.addWidget(separator_line)
+        self.ui_vertical_lay.addWidget(separator_line)
 
 
         # ### Add a new Tool ## ##
         # ### Add a new Tool ## ##
-        self.addtool_label = QtWidgets.QLabel('<b>%s</b>' % _('Add/Delete Tool'))
+        self.addtool_label = FCLabel('<b>%s</b>' % _('Add/Delete Tool'))
         self.addtool_label.setToolTip(
         self.addtool_label.setToolTip(
             _("Add/Delete a tool to the tool list\n"
             _("Add/Delete a tool to the tool list\n"
               "for this Excellon object.")
               "for this Excellon object.")
         )
         )
-        self.tools_box.addWidget(self.addtool_label)
+        self.ui_vertical_lay.addWidget(self.addtool_label)
 
 
+        # #############################################################################################################
+        # ######################## ADD New Tool Grid ##################################################################
+        # #############################################################################################################
         grid1 = QtWidgets.QGridLayout()
         grid1 = QtWidgets.QGridLayout()
-        self.tools_box.addLayout(grid1)
         grid1.setColumnStretch(0, 0)
         grid1.setColumnStretch(0, 0)
         grid1.setColumnStretch(1, 1)
         grid1.setColumnStretch(1, 1)
+        self.ui_vertical_lay.addLayout(grid1)
 
 
-        addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia'))
+        # Tool Diameter Label
+        addtool_entry_lbl = FCLabel('%s:' % _('Tool Dia'))
         addtool_entry_lbl.setToolTip(
         addtool_entry_lbl.setToolTip(
             _("Diameter for the new tool")
             _("Diameter for the new tool")
         )
         )
 
 
         hlay = QtWidgets.QHBoxLayout()
         hlay = QtWidgets.QHBoxLayout()
-        self.addtool_entry = FCDoubleSpinner()
+        # Tool Diameter Entry
+        self.addtool_entry = FCDoubleSpinner(policy=False)
         self.addtool_entry.set_precision(self.decimals)
         self.addtool_entry.set_precision(self.decimals)
         self.addtool_entry.set_range(0.0000, 10000.0000)
         self.addtool_entry.set_range(0.0000, 10000.0000)
 
 
         hlay.addWidget(self.addtool_entry)
         hlay.addWidget(self.addtool_entry)
 
 
-        self.addtool_btn = QtWidgets.QPushButton(_('Add Tool'))
+        # Tool Diameter Button
+        self.addtool_btn = QtWidgets.QPushButton(_('Add'))
         self.addtool_btn.setToolTip(
         self.addtool_btn.setToolTip(
             _("Add a new tool to the tool list\n"
             _("Add a new tool to the tool list\n"
               "with the diameter specified above.")
               "with the diameter specified above.")
         )
         )
-        self.addtool_btn.setFixedWidth(80)
         hlay.addWidget(self.addtool_btn)
         hlay.addWidget(self.addtool_btn)
 
 
         grid1.addWidget(addtool_entry_lbl, 0, 0)
         grid1.addWidget(addtool_entry_lbl, 0, 0)
         grid1.addLayout(hlay, 0, 1)
         grid1.addLayout(hlay, 0, 1)
 
 
-        grid2 = QtWidgets.QGridLayout()
-        self.tools_box.addLayout(grid2)
-
+        # Delete Tool
         self.deltool_btn = QtWidgets.QPushButton(_('Delete Tool'))
         self.deltool_btn = QtWidgets.QPushButton(_('Delete Tool'))
         self.deltool_btn.setToolTip(
         self.deltool_btn.setToolTip(
             _("Delete a tool in the tool list\n"
             _("Delete a tool in the tool list\n"
               "by selecting a row in the tool table.")
               "by selecting a row in the tool table.")
         )
         )
-        grid2.addWidget(self.deltool_btn, 0, 1)
+        grid1.addWidget(self.deltool_btn, 2, 0, 1, 2)
 
 
-        # add a frame and inside add a vertical box layout. Inside this vbox layout I add all the Drills widgets
+        separator_line = QtWidgets.QFrame()
+        separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+        separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+        grid1.addWidget(separator_line, 4, 0, 1, 2)
+
+        # #############################################################################################################
+        # ############################## Resize Tool Grid #############################################################
+        # #############################################################################################################
+        # add a frame and inside add a grid box layout. Inside this layout I add all the Drills widgets
         # this way I can hide/show the frame
         # this way I can hide/show the frame
         self.resize_frame = QtWidgets.QFrame()
         self.resize_frame = QtWidgets.QFrame()
         self.resize_frame.setContentsMargins(0, 0, 0, 0)
         self.resize_frame.setContentsMargins(0, 0, 0, 0)
-        self.tools_box.addWidget(self.resize_frame)
-        self.resize_box = QtWidgets.QVBoxLayout()
-        self.resize_box.setContentsMargins(0, 0, 0, 0)
-        self.resize_frame.setLayout(self.resize_box)
+        self.ui_vertical_lay.addWidget(self.resize_frame)
 
 
-        # ### Resize a  drill ## ##
-        self.emptyresize_label = QtWidgets.QLabel('')
-        self.resize_box.addWidget(self.emptyresize_label)
+        self.resize_grid = QtWidgets.QGridLayout()
+        self.resize_grid.setColumnStretch(0, 0)
+        self.resize_grid.setColumnStretch(1, 1)
+        self.resize_grid.setContentsMargins(0, 0, 0, 0)
+        self.resize_frame.setLayout(self.resize_grid)
 
 
-        self.drillresize_label = QtWidgets.QLabel('<b>%s</b>' % _("Resize Drill(s)"))
+        self.drillresize_label = FCLabel('<b>%s</b>' % _("Resize Tool"))
         self.drillresize_label.setToolTip(
         self.drillresize_label.setToolTip(
             _("Resize a drill or a selection of drills.")
             _("Resize a drill or a selection of drills.")
         )
         )
-        self.resize_box.addWidget(self.drillresize_label)
+        self.resize_grid.addWidget(self.drillresize_label, 0, 0, 1, 2)
 
 
-        grid3 = QtWidgets.QGridLayout()
-        self.resize_box.addLayout(grid3)
-
-        res_entry_lbl = QtWidgets.QLabel('%s:' % _('Resize Dia'))
+        # Resize Diameter
+        res_entry_lbl = FCLabel('%s:' % _('Resize Dia'))
         res_entry_lbl.setToolTip(
         res_entry_lbl.setToolTip(
             _("Diameter to resize to.")
             _("Diameter to resize to.")
         )
         )
-        grid3.addWidget(res_entry_lbl, 0, 0)
 
 
         hlay2 = QtWidgets.QHBoxLayout()
         hlay2 = QtWidgets.QHBoxLayout()
-        self.resdrill_entry = FCDoubleSpinner()
+        self.resdrill_entry = FCDoubleSpinner(policy=False)
         sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred)
         sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred)
         self.resdrill_entry.setSizePolicy(sizePolicy)
         self.resdrill_entry.setSizePolicy(sizePolicy)
         self.resdrill_entry.set_precision(self.decimals)
         self.resdrill_entry.set_precision(self.decimals)
@@ -3909,369 +3929,384 @@ class AppExcEditorUI:
 
 
         hlay2.addWidget(self.resdrill_entry)
         hlay2.addWidget(self.resdrill_entry)
 
 
+        # Resize Button
         self.resize_btn = QtWidgets.QPushButton(_('Resize'))
         self.resize_btn = QtWidgets.QPushButton(_('Resize'))
         self.resize_btn.setToolTip(
         self.resize_btn.setToolTip(
             _("Resize drill(s)")
             _("Resize drill(s)")
         )
         )
-        self.resize_btn.setFixedWidth(80)
         hlay2.addWidget(self.resize_btn)
         hlay2.addWidget(self.resize_btn)
-        grid3.addLayout(hlay2, 0, 1)
 
 
-        self.resize_frame.hide()
+        self.resize_grid.addWidget(res_entry_lbl, 2, 0)
+        self.resize_grid.addLayout(hlay2, 2, 1)
 
 
-        # ####################################
-        # ### Add DRILL Array ################
-        # ####################################
+        separator_line = QtWidgets.QFrame()
+        separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+        separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+        self.resize_grid.addWidget(separator_line, 6, 0, 1, 2)
 
 
-        # add a frame and inside add a vertical box layout. Inside this vbox layout I add
+        self.resize_frame.hide()
+
+        # #############################################################################################################
+        # ################################## Add DRILL Array ##########################################################
+        # #############################################################################################################
+        # add a frame and inside add a grid box layout. Inside this grid layout I add
         # all the add drill array  widgets
         # all the add drill array  widgets
         # this way I can hide/show the frame
         # this way I can hide/show the frame
         self.array_frame = QtWidgets.QFrame()
         self.array_frame = QtWidgets.QFrame()
         self.array_frame.setContentsMargins(0, 0, 0, 0)
         self.array_frame.setContentsMargins(0, 0, 0, 0)
-        self.tools_box.addWidget(self.array_frame)
-        self.array_box = QtWidgets.QVBoxLayout()
-        self.array_box.setContentsMargins(0, 0, 0, 0)
-        self.array_frame.setLayout(self.array_box)
+        self.ui_vertical_lay.addWidget(self.array_frame)
 
 
-        self.emptyarray_label = QtWidgets.QLabel('')
-        self.array_box.addWidget(self.emptyarray_label)
+        self.array_grid = QtWidgets.QGridLayout()
+        self.array_grid.setColumnStretch(0, 0)
+        self.array_grid.setColumnStretch(1, 1)
+        self.array_grid.setContentsMargins(0, 0, 0, 0)
+        self.array_frame.setLayout(self.array_grid)
 
 
-        self.drill_array_label = QtWidgets.QLabel('<b>%s</b>' % _("Add Drill Array"))
+        # Type of Drill Array
+        self.drill_array_label = FCLabel('<b>%s</b>' % _("Add Drill Array"))
         self.drill_array_label.setToolTip(
         self.drill_array_label.setToolTip(
             _("Add an array of drills (linear or circular array)")
             _("Add an array of drills (linear or circular array)")
         )
         )
-        self.array_box.addWidget(self.drill_array_label)
-
+        
+        # Special Combo - it works by indexes as opposed to the items Text
         self.array_type_combo = FCComboBox2()
         self.array_type_combo = FCComboBox2()
         self.array_type_combo.setToolTip(
         self.array_type_combo.setToolTip(
             _("Select the type of drills array to create.\n"
             _("Select the type of drills array to create.\n"
               "It can be Linear X(Y) or Circular")
               "It can be Linear X(Y) or Circular")
         )
         )
-        self.array_type_combo.addItem(_("Linear"))
-        self.array_type_combo.addItem(_("Circular"))
-
-        self.array_box.addWidget(self.array_type_combo)
+        self.array_type_combo.addItems([_("Linear"), _("Circular")])
 
 
-        self.array_form = QtWidgets.QFormLayout()
-        self.array_box.addLayout(self.array_form)
+        self.array_grid.addWidget(self.drill_array_label, 0, 0, 1, 2)
+        self.array_grid.addWidget(self.array_type_combo, 2, 0, 1, 2)
 
 
         # Set the number of drill holes in the drill array
         # Set the number of drill holes in the drill array
-        self.drill_array_size_label = QtWidgets.QLabel('%s:' % _('Nr of drills'))
+        self.drill_array_size_label = FCLabel('%s:' % _('Number'))
         self.drill_array_size_label.setToolTip(_("Specify how many drills to be in the array."))
         self.drill_array_size_label.setToolTip(_("Specify how many drills to be in the array."))
-        self.drill_array_size_label.setMinimumWidth(100)
 
 
-        self.drill_array_size_entry = FCSpinner()
-        self.drill_array_size_entry.set_range(1, 9999)
-        self.array_form.addRow(self.drill_array_size_label, self.drill_array_size_entry)
+        self.drill_array_size_entry = FCSpinner(policy=False)
+        self.drill_array_size_entry.set_range(1, 10000)
 
 
+        self.array_grid.addWidget(self.drill_array_size_label, 4, 0)
+        self.array_grid.addWidget(self.drill_array_size_entry, 4, 1)
+
+        # #############################################################################################################
+        # ###################### LINEAR Drill Array ###################################################################
+        # #############################################################################################################
         self.array_linear_frame = QtWidgets.QFrame()
         self.array_linear_frame = QtWidgets.QFrame()
         self.array_linear_frame.setContentsMargins(0, 0, 0, 0)
         self.array_linear_frame.setContentsMargins(0, 0, 0, 0)
-        self.array_box.addWidget(self.array_linear_frame)
-        self.linear_box = QtWidgets.QVBoxLayout()
-        self.linear_box.setContentsMargins(0, 0, 0, 0)
-        self.array_linear_frame.setLayout(self.linear_box)
-
-        self.linear_form = QtWidgets.QFormLayout()
-        self.linear_box.addLayout(self.linear_form)
+        self.array_grid.addWidget(self.array_linear_frame, 6, 0, 1, 2)
+        self.lin_grid = QtWidgets.QGridLayout()
+        self.lin_grid.setColumnStretch(0, 0)
+        self.lin_grid.setColumnStretch(1, 1)
+        self.lin_grid.setContentsMargins(0, 0, 0, 0)
+        self.array_linear_frame.setLayout(self.lin_grid)
 
 
         # Linear Drill Array direction
         # Linear Drill Array direction
-        self.drill_axis_label = QtWidgets.QLabel('%s:' % _('Direction'))
+        self.drill_axis_label = FCLabel('%s:' % _('Direction'))
         self.drill_axis_label.setToolTip(
         self.drill_axis_label.setToolTip(
             _("Direction on which the linear array is oriented:\n"
             _("Direction on which the linear array is oriented:\n"
               "- 'X' - horizontal axis \n"
               "- 'X' - horizontal axis \n"
               "- 'Y' - vertical axis or \n"
               "- 'Y' - vertical axis or \n"
               "- 'Angle' - a custom angle for the array inclination")
               "- 'Angle' - a custom angle for the array inclination")
         )
         )
-        self.drill_axis_label.setMinimumWidth(100)
 
 
         self.drill_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
         self.drill_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
                                           {'label': _('Y'), 'value': 'Y'},
                                           {'label': _('Y'), 'value': 'Y'},
                                           {'label': _('Angle'), 'value': 'A'}])
                                           {'label': _('Angle'), 'value': 'A'}])
-        self.linear_form.addRow(self.drill_axis_label, self.drill_axis_radio)
+
+        self.lin_grid.addWidget(self.drill_axis_label, 0, 0)
+        self.lin_grid.addWidget(self.drill_axis_radio, 0, 1)
 
 
         # Linear Drill Array pitch distance
         # Linear Drill Array pitch distance
-        self.drill_pitch_label = QtWidgets.QLabel('%s:' % _('Pitch'))
+        self.drill_pitch_label = FCLabel('%s:' % _('Pitch'))
         self.drill_pitch_label.setToolTip(
         self.drill_pitch_label.setToolTip(
             _("Pitch = Distance between elements of the array.")
             _("Pitch = Distance between elements of the array.")
         )
         )
-        self.drill_pitch_label.setMinimumWidth(100)
 
 
-        self.drill_pitch_entry = FCDoubleSpinner()
+        self.drill_pitch_entry = FCDoubleSpinner(policy=False)
         self.drill_pitch_entry.set_precision(self.decimals)
         self.drill_pitch_entry.set_precision(self.decimals)
         self.drill_pitch_entry.set_range(0.0000, 10000.0000)
         self.drill_pitch_entry.set_range(0.0000, 10000.0000)
 
 
-        self.linear_form.addRow(self.drill_pitch_label, self.drill_pitch_entry)
+        self.lin_grid.addWidget(self.drill_pitch_label, 2, 0)
+        self.lin_grid.addWidget(self.drill_pitch_entry, 2, 1)
 
 
         # Linear Drill Array angle
         # Linear Drill Array angle
-        self.linear_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
+        self.linear_angle_label = FCLabel('%s:' % _('Angle'))
         self.linear_angle_label.setToolTip(
         self.linear_angle_label.setToolTip(
             _("Angle at which the linear array is placed.\n"
             _("Angle at which the linear array is placed.\n"
               "The precision is of max 2 decimals.\n"
               "The precision is of max 2 decimals.\n"
               "Min value is: -360.00 degrees.\n"
               "Min value is: -360.00 degrees.\n"
               "Max value is: 360.00 degrees.")
               "Max value is: 360.00 degrees.")
         )
         )
-        self.linear_angle_label.setMinimumWidth(100)
 
 
-        self.linear_angle_spinner = FCDoubleSpinner()
+        self.linear_angle_spinner = FCDoubleSpinner(policy=False)
         self.linear_angle_spinner.set_precision(self.decimals)
         self.linear_angle_spinner.set_precision(self.decimals)
         self.linear_angle_spinner.setSingleStep(1.0)
         self.linear_angle_spinner.setSingleStep(1.0)
         self.linear_angle_spinner.setRange(-360.00, 360.00)
         self.linear_angle_spinner.setRange(-360.00, 360.00)
-        self.linear_form.addRow(self.linear_angle_label, self.linear_angle_spinner)
 
 
+        self.lin_grid.addWidget(self.linear_angle_label, 4, 0)
+        self.lin_grid.addWidget(self.linear_angle_spinner, 4, 1)
+
+        # #############################################################################################################
+        # ###################### CIRCULAR Drill Array #################################################################
+        # #############################################################################################################
         self.array_circular_frame = QtWidgets.QFrame()
         self.array_circular_frame = QtWidgets.QFrame()
         self.array_circular_frame.setContentsMargins(0, 0, 0, 0)
         self.array_circular_frame.setContentsMargins(0, 0, 0, 0)
-        self.array_box.addWidget(self.array_circular_frame)
-        self.circular_box = QtWidgets.QVBoxLayout()
-        self.circular_box.setContentsMargins(0, 0, 0, 0)
-        self.array_circular_frame.setLayout(self.circular_box)
+        self.array_grid.addWidget(self.array_circular_frame, 8, 0, 1, 2)
 
 
-        self.drill_direction_label = QtWidgets.QLabel('%s:' % _('Direction'))
-        self.drill_direction_label.setToolTip(_("Direction for circular array.\n"
-                                                "Can be CW = clockwise or CCW = counter clockwise."))
-        self.drill_direction_label.setMinimumWidth(100)
+        self.circ_grid = QtWidgets.QGridLayout()
+        self.circ_grid.setColumnStretch(0, 0)
+        self.circ_grid.setColumnStretch(1, 1)
+        self.circ_grid.setContentsMargins(0, 0, 0, 0)
+        self.array_circular_frame.setLayout(self.circ_grid)
 
 
-        self.circular_form = QtWidgets.QFormLayout()
-        self.circular_box.addLayout(self.circular_form)
+        # Array Direction
+        self.drill_array_dir_lbl = FCLabel('%s:' % _('Direction'))
+        self.drill_array_dir_lbl.setToolTip(_("Direction for circular array.\n"
+                                                "Can be CW = clockwise or CCW = counter clockwise."))
 
 
-        self.drill_direction_radio = RadioSet([{'label': _('CW'), 'value': 'CW'},
+        self.drill_array_dir_radio = RadioSet([{'label': _('CW'), 'value': 'CW'},
                                                {'label': _('CCW'), 'value': 'CCW'}])
                                                {'label': _('CCW'), 'value': 'CCW'}])
-        self.circular_form.addRow(self.drill_direction_label, self.drill_direction_radio)
 
 
-        self.drill_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
-        self.drill_angle_label.setToolTip(_("Angle at which each element in circular array is placed."))
-        self.drill_angle_label.setMinimumWidth(100)
+        self.circ_grid.addWidget(self.drill_array_dir_lbl, 0, 0)
+        self.circ_grid.addWidget(self.drill_array_dir_radio, 0, 1)
+
+        # Array Angle
+        self.drill_array_angle_lbl = FCLabel('%s:' % _('Angle'))
+        self.drill_array_angle_lbl.setToolTip(_("Angle at which each element in circular array is placed."))
 
 
-        self.drill_angle_entry = FCDoubleSpinner()
+        self.drill_angle_entry = FCDoubleSpinner(policy=False)
         self.drill_angle_entry.set_precision(self.decimals)
         self.drill_angle_entry.set_precision(self.decimals)
         self.drill_angle_entry.setSingleStep(1.0)
         self.drill_angle_entry.setSingleStep(1.0)
         self.drill_angle_entry.setRange(-360.00, 360.00)
         self.drill_angle_entry.setRange(-360.00, 360.00)
 
 
-        self.circular_form.addRow(self.drill_angle_label, self.drill_angle_entry)
-
-        self.array_circular_frame.hide()
-
-        self.linear_angle_spinner.hide()
-        self.linear_angle_label.hide()
+        self.circ_grid.addWidget(self.drill_array_angle_lbl, 2, 0)
+        self.circ_grid.addWidget(self.drill_angle_entry, 2, 1)
 
 
-        self.array_frame.hide()
-
-        # ######################################################
-        # ##### ADDING SLOTS ###################################
-        # ######################################################
+        separator_line = QtWidgets.QFrame()
+        separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+        separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+        self.array_grid.addWidget(separator_line, 10, 0, 1, 2)
 
 
-        # add a frame and inside add a vertical box layout. Inside this vbox layout I add
+        # #############################################################################################################
+        # ################################### ADDING SLOTS ############################################################
+        # #############################################################################################################
+        # add a frame and inside add a grid box layout. Inside this grid layout I add
         # all the add slot  widgets
         # all the add slot  widgets
         # this way I can hide/show the frame
         # this way I can hide/show the frame
         self.slot_frame = QtWidgets.QFrame()
         self.slot_frame = QtWidgets.QFrame()
         self.slot_frame.setContentsMargins(0, 0, 0, 0)
         self.slot_frame.setContentsMargins(0, 0, 0, 0)
-        self.tools_box.addWidget(self.slot_frame)
-        self.slot_box = QtWidgets.QVBoxLayout()
-        self.slot_box.setContentsMargins(0, 0, 0, 0)
-        self.slot_frame.setLayout(self.slot_box)
+        self.ui_vertical_lay.addWidget(self.slot_frame)
 
 
-        self.emptyarray_label = QtWidgets.QLabel('')
-        self.slot_box.addWidget(self.emptyarray_label)
+        self.slot_grid = QtWidgets.QGridLayout()
+        self.slot_grid.setColumnStretch(0, 0)
+        self.slot_grid.setColumnStretch(1, 1)
+        self.slot_grid.setContentsMargins(0, 0, 0, 0)
+        self.slot_frame.setLayout(self.slot_grid)
 
 
-        self.slot_label = QtWidgets.QLabel('<b>%s</b>' % _("Slot Parameters"))
+        # Slot Tile Label
+        self.slot_label = FCLabel('<b>%s</b>' % _("Slot Parameters"))
         self.slot_label.setToolTip(
         self.slot_label.setToolTip(
             _("Parameters for adding a slot (hole with oval shape)\n"
             _("Parameters for adding a slot (hole with oval shape)\n"
               "either single or as an part of an array.")
               "either single or as an part of an array.")
         )
         )
-        self.slot_box.addWidget(self.slot_label)
-
-        self.slot_form = QtWidgets.QFormLayout()
-        self.slot_box.addLayout(self.slot_form)
+        self.slot_grid.addWidget(self.slot_label, 0, 0, 1, 2)
 
 
         # Slot length
         # Slot length
-        self.slot_length_label = QtWidgets.QLabel('%s:' % _('Length'))
+        self.slot_length_label = FCLabel('%s:' % _('Length'))
         self.slot_length_label.setToolTip(
         self.slot_length_label.setToolTip(
             _("Length. The length of the slot.")
             _("Length. The length of the slot.")
         )
         )
-        self.slot_length_label.setMinimumWidth(100)
 
 
-        self.slot_length_entry = FCDoubleSpinner()
+        self.slot_length_entry = FCDoubleSpinner(policy=False)
         self.slot_length_entry.set_precision(self.decimals)
         self.slot_length_entry.set_precision(self.decimals)
         self.slot_length_entry.setSingleStep(0.1)
         self.slot_length_entry.setSingleStep(0.1)
         self.slot_length_entry.setRange(0.0000, 10000.0000)
         self.slot_length_entry.setRange(0.0000, 10000.0000)
 
 
-        self.slot_form.addRow(self.slot_length_label, self.slot_length_entry)
+        self.slot_grid.addWidget(self.slot_length_label, 2, 0)
+        self.slot_grid.addWidget(self.slot_length_entry, 2, 1)
 
 
         # Slot direction
         # Slot direction
-        self.slot_axis_label = QtWidgets.QLabel('%s:' % _('Direction'))
+        self.slot_axis_label = FCLabel('%s:' % _('Direction'))
         self.slot_axis_label.setToolTip(
         self.slot_axis_label.setToolTip(
             _("Direction on which the slot is oriented:\n"
             _("Direction on which the slot is oriented:\n"
               "- 'X' - horizontal axis \n"
               "- 'X' - horizontal axis \n"
               "- 'Y' - vertical axis or \n"
               "- 'Y' - vertical axis or \n"
               "- 'Angle' - a custom angle for the slot inclination")
               "- 'Angle' - a custom angle for the slot inclination")
         )
         )
-        self.slot_axis_label.setMinimumWidth(100)
 
 
         self.slot_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
         self.slot_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
                                          {'label': _('Y'), 'value': 'Y'},
                                          {'label': _('Y'), 'value': 'Y'},
                                          {'label': _('Angle'), 'value': 'A'}])
                                          {'label': _('Angle'), 'value': 'A'}])
-        self.slot_form.addRow(self.slot_axis_label, self.slot_axis_radio)
+
+        self.slot_grid.addWidget(self.slot_axis_label, 4, 0)
+        self.slot_grid.addWidget(self.slot_axis_radio, 4, 1)
 
 
         # Slot custom angle
         # Slot custom angle
-        self.slot_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
+        self.slot_angle_label = FCLabel('%s:' % _('Angle'))
         self.slot_angle_label.setToolTip(
         self.slot_angle_label.setToolTip(
             _("Angle at which the slot is placed.\n"
             _("Angle at which the slot is placed.\n"
               "The precision is of max 2 decimals.\n"
               "The precision is of max 2 decimals.\n"
               "Min value is: -360.00 degrees.\n"
               "Min value is: -360.00 degrees.\n"
               "Max value is: 360.00 degrees.")
               "Max value is: 360.00 degrees.")
         )
         )
-        self.slot_angle_label.setMinimumWidth(100)
 
 
-        self.slot_angle_spinner = FCDoubleSpinner()
+        self.slot_angle_spinner = FCDoubleSpinner(policy=False)
         self.slot_angle_spinner.set_precision(self.decimals)
         self.slot_angle_spinner.set_precision(self.decimals)
         self.slot_angle_spinner.setWrapping(True)
         self.slot_angle_spinner.setWrapping(True)
         self.slot_angle_spinner.setRange(-360.00, 360.00)
         self.slot_angle_spinner.setRange(-360.00, 360.00)
         self.slot_angle_spinner.setSingleStep(1.0)
         self.slot_angle_spinner.setSingleStep(1.0)
-        self.slot_form.addRow(self.slot_angle_label, self.slot_angle_spinner)
 
 
-        self.slot_frame.hide()
+        self.slot_grid.addWidget(self.slot_angle_label, 6, 0)
+        self.slot_grid.addWidget(self.slot_angle_spinner, 6, 1)
 
 
-        # ######################################################
-        # ##### ADDING SLOT ARRAY  #############################
-        # ######################################################
+        separator_line = QtWidgets.QFrame()
+        separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+        separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+        self.slot_grid.addWidget(separator_line, 8, 0, 1, 2)
 
 
+        # #############################################################################################################
+        # ##################################### ADDING SLOT ARRAY  ####################################################
+        # #############################################################################################################
         # add a frame and inside add a vertical box layout. Inside this vbox layout I add
         # add a frame and inside add a vertical box layout. Inside this vbox layout I add
         # all the add slot  widgets
         # all the add slot  widgets
         # this way I can hide/show the frame
         # this way I can hide/show the frame
         self.slot_array_frame = QtWidgets.QFrame()
         self.slot_array_frame = QtWidgets.QFrame()
         self.slot_array_frame.setContentsMargins(0, 0, 0, 0)
         self.slot_array_frame.setContentsMargins(0, 0, 0, 0)
-        self.tools_box.addWidget(self.slot_array_frame)
-        self.slot_array_box = QtWidgets.QVBoxLayout()
-        self.slot_array_box.setContentsMargins(0, 0, 0, 0)
-        self.slot_array_frame.setLayout(self.slot_array_box)
+        self.ui_vertical_lay.addWidget(self.slot_array_frame)
 
 
-        self.emptyarray_label = QtWidgets.QLabel('')
-        self.slot_array_box.addWidget(self.emptyarray_label)
+        self.slot_array_grid = QtWidgets.QGridLayout()
+        self.slot_array_grid.setColumnStretch(0, 0)
+        self.slot_array_grid.setColumnStretch(1, 1)
+        self.slot_array_grid.setContentsMargins(0, 0, 0, 0)
+        self.slot_array_frame.setLayout(self.slot_array_grid)
 
 
-        self.slot_array_label = QtWidgets.QLabel('<b>%s</b>' % _("Slot Array Parameters"))
+        # Slot Array Title
+        self.slot_array_label = FCLabel('<b>%s</b>' % _("Slot Array Parameters"))
         self.slot_array_label.setToolTip(
         self.slot_array_label.setToolTip(
             _("Parameters for the array of slots (linear or circular array)")
             _("Parameters for the array of slots (linear or circular array)")
         )
         )
-        self.slot_array_box.addWidget(self.slot_array_label)
 
 
-        self.l_form = QtWidgets.QFormLayout()
-        self.slot_array_box.addLayout(self.l_form)
+        self.slot_array_grid.addWidget(self.slot_array_label, 0, 0, 1, 2)
 
 
+        # Special type of Combobox that get_value() by indexes and not by items text
         self.slot_array_type_combo = FCComboBox2()
         self.slot_array_type_combo = FCComboBox2()
         self.slot_array_type_combo.setToolTip(
         self.slot_array_type_combo.setToolTip(
             _("Select the type of slot array to create.\n"
             _("Select the type of slot array to create.\n"
               "It can be Linear X(Y) or Circular")
               "It can be Linear X(Y) or Circular")
         )
         )
-        self.slot_array_type_combo.addItem(_("Linear"))
-        self.slot_array_type_combo.addItem(_("Circular"))
-
-        self.slot_array_box.addWidget(self.slot_array_type_combo)
+        self.slot_array_type_combo.addItems([_("Linear"), _("Circular")])
 
 
-        self.slot_array_form = QtWidgets.QFormLayout()
-        self.slot_array_box.addLayout(self.slot_array_form)
+        self.slot_array_grid.addWidget(self.slot_array_type_combo, 2, 0, 1, 2)
 
 
         # Set the number of slot holes in the slot array
         # Set the number of slot holes in the slot array
-        self.slot_array_size_label = QtWidgets.QLabel('%s:' % _('Nr of slots'))
+        self.slot_array_size_label = FCLabel('%s:' % _('Number'))
         self.slot_array_size_label.setToolTip(_("Specify how many slots to be in the array."))
         self.slot_array_size_label.setToolTip(_("Specify how many slots to be in the array."))
-        self.slot_array_size_label.setMinimumWidth(100)
 
 
-        self.slot_array_size_entry = FCSpinner()
-        self.slot_array_size_entry.set_range(0, 9999)
+        self.slot_array_size_entry = FCSpinner(policy=False)
+        self.slot_array_size_entry.set_range(0, 10000)
 
 
-        self.slot_array_form.addRow(self.slot_array_size_label, self.slot_array_size_entry)
+        self.slot_array_grid.addWidget(self.slot_array_size_label, 4, 0)
+        self.slot_array_grid.addWidget(self.slot_array_size_entry, 4, 1)
 
 
+        # #############################################################################################################
+        # ##################################### Linear SLOT ARRAY  ####################################################
+        # #############################################################################################################
         self.slot_array_linear_frame = QtWidgets.QFrame()
         self.slot_array_linear_frame = QtWidgets.QFrame()
         self.slot_array_linear_frame.setContentsMargins(0, 0, 0, 0)
         self.slot_array_linear_frame.setContentsMargins(0, 0, 0, 0)
-        self.slot_array_box.addWidget(self.slot_array_linear_frame)
-        self.slot_array_linear_box = QtWidgets.QVBoxLayout()
-        self.slot_array_linear_box.setContentsMargins(0, 0, 0, 0)
-        self.slot_array_linear_frame.setLayout(self.slot_array_linear_box)
+        self.slot_array_grid.addWidget(self.slot_array_linear_frame, 6, 0, 1, 2)
 
 
-        self.slot_array_linear_form = QtWidgets.QFormLayout()
-        self.slot_array_linear_box.addLayout(self.slot_array_linear_form)
+        self.slot_array_lin_grid = QtWidgets.QGridLayout()
+        self.slot_array_lin_grid.setColumnStretch(0, 0)
+        self.slot_array_lin_grid.setColumnStretch(1, 1)
+        self.slot_array_lin_grid.setContentsMargins(0, 0, 0, 0)
+        self.slot_array_linear_frame.setLayout(self.slot_array_lin_grid)
 
 
         # Linear Slot Array direction
         # Linear Slot Array direction
-        self.slot_array_axis_label = QtWidgets.QLabel('%s:' % _('Direction'))
+        self.slot_array_axis_label = FCLabel('%s:' % _('Direction'))
         self.slot_array_axis_label.setToolTip(
         self.slot_array_axis_label.setToolTip(
             _("Direction on which the linear array is oriented:\n"
             _("Direction on which the linear array is oriented:\n"
               "- 'X' - horizontal axis \n"
               "- 'X' - horizontal axis \n"
               "- 'Y' - vertical axis or \n"
               "- 'Y' - vertical axis or \n"
               "- 'Angle' - a custom angle for the array inclination")
               "- 'Angle' - a custom angle for the array inclination")
         )
         )
-        self.slot_array_axis_label.setMinimumWidth(100)
 
 
         self.slot_array_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
         self.slot_array_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'},
                                                {'label': _('Y'), 'value': 'Y'},
                                                {'label': _('Y'), 'value': 'Y'},
                                                {'label': _('Angle'), 'value': 'A'}])
                                                {'label': _('Angle'), 'value': 'A'}])
-        self.slot_array_linear_form.addRow(self.slot_array_axis_label, self.slot_array_axis_radio)
+
+        self.slot_array_lin_grid.addWidget(self.slot_array_axis_label, 0, 0)
+        self.slot_array_lin_grid.addWidget(self.slot_array_axis_radio, 0, 1)
 
 
         # Linear Slot Array pitch distance
         # Linear Slot Array pitch distance
-        self.slot_array_pitch_label = QtWidgets.QLabel('%s:' % _('Pitch'))
+        self.slot_array_pitch_label = FCLabel('%s:' % _('Pitch'))
         self.slot_array_pitch_label.setToolTip(
         self.slot_array_pitch_label.setToolTip(
             _("Pitch = Distance between elements of the array.")
             _("Pitch = Distance between elements of the array.")
         )
         )
-        self.slot_array_pitch_label.setMinimumWidth(100)
 
 
-        self.slot_array_pitch_entry = FCDoubleSpinner()
+        self.slot_array_pitch_entry = FCDoubleSpinner(policy=False)
         self.slot_array_pitch_entry.set_precision(self.decimals)
         self.slot_array_pitch_entry.set_precision(self.decimals)
         self.slot_array_pitch_entry.setSingleStep(0.1)
         self.slot_array_pitch_entry.setSingleStep(0.1)
         self.slot_array_pitch_entry.setRange(0.0000, 10000.0000)
         self.slot_array_pitch_entry.setRange(0.0000, 10000.0000)
 
 
-        self.slot_array_linear_form.addRow(self.slot_array_pitch_label, self.slot_array_pitch_entry)
+        self.slot_array_lin_grid.addWidget(self.slot_array_pitch_label, 2, 0)
+        self.slot_array_lin_grid.addWidget(self.slot_array_pitch_entry, 2, 1)
 
 
         # Linear Slot Array angle
         # Linear Slot Array angle
-        self.slot_array_linear_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
+        self.slot_array_linear_angle_label = FCLabel('%s:' % _('Angle'))
         self.slot_array_linear_angle_label.setToolTip(
         self.slot_array_linear_angle_label.setToolTip(
             _("Angle at which the linear array is placed.\n"
             _("Angle at which the linear array is placed.\n"
               "The precision is of max 2 decimals.\n"
               "The precision is of max 2 decimals.\n"
               "Min value is: -360.00 degrees.\n"
               "Min value is: -360.00 degrees.\n"
               "Max value is: 360.00 degrees.")
               "Max value is: 360.00 degrees.")
         )
         )
-        self.slot_array_linear_angle_label.setMinimumWidth(100)
 
 
-        self.slot_array_linear_angle_spinner = FCDoubleSpinner()
+        self.slot_array_linear_angle_spinner = FCDoubleSpinner(policy=False)
         self.slot_array_linear_angle_spinner.set_precision(self.decimals)
         self.slot_array_linear_angle_spinner.set_precision(self.decimals)
         self.slot_array_linear_angle_spinner.setSingleStep(1.0)
         self.slot_array_linear_angle_spinner.setSingleStep(1.0)
         self.slot_array_linear_angle_spinner.setRange(-360.00, 360.00)
         self.slot_array_linear_angle_spinner.setRange(-360.00, 360.00)
-        self.slot_array_linear_form.addRow(self.slot_array_linear_angle_label, self.slot_array_linear_angle_spinner)
 
 
+        self.slot_array_lin_grid.addWidget(self.slot_array_linear_angle_label, 4, 0)
+        self.slot_array_lin_grid.addWidget(self.slot_array_linear_angle_spinner, 4, 1)
+
+        # #############################################################################################################
+        # ##################################### Circular SLOT ARRAY  ##################################################
+        # #############################################################################################################
         self.slot_array_circular_frame = QtWidgets.QFrame()
         self.slot_array_circular_frame = QtWidgets.QFrame()
         self.slot_array_circular_frame.setContentsMargins(0, 0, 0, 0)
         self.slot_array_circular_frame.setContentsMargins(0, 0, 0, 0)
-        self.slot_array_box.addWidget(self.slot_array_circular_frame)
-        self.slot_array_circular_box = QtWidgets.QVBoxLayout()
-        self.slot_array_circular_box.setContentsMargins(0, 0, 0, 0)
-        self.slot_array_circular_frame.setLayout(self.slot_array_circular_box)
+        self.slot_array_grid.addWidget(self.slot_array_circular_frame, 8, 0, 1, 2)
+
+        self.slot_array_circ_grid = QtWidgets.QGridLayout()
+        self.slot_array_circ_grid.setColumnStretch(0, 0)
+        self.slot_array_circ_grid.setColumnStretch(1, 1)
+        self.slot_array_circ_grid.setContentsMargins(0, 0, 0, 0)
+        self.slot_array_circular_frame.setLayout(self.slot_array_circ_grid)
 
 
-        self.slot_array_direction_label = QtWidgets.QLabel('%s:' % _('Direction'))
+        # Slot Circular Array Direction
+        self.slot_array_direction_label = FCLabel('%s:' % _('Direction'))
         self.slot_array_direction_label.setToolTip(_("Direction for circular array.\n"
         self.slot_array_direction_label.setToolTip(_("Direction for circular array.\n"
                                                      "Can be CW = clockwise or CCW = counter clockwise."))
                                                      "Can be CW = clockwise or CCW = counter clockwise."))
-        self.slot_array_direction_label.setMinimumWidth(100)
-
-        self.slot_array_circular_form = QtWidgets.QFormLayout()
-        self.slot_array_circular_box.addLayout(self.slot_array_circular_form)
 
 
         self.slot_array_direction_radio = RadioSet([{'label': _('CW'), 'value': 'CW'},
         self.slot_array_direction_radio = RadioSet([{'label': _('CW'), 'value': 'CW'},
                                                     {'label': _('CCW'), 'value': 'CCW'}])
                                                     {'label': _('CCW'), 'value': 'CCW'}])
-        self.slot_array_circular_form.addRow(self.slot_array_direction_label, self.slot_array_direction_radio)
 
 
-        self.slot_array_angle_label = QtWidgets.QLabel('%s:' % _('Angle'))
+        self.slot_array_circ_grid.addWidget(self.slot_array_direction_label, 0, 0)
+        self.slot_array_circ_grid.addWidget(self.slot_array_direction_radio, 0, 1)
+
+        # Slot Circular Array Angle
+        self.slot_array_angle_label = FCLabel('%s:' % _('Angle'))
         self.slot_array_angle_label.setToolTip(_("Angle at which each element in circular array is placed."))
         self.slot_array_angle_label.setToolTip(_("Angle at which each element in circular array is placed."))
-        self.slot_array_angle_label.setMinimumWidth(100)
 
 
-        self.slot_array_angle_entry = FCDoubleSpinner()
+        self.slot_array_angle_entry = FCDoubleSpinner(policy=False)
         self.slot_array_angle_entry.set_precision(self.decimals)
         self.slot_array_angle_entry.set_precision(self.decimals)
         self.slot_array_angle_entry.setSingleStep(1)
         self.slot_array_angle_entry.setSingleStep(1)
         self.slot_array_angle_entry.setRange(-360.00, 360.00)
         self.slot_array_angle_entry.setRange(-360.00, 360.00)
 
 
-        self.slot_array_circular_form.addRow(self.slot_array_angle_label, self.slot_array_angle_entry)
-
-        self.slot_array_linear_angle_spinner.hide()
-        self.slot_array_linear_angle_label.hide()
-
-        self.slot_array_frame.hide()
-
-        self.tools_box.addStretch()
+        self.slot_array_circ_grid.addWidget(self.slot_array_angle_label, 2, 0)
+        self.slot_array_circ_grid.addWidget(self.slot_array_angle_entry, 2, 1)
 
 
-        layout.addStretch()
+        self.ui_vertical_lay.addStretch()
+        layout.addStretch(1)
 
 
         # Editor
         # Editor
         self.exit_editor_button = QtWidgets.QPushButton(_('Exit Editor'))
         self.exit_editor_button = QtWidgets.QPushButton(_('Exit Editor'))
@@ -4286,6 +4321,21 @@ class AppExcEditorUI:
                                       }
                                       }
                                       """)
                                       """)
         layout.addWidget(self.exit_editor_button)
         layout.addWidget(self.exit_editor_button)
+
+        # #############################################################################################################
+        # ###################### INIT Excellon Editor UI ##############################################################
+        # #############################################################################################################
+        self.linear_angle_spinner.hide()
+        self.linear_angle_label.hide()
+        self.array_linear_frame.hide()
+        self.array_circular_frame.hide()
+        self.array_frame.hide()
+
+        self.slot_frame.hide()
+        self.slot_array_linear_angle_spinner.hide()
+        self.slot_array_linear_angle_label.hide()
+        self.slot_array_frame.hide()
+
         # ############################ FINSIHED GUI ###################################
         # ############################ FINSIHED GUI ###################################
         # #############################################################################
         # #############################################################################
 
 

+ 4 - 0
appEditors/AppGerberEditor.py

@@ -4365,6 +4365,10 @@ class AppGerberEditor(QtCore.QObject):
         :param event: Event object dispatched by VisPy SceneCavas
         :param event: Event object dispatched by VisPy SceneCavas
         :return: None
         :return: None
         """
         """
+
+        if not self.app.plotcanvas.native.hasFocus():
+            self.app.plotcanvas.native.setFocus()
+
         if self.app.is_legacy is False:
         if self.app.is_legacy is False:
             event_pos = event.pos
             event_pos = event.pos
             event_is_dragging = event.is_dragging
             event_is_dragging = event.is_dragging

+ 8 - 6
appGUI/GUIElements.py

@@ -899,7 +899,7 @@ class FCSpinner(QtWidgets.QSpinBox):
     returnPressed = QtCore.pyqtSignal()
     returnPressed = QtCore.pyqtSignal()
     confirmation_signal = QtCore.pyqtSignal(bool, float, float)
     confirmation_signal = QtCore.pyqtSignal(bool, float, float)
 
 
-    def __init__(self, suffix=None, alignment=None, parent=None, callback=None):
+    def __init__(self, suffix=None, alignment=None, parent=None, callback=None, policy=True):
         super(FCSpinner, self).__init__(parent)
         super(FCSpinner, self).__init__(parent)
         self.readyToEdit = True
         self.readyToEdit = True
 
 
@@ -924,8 +924,9 @@ class FCSpinner(QtWidgets.QSpinBox):
         self.prev_readyToEdit = True
         self.prev_readyToEdit = True
         self.menu = None
         self.menu = None
 
 
-        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
-        self.setSizePolicy(sizePolicy)
+        if policy:
+            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
+            self.setSizePolicy(sizePolicy)
 
 
     def eventFilter(self, object, event):
     def eventFilter(self, object, event):
         if event.type() == QtCore.QEvent.MouseButtonPress and self.prev_readyToEdit is True:
         if event.type() == QtCore.QEvent.MouseButtonPress and self.prev_readyToEdit is True:
@@ -1277,7 +1278,7 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox):
     returnPressed = QtCore.pyqtSignal()
     returnPressed = QtCore.pyqtSignal()
     confirmation_signal = QtCore.pyqtSignal(bool, float, float)
     confirmation_signal = QtCore.pyqtSignal(bool, float, float)
 
 
-    def __init__(self, suffix=None, alignment=None, parent=None, callback=None):
+    def __init__(self, suffix=None, alignment=None, parent=None, callback=None, policy=True):
         """
         """
 
 
         :param suffix:      a char added to the end of the value in the LineEdit; like a '%' or '$' etc
         :param suffix:      a char added to the end of the value in the LineEdit; like a '%' or '$' etc
@@ -1314,8 +1315,9 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox):
         self.prev_readyToEdit = True
         self.prev_readyToEdit = True
         self.menu = None
         self.menu = None
 
 
-        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
-        self.setSizePolicy(sizePolicy)
+        if policy:
+            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
+            self.setSizePolicy(sizePolicy)
 
 
     def on_edit_finished(self):
     def on_edit_finished(self):
         self.clearFocus()
         self.clearFocus()

BIN
locale/tr/LC_MESSAGES/strings.mo


+ 41 - 127
locale/tr/LC_MESSAGES/strings.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: \n"
 "Project-Id-Version: \n"
 "POT-Creation-Date: 2020-11-04 18:02+0200\n"
 "POT-Creation-Date: 2020-11-04 18:02+0200\n"
-"PO-Revision-Date: 2020-11-04 18:02+0200\n"
+"PO-Revision-Date: 2020-11-04 21:22+0300\n"
 "Last-Translator: \n"
 "Last-Translator: \n"
 "Language-Team: \n"
 "Language-Team: \n"
 "Language: tr_TR\n"
 "Language: tr_TR\n"
@@ -753,15 +753,6 @@ msgstr "Üst Üste Gelme"
 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
 #: appTools/ToolNCC.py:4206 appTools/ToolPaint.py:2975
 #: appTools/ToolNCC.py:4206 appTools/ToolPaint.py:2975
-#, fuzzy
-#| msgid ""
-#| "How much (percentage) of the tool width to overlap each tool pass.\n"
-#| "Adjust the value starting with lower values\n"
-#| "and increasing it if areas that should be cleared are still \n"
-#| "not cleared.\n"
-#| "Lower values = faster processing, faster execution on CNC.\n"
-#| "Higher values = slow processing and slow execution on CNC\n"
-#| "due of too many paths."
 msgid ""
 msgid ""
 "How much (percentage) of the tool width to overlap each tool pass.\n"
 "How much (percentage) of the tool width to overlap each tool pass.\n"
 "Adjust the value starting with lower values\n"
 "Adjust the value starting with lower values\n"
@@ -773,11 +764,11 @@ msgid ""
 msgstr ""
 msgstr ""
 "Ucun her geçişinde uç genişliğinin ne kadarlık kısmının (yüzde) üst üste "
 "Ucun her geçişinde uç genişliğinin ne kadarlık kısmının (yüzde) üst üste "
 "geleceğini belirler.\n"
 "geleceğini belirler.\n"
-"Daha düşük değerlerden başlayarak ve temizlenecek alanlar hala \n"
-"temizlenmemişse değeri artırın.\n"
+"Değeri daha düşük değerlerden başlayarak ayarlayın ve işlenmesi gereken "
+"alanlar hâlâ işlenmiyorsa değeri artırın.\n"
 "Düşük değerler = Daha hızlı işleme, CNC'de daha hızlı yürütme sağlar.\n"
 "Düşük değerler = Daha hızlı işleme, CNC'de daha hızlı yürütme sağlar.\n"
-"Daha yüksek değerler = Çok sayıda yol nedeniyle CNC'de yavaş\n"
-"işleme ve yavaş yürütmeye sebep olur."
+"Daha yüksek değerler = Çok sayıda yol nedeniyle CNC'de yavaş işleme \n"
+"ve yavaş yürütmeye sebep olur."
 
 
 #: appDatabase.py:649 appDatabase.py:1156 appEditors/AppGeoEditor.py:473
 #: appDatabase.py:649 appDatabase.py:1156 appEditors/AppGeoEditor.py:473
 #: appGUI/ObjectUI.py:1679
 #: appGUI/ObjectUI.py:1679
@@ -930,12 +921,6 @@ msgstr "Hizala"
 #: appDatabase.py:704 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
 #: appDatabase.py:704 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:267 appTools/ToolNCC.py:4285
 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:267 appTools/ToolNCC.py:4285
 #: appTools/ToolNCC.py:4381
 #: appTools/ToolNCC.py:4381
-#, fuzzy
-#| msgid ""
-#| "If used, it will add an offset to the copper features.\n"
-#| "The copper clearing will finish to a distance\n"
-#| "from the copper features.\n"
-#| "The value can be between 0 and 10 FlatCAM units."
 msgid ""
 msgid ""
 "If used, it will add an offset to the copper features.\n"
 "If used, it will add an offset to the copper features.\n"
 "The copper clearing will finish to a distance\n"
 "The copper clearing will finish to a distance\n"
@@ -943,8 +928,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "İşaretlendiğinde, bakır alanlara bir hiza ekleyecektir.\n"
 "İşaretlendiğinde, bakır alanlara bir hiza ekleyecektir.\n"
 "Bakır temizliği, bakır alanların belirli bir mesafesine\n"
 "Bakır temizliği, bakır alanların belirli bir mesafesine\n"
-"kadar olacaktır.\n"
-"Değer, 0 ile 10 arasında FlatCAM birimi olabilir."
+"kadar olacaktır."
 
 
 #: appDatabase.py:759 appEditors/AppGeoEditor.py:475
 #: appDatabase.py:759 appEditors/AppGeoEditor.py:475
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
@@ -2101,10 +2085,8 @@ msgstr "Uzunluk"
 
 
 #: appEditors/AppExcEditor.py:4085
 #: appEditors/AppExcEditor.py:4085
 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-#, fuzzy
-#| msgid "Length = The length of the slot."
 msgid "Length. The length of the slot."
 msgid "Length. The length of the slot."
-msgstr "Uzunluk = Yuvanın uzunluğu."
+msgstr "Uzunluk. Yuvanın uzunluğu."
 
 
 #: appEditors/AppExcEditor.py:4099
 #: appEditors/AppExcEditor.py:4099
 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
@@ -2535,7 +2517,7 @@ msgstr ""
 #: appEditors/AppGeoEditor.py:741 appEditors/AppGerberEditor.py:5555
 #: appEditors/AppGeoEditor.py:741 appEditors/AppGerberEditor.py:5555
 #: appTools/ToolTransform.py:667
 #: appTools/ToolTransform.py:667
 msgid "Skew X"
 msgid "Skew X"
-msgstr "X Eğrilt"
+msgstr "Eğrilt"
 
 
 #: appEditors/AppGeoEditor.py:743 appEditors/AppGeoEditor.py:764
 #: appEditors/AppGeoEditor.py:743 appEditors/AppGeoEditor.py:764
 #: appEditors/AppGerberEditor.py:5557 appEditors/AppGerberEditor.py:5578
 #: appEditors/AppGerberEditor.py:5557 appEditors/AppGerberEditor.py:5578
@@ -2559,7 +2541,7 @@ msgstr "Y Eğim Açısı"
 #: appEditors/AppGeoEditor.py:762 appEditors/AppGerberEditor.py:5576
 #: appEditors/AppGeoEditor.py:762 appEditors/AppGerberEditor.py:5576
 #: appTools/ToolTransform.py:688
 #: appTools/ToolTransform.py:688
 msgid "Skew Y"
 msgid "Skew Y"
-msgstr "Y Eğrilt"
+msgstr "Eğrilt"
 
 
 #: appEditors/AppGeoEditor.py:793 appEditors/AppGerberEditor.py:5607
 #: appEditors/AppGeoEditor.py:793 appEditors/AppGerberEditor.py:5607
 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120
 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120
@@ -2900,10 +2882,8 @@ msgid "Rotate done"
 msgstr "Döndürme işlemi tamamlandı"
 msgstr "Döndürme işlemi tamamlandı"
 
 
 #: appEditors/AppGeoEditor.py:1461 appEditors/AppGerberEditor.py:6327
 #: appEditors/AppGeoEditor.py:1461 appEditors/AppGerberEditor.py:6327
-#, fuzzy
-#| msgid "Rotate Angle"
 msgid "Rotate cancelled"
 msgid "Rotate cancelled"
-msgstr "Rotate Angle"
+msgstr "Döndürme işlemi iptal edildi"
 
 
 #: appEditors/AppGeoEditor.py:1466 appEditors/AppGerberEditor.py:6332
 #: appEditors/AppGeoEditor.py:1466 appEditors/AppGerberEditor.py:6332
 msgid "Offset on X axis ..."
 msgid "Offset on X axis ..."
@@ -2915,58 +2895,44 @@ msgid "Enter a distance Value"
 msgstr "Bir mesafe değeri girin"
 msgstr "Bir mesafe değeri girin"
 
 
 #: appEditors/AppGeoEditor.py:1479 appEditors/AppGerberEditor.py:6345
 #: appEditors/AppGeoEditor.py:1479 appEditors/AppGerberEditor.py:6345
-#, fuzzy
-#| msgid "Open DXF cancelled."
 msgid "Offset X cancelled"
 msgid "Offset X cancelled"
-msgstr "Open DXF cancelled."
+msgstr "X hizalama işlemi iptal edildi"
 
 
 #: appEditors/AppGeoEditor.py:1484 appEditors/AppGerberEditor.py:6350
 #: appEditors/AppGeoEditor.py:1484 appEditors/AppGerberEditor.py:6350
 msgid "Offset on Y axis ..."
 msgid "Offset on Y axis ..."
 msgstr "Y ekseninde hiza ..."
 msgstr "Y ekseninde hiza ..."
 
 
 #: appEditors/AppGeoEditor.py:1494 appEditors/AppGerberEditor.py:6360
 #: appEditors/AppGeoEditor.py:1494 appEditors/AppGerberEditor.py:6360
-#, fuzzy
-#| msgid "Offset on the Y axis done"
 msgid "Offset on Y axis done"
 msgid "Offset on Y axis done"
-msgstr "Y eksenindeki hizalama işlemi yapıldı"
+msgstr "Y ekseninde hizalama işlemi yapıldı"
 
 
 #: appEditors/AppGeoEditor.py:1497
 #: appEditors/AppGeoEditor.py:1497
-#, fuzzy
-#| msgid "Offset on the Y axis done"
 msgid "Offset on the Y axis canceled"
 msgid "Offset on the Y axis canceled"
-msgstr "Y eksenindeki hizalama işlemi yapıldı"
+msgstr "Y ekseninde hizalama işlemi iptal edildi"
 
 
 #: appEditors/AppGeoEditor.py:1500 appEditors/AppGerberEditor.py:6366
 #: appEditors/AppGeoEditor.py:1500 appEditors/AppGerberEditor.py:6366
 msgid "Skew on X axis ..."
 msgid "Skew on X axis ..."
 msgstr "X ekseninde eğrilt ..."
 msgstr "X ekseninde eğrilt ..."
 
 
 #: appEditors/AppGeoEditor.py:1510 appEditors/AppGerberEditor.py:6376
 #: appEditors/AppGeoEditor.py:1510 appEditors/AppGerberEditor.py:6376
-#, fuzzy
-#| msgid "Skew on X axis done."
 msgid "Skew on X axis done"
 msgid "Skew on X axis done"
-msgstr "X ekseninde eğme işlemi tamamlandı."
+msgstr "X ekseninde eğritlme işlemi yapıldı"
 
 
 #: appEditors/AppGeoEditor.py:1513
 #: appEditors/AppGeoEditor.py:1513
-#, fuzzy
-#| msgid "Skew on X axis done."
 msgid "Skew on X axis canceled"
 msgid "Skew on X axis canceled"
-msgstr "X ekseninde eğme işlemi tamamlandı."
+msgstr "X eksenindeki eğriltme işlemi iptal edildi"
 
 
 #: appEditors/AppGeoEditor.py:1516 appEditors/AppGerberEditor.py:6382
 #: appEditors/AppGeoEditor.py:1516 appEditors/AppGerberEditor.py:6382
 msgid "Skew on Y axis ..."
 msgid "Skew on Y axis ..."
 msgstr "Y Ekseninde Eğrilt ..."
 msgstr "Y Ekseninde Eğrilt ..."
 
 
 #: appEditors/AppGeoEditor.py:1526 appEditors/AppGerberEditor.py:6392
 #: appEditors/AppGeoEditor.py:1526 appEditors/AppGerberEditor.py:6392
-#, fuzzy
-#| msgid "Skew on Y axis done."
 msgid "Skew on Y axis done"
 msgid "Skew on Y axis done"
-msgstr "Y ekseninde eğme işlemi tamamlandı."
+msgstr "Y ekseninde eğriltme işlemi yapıldı"
 
 
 #: appEditors/AppGeoEditor.py:1529
 #: appEditors/AppGeoEditor.py:1529
-#, fuzzy
-#| msgid "Skew on Y axis done."
 msgid "Skew on Y axis canceled"
 msgid "Skew on Y axis canceled"
-msgstr "Y ekseninde eğme işlemi tamamlandı."
+msgstr "Y ekseninde eğrilme işlemi iptal edildi"
 
 
 #: appEditors/AppGeoEditor.py:1960 appEditors/AppGeoEditor.py:2031
 #: appEditors/AppGeoEditor.py:1960 appEditors/AppGeoEditor.py:2031
 #: appEditors/AppGerberEditor.py:1500 appEditors/AppGerberEditor.py:1583
 #: appEditors/AppGerberEditor.py:1500 appEditors/AppGerberEditor.py:1583
@@ -3161,17 +3127,13 @@ msgstr ""
 
 
 #: appEditors/AppGeoEditor.py:4936 appEditors/AppGeoEditor.py:4988
 #: appEditors/AppGeoEditor.py:4936 appEditors/AppGeoEditor.py:4988
 #: appEditors/AppGeoEditor.py:5037 appEditors/AppGeoEditor.py:5084
 #: appEditors/AppGeoEditor.py:5037 appEditors/AppGeoEditor.py:5084
-#, fuzzy
-#| msgid "Failed. Nothing selected."
 msgid "Nothing selected."
 msgid "Nothing selected."
-msgstr "Hata. Hiçbir şey seçilmedi."
+msgstr "Hiçbir şey seçilmedi."
 
 
 #: appEditors/AppGeoEditor.py:4940 appEditors/AppGeoEditor.py:4992
 #: appEditors/AppGeoEditor.py:4940 appEditors/AppGeoEditor.py:4992
 #: appEditors/AppGeoEditor.py:5041
 #: appEditors/AppGeoEditor.py:5041
-#, fuzzy
-#| msgid "Invalid distance for buffering."
 msgid "Invalid distance."
 msgid "Invalid distance."
-msgstr "Tampon oluşturmak için geçersiz mesafe."
+msgstr "Geçersiz mesafe."
 
 
 #: appEditors/AppGeoEditor.py:4964 appEditors/AppGeoEditor.py:5012
 #: appEditors/AppGeoEditor.py:4964 appEditors/AppGeoEditor.py:5012
 #: appEditors/AppGeoEditor.py:5061
 #: appEditors/AppGeoEditor.py:5061
@@ -3341,10 +3303,8 @@ msgid "Added new aperture with code"
 msgstr "Şu kodlu yeni şekil eklendi"
 msgstr "Şu kodlu yeni şekil eklendi"
 
 
 #: appEditors/AppGerberEditor.py:3095
 #: appEditors/AppGerberEditor.py:3095
-#, fuzzy
-#| msgid " Select an aperture in Aperture Table"
 msgid "Select an aperture in Aperture Table"
 msgid "Select an aperture in Aperture Table"
-msgstr " Şekil Tablosundan bir şekil seçin"
+msgstr "Şekil Tablosundan bir şekil seçin"
 
 
 #: appEditors/AppGerberEditor.py:3103
 #: appEditors/AppGerberEditor.py:3103
 msgid "Select an aperture in Aperture Table -->"
 msgid "Select an aperture in Aperture Table -->"
@@ -3701,22 +3661,16 @@ msgid "Specify how many pads to be in the array."
 msgstr "Dizide kaç tane ped olması gerektiğini belirtin."
 msgstr "Dizide kaç tane ped olması gerektiğini belirtin."
 
 
 #: appEditors/AppGerberEditor.py:6363
 #: appEditors/AppGerberEditor.py:6363
-#, fuzzy
-#| msgid "Open cancelled."
 msgid "Offset Y cancelled"
 msgid "Offset Y cancelled"
-msgstr "Open cancelled."
+msgstr "Y hizalama işlemi iptal edildi"
 
 
 #: appEditors/AppGerberEditor.py:6379
 #: appEditors/AppGerberEditor.py:6379
-#, fuzzy
-#| msgid "Open DXF cancelled."
 msgid "Skew X cancelled"
 msgid "Skew X cancelled"
-msgstr "Open DXF cancelled."
+msgstr "X eğriltme işlemi iptal edildi"
 
 
 #: appEditors/AppGerberEditor.py:6395
 #: appEditors/AppGerberEditor.py:6395
-#, fuzzy
-#| msgid "Skew_Y angle"
 msgid "Skew Y cancelled"
 msgid "Skew Y cancelled"
-msgstr "Skew_Y angle"
+msgstr "Y eğriltme işlemi iptal edildi"
 
 
 #: appEditors/AppTextEditor.py:84
 #: appEditors/AppTextEditor.py:84
 msgid "Find"
 msgid "Find"
@@ -5093,8 +5047,6 @@ msgstr "Varsayılan"
 #: appGUI/MainGUI.py:863
 #: appGUI/MainGUI.py:863
 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35
 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35
-#, fuzzy
-#| msgid "Create CNC Job"
 msgid "Create CNCJob"
 msgid "Create CNCJob"
 msgstr "CNC İşi Oluştur"
 msgstr "CNC İşi Oluştur"
 
 
@@ -6549,10 +6501,8 @@ msgstr ""
 "sağlar."
 "sağlar."
 
 
 #: appGUI/ObjectUI.py:724
 #: appGUI/ObjectUI.py:724
-#, fuzzy
-#| msgid "Generate GCode out of drill holes in an Excellon object."
 msgid "Generate GCode from the drill holes in an Excellon object."
 msgid "Generate GCode from the drill holes in an Excellon object."
-msgstr "Bir Excellon nesnesindeki matkap deliklerinden G Kod oluşturun."
+msgstr "Bir Excellon nesnesindeki deliklerinden G Kodu oluşturun."
 
 
 #: appGUI/ObjectUI.py:735 appGUI/ObjectUI.py:1790
 #: appGUI/ObjectUI.py:735 appGUI/ObjectUI.py:1790
 msgid "Milling Tool"
 msgid "Milling Tool"
@@ -9206,8 +9156,6 @@ msgstr ""
 "başlatılmasını gerektirir."
 "başlatılmasını gerektirir."
 
 
 #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:64
 #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-#, fuzzy
-#| msgid "Precision INCH"
 msgid "Precision Inch"
 msgid "Precision Inch"
 msgstr "İNÇ Hassasiyet"
 msgstr "İNÇ Hassasiyet"
 
 
@@ -12105,15 +12053,6 @@ msgstr "Kalan Parça İşleme"
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
 #: appTools/ToolIsolation.py:3394 appTools/ToolNCC.py:4338
 #: appTools/ToolIsolation.py:3394 appTools/ToolNCC.py:4338
 #: appTools/ToolPaint.py:3079
 #: appTools/ToolPaint.py:3079
-#, fuzzy
-#| msgid ""
-#| "If checked, use 'rest machining'.\n"
-#| "Basically it will isolate outside PCB features,\n"
-#| "using the biggest tool and continue with the next tools,\n"
-#| "from bigger to smaller, to isolate the copper features that\n"
-#| "could not be cleared by previous tool, until there is\n"
-#| "no more copper features to isolate or there are no more tools.\n"
-#| "If not checked, use the standard algorithm."
 msgid ""
 msgid ""
 "If checked, use 'rest machining'.\n"
 "If checked, use 'rest machining'.\n"
 "Basically it will process copper outside PCB features,\n"
 "Basically it will process copper outside PCB features,\n"
@@ -12124,12 +12063,12 @@ msgid ""
 "\n"
 "\n"
 "If not checked, use the standard algorithm."
 "If not checked, use the standard algorithm."
 msgstr ""
 msgstr ""
-"Bu onay kutusu işaretlenirse, 'Kalan Parça İşleme' kullanılır.\n"
-"Bu, en büyük ucu kullanarak PCB'nin ana bakırını \n"
-"temizler ve temizlenecek daha fazla bakır kalmayana veya \n"
-"daha fazla uç kalmayana kadar önceki uçla temizlenemeyen\n"
-"bakır alanlarını temizlemek için bir sonraki uçla, daha büyükten\n"
-"daha küçüğe doğru ilerler.\n"
+"İşaretlenirse, 'Kalan Parça İşleme' kullanılır.\n"
+"Temel olarak, PCB özelliklerinin dışında kalan bakırları işleyecek.\n"
+"En büyük uçtan başlayarak ve büyükten küçüğe doğru kullanarak işlenecek "
+"hiçbir şey kalmayıncaya kadar veya önceki uçla temizlenemeyen bakırları "
+"işlemeye devam edecektir.\n"
+"\n"
 "Onay kutusu seçilmezse, standart algoritma kullanılır."
 "Onay kutusu seçilmezse, standart algoritma kullanılır."
 
 
 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:258
 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:258
@@ -13827,8 +13766,6 @@ msgstr "İptal edildi. G Kod üretimi için dört nokta gereklidir."
 #: app_Main.py:8652 app_Main.py:8694 app_Main.py:8736 app_Main.py:8777
 #: app_Main.py:8652 app_Main.py:8694 app_Main.py:8736 app_Main.py:8777
 #: app_Main.py:8822 app_Main.py:8867 app_Main.py:9330 app_Main.py:9334
 #: app_Main.py:8822 app_Main.py:8867 app_Main.py:9330 app_Main.py:9334
 #: camlib.py:2403 camlib.py:2471 camlib.py:2539 camlib.py:2617
 #: camlib.py:2403 camlib.py:2471 camlib.py:2539 camlib.py:2617
-#, fuzzy
-#| msgid "No object selected."
 msgid "No object is selected."
 msgid "No object is selected."
 msgstr "Hiçbir nesne seçilmedi."
 msgstr "Hiçbir nesne seçilmedi."
 
 
@@ -15134,10 +15071,8 @@ msgid "Starting G-Code"
 msgstr "G-Kodu başlatılıyor"
 msgstr "G-Kodu başlatılıyor"
 
 
 #: appTools/ToolDrilling.py:1673 appTools/ToolMilling.py:1355
 #: appTools/ToolDrilling.py:1673 appTools/ToolMilling.py:1355
-#, fuzzy
-#| msgid "Generating Excellon CNCJob..."
 msgid "Generating CNCJob..."
 msgid "Generating CNCJob..."
-msgstr "Excellon CNC İşi oluşturuluyor ..."
+msgstr "CNC İşi oluşturuluyor ..."
 
 
 #: appTools/ToolDrilling.py:1791 camlib.py:3214 camlib.py:3644 camlib.py:5730
 #: appTools/ToolDrilling.py:1791 camlib.py:3214 camlib.py:3644 camlib.py:5730
 msgid "The Toolchange X,Y format has to be (x, y)."
 msgid "The Toolchange X,Y format has to be (x, y)."
@@ -15406,20 +15341,12 @@ msgstr ""
 "Genişlik, her zaman bakır kaynağının genişliğinin iki katıdır."
 "Genişlik, her zaman bakır kaynağının genişliğinin iki katıdır."
 
 
 #: appTools/ToolFilm.py:160
 #: appTools/ToolFilm.py:160
-#, fuzzy
-#| msgid "No FlatCAM object selected. Load an object for Film and retry."
 msgid "Load an object for Film and retry."
 msgid "Load an object for Film and retry."
-msgstr ""
-"Hiçbir FlatCAM nesnesi seçilmedi. Film için bir nesne yükleyin ve tekrar "
-"deneyin."
+msgstr "Film için bir nesne yükleyin ve tekrar deneyin."
 
 
 #: appTools/ToolFilm.py:167
 #: appTools/ToolFilm.py:167
-#, fuzzy
-#| msgid "No FlatCAM object selected. Load an object for Box and retry."
 msgid "Load an object for Box and retry."
 msgid "Load an object for Box and retry."
-msgstr ""
-"Hiçbir FlatCAM nesnesi seçilmedi. Çerçeve için bir nesne yükleyin ve tekrar "
-"deneyin."
+msgstr "Çerçeve için bir nesne yükleyin ve tekrar deneyin."
 
 
 #: appTools/ToolFilm.py:182
 #: appTools/ToolFilm.py:182
 msgid "Generating Film ..."
 msgid "Generating Film ..."
@@ -15785,10 +15712,8 @@ msgid "Tool(s) deleted from Tool Table."
 msgstr "Uç(lar) Araçlar Tablosundan silindi."
 msgstr "Uç(lar) Araçlar Tablosundan silindi."
 
 
 #: appTools/ToolIsolation.py:1479
 #: appTools/ToolIsolation.py:1479
-#, fuzzy
-#| msgid "Isolation"
 msgid "Isolating"
 msgid "Isolating"
-msgstr "Yalıtım"
+msgstr "Yalıtılıyor"
 
 
 #: appTools/ToolIsolation.py:1499
 #: appTools/ToolIsolation.py:1499
 msgid "Following geometry was generated"
 msgid "Following geometry was generated"
@@ -16022,7 +15947,7 @@ msgstr "TAŞIMA işlemi iptal edildi. Taşınacak nesne (ler) yok."
 
 
 #: appTools/ToolMove.py:211
 #: appTools/ToolMove.py:211
 msgid "object was moved"
 msgid "object was moved"
-msgstr "nesne taşındı"
+msgstr "nesnesi taşındı"
 
 
 #: appTools/ToolMove.py:221
 #: appTools/ToolMove.py:221
 msgid "Error when mouse left click."
 msgid "Error when mouse left click."
@@ -16820,21 +16745,16 @@ msgid "Import Excellon"
 msgstr "Excellon'u İçe Aktar"
 msgstr "Excellon'u İçe Aktar"
 
 
 #: appTools/ToolPcbWizard.py:466
 #: appTools/ToolPcbWizard.py:466
-#, fuzzy
-#| msgid ""
-#| "Import in FlatCAM an Excellon file\n"
-#| "that store it's information's in 2 files.\n"
-#| "One usually has .DRL extension while\n"
-#| "the other has .INF extension."
 msgid ""
 msgid ""
 "Import an Excellon file\n"
 "Import an Excellon file\n"
 "that store it's information's in 2 files.\n"
 "that store it's information's in 2 files.\n"
 "One usually has .DRL extension while\n"
 "One usually has .DRL extension while\n"
 "the other has .INF extension."
 "the other has .INF extension."
 msgstr ""
 msgstr ""
-"FlatCAM'de, bilgileri 2 dosyada bulunan\n"
-"Excellon dosyasını içe aktarın. \n"
-"Birinde genellikle .DRL, diğerinde .INF uzantısı vardır."
+"Bilgilerinin 2 dosyada saklandığı \n"
+"bir Excellon dosyasını içe aktarın.\n"
+"Biri genellikle .DRL uzantısına sahipken\n"
+"diğeri .INF uzantısına sahiptir."
 
 
 #: appTools/ToolProperties.py:127
 #: appTools/ToolProperties.py:127
 msgid "Object Properties are displayed."
 msgid "Object Properties are displayed."
@@ -18196,10 +18116,8 @@ msgid "Adding New Grid cancelled"
 msgstr "Yeni ızgara ekleme işlemi iptal edildi"
 msgstr "Yeni ızgara ekleme işlemi iptal edildi"
 
 
 #: app_Main.py:6351
 #: app_Main.py:6351
-#, fuzzy
-#| msgid " Grid Value does not exist"
 msgid "Grid Value does not exist"
 msgid "Grid Value does not exist"
-msgstr " Izgara değeri mevcut değil"
+msgstr "Izgara değeri mevcut değil"
 
 
 #: app_Main.py:6353
 #: app_Main.py:6353
 msgid "Grid Value deleted"
 msgid "Grid Value deleted"
@@ -18214,8 +18132,6 @@ msgid "Key Shortcut List"
 msgstr "Klavye Kısayol Listesi"
 msgstr "Klavye Kısayol Listesi"
 
 
 #: app_Main.py:6401
 #: app_Main.py:6401
-#, fuzzy
-#| msgid "Name copied on clipboard ..."
 msgid "Name copied to clipboard ..."
 msgid "Name copied to clipboard ..."
 msgstr "İsim panoya kopyalandı ..."
 msgstr "İsim panoya kopyalandı ..."
 
 
@@ -18631,10 +18547,8 @@ msgstr ""
 "ediliyor."
 "ediliyor."
 
 
 #: app_Main.py:10387
 #: app_Main.py:10387
-#, fuzzy
-#| msgid " Open HPGL2 failed. Probable not a HPGL2 file."
 msgid "Failed. Probable not a HPGL2 file."
 msgid "Failed. Probable not a HPGL2 file."
-msgstr " HPGL2 açılamadı. Muhtemelen bir HPGL2 dosyası değil."
+msgstr "Başarısız oldu. Muhtemelen bir HPGL2 dosyası değil."
 
 
 #: app_Main.py:10413
 #: app_Main.py:10413
 msgid "TCL script file opened in Code Editor."
 msgid "TCL script file opened in Code Editor."