chiark / gitweb /
Hide layers scrollbar when view combobutton is expanded
authorYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Tue, 27 Jan 2015 21:03:21 +0000 (16:03 -0500)
committerYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Tue, 27 Jan 2015 21:03:21 +0000 (16:03 -0500)
This prevents the combo button from overlaying the layers scrollbar
when the window's height isn't big enough.
Fixes issue #18

Cura/gui/sceneView.py
Cura/gui/util/openglGui.py

index c3f36d61f8b9dc4ed784cefd85919edcc70ff2d9..179c0a50f41dd5a0613adce637d9cdca5fbc0be7 100644 (file)
@@ -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
index 2ac098fa8b1d8acd792d1765e2ad125aa65c0357..006d18e3766c19b467419915a4d8ab5ff050ab67 100644 (file)
@@ -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