diff options
Diffstat (limited to 'languages/cpp/pcsimporter/kdelibsimporter/kdevkdelibsimporter.cpp')
-rw-r--r-- | languages/cpp/pcsimporter/kdelibsimporter/kdevkdelibsimporter.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/languages/cpp/pcsimporter/kdelibsimporter/kdevkdelibsimporter.cpp b/languages/cpp/pcsimporter/kdelibsimporter/kdevkdelibsimporter.cpp new file mode 100644 index 00000000..341256b7 --- /dev/null +++ b/languages/cpp/pcsimporter/kdelibsimporter/kdevkdelibsimporter.cpp @@ -0,0 +1,119 @@ +/*************************************************************************** +* Copyright (C) 2003 by Roberto Raggi * +* [email protected] * +* * +* 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 "kdevkdelibsimporter.h" +#include "kdevkdelibsimporter.moc" +#include "settingsdialog.h" + +#include <kdebug.h> +#include <kgenericfactory.h> + +#include <qvaluestack.h> +#include <qlabel.h> +#include <qdir.h> +#include <qcombobox.h> + +K_EXPORT_COMPONENT_FACTORY( libkdevkdelibsimporter, KGenericFactory<KDevKDELibsImporter>( "kdevkdelibsimporter" ) ) + +KDevKDELibsImporter::KDevKDELibsImporter( QObject * parent, const char * name, const QStringList& ) + : KDevPCSImporter( parent, name ) +{} + +KDevKDELibsImporter::~KDevKDELibsImporter() +{} + +QStringList KDevKDELibsImporter::fileList( const QString& path ) +{ + QDir dir( path ); + QStringList lst = dir.entryList( "*.h" ); + QStringList fileList; + for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) + { + fileList.push_back( dir.absPath() + "/" + ( *it ) ); + } + return fileList; +} + + +QStringList KDevKDELibsImporter::fileList() +{ + if ( !m_settings ) + return QStringList(); + + QStringList files; + int scope = m_settings->cbParsingScope->currentItem(); + if ( scope == 0 ) + { + files += fileList( m_settings->kdeDir() ); + files += fileList( m_settings->kdeDir() + "/arts" ); + files += fileList( m_settings->kdeDir() + "/artsc" ); + files += fileList( m_settings->kdeDir() + "/dcopc" ); + files += fileList( m_settings->kdeDir() + "/dom" ); + files += fileList( m_settings->kdeDir() + "/kabc" ); + files += fileList( m_settings->kdeDir() + "/kdeprint" ); + files += fileList( m_settings->kdeDir() + "/kdesu" ); + files += fileList( m_settings->kdeDir() + "/kio" ); + files += fileList( m_settings->kdeDir() + "/kjs" ); + files += fileList( m_settings->kdeDir() + "/kparts" ); + files += fileList( m_settings->kdeDir() + "/ktexteditor" ); + } + else if ( scope == 1 ) + { + QValueStack<QString> s; + s.push( m_settings->kdeDir() ); + files += fileList( m_settings->kdeDir() ); + + QDir dir; + do + { + dir.setPath( s.pop() ); + kdDebug( 9015 ) << "Examining: " << dir.path() << endl; + const QFileInfoList *dirEntries = dir.entryInfoList(); + if ( !dirEntries ) continue; + QPtrListIterator<QFileInfo> it( *dirEntries ); + for ( ; it.current(); ++it ) + { + QString fileName = it.current() ->fileName(); + if ( fileName == "." || fileName == ".." ) + continue; + QString path = it.current() ->absFilePath(); + if ( it.current() ->isDir() ) + { + kdDebug( 9015 ) << "Pushing: " << path << endl; + s.push( path ); + files += fileList( path ); + } + } + } + while ( !s.isEmpty() ); + } + + return files; +} + +QStringList KDevKDELibsImporter::includePaths() +{ + if ( !m_settings ) + return QStringList(); + + QStringList includePaths; + includePaths.push_back( m_settings->kdeDir() ); + return includePaths; +} + +QWidget * KDevKDELibsImporter::createSettingsPage( QWidget * parent, const char * name ) +{ + m_settings = new SettingsDialog( parent, name ); + return m_settings; +} +//kate: indent-mode csands; tab-width 4; space-indent off; + + |