irc: preserve channels/buffers on UI reinit; avoid resetting state when reopening background session
Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
28
main.lua
28
main.lua
@@ -47,7 +47,7 @@ local IrcChatView = TextViewer:extend{
|
|||||||
_ui_open = false,
|
_ui_open = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
function IrcChatView:init()
|
function IrcChatView:init(reinit)
|
||||||
-- Buttons: Send, Close
|
-- Buttons: Send, Close
|
||||||
self.buttons_table = {
|
self.buttons_table = {
|
||||||
{
|
{
|
||||||
@@ -66,22 +66,28 @@ function IrcChatView:init()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
-- Buffers & title
|
-- Buffers & title
|
||||||
self._buffers = {}
|
if not reinit then
|
||||||
self._ordered_targets = {}
|
self._buffers = {}
|
||||||
self._current_target = nil
|
self._ordered_targets = {}
|
||||||
self._server_label = self._server and (self._server.name or (self._server.host .. ":" .. tostring(self._server.port or 6667))) or "IRC"
|
self._current_target = nil
|
||||||
self._unread = {}
|
self._unread = {}
|
||||||
-- Init history before selecting initial buffer
|
end
|
||||||
self:initHistory()
|
if not self._server_label then
|
||||||
-- default to server console target
|
self._server_label = self._server and (self._server.name or (self._server.host .. ":" .. tostring(self._server.port or 6667))) or "IRC"
|
||||||
self:switchTarget("*")
|
end
|
||||||
|
if not reinit then
|
||||||
|
-- Init history before selecting initial buffer
|
||||||
|
self:initHistory()
|
||||||
|
-- default to server console target
|
||||||
|
self:switchTarget("*")
|
||||||
|
end
|
||||||
-- Restore last active target if available
|
-- Restore last active target if available
|
||||||
local last = self:loadLastTarget()
|
local last = self:loadLastTarget()
|
||||||
if last and last ~= "" then
|
if last and last ~= "" then
|
||||||
self:switchTarget(last)
|
self:switchTarget(last)
|
||||||
end
|
end
|
||||||
self:updateTitle()
|
self:updateTitle()
|
||||||
TextViewer.init(self)
|
TextViewer.init(self, reinit)
|
||||||
-- Start connection after UI init so we can show logs
|
-- Start connection after UI init so we can show logs
|
||||||
UIManager:nextTick(function() self:startConnection() end)
|
UIManager:nextTick(function() self:startConnection() end)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user