Commit Graph

300 Commits

Author SHA1 Message Date
Marius Stanciu 4c83e87feb - moved some of the GUI related methods from FlatCAMApp.App to the flatcamGUI.FlatCAMGUI class
- moved Shortcuts Tab creation in it's own class
2020-05-18 15:43:07 +03:00
Marius Stanciu a9c777030b - modified the GUI for Film and Panelize Tools 2020-05-18 06:48:30 +03:00
Marius Stanciu af2cc005b0 - made the workspace label in the status bar clickable and also added a status bar message on status toggle for workspace 2020-05-18 06:08:43 +03:00
Marius Stanciu 1085d26b7b - fixed the PDF Tool when importing as Gerber objects
- moved all the parsing out of the PDF Tool to a new file ParsePDF in the flatcamParsers folder
- trying to fix the pixmap load crash when running a FlatCAMScript
2020-05-18 05:46:57 +03:00
Marius Stanciu 4cfecfa70a - reverted the previous changes to object collection; it is better to create empty methods in FlatCAMScript and FlatCAMDocument objects 2020-05-17 21:56:44 +03:00
Marius Stanciu c1941bc882 - fixed the object collection methods that return a list of objects or names of objects such that they have a parameter now to allow adding to those lists (or not) for the objects of type Script or Document. Thus fixing some of the Tcl commands such Set Origin 2020-05-17 19:48:46 +03:00
Marius Stanciu 9a53edd017 - grid snap toolbar is now always active 2020-05-17 19:16:49 +03:00
Marius Stanciu 18e128c57b - now the Edit command (either from Menu Edit ->Edit Object) or through the shortcut key (E key) or project tab context menu works also for the CNCJob objects (will open a text Editor with the GCode) 2020-05-17 16:26:25 +03:00
Marius Stanciu 0aeef246ea - fixed the workspace being always A4
- added a label in the status bar to show if the workplace is active and what size it is
2020-05-17 15:53:13 +03:00
Marius Stanciu 29ce53b577 - solved the issue with the GUI in the Notebook being expanded too much in width due of the FCDoubleSpinner and FCSpinner sizeHint by setting the sizePolicy to Ignored value 2020-05-17 05:40:52 +03:00
Marius Stanciu d0e80043a4 - added a menu entry in Menu -> View for Toggle HUD 2020-05-17 04:02:50 +03:00
Marius Stanciu 28f0c9c276 - added new FlatCAM Tool: Corner Markers Tool which will add line markers in the selected corners of the bounding box of the targeted Gerber object 2020-05-17 03:27:26 +03:00
Marius Stanciu fa33a5f487 - worked on the NCC Tool; added a new clear method named 'Combo' which will go through all methods until the clear is done
- added a Preferences parameter for font size used in HUD
2020-05-16 19:13:05 +03:00
Marius Stanciu ceef0849b2 - updated the French translation strings, made by @micmac (Michel) 2020-05-13 14:59:51 +03:00
Marius Stanciu 41922f5c7c - updated the Distance Tool such that the right click of the mouse will cancel the tool unless it was a panning move
- modified the PlotCanvasLegacy to decide if there is a mouse drag based on the distance between the press event position and the release event position. If the distance is smaller than a delta distance then it is not a drag move.
2020-05-13 00:59:35 +03:00
Marius Stanciu 7ec3fa73af - the HUD display state is now persistent between app restarts 2020-05-13 00:08:56 +03:00
Marius Stanciu ce9b18f9ed - modified the Tcl command Paint "single" parameter. Now it's value is a tuple with the x,y coordinates of the single polygon to be painted. 2020-05-12 16:51:54 +03:00
Marius Stanciu 6aacd4d978 - fixed recent issues introduced in Tcl command Drillcncjob
- updated the Cncjob to use the 'endxy' parameter which dictates the x,y position at the end of the job
- now the Tcl commands Drillcncjob and Cncjob can use the toolchangexy and endxy parameters with or without parenthesis (but no spaces allowed)
2020-05-12 13:59:11 +03:00
Marius Stanciu 267db756e1 - fixed the Tcl command Cncjob: there was a problem reported as issue #416. The command did not work due of the dpp parameter
- modified the Tcl command Cncjob such that if some of the parameters are not used then the default values will be used (set with set_sys)
- modified the Tcl command Drillcncjob to use the defaults when some of the parameters are not used
2020-05-12 03:12:21 +03:00
Marius Stanciu 4ff5fb6b55 Merged in new_snap_widget (pull request #10)
New snap widget
2020-05-11 22:29:32 +00:00
Marius Stanciu eb56c249b5 - pass 2020-05-12 01:27:53 +03:00
Marius Stanciu 086526441d - pass 2020-05-12 01:26:35 +03:00
Marius Stanciu d739a5b05d - re-added the position labels in the status bar; they will be useful if HUD is Off (Altium does the same :) so learn from the best) 2020-05-12 01:21:29 +03:00
Marius Stanciu 3a337212f0 - fix issue in Legacy2D graphic mode where the snap function was not accessible when the PlotCanvasLegacy class was created
- modified the HUD in Legacy2D when using Dark Theme to use different colors
- modified how the graphic engine change act in Preferences: now only by clicking Apply(or Save) the change will happen. And there is also a message asking for confirmation
2020-05-12 01:09:00 +03:00
Marius Stanciu 40c52455e1 - made sure that the corner snap buttons are shown only in Editors
- changed the HUD color when using Dark theme
2020-05-11 22:56:06 +03:00
Marius Stanciu 3c0ee97c61 - Snap Toolbar is now visible in Fullscreen
- in Fullscreen now the Notebook is available but it will be hidden on Fullscreen launch
- fixed some minor issues (in the HUD added a separating line, missing an icon in toolbars on first launch)
2020-05-11 20:10:27 +03:00
Marius Stanciu d7677b5e08 - remade the Snap Toolbar presence; now it is always active and situated in the Status Bar 2020-05-11 18:02:34 +03:00
Marius Stanciu 46367c433f - removed the labels in status bar that display X,Y positions and replaced it with a HUD display on canvas (combo key SHIFT+H) will toggle the display of the HUD
- made the HUD work in Legacy2D mode
- fixed situation when the mouse cursor is outside of the canvas and no therefore returning None values
2020-05-11 07:29:46 +03:00
Marius Stanciu f81be6f0a9 - fixed the problem with using comma as decimal separator in Grid Snap fields 2020-05-10 13:50:24 +03:00
Marius Stanciu 541813c22b - finished the GUI for exclusion areas both in the Excellon and Geometry Objects. Need to think if to make it visible only in Advanced Mode 2020-05-10 01:05:02 +03:00
Marius Stanciu 0e07ea1541 - modified the GUI for Exclusion areas; now the shapes are displayed in a Table where they can be selected and deleted. Modification applied for Geometry Objects only (for now).
- fixed and error when converting units, error that acted when in those fields that accept lists of tools only one tool was added
2020-05-09 05:18:05 +03:00
Marius Stanciu ee69744d6e - removed the Apply theme button in the Preferences; it is now replaced by the more general buttons (either Save or Apply)
- added a confirmation/warning message when applying a new theme
2020-05-08 22:01:18 +03:00
Marius Stanciu 484fb51bf0 - added a parameter to the FlatCAMDefaults class, whenever a value in the self.defaults dict change it will call a callback function and send to it the modified key
- optimized and fixed some issues in the self.on_toggle_units() method
- the Exclusion areas will have all the orange color but the color of the outline will differ according to the type of the object from where it was added (cosmetic use only as the Exclusion areas will be applied globally)
2020-05-08 01:41:40 +03:00
Marius Stanciu eea80aafc3 - added the ability to add exclusion areas from the Excellon object too. Now there is a different in color to differentiate from which type of object the exclusion areas were added but they all serve the same purpose 2020-05-07 01:38:08 +03:00
Marius Stanciu 4ece23c456 - added a fix so the app close is now clean, with exit code 0 as set 2020-05-07 00:46:02 +03:00
Marius Stanciu a161354c25 - solved issue with new parameter end_xy when it is None
- solved issue with applying theme and not making the change in the Preferences UI. In Preferences UI the theme radio is always Light (white)
- now the annotations will invert the selected color in the Preferences, when selecting Dark theme
2020-05-06 16:37:48 +03:00
Marius Stanciu afbe2d974f - handled the New project event and the object deletion (when all objects are deleted then the exclusion areas will be deleted too) 2020-05-06 04:11:31 +03:00
Marius Stanciu 343d4ee534 - changed the above: too many shapes collections and the performance will go down. Created a class Exclusion areas that holds all the require properties and the Object UI elements will connect to it's methods. This way I can apply this to Excellon object too (who are a special type of Geometry Object) 2020-05-06 03:44:56 +03:00
Marius Stanciu 91493b2fbc - wip in adding Exclusion areas in Geometry object; each Geometry object has now a storage for shapes (exclusion shapes, should I make them more general?) 2020-05-06 02:10:18 +03:00
Marius Stanciu ed105eecad - fixed an issue that made the preprocessors comboxes in Preferences not to load and display the saved value fro the file
- some PEP8 corrections
2020-05-05 01:39:01 +03:00
Marius Stanciu 88dc9aa702 - in detachable tabs, Linux loose the reference of the detached tab and on close of the detachable tabs will gave a 'segmantation fault' error. Solved it by not deleting the reference in case of Unix-like systems
- some strigns added to translation strings
2020-05-04 18:28:45 +03:00
Marius Stanciu 59a2414723 - protected a dict in VispyVisuals from issuing errors of keys changed while iterating through it 2020-05-03 17:38:41 +03:00
Marius Stanciu 17a2c0e4c1 - updated the translation files
- changed the line endings for Makefile and setup_ubuntu.sh files
2020-05-03 16:48:17 +03:00
Marius 83a515eeee Merge remote-tracking branch 'remotes/jpcgt/flatcam/Beta' into Beta
# Conflicts:
#	CHANGELOG.md
#	FlatCAMApp.py
#	locale/de/LC_MESSAGES/strings.mo
#	locale/de/LC_MESSAGES/strings.po
#	locale/en/LC_MESSAGES/strings.mo
#	locale/en/LC_MESSAGES/strings.po
#	locale/es/LC_MESSAGES/strings.mo
#	locale/es/LC_MESSAGES/strings.po
#	locale/fr/LC_MESSAGES/strings.mo
#	locale/fr/LC_MESSAGES/strings.po
#	locale/hu/LC_MESSAGES/strings.mo
#	locale/hu/LC_MESSAGES/strings.po
#	locale/it/LC_MESSAGES/strings.mo
#	locale/it/LC_MESSAGES/strings.po
#	locale/pt_BR/LC_MESSAGES/strings.mo
#	locale/pt_BR/LC_MESSAGES/strings.po
#	locale/ro/LC_MESSAGES/strings.mo
#	locale/ro/LC_MESSAGES/strings.po
#	locale/ru/LC_MESSAGES/strings.po
2020-05-03 16:36:23 +03:00
Marius Stanciu 77f6e19267 - small changes to allow making the x86 installer that is made from a Python 3.5 run FlatCAM beta
- fixed multiple parameter 'outname' in the Tcl commands OpenGerber and OpenGcode
- added more examples in the scripts Examples: isolate and cutout examples
- updated the Italian translation
- updated the translation files
2020-05-03 16:14:25 +03:00
Marius Stanciu 87f0d01edc - updated Italian translation 2020-05-02 22:56:17 +03:00
Marius Stanciu 2da0853b23 - working on a new feature: adding interdiction area for Gcode generation. They will be added in the Geometry Object 2020-05-02 22:53:48 +03:00
Marius Stanciu e159bc3b45 - updated the Italian translation done by user @pcb-hobbyst 2020-05-02 16:55:52 +03:00
Marius Stanciu ada271cbd6 - modified the Cutout Tool to generate multi-geo objects therefore the set geometry parameters will populate the Geometry Object UI
- modified the Panelize Tool to optimize the output from Cutout Tool such that there are no longer overlapping cuts
- some string corrections
2020-05-02 15:56:30 +03:00
Marius Stanciu 48b3f8d65a - fixed bug in Gerber Editor in which the units conversion wasn't calculated correct
- fixed bug in Gerber Editor in which the QThread that is started on object edit was not stopped at clean up stage
- fixed bug in Gerber Editor that kept all the apertures (including the geometry) of a previously edited object that was not saved after edit
2020-05-02 04:54:09 +03:00
Marius Stanciu bdf2192d00 - changed the icons for the grid snap in the status bar
- moved some of the methods from FlatCAMApp.App to flatcamGUI.FlatCAMGUI class
2020-05-02 00:09:48 +03:00
Marius Stanciu f4617034af - added in Gerber editor a method for zoom fit that takes into consideration the current geometry of the edited object 2020-05-01 17:42:16 +03:00
Marius Stanciu 37c6bb2c61 - solve parenting issues when trying to load a FlatScript from Menu -> File -> Scripting
- added a first new example script and added some files to work with
- added a new parameter that will store the home folder of the FlatCAM installation so we can access the example folder
2020-05-01 17:10:42 +03:00
Marius Stanciu f47396a6e5 - added some ToolTips (strings needed to be translated too) for the Cut Z entry in Geometry Object UI that explain why is sometime disabled and reason for it's value (sometime is zero) 2020-05-01 13:26:35 +03:00
Marius Stanciu 6d2ffe9c95 - fixed a small issue in loading the Projects 2020-05-01 00:31:21 +03:00
Marius Stanciu 1bbbb70fc8 - fixed issue #409; problem was due of an assert I used in the handler of the Menu ->Options -> Flip X(Y) menu entry
- activated and updated the editing in the Aperture Table in the Gerber Editor; not all parameters can be edited for every type of aperture
- some strings updated
2020-05-01 00:16:24 +03:00
Marius Stanciu 40535b9ffe - fixed bug in Tools DB that crashed when a tool is copied
- in Tools Database added a Save Button whose color is changed in Red if the DB was modified and back to default when the DB is saved.
- fixed bug in Tool DB that crashed the app when the Tool Name was modified but there was no tree item (a tool in the list) selected in the Tree widget (list of tools)
- now on tool add and tool copy, the last item (tool, which is the one added) is autoselected; o tool delete always the first item (tool) is selected
2020-04-30 19:34:05 +03:00
Marius Stanciu 98541775d4 - made some corrections - due of recent refactoring PyCharm reported errors all over (not correct but it made programming difficult)
- modified the requirements.txt file to force svg.path module to be at least version 4.0
2020-04-30 12:47:07 +03:00
Marius Stanciu 65717ddce1 - some more strings changed -> updated the translations
- replaced some FormLayouts with Gridlayouts in Tool Cutout.
2020-04-30 00:05:12 +03:00
Marius Stanciu 804b62af7f - solved the problem with not closing all the tabs in Plot Area when creating a New Project; the issue was that once a tab was removed the indexes are remade (when tab 0 is removed then tab 1 becomes tab 0 and so on) 2020-04-29 21:43:28 +03:00
Marius Stanciu a233d49bd9 - fixed units conversion issue
- updated the units conversion method to convert all the convertible parameters in the Preferences
2020-04-29 19:05:18 +03:00
Marius Stanciu a029d5d9ed - updated the French, German and Spanish Google translations
- updated the Romanian translation
2020-04-29 13:31:16 +03:00
Marius Stanciu c9f6c7efcb - fixed a SyntaxError Exception when checking for types of found old preferences 2020-04-29 12:57:39 +03:00
Marius Stanciu b8d85d2be2 - fixed the merge methods for all FlatCAM objects 2020-04-29 11:10:43 +03:00
Marius Stanciu 2ca6e2e3f1 - modified the method that detects which tab was closed in the Plot Area so it will no longer depend on it's translated text but on it's objectName set on the QTab creation 2020-04-29 10:48:47 +03:00
Marius Stanciu a5384d50d8 - more PEP8 changes
- in PreferencesUI.PreferencesUIManager class I removed the need to pass reference to the App class since it this was available through the 'ui' parameter
- some fixes due to recent refactoring
- minor bugs fixed (not so visible)
- promoted some methods to be static
- set the default layout on first run to the 'minimal' value
2020-04-29 10:09:07 +03:00
Marius Stanciu e1bc55a090 - added a try-except clause in the FlatCAMTranslation.restart_program() when closing the Listener and the thread that runs it to adjust to MacOS usage 2020-04-29 07:37:33 +03:00
Marius Stanciu 907e4bc6d9 - disabled a skip_quotes method in ToolShell.FCShell class so I can now use quotes to enclose file paths with spaces inside 2020-04-28 21:08:40 +03:00
Marius Stanciu 35674c9647 - in SVG parser modified some imports to be one on each line
- fixed the Tcl Command BBox (leftovers from recent global changes)
- fixed some typos in strings reported by @pcb-hobbyst on FlatCAM forum
2020-04-28 19:34:23 +03:00
Marius Stanciu f03d6bfda4 - added a new package to be installed in Linux to make available the black theme for FlatCAM beta
- moved all the 'share' resources (icons) to the 'assets/resources' folder
- some more fixes to problems generated by latest changes in the open handlers
- modified the make_freezed.py script for the new location of the icons
- added a fix for the ConnectionRefusedError in Linux that is issued when first running after a FlatCAM crash
2020-04-28 17:23:49 +03:00
Marius Stanciu eed7e3d620 - some minor changes in the Python version detection
- added a new Tcl Command named SetPath which will set a path to be used by the Tcl commands. Once set will serve as a fallback path in case that the files fail to be opened first time. It will be persistent, saved in preferences.
- added the GUI for the new Open Example in the FIle -> Scripting menu.
- I am modifying all the open ... handlers to add a parameter that will flag if the method was launched from Tcl Shell. This way if the method will fail to open the filename (which include the path) it will try to open from a set fallback path.
- fixed issue #406, bug introduced recently (leftover changes).
- modified the ImportSVG Tcl command name to OpenSVG (open_svg alias)
- added a new Tcl command named OpenDXF (open_dxf alias)
- fixed some errors in Scripting features
- added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path']
2020-04-28 14:37:34 +03:00
Marius Stanciu 2549e9925e - handled a possible situation in App.load_defaults() method
- fixed some issues in FlatCAMDB that may appear in certain scenarios
2020-04-28 09:48:49 +03:00
Marius Stanciu fe2d232f60 - minor changes
- moved the ObjectCollection class to the flatcamObjects folder where it belongs
2020-04-27 14:05:40 +03:00
Marius Stanciu a30d2d9185 - added support for Hungarian language - no translation for now 2020-04-27 12:37:44 +03:00
Marius Stanciu 9f13b47077 - replaced the testing if instance of FlatCAMObj with testing the obj.kind attribute
- removed the import of the whole FlatCAMApp file only for the usage of GracefulException
- remove the import of FlatCAMApp and used alternate ways
- optimized the imports in some files
- moved the Bookmarksmanager and ToolDB classes into their own files
- solved some bugs that were not so visible in the Editors and HPGL parser
- split the FlatCAMObj file into multiple files located in the flatcamObjects folder and renamed the contained classes with names more suggestive
- updated the Google Translation for the German language
2020-04-27 12:34:56 +03:00
Marius Stanciu 3ec666edbb - replaced the testing if instance of FlatCAMObj with testing the obj.kind attribute
- removed the import of the whole FlatCAMApp file only for the usage of GracefulException
- remove the import of FlatCAMApp and used alternate ways
- optimized the imports in some files
- moved the Bookmarksmanager and ToolDB classes into their own files
- solved some bugs that were not so visible in the Editors and HPGL parser
2020-04-27 10:03:22 +03:00
Marius Stanciu 61020e3624 - finished the moving of all Tcl Shell stuff out of the FlatCAAMApp class to flatcamTools.ToolShell class
- updated the requirements.txt file to request that the Shapely package needs to be at least version 1.7.0 as it is needed in the latest versions of FlatCAM beta
- some TOOD cleanups
- minor changes
2020-04-27 06:55:08 +03:00
Marius Stanciu c7bd395368 - added some '\n' chars in the Help Tcl command to make the help more readable 2020-04-25 19:59:50 +03:00
Marius Stanciu 769b5165b4 - updated Google Translations for French and Spanish languages 2020-04-25 17:46:06 +03:00
Marius Stanciu 74582d02df - fixed links in Attributions tab in Help -> About FlatCAM to be able to open external links. 2020-04-25 07:30:10 +03:00
Marius Stanciu 0295950000 - ensured that on Graceful Exit (CTRL+ALT+X key combo) if using Progressive Plotting, the eventual residual plotted lines are deleted. This apply for Tool NCC and Tool Paint 2020-04-25 06:55:41 +03:00
Marius Stanciu 935d556c93 - updated Paint Tool for the new Tool DB
- updated the Tcl commands CopperClear and Paint
2020-04-24 21:08:27 +03:00
Marius Stanciu c9ba61dea9 - updated some of the icons in the dark_resources folder (some added, some modified) 2020-04-24 14:21:57 +03:00
Marius Stanciu b67c00fef6 - update the language template strings.pot and updated the Romanian translation
- updated the Readme file with the steps for installation for MacOS
- updated the requirements.txt file
2020-04-24 11:25:21 +03:00
Marius 3b8b4254b9 - fixed an issue regarding the statusbar pixmap selection 2020-04-24 08:37:47 +03:00
Marius Stanciu 527dcf6270 - added possibility to save as text file the content in Tcl Shell browser window when clicking the Save log context menu entry 2020-04-24 08:12:21 +03:00
Marius Stanciu 7df7e17569 - some message strings cleanup 2020-04-24 07:23:14 +03:00
Marius Stanciu 26dd29e7dd - the status bar messages that are echoed in the Tcl Shell will no longer have all text colored but only the identifier 2020-04-24 06:59:49 +03:00
Marius Stanciu b569fa1748 - added a new menu entry in the context menu of the Tcl Shell: 'Save Log' which will save the content of the Tcl Shell browser window to a file 2020-04-24 04:51:55 +03:00
Marius Stanciu ea4502b965 - some PEP changes, some method descriptions updated
- added a placeholder text to 2Sided Tool
2020-04-24 04:18:01 +03:00
Marius Stanciu 32ff35b4ff - fixed the Tcl command Plot_All that malfunctioned if there were any FlatCAM scripts (or FlatCAM documents) open
- updated the shortcuts list
2020-04-23 03:34:09 +03:00
Marius Stanciu bfd938e577 - aligned the Tcl commands display when the Help Tcl command is run without parameters 2020-04-23 03:10:03 +03:00
Marius Stanciu 1f36ed9369 - added an extra check if old preferences files are detected, a check if the type of the values is the same with the type in the current preferences file. If the type is not the same then the current type is preferred. 2020-04-23 02:43:26 +03:00
Marius Stanciu 3735753a93 - fixed the Tcl Command Help to work as expected; made the text of the commands to be colored in Red color and bold
- added a 'Close' menu entry in the Tcl Shell context menu that will close (hide) the Tcl Shell Dock widget
- on launching the Tcl Shell the Edit line will take focus immediately
- in App.on_mouse_move_over_plot() method no longer will be done a setFocus() on every move, only when it is needed
2020-04-23 02:07:55 +03:00
Marius Stanciu a1499158c2 - refactored some of the code in the App class and created a new Tcl Command named Help 2020-04-22 23:00:54 +03:00
Marius Stanciu 66d9ddd402 - fixed some bugs in the Tcl Commands
- modified the Tcl Commands to be able to use as boolean values keywords with lower case like 'false' instead of expected 'False'
2020-04-22 14:37:03 +03:00
Marius Stanciu f690c2b09d - added a new feature, project auto-saving controlled from Edit -> Preferences -> General -> APP. Preferences -> Enable Auto Save checkbox 2020-04-22 01:19:49 +03:00
Marius Stanciu 3c291f259e - fixed a bug in loading objects by drag&drop into the Project Tab where only one object in the selection was loaded 2020-04-20 12:02:01 +03:00
Marius Stanciu c6ac6268ad - updated the README file 2020-04-20 05:38:57 +03:00
Marius Stanciu 9761e5e6fa - added a CHANGELOG file and changed the README file to contain the installation instructions 2020-04-20 05:12:36 +03:00