diff --git a/modules/gui/pymod/scene/inspector_widget.py b/modules/gui/pymod/scene/inspector_widget.py index 6535203cecaa8c8e718621ec09b088d59c2f700e..057a9c6b8d8efed0eabccb2fb2302c6ddcb4b989 100644 --- a/modules/gui/pymod/scene/inspector_widget.py +++ b/modules/gui/pymod/scene/inspector_widget.py @@ -28,8 +28,7 @@ from toolbar_options_widget import ToolBarOptionsWidget from render_options_widget import RenderOptionsWidget from color_options_widget import ColorOptionsWidget from ost.gui.scene.scene_observer_impl import SceneObserverImpl -from preset_widget import PresetWidget -from map_level_widget import MapLevelWidget +from map_level_widget import AdditionalSettingsWidget class InspectorWidget(ToolBarOptionsWidget): ICONS_PATH = os.path.join(ost.GetSharedDataPath(), "scene", "icons/") @@ -39,8 +38,7 @@ class InspectorWidget(ToolBarOptionsWidget): options = [ [InspectorWidget.ICONS_PATH+"render_icon.png",RenderOptionsWidget(self),None], [InspectorWidget.ICONS_PATH+"color_icon.png",ColorOptionsWidget(self),None], - [InspectorWidget.ICONS_PATH+"preset_icon.png", PresetWidget(self),None], - [InspectorWidget.ICONS_PATH+"preset_icon.png", MapLevelWidget(self),"Map Level Options"], + [InspectorWidget.ICONS_PATH+"preset_icon.png", AdditionalSettingsWidget(self),"Additional Node Settings"], [InspectorWidget.ICONS_PATH+"tool_icon.png",app.tool_options_win.qobject,"Tool Options"] ] for o in options: diff --git a/modules/gui/pymod/scene/map_level_widget.py b/modules/gui/pymod/scene/map_level_widget.py index 51584c73a9b187a6b83f7012f6227f607b45ec13..d86e91f072bdb4ad3f06727af53589c016ffedfa 100644 --- a/modules/gui/pymod/scene/map_level_widget.py +++ b/modules/gui/pymod/scene/map_level_widget.py @@ -28,6 +28,48 @@ except ImportError: pass from PyQt4 import QtCore, QtGui +from preset_widget import PresetWidget + +class AdditionalSettingsWidget(QtGui.QWidget): + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + self.stack = QtGui.QStackedWidget(self); + self.map_widget_ = MapLevelWidget(self) + self.setContentsMargins(0,0,0,0) + self.preset_widget_ = PresetWidget(self) + self.stack.addWidget(self.map_widget_); + self.stack.addWidget(self.preset_widget_); + self.stack.setContentsMargins(0,0,0,0) + self.setMinimumSize(self.preset_widget_.minimumSize()) + + def Update(self): + self.setEnabled(True) + scene_selection = gui.SceneSelection.Instance() + all_img = True + all_entity = True + for i in range(0,scene_selection.GetActiveNodeCount()): + node = scene_selection.GetActiveNode(i) + if not (isinstance(node, gfx.Entity) or isinstance(node, gfx.Surface)): + all_entity = False + if (not _img_present) or (not isinstance(node, gfx.MapIso)): + all_img = False + if all_img: + self.map_widget_.Update() + self.setMinimumSize(self.map_widget_.minimumSize()) + self.resize(self.map_widget_.minimumSize()) + self.stack.resize(self.map_widget_.minimumSize()) + self.stack.setMinimumSize(self.map_widget_.minimumSize()) + self.stack.setCurrentWidget(self.map_widget_) + elif all_entity: + self.preset_widget_.Update() + self.setMinimumSize(self.preset_widget_.minimumSize()) + self.resize(self.preset_widget_.minimumSize()) + self.stack.resize(self.preset_widget_.minimumSize()) + self.stack.setMinimumSize(self.preset_widget_.minimumSize()) + self.stack.setCurrentWidget(self.preset_widget_) + else: + self.setEnabled(False) + #Map Level Widget class MapLevelWidget(QtGui.QWidget): def __init__(self, parent=None): @@ -56,7 +98,7 @@ class MapLevelWidget(QtGui.QWidget): QtCore.QObject.connect(self.level_preview_, QtCore.SIGNAL("levelModified"), self.ModifySpinBox) QtCore.QObject.connect(self.level_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLevel) - self.setMinimumSize(250,300) + self.setMinimumSize(250,200) def Update(self): scene_selection = gui.SceneSelection.Instance() @@ -93,7 +135,7 @@ class LevelPreview(QtGui.QWidget): #Defaults self.border_offset_ = 3 - self.preview_height_ = 100 + self.preview_height_ = 150 QtGui.QWidget.__init__(self, parent) #Ui diff --git a/modules/gui/pymod/scene/preset_widget.py b/modules/gui/pymod/scene/preset_widget.py index d581a38ea137c80a16baaf07584f8ed81f25986d..cb67283e839db899794a3ced0ba1056080aaea1f 100644 --- a/modules/gui/pymod/scene/preset_widget.py +++ b/modules/gui/pymod/scene/preset_widget.py @@ -67,7 +67,7 @@ class PresetWidget(QtGui.QWidget): QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("doubleClicked(const QModelIndex)"), self.Load) - self.setMinimumSize(250,150) + self.setMinimumSize(250,200) def CreateImmutableContextMenu(self): self.immucontext_menu_ = QtGui.QMenu("Context menu", self) diff --git a/modules/gui/pymod/scene/toolbar_options_widget.py b/modules/gui/pymod/scene/toolbar_options_widget.py index 006c09b160ba710c83d15679706c1ff20aa4cbf2..d331b62b4cd15d5b5ddfc22f83c2b5fbb13951e1 100644 --- a/modules/gui/pymod/scene/toolbar_options_widget.py +++ b/modules/gui/pymod/scene/toolbar_options_widget.py @@ -126,13 +126,13 @@ class ToolBarOptionsWidget(QtGui.QWidget): self.current_action_ = action widget = action.data().toPyObject()[1] self.stackedWidget.setCurrentWidget(widget) - self.DoSomething(widget) if hasattr(widget, "Update"): widget.Update() if(self.current_action_ == action): self.current_action_.setChecked(True) else: self.current_action_=action + self.DoSomething(widget) #Private Methods def __GetCurrentWidget(self): return self.stackedWidget.currentWidget();