diff --git a/src/app/components/menu-service.ts b/src/app/components/menu-service.ts index f6708e6048..fa1cfbeacd 100644 --- a/src/app/components/menu-service.ts +++ b/src/app/components/menu-service.ts @@ -5,7 +5,7 @@ const ipcRenderer = typeof window !== 'undefined' ? window.require('electron').i const remote = typeof window !== 'undefined' ? window.require('electron').remote : require('electron').remote; -type MenuContext = 'default'|'docedit'|'modal'|'projects'|'geometryEdit'; +type MenuContext = 'default'|'docedit'|'modal'|'projects'|'geometryEdit'|'georeferenceEdit'; export module MenuContext { @@ -15,6 +15,7 @@ export module MenuContext { export const MODAL = 'modal'; export const PROJECTS = 'projects'; export const GEOMETRY_EDIT = 'geometryEdit'; + export const GEOREFERENCE_EDIT = 'georeferenceEdit'; } diff --git a/src/app/components/widgets/documentinfo/georeference-view.component.ts b/src/app/components/widgets/documentinfo/georeference-view.component.ts index d1704b2f13..af62e4b8a1 100644 --- a/src/app/components/widgets/documentinfo/georeference-view.component.ts +++ b/src/app/components/widgets/documentinfo/georeference-view.component.ts @@ -6,6 +6,7 @@ import {M} from '../../messages/m'; import {readWldFile, Errors} from '../../../core/images/wld/wld-import'; import {downloadWldFile} from '../../../core/images/wld/wld-export'; import {Messages} from '../../messages/messages'; +import {MenuContext, MenuService} from '../../menu-service'; @Component({ @@ -23,16 +24,16 @@ export class GeoreferenceViewComponent { @Output() onSectionToggled: EventEmitter = new EventEmitter(); - @ViewChild('worldfileInput', {static: false}) worldfileInput: ElementRef; + @ViewChild('worldfileInput', { static: false }) worldfileInput: ElementRef; public shown: boolean = false; - constructor( - private persistenceManager: PersistenceManager, - private messages: Messages, - private modalService: NgbModal, - private usernameProvider: UsernameProvider - ) {} + + constructor(private persistenceManager: PersistenceManager, + private messages: Messages, + private modalService: NgbModal, + private usernameProvider: UsernameProvider, + private menuService: MenuService) {} public exportWldFile = () => downloadWldFile(this.document); @@ -76,8 +77,16 @@ export class GeoreferenceViewComponent { public async openDeleteModal(modal: any) { - const result = await this.modalService.open(modal).result; - if (result == 'delete') await this.deleteGeoreference(); + this.menuService.setContext(MenuContext.GEOREFERENCE_EDIT); + + try { + const result = await this.modalService.open(modal).result; + if (result == 'delete') await this.deleteGeoreference(); + } catch (err) { + // Modal has been canceled + } finally { + this.menuService.setContext(MenuContext.MODAL); + } }