55 Commits

Author SHA1 Message Date
YuSanka
dd6f7a71f1 Using of wxWidgets 3.1.6 WIP:
* Create Cache of wxBitmapBundles instead of wxBitmaps
* Use wxBitmapBundles instead of wxBitmap for most of Widgets
* Use empty bitmabundles instead of wxNullBitmap for wxBitmapComboBoxes.
* Updated wxWidgets.cmake
* OSX specific: Discard BitmapComboBox overrides
+ some code cleaning
2022-06-27 16:40:01 +02:00
YuSanka
d81009c6ce Follow-up 56466abe99# - Fixed a Search in the Preferences options
+ Preferences dialog: Deleted unused variable 'reverted'
2022-06-27 11:10:33 +02:00
Lukas Matena
56466abe99 Fixed conflicts after stable->master merge 2022-04-27 23:45:16 +02:00
Lukas Matena
09fe421fe8 Merge branch 'stable' (no conflicts fixed) 2022-04-27 22:24:13 +02:00
YuSanka
a248490507 Fix for #7905 - Segfault when changing printer after loading 3mf with a different printer set
Update searcher only before open one of next dialogs : SearchDialog, UnsavedChangesDialog or DiffPresetDialog.
But only Search dialog respects to the mode of PrusaSlicer
2022-04-11 12:09:30 +02:00
YuSanka
f2aeca3a71 Options from the "Preferences" dialog added to the Search
Some code refactoring:
* use GUI_App::open_preferences() on all places where it's needed
* Preferences Dialog is an attribute of a ManeFrame class and created just ones during the MainFrame creation now.
* Created class Highlighter. Use it in Preferences and Tab
2021-12-22 14:38:23 +01:00
YuSanka
aff9e1f7ea MSW_DarkMode: Next Improvements
* Refreshed title bar for all Dialogs and MainFrame
* Refreshed header of the DataViewCtrl and ListView
* Refresh tooltips
* Redraw SpinCtrls
* Use system menu with is colored in respect to the color mode
* Preferences: Added parameter "Use system menu for application" and moved to the "Dark mode" tab with "Enable Dark mode parameter"
2021-11-05 10:01:13 +01:00
YuSanka
683cb42454 Fix for #6941 - Search Settings: Put focus into input field when navigating to the setting 2021-09-23 12:32:59 +02:00
YuSanka
e48c320f6d Fix for #6958 - GUI Setting non modal window: Search broken when main window hidden (minimized) 2021-09-22 15:53:59 +02:00
Oleksandra Yushchenko
fd071421cb
DarkMode for MSW (#6632)
* MSW specific: Dark Mode: First implementation

* Use menu instead of NoteBook

* Implemented MessageDialog
+ Fixed DarkMode for all dialogs and ColorPicker

* MSW DarkMode: Added missed updates for the switching between modes

* MSW DarkMode: Updated all existed context menus after switching of the mode
+ Added markers for the menu item witch is related to the selected tab

* Used wxFrame instead of wxDialog for SettingsDialog
(this change allow us to use menu bar in SettingsDialog)

+ fix for #6548 - Prusa Slicer 2.3.1 not activating non-modal settings window if settings window is minimized

* Implemented "Always use Dark mode colors" preference option

* Fixes for non_MSW build

* Next fixes for non-MSW builds

* Preferences: Fixed selection of the Settings Layout for non-MSW platforms
+ Updated DarkMode for colorpickers

* Windows DarkMode next fixes

* MSWDarkMode: Suppress to use system color to the PrusaSlicer
Select "Preferences -> Use Dark color mode (experimental)" to allow dark mode for the application

* Fixed MSW build

* MSWDarkMode: Upadteed color mode for ExtruderSequenceDialog and for dialogs related to the DoubleSlider

* Implemented Auto recreation of the PrusaSlicer when color mode is changed.

* Preferences: Added option "Set settings tabs as menu items (experimental)"
2021-06-18 19:46:04 +02:00
Oleksandra Yushchenko
ab886e037b
Implementation for #6216
* Implementation for #6216 - Make number keys select extruder when object treeview has focus
+ deleted unused extruder_selection()
+ Fixed notification after splitting of the solid object

* Follow up 85a10268b9 - OSX implementation
+ Added shortcuts description to the "Keyboard Shortcuts" dialog

* Workaround to use "+/-" and numbers shortcuts on Linux
+ Fixed build on Linux

* OSX specific: fixed a work of keyboard accelerators from numbers on NumPad keyboard

* KBShortcutsDialog: fixed shortcuts for "Preferences" and "Show/Hide 3Dconnexion devices settings dialog, if enabled" under osx
and "Set Printable/Unprintable" and "Set extruder" under Linux
 + OSX specific: Added minimize of the application on "Cmd+M"

* Hot-fix for 6efeb9d6b4

* Removed Linux specific workaround
2021-05-11 11:02:12 +02:00
YuSanka
991fa67fd1 OptionsSearcher improvements: Fixed a key for option() and groups_and_categories.
It contains "preset_type;opt_key" now. This key helps to avoid a collisions by using a same options key from different type presets.
Example: Option "elefant_foot_compensation" is in Print presets and SLA_printer presets
2021-03-24 11:14:07 +01:00
Vojtech Bubnik
4cdcfe6005 DiffPresetDialog, non modal to compare two presets.
Added menu item "Window->Compare presets" to compare more than one type
of presets.
Code refactoring for PresetComboBox: Use suffix "modified" just for
PlaterPresetComboBox and TabPresetComboBox
Code refactoring. wxDataViewCtrl and related functions extracted from
DiffPresetDialog and UnsavedChangesDialog to the separate class
DiffViewCtrl
Code refactoring, Tab.cpp: Build all unregular pages on a first build of
the Printer Settings

Squashed commit of the following:

commit 91f45a8a2d97d252337c7306dd02db607fd79c00
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Thu Feb 4 09:34:29 2021 +0100

    Fixed after merge

commit 09aa502498b08c059ecdf334f5db1567739b4520
Merge: 6df8e83e1 0baa92fab
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Thu Feb 4 09:31:43 2021 +0100

    Merge remote-tracking branch 'remotes/origin/master' into ys_diff_dlg

commit 6df8e83e1af3ba096ac39d25985b6deb2e0a245b
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Thu Feb 4 09:29:53 2021 +0100

    Tiny beautification.

commit e781ceaaf7c39bc073476409cc02918d9f182930
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 3 18:05:19 2021 +0100

    Reworked copying of PresetBundles:
    1) Simplified by using the default copy constructors and copy operators.
    2) Made safer by not allowing PresetCollection and PhysicalPrinterPresetCollection
       to be copied or instantiated outside of PresetBundle.
    3) Fixed Preset::vendor pointers after copying PresetBundle.

commit a8f0b7aa5156465cdb3e3dbb86feb66a64bcebc0
Author: YuSanka <yusanka@gmail.com>
Date:   Mon Jan 25 16:13:53 2021 +0100

    DiffPresetsDialog: Show compatibility to print/printer presets selected in DiffPresetDialog

commit 597451f930a4330376966d8cf3350056d4f85a73
Merge: cce5b5710 59017a7da
Author: YuSanka <yusanka@gmail.com>
Date:   Thu Jan 21 12:14:48 2021 +0100

    Merge remote-tracking branch 'origin/master' into ys_diff_dlg

commit cce5b5710d1225c7eaa52d0abb4b3f66fbd3b6a1
Author: YuSanka <yusanka@gmail.com>
Date:   Thu Jan 21 12:11:40 2021 +0100

    DiffPresetDialog: Fixed crash on ASAN build

commit ad8d728d89d7a75c2ac136ea8cdbb730ab774cd9
Author: YuSanka <yusanka@gmail.com>
Date:   Wed Jan 20 16:38:28 2021 +0100

    FullCompareDialog improvements

commit 316bafbeec9bb63f731b653d296062d9e22dd02f
Author: YuSanka <yusanka@gmail.com>
Date:   Wed Jan 20 09:25:46 2021 +0100

    DiffPresetDialog improvements:
    * Update presets lists after save changes in edited preset or change printer_technology
    * Tab.cpp: Build all unregular pages on a first build of the Printer Settings

commit 01171c8ef50389d0801b0ccc5746ab0c3b731b11
Author: YuSanka <yusanka@gmail.com>
Date:   Tue Jan 19 17:26:28 2021 +0100

    DiffPresetDialog : improvements
    * This dialog is non-modal now
    * "Compare presets" menu item is moved from "View" to the "Window" menu group
    * Added info tooltips for the bitmap buttons between presets
    * Added "Show all presets" checkbox
    * Show full difference between printer presets with different count of extruders

commit 3d38b62f3c9de8aab352ed3bcff297d5c0239b2e
Merge: e50fe6de9 9a2310ae9
Author: YuSanka <yusanka@gmail.com>
Date:   Mon Jan 18 10:00:18 2021 +0100

    Merge remote-tracking branch 'origin/master' into ys_diff_dlg

commit e50fe6de984decadfef3d4b952f0eec8ab9e6670
Author: YuSanka <yusanka@gmail.com>
Date:   Sat Jan 16 02:27:24 2021 +0100

    DiffPresetDialog improvements
    Added menu item "View->Compare presets" to compare more than one type of presets

commit bf08b7c8c969ad0ca631b9eeac1bc231f474e72b
Author: YuSanka <yusanka@gmail.com>
Date:   Sat Jan 16 00:28:39 2021 +0100

    Code refactoring. wxDataViewCtrl and related functions extracted from DiffPresetDialog and UnsavedChangesDialog to the separate class DiffViewCtrl

commit 7aeb63032b0bc2bd06e60990c060008660a5c44f
Author: YuSanka <yusanka@gmail.com>
Date:   Fri Jan 15 21:35:43 2021 +0100

    DiffPresetDialog: first implementation

commit 2f23d5af9d6b5dd670dfb7d06eedbe0e6d2960c6
Author: YuSanka <yusanka@gmail.com>
Date:   Thu Jan 14 16:28:43 2021 +0100

    Code refactoring for PresetComboBox.
    Use suffix "modified" just for PlaterPresetComboBox and TabPresetComboBox
2021-02-04 09:42:32 +01:00
Lukas Matena
d9c9de8eee Fixing GCC warnings 3 2021-01-29 10:47:02 +01:00
YuSanka
67500f13b1 Fix of #5202 - Fuzzy Search engine is too fuzzy
* changed evaluation coefficients inside fuzzy_match_recursive
 * don't add markers to the labels before it's used in fuzzy_match_recursive
 + follow-up 78a3d8b63e - added missed fix for one more line (use std::towlower instead of std::tolower for wchar_t) Problem was appearance on Cyrillic languages
2021-01-26 21:33:22 +01:00
YuSanka
569200eb99 Added "G-code thumbnails" parameter to the Printer Settings tab 2020-12-07 16:42:20 +01:00
YuSanka
9d34d350a5 Localization: Update POT
+ Fixed translation for the "Extruder n" category on the Printer Settings Tab
 + Fixed a crash, when scrolling inside Search imGui with some localization (e.t. Russion)
2020-12-01 16:44:53 +01:00
YuSanka
7f22ce63f6 Refactoring:
1. Use C++ style cast instead of C style
2. Deleted unused code from Search
2020-11-26 14:34:54 +01:00
YuSanka
ed2f03ec79 Localization:
Some phrases are corrected in the code
The POT-file is updated
2020-11-05 22:17:49 +01:00
YuSanka
4913378dbe Changed signature of the BitmapTextRenderer
+ Added experimental code for the rendering of the "markuped" text
2020-08-06 15:54:12 +02:00
YuSanka
1674d2af29 UnsavedChangesDialog improvements:
* support markup text and colored icons for cells

+ Extended BitmapTextRenderer for using of markup text
2020-08-05 19:25:04 +02:00
YuSanka
3cf2914a9e UnsavedChangesDialog:
first implementation
2020-07-30 16:16:56 +02:00
YuSanka
f138978fe7 Merge remote-tracking branch 'origin/master' into ys_ph_printers 2020-07-21 09:47:29 +02:00
YuSanka
53b6c93ceb Fix of #4441
SearchDialog: Select first item in the lit, if search_list has at least one item
2020-06-26 13:45:54 +02:00
YuSanka
19c4f32604 Preset and PresetBundle are moved to the _libslic3r_ folder 2020-06-16 17:03:06 +02:00
YuSanka
43cfd44864 Fixed export/import from/to amf and 3mf file. 2020-06-08 12:25:29 +02:00
Lukas Matena
6d432f5426 Fixes second part of #4282 (wxWidgets 3.0 compatibility) 2020-05-27 17:30:56 +02:00
Lukas Matena
48c186331a Includes cleanup:
GUI_App.hpp      (should not include) MainFrame.hpp
MainFrame.hpp    Plater.hpp
ModelArrange.hpp Model.hpp
Slicing.hpp      PrintConfig.hpp
FillBase.hpp     PrintConfig.hpp
GUI_App.hpp      PrintConfig.hpp
OptionsGroup.hpp GUI_App.hpp
2020-05-27 14:01:47 +02:00
YuSanka
db32c1f15a Changed processing of a wxEVT_SYS_COLOUR_CHANGED event.
Only UI is updated. The application doesn't recreated now
2020-05-21 17:29:00 +02:00
YuSanka
0b60d45cf3 Typo fix for the commit fce1943b94 2020-05-19 18:23:39 +02:00
YuSanka
fce1943b94 OSX specific bug fixing 2020-05-19 17:00:41 +02:00
YuSanka
5c142ccfd6 Bug fixing:
OSX specific: 1. For slNew and slDlg settings layout modes main frame could be minimized to the ridicules size.
                 So, set size for the Plater (as a min(default) size for the wxPanel)
              2. model->Clear() invoke wxEVT_DATAVIEW_SELECTION_CHANGED. So, set prevent_list_events before this call.
              3. Added a rounding for the scale value

Fix of #4261 (for the English version was called GetValue for non-created check control)
2020-05-18 15:59:09 +02:00
YuSanka
5c1d73682d Search: Use wxDataViewCtrl instead of wxListBox.
Added icons as a markers of settings type
For slDlg settings layout mode added process of "Ctrl+F" shortcut
2020-05-15 15:47:15 +02:00
YuSanka
559f9279d9 Search: 1. The position of the search window is in the middle of the scene.
2. When "Search in English" is checked, then search in English names too.
3. Added score value at the end of option name -> [score_value]
4. Set focus to the Plater, when switch from some tab with focused field to the Plater and search window is shown.
5. For the mode, when settings are in non-modal dialog, neither dialog nor tabpanel doesn't receive wxEVT_KEY_UP event, when some field is selected.
   So, like a workaround we check wxEVT_KEY_UP event for the Filed and switch between tabs if Ctrl+(1-4) was pressed

+ PreferencesDialog: fixed a control of the difference in layout modes
2020-05-12 08:32:54 +02:00
YuSanka
9189758992 Search: 1.Select first item in the search list by default
2. Show "Search in English" checkbox only, when Slicer is localized
3. Suppress search window hiding when leave the 3D-scene
2020-05-07 21:53:17 +02:00
YuSanka
a94c952b40 Search:
1. To the imGui Dialog added icons instead of settings type
2. Fixed a search trough the options with # symbol in opt_key
3. Deleted "Type" checkbox from the Search Windows and added "Search in English" checkbox (but without implementation for this moment)

Layouts:
1. Fixed a visibility of the "Switch to Settings" toolbar icon for the old layout mode
2020-05-06 20:51:50 +02:00
bubnikv
80b684b4b7 Fuzzy matching:
1) Handle localized and English searches as equivalent.
2) Search the whole section : group : label string, still give
   precedence to just the label.
2020-05-04 21:22:56 +02:00
bubnikv
07ab5c31e6 WIP Fuzzy search rework.
1) fts_fuzzy_match has been extended to support wchar_t for a char
   type and uint16_t for an index type for the match indices.
2) fts_fuzzy_match has been extended to place a proper stopper character
   into the match buffer.
3) Slicer integration now uses the fuzzy match indices for highlighting.
4) Slicer integration now correctly highlights the matched word.
5) Slicer search dialog now sorts based on match AND category.

Further modifications are planned:
1) Matching in local language vs. English: Just show the English variant
   if matched in English. Don't mix the two together.
2) Matching the group or category: Continue matching the label.
3) For matches with equal match quality and category sort alphanumerically.
2020-05-01 08:57:24 +02:00
bubnikv
cc2d33f6a0 Search: Fixed returning of a pointer to temporary. 2020-04-30 12:03:49 +02:00
YuSanka
f9b3f2d45e Search: Code cleaning
+ Reverted "Plater" tab to the Settings Notepad
2020-04-24 11:01:14 +02:00
YuSanka
07411e795c Search: Implemented SearchDialog.
Search window on Plater: set flag SelectAll for search line
2020-04-22 15:46:23 +02:00
YuSanka
83782e59b6 Search: Implemented "Option type" checkbox for imGui window on Plater
+ code refactoring
2020-04-20 21:54:46 +02:00
YuSanka
6a8d0c5d84 Search: Experiment button 2020-04-16 15:49:40 +02:00
YuSanka
b69dfd63ca Completed a search list cleaning (deleted unused options).
+ Implemented BlinkingBitmap
+ Options, that doesn't have related controls, are highlighted near the widgets.
2020-04-16 09:59:12 +02:00
YuSanka
45147d887b Implemented cursor movement inside SearchComboPopup
+ Added checkboxes for editing of the option's name (include "Group"/"Category" or not)
+ some code refactoring
2020-04-14 17:54:15 +02:00
YuSanka
167f7cf5de Added map for save Group and Category values for each option
+ Some code refactoring in Tab (the translation of the titles moved to the OptionGroups) and Search
+ Fixed assert in fts_fuzzy_match
2020-04-13 17:55:38 +02:00
YuSanka
8ab7956c26 Search: Added shortkey Ctrl+F on Plater 2020-04-08 09:47:33 +02:00
YuSanka
05f4b7aa60 Search: Code cleaning 2020-04-07 20:34:09 +02:00
YuSanka
dcdafb6208 Implemented OnMouseMove and OnMouseClick for PopupSearchList 2020-04-07 19:09:33 +02:00
YuSanka
cd13356b6d Code cleaning 2020-04-07 16:22:03 +02:00