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,
|
||||
}
|
||||
|
||||
function IrcChatView:init()
|
||||
function IrcChatView:init(reinit)
|
||||
-- Buttons: Send, Close
|
||||
self.buttons_table = {
|
||||
{
|
||||
@@ -66,22 +66,28 @@ function IrcChatView:init()
|
||||
}
|
||||
}
|
||||
-- Buffers & title
|
||||
self._buffers = {}
|
||||
self._ordered_targets = {}
|
||||
self._current_target = nil
|
||||
self._server_label = self._server and (self._server.name or (self._server.host .. ":" .. tostring(self._server.port or 6667))) or "IRC"
|
||||
self._unread = {}
|
||||
-- Init history before selecting initial buffer
|
||||
self:initHistory()
|
||||
-- default to server console target
|
||||
self:switchTarget("*")
|
||||
if not reinit then
|
||||
self._buffers = {}
|
||||
self._ordered_targets = {}
|
||||
self._current_target = nil
|
||||
self._unread = {}
|
||||
end
|
||||
if not self._server_label then
|
||||
self._server_label = self._server and (self._server.name or (self._server.host .. ":" .. tostring(self._server.port or 6667))) or "IRC"
|
||||
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
|
||||
local last = self:loadLastTarget()
|
||||
if last and last ~= "" then
|
||||
self:switchTarget(last)
|
||||
end
|
||||
self:updateTitle()
|
||||
TextViewer.init(self)
|
||||
TextViewer.init(self, reinit)
|
||||
-- Start connection after UI init so we can show logs
|
||||
UIManager:nextTick(function() self:startConnection() end)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user