* Store user session information along with refresh token, to allow offline use once user is logged in
* Don't bother with avatar because we won't see it when offline anyway
* Fix offline Sync Presets freezing the UI on repeat clicks
Ignore restart_sync_user_preset() while a manual sync's progress dialog is on screen, so a second app-modal dialog can't stack on the first. Offline the dialog blocks on a long, uncancellable HTTP timeout; on macOS the global menu stays live while the window is disabled, so a second click otherwise wedges the app (force-quit only).
* Skip redundant user-secret re-write on startup
set_user_session() always re-encrypts and writes the secret to disk; on the startup restore path that just rewrites the bytes it was loaded from. Add a persist flag so the restore path skips it. Also drop an unused catch binding and a stray blank line.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* init
* update translations
* clarify warning for rebuild
* auto fill issue field on github with gathered system information
* add detection for linux package type
* fix build errors
* update
* update
* improve reading windows version
* add multi file support for zip and use timestamp on exported zip name
* fix errors
* fix errorz
* fix URL encoding
* fix CPU info
* use home or desktop as default location
* fix distro name on flatpak
* improve detecting local build on linux
* check package type on all platforms
* optimize margins
* improve monitor detection
* add support for adding text file to zip and add system info on export
* exclude user related info from config
* improve exporting profile info
* fix linux monitor info
* update
* update detecting monitor info
* Update TroubleshootDialog.cpp
* Update TroubleshootDialog.cpp
* Update TroubleshootDialog.cpp
* revert scaling and resolution detection for linux
* include project file to zip and notify after saving zip successfully saved
* improve monitor info on mac
* update
* improve packing selection menu
* update
* Update TroubleshootDialog.cpp
* Update TroubleshootDialog.cpp
* Update TroubleshootDialog.cpp
* Update TroubleshootDialog.cpp
* update
* update
* make hash clickable
* fix compatible process counting
* export profiles overview instead copying to clipboard
* auto restart app after cleaning system folder
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* fix: 409 conflicts resolution in notifications
* fix: silently log other http errors
* fix: pass force push flag to start_sync_user_preset
* remove formatting churn
* fix: propagate force push down put_setting
* refactor render_hyperlink_action to PopNotification for reuse
* fix an issue that hold status should be cleared before force pushing.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Added UI force-sync button and fixed bug that didn't sync in one case and caused orange highlight
* Fix sync preset race: join old thread before starting new one
---------
Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* feat: add UI feedback on http error and some logs
* spelling fix
* show error dialog only once per session
* show errors with plater notification when on developer mode
* remove return
* remove irrelevant logs
* Add OrcaCloud sync platform and preset bundle sharing system
Introduce OrcaCloud, a cloud sync platform for user presets, alongside
a preset bundle system that enables sharing printer/filament/process
profiles as local exportable bundles or subscribed cloud bundles.
OrcaCloud platform:
- Auth to Orca Cloud
- Encrypted token storage (file-based or system keychain)
- User preset sync with
- Profile migration from default/bambu folders on first login
- Homepage integration with entrance to cloud.orcaslicer.com
Preset bundles:
- Local bundle import/export with bundle_structure.json metadata
- Subscribed cloud bundles with version-based update checking
- Thread-safe concurrent bundle access with read-write mutex
- Canonical bundle preset naming (_local/<id>/... and _subscribed/<id>/...)
- Bundle presets are read-only; grouped under subheaders in combo boxes
- PresetBundleDialog with auto-sync toggle, refresh, update notifications
- Hyperlinked bundle names to cloud bundle pages
Co-authored-by: Sabriel Koh <sabrielkcr@gmail.com>
Co-authored-by: Derrick <derrick992110@gmail.com>
Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com>
Co-authored-by: Ian Chua <iancrb00@gmail.com>
Co-authored-by: Draginraptor <draginraptor@gmail.com>
Co-authored-by: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: peterm-m <101202951+peterm-m@users.noreply.github.com>
* Fixed an issue on Windows it failed to login Orca Cloud with Google account
Since we now target wxWidgets 3.3, all wxCHECK_VERSION(3,1,N) checks
are always true. Remove the guards keeping only the true branches:
- I18N.hpp: Remove version guard around _wxGetTranslation_ctx macro
- ExtraRenderers.hpp, GUI_App.hpp: Simplify SUPPORTS_MARKUP to check
only wxUSE_MARKUP (version check always true)
- ConfigWizard.cpp: Remove manual wxArrayInt comparison fallback
- SendSystemInfoDialog.cpp: Simplify display scaling guard to _WIN32 only
- GUI_Utils.cpp: Remove IsDark() fallback using luma approximation
- wxinit.h: Remove legacy wxEVT_BUTTON and wxEVT_HTML_LINK_CLICKED
compat macros (these event names exist natively in wx 3.3)
* Add read support for Google's Draco (.drc) format.
* Fix build on Linux
* Use boost instead of fstat.
* Switch to boost memory-mapped file to save RAM and potentially improve performance.
* Trim trailing whitespace.
* Initial Draco write support.
Currently always exports with 16-bit precision and speed 0 (best compression).
The back-end function does have arguments to specify them, it's just not hooked into the GUI.
* Add Draco to the About dialogue.
* Fix Linux compile (hopefully)
* Add an option to associate DRC files on Windows.
* Implement a Preferences option to set Draco position quantization bits
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Some slight changes to ianalexis's suggestion.
* Implement a create_item_spinctrl() function for numeric inputs, and use that instead of create_item_input().
* Move "bits" to inside the spinctrl box.
* Refactor following yw4z's feedback
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Change to 0 bits as the default setting for Draco export precision.
* Change to a lossy checkbox and a bits field with a range of 8-30.
* Proper SpinInput code from yw4z
* Revert "Proper SpinInput code from yw4z"
This reverts commit 7e9c85f31a.
* Revert "Change to a lossy checkbox and a bits field with a range of 8-30."
This reverts commit d642c9bcc0.
* Redo preferences based on SoftFever's feedback
* Refactor to minimize code duplication
* Fix padding
* Improve Draco export quality level tooltip clarity
Clarify that 0 means lossless compression (not uncompressed),
document the valid lossy range (8-30), and better explain the
tradeoff between file size and geometric detail.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
1.Correct the wrong logic for support filament check
jira:STUDIO-13719
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia0d5dfa210a4335ea2a6a5f5a97ba69fd136c720
(cherry picked from commit 75c75f83679937b1fcd2ef120ac83cc9a67f125b)
1. Remove popup message with PVA
2. Add popup message with PETG
3. Encourage users to print both support base and interface with Supp.PLA
jira: STUDIO-11984
Change-Id: I7be5d033e47939b9b80ddb99635b2abbb8c848d5
(cherry picked from commit c7d05861270f925411256d8ce20093ec1701230a)
* Enable ability to open `prusaslicer://` links
* Add needed function to miniz
* Import Zip Functionality
Allows zip file to be drag and dropped or imported via the menu option
Based on prusa3d/PrusaSlicer@ce38e57 and current master branch files
* Update dialog style to match Orca
* Ensure link is from printables
* add toggle option in preferences
doesn't actually control anything yet
* Add Downloader classes
As-is from PS master
* Create Orca Styled Variant of Icons
* Add Icons to ImGui
* Use PS's Downloader impl for `prusaslicer://` links
* Implement URL Registering on Windows
* Implement prusaslicer:// link on macOS
* Remove unnecessary class name qualifier in Plater.hpp
* Add downloader desktop integration registration and undo
* Revert Info.plist
* register prusaslicer:// on user request only
* fix build error
* fix single instance problem
* format
* add orcalicer:// handler for Mac
Attempt to add Linux support but seems not working
---------
Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
* Enable ability to open `prusaslicer://` links
* Add needed function to miniz
* Import Zip Functionality
Allows zip file to be drag and dropped or imported via the menu option
Based on prusa3d/PrusaSlicer@ce38e57 and current master branch files
* Update dialog style to match Orca
* Ensure link is from printables
* add toggle option in preferences
doesn't actually control anything yet
* Add Downloader classes
As-is from PS master
* Create Orca Styled Variant of Icons
* Add Icons to ImGui
* Use PS's Downloader impl for `prusaslicer://` links
* Implement URL Registering on Windows
* Implement prusaslicer:// link on macOS
* Remove unnecessary class name qualifier in Plater.hpp
* Add downloader desktop integration registration and undo
* Revert Info.plist
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>