KDevelop API Documentation

buildtools/qmake/choosesubprojectdlg.cpp

Go to the documentation of this file.
00001 /*************************************************************************** 00002 * Copyright (C) 2003 by Alexander Dymo * 00003 * cloudtemple@mksat.net * 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 #include <qpushbutton.h> 00012 00013 #include "trollprojectwidget.h" 00014 00015 #include "choosesubprojectdlg.h" 00016 00017 ChooseSubprojectDlg::ChooseSubprojectDlg(TrollProjectWidget *widget, QWidget* parent, const char* name, bool modal, WFlags fl) 00018 : ChooseSubprojectDlgBase(parent,name, modal,fl), m_widget(widget) 00019 { 00020 ChooseItem *it = new ChooseItem(m_widget->m_rootSubproject, subprojects_view, m_widget->m_rootSubproject->text(0)); 00021 it->setPixmap(0, *(m_widget->m_rootSubproject->pixmap(0))); 00022 it->setOpen(true); 00023 fillSubprojectsView(it); 00024 00025 connect(subprojects_view, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(itemSelected(QListViewItem *))); 00026 subprojects_view->setSelected(it, true); 00027 } 00028 00029 ChooseSubprojectDlg::~ChooseSubprojectDlg() 00030 { 00031 } 00032 00033 /*$SPECIALIZATION$*/ 00034 void ChooseSubprojectDlg::accept() 00035 { 00036 if (!subprojects_view->currentItem()) 00037 return; 00038 ChooseItem *item = dynamic_cast<ChooseItem*>(subprojects_view->currentItem()); 00039 if (!item) 00040 return; 00041 if (item->subproject()->configuration.m_template == QTMP_SUBDIRS) 00042 return; 00043 00044 QDialog::accept(); 00045 } 00046 00047 ChooseItem::ChooseItem( SubqmakeprojectItem * spitem, QListViewItem * parent, QString text ) 00048 :KListViewItem(parent, text), m_spitem(spitem) 00049 { 00050 } 00051 00052 ChooseItem::ChooseItem( SubqmakeprojectItem * spitem, QListView * parent, QString text ) 00053 :KListViewItem(parent, text), m_spitem(spitem) 00054 { 00055 } 00056 00057 SubqmakeprojectItem * ChooseItem::subproject( ) 00058 { 00059 return m_spitem; 00060 } 00061 00062 void ChooseSubprojectDlg::fillSubprojectsView( ChooseItem *item ) 00063 { 00064 if (!item->subproject()) 00065 return; 00066 00067 QListViewItem * sub_spitem = item->subproject()->firstChild(); 00068 while( sub_spitem ) { 00069 SubqmakeprojectItem *spitem = dynamic_cast<SubqmakeprojectItem *>(sub_spitem); 00070 if (spitem) 00071 { 00072 ChooseItem *child_item = new ChooseItem(spitem, item, spitem->text(0)); 00073 child_item->setPixmap(0, *(spitem->pixmap(0))); 00074 child_item->setOpen(true); 00075 fillSubprojectsView(child_item); 00076 } 00077 00078 sub_spitem = sub_spitem->nextSibling(); 00079 } 00080 } 00081 00082 void ChooseSubprojectDlg::itemSelected( QListViewItem * it ) 00083 { 00084 if (!it) 00085 return; 00086 ChooseItem *item = dynamic_cast<ChooseItem*>(it); 00087 if (!item) 00088 return; 00089 if (item->subproject()->configuration.m_template == QTMP_SUBDIRS) 00090 buttonOk->setEnabled(false); 00091 else 00092 buttonOk->setEnabled(true); 00093 } 00094 00095 SubqmakeprojectItem * ChooseSubprojectDlg::selectedSubproject( ) 00096 { 00097 if (subprojects_view->currentItem()) 00098 { 00099 ChooseItem *item = dynamic_cast<ChooseItem*>(subprojects_view->currentItem()); 00100 if (item) 00101 return item->subproject(); 00102 } 00103 00104 return 0; 00105 } 00106 00107 00108 #include "choosesubprojectdlg.moc" 00109
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:38:54 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003