initial commit
[scorecard] / src / course-dialog.cpp
1 #include <QtGui>
2 #include <QLayout>
3 #include <QLineEdit>
4 #include <QInputContext>
5 #include <QtGui/QTableWidget>
6
7 #include "course-dialog.h"
8 #include "cell-delegate.h"
9
10
11 CourseDialog::CourseDialog(QWidget *parent) : QDialog(parent)
12 {
13   resize(800, 400);
14
15   QFont font;
16   font.setPointSize(20);
17   setFont(font);
18
19   createTable();
20   createLabel();
21
22   createLayout(this);
23
24   setWindowTitle(tr("New Course"));
25 }
26
27 void CourseDialog::createLayout(QWidget *parent)
28 {
29   leftLayout = new QVBoxLayout;
30   leftLayout->addWidget(table);
31
32   rightLayout = new QVBoxLayout;
33   rightLayout->addStretch();
34   rightLayout->addWidget(pushButtonOk);
35
36   QHBoxLayout *mainLayout = new QHBoxLayout(parent);
37   mainLayout->addLayout(leftLayout);
38   mainLayout->addLayout(rightLayout);
39   setLayout(mainLayout);
40 }
41
42 void CourseDialog::createLabel(QWidget *parent)
43 {
44   clubLabel = new QLabel(tr("Club"));
45   courseLabel = new QLabel(tr("Course"));
46    
47   clubEdit = new QLineEdit;
48   courseEdit = new QLineEdit;
49
50   pushButtonOk = new QPushButton(tr("OK"));
51 }
52
53 void CourseDialog::createTable(QWidget *parent)
54 {
55   table = new QTableWidget(rows, cols);
56
57   QStringList headers;
58   headers << "Hole" << "Par" << "HCP" << "Len" << "Hole" << "Par" << "HCP" << "Len";
59   table->setVerticalHeaderLabels(headers);
60   table->horizontalHeader()->hide();
61
62   //CellDelegate *cellDelegate = new CellDelegate(this);
63   //table->setItemDelegate(cellDelegate);
64
65   table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
66   table->verticalHeader()->setResizeMode(QHeaderView::Stretch);
67
68   for (int i=0; i<18; i++) {
69     QTableWidgetItem *par = new QTableWidgetItem("");
70     QTableWidgetItem *hcp = new QTableWidgetItem("");
71     QTableWidgetItem *len = new QTableWidgetItem("");
72
73     QTableWidgetItem *holeNum = new QTableWidgetItem(QString::number(i+1));
74     QColor bgColor(Qt::gray);
75     holeNum->setBackgroundColor(bgColor);
76
77     holeNum->setTextAlignment(Qt::AlignCenter);
78     par->setTextAlignment(Qt::AlignCenter);
79     hcp->setTextAlignment(Qt::AlignCenter);
80     len->setTextAlignment(Qt::AlignCenter);
81     
82     if (i < 9) {
83       table->setItem(0, i, holeNum);
84       table->setItem(1, i, par);
85       table->setItem(2, i, hcp);
86       table->setItem(3, i, len);
87     }
88     else {
89       table->setItem(4, i-9, holeNum);
90       table->setItem(5, i-9, par);
91       table->setItem(6, i-9, hcp);
92       table->setItem(7, i-9, len);
93     }
94   }
95
96   //connect(table, SIGNAL(itemChanged(QTableWidgetItem *)), this, SLOT(itemChanged(QTableWidgetItem *)));
97
98 }
99
100 void CourseDialog::itemChanged(QTableWidgetItem *item)
101 {
102   qDebug() << "itemChanged";
103
104   int row = table->currentRow();
105   int col = table->currentColumn();
106
107   col++;
108   if (col == cols) {
109     col = 0;
110     row++;
111     if (row == separator_row)
112       row++;
113   }
114   table->setCurrentCell(row, col);
115 }
116
117 void CourseDialog::nextCell(QObject *obj)
118 {
119 #if 0
120   int row = table->currentRow();
121   int col = table->currentColumn();
122   QTableWidgetItem *item = table->item(row, col);
123
124   qDebug() << "next Cell " << obj;
125   qDebug() << "item " << item << "row=" << row << " col=" << col;
126
127   table->setItem(row, col, item);
128
129
130   table->currentIndex();
131   table->setCurrentCell(2,2);
132 #endif
133 }
134