diff --git a/src/mcedit2/editortools/__init__.py b/src/mcedit2/editortools/__init__.py index e82fed2..419be91 100644 --- a/src/mcedit2/editortools/__init__.py +++ b/src/mcedit2/editortools/__init__.py @@ -57,6 +57,8 @@ class EditorTool(QtCore.QObject): overlayNode = None editorSession = weakrefprop() + modifiesWorld = False + def __init__(self, editorSession, *args, **kwargs): """ Initialize toolWidget here. @@ -120,6 +122,8 @@ class EditorTool(QtCore.QObject): toolPicked = QtCore.Signal(object) def pick(self): + if self.editorSession.readonly and self.modifiesWorld: + return self.toolPicked.emit(self.name) def pickToolAction(self): @@ -142,6 +146,7 @@ class EditorTool(QtCore.QObject): triggered=self.pick, checkable=True, icon=icon, + enabled=not(self.editorSession.readonly and self.modifiesWorld) ) action.toolName = name diff --git a/src/mcedit2/editortools/brush/__init__.py b/src/mcedit2/editortools/brush/__init__.py index 7428ef1..69adb07 100644 --- a/src/mcedit2/editortools/brush/__init__.py +++ b/src/mcedit2/editortools/brush/__init__.py @@ -112,6 +112,8 @@ class BrushTool(EditorTool): iconName = "brush" maxBrushSize = 512 + modifiesWorld = True + def __init__(self, editorSession, *args, **kwargs): super(BrushTool, self).__init__(editorSession, *args, **kwargs) self.toolWidget = BrushToolWidget() diff --git a/src/mcedit2/editortools/clone.py b/src/mcedit2/editortools/clone.py index 5111d5f..a094441 100644 --- a/src/mcedit2/editortools/clone.py +++ b/src/mcedit2/editortools/clone.py @@ -110,6 +110,7 @@ class CloneTool(EditorTool): """ iconName = "clone" name = "Clone" + modifiesWorld = True def __init__(self, editorSession, *args, **kwargs): super(CloneTool, self).__init__(editorSession, *args, **kwargs) diff --git a/src/mcedit2/editortools/flood_fill.py b/src/mcedit2/editortools/flood_fill.py index 9a461a3..d580780 100644 --- a/src/mcedit2/editortools/flood_fill.py +++ b/src/mcedit2/editortools/flood_fill.py @@ -19,6 +19,7 @@ log = logging.getLogger(__name__) class FloodFillTool(EditorTool): name = "Flood Fill" iconName = "flood_fill" + modifiesWorld = True def mousePress(self, event): pos = event.blockPosition diff --git a/src/mcedit2/editortools/generate.py b/src/mcedit2/editortools/generate.py index db0fd5a..d6867e4 100644 --- a/src/mcedit2/editortools/generate.py +++ b/src/mcedit2/editortools/generate.py @@ -147,6 +147,7 @@ class GenerateTool(EditorTool): iconName = "generate" instantDisplayChunks = 32 + modifiesWorld = True def __init__(self, *args, **kwargs): EditorTool.__init__(self, *args, **kwargs) diff --git a/src/mcedit2/editortools/move.py b/src/mcedit2/editortools/move.py index 4f5a85f..dd7df4b 100644 --- a/src/mcedit2/editortools/move.py +++ b/src/mcedit2/editortools/move.py @@ -98,6 +98,7 @@ class MoveFinishCommand(SimpleRevisionCommand): class MoveTool(EditorTool): iconName = "move" name = "Move" + modifiesWorld = True def __init__(self, editorSession, *args, **kwargs): super(MoveTool, self).__init__(editorSession, *args, **kwargs)