Commit 444d6808 authored by LianaHus's avatar LianaHus Committed by Liana Husikyan

unregistered listeners

parent 137966a4
...@@ -209,19 +209,17 @@ function fileExplorer (localRegistry, files, menuItems) { ...@@ -209,19 +209,17 @@ function fileExplorer (localRegistry, files, menuItems) {
const provider = self._deps.fileManager.fileProviderOf(key) const provider = self._deps.fileManager.fileProviderOf(key)
actions['Create File'] = () => self.createNewFile(key) actions['Create File'] = () => self.createNewFile(key)
actions['Create Folder'] = () => self.createNewFolder(key) actions['Create Folder'] = () => self.createNewFolder(key)
// todo not fully implemented. Readd later when fixed // @todo(#2386) not fully implemented. Readd later when fixed
// https://github.com/ethereum/remix-ide/issues/2386 if (provider.isExternalFolder(key)) {
/* if (provider.isExternalFolder(key)) { /* actions['Discard changes'] = () => {
actions['Discard changes'] = () => {
modalDialogCustom.confirm( modalDialogCustom.confirm(
'Discard changes', 'Discard changes',
'Are you sure you want to discard all your changes?', 'Are you sure you want to discard all your changes?',
() => { self.files.discardChanges(key) }, () => { self.files.discardChanges(key) },
() => {} () => {}
) )
} } */
} else { */ } else {
if (! provider.isExternalFolder(key)) {
const folderPath = extractExternalFolder(key) const folderPath = extractExternalFolder(key)
actions['Rename'] = () => { actions['Rename'] = () => {
if (self.files.isReadOnly(key)) { return tooltip('cannot rename folder. ' + self.files.type + ' is a read only explorer') } if (self.files.isReadOnly(key)) { return tooltip('cannot rename folder. ' + self.files.type + ' is a read only explorer') }
......
...@@ -59,8 +59,8 @@ class FileManager extends Plugin { ...@@ -59,8 +59,8 @@ class FileManager extends Plugin {
} }
fileChangedEvent (path) { fileChangedEvent (path) {
// todo. use only for discard changes function. // @todo(#2386) use only for discard changes function.
//this.syncEditor(path) // this.syncEditor(path)
} }
fileRenamedEvent (oldName, newName, isFolder) { fileRenamedEvent (oldName, newName, isFolder) {
......
...@@ -457,6 +457,17 @@ class CompileTab extends ViewPlugin { ...@@ -457,6 +457,17 @@ class CompileTab extends ViewPlugin {
return this._view.el return this._view.el
} }
onDeactivation () {
this.compilerContainer.deactivate()
this.editor.event.unregister('contentChanged')
this.compiler.event.unregister('loadingCompiler')
this.compiler.event.unregister('compilerLoaded')
this.compileTabLogic.event.off('startingCompilation')
this.fileManager.events.off('currentFileChanged')
this.fileManager.events.off('noFileSelected')
this.compiler.event.unregister('compilationFinished')
globalRegistry.get('themeModule').api.events.off('themeChanged')
}
} }
module.exports = CompileTab module.exports = CompileTab
...@@ -42,6 +42,9 @@ class CompilerContainer { ...@@ -42,6 +42,9 @@ class CompilerContainer {
} }
deactivate () { deactivate () {
// deactivate editor listeners
this.editor.event.unregister('contentChanged')
this.editor.event.unregister('sessionSwitched')
} }
activate () { activate () {
...@@ -50,8 +53,10 @@ class CompilerContainer { ...@@ -50,8 +53,10 @@ class CompilerContainer {
} }
listenToEvents () { listenToEvents () {
this.editor.event.register('contentChanged', this.scheduleCompilation.bind(this)) this.editor.event.register('sessionSwitched', () => {
this.editor.event.register('sessionSwitched', this.scheduleCompilation.bind(this)) if (!this._view.compileIcon) return
this.scheduleCompilation()
})
this.compileTabLogic.event.on('startingCompilation', () => { this.compileTabLogic.event.on('startingCompilation', () => {
if (!this._view.compileIcon) return if (!this._view.compileIcon) return
...@@ -73,6 +78,7 @@ class CompilerContainer { ...@@ -73,6 +78,7 @@ class CompilerContainer {
this.editor.event.register('contentChanged', () => { this.editor.event.register('contentChanged', () => {
if (!this._view.compileIcon) return if (!this._view.compileIcon) return
this.scheduleCompilation.bind(this)
this._view.compileIcon.classList.add(`${css.bouncingIcon}`) // @TODO: compileView tab this._view.compileIcon.classList.add(`${css.bouncingIcon}`) // @TODO: compileView tab
}) })
...@@ -131,12 +137,13 @@ class CompilerContainer { ...@@ -131,12 +137,13 @@ class CompilerContainer {
// Load solc compiler version according to pragma in contract file // Load solc compiler version according to pragma in contract file
_setCompilerVersionFromPragma (filename) { _setCompilerVersionFromPragma (filename) {
if (!this.data.allversions) return
this.compileTabLogic.fileManager.getFile(filename).then(data => { this.compileTabLogic.fileManager.getFile(filename).then(data => {
const pragmaArr = data.match(/(pragma solidity (.+?);)/g) const pragmaArr = data.match(/(pragma solidity (.+?);)/g)
if (pragmaArr && pragmaArr.length === 1) { if (pragmaArr && pragmaArr.length === 1) {
const pragmaStr = pragmaArr[0].replace('pragma solidity', '').trim() const pragmaStr = pragmaArr[0].replace('pragma solidity', '').trim()
const pragma = pragmaStr.substring(0, pragmaStr.length - 1) const pragma = pragmaStr.substring(0, pragmaStr.length - 1)
const releasedVersions = (this.data.allversions) ? this.data.allversions.filter(obj => !obj.prerelease).map(obj => obj.version) : [] const releasedVersions = this.data.allversions.filter(obj => !obj.prerelease).map(obj => obj.version)
const allVersions = this.data.allversions.map(obj => this._retrieveVersion(obj.version)) const allVersions = this.data.allversions.map(obj => this._retrieveVersion(obj.version))
const currentCompilerName = this._retrieveVersion(this._view.versionSelector.selectedOptions[0].label) const currentCompilerName = this._retrieveVersion(this._view.versionSelector.selectedOptions[0].label)
// contains only numbers part, for example '0.4.22' // contains only numbers part, for example '0.4.22'
......
...@@ -40,12 +40,12 @@ module.exports = (event, items) => { ...@@ -40,12 +40,12 @@ module.exports = (event, items) => {
window.removeEventListener('click', hide) window.removeEventListener('click', hide)
} }
var menu = Object.keys(items).map((item, index) => { const menu = Object.keys(items).map((item, index) => {
var current = yo`<li id="menuitem${item.toLowerCase()}" class=${css.liitem}>${item}</li>` const current = yo`<li id="menuitem${item.toLowerCase()}" class=${css.liitem}>${item}</li>`
current.onclick = () => { hide(null, true); items[item]() } current.onclick = () => { hide(null, true); items[item]() }
return current return current
}) })
var container = yo`<div class="p-1 ${css.container} bg-light shadow border"><ul id='menuitems'>${menu}</ul></div>` const container = yo`<div class="p-1 ${css.container} bg-light shadow border"><ul id='menuitems'>${menu}</ul></div>`
container.style.left = event.pageX + 'px' container.style.left = event.pageX + 'px'
container.style.top = event.pageY + 'px' container.style.top = event.pageY + 'px'
container.style.display = 'block' container.style.display = 'block'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment