Merge remote-tracking branch 'remotes/jpcgt/flatcam/Beta' into Beta

This commit is contained in:
camellan 2020-06-04 21:58:50 +04:00
commit c706fff03d
208 changed files with 169264 additions and 169574 deletions

View File

@ -1,45 +0,0 @@
from AppTools.ToolCalculators import ToolCalculator
from AppTools.ToolCalibration import ToolCalibration
from AppTools.ToolDblSided import DblSidedTool
from AppTools.ToolExtractDrills import ToolExtractDrills
from AppTools.ToolAlignObjects import AlignObjects
from AppTools.ToolFilm import Film
from AppTools.ToolImage import ToolImage
from AppTools.ToolDistance import Distance
from AppTools.ToolDistanceMin import DistanceMin
from AppTools.ToolMove import ToolMove
from AppTools.ToolCutOut import CutOut
from AppTools.ToolNCC import NonCopperClear
from AppTools.ToolPaint import ToolPaint
from AppTools.ToolIsolation import ToolIsolation
from AppTools.ToolOptimal import ToolOptimal
from AppTools.ToolPanelize import Panelize
from AppTools.ToolPcbWizard import PcbWizard
from AppTools.ToolPDF import ToolPDF
from AppTools.ToolProperties import Properties
from AppTools.ToolQRCode import QRCode
from AppTools.ToolRulesCheck import RulesCheck
from AppTools.ToolCopperThieving import ToolCopperThieving
from AppTools.ToolFiducials import ToolFiducials
from AppTools.ToolShell import FCShell
from AppTools.ToolSolderPaste import SolderPaste
from AppTools.ToolSub import ToolSub
from AppTools.ToolTransform import ToolTransform
from AppTools.ToolPunchGerber import ToolPunchGerber
from AppTools.ToolInvertGerber import ToolInvertGerber
from AppTools.ToolCorners import ToolCorners
from AppTools.ToolEtchCompensation import ToolEtchCompensation

View File

@ -1,5 +1,5 @@
from PyQt5 import QtGui, QtCore, QtWidgets
from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog
from appGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog
import sys
import webbrowser
@ -7,7 +7,7 @@ import webbrowser
from copy import deepcopy
from datetime import datetime
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -7,6 +7,28 @@ CHANGELOG for FlatCAM beta
=================================================
4.06.2020
- improved the Isolation Tool - rest machining: test if the isolated polygon has interiors (holes) and if those can't be isolated too then mark the polygon as a rest geometry to be isolated with the next tool and so on
- updated the French translation strings - from @micmac (Michel Maciejewski)
3.06.2020
- updated Transform Tool to have a selection of possible references for the transformations that are now selectable in the GUI
- Transform Tool - compacted the UI
- minor issue in Paint Tool
- added a new feature for Gerber parsing: if the NO buffering is chosen in the Gerber Advanced Preferences there is now a checkbox to activate delayed buffering which will do the buffering in background allowing the user to work in between. I hope that this can be useful in case of large Gerber files.
- made the delayed Gerber buffering to use multiprocessing but I see not much performance increase
- made sure that the status bar label for preferences is updated also when the Preferences Tab is opened from the Edit -> Preferences
- remade file names in the app
- fixed the issue with factory_defaults being saved every time the app start
- fixed the preferences not being saved to a file when the Save button is pressed in Edit -> Preferences
- fixed and updated the Transform Tools in the Editors
- updated the language translation strings (and Google_Translated some of them)
- made sure that if the user closes the app with an editor open, before the exit the editor is closed and signals disconnected
- updated the Italian translation - contribution by Golfetto Massimiliano
- made the timing for the object creation to be displayed in the shell
2.06.2020
- Tcl Shell - added a button to delete the content of the active line

View File

@ -15,15 +15,15 @@ from PyQt5 import QtCore
from shapely.geometry import Polygon, Point, LineString
from shapely.ops import unary_union
from AppGUI.VisPyVisuals import ShapeCollection
from AppTool import AppTool
from appGUI.VisPyVisuals import ShapeCollection
from appTool import AppTool
from copy import deepcopy
import numpy as np
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -156,7 +156,7 @@ class ExclusionAreas(QtCore.QObject):
except AttributeError:
self.exclusion_shapes = None
else:
from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
from appGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.exclusion_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="exclusion")
# Event signals disconnect id holders

View File

@ -3,8 +3,8 @@ import os
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings, Qt
from App_Main import App
from AppGUI import VisPyPatches
from app_Main import App
from appGUI import VisPyPatches
from multiprocessing import freeze_support
# import copyreg

View File

@ -1,5 +1,5 @@
from PyQt5 import QtGui, QtCore, QtWidgets
from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
from appGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
FCTree, RadioSet, FCFileSaveDialog
from camlib import to_dict
@ -11,7 +11,7 @@ from datetime import datetime
import math
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -2074,7 +2074,7 @@ class ToolsDB2(QtWidgets.QWidget):
if self.db_tool_dict:
self.storage_to_form(self.db_tool_dict['1'])
# Enable AppGUI
# Enable appGUI
self.basic_box.setEnabled(True)
self.advanced_box.setEnabled(True)
self.ncc_box.setEnabled(True)
@ -2085,7 +2085,7 @@ class ToolsDB2(QtWidgets.QWidget):
# self.tree_widget.setFocus()
else:
# Disable AppGUI
# Disable appGUI
self.basic_box.setEnabled(False)
self.advanced_box.setEnabled(False)
self.ncc_box.setEnabled(False)

View File

@ -9,9 +9,9 @@ from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt, QSettings
from camlib import distance, arc, FlatCAMRTreeStorage
from AppGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner
from AppEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor
from AppParsers.ParseExcellon import Excellon
from appGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner
from appEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor
from appParsers.ParseExcellon import Excellon
from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon, Point
import shapely.affinity as affinity
@ -26,7 +26,7 @@ import logging
from copy import deepcopy
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -2123,7 +2123,7 @@ class FlatCAMExcEditor(QtCore.QObject):
else:
self.tool_shape = self.app.plotcanvas.new_shape_collection(layers=1)
else:
from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
from appGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_exc_editor')
self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_exc_editor')
@ -2312,7 +2312,7 @@ class FlatCAMExcEditor(QtCore.QObject):
tool_dia = float('%.*f' % (self.decimals, v['C']))
self.tool2tooldia[int(k)] = tool_dia
# Init AppGUI
# Init appGUI
self.addtool_entry.set_value(float(self.app.defaults['excellon_editor_newdia']))
self.drill_array_size_entry.set_value(int(self.app.defaults['excellon_editor_array_size']))
self.drill_axis_radio.set_value(self.app.defaults['excellon_editor_lin_dir'])
@ -3043,7 +3043,7 @@ class FlatCAMExcEditor(QtCore.QObject):
self.set_ui()
# now that we hava data, create the AppGUI interface and add it to the Tool Tab
# now that we hava data, create the appGUI interface and add it to the Tool Tab
self.build_ui(first_run=True)
# we activate this after the initial build as we don't need to see the tool been populated
@ -4026,7 +4026,7 @@ class FlatCAMExcEditor(QtCore.QObject):
def select_tool(self, toolname):
"""
Selects a drawing tool. Impacts the object and AppGUI.
Selects a drawing tool. Impacts the object and appGUI.
:param toolname: Name of the tool.
:return: None

View File

@ -5,7 +5,7 @@
# MIT Licence #
# ##########################################################
from AppGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber
from appGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber
from PyQt5 import QtPrintSupport, QtWidgets, QtCore, QtGui
from reportlab.platypus import SimpleDocTemplate, Paragraph
@ -15,7 +15,7 @@ from reportlab.lib.units import inch, mm
# from io import StringIO
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -23,7 +23,7 @@ import html
import sys
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
log = logging.getLogger('base')
@ -673,7 +673,7 @@ class NumericalEvalEntry(EvalEntry):
class NumericalEvalTupleEntry(FCEntry):
"""
Will evaluate the input and return a value. Accepts only float numbers and formulas using the operators: /,*,+,-,%
Will return a text value. Accepts only float numbers and formulas using the operators: /,*,+,-,%
"""
def __init__(self, border_color=None):
super().__init__(border_color=border_color)
@ -2712,14 +2712,14 @@ class DialogBoxRadio(QtWidgets.QDialog):
"If the reference is Relative then the Jump will be at the (x,y) distance\n"
"from the current mouse location point.")
)
self.lineEdit = EvalEntry(self)
self.lineEdit = EvalEntry(parent=self)
self.lineEdit.setText(str(self.location).replace('(', '').replace(')', ''))
self.lineEdit.selectAll()
self.lineEdit.setFocus()
self.form.addRow(self.loc_label, self.lineEdit)
self.button_box = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel,
Qt.Horizontal, parent=self)
orientation=Qt.Horizontal, parent=self)
self.form.addRow(self.button_box)
self.button_box.accepted.connect(self.accept)

View File

@ -12,28 +12,28 @@
# ##########################################################
import platform
from AppGUI.GUIElements import *
from AppGUI.preferences import settings
from AppGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI
from AppGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI
from AppGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI
from AppGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI
from AppGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI
from AppEditors.FlatCAMGeoEditor import FCShapeTool
from appGUI.GUIElements import *
from appGUI.preferences import settings
from appGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI
from appGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI
from appGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI
from appGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI
from appGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI
from appEditors.FlatCAMGeoEditor import FCShapeTool
from matplotlib.backend_bases import KeyEvent as mpl_key_event
import webbrowser
from AppGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI
from AppGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI
from AppGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI
from AppObjects.ObjectCollection import KeySensitiveListView
from appGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI
from appGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI
from appGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI
from appObjects.ObjectCollection import KeySensitiveListView
import subprocess
import os
import sys
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -1733,7 +1733,7 @@ class MainGUI(QtWidgets.QMainWindow):
self.app.defaults["global_def_win_h"])
self.splitter.setSizes([self.app.defaults["global_def_notebook_width"], 0])
except KeyError as e:
log.debug("AppGUI.MainGUI.restore_main_win_geom() --> %s" % str(e))
log.debug("appGUI.MainGUI.restore_main_win_geom() --> %s" % str(e))
def restore_toolbar_view(self):
"""
@ -2475,7 +2475,7 @@ class MainGUI(QtWidgets.QMainWindow):
# Delete from canvas
if key == 'Delete':
# Delete via the application to
# ensure cleanup of the AppGUI
# ensure cleanup of the appGUI
if active:
active.app.on_delete()

View File

@ -11,11 +11,11 @@
# Date: 3/10/2019 #
# ##########################################################
from AppGUI.GUIElements import *
from appGUI.GUIElements import *
import sys
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -8,12 +8,12 @@
from PyQt5 import QtCore
import logging
from AppGUI.VisPyCanvas import VisPyCanvas, Color
from AppGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
from appGUI.VisPyCanvas import VisPyCanvas, Color
from appGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
from vispy.scene.visuals import InfiniteLine, Line, Rectangle, Text
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
import numpy as np

View File

@ -22,7 +22,7 @@ import logging
import numpy as np
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
# Prevent conflict with Qt5 and above.

View File

@ -13,7 +13,7 @@ from vispy.color import Color
from shapely.geometry import Polygon, LineString, LinearRing
import threading
import numpy as np
from AppGUI.VisPyTesselators import GLUTess
from appGUI.VisPyTesselators import GLUTess
class FlatCAMLineVisual(LineVisual):

View File

@ -3,11 +3,11 @@ from typing import Union, Sequence, List
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner, FCColorEntry, \
from appGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner, FCColorEntry, \
FCSliderWithSpinner, FCDoubleSpinner, FloatEntry, FCTextArea
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -11,10 +11,10 @@ from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
from AppGUI.preferences.OptionUI import OptionUI
from appGUI.preferences.OptionUI import OptionUI
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:

View File

@ -1,9 +1,9 @@
from typing import Dict
from PyQt5 import QtWidgets, QtCore
from AppGUI.ColumnarFlowLayout import ColumnarFlowLayout
from AppGUI.preferences.OptionUI import OptionUI
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.ColumnarFlowLayout import ColumnarFlowLayout
from appGUI.preferences.OptionUI import OptionUI
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
class PreferencesSectionUI(QtWidgets.QWidget):

View File

@ -5,7 +5,7 @@ from defaults import FlatCAMDefaults
import logging
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -18,7 +18,7 @@ if settings.contains("machinist"):
else:
machinist_setting = 0
log = logging.getLogger('PreferencesUIManager')
log = logging.getLogger('base2')
class PreferencesUIManager:
@ -138,6 +138,7 @@ class PreferencesUIManager:
# "gerber_aperture_buffer_factor": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffer_aperture_entry,
"gerber_follow": self.ui.gerber_defaults_form.gerber_adv_opt_group.follow_cb,
"gerber_buffering": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffering_radio,
"gerber_delayed_buffering": self.ui.gerber_defaults_form.gerber_adv_opt_group.delayed_buffer_cb,
"gerber_simplification": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplify_cb,
"gerber_simp_tolerance": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplification_tol_spinner,
@ -445,17 +446,23 @@ class PreferencesUIManager:
"tools_calc_electro_growth": self.ui.tools_defaults_form.tools_calculators_group.growth_entry,
# Transformations Tool
"tools_transform_reference": self.ui.tools_defaults_form.tools_transform_group.ref_combo,
"tools_transform_ref_object": self.ui.tools_defaults_form.tools_transform_group.type_obj_combo,
"tools_transform_ref_point": self.ui.tools_defaults_form.tools_transform_group.point_entry,
"tools_transform_rotate": self.ui.tools_defaults_form.tools_transform_group.rotate_entry,
"tools_transform_skew_x": self.ui.tools_defaults_form.tools_transform_group.skewx_entry,
"tools_transform_skew_y": self.ui.tools_defaults_form.tools_transform_group.skewy_entry,
"tools_transform_skew_link": self.ui.tools_defaults_form.tools_transform_group.skew_link_cb,
"tools_transform_scale_x": self.ui.tools_defaults_form.tools_transform_group.scalex_entry,
"tools_transform_scale_y": self.ui.tools_defaults_form.tools_transform_group.scaley_entry,
"tools_transform_scale_link": self.ui.tools_defaults_form.tools_transform_group.link_cb,
"tools_transform_scale_reference": self.ui.tools_defaults_form.tools_transform_group.reference_cb,
"tools_transform_scale_link": self.ui.tools_defaults_form.tools_transform_group.scale_link_cb,
"tools_transform_offset_x": self.ui.tools_defaults_form.tools_transform_group.offx_entry,
"tools_transform_offset_y": self.ui.tools_defaults_form.tools_transform_group.offy_entry,
"tools_transform_mirror_reference": self.ui.tools_defaults_form.tools_transform_group.mirror_reference_cb,
"tools_transform_mirror_point": self.ui.tools_defaults_form.tools_transform_group.flip_ref_entry,
"tools_transform_buffer_dis": self.ui.tools_defaults_form.tools_transform_group.buffer_entry,
"tools_transform_buffer_factor": self.ui.tools_defaults_form.tools_transform_group.buffer_factor_entry,
"tools_transform_buffer_corner": self.ui.tools_defaults_form.tools_transform_group.buffer_rounded_cb,
@ -622,9 +629,9 @@ class PreferencesUIManager:
Will set the values for all the GUI elements in Preferences GUI based on the values found in the
self.defaults dictionary.
:param factor: will apply a factor to the values that written in the GUI elements
:param fl_units: current measuring units in FlatCAM: Metric or Inch
:param source_dict: the repository of options, usually is the self.defaults
:param factor: will apply a factor to the values that written in the GUI elements
:param fl_units: current measuring units in FlatCAM: Metric or Inch
:param source_dict: the repository of options, usually is the self.defaults
:return: None
"""
@ -640,18 +647,18 @@ class PreferencesUIManager:
"""
Basically it is the worker in the self.defaults_write_form()
:param field: the GUI element in Preferences GUI to be updated
:param factor: factor to be applied to the field parameter
:param units: current FlatCAM measuring units
:param defaults_dict: the defaults storage
:return: None, it updates GUI elements
:param field: the GUI element in Preferences GUI to be updated
:param factor: factor to be applied to the field parameter
:param units: current FlatCAM measuring units
:param defaults_dict: the defaults storage
:return: None, it updates GUI elements
"""
def_dict = self.defaults if defaults_dict is None else defaults_dict
try:
value = def_dict[field]
log.debug("value is " + str(value) + " and factor is "+str(factor))
# log.debug("value is " + str(value) + " and factor is "+str(factor))
if factor is not None:
value *= factor
@ -668,7 +675,7 @@ class PreferencesUIManager:
def show_preferences_gui(self):
"""
Called to initialize and show the Preferences AppGUI
Called to initialize and show the Preferences appGUI
:return: None
"""
@ -899,13 +906,13 @@ class PreferencesUIManager:
self.ui.general_defaults_form.general_app_group.ge_radio.set_value(ge)
if save_to_file or should_restart is True:
# Re-fresh project options
self.ui.app.on_options_app2project()
self.save_defaults(silent=False)
# load the defaults so they are updated into the app
self.defaults.load(filename=os.path.join(self.data_path, 'current_defaults.FlatConfig'))
# Re-fresh project options
self.ui.app.on_options_app2project()
settgs = QSettings("Open Source", "FlatCAM")
# save the notebook font size
@ -995,7 +1002,6 @@ class PreferencesUIManager:
:param first_time: Boolean. If True will execute some code when the app is run first time
:return: None
"""
self.defaults.report_usage("save_defaults")
log.debug("App.PreferencesUIManager.save_defaults()")
if data_path is None:

View File

@ -1,6 +1,6 @@
from AppGUI.GUIElements import *
from appGUI.GUIElements import *
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins

View File

@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings, Qt
from AppGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCSliderWithSpinner, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCSliderWithSpinner, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCTextArea
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCTextArea
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,8 +1,8 @@
from PyQt5 import QtWidgets
from AppGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI
from AppGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI
from AppGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI
from appGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI
from appGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI
from appGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI
class CNCJobPreferencesUI(QtWidgets.QWidget):

View File

@ -1,10 +1,10 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, FCCheckBox, NumericalEvalTupleEntry, NumericalEvalEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, RadioSet, FCCheckBox, NumericalEvalTupleEntry, NumericalEvalEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -3,10 +3,10 @@ import platform
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QSettings
from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \
FCComboBox, NumericalEvalTupleEntry
from AppGUI.preferences import machinist_setting
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.preferences import machinist_setting
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,14 +1,14 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI
from AppGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI
from AppGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI
from AppGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI
from AppGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI
from appGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI
from appGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI
from appGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI
from appGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI
from appGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,13 +1,13 @@
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \
from appGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \
FCColorEntry
from AppGUI.preferences import settings
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.preferences import settings
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -193,7 +193,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
self.notebook_font_size_label = QtWidgets.QLabel('%s:' % _('Notebook'))
self.notebook_font_size_label.setToolTip(
_("This sets the font size for the elements found in the Notebook.\n"
"The notebook is the collapsible area in the left side of the AppGUI,\n"
"The notebook is the collapsible area in the left side of the GUI,\n"
"and include the Project, Selected and Tool tabs.")
)
@ -232,7 +232,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
# TextBox Font Size
self.textbox_font_size_label = QtWidgets.QLabel('%s:' % _('Textbox'))
self.textbox_font_size_label.setToolTip(
_("This sets the font size for the Textbox AppGUI\n"
_("This sets the font size for the Textbox GUI\n"
"elements that are used in the application.")
)

View File

@ -3,12 +3,12 @@ import sys
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \
from appGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \
FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,13 +1,13 @@
from PyQt5 import QtCore
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import OptionalInputSection
from AppGUI.preferences import settings
from AppGUI.preferences.OptionUI import *
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI2
from appGUI.GUIElements import OptionalInputSection
from appGUI.preferences import settings
from appGUI.preferences.OptionUI import *
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI2
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings, Qt
from AppGUI.GUIElements import RadioSet, FCCheckBox, FCComboBox, FCSliderWithSpinner, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCCheckBox, FCComboBox, FCSliderWithSpinner, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI
from AppGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI
from AppGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI
from appGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI
from appGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI
from appGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel, NumericalEvalTupleEntry, \
from appGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel, NumericalEvalTupleEntry, \
NumericalEvalEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,13 +1,13 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCSpinner, FCComboBox, \
from appGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCSpinner, FCComboBox, \
NumericalEvalTupleEntry
from AppGUI.preferences import machinist_setting
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.preferences import machinist_setting
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,13 +1,13 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI
from AppGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI
from AppGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI
from AppGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI
from appGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI
from appGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI
from appGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI
from appGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -76,6 +76,13 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI):
grid0.addWidget(buffering_label, 9, 0)
grid0.addWidget(self.buffering_radio, 9, 1)
# Delayed Buffering
self.delayed_buffer_cb = FCCheckBox(label=_('Delayed Buffering'))
self.delayed_buffer_cb.setToolTip(
_("When checked it will do the buffering in background.")
)
grid0.addWidget(self.delayed_buffer_cb, 10, 0, 1, 2)
# Simplification
self.simplify_cb = FCCheckBox(label=_('Simplify'))
self.simplify_cb.setToolTip(
@ -83,7 +90,7 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI):
"loaded with simplification having a set tolerance.\n"
"<<WARNING>>: Don't change this unless you know what you are doing !!!")
)
grid0.addWidget(self.simplify_cb, 10, 0, 1, 2)
grid0.addWidget(self.simplify_cb, 11, 0, 1, 2)
# Simplification tolerance
self.simplification_tol_label = QtWidgets.QLabel(_('Tolerance'))
@ -95,8 +102,8 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI):
self.simplification_tol_spinner.setRange(0.00000, 0.01000)
self.simplification_tol_spinner.setSingleStep(0.0001)
grid0.addWidget(self.simplification_tol_label, 11, 0)
grid0.addWidget(self.simplification_tol_spinner, 11, 1)
grid0.addWidget(self.simplification_tol_label, 12, 0)
grid0.addWidget(self.simplification_tol_spinner, 12, 1)
self.ois_simplif = OptionalInputSection(
self.simplify_cb,
[
@ -105,3 +112,12 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI):
logic=True)
self.layout.addStretch()
# signals
self.buffering_radio.activated_custom.connect(self.on_buffering_change)
def on_buffering_change(self, val):
if val == 'no':
self.delayed_buffer_cb.setDisabled(False)
else:
self.delayed_buffer_cb.setDisabled(True)

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry, FCSliderWithSpinner, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox, FCComboBox
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox, FCComboBox
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,14 +1,14 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI
from AppGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI
from AppGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI
from AppGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI
from AppGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI
from appGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI
from appGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI
from appGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI
from appGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI
from appGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,18 +1,18 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI
from AppGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI
from AppGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI
from AppGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI
from AppGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI
from AppGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI
from AppGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI
from AppGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI
from AppGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI
from appGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI
from appGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI
from appGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI
from appGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI
from appGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI
from appGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI
from appGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI
from appGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI
from appGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt, QSettings
from AppGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox, FCDoubleSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox
from AppGUI.preferences import machinist_setting
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox
from appGUI.preferences import machinist_setting
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt, QSettings
from AppGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox, FCColorEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox, FCColorEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,22 +1,22 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI
from AppGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI
from AppGUI.preferences.tools.ToolsCornersPrefGroupUI import ToolsCornersPrefGroupUI
from AppGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI
from AppGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI
from AppGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI
from AppGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI
from AppGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI
from appGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI
from appGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI
from appGUI.preferences.tools.ToolsCornersPrefGroupUI import ToolsCornersPrefGroupUI
from appGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI
from appGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI
from appGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI
from appGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI
from appGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI
from AppGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI
from AppGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI
from AppGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI
from AppGUI.preferences.tools.ToolsISOPrefGroupUI import ToolsISOPrefGroupUI
from appGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI
from appGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI
from appGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI
from appGUI.preferences.tools.ToolsISOPrefGroupUI import ToolsISOPrefGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, FCComboBox, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, FCSpinner, FCComboBox, NumericalEvalTupleEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCCheckBox
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCCheckBox
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry, FCComboBox
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -40,10 +40,53 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
grid0.setColumnStretch(0, 0)
grid0.setColumnStretch(1, 1)
# ## Rotate Angle
# Reference Type
ref_label = QtWidgets.QLabel('%s:' % _("Reference"))
ref_label.setToolTip(
_("The reference point for Rotate, Skew, Scale, Mirror.\n"
"Can be:\n"
"- Origin -> it is the 0, 0 point\n"
"- Selection -> the center of the bounding box of the selected objects\n"
"- Point -> a custom point defined by X,Y coordinates\n"
"- Object -> the center of the bounding box of a specific object")
)
self.ref_combo = FCComboBox()
self.ref_items = [_("Origin"), _("Selection"), _("Point"), _("Object")]
self.ref_combo.addItems(self.ref_items)
grid0.addWidget(ref_label, 0, 0)
grid0.addWidget(self.ref_combo, 0, 1)
self.point_label = QtWidgets.QLabel('%s:' % _("Point"))
self.point_label.setToolTip(
_("A point of reference in format X,Y.")
)
self.point_entry = NumericalEvalTupleEntry()
grid0.addWidget(self.point_label, 1, 0)
grid0.addWidget(self.point_entry, 1, 1)
# Type of object to be used as reference
self.type_object_label = QtWidgets.QLabel('%s:' % _("Object"))
self.type_object_label.setToolTip(
_("The type of object used as reference.")
)
self.type_obj_combo = FCComboBox()
self.type_obj_combo.addItem(_("Gerber"))
self.type_obj_combo.addItem(_("Excellon"))
self.type_obj_combo.addItem(_("Geometry"))
self.type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/drill16.png"))
self.type_obj_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
grid0.addWidget(self.type_object_label, 3, 0)
grid0.addWidget(self.type_obj_combo, 3, 1)
# ## Rotate Angle
rotate_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Rotate"))
grid0.addWidget(rotate_title_lbl, 0, 0, 1, 2)
grid0.addWidget(rotate_title_lbl, 4, 0, 1, 2)
self.rotate_entry = FCDoubleSpinner()
self.rotate_entry.set_range(-360.0, 360.0)
@ -57,12 +100,21 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
"Positive numbers for CW motion.\n"
"Negative numbers for CCW motion.")
)
grid0.addWidget(self.rotate_label, 1, 0)
grid0.addWidget(self.rotate_entry, 1, 1)
grid0.addWidget(self.rotate_label, 6, 0)
grid0.addWidget(self.rotate_entry, 6, 1)
# ## Skew/Shear Angle on X axis
skew_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Skew"))
grid0.addWidget(skew_title_lbl, 2, 0, 1, 2)
grid0.addWidget(skew_title_lbl, 8, 0)
# ## Link Skew factors
self.skew_link_cb = FCCheckBox()
self.skew_link_cb.setText(_("Link"))
self.skew_link_cb.setToolTip(
_("Link the Y entry to X entry and copy its content.")
)
grid0.addWidget(self.skew_link_cb, 8, 1)
self.skewx_entry = FCDoubleSpinner()
self.skewx_entry.set_range(-360.0, 360.0)
@ -74,8 +126,8 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
_("Angle for Skew action, in degrees.\n"
"Float number between -360 and 359.")
)
grid0.addWidget(self.skewx_label, 3, 0)
grid0.addWidget(self.skewx_entry, 3, 1)
grid0.addWidget(self.skewx_label, 9, 0)
grid0.addWidget(self.skewx_entry, 9, 1)
# ## Skew/Shear Angle on Y axis
self.skewy_entry = FCDoubleSpinner()
@ -88,12 +140,19 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
_("Angle for Skew action, in degrees.\n"
"Float number between -360 and 359.")
)
grid0.addWidget(self.skewy_label, 4, 0)
grid0.addWidget(self.skewy_entry, 4, 1)
grid0.addWidget(self.skewy_label, 10, 0)
grid0.addWidget(self.skewy_entry, 10, 1)
# ## Scale
scale_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Scale"))
grid0.addWidget(scale_title_lbl, 5, 0, 1, 2)
grid0.addWidget(scale_title_lbl, 12, 0)
# ## Link Scale factors
self.scale_link_cb = FCCheckBox(_("Link"))
self.scale_link_cb.setToolTip(
_("Link the Y entry to X entry and copy its content.")
)
grid0.addWidget(self.scale_link_cb, 12, 1)
self.scalex_entry = FCDoubleSpinner()
self.scalex_entry.set_range(0, 9999.9999)
@ -104,8 +163,8 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.scalex_label.setToolTip(
_("Factor for scaling on X axis.")
)
grid0.addWidget(self.scalex_label, 6, 0)
grid0.addWidget(self.scalex_entry, 6, 1)
grid0.addWidget(self.scalex_label, 14, 0)
grid0.addWidget(self.scalex_entry, 14, 1)
# ## Scale factor on X axis
self.scaley_entry = FCDoubleSpinner()
@ -117,30 +176,12 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.scaley_label.setToolTip(
_("Factor for scaling on Y axis.")
)
grid0.addWidget(self.scaley_label, 7, 0)
grid0.addWidget(self.scaley_entry, 7, 1)
# ## Link Scale factors
self.link_cb = FCCheckBox(_("Link"))
self.link_cb.setToolTip(
_("Scale the selected object(s)\n"
"using the Scale_X factor for both axis.")
)
grid0.addWidget(self.link_cb, 8, 0)
# ## Scale Reference
self.reference_cb = FCCheckBox('%s' % _("Scale Reference"))
self.reference_cb.setToolTip(
_("Scale the selected object(s)\n"
"using the origin reference when checked,\n"
"and the center of the biggest bounding box\n"
"of the selected objects when unchecked.")
)
grid0.addWidget(self.reference_cb, 8, 1)
grid0.addWidget(self.scaley_label, 16, 0)
grid0.addWidget(self.scaley_entry, 16, 1)
# ## Offset
offset_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Offset"))
grid0.addWidget(offset_title_lbl, 9, 0, 1, 2)
grid0.addWidget(offset_title_lbl, 20, 0, 1, 2)
self.offx_entry = FCDoubleSpinner()
self.offx_entry.set_range(-9999.9999, 9999.9999)
@ -151,8 +192,8 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.offx_label.setToolTip(
_("Distance to offset on X axis. In current units.")
)
grid0.addWidget(self.offx_label, 10, 0)
grid0.addWidget(self.offx_entry, 10, 1)
grid0.addWidget(self.offx_label, 22, 0)
grid0.addWidget(self.offx_entry, 22, 1)
# ## Offset distance on Y axis
self.offy_entry = FCDoubleSpinner()
@ -164,41 +205,23 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.offy_label.setToolTip(
_("Distance to offset on Y axis. In current units.")
)
grid0.addWidget(self.offy_label, 11, 0)
grid0.addWidget(self.offy_entry, 11, 1)
# ## Mirror
mirror_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Mirror"))
grid0.addWidget(mirror_title_lbl, 12, 0, 1, 2)
# ## Mirror (Flip) Reference Point
self.mirror_reference_cb = FCCheckBox('%s' % _("Mirror Reference"))
self.mirror_reference_cb.setToolTip(
_("Flip the selected object(s)\n"
"around the point in Point Entry Field.\n"
"\n"
"The point coordinates can be captured by\n"
"left click on canvas together with pressing\n"
"SHIFT key. \n"
"Then click Add button to insert coordinates.\n"
"Or enter the coords in format (x, y) in the\n"
"Point Entry field and click Flip on X(Y)"))
grid0.addWidget(self.mirror_reference_cb, 13, 0, 1, 2)
self.flip_ref_label = QtWidgets.QLabel('%s' % _("Mirror Reference point"))
self.flip_ref_label.setToolTip(
_("Coordinates in format (x, y) used as reference for mirroring.\n"
"The 'x' in (x, y) will be used when using Flip on X and\n"
"the 'y' in (x, y) will be used when using Flip on Y and")
)
self.flip_ref_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid0.addWidget(self.flip_ref_label, 14, 0, 1, 2)
grid0.addWidget(self.flip_ref_entry, 15, 0, 1, 2)
grid0.addWidget(self.offy_label, 24, 0)
grid0.addWidget(self.offy_entry, 24, 1)
# ## Buffer
buffer_title_lbl = QtWidgets.QLabel('<b>%s</b>' % _("Buffer"))
grid0.addWidget(buffer_title_lbl, 16, 0, 1, 2)
grid0.addWidget(buffer_title_lbl, 26, 0)
self.buffer_rounded_cb = FCCheckBox()
self.buffer_rounded_cb.setText('%s' % _("Rounded"))
self.buffer_rounded_cb.setToolTip(
_("If checked then the buffer will surround the buffered shape,\n"
"every corner will be rounded.\n"
"If not checked then the buffer will follow the exact geometry\n"
"of the buffered shape.")
)
grid0.addWidget(self.buffer_rounded_cb, 26, 1)
self.buffer_label = QtWidgets.QLabel('%s:' % _("Distance"))
self.buffer_label.setToolTip(
@ -214,8 +237,8 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.buffer_entry.setWrapping(True)
self.buffer_entry.set_range(-9999.9999, 9999.9999)
grid0.addWidget(self.buffer_label, 17, 0)
grid0.addWidget(self.buffer_entry, 17, 1)
grid0.addWidget(self.buffer_label, 28, 0)
grid0.addWidget(self.buffer_entry, 28, 1)
self.buffer_factor_label = QtWidgets.QLabel('%s:' % _("Value"))
self.buffer_factor_label.setToolTip(
@ -232,18 +255,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
self.buffer_factor_entry.setWrapping(True)
self.buffer_factor_entry.setSingleStep(1)
grid0.addWidget(self.buffer_factor_label, 18, 0)
grid0.addWidget(self.buffer_factor_entry, 18, 1)
self.buffer_rounded_cb = FCCheckBox()
self.buffer_rounded_cb.setText('%s' % _("Rounded"))
self.buffer_rounded_cb.setToolTip(
_("If checked then the buffer will surround the buffered shape,\n"
"every corner will be rounded.\n"
"If not checked then the buffer will follow the exact geometry\n"
"of the buffered shape.")
)
grid0.addWidget(self.buffer_rounded_cb, 19, 0, 1, 2)
grid0.addWidget(self.buffer_factor_label, 30, 0)
grid0.addWidget(self.buffer_factor_entry, 30, 1)
self.layout.addStretch()

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCButton, FCTextArea, FCEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCButton, FCTextArea, FCEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
from appGUI.GUIElements import FCButton, FCTextArea, FCEntry
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -1,9 +1,9 @@
from PyQt5 import QtWidgets
from AppGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI
from AppGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI
from AppGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI
from AppGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI
from appGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI
from appGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI
from appGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI
from appGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI
class UtilPreferencesUI(QtWidgets.QWidget):

View File

@ -8,20 +8,20 @@
# ###########################################################
from PyQt5 import QtCore
from AppObjects.ObjectCollection import *
from AppObjects.FlatCAMCNCJob import CNCJobObject
from AppObjects.FlatCAMDocument import DocumentObject
from AppObjects.FlatCAMExcellon import ExcellonObject
from AppObjects.FlatCAMGeometry import GeometryObject
from AppObjects.FlatCAMGerber import GerberObject
from AppObjects.FlatCAMScript import ScriptObject
from appObjects.ObjectCollection import *
from appObjects.FlatCAMCNCJob import CNCJobObject
from appObjects.FlatCAMDocument import DocumentObject
from appObjects.FlatCAMExcellon import ExcellonObject
from appObjects.FlatCAMGeometry import GeometryObject
from appObjects.FlatCAMGerber import GerberObject
from appObjects.FlatCAMScript import ScriptObject
import time
import traceback
# FlatCAM Translation
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -137,7 +137,9 @@ class AppObject(QtCore.QObject):
return "fail"
t2 = time.time()
log.debug("%f seconds executing initialize()." % (t2 - t1))
msg = "%f seconds executing initialize()." % (t2 - t1)
log.debug(msg)
self.app.shell_message(msg)
if return_value == 'fail':
log.debug("Object (%s) parsing and/or geometry creation failed." % kind)
@ -353,9 +355,14 @@ class AppObject(QtCore.QObject):
t_obj.plot()
t1 = time.time() # DEBUG
log.debug("%f seconds adding object and plotting." % (t1 - t0))
msg = "%f seconds adding object and plotting." % (t1 - t0)
log.debug(msg)
self.object_plotted.emit(t_obj)
if t_obj.kind == 'gerber' and self.app.defaults["gerber_buffering"] != 'full' and \
self.app.defaults["gerber_delayed_buffering"]:
t_obj.do_buffer_signal.emit()
# Send to worker
# self.worker.add_task(worker_task, [self])
if plot is True:

View File

@ -14,8 +14,8 @@ from copy import deepcopy
from io import StringIO
from datetime import datetime
from AppEditors.FlatCAMTextEditor import TextEditor
from AppObjects.FlatCAMObj import *
from appEditors.FlatCAMTextEditor import TextEditor
from appObjects.FlatCAMObj import *
from camlib import CNCjob
@ -24,7 +24,7 @@ import sys
import math
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -10,11 +10,11 @@
# File modified by: Marius Stanciu #
# ##########################################################
from AppEditors.FlatCAMTextEditor import TextEditor
from AppObjects.FlatCAMObj import *
from appEditors.FlatCAMTextEditor import TextEditor
from appObjects.FlatCAMObj import *
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -15,14 +15,14 @@ from shapely.geometry import Point, LineString
from copy import deepcopy
from AppParsers.ParseExcellon import Excellon
from AppObjects.FlatCAMObj import *
from appParsers.ParseExcellon import Excellon
from appObjects.FlatCAMObj import *
import itertools
import numpy as np
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -963,7 +963,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
def get_selected_tools_list(self):
"""
Returns the keys to the self.tools dictionary corresponding
to the selections on the tool list in the AppGUI.
to the selections on the tool list in the appGUI.
:return: List of tools.
:rtype: list

View File

@ -15,7 +15,7 @@ import shapely.affinity as affinity
from camlib import Geometry
from AppObjects.FlatCAMObj import *
from appObjects.FlatCAMObj import *
import ezdxf
import math
@ -24,7 +24,7 @@ from copy import deepcopy
import traceback
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -940,7 +940,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_connect()
self.build_ui()
# if there is no tool left in the Tools Table, enable the parameters AppGUI
# if there is no tool left in the Tools Table, enable the parameters appGUI
if self.ui.geo_tools_table.rowCount() != 0:
self.ui.geo_param_frame.setDisabled(False)
@ -1016,7 +1016,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_connect()
self.build_ui()
# if there is no tool left in the Tools Table, enable the parameters AppGUI
# if there is no tool left in the Tools Table, enable the parameters appGUI
if self.ui.geo_tools_table.rowCount() != 0:
self.ui.geo_param_frame.setDisabled(False)
@ -1197,7 +1197,7 @@ class GeometryObject(FlatCAMObj, Geometry):
obj_active.options['xmax'] = 0
obj_active.options['ymax'] = 0
# if there is no tool left in the Tools Table, disable the parameters AppGUI
# if there is no tool left in the Tools Table, disable the parameters appGUI
if self.ui.geo_tools_table.rowCount() == 0:
self.ui.geo_param_frame.setDisabled(True)
@ -1759,7 +1759,7 @@ class GeometryObject(FlatCAMObj, Geometry):
:param tools_dict: a dictionary that holds the whole data needed to create the Gcode
(including the solid_geometry)
:param tools_in_use: the tools that are used, needed by some preprocessors
:type tools_in_use list of lists, each list in the list is made out of row elements of tools table from AppGUI
:type tools_in_use list of lists, each list in the list is made out of row elements of tools table from appGUI
:param segx: number of segments on the X axis, for auto-levelling
:param segy: number of segments on the Y axis, for auto-levelling
:param plot: if True the generated object will be plotted; if False will not be plotted

View File

@ -14,15 +14,15 @@
from shapely.geometry import Point, Polygon, MultiPolygon, MultiLineString, LineString, LinearRing
from shapely.ops import cascaded_union
from AppParsers.ParseGerber import Gerber
from AppObjects.FlatCAMObj import *
from appParsers.ParseGerber import Gerber
from appObjects.FlatCAMObj import *
import math
import numpy as np
from copy import deepcopy
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -37,6 +37,8 @@ class GerberObject(FlatCAMObj, Gerber):
optionChanged = QtCore.pyqtSignal(str)
replotApertures = QtCore.pyqtSignal()
do_buffer_signal = QtCore.pyqtSignal()
ui_type = GerberObjectUI
@staticmethod
@ -214,6 +216,8 @@ class GerberObject(FlatCAMObj, Gerber):
self.ui.aperture_table_visibility_cb.stateChanged.connect(self.on_aperture_table_visibility_change)
self.ui.follow_cb.stateChanged.connect(self.on_follow_cb_click)
self.do_buffer_signal.connect(self.on_generate_buffer)
# Show/Hide Advanced Options
if self.app.defaults["global_app_level"] == 'b':
self.ui.level.setText('<span style="color:green;"><b>%s</b></span>' % _('Basic'))
@ -384,16 +388,25 @@ class GerberObject(FlatCAMObj, Gerber):
except (TypeError, AttributeError):
pass
@staticmethod
def buffer_handler(geo):
new_geo = geo
if isinstance(new_geo, list):
new_geo = MultiPolygon(new_geo)
new_geo = new_geo.buffer(0.0000001)
new_geo = new_geo.buffer(-0.0000001)
return new_geo
def on_generate_buffer(self):
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Buffering solid geometry"))
def buffer_task():
with self.app.proc_container.new('%s...' % _("Buffering")):
if isinstance(self.solid_geometry, list):
self.solid_geometry = MultiPolygon(self.solid_geometry)
output = self.app.pool.apply_async(self.buffer_handler, args=([self.solid_geometry]))
self.solid_geometry = output.get()
self.solid_geometry = self.solid_geometry.buffer(0.0000001)
self.solid_geometry = self.solid_geometry.buffer(-0.0000001)
self.app.inform.emit('[success] %s.' % _("Done"))
self.plot_single_object.emit()
@ -1490,7 +1503,7 @@ class GerberObject(FlatCAMObj, Gerber):
Gerber.skew(self, angle_x=angle_x, angle_y=angle_y, point=point)
self.replotApertures.emit()
def buffer(self, distance, join, factor=None):
def buffer(self, distance, join=2, factor=None):
Gerber.buffer(self, distance=distance, join=join, factor=factor)
self.replotApertures.emit()

View File

@ -12,15 +12,15 @@
import inspect # TODO: For debugging only.
from AppGUI.ObjectUI import *
from appGUI.ObjectUI import *
from Common import LoudDict
from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
from appGUI.PlotCanvasLegacy import ShapeCollectionLegacy
import sys
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -43,7 +43,7 @@ class ValidationError(Exception):
class FlatCAMObj(QtCore.QObject):
"""
Base type of objects handled in FlatCAM. These become interactive
in the AppGUI, can be plotted, and their options can be modified
in the appGUI, can be plotted, and their options can be modified
by the user in their respective forms.
"""

View File

@ -10,16 +10,16 @@
# File modified by: Marius Stanciu #
# ##########################################################
from AppEditors.FlatCAMTextEditor import TextEditor
from AppObjects.FlatCAMObj import *
from AppGUI.ObjectUI import *
from appEditors.FlatCAMTextEditor import TextEditor
from appObjects.FlatCAMObj import *
from appGUI.ObjectUI import *
import tkinter as tk
import sys
from copy import deepcopy
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')

View File

@ -16,13 +16,13 @@ from PyQt5.QtCore import Qt, QSettings
from PyQt5.QtGui import QColor
# from PyQt5.QtCore import QModelIndex
from AppObjects.FlatCAMObj import FlatCAMObj
from AppObjects.FlatCAMCNCJob import CNCJobObject
from AppObjects.FlatCAMDocument import DocumentObject
from AppObjects.FlatCAMExcellon import ExcellonObject
from AppObjects.FlatCAMGeometry import GeometryObject
from AppObjects.FlatCAMGerber import GerberObject
from AppObjects.FlatCAMScript import ScriptObject
from appObjects.FlatCAMObj import FlatCAMObj
from appObjects.FlatCAMCNCJob import CNCJobObject
from appObjects.FlatCAMDocument import DocumentObject
from appObjects.FlatCAMExcellon import ExcellonObject
from appObjects.FlatCAMGeometry import GeometryObject
from appObjects.FlatCAMGerber import GerberObject
from appObjects.FlatCAMScript import ScriptObject
import inspect # TODO: Remove
@ -32,7 +32,7 @@ from copy import deepcopy
from numpy import Inf
import gettext
import AppTranslation as fcTranslate
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@ -56,7 +56,7 @@ class KeySensitiveListView(QtWidgets.QTreeView):
# self.setRootIsDecorated(False)
# self.setExpandsOnDoubleClick(False)
# Enable dragging and dropping onto the AppGUI
# Enable dragging and dropping onto the appGUI
self.setAcceptDrops(True)
self.filename = ""
self.app = app

Some files were not shown because too many files have changed in this diff Show More