diff --git a/CMakeLists.txt b/CMakeLists.txt
index 268380dc2..9a69d3bbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -569,7 +569,7 @@ elseif (SLIC3R_FHS)
# CMAKE_INSTALL_FULL_DATAROOTDIR: read-only architecture-independent data root (share)
set(SLIC3R_FHS_RESOURCES "${CMAKE_INSTALL_FULL_DATAROOTDIR}/PrusaSlicer")
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
- PATTERN "*/data" EXCLUDE PATTERN "*/udev" EXCLUDE
+ PATTERN "*/udev" EXCLUDE
)
install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
diff --git a/resources/data/hints.ini b/resources/data/hints.ini
index 2ebf9091f..28a13236d 100644
--- a/resources/data/hints.ini
+++ b/resources/data/hints.ini
@@ -1,3 +1,94 @@
+# THIS DOCUMENT CONTAINS DATA FOR HINTS NOTIFICATIONS
+#
+# Each notification is divided by
+# [hint:*name of notification*]
+#
+# Each notification MUST have text var in format:
+# text = Headline of hint\nBody of hint.
+# Headline is divided by new line (\n) from body.
+# Headline is automaticaly printed as Bold.
+# Body can contain bold marks: text to be bold (currently rendered as different color, not bold due to font limitations)
+# Body can contain hypertext: hypertext text
+# Hypertext must be max one per notification and must be closed by
+#
+# Notification can have documentation link:
+# documentation_link = https://help.prusa3d.com/en/article/name-of-article
+#
+# If notification contains hypertext, it needs to be specified by hypertext_type var.
+# each type needs to be supported with one or more additional vars.
+# These types are possible:
+#
+# Settings highlight (like search feature)
+# hypertext_type = settings
+# hypertext_settings_opt = name_of_settings (hover over settings value and copy last line of hover text)
+# hypertext_settings_type = 1 (1 - 5 according to settings tab - to be channged to name of tabs instead of numbers)
+# hypertext_settings_category = Infill (name of panel - written on left in settings)
+#
+# Plater top toolbar highlight
+# hypertext_type = plater
+# hypertext_plater_item = nameofbutton (internal name of GLToolbar items)
+#
+# Plater gizmos (left) toolbar highlight
+# hypertext_type = gizmo
+# hypertext_gizmo_item = name (name of svg icon of gizmo in resources without .svg suffix)
+#
+# Open preferences (might add item to highlight)
+# hypertext_type = preferences
+# hypertext_preferences_page = 0 (values 0-2 according to prefernces tab to be opened)
+#
+# Open gallery (no aditional var)
+# hypertext_type = gallery
+#
+#
+# Each notification can have disabled and enabled modes and techs - divided by ; and space
+# enabled_tags = ...
+# disabled_tags = ...
+# supported tags are: simple; advanced; expert; FFF; MMU; SLA; Windows; Linux; OSX;
+# Tags are case sensitive.
+# FFF is affirmative for both one or more extruder printers.
+# Algorithm shows hint only if ALL enabled tags are affirmative. (so never do enabled_tags = FFF; SLA;)
+# Algorithm shows hint only if not in all disabled tags.
+# if there are both disabled and preferred, only preferred that are not in disabled are valid.
+
+
+[hint:Fuzzy skin]
+text = Fuzzy skin\nDid you know that you can create rough fibre-like texture on the sides of your models using theFuzzy skinfeature? You can also use modifiers to apply fuzzy-skin only to a portion of your model.
+hypertext_type = settings
+hypertext_settings_opt = fuzzy_skin
+hypertext_settings_type = 1
+hypertext_settings_category = Layers and perimeters
+disabled_tags = SLA
+
+[hint:Shapes gallery]
+text = Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery.
+hypertext_type = gallery
+disable_modes = simple
+
+[hint:Auto-arrange settings]
+text = Auto-arrange settings\nDid you know that you can right-click theauto-arrange iconto adjust the size of the gap between objects and to allow automatic rotations?
+hypertext_type = plater
+hypertext_plater_item = arrange
+
+[hint:Negative volume]
+text = Negative volume\nDid you know that you can subtract one mesh from another using the Negative volume modifier? That way you can, for example, create easily resizable holes directly in PrusaSlicer. Read more in the documentation. (Requires Advanced or Expert mode.)
+hypertext_type = link
+documentation_link = https://help.prusa3d.com/en/article/negative-volume_238503
+disabled_tags = SLA; simple
+
+[hint:Simplify mesh]
+text = Simplify mesh\nDid you know that you can reduce the number of triangles in a mesh using the Simplify mesh feature? Right-click the model and select Simplify model. Read more in the documentation.
+hypertext_type = link
+documentation_link = https://help.prusa3d.com/en/article/simplify-mesh_238941
+
+[hint:Reload from disk]
+text = Reload from disk\nDid you know that if you created a newer version of your model, you can simply reload it in PrusaSlicer? Right-click the model in the 3D view and choose Reload from disk. Read more in the documentation.
+hypertext_type = link
+documentation_link = https://help.prusa3d.com/en/article/reload-from-disk_120427
+
+[hint:Hiding sidebar]
+text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences.
+hypertext_type = preferences
+hypertext_preferences_page = 2
[hint:Perspective camera]
text = Perspective camera\nDid you know that you can use the K key to quickly switch between an orthographic and perspective camera?
@@ -19,38 +110,24 @@ hypertext_type = settings
hypertext_settings_opt = infill_every_layers
hypertext_settings_type = 1
hypertext_settings_category = Infill
-disabled_modes = SLA; simple
-
-[hint:Hiding sidebar]
-text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences.
-hypertext_type = preferences
-hypertext_preferences_page = 2
+disabled_tags = SLA; simple
[hint:Variable layer height]
text = Variable layer height\nDid you know that you can print different regions of your model with a different layer height and smooth the transitions between them? Try theVariable layer height tool.(Not available for SLA printers.)
hypertext_type = plater
hypertext_plater_item = layersediting
-disabled_modes = SLA
+disabled_tags = SLA
[hint:Undo/redo history]
text = Undo/redo history\nDid you know that you can right-click theundo/redo arrowsto see the history of changes and to undo or redo several actions at once?
hypertext_type = plater
hypertext_plater_item = undo
-[hint:Auto-arrange settings]
-text = Auto-arrange settings\nDid you know that you can right-click theauto-arrange iconto adjust the size of the gap between objects and to allow automatic rotations?
-hypertext_type = plater
-hypertext_plater_item = arrange
-
-[hint:Reload from disk]
-text = Reload from disk\nDid you know that if you created a newer version of your model, you can simply reload it in PrusaSlicer? Right-click the model in the 3D view and choose Reload from disk. Read more in thedocumentation.
-hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/reload-from-disk_120427
-
[hint:Different layer height for each model]
-text = Different layer height for each model\nDid you know that you can print each model on the plater with a different layer height? Right-click the model in the 3D view, choose Layers and Perimeters and adjust the values in the right panel. Read more in thedocumentation.
+text = Different layer height for each model\nDid you know that you can print each model on the plater with a different layer height? Right-click the model in the 3D view, choose Layers and Perimeters and adjust the values in the right panel. Read more in the documentation.
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/per-model-settings_1674
+documentation_link= https://help.prusa3d.com/en/article/per-model-settings_1674
+disabled_tags = SLA
[hint:Solid infill threshold area]
text = Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)
@@ -58,10 +135,10 @@ hypertext_type = settings
hypertext_settings_opt = solid_infill_below_area
hypertext_settings_type = 1
hypertext_settings_category = Infill
-disabled_modes = SLA; simple; advanced
+enabled_tags = FFF; expert
[hint:Search functionality]
-text = Search functionality\n Did you know that you use theSearchtool to quickly find a specific PrusaSlicer setting? Or use the familiar shortcut Ctrl+F.
+text = Search functionality\nDid you know that you use theSearchtool to quickly find a specific PrusaSlicer setting? Or use the familiar shortcut Ctrl+F.
hypertext_type = plater
hypertext_plater_item = search
@@ -71,11 +148,6 @@ text = Box selection\nDid you know that you can do a box selection with Shift+Mo
[hint:Zoom on selected objects or on all objects if none selected]
text =Zoom on selected objects or on all objects if none selected\nDid you know that you can zoom in on selected objects by pressing the Z key? If none are selected, the camera will zoom on all objects in the scene.
-[hint:Shapes gallery]
-text = Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery.
-hypertext_type = gallery
-disable_modes = simple
-
[hint:Printable toggle]
text = Printable toggle\nDid you know that you can disable the G-code generation for the selected model without having to move or delete it? Toggle the Printable property of a model from the Right-click context menu.
@@ -89,51 +161,39 @@ text = PageUp / PageDown quick rotation by 45 degrees\nDid you know that you can
text = Load config from G-code\nDid you know that you can use File-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import SL1 archive, which also lets you reconstruct 3D models from the voxel data.
[hint:Ironing]
-text = Ironing\nDid you know that you can smooth top surfaces of prints using Ironing? The nozzle will run a special second infill phase at the same layer to fill in holes and flatten any lifted plastic. Read more in thedocumentation. (Requires Advanced or Expert mode.)
+text = Ironing\nDid you know that you can smooth top surfaces of prints using Ironing? The nozzle will run a special second infill phase at the same layer to fill in holes and flatten any lifted plastic. Read more in the documentation. (Requires Advanced or Expert mode.)
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/ironing_177488
-disabled_modes = SLA; simple
-
-[hint:Fuzzy skin]
-text = Fuzzy skin\nDid you know that you can create rough fibre-like texture on the sides of your models using theFuzzy skinfeature? You can also use modifiers to apply fuzzy-skin only to a portion of your model.
-hypertext_type = settings
-hypertext_settings_opt = fuzzy_skin
-hypertext_settings_type = 1
-hypertext_settings_category = Layers and perimeters
-disabled_modes = SLA
-
-[hint:Negative volume]
-text = Negative volume\nDid you know that you can subtract one mesh from another using the Negative volume modifier? That way you can, for example, create easily resizable holes directly in PrusaSlicer. Read more in thedocumentation.(Requires Advanced or Expert mode.)
-hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/negative-volume_238503
-disabled_modes = SLA; simple
+documentation_link = https://help.prusa3d.com/en/article/ironing_177488
+disabled_tags = SLA; simple
[hint:Paint-on supports]
text = Paint-on supports\nDid you know that you can paint directly on the object and select areas, where supports should be enforced or blocked? Try thePaint-on supportsfeature. (Requires Advanced or Expert mode.)
hypertext_type = gizmo
hypertext_gizmo_item = fdm_supports
-disabled_modes = SLA; simple
+disabled_tags = SLA; simple
[hint:Paint-on seam]
text = Paint-on seam\nDid you know that you can paint directly on the object and select where to place the start/endpoint of each perimeter loop? Try theSeam paintingfeature. (Requires Advanced or Expert mode.)
hypertext_type = gizmo
hypertext_gizmo_item = seam
-disabled_modes = SLA; simple
+disabled_tags = SLA; simple
[hint:Insert Pause]
-text = Insert Pause\nDid you know that you can schedule the print to pause at a specific layer? Right-click the layer slider in the Preview and select Add pause print (M601). This can be used to insert magnets, weights or nuts into your prints. Read more in thedocumentation.
+text = Insert Pause\nDid you know that you can schedule the print to pause at a specific layer? Right-click the layer slider in the Preview and select Add pause print (M601). This can be used to insert magnets, weights or nuts into your prints. Read more in the documentation.
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/insert-pause-or-custom-g-code-at-layer_120490#insert-pause-at-layer
+documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom-g-code-at-layer_120490#insert-pause-at-layer
+disabled_tags = SLA
[hint:Insert Custom G-code]
-text = Insert Custom G-code\nDid you know that you can insert a custom G-code at a specific layer? Right-click the layer in the Preview and select Add custom G-code. With this function you can, for example, create a temperature tower. Read more in thedocumentation.
+text = Insert Custom G-code\nDid you know that you can insert a custom G-code at a specific layer? Right-click the layer in the Preview and select Add custom G-code. With this function you can, for example, create a temperature tower. Read more in the documentation.
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/insert-pause-or-custom-g-code-at-layer_120490#insert-custom-g-code-at-layer
+documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom-g-code-at-layer_120490#insert-custom-g-code-at-layer
+disabled_tags = SLA
[hint:Configuration snapshots]
-text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. Read more in thedocumentation.
+text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. Read more in the documentation.
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776
+documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776
[hint:Minimum wall thickness]
text = Minimum wall thickness\nDid you know that instead of the number of top and bottom layers, you can define theMinimum shell thicknessin millimeters? This feature is especially useful when using the variable layer height function.
@@ -141,7 +201,7 @@ hypertext_type = settings
hypertext_settings_opt = top_solid_min_thickness
hypertext_settings_type = 1
hypertext_settings_category = Layers and perimeters
-disabled_modes = SLA
+disabled_tags = SLA
[hint:Settings in non-modal window]
text = Settings in non-modal window\nDid you know that you can open the Settings in a new non-modal window? This means you can have settings open on one screen and the G-code Preview on the other. Go to thePreferencesand select Settings in non-modal window.
@@ -149,17 +209,14 @@ hypertext_type = preferences
hypertext_preferences_page = 2
[hint:Adaptive infills]
-text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in thedocumentation.
+text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in the documentation.
hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/infill-patterns_177130
+documentation_link = https://help.prusa3d.com/en/article/infill-patterns_177130
+disabled_tags = SLA
[hint:Fullscreen mode]
text = Fullscreen mode\nDid you know that you can switch PrusaSlicer to fullscreen mode? Use the F11 hotkey.
-
-[hint:Simplify mesh]
-text = Simplify mesh\nDid you know that you can reduce the number of triangles in a mesh using the Simplify mesh feature? Right-click the model and select Simplify model. Read more in thedocumentation.
-hypertext_type = link
-hypertext_link = https://help.prusa3d.com/en/article/simplify-mesh_238941
+enabled_tags = Windows
#[hint:]
#text =
diff --git a/resources/icons/fuzzy_skin.svg b/resources/icons/fuzzy_skin.svg
index b8ba0a651..f1ddc6b33 100644
--- a/resources/icons/fuzzy_skin.svg
+++ b/resources/icons/fuzzy_skin.svg
@@ -1,8 +1,13 @@
-
+
diff --git a/resources/icons/info.png b/resources/icons/info.png
deleted file mode 100644
index 9eeee9b3c..000000000
Binary files a/resources/icons/info.png and /dev/null differ
diff --git a/resources/icons/info.svg b/resources/icons/info.svg
new file mode 100644
index 000000000..276b26061
--- /dev/null
+++ b/resources/icons/info.svg
@@ -0,0 +1,71 @@
+
+
diff --git a/resources/icons/mmu_segmentation.svg b/resources/icons/mmu_segmentation.svg
new file mode 100644
index 000000000..715e6ec28
--- /dev/null
+++ b/resources/icons/mmu_segmentation.svg
@@ -0,0 +1,28 @@
+
+
+
diff --git a/resources/icons/notification_clippy.svg b/resources/icons/notification_clippy.svg
new file mode 100644
index 000000000..406ad2bfa
--- /dev/null
+++ b/resources/icons/notification_clippy.svg
@@ -0,0 +1,280 @@
+
+
diff --git a/resources/icons/notification_documentation.svg b/resources/icons/notification_documentation.svg
new file mode 100644
index 000000000..21e7cfcb3
--- /dev/null
+++ b/resources/icons/notification_documentation.svg
@@ -0,0 +1,86 @@
+
+
diff --git a/resources/icons/notification_documentation_hover.svg b/resources/icons/notification_documentation_hover.svg
new file mode 100644
index 000000000..0c6b2e207
--- /dev/null
+++ b/resources/icons/notification_documentation_hover.svg
@@ -0,0 +1,97 @@
+
+
diff --git a/resources/icons/objlist_info.svg b/resources/icons/objlist_info.svg
new file mode 100644
index 000000000..6e11a9b77
--- /dev/null
+++ b/resources/icons/objlist_info.svg
@@ -0,0 +1,17 @@
+
+
+
diff --git a/resources/icons/toolbar_arrow.png b/resources/icons/toolbar_arrow.png
index 65905a727..90ddce38f 100644
Binary files a/resources/icons/toolbar_arrow.png and b/resources/icons/toolbar_arrow.png differ
diff --git a/resources/icons/toolbar_arrow.svg b/resources/icons/toolbar_arrow.svg
index a1476bcd9..ba025d74b 100644
--- a/resources/icons/toolbar_arrow.svg
+++ b/resources/icons/toolbar_arrow.svg
@@ -1,79 +1,21 @@
-
-