KDevelop API Documentation

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.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:40 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003