8af4fbae2982dc3b2ff7fc3341302ea38c9d5555
[case] / src / dialog.cpp
1 // case - file manager for N900
2 // Copyright (C) 2010 Lukas Hrazky <lukkash@email.cz>
3 // 
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 // 
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 // 
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
18 #include "dialog.h"
19
20 #include <QHBoxLayout>
21
22
23 Dialog::Dialog(QWidget *parent) :
24     QDialog(parent),
25     text(new QLabel()),
26     buttons1(new QDialogButtonBox(Qt::Vertical)),
27     buttons2(new QDialogButtonBox(Qt::Vertical))
28 {
29     text->setWordWrap(true);
30     text->setAlignment(Qt::AlignTop | Qt::AlignLeft);
31
32     QHBoxLayout *layout = new QHBoxLayout();
33     setLayout(layout);
34     layout->addWidget(text);
35
36     connect(buttons1, SIGNAL(clicked(QAbstractButton*)), this, SLOT(finishUp(QAbstractButton*)));
37     connect(buttons2, SIGNAL(clicked(QAbstractButton*)), this, SLOT(finishUp(QAbstractButton*)));
38 }
39
40
41 QPushButton *Dialog::addButtonFirst(const QString &text, QDialogButtonBox::ButtonRole role) {
42     return buttons1->addButton(text, role);
43 }
44
45
46 QPushButton *Dialog::addButtonFirst(const QDialogButtonBox::StandardButton button) {
47     return buttons1->addButton(button);
48 }
49
50
51 QPushButton *Dialog::addButtonSecond(const QString &text, QDialogButtonBox::ButtonRole role) {
52     return buttons2->addButton(text, role);
53 }
54
55
56 QPushButton *Dialog::addButtonSecond(const QDialogButtonBox::StandardButton button) {
57     return buttons2->addButton(button);
58 }
59
60
61 void Dialog::setText(const QString &t) {
62     text->setText(t);
63 }
64
65
66 void Dialog::finishUp(QAbstractButton *button) {
67     clickedButton = button;
68     done(0);
69 }
70
71
72 int Dialog::exec() {
73     QHBoxLayout *l = qobject_cast<QHBoxLayout*>(layout());
74     if (buttons1->buttons().size()) {
75         l->addWidget(buttons1, 0, Qt::AlignTop);
76     }
77     if (buttons2->buttons().size()) {
78         l->addWidget(buttons2, 0, Qt::AlignTop);
79     }
80     return QDialog::exec();
81 }