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