]> git.sur5r.net Git - bacula/bacula/commitdiff
Add feature to jump from fileset to joblist pre-populating the fileset of the
authorDirk H Bartley <dbartley@schupan.com>
Thu, 31 May 2007 12:33:03 +0000 (12:33 +0000)
committerDirk H Bartley <dbartley@schupan.com>
Thu, 31 May 2007 12:33:03 +0000 (12:33 +0000)
query.

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

bacula/src/qt-console/clients/clients.cpp
bacula/src/qt-console/fileset/fileset.cpp
bacula/src/qt-console/fileset/fileset.h
bacula/src/qt-console/fileset/fileset.ui
bacula/src/qt-console/joblist/joblist.cpp
bacula/src/qt-console/joblist/joblist.h
bacula/src/qt-console/jobs/jobs.cpp
bacula/src/qt-console/mainwin.cpp
bacula/src/qt-console/mainwin.h
bacula/src/qt-console/medialist/medialist.cpp

index adbbdd159f06b7aa4b0ba9b89948e0fd765a976f..38fb079d8b80fc450454b6ac7c1d8ab06201fbc5 100644 (file)
@@ -213,7 +213,7 @@ void Clients::createContextMenu()
 void Clients::showJobs()
 {
    QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
-   mainWin->createPageJobList("", m_currentlyselected, "", parentItem);
+   mainWin->createPageJobList("", m_currentlyselected, "", "", parentItem);
 }
 
 /*
index 9676de3c2f98859fca0d88e94cecc675f34b009e..ed0bf324da4141536083f609f58b69bb87fa813b 100644 (file)
@@ -165,6 +165,7 @@ void FileSet::treeItemChanged(QTreeWidgetItem *currentwidgetitem,
          int treedepth = previouswidgetitem->data(0, Qt::UserRole).toInt();
          if (treedepth == 1) {
             mp_treeWidget->removeAction(actionStatusFileSetInConsole);
+            mp_treeWidget->removeAction(actionShowJobs);
          }
       }
 
@@ -174,6 +175,7 @@ void FileSet::treeItemChanged(QTreeWidgetItem *currentwidgetitem,
           * menu is used */
          m_currentlyselected=currentwidgetitem->text(0);
          mp_treeWidget->addAction(actionStatusFileSetInConsole);
+         mp_treeWidget->addAction(actionShowJobs);
       }
    }
 }
@@ -195,6 +197,8 @@ void FileSet::createContextMenu()
                 SLOT(populateTree()));
    connect(actionStatusFileSetInConsole, SIGNAL(triggered()), this,
                 SLOT(consoleStatusFileSet()));
+   connect(actionShowJobs, SIGNAL(triggered()), this,
+                SLOT(showJobs()));
 }
 
 /*
@@ -242,3 +246,12 @@ void FileSet::readSettings()
    restoreGeometry(settings.value("geometry").toByteArray());
    settings.endGroup();
 }
+
+/*
+ * Create a JobList object pre-populating a fileset
+ */
+void FileSet::showJobs()
+{
+   QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
+   mainWin->createPageJobList("", "", "", m_currentlyselected, parentItem);
+}
index a3174be79684195afba386ae8389029656a62b3e..8ce831b70a6261488603ec462fd1c0b3b8fb8121 100644 (file)
@@ -54,6 +54,7 @@ public slots:
 private slots:
    void populateTree();
    void consoleStatusFileSet();
+   void showJobs();
 
 private:
    void writeSettings();
index 7774859eef96e091d37d6fc877e044a19ce58642..edabb21dac015a9e97ff7c245dd93c033ddd99d3 100644 (file)
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>763</width>
-    <height>650</height>
+    <width>318</width>
+    <height>246</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -25,7 +25,7 @@
   </layout>
   <action name="actionRefreshFileSet" >
    <property name="icon" >
-    <iconset>:images/view-refresh.svg</iconset>
+    <iconset resource="../main.qrc" >:/images/view-refresh.svg</iconset>
    </property>
    <property name="text" >
     <string>Refresh FileSet List</string>
   </action>
   <action name="actionStatusFileSetInConsole" >
    <property name="icon" >
-    <iconset>:images/status.png</iconset>
+    <iconset resource="../main.qrc" >:/images/status.png</iconset>
    </property>
    <property name="text" >
     <string>Status FileSet In Console</string>
    </property>
   </action>
+  <action name="actionShowJobs" >
+   <property name="icon" >
+    <iconset resource="../main.qrc" >:/images/emblem-system.svg</iconset>
+   </property>
+   <property name="text" >
+    <string>ShowJobs</string>
+   </property>
+  </action>
  </widget>
- <resources/>
+ <resources>
+  <include location="../main.qrc" />
+ </resources>
  <connections/>
 </ui>
index a5956f858e599254f3cdcfe8cc0f3cdfd7c5bf07..b491bd48dcff887f6497c352186fa27d2075d0eb 100644 (file)
  * Constructor for the class
  */
 JobList::JobList(const QString &mediaName, const QString &clientName,
-          const QString &jobName, QTreeWidgetItem *parentTreeWidgetItem)
+          const QString &jobName, const QString &filesetName, QTreeWidgetItem *parentTreeWidgetItem)
 {
    setupUi(this);
    m_name = ""; /* treeWidgetName has a virtual override in this class */
    m_mediaName = mediaName;
    m_clientName = clientName;
    m_jobName = jobName;
+   m_filesetName = filesetName;
+   m_filesetName = filesetName;
    pgInitialize(parentTreeWidgetItem);
    QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
    thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/emblem-system.svg")));
@@ -56,7 +58,7 @@ JobList::JobList(const QString &mediaName, const QString &clientName,
    m_resultCount = 0;
    m_populated = false;
    m_closeable = false;
-   if ((m_mediaName != "") || (m_clientName != "") || (m_jobName != ""))
+   if ((m_mediaName != "") || (m_clientName != "") || (m_jobName != "") || (m_filesetName != ""))
       m_closeable=true;
    m_checkCurrentWidget = true;
    createConnections();
@@ -125,6 +127,10 @@ void JobList::populateTable()
       statusComboBox->addItem("Any");
       fileSetComboBox->addItem("Any");
       fileSetComboBox->addItems(m_console->fileset_list);
+      int filesetIndex = fileSetComboBox->findText(m_filesetName, Qt::MatchExactly);
+      if (filesetIndex != -1) {
+         fileSetComboBox->setCurrentIndex(filesetIndex);
+      }
       QString statusQuery("SELECT JobStatusLong FROM Status");
       if (mainWin->m_sqlDebug) {
          Pmsg1(000, "Query cmd : %s\n",query.toUtf8().data());
@@ -188,6 +194,8 @@ void JobList::populateTable()
       conditions.append("Job.PurgedFiles='" + purgedComboBox->itemText(purgedIndex) + "'");
    }
    int fileSetIndex = fileSetComboBox->currentIndex();
+   if (fileSetIndex != -1)
+      m_filesetName = fileSetComboBox->itemText(fileSetIndex);
    if ((fileSetIndex != -1) && (fileSetComboBox->itemText(fileSetIndex) != "Any")) {
       conditions.append("FileSet.FileSet='" + fileSetComboBox->itemText(fileSetIndex) + "'");
    }
@@ -323,7 +331,7 @@ void JobList::currentStackItem()
  */
 void JobList::treeWidgetName(QString &desc)
 {
-   if ((m_mediaName == "") && (m_clientName == "") &&  (m_jobName == "")) {
+   if ((m_mediaName == "") && (m_clientName == "") && (m_jobName == "") && (m_filesetName == "")) {
       desc = "JobList";
    } else {
       desc = "JobList ";
@@ -336,6 +344,9 @@ void JobList::treeWidgetName(QString &desc)
       if (m_jobName != "" ) {
          desc += "of Job " + m_jobName;
       }
+      if (m_filesetName != "" ) {
+         desc += "of fileset " + m_filesetName;
+      }
    }
 }
 
index c6ceb80e2865fcd95eed735b4441559a14aeea5e..6c4f90bd42ccc7c5803756efd423df523cc637d0 100644 (file)
@@ -44,7 +44,7 @@ class JobList : public Pages, public Ui::JobListForm
 
 public:
    JobList(const QString &medianame, const QString &clientname, 
-           const QString &jobname, QTreeWidgetItem *);
+           const QString &jobname, const QString &filesetname, QTreeWidgetItem *);
    virtual void PgSeltreeWidgetClicked();
    virtual void currentStackItem();
    int m_resultCount;
@@ -73,6 +73,7 @@ private:
    QString m_mediaName;
    QString m_clientName;
    QString m_jobName;
+   QString m_filesetName;
    QString m_currentJob;
    bool m_populated;
    bool m_checkCurrentWidget;
index ce31a381b02c3151485c37003e02fe1103c8dbea..a4feb8ea15bc5a4f0cdc71dc15c6d34d4be990d5 100644 (file)
@@ -258,5 +258,5 @@ void Jobs::consoleCancel()
 void Jobs::listJobs()
 {
    QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
-   mainWin->createPageJobList("", "", m_currentlyselected, parentItem);
+   mainWin->createPageJobList("", "", m_currentlyselected, "", parentItem);
 }
index 990dfddb4a72e36b6074aefb4e7528630ed5c226..1a408d678b5e89dcb383478fd745cedfbb307014 100644 (file)
@@ -135,11 +135,11 @@ void MainWin::createPages()
        * Create instances in alphabetic order of the rest 
        *  of the classes that will by default exist under each Director.  
        */
-//    new new bRestore();
+//      new bRestore();
       new Clients();
       new FileSet();
       new Jobs();
-      createPageJobList("", "", "", NULL);
+      createPageJobList("", "", "", "", NULL);
       new MediaList();
       new Storage();
 
@@ -153,15 +153,15 @@ void MainWin::createPages()
  * create an instance of the the joblist class on the stack
  */
 void MainWin::createPageJobList(const QString &media, const QString &client,
-              const QString &job, QTreeWidgetItem *parentTreeWidgetItem)
+              const QString &job, const QString &fileset, QTreeWidgetItem *parentTreeWidgetItem)
 {
    QTreeWidgetItem *holdItem;
 
    /* save current tree widget item in case query produces no results */
    holdItem = treeWidget->currentItem();
-   JobList* joblist = new JobList(media, client, job, parentTreeWidgetItem);
+   JobList* joblist = new JobList(media, client, job, fileset, parentTreeWidgetItem);
    /* If this is a query of jobs on a specific media */
-   if ((media != "") || (client != "") || (job != "")) {
+   if ((media != "") || (client != "") || (job != "") || (fileset != "")) {
       joblist->setCurrent();
       /* did query produce results, if not close window and set back to hold */
       if (joblist->m_resultCount == 0) {
index 25f619cceb150fd891c7ca1b49742a6302114cdf..c278242a1bddae0d9a0346df856bb0037fe4a8b8 100644 (file)
@@ -69,7 +69,7 @@ public:
    /* This is a list of consoles */
    QHash<QTreeWidgetItem*,Console*> m_consoleHash;
    void createPageJobList(const QString &, const QString &,
-            const QString &, QTreeWidgetItem *);
+            const QString &, const QString &, QTreeWidgetItem *);
    QString m_dtformat;
    /* Begin Preferences variables */
    bool m_commDebug;
index 0e04993cea688843873c2168e2e982182cd28e86..d12262671fecb634cc9e2aa2e9dc274e51586c70 100644 (file)
@@ -182,7 +182,7 @@ void MediaList::editVolume()
 void MediaList::showJobs()
 {
    QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
-   mainWin->createPageJobList(m_currentVolumeName, "", "", parentItem);
+   mainWin->createPageJobList(m_currentVolumeName, "", "", "", parentItem);
 }
 
 /*