Add support for rank list plus minor changes here and there
[agianapa.git] / qt / leleja / leleja.cpp
blobe222084c4cb25996663ee69faa97e1e858747619
1 // akis.vasilias@vasilias-lights.gr
2 #include <QtGui>
3 #include <iostream>
4 #include <QTextCodec>
5 #include <QTextStream>
7 #include "leleja.h"
8 #include "myreportdialog.h"
9 #include "myrank.h"
11 Leleja::Leleja(QWidget *parent)
12 : QDialog(parent)
14 std::cout << "Leleja::Leleja()\n";
16 setupUi(this);
18 // Create the report dialog, although
19 // we keep it hidden for the time being.
20 myreportdialog = new MyReportDialog(this);
21 myreportdialog->setGeometry(200, 200, 200, 200);
22 myreportdialog->setWindowTitle(tr("Αναφορά"));
24 // Set current date
25 dayinDateEdit->setDate(QDate::currentDate());
26 leleDateEdit->setDate(QDate::currentDate());
28 // Connect signals to slots
29 connect(exitButton, SIGNAL(clicked()), this, SLOT(close()));
31 // Populate rank list
32 myRankList << MyRank("Δόκιμος", "./insignia/GR-Army-WOb.gif");
33 myRankList << MyRank("Ανθστής", "./insignia/GR-Army-WOa.gif");
35 #ifdef DEBUG
36 QTextStream qout(stdout);
37 for (int i = 0; i < myRankList.size(); i++) {
38 qout << "Rank = " << myRankList.at(i).getRankName() << "\t"
39 << "Image = " << myRankList.at(i).getImageFileName() << '\n';
41 #endif
45 Leleja::~Leleja()
47 std::cout << "Leleja::~Leleja()\n";
49 delete myreportdialog;
52 void Leleja::on_calcButton_clicked()
54 QDate leleDate;
55 QDate dayinDate;
56 int daysLeft;
57 int daysOff;
58 int totalDays;
60 std::cout << "on_calcButton_clicked()\n";
62 // Get dates
63 dayinDate = dayinDateEdit->date();
64 leleDate = leleDateEdit->date();
66 // Calculate days
67 daysOff = daysoffLineEdit->text().toInt();
68 totalDays = dayinDate.daysTo(leleDate);
69 daysLeft = QDate::currentDate().daysTo(leleDate) - daysOff;
71 // Debug prints
72 std::cout << "Leleja::totalDays = " << totalDays << std::endl;
73 std::cout << "Lelela::daysLeft = " << daysLeft << std::endl;
74 std::cout << "Leleja::daysOff = " << daysOff << std::endl;
76 // Validate user input
77 if (dayinDate > QDate::currentDate()) {
78 QMessageBox::warning(this, tr("Leleja reloaded"),
79 tr("Δεν έχετε καταταγεί στο στρατό ακόμη!\n"),
80 QMessageBox::Ok);
81 return;
84 if (daysLeft < 0) {
85 QMessageBox::warning(this, tr("Leleja reloaded"),
86 tr("Είστε πολίτης!\n"),
87 QMessageBox::Ok);
88 return;
91 // Pass parameters to report dialog
92 myreportdialog->setDaysLeft(daysLeft);
93 myreportdialog->setDaysOff(daysOff);
94 myreportdialog->setDaysTotal(totalDays);
96 // Show report dialog
97 if (!myreportdialog->isVisible())
98 myreportdialog->show();
99 else {
100 emit myreportdialog->redrawContent();
101 myreportdialog->repaint();