/*************************************************************************** * Copyright (C) 2003 by Alexander Dymo * * cloudtemple@mksat.net * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #include "kdevcustomimporter.h" #include "settingsdialog.h" #include #include #include #include K_EXPORT_COMPONENT_FACTORY( libkdevcustompcsimporter, KGenericFactory( "kdevcustompcsimporter" ) ) KDevCustomImporter::KDevCustomImporter( TQObject* parent, const char* name, const TQStringList & // args ) : KDevPCSImporter( parent, name ) {} KDevCustomImporter::~KDevCustomImporter() {} TQString KDevCustomImporter::dbName() const { return m_settings->dbName(); } TQStringList KDevCustomImporter::fileList( const TQString& path ) { TQDir dir( path ); if ( !dir.exists() ) return TQStringList(); // TQStringList lst = dir.entryList( "*.h;*.H;*.hh;*.hxx;*.hpp;*.tlh" ); TQStringList lst = dir.entryList( m_settings->filePattern() ); TQStringList fileList; for ( TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { fileList.push_back( dir.absPath() + "/" + ( *it ) ); } return fileList; } TQStringList KDevCustomImporter::fileList() { if ( !m_settings ) return TQStringList(); TQStringList lst = m_settings->dirs(); TQStringList files; for ( TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { if ( !m_settings->recursive() ) files += fileList( *it ); else processDir( *it, files ); } return files; } TQStringList KDevCustomImporter::includePaths() { if ( !m_settings ) return TQStringList(); return m_settings->dirs(); } TQWidget* KDevCustomImporter::createSettingsPage( TQWidget* parent, const char* name ) { m_settings = new SettingsDialog( parent, name ); return m_settings; } void KDevCustomImporter::processDir( const TQString path, TQStringList & files ) { TQValueStack s; s.push( path ); files += fileList( path ); TQDir dir; do { dir.setPath( s.pop() ); if (!dir.exists()) continue; kdDebug( 9015 ) << "Examining: " << dir.path() << endl; const TQFileInfoList *dirEntries = dir.entryInfoList(); if ( !dirEntries ) continue; TQPtrListIterator it( *dirEntries ); for ( ; dirEntries && it.current(); ++it ) { TQString fileName = it.current() ->fileName(); if ( fileName == "." || fileName == ".." ) continue; if ( it.current() ->isDir() ) { TQString tmpPath = it.current() ->absFilePath(); kdDebug( 9015 ) << "Pushing: " << tmpPath << endl; s.push( tmpPath ); files += fileList( tmpPath ); } } } while ( !s.isEmpty() ); } #include "kdevcustomimporter.moc"