2 #include <QDialogButtonBox>
6 #include <QStandardItemModel>
8 #include <QMaemo5InformationBox>
9 #include <QMaemo5ValueButton>
10 #include <QMaemo5ListPickSelector>
13 #include "settings-dialog.h"
15 SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
17 QWidget *centralWidget = new QWidget(this);
18 createLayout(centralWidget);
19 setWindowTitle(tr("Settings"));
22 void SettingsDialog::createLayout(QWidget *parent)
24 QPushButton * ok = new QPushButton(tr("OK"));
26 connect(ok, SIGNAL(clicked()), this, SLOT(okClicked()));
28 QDialogButtonBox * buttonBox = new QDialogButtonBox(Qt::Vertical);
29 buttonBox->addButton(ok, QDialogButtonBox::ActionRole);
31 QVBoxLayout * leftLayout = new QVBoxLayout;
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);
46 listPickSelector1->setModel(hcpModel);
47 hcpButton->setPickSelector(listPickSelector1);
48 hcpButton->setText(QString::fromUtf8("HCP"));
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"));
60 sortButton = new QMaemo5ValueButton();
61 sortButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
62 QMaemo5ListPickSelector * listPickSelector4 = new QMaemo5ListPickSelector;
64 sortList << "Date" << "Score";
65 sortModel = new QStandardItemModel(sortList.count(), 0);
66 for (int i = 0; i < sortList.count(); i++) {
67 item = new QStandardItem(QString("%0").arg(sortList.at(i)));
68 item->setTextAlignment(Qt::AlignCenter);
69 sortModel->setItem(i, item);
71 listPickSelector4->setModel(sortModel);
72 sortButton->setPickSelector(listPickSelector4);
73 sortButton->setText(QString::fromUtf8("Sort Order"));
75 // Use Default Courses
76 defaultCoursesButton = new QMaemo5ValueButton();
77 defaultCoursesButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
78 QMaemo5ListPickSelector * listPickSelector3 = new QMaemo5ListPickSelector;
79 defaultCoursesModel = new QStandardItemModel(2, 0);
80 item = new QStandardItem(QString("Yes"));
81 item->setTextAlignment(Qt::AlignCenter);
82 defaultCoursesModel->setItem(0, item);
83 item = new QStandardItem(QString("No"));
84 item->setTextAlignment(Qt::AlignCenter);
85 defaultCoursesModel->setItem(1, item);
87 listPickSelector3->setModel(defaultCoursesModel);
88 defaultCoursesButton->setPickSelector(listPickSelector3);
89 defaultCoursesButton->setText(QString::fromUtf8("Use Default Courses"));
92 userModeButton = new QMaemo5ValueButton();
93 userModeButton->setValueLayout(QMaemo5ValueButton::ValueBesideText);
94 QMaemo5ListPickSelector * listPickSelector5 = new QMaemo5ListPickSelector;
95 userModeModel = new QStandardItemModel(2, 0);
96 item = new QStandardItem(QString("Basic"));
97 item->setTextAlignment(Qt::AlignCenter);
98 userModeModel->setItem(0, item);
99 item = new QStandardItem(QString("Pro"));
100 item->setTextAlignment(Qt::AlignCenter);
101 userModeModel->setItem(1, item);
103 listPickSelector5->setModel(userModeModel);
104 userModeButton->setPickSelector(listPickSelector5);
105 userModeButton->setText(QString::fromUtf8("Mode"));
107 // Add widgets to layout
108 leftLayout->addWidget(hcpButton);
109 leftLayout->addWidget(homeClubButton);
110 leftLayout->addWidget(sortButton);
111 leftLayout->addWidget(userModeButton);
112 leftLayout->addWidget(defaultCoursesButton);
115 QVBoxLayout * rightLayout = new QVBoxLayout;
116 rightLayout->addStretch();
117 rightLayout->addWidget(buttonBox);
119 QHBoxLayout *mainLayout = new QHBoxLayout(parent);
120 mainLayout->addLayout(leftLayout);
121 mainLayout->addLayout(rightLayout);
123 setLayout(mainLayout);
126 void SettingsDialog::init(AppSettings &conf, QList<Club *> &list)
130 QMaemo5ListPickSelector * sel;
134 if (conf.hcp.isValid()) {
135 sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
136 sel->setCurrentIndex(conf.hcp.toInt());
140 QListIterator<Club *> i(clubList);
141 while (i.hasNext()) {
142 Club *club = i.next();
143 QStandardItem *item = new QStandardItem(QString("%0").arg(club->getName()));
144 item->setTextAlignment(Qt::AlignCenter);
145 homeClubModel->appendRow(item);
146 if (item->data(Qt::DisplayRole) == conf.homeClub) {
147 sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
148 sel->setCurrentIndex(index);
154 if (conf.sortOrder.isValid()) {
155 int index = conf.sortOrder.toString() == "Date" ? 0 : 1;
156 sel = (QMaemo5ListPickSelector *)sortButton->pickSelector();
157 sel->setCurrentIndex(index);
161 if (conf.userMode.isValid()) {
162 int index = conf.userMode.toString() == "Basic" ? 0 : 1;
163 sel = (QMaemo5ListPickSelector *)userModeButton->pickSelector();
164 sel->setCurrentIndex(index);
168 if (conf.defaultCourses.isValid()) {
169 int index = conf.defaultCourses.toString() == "Yes" ? 0 : 1;
170 sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
171 sel->setCurrentIndex(index);
176 void SettingsDialog::results(AppSettings &conf)
179 QMaemo5ListPickSelector * sel;
183 sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
184 if (sel->currentIndex() != -1) {
185 item = hcpModel->item(sel->currentIndex());
186 conf.hcp = item->data(Qt::DisplayRole);
188 sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
189 if (sel->currentIndex() != -1) {
190 item = homeClubModel->item(sel->currentIndex());
191 conf.homeClub = item->data(Qt::DisplayRole);
193 sel = (QMaemo5ListPickSelector *)sortButton->pickSelector();
194 if (sel->currentIndex() != -1) {
195 item = sortModel->item(sel->currentIndex());
196 conf.sortOrder = item->data(Qt::DisplayRole);
198 sel = (QMaemo5ListPickSelector *)userModeButton->pickSelector();
199 if (sel->currentIndex() != -1) {
200 item = userModeModel->item(sel->currentIndex());
201 conf.userMode = item->data(Qt::DisplayRole);
203 sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
204 if (sel->currentIndex() != -1) {
205 item = defaultCoursesModel->item(sel->currentIndex());
206 conf.defaultCourses = item->data(Qt::DisplayRole);
211 void SettingsDialog::okClicked()