aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/logview/LogViewWindow.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2011-01-14 17:27:36 +0000
committerGravatar Fabio Bas2011-01-14 17:27:36 +0000
commit487ac133f10c6f79ac56f073adcc56f36e913102 (patch)
tree0ba6190eb056c4ef4bbdeb712d9ed55a5cf40db5 /src/modules/logview/LogViewWindow.cpp
parentadditional vs2010 patch by egns (diff)
downloadKVIrc-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.cpp56
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;