* fix precedence errors
Fix a handful of precedence errors and 1 logic/precedence error. None of the code will compile as intended without these changes.
* Update GUI_ObjectList.cpp
Modifiers should load at same offset as object they are created against. Based on prusaslicer ObjectList::load_from_files where it works correctly.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* DiffDialog: Implemented a transfer of options from one preset to another
Related to [Feature Request] #5384 - Copy values in Profile comparaison dialog
Cherry-picked from prusa3d/PrusaSlicer@0b8d7380ff
Co-authored-by: YuSanka <yusanka@gmail.com>
* Remove save button
* Sync with latest PS
* Use Orca button style
* Show tips about trasnfer disabled
---------
Co-authored-by: YuSanka <yusanka@gmail.com>
This is a port of the EditGCodeDialog from PrusaSlicer 2.7.x. There were
a few changes made to make it a bit more functional. Also, it isn't
quite fully complete, but it should be in a very usable state.
General Changes:
- Implement UndoValueUIManager and EditValueUI in Field
- Implement EditGCodeDialog and add buttons to the tabs
- Other minor changes to accommodate the new classes
Differences from PrusaSlicer's Implementation:
- backported to wxWidgets 3.1.5 (reverse commit 8770c4b7 after updating
to 3.2.x)
- icons have been updated to use Orca colors
- improve the report that tells you if certain placeholders have not
been defined properly for the dialog. It now shows all issues at once
rather than having to fix then recompile to see the next issue.
- allow the use of the cmake option `ORCA_CHECK_GCODE_PLACEHOLDERS` to
toggle the above report since our workflow rarely uses debug mode.
- if a custom gcode value is not set when checking gcode placeholders, a
testing value is set. Custom gcode is not parsed if it is empty, and the
only way to check if the placeholders are all defined is by running the
placeholder operation on the custom gcode.
- some calls to `print.config()` in Gcode.cpp were changed to `m_config`
to support the above testing values feature (only m_config is modified
with the placeholders and `print.config()` would return an empty string)
- a macro has been added to quickly add a definition to
SlicingStatesConfigDefs with less boiler plate (it could technically be
used for any ConfigOptionDef, but that would hurt interoperability with
PS. I tried to not use the macro for too many PS defined definitions.)
- the presets are now also categorized by the page they are on in their
tab
<table>
<tr>
<td>Prusa
<td>Orca
<tr>
<td>
<img
src="27cb4f48-d225-4563-9aeb-b2b461f8bff5"
/>
<td>
<img
src="4fcd8cde-2427-4d1a-a0ed-1738b570b919"
/>
</table>
TODO:
- [x] Make sure all linux fixes have been applied
- [x] Finish adding "universal" gcode options
- [x] add search function to dataview (maybe?)
- [x] determine if any options are being left out of the preset
categories by getting options from Tab rather than Presets. If so,
consider adding outside of the groupings
* fix assert statements
* Add ORCA_INCLUDE_DEBUG_INFO to deps cmake
adds option ORCA_INCLUDE_DEBUG_INFO to deps build script to allow an alternative for RelWithDebInfo that works on windows
* add build type option to windows script
* update .gitignore to include build*
* Add button to add model info
* Initial impl of project info editor
* Add sidebar item to edit project info
* Add license selector
* Fix use of deprecated apis
* Fix license combox dark mode
* Add back button on project info editor screen
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Allow reordering objects regardless of print seq
* Add option to control the layer print order
* Sort object by their order in object list instead of id
* Show print order when print order is the same as the object list
* Ensure the print order when print order is same as object list
* Update option name
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* [FEATURE] Experimental small area flow compensation
This is a native implementation of the [Small Area Flow Compensation](https://github.com/Alexander-T-Moss/Small-Area-Flow-Comp)
post-processor by Alexander Þór for OrcaSlicer.
Quite often small areas of solid infill appear to be over-extruded, despite
the rest of a print looking like it has a well-dialled-in EM/Flow. Currently,
there isn't a good understanding of why this happens, so this is an attempt
at a brute-force approach to treat the symptom.
This feature modifies the flow of extrusion lines inversely proportional to
the length of the extrusion line (the shorter the extrusion, the less flow
it should have).
Alexander Þór: Author of the original script implementation
Weaslus: Proof Reader, Hypeman & pestered folks into making this
* [TASK] Whitespace cleanup
* [TASK] Add credits, format code, improve input labels
* [TASK] Use multi-line textbox as input for flow model
* [TASK] Toggle flow compensation per object
* [TASK] Enable flow compensation for first layer
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* ENH: Enabled gap fill algorithm for all solid fill types
* Made gap fill an option & refactored code into its own method
* Code comment updates
* Converted gap fill to enum and control filter out gap fill in the UI
* Update label for consistency
* Spelling mistake
Fix a handful of precedence errors and 1 logic/precedence error. None of the code will compile as intended without these changes.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix garbled text when display scalling > 300%
On Windows, if your display scaling is greater than 300%,
the text rendered by imgui will be garbled. Allowing imgui
to do the scaling instead of making the font to large
corrects the issue.
* Only use modified scaling on Windows
And only if the system's scaling factor is greater than 300%.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Support custom IP camera
Allow adding custom IP camera source while keeping possible
built-in bambulab camera also functional and add button to
switch between them.
This uses WebView widget to show the stream. Upon loading the
page, javascript is used to remove native controls and scroll-
bars for aesthetic reasons.
* Add partial support for PiP video
HTMLVideoElement supports picture-in-picture video
but the dedicated control is hidden in this implementation
to have more integrated look in OrcaSlicer. Add right-click
listener to the camera switch icon that opens the video element
in a PiP window.
Only works when the video is in <video> HTML element, so for
example MJPEG streams in <img> element won't work.
* ENH: Improve internal bridge detection for sloped surfaces
* Moved lightning detection out of the parallel threads
* Naming conventions
* Revised approach - use reduced expansion multipliers
* Further reduce filtering, flagged option as experimental
* Corrected code comment
* Updated tool tip
* Introduced filtering drop down option
Helps with previous commit
DataView currently doesn't resize vertically
Also, at the moment, the resize grabber is not respecting dark mode and this solves that too.
Now leaves text stored in ParamsNode un-formatted and uses flags to determine the formatting. The GetFormattedText function now returns the markup text.
Percent config values are managed as float types, but decimal precision
is not displayed in the GUI. This change uses the `double_to_string()`
converstion rather than casting to an int when retrieving the config
option value.
* Attempt to fix retraction issues with PA pattern calibration
* PA pattern test fix - retract and wipe on layer change
* Naming convention
* fix crash
* Bring back the shortcut to zoom in & out
* Update keyboard shortcut info
* Update keyboard shortcut info
* Different handling of shortcut 'T' for emboss text
Cherry-picked from prusa3d/PrusaSlicer@58e3143ad8
Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@prusa3d.cz>
---------
Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@prusa3d.cz>
(cherry picked from commit 002208fc8c)