diff options
| author | 2011-01-14 17:27:36 +0000 | |
|---|---|---|
| committer | 2011-01-14 17:27:36 +0000 | |
| commit | 487ac133f10c6f79ac56f073adcc56f36e913102 (patch) | |
| tree | 0ba6190eb056c4ef4bbdeb712d9ed55a5cf40db5 /src/modules/logview/LogViewWindow.cpp | |
| parent | additional vs2010 patch by egns (diff) | |
| download | KVIrc-487ac133f10c6f79ac56f073adcc56f36e913102.tar.gz KVIrc-487ac133f10c6f79ac56f073adcc56f36e913102.tar.bz2 KVIrc-487ac133f10c6f79ac56f073adcc56f36e913102.zip | |
gave the logviewer recursive directory scanning superpowers, to support the new "dynamic log subdirectory" setting
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5362 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/logview/LogViewWindow.cpp')
| -rw-r--r-- | src/modules/logview/LogViewWindow.cpp | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/src/modules/logview/LogViewWindow.cpp b/src/modules/logview/LogViewWindow.cpp index 495edd1a0..6ab5e0417 100644 --- a/src/modules/logview/LogViewWindow.cpp +++ b/src/modules/logview/LogViewWindow.cpp @@ -296,7 +296,20 @@ void LogViewWindow::filterNext() if(m_pLastCategory) { if(m_pLastCategory->m_type!=pFile->type()) - m_pLastCategory = new LogListViewItemType(m_pListView,pFile->type()); + { + m_pLastCategory=0; + for(int i=0;i<m_pListView->topLevelItemCount(); ++i) + { + LogListViewItemType * pTmp = (LogListViewItemType*) m_pListView->topLevelItem(i); + if(pTmp->m_type == pFile->type()) + { + m_pLastCategory=pTmp; + break; + } + } + if(!m_pLastCategory) + m_pLastCategory = new LogListViewItemType(m_pListView,pFile->type()); + } } else { m_pLastCategory = new LogListViewItemType(m_pListView,pFile->type()); } @@ -329,19 +342,31 @@ filter_last: void LogViewWindow::cacheFileList() { - QStringList m_pFileNames = getFileNames(); - m_pFileNames.sort(); - QString szFname; + QString logPath; + g_pApp->getLocalKvircDirectory(logPath,KviApplication::Log); + recurseDirectory(logPath); + + setupItemList(); +} - for(QStringList::Iterator it = m_pFileNames.begin(); it != m_pFileNames.end(); ++it) +void LogViewWindow::recurseDirectory(const QString& sDir) +{ + QDir dir(sDir); + QFileInfoList list = dir.entryInfoList(); + for (int iList=0;iList<list.count();iList++) { - szFname=(*it); - QFileInfo fi(szFname); - if(fi.suffix()=="gz" || fi.suffix()=="log") - m_logList.append(new LogFile(szFname)); + QFileInfo info = list[iList]; + if (info.isDir()) + { + // recursive + if (info.fileName()!=".." && info.fileName()!=".") + { + recurseDirectory(info.filePath()); + } + } else if(info.suffix()=="gz" || info.suffix()=="log") { + m_logList.append(new LogFile(info.fileName())); + } } - - setupItemList(); } void LogViewWindow::itemSelected(QTreeWidgetItem * it,QTreeWidgetItem *) @@ -370,15 +395,6 @@ void LogViewWindow::itemSelected(QTreeWidgetItem * it,QTreeWidgetItem *) m_pIrcView->repaint(); } -QStringList LogViewWindow::getFileNames() -{ - QString logPath; - g_pApp->getLocalKvircDirectory(logPath,KviApplication::Log); - QString qPath(logPath); - QDir logDir(qPath); - return logDir.entryList(); -} - void LogViewWindow::rightButtonClicked ( QTreeWidgetItem * it, const QPoint &) { if(!it) return; |
