aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Elvio Basello2011-04-21 20:55:11 +0000
committerGravatar Elvio Basello2011-04-21 20:55:11 +0000
commit06d84e592a226a7df83be55ad7150ff31d92d6bc (patch)
tree1874b002c3cf23596190d2a1d0e50f54f13e5e83 /src
parentremoved useless pointer (diff)
downloadKVIrc-06d84e592a226a7df83be55ad7150ff31d92d6bc.tar.gz
KVIrc-06d84e592a226a7df83be55ad7150ff31d92d6bc.tar.bz2
KVIrc-06d84e592a226a7df83be55ad7150ff31d92d6bc.zip
more work on $log.export (wip)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5797 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/KviApplication.h11
-rw-r--r--src/modules/log/libkvilog.cpp22
-rw-r--r--src/modules/logview/LogFile.h13
-rw-r--r--src/modules/logview/LogViewWidget.cpp60
-rw-r--r--src/modules/logview/LogViewWidget.h22
-rw-r--r--src/modules/logview/LogViewWindow.cpp27
-rw-r--r--src/modules/logview/LogViewWindow.h12
-rw-r--r--src/modules/logview/libkvilogview.cpp16
8 files changed, 101 insertions, 82 deletions
diff --git a/src/kvirc/kernel/KviApplication.h b/src/kvirc/kernel/KviApplication.h
index 86e3f5c9c..f31f419d0 100644
--- a/src/kvirc/kernel/KviApplication.h
+++ b/src/kvirc/kernel/KviApplication.h
@@ -91,17 +91,6 @@ typedef struct _KviNotifierMessageParam
unsigned int uMessageLifetime; /**< The timeout of the notifier; 0 means no hide */
} KviNotifierMessageParam;
-/**
-* \typedef KviLogFileData
-* \struct _KviLogFileData
-* \brief A struct that contains the data of a log
-*/
-typedef struct _KviLogFileData
-{
- QString szName; /**< the name of the log */
- QString szType; /**< the type of the log */
-} KviLogFileData;
-
typedef struct _KviDBusNotifierMessageQueue
{
QStringList lMessages;
diff --git a/src/modules/log/libkvilog.cpp b/src/modules/log/libkvilog.cpp
index 316116890..6fae3a893 100644
--- a/src/modules/log/libkvilog.cpp
+++ b/src/modules/log/libkvilog.cpp
@@ -5,6 +5,7 @@
//
// This file is part of the KVIrc irc client distribution
// Copyright (C) 2001-2010 Szymon Stefanek (pragma at kvirc dot net)
+// Copyright (C) 2011 Elvio Basello (hellvis69 at gmail dot com)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -22,11 +23,12 @@
//
//==============================================================================
-#include "KviModule.h"
+#include "../logview/LogFile.h"
+
#include "KviWindow.h"
-#include "KviApplication.h"
#include "KviLocale.h"
#include "KviIrcView.h"
+#include "KviModule.h"
#include "KviModuleManager.h"
//#warning "log.stats"
@@ -98,7 +100,7 @@ static bool log_kvs_cmd_start(KviKvsModuleCommandCall * c)
pWnd = g_pApp->findWindow(szWindow);
if(!pWnd)
{
- c->warning(__tr2qs_ctx("Window '%Q' not found","log"),&szWindow);
+ c->warning(__tr2qs_ctx("Window '%1' not found","log").arg(szWindow));
return true;
}
} else {
@@ -113,7 +115,7 @@ static bool log_kvs_cmd_start(KviKvsModuleCommandCall * c)
pWnd->getDefaultLogFileName(szFile);
if(!pWnd->view()->startLogging(szFile,c->hasSwitch('p',"log-buffer")))
- c->warning(__tr2qs_ctx("Can't log to file '%Q'","log"),&szFile);
+ c->warning(__tr2qs_ctx("Can't log to file '%1'","log").arg(szFile));
} else {
c->warning(__tr2qs_ctx("This window has no logging capabilities","log"));
return true;
@@ -152,7 +154,7 @@ static bool log_kvs_cmd_stop(KviKvsModuleCommandCall * c)
pWnd = g_pApp->findWindow(szWindow);
if(!pWnd)
{
- c->warning(__tr2qs_ctx("Window '%Q' not found","log"),&szWindow);
+ c->warning(__tr2qs_ctx("Window '%1' not found","log").arg(szWindow));
return true;
}
} else {
@@ -202,7 +204,7 @@ static bool log_kvs_cmd_flush(KviKvsModuleCommandCall * c)
pWnd = g_pApp->findWindow(szWindow);
if(!pWnd)
{
- c->warning(__tr2qs_ctx("Window '%Q' not found","log"),&szWindow);
+ c->warning(__tr2qs_ctx("Window '%1' not found","log").arg(szWindow));
return true;
}
} else {
@@ -260,7 +262,7 @@ static bool log_kvs_fnc_file(KviKvsModuleFunctionCall * c)
pWnd = g_pApp->findWindow(szWindow);
if(!pWnd)
{
- c->warning(__tr2qs_ctx("Window with id '%Q' not found, returning empty string","log"),&szWindow);
+ c->warning(__tr2qs_ctx("Window with id '%1' not found, returning empty string","log").arg(szWindow));
return true;
}
}
@@ -282,7 +284,9 @@ static bool log_kvs_fnc_file(KviKvsModuleFunctionCall * c)
@syntax:
<string> $log.export(<filename:string>[,<type:string>])
@description:
-
+ Exports the log file named <filename> to the format passed as <type>.[br]
+ <filename> has to be a valid path, or given using [fnc]$log.file[/fnc] function.[br]
+ If no <type> is passed, plain text will be used.
@example:
[example]
[cmd]echo[/cmd] $log.export([fnc]$log.file[/fnc],"html")
@@ -307,7 +311,7 @@ static bool log_kvs_fnc_export(KviKvsModuleFunctionCall * c)
if(!m)
return false;
- KviLogFileData log;
+ LogFileData log;
log.szName = szFile;
log.szType = szType;
diff --git a/src/modules/logview/LogFile.h b/src/modules/logview/LogFile.h
index 6705ace26..cdf0b869a 100644
--- a/src/modules/logview/LogFile.h
+++ b/src/modules/logview/LogFile.h
@@ -27,7 +27,7 @@
/**
* \file LogFile.h
* \author Elvio Basello
-* \brief
+* \brief Describes a log file
*
* This file was originally part of LogViewWindow.h
*/
@@ -37,6 +37,17 @@
class QString;
/**
+* \typedef LogFileData
+* \struct _LogFileData
+* \brief A struct that contains the data of a log
+*/
+typedef struct LogFileData
+{
+ QString szName; /**< the name of the log */
+ QString szType; /**< the type of the log */
+} LogFileData;
+
+/**
* \class LogFile
* \brief The LogFile class which handle any log file
*
diff --git a/src/modules/logview/LogViewWidget.cpp b/src/modules/logview/LogViewWidget.cpp
index 251041445..6a9314b66 100644
--- a/src/modules/logview/LogViewWidget.cpp
+++ b/src/modules/logview/LogViewWidget.cpp
@@ -25,7 +25,6 @@
#include "LogViewWidget.h"
-//#include "kvi_debug.h"
#include "KviLocale.h"
#include "KviIconManager.h"
#include "KviApplication.h"
@@ -39,62 +38,61 @@
#include <zlib.h>
#endif
-LogListViewItem::LogListViewItem(QTreeWidgetItem * par, LogFile::Type type, LogFile * fileData)
-: QTreeWidgetItem(par), m_eType(type), m_pFileData(fileData)
+LogListViewItem::LogListViewItem(QTreeWidgetItem * pPar, LogFile::Type eType, LogFile * pLog)
+: QTreeWidgetItem(pPar), m_eType(eType), m_pFileData(pLog)
{
setText(0,m_pFileData ? m_pFileData->name() : QString());
}
-LogListViewItem::LogListViewItem(QTreeWidget * par, LogFile::Type type, LogFile * fileData)
-: QTreeWidgetItem(par), m_eType(type), m_pFileData(fileData)
+LogListViewItem::LogListViewItem(QTreeWidget * pPar, LogFile::Type eType, LogFile * pLog)
+: QTreeWidgetItem(pPar), m_eType(eType), m_pFileData(pLog)
{
setText(0,m_pFileData ? m_pFileData->name() : QString());
}
-LogListViewItemFolder::LogListViewItemFolder(QTreeWidgetItem * par, const QString& label)
-: LogListViewItem(par,LogFile::Other,0)
+LogListViewItemFolder::LogListViewItemFolder(QTreeWidgetItem * pPar, const QString & szLabel)
+: LogListViewItem(pPar,LogFile::Other,0)
{
- setText(0,label);
+ setText(0,szLabel);
}
-LogListViewItemType::LogListViewItemType(QTreeWidget * par, LogFile::Type type)
-: LogListViewItem(par,type,0)
+LogListViewItemType::LogListViewItemType(QTreeWidget * pPar, LogFile::Type eType)
+: LogListViewItem(pPar,eType,0)
{
QIcon icon;
- QString text;
+ QString szText;
switch(m_eType)
{
case LogFile::Channel:
- icon= QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Channel));
- text = __tr2qs_ctx("Channel","log");
- break;
+ icon = QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Channel));
+ szText = __tr2qs_ctx("Channel","log");
+ break;
case LogFile::Query:
- icon= QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Query));
- text = __tr2qs_ctx("Query","log");
- break;
+ icon = QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Query));
+ szText = __tr2qs_ctx("Query","log");
+ break;
case LogFile::DccChat:
- icon= QIcon(*g_pIconManager->getSmallIcon(KviIconManager::DccMsg));
- text = __tr2qs_ctx("DCC Chat","log");
- break;
+ icon = QIcon(*g_pIconManager->getSmallIcon(KviIconManager::DccMsg));
+ szText = __tr2qs_ctx("DCC Chat","log");
+ break;
case LogFile::Console:
- icon= QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Console));
- text = __tr2qs_ctx("Console","log");
- break;
+ icon = QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Console));
+ szText = __tr2qs_ctx("Console","log");
+ break;
default:
- icon= QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Help));
- text = __tr2qs_ctx("Other","log");
- break;
+ icon = QIcon(*g_pIconManager->getSmallIcon(KviIconManager::Help));
+ szText = __tr2qs_ctx("Other","log");
}
- setIcon(0, icon);
- setText(0, text);
+ setIcon(0,icon);
+ setText(0,szText);
}
-LogListViewLog::LogListViewLog(QTreeWidgetItem * par, LogFile::Type type, LogFile * fileData)
-: LogListViewItem(par,type,fileData)
+LogListViewLog::LogListViewLog(QTreeWidgetItem * pPar, LogFile::Type eType, LogFile * pLog)
+: LogListViewItem(pPar,eType,pLog)
{
- setText(0, m_pFileData->date().toString("yyyy-MM-dd"));
+ setText(0,m_pFileData->date().toString("yyyy-MM-dd"));
}
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/modules/logview/LogViewWidget.h b/src/modules/logview/LogViewWidget.h
index 618e201d6..371599140 100644
--- a/src/modules/logview/LogViewWidget.h
+++ b/src/modules/logview/LogViewWidget.h
@@ -34,9 +34,9 @@
class LogListViewItem : public QTreeWidgetItem
{
public:
- LogListViewItem(QTreeWidgetItem * par, LogFile::Type type, LogFile * fileData);
- LogListViewItem(QTreeWidget * par, LogFile::Type type, LogFile * fileData);
- ~LogListViewItem() {};
+ LogListViewItem(QTreeWidgetItem * pPar, LogFile::Type eType, LogFile * pLog);
+ LogListViewItem(QTreeWidget * pPar, LogFile::Type eType, LogFile * pLog);
+ ~LogListViewItem(){};
public:
LogFile::Type m_eType;
LogFile * m_pFileData;
@@ -48,28 +48,28 @@ public:
class LogListViewItemFolder : public LogListViewItem
{
public:
- LogListViewItemFolder(QTreeWidgetItem * par, const QString& label);
- ~LogListViewItemFolder() {};
+ LogListViewItemFolder(QTreeWidgetItem * pPar, const QString & szLabel);
+ ~LogListViewItemFolder(){};
public:
};
class LogListViewItemType : public LogListViewItem
{
public:
- LogListViewItemType(QTreeWidget * par, LogFile::Type type);
- ~LogListViewItemType() {};
+ LogListViewItemType(QTreeWidget * pPar, LogFile::Type eType);
+ ~LogListViewItemType(){};
};
class LogListViewLog : public LogListViewItem
{
public:
- LogListViewLog(QTreeWidgetItem * par, LogFile::Type type, LogFile * fileData);
- ~LogListViewLog() {};
+ LogListViewLog(QTreeWidgetItem * pPar, LogFile::Type eType, LogFile * pLog);
+ ~LogListViewLog(){};
virtual QString fileName() const { return m_pFileData->fileName(); };
protected:
- bool operator<(const QTreeWidgetItem &other)const
+ bool operator<(const QTreeWidgetItem & other) const
{
- return m_pFileData->date() < ((LogListViewLog*)&other)->m_pFileData->date();
+ return m_pFileData->date() < ((LogListViewLog *)&other)->m_pFileData->date();
}
};
diff --git a/src/modules/logview/LogViewWindow.cpp b/src/modules/logview/LogViewWindow.cpp
index 8ba981d7d..1b8351999 100644
--- a/src/modules/logview/LogViewWindow.cpp
+++ b/src/modules/logview/LogViewWindow.cpp
@@ -105,7 +105,7 @@ LogViewWindow::LogViewWindow(KviModuleExtensionDescriptor * pDesc, KviMainWindow
m_pBottomLayout->setVisible(false);
m_pIndexTab = new KviTalVBox(m_pTabWidget);
- m_pTabWidget->addTab(m_pIndexTab,__tr2qs_ctx("HelpIndex","log"));
+ m_pTabWidget->addTab(m_pIndexTab,__tr2qs_ctx("Index","log"));
m_pListView = new LogViewListView(m_pIndexTab);
@@ -256,9 +256,9 @@ void LogViewWindow::recurseDirectory(const QString & szDir)
if(info.isDir())
{
// recursive
- if(info.fileName()!=".." && info.fileName()!=".")
+ if((info.fileName() != "..") && (info.fileName() != "."))
recurseDirectory(info.filePath());
- } else if(info.suffix() == "gz" || info.suffix() == "log")
+ } else if((info.suffix() == "gz") || (info.suffix() == "log"))
{
m_logList.append(new LogFile(info.filePath()));
}
@@ -353,7 +353,7 @@ void LogViewWindow::filterNext()
m_pLastCategory = new LogListViewItemType(m_pListView,pFile->type());
}
- szCurGroup = QString(__tr2qs_ctx("%1 on %2","log")).arg(pFile->name(),pFile->network());
+ szCurGroup = __tr2qs_ctx("%1 on %2","log").arg(pFile->name(),pFile->network());
if(m_szLastGroup != szCurGroup)
{
@@ -361,7 +361,7 @@ void LogViewWindow::filterNext()
m_pLastGroupItem = 0;
for(int i=0; i < m_pLastCategory->childCount(); ++i)
{
- LogListViewItemFolder * pTmp = (LogListViewItemFolder *) m_pLastCategory->child(i);
+ LogListViewItemFolder * pTmp = (LogListViewItemFolder *)m_pLastCategory->child(i);
if(pTmp->text(0) == m_szLastGroup)
{
m_pLastGroupItem = pTmp;
@@ -456,9 +456,9 @@ void LogViewWindow::deleteCurrent()
{
if(QMessageBox::question(
this,
- __tr2qs_ctx("Confirm current user log delete","log"),
+ __tr2qs_ctx("Confirm current user log deletion","log"),
__tr2qs_ctx("Do you really wish to delete this log?","log"),
- __tr2qs("&Yes"),__tr2qs("&No"),0,1) != 0)
+ __tr2qs("Yes"),__tr2qs("No"),0,1) != 0)
return;
QString szFname;
@@ -474,9 +474,9 @@ void LogViewWindow::deleteCurrent()
if(QMessageBox::question(
this,
- __tr2qs_ctx("Confirm current user logs delete","log"),
+ __tr2qs_ctx("Confirm current user logs deletion","log"),
__tr2qs_ctx("Do you really wish to delete all these logs?","log"),
- __tr2qs("&Yes"),__tr2qs("&No"),0,1) != 0)
+ __tr2qs("Yes"),__tr2qs("No"),0,1) != 0)
return;
KviPointerList<LogListViewItem> itemsList;
itemsList.setAutoDelete(false);
@@ -559,7 +559,7 @@ void LogViewWindow::exportLog(int iId)
}
}
-void LogViewWindow::createLog(LogFile * pLog, int iId)
+void LogViewWindow::createLog(LogFile * pLog, int iId, QString * pszFile)
{
if(!pLog)
return;
@@ -786,6 +786,13 @@ void LogViewWindow::createLog(LogFile * pLog, int iId)
if(!log.open(QIODevice::WriteOnly | QIODevice::Text))
return;
+ if(pszFile)
+ {
+ *pszFile = "";
+ QFileInfo info(log);
+ *pszFile = info.filePath();
+ }
+
// Ensure we're writing in UTF-8
QTextStream output(&log);
output.setCodec("UTF-8");
diff --git a/src/modules/logview/LogViewWindow.h b/src/modules/logview/LogViewWindow.h
index c0b06027a..5a2748130 100644
--- a/src/modules/logview/LogViewWindow.h
+++ b/src/modules/logview/LogViewWindow.h
@@ -101,18 +101,18 @@ protected:
bool m_bAborted;
QTimer * m_pTimer;
KviTalPopupMenu * m_pExportLogPopup;
-protected:
- void recurseDirectory(const QString & szDir);
- void setupItemList();
-
-
+public:
/**
* \brief Exports the log and creates the file in the selected format
* \param pLog The log file associated to the item selected in the popup
* \param iId The id of the item in the popup
+ * \param pszFile The buffer where to store the exported log name
* \return void
*/
- void createLog(LogFile * pLog, int iId);
+ void createLog(LogFile * pLog, int iId, QString * pszFile = 0);
+protected:
+ void recurseDirectory(const QString & szDir);
+ void setupItemList();
virtual QPixmap * myIconPtr();
virtual void resizeEvent(QResizeEvent * pEvent);
diff --git a/src/modules/logview/libkvilogview.cpp b/src/modules/logview/libkvilogview.cpp
index abae5ea5b..309b6934d 100644
--- a/src/modules/logview/libkvilogview.cpp
+++ b/src/modules/logview/libkvilogview.cpp
@@ -5,6 +5,7 @@
//
// This file is part of the KVIrc irc client distribution
// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
+// Copyright (C) 2011 Elvio Basello (hellvis69 at gmail dot com)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -156,11 +157,20 @@ static bool logview_module_ctrl(KviModule *, const char * pcOperation, void * pP
if(!g_pLogViewWindow)
g_pLogViewWindow = new LogViewWindow();
*/
- KviLogFileData * pLog = (KviLogFileData *)pParam;
- if(!pLog)
+
+ LogFileData * pData = (LogFileData *)pParam;
+ if(!pData)
return false;
- qDebug("name: %s - type: %s",pLog->szName.toUtf8().data(),pLog->szType.toUtf8().data());
+ LogFile * pLog = new LogFile(pData->szName);
+ int iId = LogFile::PlainText;
+ if(pData->szType == "html")
+ iId = LogFile::HTML;
+
+ QString szFile;
+ g_pLogViewWindow->createLog(pLog,iId,&szFile);
+ qDebug("FILE: %s",szFile.toUtf8().data());
+
return true;
}