]> git.sur5r.net Git - bacula/bacula/commitdiff
dhb turn joblist from a dummy class to a working class querying the database
authorDirk H Bartley <dbartley@schupan.com>
Sat, 31 Mar 2007 15:27:37 +0000 (15:27 +0000)
committerDirk H Bartley <dbartley@schupan.com>
Sat, 31 Mar 2007 15:27:37 +0000 (15:27 +0000)
     for jobs on a specific media.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4477 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/joblist/joblist.cpp
bacula/src/qt-console/joblist/joblist.h
bacula/src/qt-console/joblist/joblist.ui
bacula/src/qt-console/medialist/medialist.h

index fab223fd01d730432f01f6cfbd8921f4725fb46e..96c863376c45f7d676bf2fdcca41f5540b7e870a 100644 (file)
 #include "bat.h"
 #include "joblist.h"
 
+
+/*
+ * Constructor for the class
+ */
 JobList::JobList(Console *console, QString &medianame)
 {
-   printf("Listing Jobs on Media %s\n", medianame.toUtf8().data());
    setupUi(this);
-   m_console = console;
-   tableWidget->clear();
-   tableWidget->setColumnCount(2);
-   tableWidget->setRowCount(5);
-   QTableWidgetItem* item = new QTableWidgetItem(medianame,1);
-   tableWidget->setItem(1, 1, item);
+   /* Store passed variables in member variables */
+   mp_console = console;
+   m_medianame = medianame;
+
+   populateTable();
+}
+
+/*
+ * The Meat of the class.
+ * This function will populate the QTableWidget, mp_tablewidget, with
+ * QTableWidgetItems representing the results of a query for what jobs exist on
+ * the media name passed from the constructor stored in m_medianame.
+ */
+void JobList::populateTable()
+{
+  QStringList results;
+  QString resultline;
+
+  /* Set up query QString and header QStringList */
+  QString query("");
+  query += "SELECT j.jobid,j.name,j.starttime,j.type,j.level,j.jobfiles,"
+           "j.jobstatus"
+           " FROM job j, jobmedia jm, media m"
+           " WHERE jm.jobid=j.jobid and jm.mediaid=m.mediaid and m.VolumeName='";
+  query += m_medianame + "' ORDER BY j.starttime";
+   QStringList headerlist = (QStringList()
+      << "Job Id" << "Job Name" << "Job Starttime" << "Job Type" << "Job Level"
+      << "Job Files" << "Job Status");
+
+   /* Initialize the QTableWidget */
+   mp_tableWidget->clear();
+   mp_tableWidget->setColumnCount(headerlist.size());
+   mp_tableWidget->setHorizontalHeaderLabels(headerlist);
+
+   if (mp_console->sql_cmd(query, results)) {
+      QTableWidgetItem* p_tableitem;
+      QString field;
+      QStringList fieldlist;
+      mp_tableWidget->setRowCount(results.size());
+
+      int row = 0;
+      /* Iterate through the record returned from the query */
+      foreach (resultline, results) {
+         fieldlist = resultline.split("\t");
+         int column = 0;
+         /* Iterate through fields in the record */
+         foreach (field, fieldlist) {
+            field = field.trimmed();  /* strip leading & trailing spaces */
+            p_tableitem = new QTableWidgetItem(field,1);
+            mp_tableWidget->setItem(row, column, p_tableitem);
+            column++;
+         }
+         row++;
+      }
+   }
 }
index cddee16de3bbe174a5fbf71eaabe674b71070442..ee7a0341aad181828d421145971aa1e0320f08c7 100644 (file)
@@ -47,7 +47,11 @@ public:
 public slots:
 
 private:
-   Console *m_console;
+   void populateTable();
+
+private:
+   Console *mp_console;
+   QString m_medianame;
 };
 
 #endif /* _JOBLIST_H_ */
index e7a91429633342efafa86b277b13287a2916fd41..86f820a6e06fdfbc4d538ff8d0ea0d6357f950a2 100644 (file)
@@ -20,7 +20,7 @@
     <number>6</number>
    </property>
    <item row="0" column="0" >
-    <widget class="QTableWidget" name="tableWidget" />
+    <widget class="QTableWidget" name="mp_tableWidget" />
    </item>
   </layout>
  </widget>
index ce933fcff778ff97b237910bc9c26c8a79be3bb1..a1154307f92ed795fb1b7e8377a7b0c824192f43 100644 (file)
@@ -57,12 +57,12 @@ public slots:
 
 private:
    void createConnections();
+   void populateTree();
 
 private:
    Console *mp_console;
    QString m_currentlyselected;
    bool m_populated;
-   void populateTree();
 };
 
 #endif /* _MEDIALIST_H_ */