From: Youness Alaoui Date: Tue, 27 Jan 2015 21:03:21 +0000 (-0500) Subject: Hide layers scrollbar when view combobutton is expanded X-Git-Tag: lulzbot-15.02.1-1.01~75^2~3 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c9203277df713f8bba854994742e7dcd74e9f26d;p=cura.git Hide layers scrollbar when view combobutton is expanded This prevents the combo button from overlaying the layers scrollbar when the window's height isn't big enough. Fixes issue #18 --- diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index c3f36d61..179c0a50 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -102,7 +102,7 @@ class SceneView(openglGui.glGuiPanel): openglGui.glLabel(self.scaleForm, _("Uniform scale"), (0,8)) self.scaleUniform = openglGui.glCheckbox(self.scaleForm, True, (1,8), None) - self.viewSelection = openglGui.glComboButton(self, _("View mode"), 7, [26,19,11,15,23], [_("Normal"), _("Overhang"), _("Transparent"), _("X-Ray"), _("Layers")], (-1,0), self.OnViewChange) + self.viewSelection = openglGui.glComboButton(self, _("View mode"), 7, [26,19,11,15,23], [_("Normal"), _("Overhang"), _("Transparent"), _("X-Ray"), _("Layers")], (-1,0), self.OnViewChange, self.OnViewStateChange) self.viewSelection.setDisabled(True) #self.youMagineButton = openglGui.glButton(self, 26, _("Share on YouMagine"), (2,0), lambda button: youmagineGui.youmagineManager(self.GetTopLevelParent(), self._scene)) #self.youMagineButton.setDisabled(True) @@ -426,6 +426,9 @@ class SceneView(openglGui.glGuiPanel): self._engineResultView.setEnabled(self.viewMode == 'gcode') self.QueueRefresh() + def OnViewStateChange(self, state): + self._engineResultView.layerSelect.setHidden(self.viewMode != 'gcode' or state) + def OnRotateReset(self, button): if self._selectedObj is None: return diff --git a/Cura/gui/util/openglGui.py b/Cura/gui/util/openglGui.py index 2ac098fa..006d18e3 100644 --- a/Cura/gui/util/openglGui.py +++ b/Cura/gui/util/openglGui.py @@ -570,11 +570,12 @@ class glRadioButton(glButton): self._radioCallback(button) class glComboButton(glButton): - def __init__(self, parent, tooltip, defaultImageID, imageIDs, tooltips, pos, callback): + def __init__(self, parent, tooltip, defaultImageID, imageIDs, tooltips, pos, callback, stateCallback = None): super(glComboButton, self).__init__(parent, defaultImageID, tooltip, pos, self._onComboOpenSelect) self._imageIDs = imageIDs self._tooltips = tooltips self._comboCallback = callback + self._comboStateCallback = stateCallback self._selection = 0 self._disabled = False @@ -587,7 +588,11 @@ class glComboButton(glButton): def draw(self): if self._hidden: return + + if self._comboStateCallback is not None and self.hasFocus() != self._selected: + self._comboStateCallback(self.hasFocus()) self._selected = self.hasFocus() + super(glComboButton, self).draw() bs = self._base._buttonSize / 1.3