aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Fabio Bas2009-08-09 12:00:24 +0000
committerGravatar Fabio Bas2009-08-09 12:00:24 +0000
commitffe338fd76ee7e7b6b042a16a0257fd92a443d3c (patch)
tree5a0de4cd252c4957b51691199cdbefec3db219f8
parentsome fixes related to #504 (diff)
downloadKVIrc-ffe338fd76ee7e7b6b042a16a0257fd92a443d3c.tar.gz
KVIrc-ffe338fd76ee7e7b6b042a16a0257fd92a443d3c.tar.bz2
KVIrc-ffe338fd76ee7e7b6b042a16a0257fd92a443d3c.zip
new option: directory to save logs (#371)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3405 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--src/kvirc/kernel/kvi_app.cpp13
-rw-r--r--src/kvirc/kernel/kvi_app_fs.cpp17
-rw-r--r--src/kvirc/kernel/kvi_options.cpp3
-rw-r--r--src/kvirc/kernel/kvi_options.h3
-rw-r--r--src/modules/options/optw_logging.cpp12
5 files changed, 35 insertions, 13 deletions
diff --git a/src/kvirc/kernel/kvi_app.cpp b/src/kvirc/kernel/kvi_app.cpp
index b038882bc..e04306fa4 100644
--- a/src/kvirc/kernel/kvi_app.cpp
+++ b/src/kvirc/kernel/kvi_app.cpp
@@ -1850,13 +1850,14 @@ void KviApp::heartbeat(kvi_time_t tNow)
KVI_OPTION_UINT(KviOption_uintTotalConnectionTime)++;
}
- if (pTm && !pTm->tm_hour && !pTm->tm_min && !pTm->tm_sec) {
+ if (pTm && !pTm->tm_hour && !pTm->tm_min && !pTm->tm_sec)
+ {
KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
- while(it.current()) {
- if (it.current()->view() && it.current()->view()->isLogging())
- it.current()->view()->startLogging(0);
- ++it;
- }
+ while(it.current()) {
+ if (it.current()->view() && it.current()->view()->isLogging())
+ it.current()->view()->startLogging(0);
+ ++it;
+ }
}
}
diff --git a/src/kvirc/kernel/kvi_app_fs.cpp b/src/kvirc/kernel/kvi_app_fs.cpp
index 486e16609..02f3399da 100644
--- a/src/kvirc/kernel/kvi_app_fs.cpp
+++ b/src/kvirc/kernel/kvi_app_fs.cpp
@@ -119,7 +119,22 @@ void KviApp::getLocalKvircDirectory(QString &szData,KvircSubdir dir,const QStrin
case Config : szData.append("config"); break;
case ConfigPlugins : szData.append("config"KVI_PATH_SEPARATOR"modules"); break;
case ConfigScripts : szData.append("config"KVI_PATH_SEPARATOR"scripts"); break;
- case Log : szData.append("log"); break;
+ case Log :
+ szData = KVI_OPTION_STRING(KviOption_stringLogsPath);
+ // we should take special care here
+ // the user is likely to mess the path behind our back
+ // try to recover from most common problems
+ while(szData.endsWith(KVI_PATH_SEPARATOR_CHAR))
+ szData = szData.remove(szData.length()-1,1);
+ if(szData.isEmpty())
+ {
+ szData = QDir::homePath();
+ if(!szData.endsWith(QString(QChar(KVI_PATH_SEPARATOR_CHAR))))
+ szData.append(KVI_PATH_SEPARATOR_CHAR);
+ szData.append("log");
+ KVI_OPTION_STRING(KviOption_stringLogsPath) = szData;
+ }
+ break;
case Incoming :
szData = KVI_OPTION_STRING(KviOption_stringIncomingPath);
// we should take special care here
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 069409359..49a9d7169 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -395,7 +395,8 @@ KviStringOption g_stringOptionsTable[KVI_NUM_STRING_OPTIONS]=
STRING_OPTION("OnQueryMessageSound","",KviOption_sectFlagFrame),
STRING_OPTION("IrcViewTimestampFormat","[hh:mm:ss]",KviOption_sectFlagIrcView),
STRING_OPTION("PreferredTorrentClient","auto",KviOption_sectFlagFrame),
- STRING_OPTION("DefaultSrvEncoding","",KviOption_sectFlagFrame)
+ STRING_OPTION("DefaultSrvEncoding","",KviOption_sectFlagFrame),
+ STRING_OPTION("LogsPath","",KviOption_sectFlagUser | KviOption_encodePath)
};
#define STRINGLIST_OPTION(_txt,_flags) \
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index 8bc951934..2a803e183 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -392,8 +392,9 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_stringPreferredTorrentClient 56 /* still missing in options ! */
// empty string means guess from locale
#define KviOption_stringDefaultSrvEncoding 57 /* server encoding */
+#define KviOption_stringLogsPath 58 /* logfolder */
-#define KVI_NUM_STRING_OPTIONS 58
+#define KVI_NUM_STRING_OPTIONS 59
diff --git a/src/modules/options/optw_logging.cpp b/src/modules/options/optw_logging.cpp
index ddafc8a4a..638de5761 100644
--- a/src/modules/options/optw_logging.cpp
+++ b/src/modules/options/optw_logging.cpp
@@ -42,9 +42,8 @@ KviLoggingOptionsWidget::KviLoggingOptionsWidget(QWidget * parent)
addBoolSelector(g,__tr2qs_ctx("Channel windows","options"),KviOption_boolAutoLogChannels);
addBoolSelector(g,__tr2qs_ctx("DCC Chat windows","options"),KviOption_boolAutoLogDccChat);
addBoolSelector(g,__tr2qs_ctx("Console windows","options"),KviOption_boolAutoLogConsole);
-#ifdef COMPILE_ZLIB_SUPPORT
- addBoolSelector(0,1,0,1,__tr2qs_ctx("Gzip logs","options"),KviOption_boolGzipLogs);
-#endif
+
+ addDirectorySelector(0,1,0,1,__tr2qs_ctx("Save logs to folder:","options"),KviOption_stringLogsPath);
addBoolSelector(0,2,0,2,__tr2qs_ctx("Strip message type numbers in logs","options"),KviOption_boolStripMsgTypeInLogs);
addBoolSelector(0,3,0,3,__tr2qs_ctx("Strip colors in logs","options"),KviOption_boolStripControlCodesInLogs);
KviUIntSelector* us = addUIntSelector(0,4,0,4,__tr2qs_ctx("Auto flush logs every","options"),KviOption_uintAutoFlushLogs,0,99999,0);
@@ -52,7 +51,12 @@ KviLoggingOptionsWidget::KviLoggingOptionsWidget(QWidget * parent)
mergeTip(us,
__tr2qs_ctx("<center>Save logs with the current interval<br>" \
"Set to 0 to disable this feature</center>","options"));
- addRowSpacer(0,5,0,5);
+
+#ifdef COMPILE_ZLIB_SUPPORT
+ addBoolSelector(0,5,0,5,__tr2qs_ctx("Gzip logs","options"),KviOption_boolGzipLogs);
+#endif
+
+ addRowSpacer(0,6,0,6);
}
KviLoggingOptionsWidget::~KviLoggingOptionsWidget()