choosesubprojectdlg.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
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
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
This file is part of the documentation for KDevelop Version 3.1.2.