diff options
Diffstat (limited to 'src/modules/logview/libkvilogview.cpp')
| -rw-r--r-- | src/modules/logview/libkvilogview.cpp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/modules/logview/libkvilogview.cpp b/src/modules/logview/libkvilogview.cpp index d4255726e..61056f370 100644 --- a/src/modules/logview/libkvilogview.cpp +++ b/src/modules/logview/libkvilogview.cpp @@ -32,6 +32,12 @@ #include "KviIconManager.h" #include "KviLocale.h" #include "KviApplication.h" +#include "KviOptions.h" +#include "KviFileUtils.h" +#include "KviFileDialog.h" + +#include <QString> +#include <QDate> static QRect g_rectLogViewGeometry; LogViewWindow * g_pLogViewWindow = nullptr; @@ -107,12 +113,31 @@ static bool logview_module_ctrl(KviModule *, const char * pcOperation, void * pP if(!pData) return false; - LogFile log{pData->szName}; - int iId = LogFile::PlainText; + LogFile log { pData->szName }; + LogFile::ExportType exportType = LogFile::PlainText; if(pData->szType == QLatin1String("html")) - iId = LogFile::HTML; + exportType = LogFile::HTML; + + QString szDate = log.date().toString("yyyy.MM.dd"); + QString szLog = KVI_OPTION_STRING(KviOption_stringLogsExportPath).trimmed(); + if(!szLog.isEmpty()) + szLog += KVI_PATH_SEPARATOR_CHAR; + szLog += QString("%1_%2.%3_%4").arg(log.typeString(), log.name(), log.network(), szDate); + KviFileUtils::adjustFilePath(szLog); + + // Getting output file path from the user, with overwrite confirmation + if(!KviFileDialog::askForSaveFileName( + szLog, + __tr2qs_ctx("Export Log - KVIrc", "log"), + szLog, + QString(), + false, + true, + true, + g_pLogViewWindow)) + return false; - g_pLogViewWindow->createLog(&log, iId, &(pData->szFile)); + log.createLog(exportType, szLog, &(pData->szFile)); return true; } |
