Add a preference to change LayerView top layers between 1 and 5

Fixes CURA-1643
This commit is contained in:
Arjen Hiemstra 2016-06-02 11:23:18 +02:00
parent 5873f1d4d0
commit 070e791b94
2 changed files with 42 additions and 1 deletions

View file

@ -12,6 +12,7 @@ from UM.Math.Color import Color
from UM.Mesh.MeshData import MeshData from UM.Mesh.MeshData import MeshData
from UM.Job import Job from UM.Job import Job
from UM.Message import Message from UM.Message import Message
from UM.Preferences import Preferences
from UM.View.RenderBatch import RenderBatch from UM.View.RenderBatch import RenderBatch
from UM.View.GL.OpenGL import OpenGL from UM.View.GL.OpenGL import OpenGL
@ -44,7 +45,10 @@ class LayerView(View):
self._top_layers_job = None self._top_layers_job = None
self._activity = False self._activity = False
self._solid_layers = 1 Preferences.getInstance().addPreference("view/top_layer_count", 1)
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
self._top_layer_timer = QTimer() self._top_layer_timer = QTimer()
self._top_layer_timer.setInterval(50) self._top_layer_timer.setInterval(50)
@ -212,6 +216,16 @@ class LayerView(View):
self._top_layers_job = None self._top_layers_job = None
def _onPreferencesChanged(self, preference):
if preference != "view/top_layer_count":
return
self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count"))
self._current_layer_mesh = None
self._current_layer_jumps = None
self._top_layer_timer.start()
class _CreateTopLayersJob(Job): class _CreateTopLayersJob(Job):
def __init__(self, scene, layer_number, solid_layers): def __init__(self, scene, layer_number, solid_layers):
super().__init__() super().__init__()

View file

@ -19,6 +19,7 @@ UM.PreferencesPage
{ {
UM.Preferences.resetPreference("view/show_overhang"); UM.Preferences.resetPreference("view/show_overhang");
UM.Preferences.resetPreference("view/center_on_select"); UM.Preferences.resetPreference("view/center_on_select");
UM.Preferences.resetPreference("view/top_layer_count");
} }
Column Column
@ -57,12 +58,38 @@ UM.PreferencesPage
} }
} }
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Displays")
CheckBox
{
id: topLayerCheckbox
text: catalog.i18nc("@action:button","Display five top layers in layer view.");
checked: UM.Preferences.getValue("view/top_layer_count") == 5
onClicked:
{
if(UM.Preferences.getValue("view/top_layer_count") == 5)
{
UM.Preferences.setValue("view/top_layer_count", 1)
}
else
{
UM.Preferences.setValue("view/top_layer_count", 5)
}
}
}
}
Connections { Connections {
target: UM.Preferences target: UM.Preferences
onPreferenceChanged: onPreferenceChanged:
{ {
overhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang")) overhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang"))
centerCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select")) centerCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select"))
topLayerCheckbox = UM.Preferences.getValue("view/top_layer_count") == 5
} }
} }
} }