diff --git a/docs/scripting-doc/index.d.ts b/docs/scripting-doc/index.d.ts index cb09306c4b..0b6c68d5df 100644 --- a/docs/scripting-doc/index.d.ts +++ b/docs/scripting-doc/index.d.ts @@ -1562,7 +1562,7 @@ declare class Asset extends TiledObject { /** * The signal emitted when {@link modified} changes. */ - readonly modifiedChanged: Signal; + readonly modifiedChanged: Signal; /** * Whether the asset is a {@link TileMap}. @@ -2369,6 +2369,14 @@ interface MapEditor { */ currentBrush : TileMap + /** + * Signal emitted when the current brush has changed. + * + * This signal is also emitted when assigning to {@link currentBrush}, so be + * careful not to cause an infinite loop. + */ + currentBrushChanged : Signal; + /** * Gets the currently selected {@link WangSet} in the "Terrain Sets" view. * @@ -2383,7 +2391,7 @@ interface MapEditor { * * @since 1.8 */ - readonly currentWangSetChanged: Signal; + readonly currentWangSetChanged: Signal; /** * Gets the currently selected Wang color index in the "Terrain Sets" view. @@ -2430,7 +2438,7 @@ interface TilesetsView { * * @since 1.9.1 */ - readonly currentTilesetChanged: Signal; + readonly currentTilesetChanged: Signal; /** * A list of the tiles that are selected in the current tileset. @@ -2876,7 +2884,7 @@ declare class TileMap extends Asset { /** * The signal emitted when {@link currentLayer} changes. */ - readonly currentLayerChanged: Signal; + readonly currentLayerChanged: Signal; /** * Selected layers. @@ -2889,7 +2897,7 @@ declare class TileMap extends Asset { /** * The signal emitted when {@link selectedLayers} changes. */ - readonly selectedLayersChanged: Signal; + readonly selectedLayersChanged: Signal; /** * Selected objects. @@ -2902,7 +2910,7 @@ declare class TileMap extends Asset { /** * The signal emitted when {@link selectedObjects} changes. */ - readonly selectedObjectsChanged: Signal; + readonly selectedObjectsChanged: Signal; /** * Constructs a new map. @@ -3880,7 +3888,7 @@ interface TilesetEditor { * * @since 1.9 */ - readonly currentWangSetChanged: Signal; + readonly currentWangSetChanged: Signal; /** * Gets the currently selected Wang color index in the "Terrain Sets" view. diff --git a/src/tiled/mapeditor.cpp b/src/tiled/mapeditor.cpp index d9668abc03..37926b812b 100644 --- a/src/tiled/mapeditor.cpp +++ b/src/tiled/mapeditor.cpp @@ -783,6 +783,8 @@ void MapEditor::setStamp(const TileStamp &stamp) mToolManager->selectTool(mStampBrush); mTilesetDock->selectTilesInStamp(stamp); + + emit currentBrushChanged(); } void MapEditor::selectWangBrush() diff --git a/src/tiled/mapeditor.h b/src/tiled/mapeditor.h index 5246fde877..7d8d9b81db 100644 --- a/src/tiled/mapeditor.h +++ b/src/tiled/mapeditor.h @@ -73,7 +73,7 @@ class MapEditor final : public Editor Q_OBJECT Q_PROPERTY(Tiled::TilesetDock *tilesetsView READ tilesetDock CONSTANT) - Q_PROPERTY(Tiled::EditableMap *currentBrush READ currentBrush WRITE setCurrentBrush) + Q_PROPERTY(Tiled::EditableMap *currentBrush READ currentBrush WRITE setCurrentBrush NOTIFY currentBrushChanged) Q_PROPERTY(Tiled::EditableWangSet *currentWangSet READ currentWangSet NOTIFY currentWangSetChanged) Q_PROPERTY(int currentWangColorIndex READ currentWangColorIndex NOTIFY currentWangColorIndexChanged) Q_PROPERTY(Tiled::MapView *currentMapView READ currentMapView CONSTANT) @@ -130,6 +130,7 @@ class MapEditor final : public Editor AbstractTool *selectedTool() const; signals: + void currentBrushChanged(); void currentWangSetChanged(); void currentWangColorIndexChanged(int colorIndex);