Place input dialog in the right of account dialog
[agianapa.git] / qt / leleja / accountDialog.cpp
blobde0f9d5c832a7c4d8cfe522a6858d7c761e1f00c
1 #include <iostream>
2 #include <QtGui>
3 #include <QTextStream>
5 #include "accountDialog.h"
6 #include "myrank.h"
7 #include "mytabreportdialog.h"
8 #include "myuser.h"
9 //#include "ui_accountDialog.h"
10 #include "ui_tabReportDialog.h"
12 AccountDialog::AccountDialog(QWidget *parent)
13 : QDialog(parent)
15 std::cout << "AccountDialog::AccountDialog()\n";
17 // Setup user interface
18 setupUi(this);
21 pTabReportDialog = new MyTabReportDialog;
23 pInputDialog = new InputDialog;
24 connect(pInputDialog, SIGNAL(userAdded(MyUser )),
25 this, SLOT(addUser(MyUser )));
27 // Populate rank list with <rank, imagePath> tuples
28 populateRankList();
29 #ifdef DEBUG
30 printRankList();
31 #endif
34 AccountDialog::~AccountDialog()
36 std::cout << "AccountDialog::~AccountDialog()\n";
38 delete pInputDialog;
39 delete pTabReportDialog;
42 void AccountDialog::on_addUserButton_clicked()
44 std::cout << "AccountDialog::on_addUserButton_clicked()\n";
46 // Place input dialog in the right of accout dialog.
47 pInputDialog->move(pos().x() + frameGeometry().width(),
48 pos().y());
49 pInputDialog->show();
52 void AccountDialog::on_delUserButton_clicked()
54 QListWidgetItem *currentItem;
55 // int row;
57 std::cout << "AccountDialog::on_delUserButton_clicked()\n";
59 currentItem = userListWidget->currentItem();
60 // row = userListWidget->row(currentItem);
61 // userListWidget->takeItem(row);
62 delete currentItem;
64 // Disable delete and show buttons if there are no items at all.
65 if (userListWidget->count() == 0) {
66 delUserButton->setDisabled(true);
67 showUserButton->setDisabled(true);
71 void AccountDialog::on_showUserButton_clicked()
73 QDate dayinDate;
74 QDate leleDate;
75 QString strkey;
76 MyUser myUser;
78 std::cout << "AutoDialog::on_showUserButton_clicked()\n";
80 // Get `MyUser' object
81 strkey = userListWidget->currentItem()->text();
82 myUser = m_userHash.value(strkey);
84 // Pass parameters to report dialog
85 pTabReportDialog->setUser(myUser);
87 // Show report dialog
88 if (!pTabReportDialog->isVisible())
89 pTabReportDialog->show();
90 else {
91 emit pTabReportDialog->redrawContent();
92 pTabReportDialog->repaint();
96 void AccountDialog::on_exitButton_clicked()
98 // qApp is a global pointer referring to the unique application object.
99 qApp->closeAllWindows();
102 void AccountDialog::addUser(MyUser myUser)
104 std::cout << "AccountDialog::addUser()\n";
106 // Insert object to hash table
107 m_userHash[myUser.getName()] = myUser;
109 // Add entry in the end of the list widget
110 userListWidget->addItem(myUser.getName());
112 // If the delete or show button is disabled,
113 // enable it now, since we have at
114 // least one item
115 if (!delUserButton->isEnabled())
116 delUserButton->setEnabled(true);
118 if (!showUserButton->isEnabled())
119 showUserButton->setEnabled(true);
121 #ifdef DEBUG
122 QTextStream toErr(stderr);
124 QHash<QString, MyUser>::const_iterator i = m_userHash.constBegin();
125 while (i != m_userHash.constEnd()) {
126 toErr << "key = " << i.key() << ": "
127 << "\tname = " << i.value().getName()
128 << "\tdaysOff = " << i.value().getDaysOff() << "\n";
129 ++i;
131 #endif
134 void AccountDialog::populateRankList(void)
136 m_myRankList << MyRank("Στρατηγός", "./insignia/GR-Army-OF9.gif");
137 m_myRankList << MyRank("Αντιστράτηγος", "./insignia/GR-Army-OF8.gif");
138 m_myRankList << MyRank("Υποστράτηγος", "./insignia/GR-Army-OF7.gif");
139 m_myRankList << MyRank("Ταξίαρχος", "./insignia/GR-Army-OF6.gif");
141 m_myRankList << MyRank("Συνταγματάρχης", "./insignia/GR-Army-OF5.gif");
142 m_myRankList << MyRank("Αντισυνταγματάρχης", "./insignia/GR-Army-OF4.gif");
143 m_myRankList << MyRank("Ταγματάρχης", "./insignia/GR-Army-OF3.gif");
145 m_myRankList << MyRank("Λοχαγός", "./insignia/GR-Army-OF2.gif");
146 m_myRankList << MyRank("Υπολοχαγός", "./insignia/GR-Army-OF1a.gif");
147 m_myRankList << MyRank("Ανθυπολοχαγός", "./insignia/GR-Army-OF1b.gif");
148 m_myRankList << MyRank("Ανθυπασπιστής", "./insignia/GR-Army-WOa.gif");
150 m_myRankList << MyRank("Δόκιμος", "./insignia/GR-Army-WOb.gif");
151 m_myRankList << MyRank("Αρχιλοχίας", "./insignia/GR-Army-OR9.gif");
152 m_myRankList << MyRank("Επιλοχίας", "./insignia/GR-Army-OR7.gif");
153 m_myRankList << MyRank("Λοχίας", "./insignia/GR-Army-OR6.gif");
154 m_myRankList << MyRank("Δεκανέας", "./insignia/GR-Army-OR4.gif");
155 m_myRankList << MyRank("Υποδεκανέας", "./insignia/GR-Army-OR2a.gif");
157 m_myRankList << MyRank("Στρατιώτης", "./insignia/fish.jpeg");
160 void AccountDialog::printRankList(void)
162 int i;
164 for (i = 0; i < m_myRankList.size(); i++) {
165 qDebug() << "Rank = " << m_myRankList.at(i).getRankName() << "\t"
166 << "Image = " << m_myRankList.at(i).getImageFileName();