Просмотр исходного кода

- added a visual cue in Menu -> Edit about the entries to enter the Editor and to Save & Exit Editor. When one is enabled the other is disabled.
- grouped all the UI files in flatcamGUI folder

Marius Stanciu 6 лет назад
Родитель
Сommit
9d33e08ecf

+ 3 - 4
FlatCAM.py

@@ -1,15 +1,14 @@
 import sys, os
 import sys, os
-from PyQt5 import sip
 
 
-from PyQt5 import QtGui, QtCore, QtWidgets
+from PyQt5 import QtWidgets
 from PyQt5.QtCore import QSettings, Qt
 from PyQt5.QtCore import QSettings, Qt
 from FlatCAMApp import App
 from FlatCAMApp import App
 from multiprocessing import freeze_support
 from multiprocessing import freeze_support
-import VisPyPatches
+from flatcamGUI import VisPyPatches
 
 
 if sys.platform == "win32":
 if sys.platform == "win32":
     # cx_freeze 'module win32' workaround
     # cx_freeze 'module win32' workaround
-    import OpenGL.platform.win32
+    pass
 
 
 def debug_trace():
 def debug_trace():
     """
     """

+ 12 - 17
FlatCAMApp.py

@@ -6,33 +6,20 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 ############################################################
 ############################################################
 
 
-import sys
-import traceback
 import urllib.request, urllib.parse, urllib.error
 import urllib.request, urllib.parse, urllib.error
 import getopt
 import getopt
-import os
 import random
 import random
-import logging
 import simplejson as json
 import simplejson as json
 import lzma
 import lzma
 
 
-import re
-import os
 from stat import S_IREAD, S_IRGRP, S_IROTH
 from stat import S_IREAD, S_IRGRP, S_IROTH
 import subprocess
 import subprocess
 
 
 import tkinter as tk
 import tkinter as tk
-from PyQt5 import QtCore, QtGui, QtWidgets, QtPrintSupport
-from PyQt5.QtCore import QSettings
+from PyQt5 import QtPrintSupport
 
 
-import time  # Just used for debugging. Double check before removing.
 import urllib.request, urllib.parse, urllib.error
 import urllib.request, urllib.parse, urllib.error
-import webbrowser
 from contextlib import contextmanager
 from contextlib import contextmanager
-from xml.dom.minidom import parseString as parse_xml_string
-from copy import copy,deepcopy
-import numpy as np
-from datetime import datetime
 import gc
 import gc
 
 
 ########################################
 ########################################
@@ -40,15 +27,15 @@ import gc
 ########################################
 ########################################
 from ObjectCollection import *
 from ObjectCollection import *
 from FlatCAMObj import *
 from FlatCAMObj import *
-from PlotCanvas import *
-from FlatCAMGUI import *
+from flatcamGUI.PlotCanvas import *
+from flatcamGUI.FlatCAMGUI import *
 from FlatCAMCommon import LoudDict
 from FlatCAMCommon import LoudDict
 from FlatCAMPostProc import load_postprocessors
 from FlatCAMPostProc import load_postprocessors
 
 
 from FlatCAMEditor import FlatCAMGeoEditor, FlatCAMExcEditor
 from FlatCAMEditor import FlatCAMGeoEditor, FlatCAMExcEditor
 from FlatCAMProcess import *
 from FlatCAMProcess import *
 from FlatCAMWorkerStack import WorkerStack
 from FlatCAMWorkerStack import WorkerStack
-from VisPyVisuals import Color
+from flatcamGUI.VisPyVisuals import Color
 from vispy.gloo.util import _screenshot
 from vispy.gloo.util import _screenshot
 from vispy.io import write_png
 from vispy.io import write_png
 
 
@@ -1866,6 +1853,10 @@ class App(QtCore.QObject):
         self.ui.popmenu_edit.setVisible(False)
         self.ui.popmenu_edit.setVisible(False)
         self.ui.popmenu_save.setVisible(True)
         self.ui.popmenu_save.setVisible(True)
 
 
+        # adjust the status of the menu entries related to the editor
+        self.ui.menueditedit.setDisabled(True)
+        self.ui.menueditok.setDisabled(False)
+
         edited_object = self.collection.get_active()
         edited_object = self.collection.get_active()
 
 
         if isinstance(edited_object, FlatCAMGeometry):
         if isinstance(edited_object, FlatCAMGeometry):
@@ -1915,6 +1906,10 @@ class App(QtCore.QObject):
         """
         """
         self.report_usage("editor2object()")
         self.report_usage("editor2object()")
 
 
+        # adjust the status of the menu entries related to the editor
+        self.ui.menueditedit.setDisabled(False)
+        self.ui.menueditok.setDisabled(True)
+
         # do not update a geometry or excellon object unless it comes out of an editor
         # do not update a geometry or excellon object unless it comes out of an editor
         if self.call_source != 'app':
         if self.call_source != 'app':
             # adjust the visibility of some of the canvas context menu
             # adjust the visibility of some of the canvas context menu

+ 6 - 16
FlatCAMEditor.py

@@ -13,30 +13,20 @@
 
 
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5.QtCore import Qt, QSettings
 from PyQt5.QtCore import Qt, QSettings
-import FlatCAMApp
 from camlib import *
 from camlib import *
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
-from ObjectUI import LengthEntry, RadioSet
+from flatcamGUI.ObjectUI import LengthEntry, RadioSet
 
 
-from shapely.geometry import Polygon, LineString, Point, LinearRing, MultiLineString
-from shapely.geometry import MultiPoint, MultiPolygon
-from shapely.geometry import box as shply_box
-from shapely.ops import cascaded_union, unary_union
+from shapely.geometry import LineString, LinearRing, MultiLineString
+from shapely.ops import cascaded_union
 import shapely.affinity as affinity
 import shapely.affinity as affinity
-from shapely.wkt import loads as sloads
-from shapely.wkt import dumps as sdumps
-from shapely.geometry.base import BaseGeometry
 
 
-from numpy import arctan2, Inf, array, sqrt, pi, ceil, sin, cos, sign, dot
-from numpy.linalg import solve
+from numpy import arctan2, Inf, array, sqrt, sign, dot
 
 
 from rtree import index as rtindex
 from rtree import index as rtindex
-from GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCEntry2, FCComboBox, FCTextAreaRich, \
-    VerticalScrollArea, FCTable, FCDoubleSpinner, FCButton, EvalEntry2, FCInputDialog
+from flatcamGUI.GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCComboBox, FCTextAreaRich, \
+    FCTable, FCDoubleSpinner, FCButton, EvalEntry2, FCInputDialog
 from ParseFont import *
 from ParseFont import *
-from vispy.scene.visuals import Markers
-from copy import copy
-import freetype as ft
 
 
 import gettext
 import gettext
 import FlatCAMTranslation as fcTranslate
 import FlatCAMTranslation as fcTranslate

+ 2 - 8
FlatCAMObj.py

@@ -6,20 +6,13 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 ############################################################
 ############################################################
 
 
-from io import StringIO
-from PyQt5 import QtCore, QtGui
-from PyQt5.QtCore import Qt
 import copy
 import copy
 import inspect  # TODO: For debugging only.
 import inspect  # TODO: For debugging only.
-from shapely.geometry.base import JOIN_STYLE
 from datetime import datetime
 from datetime import datetime
 
 
-import FlatCAMApp
-from ObjectUI import *
+from flatcamGUI.ObjectUI import *
 from FlatCAMCommon import LoudDict
 from FlatCAMCommon import LoudDict
-from FlatCAMEditor import FlatCAMGeoEditor
 from camlib import *
 from camlib import *
-from VisPyVisuals import ShapeCollectionVisual
 import itertools
 import itertools
 
 
 import gettext
 import gettext
@@ -30,6 +23,7 @@ import builtins
 if '_' not in builtins.__dict__:
 if '_' not in builtins.__dict__:
     _ = gettext.gettext
     _ = gettext.gettext
 
 
+
 class ObjectDeleted(Exception):
 class ObjectDeleted(Exception):
     # Interrupts plotting process if FlatCAMObj has been deleted
     # Interrupts plotting process if FlatCAMObj has been deleted
     pass
     pass

+ 1 - 1
FlatCAMProcess.py

@@ -6,7 +6,7 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 ############################################################
 ############################################################
 
 
-from FlatCAMGUI import FlatCAMActivityView
+from flatcamGUI.FlatCAMGUI import FlatCAMActivityView
 from PyQt5 import QtCore
 from PyQt5 import QtCore
 import weakref
 import weakref
 
 

+ 1 - 2
FlatCAMTranslation.py

@@ -12,8 +12,7 @@ import sys
 from PyQt5 import QtWidgets, QtGui
 from PyQt5 import QtWidgets, QtGui
 from PyQt5.QtCore import QSettings
 from PyQt5.QtCore import QSettings
 
 
-import FlatCAMApp
-from GUIElements import log
+from flatcamGUI.GUIElements import log
 import gettext
 import gettext
 
 
 # ISO639-1 codes from here: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
 # ISO639-1 codes from here: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

+ 2 - 0
README.md

@@ -14,6 +14,8 @@ CAD program, and create G-Code for Isolation routing.
 - changed some icons here and there
 - changed some icons here and there
 - fixed the Properties Project menu entry to work on the new way
 - fixed the Properties Project menu entry to work on the new way
 - in Properties tool now the Gerber apertures show the number of polygons in 'solid_geometry' instead of listing the objects
 - in Properties tool now the Gerber apertures show the number of polygons in 'solid_geometry' instead of listing the objects
+- added a visual cue in Menu -> Edit about the entries to enter the Editor and to Save & Exit Editor. When one is enabled the other is disabled.
+- grouped all the UI files in flatcamGUI folder
 
 
 10.03.2019
 10.03.2019
 
 

+ 7 - 3
FlatCAMGUI.py → flatcamGUI/FlatCAMGUI.py

@@ -11,9 +11,8 @@
 # Date: 3/10/2019                                          #
 # Date: 3/10/2019                                          #
 ############################################################
 ############################################################
 
 
-from PyQt5 import QtGui, QtCore, QtWidgets
-from PyQt5.QtCore import Qt, QSettings
-from GUIElements import *
+from PyQt5.QtCore import QSettings
+from flatcamGUI.GUIElements import *
 import platform
 import platform
 import webbrowser
 import webbrowser
 
 
@@ -211,6 +210,11 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
         self.menuedit.addSeparator()
         self.menuedit.addSeparator()
         self.menueditedit = self.menuedit.addAction(QtGui.QIcon('share/edit16.png'), _('Edit Object\tE'))
         self.menueditedit = self.menuedit.addAction(QtGui.QIcon('share/edit16.png'), _('Edit Object\tE'))
         self.menueditok = self.menuedit.addAction(QtGui.QIcon('share/edit_ok16.png'), _('Save && Close Editor\tCTRL+S'))
         self.menueditok = self.menuedit.addAction(QtGui.QIcon('share/edit_ok16.png'), _('Save && Close Editor\tCTRL+S'))
+
+        # adjust the initial state of the menu entries related to the editor
+        self.menueditedit.setDisabled(False)
+        self.menueditok.setDisabled(True)
+
         # Separator
         # Separator
         self.menuedit.addSeparator()
         self.menuedit.addSeparator()
         self.menuedit_convert = self.menuedit.addMenu(QtGui.QIcon('share/convert24.png'), _('Conversion'))
         self.menuedit_convert = self.menuedit.addMenu(QtGui.QIcon('share/convert24.png'), _('Conversion'))

+ 0 - 0
GUIElements.py → flatcamGUI/GUIElements.py


+ 1 - 4
ObjectUI.py → flatcamGUI/ObjectUI.py

@@ -11,12 +11,9 @@
 # Date: 3/10/2019                                          #
 # Date: 3/10/2019                                          #
 ############################################################
 ############################################################
 
 
-import sys
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5.QtCore import Qt
 from PyQt5.QtCore import Qt
-from GUIElements import FCEntry, FloatEntry, EvalEntry, FCCheckBox, FCTable, \
-    LengthEntry, FCTextArea, IntEntry, RadioSet, OptionalInputSection, FCComboBox, FloatEntry2, EvalEntry2, FCButton
-from camlib import Excellon
+from flatcamGUI.GUIElements import *
 
 
 import gettext
 import gettext
 import FlatCAMTranslation as fcTranslate
 import FlatCAMTranslation as fcTranslate

+ 2 - 3
PlotCanvas.py → flatcamGUI/PlotCanvas.py

@@ -9,12 +9,11 @@
 from PyQt5 import QtCore
 from PyQt5 import QtCore
 
 
 import logging
 import logging
-from VisPyCanvas import VisPyCanvas
-from VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
+from flatcamGUI.VisPyCanvas import VisPyCanvas, time
+from flatcamGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
 from vispy.scene.visuals import InfiniteLine, Line
 from vispy.scene.visuals import InfiniteLine, Line
 import numpy as np
 import numpy as np
 from vispy.geometry import Rect
 from vispy.geometry import Rect
-import time
 
 
 log = logging.getLogger('base')
 log = logging.getLogger('base')
 
 

+ 0 - 0
VisPyCanvas.py → flatcamGUI/VisPyCanvas.py


+ 0 - 0
VisPyPatches.py → flatcamGUI/VisPyPatches.py


+ 0 - 0
VisPyTesselators.py → flatcamGUI/VisPyTesselators.py


+ 1 - 1
VisPyVisuals.py → flatcamGUI/VisPyVisuals.py

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

+ 0 - 0
flatcamGUI/__init__.py


+ 0 - 2
flatcamTools/ToolCalculators.py

@@ -6,8 +6,6 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 ############################################################
 ############################################################
 
 
-from PyQt5 import QtGui
-from GUIElements import FCEntry
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMObj import *
 from FlatCAMObj import *
 import math
 import math

+ 0 - 2
flatcamTools/ToolDblSided.py

@@ -1,5 +1,3 @@
-from PyQt5 import QtGui
-from GUIElements import RadioSet, EvalEntry, LengthEntry
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMObj import *
 from FlatCAMObj import *
 from shapely.geometry import Point
 from shapely.geometry import Point

+ 1 - 1
flatcamTools/ToolFilm.py

@@ -8,7 +8,7 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 
 
-from GUIElements import RadioSet, FCEntry
+from flatcamGUI.GUIElements import RadioSet, FCEntry
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
 
 
 import gettext
 import gettext

+ 2 - 2
flatcamTools/ToolImage.py

@@ -8,8 +8,8 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 
 
-from GUIElements import RadioSet, FloatEntry, FCComboBox, IntEntry
-from PyQt5 import QtGui, QtCore, QtWidgets
+from flatcamGUI.GUIElements import RadioSet, FCComboBox, IntEntry
+from PyQt5 import QtGui, QtWidgets
 
 
 import gettext
 import gettext
 import FlatCAMTranslation as fcTranslate
 import FlatCAMTranslation as fcTranslate

+ 1 - 3
flatcamTools/ToolMeasurement.py

@@ -8,10 +8,8 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMObj import *
 from FlatCAMObj import *
-from VisPyVisuals import *
-from PyQt5.QtCore import QSettings
+from flatcamGUI.VisPyVisuals import *
 
 
-from copy import copy
 from math import sqrt
 from math import sqrt
 
 
 import gettext
 import gettext

+ 1 - 2
flatcamTools/ToolMove.py

@@ -8,9 +8,8 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMObj import *
 from FlatCAMObj import *
-from VisPyVisuals import *
+from flatcamGUI.VisPyVisuals import *
 
 
-from io import StringIO
 from copy import copy
 from copy import copy
 
 
 import gettext
 import gettext

+ 1 - 1
flatcamTools/ToolShell.py

@@ -10,7 +10,7 @@
 from PyQt5.QtCore import Qt
 from PyQt5.QtCore import Qt
 from PyQt5.QtGui import QTextCursor
 from PyQt5.QtGui import QTextCursor
 from PyQt5.QtWidgets import QVBoxLayout, QWidget
 from PyQt5.QtWidgets import QVBoxLayout, QWidget
-from GUIElements import _BrowserTextEdit, _ExpandableTextEdit
+from flatcamGUI.GUIElements import _BrowserTextEdit, _ExpandableTextEdit
 import html
 import html
 
 
 import gettext
 import gettext

+ 3 - 4
flatcamTools/ToolSolderPaste.py

@@ -8,9 +8,9 @@
 
 
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMCommon import LoudDict
 from FlatCAMCommon import LoudDict
-from GUIElements import FCComboBox, FCEntry, FCTable
+from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCTable
 from FlatCAMApp import log
 from FlatCAMApp import log
-from camlib import distance, CNCjob
+from camlib import distance
 from FlatCAMObj import FlatCAMCNCjob
 from FlatCAMObj import FlatCAMCNCjob
 
 
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
@@ -18,8 +18,7 @@ from PyQt5.QtCore import Qt
 from copy import deepcopy
 from copy import deepcopy
 from datetime import datetime
 from datetime import datetime
 
 
-from shapely.geometry import MultiPolygon, Polygon, LineString
-from shapely.geometry.base import BaseGeometry
+from shapely.geometry import Polygon, LineString
 from shapely.ops import cascaded_union
 from shapely.ops import cascaded_union
 
 
 import traceback
 import traceback

+ 0 - 3
flatcamTools/ToolTransform.py

@@ -6,9 +6,6 @@
 # MIT Licence                                              #
 # MIT Licence                                              #
 ############################################################
 ############################################################
 
 
-from PyQt5 import QtGui, QtCore, QtWidgets
-from PyQt5.QtCore import Qt
-from GUIElements import FCEntry, FCButton, OptionalInputSection
 from FlatCAMTool import FlatCAMTool
 from FlatCAMTool import FlatCAMTool
 from FlatCAMObj import *
 from FlatCAMObj import *