From cac9ef8cc06159347659d52415b9a09e795f6538 Mon Sep 17 00:00:00 2001 From: Doctor Kamber Date: Thu, 24 Jul 2008 22:23:25 +0300 Subject: [PATCH] Update line edits upon combo box change --- qt/leleja/mytabreportdialog.cpp | 59 +++++++++++++++++++++++++++++++++++++++-- qt/leleja/mytabreportdialog.h | 16 ++++++++--- qt/leleja/tabReportDialog.ui | 40 +++++++++------------------- 3 files changed, 82 insertions(+), 33 deletions(-) diff --git a/qt/leleja/mytabreportdialog.cpp b/qt/leleja/mytabreportdialog.cpp index 8650598..258a005 100644 --- a/qt/leleja/mytabreportdialog.cpp +++ b/qt/leleja/mytabreportdialog.cpp @@ -14,6 +14,8 @@ MyTabReportDialog::MyTabReportDialog(QWidget *parent) setupUi(this); + connect(this->unitComboBox, SIGNAL(currentIndexChanged(int )), this, SLOT(updateLineEdits())); + // pixmapChanged = true; } @@ -106,8 +108,6 @@ void MyTabReportDialog::drawMyLegend(QPainter *painter) void MyTabReportDialog::drawMyRank(QPainter *painter) { - unsigned int i; - std::cout << "MyTabReportDialog::drawMyRank()\n"; // Load rank image @@ -159,6 +159,27 @@ void MyTabReportDialog::drawPixmaps(void) update(); } +void MyTabReportDialog::updateLineEdits(void) +{ + int currentIndex; + + std::cout << "MyTabReportDialog::updateLineEdits()\n"; + + // Get current selection regarding time unit + currentIndex = unitComboBox->currentIndex(); + if (currentIndex == -1) { + // XXX: No current item is set or the combobox is empty + std::cout << "HAHA\n" << std::endl; + return; + } + + std::cout << "Current index = " << currentIndex << std::endl; + + servedLineEdit->setText(QString::number(getTime(m_totalDays - m_daysLeft - m_daysOff, currentIndex))); + leftLineEdit->setText(QString::number(getTime(m_daysLeft, currentIndex))); + daysoffLineEdit->setText(QString::number(getTime(m_daysOff, currentIndex))); +} + void MyTabReportDialog::setDaysLeft(unsigned int daysLeft) { std::cout << "MyTabReportDialog::setDaysLeft()\n"; @@ -186,3 +207,37 @@ void MyTabReportDialog::setRank(MyRank rank) m_rank = rank; } + +unsigned int getTime(unsigned int nDays, int toWhat) +{ + unsigned int ret; + + std::cout << "getTime(): nDays = " << nDays << " toWhat = " << toWhat << "\n"; + + switch(toWhat) { + case MONTHS: + ret = nDays / 30; + break; + case WEEKS: + ret = nDays / 7; + break; + case DAYS: + ret = nDays; + break; + case HOURS: + ret = nDays * 24; + break; + case MINUTES: + ret = nDays * 24 * 60; + break; + case SECONDS: + ret = nDays * 24 * 60 * 60; + break; + default: + ret = -1; + } + + std::cout << "ret = " << ret << std::endl; + + return ret; +} diff --git a/qt/leleja/mytabreportdialog.h b/qt/leleja/mytabreportdialog.h index d3a7fcd..101e18f 100644 --- a/qt/leleja/mytabreportdialog.h +++ b/qt/leleja/mytabreportdialog.h @@ -9,7 +9,12 @@ #include "myrank.h" -enum unitEnumType { MONTHS, WEEKS, DAYS, HOURS, SECONDS }; +#define MONTHS 0 +#define WEEKS 1 +#define DAYS 2 +#define HOURS 3 +#define MINUTES 4 +#define SECONDS 5 class MyTabReportDialog : public QDialog, public Ui::tabReportDialog { @@ -34,11 +39,12 @@ public slots: pixmapChanged = true; // Update line edits - servedLineEdit->setText(QString::number(m_totalDays - m_daysLeft - m_daysOff)); - leftLineEdit->setText(QString::number(m_daysLeft)); - daysoffLineEdit->setText(QString::number(m_daysOff)); + updateLineEdits(); } +private slots: + void updateLineEdits(void); + protected: void paintEvent(QPaintEvent *event); void resizeEvent(QResizeEvent *event); @@ -68,4 +74,6 @@ private: unsigned int m_totalDays; }; +unsigned int getTime(unsigned int nDays, int toWhat); + #endif // MYTABREPORTDIALOG_H diff --git a/qt/leleja/tabReportDialog.ui b/qt/leleja/tabReportDialog.ui index da5f283..2e0b5bc 100644 --- a/qt/leleja/tabReportDialog.ui +++ b/qt/leleja/tabReportDialog.ui @@ -25,14 +25,6 @@ 0 - - - 0 - 0 - 397 - 264 - - Αριθμητικά δεδομένα @@ -57,7 +49,7 @@ 95 - + @@ -109,10 +101,10 @@ 270 30 124 - 52 + 53 - + @@ -124,6 +116,16 @@ + Μήνες + + + + + Εβδομάδες + + + + Ημέρες @@ -153,14 +155,6 @@ - - - 0 - 0 - 397 - 264 - - Γραφικά @@ -182,14 +176,6 @@ - - - 0 - 0 - 397 - 264 - - Βαθμός -- 2.11.4.GIT