~ubuntu-branches/debian/sid/kdevelop/sid

« back to all changes in this revision

Viewing changes to buildtools/qmake/choosesubprojectdlg.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy Lainé
  • Date: 2006-05-23 18:39:42 UTC
  • Revision ID: james.westby@ubuntu.com-20060523183942-hucifbvh68k2bwz7
Tags: upstream-3.3.2
Import upstream version 3.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
 *   Copyright (C) 2003 by Alexander Dymo                                  *
 
3
 *   cloudtemple@mksat.net                                                 *
 
4
 *                                                                         *
 
5
 *   This program is free software; you can redistribute it and/or modify  *
 
6
 *   it under the terms of the GNU General Public License as published by  *
 
7
 *   the Free Software Foundation; either version 2 of the License, or     *
 
8
 *   (at your option) any later version.                                   *
 
9
 *                                                                         *
 
10
 ***************************************************************************/
 
11
#include <kpushbutton.h>
 
12
 
 
13
#include "trollprojectwidget.h"
 
14
 
 
15
#include "choosesubprojectdlg.h"
 
16
 
 
17
ChooseSubprojectDlg::ChooseSubprojectDlg(TrollProjectWidget *widget, QWidget* parent, const char* name, bool modal, WFlags fl)
 
18
    : ChooseSubprojectDlgBase(parent,name, modal,fl), m_widget(widget)
 
19
{
 
20
    ChooseItem *it = new ChooseItem(m_widget->m_rootSubproject, subprojects_view, m_widget->m_rootSubproject->text(0));
 
21
    it->setPixmap(0, *(m_widget->m_rootSubproject->pixmap(0)));
 
22
    it->setOpen(true);
 
23
    fillSubprojectsView(it);
 
24
 
 
25
    connect(subprojects_view, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(itemSelected(QListViewItem *)));
 
26
    subprojects_view->setSelected(it, true);
 
27
}
 
28
 
 
29
ChooseSubprojectDlg::~ChooseSubprojectDlg()
 
30
{
 
31
}
 
32
 
 
33
/*$SPECIALIZATION$*/
 
34
void ChooseSubprojectDlg::accept()
 
35
{
 
36
    if (!subprojects_view->currentItem())
 
37
        return;
 
38
    ChooseItem *item = dynamic_cast<ChooseItem*>(subprojects_view->currentItem());
 
39
    if (!item)
 
40
        return;
 
41
    if (item->subproject()->configuration.m_template == QTMP_SUBDIRS)
 
42
        return;
 
43
 
 
44
    QDialog::accept();
 
45
}
 
46
 
 
47
ChooseItem::ChooseItem( SubqmakeprojectItem * spitem, QListViewItem * parent, QString text )
 
48
    :KListViewItem(parent, text), m_spitem(spitem)
 
49
{
 
50
}
 
51
 
 
52
ChooseItem::ChooseItem( SubqmakeprojectItem * spitem, QListView * parent, QString text )
 
53
    :KListViewItem(parent, text), m_spitem(spitem)
 
54
{
 
55
}
 
56
 
 
57
SubqmakeprojectItem * ChooseItem::subproject( )
 
58
{
 
59
    return m_spitem;
 
60
}
 
61
 
 
62
void ChooseSubprojectDlg::fillSubprojectsView( ChooseItem *item )
 
63
{
 
64
    if (!item->subproject())
 
65
        return;
 
66
 
 
67
    QListViewItem * sub_spitem = item->subproject()->firstChild();
 
68
    while( sub_spitem ) {
 
69
        SubqmakeprojectItem *spitem = dynamic_cast<SubqmakeprojectItem *>(sub_spitem);
 
70
        if (spitem)
 
71
        {
 
72
            ChooseItem *child_item = new ChooseItem(spitem, item, spitem->text(0));
 
73
            child_item->setPixmap(0, *(spitem->pixmap(0)));
 
74
            child_item->setOpen(true);
 
75
            fillSubprojectsView(child_item);
 
76
        }
 
77
 
 
78
        sub_spitem = sub_spitem->nextSibling();
 
79
    }
 
80
}
 
81
 
 
82
void ChooseSubprojectDlg::itemSelected( QListViewItem * it )
 
83
{
 
84
    if (!it)
 
85
        return;
 
86
    ChooseItem *item = dynamic_cast<ChooseItem*>(it);
 
87
    if (!item)
 
88
        return;
 
89
    if (item->subproject()->configuration.m_template == QTMP_SUBDIRS)
 
90
        buttonOk->setEnabled(false);
 
91
    else
 
92
        buttonOk->setEnabled(true);
 
93
}
 
94
 
 
95
SubqmakeprojectItem * ChooseSubprojectDlg::selectedSubproject( )
 
96
{
 
97
    if (subprojects_view->currentItem())
 
98
    {
 
99
        ChooseItem *item = dynamic_cast<ChooseItem*>(subprojects_view->currentItem());
 
100
        if (item)
 
101
            return item->subproject();
 
102
    }
 
103
 
 
104
    return 0;
 
105
}
 
106
 
 
107
 
 
108
#include "choosesubprojectdlg.moc"
 
109