From f9d183837a7385e8f2b97fff4e4ec39705f040d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konrad=20Ku=C5=9Bnierz?= Date: Wed, 3 Jun 2015 16:46:49 +0200 Subject: [PATCH] Add option to save messages from channel --- modules/game_console/console.lua | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/game_console/console.lua b/modules/game_console/console.lua index ebb8ed1b..d33f8b47 100644 --- a/modules/game_console/console.lua +++ b/modules/game_console/console.lua @@ -679,8 +679,28 @@ function processChannelTabMenu(tab, mousePos, mouseButton) if consoleTabBar:getCurrentTab() == tab then menu:addOption(tr('Clear Messages'), function() clearChannel(consoleTabBar) end) + menu:addOption(tr('Save Messages'), function() + local panel = consoleTabBar:getTabPanel(tab) + local consoleBuffer = panel:getChildById('consoleBuffer') + local lines = {} + for _,label in pairs(consoleBuffer:getChildren()) do + table.insert(lines, label:getText()) + end + + local filename = channelName .. '.txt' + local filepath = '/' .. filename + + -- extra information at the beginning + table.insert(lines, 1, os.date('\nChannel saved at %a %b %d %H:%M:%S %Y')) + + if g_resources.fileExists(filepath) then + table.insert(lines, 1, signalcall(g_resources.readFileContents, filepath) or '') + end + + g_resources.writeFileContents(filepath, table.concat(lines, '\n')) + modules.game_textmessage.displayStatusMessage(tr('Channel appended to %s', filename)) + end) end - --menu:addOption(tr('Save Messages'), function() --[[TODO]] end) menu:display(mousePos) end