KDevelop API Documentation

kdevkdelibsimporter.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Roberto Raggi                                   *
00003  *   roberto@kdevelop.org                                                  *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  ***************************************************************************/
00011 
00012 #include "kdevkdelibsimporter.h"
00013 #include "kdevkdelibsimporter.moc"
00014 #include "settingsdialog.h"
00015 
00016 #include <kdebug.h>
00017 #include <kgenericfactory.h>
00018 
00019 #include <qvaluestack.h>
00020 #include <qlabel.h>
00021 #include <qdir.h>
00022 #include <qcombobox.h>
00023 
00024 K_EXPORT_COMPONENT_FACTORY( libkdevkdelibsimporter, KGenericFactory<KDevKDELibsImporter>( "kdevkdelibsimporter" ) )
00025 
00026 KDevKDELibsImporter::KDevKDELibsImporter( QObject * parent, const char * name, const QStringList& )
00027     : KDevPCSImporter( parent, name )
00028 {
00029 }
00030 
00031 KDevKDELibsImporter::~KDevKDELibsImporter()
00032 {
00033 }
00034 
00035 QStringList KDevKDELibsImporter::fileList( const QString& path )
00036 {
00037     QDir dir( path );
00038     QStringList lst = dir.entryList( "*.h" );
00039     QStringList fileList;
00040     for( QStringList::Iterator it=lst.begin(); it!=lst.end(); ++it )
00041     {
00042         fileList.push_back( dir.absPath() + "/" + (*it) );
00043     }
00044     return fileList;
00045 }
00046 
00047 
00048 QStringList KDevKDELibsImporter::fileList()
00049 {
00050     if( !m_settings )
00051     return QStringList();
00052 
00053     QStringList files;
00054     int scope = m_settings->cbParsingScope->currentItem();
00055     if ( scope == 0 )
00056     {
00057         files += fileList( m_settings->kdeDir() );
00058         files += fileList( m_settings->kdeDir() + "/arts" );
00059         files += fileList( m_settings->kdeDir() + "/artsc" );
00060         files += fileList( m_settings->kdeDir() + "/dcopc" );
00061         files += fileList( m_settings->kdeDir() + "/dom" );
00062         files += fileList( m_settings->kdeDir() + "/kabc" );
00063         files += fileList( m_settings->kdeDir() + "/kdeprint" );
00064         files += fileList( m_settings->kdeDir() + "/kdesu" );
00065         files += fileList( m_settings->kdeDir() + "/kio" );
00066         files += fileList( m_settings->kdeDir() + "/kjs" );
00067         files += fileList( m_settings->kdeDir() + "/kparts" );
00068         files += fileList( m_settings->kdeDir() + "/ktexteditor" );
00069     }
00070     else if (scope == 1)
00071     {
00072         QValueStack<QString> s;
00073         s.push(m_settings->kdeDir());
00074         files += fileList(m_settings->kdeDir());
00075 
00076         QDir dir;
00077         do {
00078             dir.setPath(s.pop());
00079             kdDebug(9015) << "Examining: " << dir.path() << endl;
00080             const QFileInfoList *dirEntries = dir.entryInfoList();
00081             QPtrListIterator<QFileInfo> it(*dirEntries);
00082             for (; it.current(); ++it) {
00083                 QString fileName = it.current()->fileName();
00084                 if (fileName == "." || fileName == "..")
00085                     continue;
00086                 QString path = it.current()->absFilePath();
00087                 if (it.current()->isDir()) {
00088                     kdDebug(9015) << "Pushing: " << path << endl;
00089                     s.push(path);
00090                     files += fileList(path);
00091                 }
00092             }
00093         } while (!s.isEmpty());
00094     }
00095 
00096     return files;
00097 }
00098 
00099 QStringList KDevKDELibsImporter::includePaths()
00100 {
00101     if( !m_settings )
00102     return QStringList();
00103 
00104     QStringList includePaths;
00105     includePaths.push_back( m_settings->kdeDir() );
00106     return includePaths;
00107 }
00108 
00109 QWidget * KDevKDELibsImporter::createSettingsPage( QWidget * parent, const char * name )
00110 {
00111     m_settings = new SettingsDialog( parent, name );
00112     return m_settings;
00113 }
00114 
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:47 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003