OSSP CVS Repository

ossp - Difference in ossp-pkg/as/as-gui/as_reportpanel.cpp versions 1.2 and 1.3
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/as/as-gui/as_reportpanel.cpp 1.2 -> 1.3

--- as_reportpanel.cpp   2003/02/18 18:27:46     1.2
+++ as_reportpanel.cpp   2003/02/19 18:23:16     1.3
@@ -43,6 +43,8 @@
 #include <qdir.h>
 
 #include "as_reportpanel.h"
+#include "as_table.h"
+#include "as_pref.h"
 #include "as_generic.h"
 #include "as_const.h"
 
@@ -59,8 +61,10 @@
 // The dialog will by default be modal, unless you set 'bModal' to
 // true to construct a modal dialog.
 //
-Reportpanel::Reportpanel(QWidget *pParent, const char *kszName, bool bModal, WFlags Flags)
-    : QDialog(pParent, kszName, bModal, Flags)
+Reportpanel::Reportpanel(TiTable *pTable, Preferences *pPreferences,
+                         QWidget *pParent, const char *kszName,
+                         bool bModal, WFlags Flags)
+                         : QDialog(pParent, kszName, bModal, Flags)
 {
     // Boilerplate code to initialize the panel
     if (!kszName)
@@ -71,6 +75,11 @@
     this->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5,
         (QSizePolicy::SizeType)5, 0, 0, sizePolicy().hasHeightForWidth()));
 
+    // Store matrix and prefs members
+    m_pReptable = pTable;
+//    m_pReptable->sortColumn(TITRAQ_IDXCOLDATE, true, true);
+    m_pReprefs  = pPreferences;
+
     // Build panel using already constructed widgets and layouts
     m_pFormlay = new QVBoxLayout(this, 11, 6, "Formlayout");
     m_pToolay = new QHBoxLayout(0, 0, 6, "Toolbuttonlay"); 
@@ -88,6 +97,7 @@
     m_pBrowser = new QTextEdit(m_pGroupbox, "Reportbrowser");
     m_pBrowser->setTextFormat(PlainText);
     m_pBrowser->setReadOnly(true);
+    m_pBrowser->setFont(QFont("Courier", 10));
     m_pGrouplay->addWidget(m_pBrowser);
     m_pGrouplay->addLayout(m_pToolay);
 
@@ -113,7 +123,7 @@
     connect(m_pDismissbutt, SIGNAL(clicked(void)), SLOT(accept(void)));
     connect(m_pSavebutt, SIGNAL(clicked(void)), SLOT(saveReport(void)));
     this->textChange();
-    this->resize(QSize(400, 332).expandedTo(minimumSizeHint()));
+    this->resize(QSize(464, 332).expandedTo(minimumSizeHint()));
 }
 
 //
@@ -123,7 +133,7 @@
 {
     m_pBrowser->clear();
     this->writeHeader();
-    this->writeWeek();
+    m_pBrowser->append(this->getWeek());
 }
 
 //
@@ -133,7 +143,7 @@
 {
     m_pBrowser->clear();
     this->writeHeader();
-    this->writeMonth();
+    m_pBrowser->append(this->getMonth());
 }
 
 //
@@ -142,27 +152,75 @@
 void Reportpanel::writeHeader(void)
 {
     QString Header;
-    Header = QString("Accounting System 0.6.18 local report\n");
-    Header += QString("User XXXXXXXXXXXXXXXXXXXX\n");
-    Header += QString("Date X. February 2003\n");
-    Header += QString("\n");
+    Header = QString("Accounting System ");
+    Header += QString(asgui_version.v_short);
+    Header += trUtf8("\nLocal report, username '");
+    Header += m_pReprefs->getString(TITRAQ_PREFUSER, TITRAQ_DEFUSER);
+    Header += QString("'\n");
+    Header += trUtf8("Date ");
+    Header += QDate::currentDate().toString(Qt::ISODate);
+    Header += trUtf8(", Time ");
+    Header += QTime::currentTime().toString(Qt::ISODate);
+    Header += QString("\n\n");
+    Header += QString("Date       Hours Task\n");
+    Header += QString("---------- ----- ----\n");
     m_pBrowser->setText(Header);
 }
 
 //
 // Writes one week of data to the display window
 //
-void Reportpanel::writeWeek(void)
+QString Reportpanel::getWeek(QDate Dayref)
 {
-    m_pBrowser->append(trUtf8("No events logged during week\n"));
+//    m_pBrowser->append(trUtf8("No events logged during week\n"));
+    QString Data, Tempstring; // Output string
+    int nRows      = m_pReptable->numRows();
+    int nIter      = nRows - 1;
+    int nFirstrow  = 0;
+    int nLastrow   = 0;
+    QDate Firstday = Dayref.addDays(Dayref.dayOfWeek() * -1 + 1);   // Do negate
+    QDate Lastday  = Firstday.addDays(7);                           // Add week
+
+    // Find data starting the week in question
+    while (QDate::fromString(m_pReptable->text(nIter, TITRAQ_IDXDATE), Qt::ISODate) >= Firstday)
+        nIter--;
+    nFirstrow = ++nIter; // The first row to operate on
+
+    // Find data ending the week in question
+    while (nIter < nRows
+        && QDate::fromString(m_pReptable->text(nIter, TITRAQ_IDXDATE), Qt::ISODate)
+        <  Lastday)
+        nIter++;
+    nLastrow = nIter - 1; // The last row to operate on
+
+    // Build the long week data string
+    for (nIter = nFirstrow; nIter <= nLastrow; nIter++) {
+        Tempstring = m_pReptable->text(nIter, TITRAQ_IDXDATE);
+        if (!Tempstring.isEmpty())
+            Data += Tempstring;
+        Tempstring = m_pReptable->text(nIter, TITRAQ_IDXAMOUNT);
+        if (!Tempstring.isEmpty())
+            Data += QString(TITRAQ_SEPARATORTOK) + Tempstring;
+        Tempstring = m_pReptable->text(nIter, TITRAQ_IDXTASK);
+        if (!Tempstring.isEmpty())
+            Data += QString(TITRAQ_SEPARATORTOK) + Tempstring;
+        Data += trUtf8("\n"); // Finish off line
+    }
+
+    return Data;
 }
 
 //
 // Writes one month of data to the display window
 //
-void Reportpanel::writeMonth(void)
+QString Reportpanel::getMonth(QDate Dayref)
 {
-    m_pBrowser->append(trUtf8("No events logged during month\n"));
+    QString Data;
+    
+    for (int nIter = 0; nIter < 4; nIter++)
+        Data += getWeek(Dayref.addDays(nIter * -1));
+
+    return Data;
 }
 
 //
@@ -173,7 +231,7 @@
     int nResult = 0;        // For checking user's answer
     QFile Report;           // The resulting report file
     QString Filestring;     // The user chosen file name to save
-    QString Openas = QDir::homeDirPath();   // Default chooser dir
+    QString Openas = m_pReprefs->getString(TITRAQ_PREFHOME, TITRAQ_DEFHOME);
 
     // And then get the name of the selected file to save to
     Filestring = QFileDialog::getSaveFileName(Openas, trUtf8("Text files (*.txt);;All Files (*)"), this, trUtf8("ChooserDialog"), trUtf8("Choose a file to save"), NULL, false);
@@ -212,20 +270,20 @@
 
     // Top level push buttons associated with accept and save slots
     m_pDismissbutt->setText(tr("Dismiss", "Comment for Dismissbutton"));
-    QToolTip::add(m_pDismissbutt, tr("Closes the report panel", "Comment for tooltip Reportbutton"));
-    QWhatsThis::add(m_pDismissbutt, tr("The dismiss button dismisses the report panel", "Comment for whatsThis Reportbutton"));
+    QToolTip::add(m_pDismissbutt, tr("Closes the report panel", "Comment for tooltip Dismissbutton"));
+    QWhatsThis::add(m_pDismissbutt, tr("The dismiss button dismisses the report panel", "Comment for whatsThis Dsimissbutton"));
     m_pSavebutt->setText(tr("Save", "Comment for Savebutton"));
-    QToolTip::add(m_pSavebutt, tr("Closes the report panel", "Comment for tooltip Reportbutton"));
-    QWhatsThis::add(m_pSavebutt, tr("The dismiss button dismisses the report panel", "Comment for whatsThis Reportbutton"));
+    QToolTip::add(m_pSavebutt, tr("Saves the report panel text", "Comment for tooltip Savebutton"));
+    QWhatsThis::add(m_pSavebutt, tr("The save button saves the report panel text to a file", "Comment for whatsThis Savebutton"));
 
     // Inner tool buttons for new local report generation
     m_pWeeklybutt->setText(tr("Weekly", "Comment for Weeklybutt"));
     QToolTip::add(m_pWeeklybutt, tr("Generates a weekly report", "Comment for tooltip Weeklybutt"));
     QWhatsThis::add(m_pWeeklybutt, tr("The weekly button generates a new weekly report", "Comment for whatsThis Weeklybutt"));
     m_pMonthlybutt->setText(tr("Monthly", "Comment for Monthlybutt"));
-    QToolTip::add(m_pMonthlybutt, tr("Generates a weekly report", "Comment for tooltip Monthlybutt"));
-    QWhatsThis::add(m_pMonthlybutt, tr("The weekly button generates a new weekly report", "Comment for whatsThis Monthlybutt"));
+    QToolTip::add(m_pMonthlybutt, tr("Generates a monthly report", "Comment for tooltip Monthlybutt"));
+    QWhatsThis::add(m_pMonthlybutt, tr("The monthly button generates a new monthly report", "Comment for whatsThis Monthlybutt"));
     m_pBothbutt->setText(tr("Both", "Comment for Bothbutt"));
-    QToolTip::add(m_pBothbutt, tr("Generates a weekly report", "Comment for tooltip Bothbutt"));
-    QWhatsThis::add(m_pBothbutt, tr("The weekly button generates a new weekly report", "Comment for whatsThis Bothbutt"));
+    QToolTip::add(m_pBothbutt, tr("Generates a both report", "Comment for tooltip Bothbutt"));
+    QWhatsThis::add(m_pBothbutt, tr("The both button generates a new report with both weekly and monthly items mixed in.", "Comment for whatsThis Bothbutt"));
 }

CVSTrac 2.0.1