Introduce View objects context property
Used to determine if an instance of the given class should be closed or not when a project session is terminated.
This commit is contained in:
parent
9592ce85f5
commit
d46475532f
|
@ -15,6 +15,8 @@ end
|
||||||
|
|
||||||
local CommandView = DocView:extend()
|
local CommandView = DocView:extend()
|
||||||
|
|
||||||
|
CommandView.context = "application"
|
||||||
|
|
||||||
local max_suggestions = 10
|
local max_suggestions = 10
|
||||||
|
|
||||||
local noop = function() end
|
local noop = function() end
|
||||||
|
|
|
@ -9,6 +9,7 @@ local View = require "core.view"
|
||||||
|
|
||||||
local DocView = View:extend()
|
local DocView = View:extend()
|
||||||
|
|
||||||
|
DocView.context = "session"
|
||||||
|
|
||||||
local function move_to_line_offset(dv, line, col, offset)
|
local function move_to_line_offset(dv, line, col, offset)
|
||||||
local xo = dv.last_x_offset
|
local xo = dv.last_x_offset
|
||||||
|
|
|
@ -5,6 +5,7 @@ local View = require "core.view"
|
||||||
|
|
||||||
local LogView = View:extend()
|
local LogView = View:extend()
|
||||||
|
|
||||||
|
LogView.context = "session"
|
||||||
|
|
||||||
function LogView:new()
|
function LogView:new()
|
||||||
LogView.super.new(self)
|
LogView.super.new(self)
|
||||||
|
|
|
@ -5,10 +5,8 @@ local style = require "core.style"
|
||||||
local keymap = require "core.keymap"
|
local keymap = require "core.keymap"
|
||||||
local Object = require "core.object"
|
local Object = require "core.object"
|
||||||
local View = require "core.view"
|
local View = require "core.view"
|
||||||
local CommandView = require "core.commandview"
|
|
||||||
local NagView = require "core.nagview"
|
local NagView = require "core.nagview"
|
||||||
local DocView = require "core.docview"
|
local DocView = require "core.docview"
|
||||||
local LogView = require "core.logview"
|
|
||||||
|
|
||||||
|
|
||||||
local EmptyView = View:extend()
|
local EmptyView = View:extend()
|
||||||
|
@ -602,8 +600,7 @@ function Node:close_all_docviews(keep_active)
|
||||||
local i = 1
|
local i = 1
|
||||||
while i <= #self.views do
|
while i <= #self.views do
|
||||||
local view = self.views[i]
|
local view = self.views[i]
|
||||||
if (view:is(DocView) or view:is(LogView)) and not view:is(CommandView) and
|
if view.context == "session" and (not keep_active or view ~= self.active_view) then
|
||||||
(not keep_active or view ~= self.active_view) then
|
|
||||||
table.remove(self.views, i)
|
table.remove(self.views, i)
|
||||||
if view == node_active_view then
|
if view == node_active_view then
|
||||||
lost_active_view = true
|
lost_active_view = true
|
||||||
|
|
|
@ -7,6 +7,10 @@ local Object = require "core.object"
|
||||||
|
|
||||||
local View = Object:extend()
|
local View = Object:extend()
|
||||||
|
|
||||||
|
-- context can be "application" or "session". The instance of objects
|
||||||
|
-- with context "session" will be closed when a project session is
|
||||||
|
-- terminated. The context "application" is for functional UI elements.
|
||||||
|
View.context = "application"
|
||||||
|
|
||||||
function View:new()
|
function View:new()
|
||||||
self.position = { x = 0, y = 0 }
|
self.position = { x = 0, y = 0 }
|
||||||
|
|
|
@ -9,6 +9,7 @@ local View = require "core.view"
|
||||||
|
|
||||||
local ResultsView = View:extend()
|
local ResultsView = View:extend()
|
||||||
|
|
||||||
|
ResultsView.context = "session"
|
||||||
|
|
||||||
function ResultsView:new(text, fn)
|
function ResultsView:new(text, fn)
|
||||||
ResultsView.super.new(self)
|
ResultsView.super.new(self)
|
||||||
|
|
Loading…
Reference in New Issue