]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/status/dirstat.cpp
ebl Add more tests in migration time test (like for copy time test)
[bacula/bacula] / bacula / src / qt-console / status / dirstat.cpp
index 06102b97340a46c022abffc67aba5fb8f7f51039..792b33f93bb769cde4d48178cf137e8ac10109ab 100644 (file)
@@ -20,7 +20,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Bacula® is a registered trademark of John Walker.
+   Bacula® is a registered trademark of Kern Sibbald.
    The licensor of Bacula is the Free Software Foundation Europe
    (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
    Switzerland, email:ftf@fsfeurope.org.
@@ -166,11 +166,12 @@ void DirStat::populateTerminated()
             p_tableitem->setFlags(0);
             if (flaglist[column].contains("R"))
                p_tableitem->setTextAlignment(Qt::AlignRight);
-            if (flaglist[column].contains("C"))
+            if (flaglist[column].contains("C")) {
                if (field == "OK")
                   p_tableitem->setBackground(Qt::green);
                else
                   p_tableitem->setBackground(Qt::red);
+           }
             terminatedTable->setItem(results.size() - row - 1, column, p_tableitem);
             column += 1;
          }
@@ -261,7 +262,7 @@ void DirStat::populateRunning()
             field = field.trimmed();  /* strip leading & trailing spaces */
             p_tableitem = new QTableWidgetItem(field, 1);
             p_tableitem->setForeground(blackBrush);
-            p_tableitem->setFlags(0);
+            p_tableitem->setFlags(Qt::ItemIsSelectable);
             runningTable->setItem(row, column, p_tableitem);
             column += 1;
          }
@@ -309,6 +310,9 @@ void DirStat::createConnections()
                    SLOT(consoleCancelJob()));
    connect(actionDisableScheduledJob, SIGNAL(triggered()), this,
                    SLOT(consoleDisableJob()));
+   connect(runningTable, SIGNAL(
+           currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)),
+           this, SLOT(runningTableItemChanged(QTableWidgetItem *, QTableWidgetItem *)));
 
    scheduledTable->setContextMenuPolicy(Qt::ActionsContextMenu);
    scheduledTable->addAction(actionRefresh);
@@ -349,12 +353,10 @@ void DirStat::readSettings()
  */
 void DirStat::consoleCancelJob()
 {
-   int currentrow = runningTable->currentRow();
-   QTableWidgetItem *item = runningTable->item(currentrow, 0);
-   if (item) {
-      QString text = item->text();
+   foreach( QString job, m_selectedJobsList )
+   {
       QString cmd("cancel jobid=");
-      cmd += text;
+      cmd += job;
       consoleCommand(cmd);
    }
 }
@@ -373,4 +375,28 @@ void DirStat::consoleDisableJob()
       consoleCommand(cmd);
    }
 }
+/*
+ * Function to fill m_selectedJobsList with selected values
+ */
+void DirStat::runningTableItemChanged(QTableWidgetItem * /*currentItem*/, QTableWidgetItem * /*previousItem*/)
+{
+   QList<int> rowList;
+   QList<QTableWidgetItem *> sitems = runningTable->selectedItems();
+   foreach (QTableWidgetItem *sitem, sitems) {
+      int row = sitem->row();
+      if (!rowList.contains(row)) {
+         rowList.append(row);
+      }
+   }
 
+   m_selectedJobsList.clear();
+   foreach(int row, rowList) {
+      QTableWidgetItem * sitem = runningTable->item(row, 0);
+      m_selectedJobsList.append(sitem->text());
+   }
+   if (m_selectedJobsList.count() > 1) {
+      actionCancelRunning->setText(tr("Cancel list of %1 Jobs").arg(m_selectedJobsList.count()));
+   } else {
+      actionCancelRunning->setText(tr("Cancel Single Job"));
+   }
+}