diff options
| author | 2008-09-08 15:57:21 +0000 | |
|---|---|---|
| committer | 2008-09-08 15:57:21 +0000 | |
| commit | 019d79f779731f4afa8d068710eaabb9ceeebd5f (patch) | |
| tree | 1ad8561cc853a4beba0b72488a117c97a0cb83c0 /src/modules/logview | |
| parent | updated todo (diff) | |
| download | KVIrc-019d79f779731f4afa8d068710eaabb9ceeebd5f.tar.gz KVIrc-019d79f779731f4afa8d068710eaabb9ceeebd5f.tar.bz2 KVIrc-019d79f779731f4afa8d068710eaabb9ceeebd5f.zip | |
fixed (ported) logviewer to qt4
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2426 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/logview')
| -rw-r--r-- | src/modules/logview/logviewmdiwindow.cpp | 78 | ||||
| -rw-r--r-- | src/modules/logview/logviewmdiwindow.h | 24 | ||||
| -rw-r--r-- | src/modules/logview/logviewwidget.cpp | 66 | ||||
| -rw-r--r-- | src/modules/logview/logviewwidget.h | 28 |
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 |
