diff options
| author | Darrell Anderson <humanreadable@yahoo.com> | 2014-03-02 20:05:33 +0100 | 
|---|---|---|
| committer | Slávek Banko <slavek.banko@axis.cz> | 2014-03-02 20:05:33 +0100 | 
| commit | 722ce1efbac31c61b1d4b13f7e075c9f311e3e73 (patch) | |
| tree | db1b6b28566e5fe9accb4a688f7257673cecb080 /lib/interfaces/tdevproject.cpp | |
| parent | afb74575caf7dd8ccb6c235b1c8d788e320c19da (diff) | |
| download | tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.tar.gz tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.zip | |
Finish renaming tdevelop components
Diffstat (limited to 'lib/interfaces/tdevproject.cpp')
| -rw-r--r-- | lib/interfaces/tdevproject.cpp | 164 | 
1 files changed, 164 insertions, 0 deletions
| diff --git a/lib/interfaces/tdevproject.cpp b/lib/interfaces/tdevproject.cpp new file mode 100644 index 00000000..77136ca0 --- /dev/null +++ b/lib/interfaces/tdevproject.cpp @@ -0,0 +1,164 @@ +/* This file is part of the KDE project +   Copyright (C) 2001 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> +   Copyright (C) 2002-2003 Roberto Raggi <roberto@kdevelop.org> +   Copyright (C) 2002 Simon Hausmann <hausmann@kde.org> +   Copyright (C) 2003 Jens Dagerbo <jens.dagerbo@swipnet.se> +   Copyright (C) 2003 Mario Scalas <mario.scalas@libero.it> +   Copyright (C) 2003-2004 Alexander Dymo <adymo@kdevelop.org> + +   This library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Library General Public +   License as published by the Free Software Foundation; either +   version 2 of the License, or (at your option) any later version. + +   This library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Library General Public License for more details. + +   You should have received a copy of the GNU Library General Public License +   along with this library; see the file COPYING.LIB.  If not, write to +   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +   Boston, MA 02110-1301, USA. +*/ + +#include <kdebug.h> + +#include "tdevproject.h" +#include <urlutil.h> +#include <tqfileinfo.h> +#include <tqtimer.h> +#include "tdevprojectiface.h" + +struct TDevProject::Private { +    TQMap<TQString, TQString> m_absToRel; +    TQStringList m_symlinkList; +    TQTimer *m_timer; +    TDevProjectIface *m_iface; +}; + +TDevProject::TDevProject(const TDevPluginInfo *info, TQObject *parent, const char *name) +    : TDevPlugin(info, parent, name), d(new TDevProject::Private()) +{ +    connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); +    connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); + +    connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(slotAddFilesToFileMap(const TQStringList& )) ); +    connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(slotRemoveFilesFromFileMap(const TQStringList& )) ); + +    d->m_timer = new TQTimer(this); +    connect(d->m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotBuildFileMap())); +    d->m_iface = new TDevProjectIface(this); +} + +TDevProject::~TDevProject() +{ +    d->m_timer->stop(); +    delete d->m_iface; +    delete d->m_timer; +    delete d; +} + +void TDevProject::changedFile( const TQString & fileName ) +{ +    TQStringList fileList; +    fileList.append ( fileName ); + +    emit changedFilesInProject( fileList ); + +} + +void TDevProject::changedFiles( const TQStringList & fileList ) +{ +    emit changedFilesInProject( fileList ); +} + +TDevProject::Options TDevProject::options() const +{ +    return (TDevProject::Options)0; +} + +bool TDevProject::isProjectFile( const TQString & absFileName ) +{ +    return d->m_absToRel.contains( absFileName ); +} + +TQString TDevProject::relativeProjectFile( const TQString & absFileName ) +{ +    if( isProjectFile(absFileName) ) +	return d->m_absToRel[ absFileName ]; +    return TQString(); +} + +void TDevProject::buildFileMap() +{ +    d->m_timer->stop(); +    d->m_timer->start(0, true); +} + +void TDevProject::slotBuildFileMap() +{ +    kdDebug(9000) << k_funcinfo << endl; + +    d->m_absToRel.clear(); +    d->m_symlinkList.clear(); +    const TQStringList fileList = allFiles(); +    for( TQStringList::ConstIterator it=fileList.begin(); it!=fileList.end(); ++it ) +    { +	TQFileInfo fileInfo( projectDirectory() + "/" + *it ); +	d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; + +        if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) +        { +            d->m_symlinkList << *it; +        } +    } +} + +void TDevProject::openProject( const TQString & /*dirName*/, const TQString & /*projectName*/ ) +{ +    buildFileMap(); +} + +TQStringList TDevProject::symlinkProjectFiles( ) +{ +    return d->m_symlinkList; +} + +TQString TDevProject::defaultRunDirectory(const TQString& projectPluginName) const +{ +    return DomUtil::readEntry(*projectDom(), "/" + projectPluginName + "/run/globalcwd"); +} + +void TDevProject::slotAddFilesToFileMap( const TQStringList & fileList ) +{ +	TQStringList::ConstIterator it = fileList.begin(); +	while( it != fileList.end() ) +	{ +		TQFileInfo fileInfo( projectDirectory() + "/" + *it ); +		d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; + +		if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) +		{ +			d->m_symlinkList << *it; +		} + +		++it; +	} +} + +void TDevProject::slotRemoveFilesFromFileMap( const TQStringList & fileList ) +{ +	TQStringList::ConstIterator it = fileList.begin(); +	while( it != fileList.end() ) +	{ +		TQFileInfo fileInfo( projectDirectory() + "/" + *it ); +		d->m_absToRel.remove( URLUtil::canonicalPath(fileInfo.absFilePath()) ); + +		d->m_symlinkList.remove( *it ); + +		++it; +	} +} + +#include "tdevproject.moc" | 
