aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/logview/logviewmdiwindow.cpp78
-rw-r--r--src/modules/logview/logviewmdiwindow.h24
-rw-r--r--src/modules/logview/logviewwidget.cpp66
-rw-r--r--src/modules/logview/logviewwidget.h28
4 files changed, 120 insertions, 76 deletions
diff --git a/src/modules/logview/logviewmdiwindow.cpp b/src/modules/logview/logviewmdiwindow.cpp
index 9d785cb13..78a04093e 100644
--- a/src/modules/logview/logviewmdiwindow.cpp
+++ b/src/modules/logview/logviewmdiwindow.cpp
@@ -50,6 +50,7 @@
#include <QLineEdit>
#include <QLabel>
#include <QShortcut>
+#include <QMouseEvent>
#ifdef COMPILE_ZLIB_SUPPORT
#include <zlib.h>
@@ -67,34 +68,31 @@ KviLogViewMDIWindow::KviLogViewMDIWindow(KviModuleExtensionDescriptor * d,KviFra
m_pSplitter = new QSplitter(Qt::Horizontal,this);
m_pSplitter->setObjectName("main_splitter");
m_pTabWidget = new QTabWidget(m_pSplitter);
-
+
m_pIndexTab = new KviTalVBox(m_pTabWidget);
m_pTabWidget->addTab(m_pIndexTab,__tr2qs_ctx("Index","logview"));
- m_pListView = new KviTalTreeWidget(m_pIndexTab);
- m_pListView->addColumn(__tr2qs_ctx("Log File","logview"));
- //m_pListView->setColumnWidth(0,m_pListView->viewport()->width());
- m_pListView->setAllColumnsShowFocus(true);
- m_pListView->setSelectionMode(QAbstractItemView::SingleSelection);
- m_pListView->header()->setSortIndicatorShown(true);
- m_pListView->setRootIsDecorated(true);
- connect(m_pListView,SIGNAL(selectionChanged(KviTalTreeWidgetItem *)),this,SLOT(itemSelected(KviTalTreeWidgetItem *)));
- connect(m_pListView,SIGNAL(rightButtonClicked ( KviTalTreeWidgetItem * , const QPoint &, int )),this,SLOT(rightButtonClicked ( KviTalTreeWidgetItem * , const QPoint &, int )));
-
+
+ m_pListView = new KviLogViewListView(m_pIndexTab);
+
+ connect(m_pListView,SIGNAL(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)),this,SLOT(itemSelected(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)));
+ connect(m_pListView,SIGNAL(rightButtonPressed(QTreeWidgetItem *,QPoint)),
+ this,SLOT(rightButtonClicked(QTreeWidgetItem *,QPoint)));
+
m_pSearchTab = new QWidget(m_pTabWidget);
m_pTabWidget->addTab(m_pSearchTab,__tr2qs_ctx("Filter","logview"));
QGridLayout *layout = new QGridLayout(m_pSearchTab);
-
+
m_pShowChannelsCheck = new QCheckBox(__tr2qs_ctx("Show channel logs","logview"),m_pSearchTab);
m_pShowChannelsCheck->setChecked(true);
layout->addWidget(m_pShowChannelsCheck,0,0,1,2);
// layout->addMultiCellWidget(m_pShowChannelsCheck,0,0,0,1);
-
+
m_pShowQueryesCheck = new QCheckBox(__tr2qs_ctx("Show query logs","logview"),m_pSearchTab);
m_pShowQueryesCheck->setChecked(true);
layout->addWidget(m_pShowQueryesCheck,1,0,1,2);
// layout->addMultiCellWidget(m_pShowQueryesCheck,1,1,0,1);
-
+
m_pShowConsolesCheck = new QCheckBox(__tr2qs_ctx("Show console logs","logview"),m_pSearchTab);
m_pShowConsolesCheck->setChecked(true);
layout->addWidget(m_pShowConsolesCheck,2,0,1,2);
@@ -104,12 +102,12 @@ KviLogViewMDIWindow::KviLogViewMDIWindow(KviModuleExtensionDescriptor * d,KviFra
m_pShowDccChatCheck->setChecked(true);
layout->addWidget(m_pShowDccChatCheck,3,0,1,2);
// layout->addMultiCellWidget(m_pShowDccChatCheck,3,3,0,1);
-
+
m_pShowOtherCheck = new QCheckBox(__tr2qs_ctx("Show other logs","logview"),m_pSearchTab);
m_pShowOtherCheck->setChecked(true);
layout->addWidget(m_pShowOtherCheck,4,0,1,2);
// layout->addMultiCellWidget(m_pShowOtherCheck,4,4,0,1);
-
+
QLabel *l;
l = new QLabel(__tr2qs_ctx("Contents filter","logview"),m_pSearchTab);
layout->addWidget(l,5,0,1,2);
@@ -158,10 +156,10 @@ KviLogViewMDIWindow::KviLogViewMDIWindow(KviModuleExtensionDescriptor * d,KviFra
li.append(110);
li.append(width()-110);
m_pSplitter->setSizes(li);
-
+
g_pApp->getLocalKvircDirectory(m_szLogDirectory,KviApp::Log);
KviQString::ensureLastCharIs(m_szLogDirectory,'/'); // Does this work on Windows?
-
+
cacheFileList();
setupItemList();
connect(new QShortcut(Qt::Key_F+Qt::CTRL,this),SIGNAL(activated()),m_pIrcView,SLOT(toggleToolWidget()));
@@ -322,7 +320,7 @@ void KviLogViewMDIWindow::cacheFileList()
}
}
-void KviLogViewMDIWindow::itemSelected(KviTalTreeWidgetItem * it)
+void KviLogViewMDIWindow::itemSelected(KviTalTreeWidgetItem * it,KviTalTreeWidgetItem *)
{
bool bCompressed=0;
//A parent node
@@ -331,7 +329,7 @@ void KviLogViewMDIWindow::itemSelected(KviTalTreeWidgetItem * it)
{
return;
}
-
+
QString text;
((KviLogListViewItem *)it)->m_pFileData->getText(text,m_szLogDirectory);
@@ -358,10 +356,12 @@ QStringList KviLogViewMDIWindow::getFileNames()
return logDir.entryList();
}
-void KviLogViewMDIWindow::rightButtonClicked ( KviTalTreeWidgetItem * it, const QPoint &, int )
+void KviLogViewMDIWindow::rightButtonClicked ( QTreeWidgetItem * it, const QPoint &)
{
if(!it) return;
- if(((KviLogListViewItem *)it)->fileName(0).isEmpty()) return;
+ m_pListView->setCurrentItem(it);
+
+ if(((KviLogListViewItem *)it)->fileName().isEmpty()) return;
KviTalPopupMenu* popup = new KviTalPopupMenu(this);
popup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_QUIT)),__tr2qs_ctx("Remove file","logview"),this,SLOT(deleteCurrent()));
popup->exec( QCursor::pos() );
@@ -372,10 +372,10 @@ void KviLogViewMDIWindow::deleteCurrent()
KviLogListViewItem* pItem = (KviLogListViewItem *)(m_pListView->currentItem());
if(pItem)
{
- if(!pItem->fileName(0).isNull())
+ if(!pItem->fileName().isNull())
{
QString szFname;
- g_pApp->getLocalKvircDirectory(szFname,KviApp::Log,pItem->m_pFileData->fileName());
+ g_pApp->getLocalKvircDirectory(szFname,KviApp::Log,pItem->fileName());
KviFileUtils::removeFile(szFname);
delete pItem;
m_pIrcView->clearBuffer();
@@ -414,13 +414,13 @@ KviLogFile::KviLogFile(const QString& name)
undecoded = szTmpName.section('.',1).section('_',0,0);
m_szNetwork = undecoded.hexDecode(undecoded.ptr()).ptr();
-
+
QString szDate = szTmpName.section('.',-4,-1).section('_',1,1);
int iYear = szDate.section('.',0,0).toInt();
int iMonth = szDate.section('.',1,1).toInt();
int iDay = szDate.section('.',2,2).toInt();
m_date.setYMD(iYear,iMonth,iDay);
-
+
//debug("type=%i, name=%s, net=%s, date=%i %i %i",m_type,m_szName.ascii(),m_szNetwork.ascii(),iYear,iMonth,iDay);
}
@@ -453,10 +453,10 @@ void KviLogFile::getText(QString & text,const QString& logDir){
} else {
#endif
logFile.setFileName(logName);
-
+
if(!logFile.open(QIODevice::ReadOnly))
return;
-
+
QByteArray bytes;
bytes=logFile.readAll();
text = QString::fromUtf8(bytes.data(), bytes.size());
@@ -466,6 +466,28 @@ void KviLogFile::getText(QString & text,const QString& logDir){
#endif
}
+KviLogViewListView::KviLogViewListView(QWidget * par)
+: KviTalTreeWidget(par)
+{
+ header()->setSortIndicatorShown(true);
+ setColumnCount(1);
+ setHeaderLabel(__tr2qs_ctx("Log File","logview"));
+ setSelectionMode(QAbstractItemView::SingleSelection);
+ setSortingEnabled(true);
+ setRootIsDecorated(true);
+ setAnimated(true);
+}
+
+void KviLogViewListView::mousePressEvent (QMouseEvent *e)
+{
+ if (e->button() == Qt::RightButton)
+ {
+ QTreeWidgetItem *i=itemAt(e->pos());
+ if (i) emit rightButtonPressed(i,QCursor::pos());
+ }
+ QTreeWidget::mousePressEvent(e);
+}
+
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
#include "logviewmdiwindow.moc"
#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/modules/logview/logviewmdiwindow.h b/src/modules/logview/logviewmdiwindow.h
index bb789c28a..4c6b7832e 100644
--- a/src/modules/logview/logviewmdiwindow.h
+++ b/src/modules/logview/logviewmdiwindow.h
@@ -42,7 +42,7 @@ class KviLogViewWidget;
class KviLogFile {
public:
-
+
enum KviLogTypes {
Channel,
Console,
@@ -70,16 +70,28 @@ private:
QDate m_date;
};
+class KviLogViewListView : public KviTalTreeWidget
+{
+ Q_OBJECT
+public:
+ KviLogViewListView(QWidget*);
+ ~KviLogViewListView(){};
+protected:
+ void mousePressEvent (QMouseEvent *e);
+signals:
+ void rightButtonPressed(QTreeWidgetItem *,QPoint);
+};
+
class KviLogViewMDIWindow : public KviWindow , public KviModuleExtension
{
Q_OBJECT
-public:
+public:
KviLogViewMDIWindow(KviModuleExtensionDescriptor * d,KviFrame * lpFrm);
~KviLogViewMDIWindow();
protected:
KviPointerList<KviLogFile> m_logList;
- KviTalTreeWidget * m_pListView;
+ KviLogViewListView * m_pListView;
// Type filter
QCheckBox * m_pShowChannelsCheck;
@@ -105,7 +117,7 @@ protected:
QWidget * m_pSearchTab;
protected:
QStringList getFileNames();
-
+
void setupItemList();
void cacheFileList();
@@ -115,8 +127,8 @@ protected:
virtual void die();
virtual QSize sizeHint() const;
protected slots:
- void rightButtonClicked ( KviTalTreeWidgetItem *, const QPoint &, int );
- void itemSelected(KviTalTreeWidgetItem * it);
+ void rightButtonClicked ( QTreeWidgetItem *, const QPoint &);
+ void itemSelected(KviTalTreeWidgetItem * it, KviTalTreeWidgetItem *);
void deleteCurrent();
void applyFilter();
};
diff --git a/src/modules/logview/logviewwidget.cpp b/src/modules/logview/logviewwidget.cpp
index 9c308b33c..18e9a5991 100644
--- a/src/modules/logview/logviewwidget.cpp
+++ b/src/modules/logview/logviewwidget.cpp
@@ -37,41 +37,63 @@
#include <zlib.h>
#endif
+KviLogListViewItem::KviLogListViewItem(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
+: KviTalTreeWidgetItem(par), m_type(type), m_pFileData(fileData)
+{
+ setText(0,m_pFileData ? m_pFileData->name() : QString::null);
+};
-const QPixmap * KviLogListViewItemType::pixmap(int col) const
+KviLogListViewItem::KviLogListViewItem(KviTalTreeWidget * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
+: KviTalTreeWidgetItem(par), m_type(type), m_pFileData(fileData)
{
- switch(m_type)
- {
- case KviLogFile::Channel:
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_CHANNEL);
- case KviLogFile::Query:
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_QUERY);
- case KviLogFile::DccChat:
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_DCCMSG);
- case KviLogFile::Console:
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_CONSOLE);
- default:
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_HELP);
- }
-}
+ setText(0,m_pFileData ? m_pFileData->name() : QString::null);
+};
-QString KviLogListViewItemType::text(int col) const
+KviLogListViewItemFolder::KviLogListViewItemFolder(KviTalTreeWidgetItem * par, const QString& label)
+: KviLogListViewItem(par,KviLogFile::Other,0)
{
+ setText(0,label);
+};
+
+KviLogListViewItemType::KviLogListViewItemType(KviTalTreeWidget * par, KviLogFile::KviLogTypes type)
+: KviLogListViewItem(par,type,0)
+{
+ QIcon icon;
+ QString text;
+
switch(m_type)
{
case KviLogFile::Channel:
- return __tr2qs_ctx("Channel","logview");
+ icon= QIcon(*g_pIconManager->getSmallIcon(KVI_SMALLICON_CHANNEL));
+ text = __tr2qs_ctx("Channel","logview");
+ break;
case KviLogFile::Query:
- return __tr2qs_ctx("Query","logview");
+ icon= QIcon(*g_pIconManager->getSmallIcon(KVI_SMALLICON_QUERY));
+ text = __tr2qs_ctx("Query","logview");
+ break;
case KviLogFile::DccChat:
- return __tr2qs_ctx("DCC Chat","logview");
+ icon= QIcon(*g_pIconManager->getSmallIcon(KVI_SMALLICON_DCCMSG));
+ text = __tr2qs_ctx("DCC Chat","logview");
+ break;
case KviLogFile::Console:
- return __tr2qs_ctx("Console","logview");
+ icon= QIcon(*g_pIconManager->getSmallIcon(KVI_SMALLICON_CONSOLE));
+ text = __tr2qs_ctx("Console","logview");
+ break;
default:
- return __tr2qs_ctx("Other","logview");
+ icon= QIcon(*g_pIconManager->getSmallIcon(KVI_SMALLICON_HELP));
+ text = __tr2qs_ctx("Other","logview");
+ break;
}
-};
+ setIcon(0, icon);
+ setText(0, text);
+}
+
+KviLogListViewLog::KviLogListViewLog(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
+: KviLogListViewItem(par,type,fileData)
+{
+ setText(0, m_pFileData->date().toString("dd.MM.yyyy"));
+}
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
#include "logviewwidget.moc"
diff --git a/src/modules/logview/logviewwidget.h b/src/modules/logview/logviewwidget.h
index ef2835a73..bfbd99335 100644
--- a/src/modules/logview/logviewwidget.h
+++ b/src/modules/logview/logviewwidget.h
@@ -34,50 +34,38 @@ class KviScriptEditor;
class KviLogListViewItem : public KviTalTreeWidgetItem
{
public:
- KviLogListViewItem(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
- : KviTalTreeWidgetItem(par), m_type(type), m_pFileData(fileData) {};
- KviLogListViewItem(KviTalTreeWidget * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
- : KviTalTreeWidgetItem(par), m_type(type), m_pFileData(fileData) {};
+ KviLogListViewItem(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData);
+ KviLogListViewItem(KviTalTreeWidget * par, KviLogFile::KviLogTypes type, KviLogFile * fileData);
~KviLogListViewItem() {};
public:
KviLogFile::KviLogTypes m_type;
KviLogFile* m_pFileData;
-
- virtual QString fileName(int col) const { return m_pFileData ? m_pFileData->name() : QString::null; };
- virtual QString text(int col) const { return m_pFileData ? m_pFileData->name() : QString::null; };
+ virtual QString fileName() const { return QString::null; };
};
class KviLogListViewItemFolder : public KviLogListViewItem
{
public:
- KviLogListViewItemFolder(KviTalTreeWidgetItem * par, const QString& label)
- : KviLogListViewItem(par,KviLogFile::Other,0),m_szLabel(label) {};
+ KviLogListViewItemFolder(KviTalTreeWidgetItem * par, const QString& label);
~KviLogListViewItemFolder() {};
public:
- QString m_szLabel;
- virtual QString text(int col) const { return m_szLabel; };
};
class KviLogListViewItemType : public KviLogListViewItem
{
public:
- KviLogListViewItemType(KviTalTreeWidget * par, KviLogFile::KviLogTypes type)
- : KviLogListViewItem(par,type,0) {};
+ KviLogListViewItemType(KviTalTreeWidget * par, KviLogFile::KviLogTypes type);
~KviLogListViewItemType() {};
-public:
- virtual const QPixmap * pixmap(int col) const;
- virtual QString text(int col) const;
};
class KviLogListViewLog : public KviLogListViewItem
{
public:
- KviLogListViewLog(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData)
- : KviLogListViewItem(par,type,fileData){};
+ KviLogListViewLog(KviTalTreeWidgetItem * par, KviLogFile::KviLogTypes type, KviLogFile * fileData);
~KviLogListViewLog() {};
- virtual QString key ( int column, bool ascending ) const { return m_pFileData->date().toString("yyyy.MM.dd"); };
- virtual QString text(int col) const { return m_pFileData->date().toString("dd.MM.yyyy"); };
+ virtual QString key ( int column, bool ascending ) const { return text(column); };
+ virtual QString fileName() const { return m_pFileData->fileName(); };
};
#endif