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"));
91 leftLayout->addWidget(hcpButton);
92 leftLayout->addWidget(homeClubButton);
93 leftLayout->addWidget(sortButton);
94 leftLayout->addWidget(defaultCoursesButton);
97 QVBoxLayout * rightLayout = new QVBoxLayout;
98 rightLayout->addStretch();
99 rightLayout->addWidget(buttonBox);
101 QHBoxLayout *mainLayout = new QHBoxLayout(parent);
102 mainLayout->addLayout(leftLayout);
103 mainLayout->addLayout(rightLayout);
105 setLayout(mainLayout);
108 void SettingsDialog::init(AppSettings &conf, QList<Club *> &list)
112 QMaemo5ListPickSelector * sel;
115 if (conf.hcp.isValid()) {
116 sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
117 sel->setCurrentIndex(conf.hcp.toInt());
120 QListIterator<Club *> i(clubList);
122 while (i.hasNext()) {
123 Club *club = i.next();
124 QStandardItem *item = new QStandardItem(QString("%0").arg(club->getName()));
125 item->setTextAlignment(Qt::AlignCenter);
126 homeClubModel->appendRow(item);
127 if (item->data(Qt::DisplayRole) == conf.homeClub) {
128 sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
129 sel->setCurrentIndex(index);
134 if (conf.sortOrder.isValid()) {
135 int index = conf.sortOrder.toString() == "Date" ? 0 : 1;
136 sel = (QMaemo5ListPickSelector *)sortButton->pickSelector();
137 sel->setCurrentIndex(index);
140 if (conf.defaultCourses.isValid()) {
141 int index = conf.defaultCourses.toString() == "Yes" ? 0 : 1;
142 sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
143 sel->setCurrentIndex(index);
148 void SettingsDialog::results(AppSettings &conf)
151 QMaemo5ListPickSelector * sel;
155 sel = (QMaemo5ListPickSelector *)hcpButton->pickSelector();
156 if (sel->currentIndex() != -1) {
157 item = hcpModel->item(sel->currentIndex());
158 conf.hcp = item->data(Qt::DisplayRole);
160 sel = (QMaemo5ListPickSelector *)homeClubButton->pickSelector();
161 if (sel->currentIndex() != -1) {
162 item = homeClubModel->item(sel->currentIndex());
163 conf.homeClub = item->data(Qt::DisplayRole);
165 sel = (QMaemo5ListPickSelector *)sortButton->pickSelector();
166 if (sel->currentIndex() != -1) {
167 item = sortModel->item(sel->currentIndex());
168 conf.sortOrder = item->data(Qt::DisplayRole);
170 sel = (QMaemo5ListPickSelector *)defaultCoursesButton->pickSelector();
171 if (sel->currentIndex() != -1) {
172 item = defaultCoursesModel->item(sel->currentIndex());
173 conf.defaultCourses = item->data(Qt::DisplayRole);
178 void SettingsDialog::okClicked()