kdevbuildsystem.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <qvbox.h>
00022 #include <qtable.h>
00023 #include <qlayout.h>
00024
00025 #include <kdialogbase.h>
00026 #include <klocale.h>
00027 #include <kdialog.h>
00028
00029 #include "kdevbuildsystem.h"
00030
00031 #include "propertyeditor.h"
00032
00033 BuildBaseItem::BuildBaseItem( int type, BuildBaseItem * parent )
00034 : m_type( type ), m_parent( parent )
00035 {
00036 }
00037
00038 BuildBaseItem::~ BuildBaseItem( )
00039 {
00040 }
00041
00042 QString BuildBaseItem::path( )
00043 {
00044 BuildBaseItem *it = this;
00045 QString p;
00046 while (it)
00047 {
00048 if (!p.isEmpty())
00049 p.prepend("/");
00050 p.prepend(it->name());
00051 it = it->parent();
00052 }
00053 return p;
00054 }
00055
00056
00057
00058 BuildGroupItem::BuildGroupItem( const QString & name, BuildGroupItem * parent )
00059 : BuildBaseItem( Group, parent ), m_parentGroup( parent )
00060 {
00061 m_name = name;
00062 if( m_parentGroup )
00063 m_parentGroup->insertGroup( this );
00064 }
00065
00066 BuildGroupItem::~ BuildGroupItem( )
00067 {
00068 while( m_targets.size() ){
00069 BuildTargetItem* target = m_targets.front();
00070 m_targets.front();
00071 delete target;
00072 }
00073
00074 while( m_subGroups.size() ){
00075 BuildGroupItem* group = m_subGroups.front();
00076 m_subGroups.pop_front();
00077 delete group;
00078 }
00079
00080 if( m_parentGroup )
00081 m_parentGroup->takeGroup( this );
00082 }
00083
00084 void BuildGroupItem::insertGroup( BuildGroupItem * group )
00085 {
00086 m_subGroups.append( group );
00087 }
00088
00089 void BuildGroupItem::removeGroup( BuildGroupItem * group )
00090 {
00091 m_subGroups.remove( group );
00092 delete( group );
00093 }
00094
00095 BuildGroupItem * BuildGroupItem::takeGroup( BuildGroupItem * group )
00096 {
00097 m_subGroups.remove( group );
00098 return group;
00099 }
00100
00101 void BuildGroupItem::insertTarget( BuildTargetItem * target )
00102 {
00103 m_targets.append( target );
00104 }
00105
00106 void BuildGroupItem::removeTarget( BuildTargetItem * target )
00107 {
00108 m_targets.remove( target );
00109 delete( target );
00110 }
00111
00112 BuildTargetItem * BuildGroupItem::takeTarget( BuildTargetItem * target )
00113 {
00114 m_targets.remove( target );
00115 return target;
00116 }
00117
00118
00119 BuildTargetItem::BuildTargetItem( const QString & name, BuildGroupItem * parentGroup )
00120 : BuildBaseItem( Target, parentGroup ), m_parentGroup( parentGroup )
00121 {
00122 m_name = name;
00123 if( m_parentGroup )
00124 m_parentGroup->insertTarget( this );
00125 }
00126
00127 BuildTargetItem::~ BuildTargetItem( )
00128 {
00129 while( m_files.size() ){
00130 BuildFileItem* file = m_files.front();
00131 m_files.pop_front();
00132 delete file;
00133 }
00134
00135 if( m_parentGroup )
00136 m_parentGroup->takeTarget( this );
00137 }
00138
00139 void BuildTargetItem::insertFile( BuildFileItem * file )
00140 {
00141 m_files.append( file );
00142 }
00143
00144 void BuildTargetItem::removeFile( BuildFileItem * file )
00145 {
00146 m_files.remove( file );
00147 delete( file );
00148 }
00149
00150 BuildFileItem * BuildTargetItem::takeFile( BuildFileItem * file )
00151 {
00152 m_files.remove( file );
00153 return file;
00154 }
00155
00156
00157 BuildFileItem::BuildFileItem( const KURL & url, BuildTargetItem * parentTarget )
00158 : BuildBaseItem( File, parentTarget ), m_url( url ), m_parentTarget( parentTarget )
00159 {
00160 if( m_parentTarget )
00161 m_parentTarget->insertFile( this );
00162 }
00163
00164 BuildFileItem::~ BuildFileItem( )
00165 {
00166 if( m_parentTarget )
00167 m_parentTarget->takeFile( this );
00168 }
00169
00170
00171
00172
00173
00174 void KDevBuildSystem::addDefaultBuildWidget(KDialogBase *dlg, QWidget *parent, BuildBaseItem *it )
00175 {
00176 BuildItemConfigWidget *w = new BuildItemConfigWidget(it, parent);
00177 connect( dlg, SIGNAL(okClicked()), w, SLOT(accept()) );
00178 }
00179
00180
00181 KDevBuildSystem::~ KDevBuildSystem( )
00182 {
00183 }
00184
00185 KDevBuildSystem::KDevBuildSystem( QObject *parent, const char * name )
00186 :QObject(parent, name)
00187 {
00188 }
00189
00190 void KDevBuildSystem::configureBuildItem( KDialogBase * dlg, BuildBaseItem * it)
00191 {
00192 qWarning("KDevBuildSystem::configureBuildItem");
00193 if (!dlg)
00194 return;
00195 qWarning("KDevBuildSystem::configureBuildItem: dlg exists");
00196 QVBox *vbox;
00197 vbox = dlg->addVBoxPage(i18n("Properties"));
00198 addDefaultBuildWidget(dlg, vbox, it);
00199 }
00200
00201 void KDevBuildSystem::initProject( KDevProject * project )
00202 {
00203 m_project = project;
00204 }
00205
00206 KDevProject * KDevBuildSystem::project( )
00207 {
00208 return m_project;
00209 }
00210
00211 void KDevBuildSystem::updateDefaultBuildWidget( )
00212 {
00213 }
00214
00215
00216
00217
00218
00219 BuildItemConfigWidget::BuildItemConfigWidget( BuildBaseItem *it, QWidget * parent, const char * name )
00220 :QWidget(parent, name)
00221 {
00222 QVBoxLayout *l = new QVBoxLayout(this, 2, 0);
00223 PropertyLib::PropertyEditor *ed = new PropertyLib::PropertyEditor(this, "item_propeditor");
00224 ed->populateProperties(&(it->attributes()));
00225 l->addWidget(ed);
00226 }
00227
00228 void BuildItemConfigWidget::accept( )
00229 {
00230 }
00231
00232
00233
00234
00235
00236 ProjectConfigTab::ProjectConfigTab( QWidget * parent, const char * name )
00237 :QWidget(parent, name)
00238 {
00239 }
00240
00241 BuildFileItem * BuildTargetItem::fileByName( const QString & fileName )
00242 {
00243 for( QValueList<BuildFileItem*>::Iterator it=m_files.begin(); it!=m_files.end(); ++it )
00244 {
00245 BuildFileItem* file = *it;
00246 if( file->name() == fileName )
00247 return file;
00248 }
00249
00250 return 0;
00251 }
00252
00253 BuildTargetItem * BuildGroupItem::targetByName( const QString & targetName )
00254 {
00255 for( QValueList<BuildTargetItem*>::Iterator it=m_targets.begin(); it!=m_targets.end(); ++it )
00256 {
00257 BuildTargetItem* target = *it;
00258 if( target->name() == targetName )
00259 return target;
00260 }
00261
00262 return 0;
00263 }
00264
00265 BuildGroupItem * BuildGroupItem::groupByname( const QString & groupName )
00266 {
00267 for( QValueList<BuildGroupItem*>::Iterator it=m_subGroups.begin(); it!=m_subGroups.end(); ++it )
00268 {
00269 BuildGroupItem* group = *it;
00270 if( group->name() == groupName )
00271 return group;
00272 }
00273
00274 return 0;
00275 }
00276
00277 #include "kdevbuildsystem.moc"
This file is part of the documentation for KDevelop Version 3.1.2.