f3fa57f775362b6623cd9cae9af28ae3941bebd7
[scorecard] / src / settings-dialog.cpp
1 #include <QPushButton>
2 #include <QDialogButtonBox>
3 #include <QLabel>
4 #include <QVBoxLayout>
5 #include <QHBoxLayout>
6 #include <QStandardItemModel>
7 #ifdef Q_WS_MAEMO_5
8 #include <QMaemo5InformationBox>
9 #include <QMaemo5ValueButton>
10 #include <QMaemo5ListPickSelector>
11 #endif
12
13 #include "settings-dialog.h"
14
15 SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
16 {
17     QWidget *centralWidget = new QWidget(this);
18     createLayout(centralWidget);
19     setWindowTitle(tr("Settings"));
20 }
21
22 void SettingsDialog::createLayout(QWidget *parent)
23 {
24     QPushButton * ok = new QPushButton(tr("OK"));
25
26     connect(ok, SIGNAL(clicked()), this, SLOT(okClicked()));
27
28     QDialogButtonBox * buttonBox = new QDialogButtonBox(Qt::Vertical);
29     buttonBox->addButton(ok, QDialogButtonBox::ActionRole);
30
31     QVBoxLayout * leftLayout = new QVBoxLayout;
32
33 #ifdef Q_WS_MAEMO_5
34     QStandardItem * item;
35
36     // HCP
37     hcpButton = new QMaemo5ValueButton();
38     hcpButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
39     QMaemo5ListPickSelector * listPickSelector1 = new QMaemo5ListPickSelector;
40     hcpModel = new QStandardItemModel(54, 0);
41     for (int i = 0; i < 54; i++) {
42         item = new QStandardItem(QString("%0").arg(i));
43         item->setTextAlignment(Qt::AlignCenter);
44         hcpModel->setItem(i, item);
45     }
46     listPickSelector1->setModel(hcpModel);
47     hcpButton->setPickSelector(listPickSelector1);
48     hcpButton->setText(QString::fromUtf8("HCP"));
49
50     // Home Club
51     homeClubButton = new QMaemo5ValueButton();
52     homeClubButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
53     QMaemo5ListPickSelector * listPickSelector2 = new QMaemo5ListPickSelector;
54     homeClubModel = new QStandardItemModel;
55     listPickSelector2->setModel(homeClubModel);
56     homeClubButton->setPickSelector(listPickSelector2);
57     homeClubButton->setText(QString::fromUtf8("Home Club"));
58
59     // Use Default Courses
60     defaultCoursesButton = new QMaemo5ValueButton();
61     defaultCoursesButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
62     QMaemo5ListPickSelector * listPickSelector3 = new QMaemo5ListPickSelector;
63     defaultCoursesModel = new QStandardItemModel(2, 0);
64     item = new QStandardItem(QString("Yes"));
65     item->setTextAlignment(Qt::AlignCenter);
66     defaultCoursesModel->setItem(0, item);
67     item = new QStandardItem(QString("No"));
68     item->setTextAlignment(Qt::AlignCenter);
69     defaultCoursesModel->setItem(1, item);
70
71     listPickSelector3->setModel(defaultCoursesModel);
72     defaultCoursesButton->setPickSelector(listPickSelector3);
73     defaultCoursesButton->setText(QString::fromUtf8("Use Default Courses"));
74
75     leftLayout->addWidget(hcpButton);
76     leftLayout->addWidget(homeClubButton);
77     leftLayout->addWidget(defaultCoursesButton);
78 #endif
79
80     QVBoxLayout * rightLayout = new QVBoxLayout;
81     rightLayout->addStretch();
82     rightLayout->addWidget(buttonBox);
83
84     QHBoxLayout *mainLayout = new QHBoxLayout(parent);
85     mainLayout->addLayout(leftLayout);
86     mainLayout->addLayout(rightLayout);
87
88     setLayout(mainLayout);
89 }
90
91 void SettingsDialog::init(AppSettings &conf, QList<Club *> &list)
92 {
93 #ifdef Q_WS_MAEMO_5
94     int index = 0;
95     QMaemo5ListPickSelector * sel;
96     clubList = list;
97
98     if (conf.hcp.isValid()) {
99         sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
100         sel->setCurrentIndex(conf.hcp.toInt());
101     }
102
103     QListIterator<Club *> i(clubList);
104
105     while (i.hasNext()) {
106         Club *club = i.next();
107         QStandardItem *item = new QStandardItem(QString("%0").arg(club->getName()));
108         item->setTextAlignment(Qt::AlignCenter);
109         homeClubModel->appendRow(item);
110         if (item->data(Qt::DisplayRole) == conf.homeClub) {
111             sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
112             sel->setCurrentIndex(index);
113         }
114         index++;
115     }
116
117     if (conf.defaultCourses.isValid()) {
118         int index = conf.defaultCourses.toString() == "Yes" ? 0 : 1;
119         sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
120         sel->setCurrentIndex(index);
121     }
122 #endif
123 }
124
125 void SettingsDialog::results(AppSettings &conf)
126 {
127 #ifdef Q_WS_MAEMO_5
128     QMaemo5ListPickSelector * sel;
129     QStandardItem *item;
130     QVariant value;
131
132     sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
133     if (sel->currentIndex() != -1) {
134         item = hcpModel->item(sel->currentIndex());
135         conf.hcp = item->data(Qt::DisplayRole);
136     }
137     sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
138     if (sel->currentIndex() != -1) {
139         item = homeClubModel->item(sel->currentIndex());
140         conf.homeClub = item->data(Qt::DisplayRole);
141     }
142     sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
143     if (sel->currentIndex() != -1) {
144         item = defaultCoursesModel->item(sel->currentIndex());
145         conf.defaultCourses = item->data(Qt::DisplayRole);
146     }
147 #endif
148 }
149
150 void SettingsDialog::okClicked()
151 {
152     done(1);
153 }