From b5e527b251f305597b78eadd956910fdd8e8459e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Sun, 21 Feb 2021 20:56:00 +0100 Subject: [PATCH] [Editor] Close opened map right upon its deletion --- .../base/editor/main/controller/MainController.kt | 10 ++++++++++ .../base/editor/main/view/ProjectStructureView.kt | 1 + 2 files changed, 11 insertions(+) diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/controller/MainController.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/controller/MainController.kt index d6065e38..482c646b 100644 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/controller/MainController.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/controller/MainController.kt @@ -1,8 +1,10 @@ package com.bartlomiejpluta.base.editor.main.controller +import com.bartlomiejpluta.base.editor.asset.model.Asset import com.bartlomiejpluta.base.editor.command.context.UndoableScope import com.bartlomiejpluta.base.editor.image.view.importing.ImportImageFragment import com.bartlomiejpluta.base.editor.image.viewmodel.ImageAssetDataVM +import com.bartlomiejpluta.base.editor.map.asset.GameMapAsset import com.bartlomiejpluta.base.editor.map.model.map.GameMap import com.bartlomiejpluta.base.editor.map.view.wizard.MapCreationWizard import com.bartlomiejpluta.base.editor.map.viewmodel.GameMapBuilderVM @@ -104,4 +106,12 @@ class MainController : Controller() { openModal(block = true, resizable = false) } } + + fun closeAsset(asset: Asset) { + when (asset) { + is GameMapAsset -> openMaps.entries.firstOrNull { (_, map) -> map.uid == asset.uid }?.key?.let { + openMaps.remove(it) + } + } + } } \ No newline at end of file diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/view/ProjectStructureView.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/view/ProjectStructureView.kt index b3d6ae5a..d2685246 100644 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/view/ProjectStructureView.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/main/view/ProjectStructureView.kt @@ -88,6 +88,7 @@ class ProjectStructureView : View() { } private fun deleteAsset(asset: Asset) { + mainController.closeAsset(asset) projectContext.deleteAsset(asset) projectContext.save() }