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.
m_closeable = true;
pgInitialize();
QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
- thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/joblog.png")));
+ thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/status.png")));
m_cursor = new QTextCursor(textEdit->document());
readSettings();
dockPage();
m_timer = new QTimer(this);
QWidget::connect(m_timer, SIGNAL(timeout()), this, SLOT(timerTriggered()));
- //m_timer->start(mainWin->m_checkMessagesInterval*1000);
- m_timer->start(10*1000);
+ m_timer->start(mainWin->m_refreshStatusDirInterval*1000);
+
+ createConnections();
+ setCurrent();
}
void DirStat::getFont()
void DirStat::timerTriggered()
{
bool iscurrent = mainWin->stackedWidget->currentIndex() == mainWin->stackedWidget->indexOf(this);
- if ((isDocked() && iscurrent) || (!isDocked())) {
+ if (((isDocked() && iscurrent) || (!isDocked())) && mainWin->m_refreshStatusDir) {
if (m_console->is_ready())
populateAll();
}
void DirStat::populateHeader()
{
QString command = QString(".status dir header");
+ if (mainWin->m_commandDebug)
+ Pmsg1(000, "sending command : %s\n",command.toUtf8().data());
QStringList results;
textEdit->clear();
void DirStat::populateTerminated()
{
QString command = QString(".status dir terminated");
+ if (mainWin->m_commandDebug)
+ Pmsg1(000, "sending command : %s\n",command.toUtf8().data());
QStringList results;
QBrush blackBrush(Qt::black);
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(row, column, p_tableitem);
+ }
+ terminatedTable->setItem(results.size() - row - 1, column, p_tableitem);
column += 1;
}
row += 1;
void DirStat::populateScheduled()
{
QString command = QString(".status dir scheduled");
+ if (mainWin->m_commandDebug)
+ Pmsg1(000, "sending command : %s\n",command.toUtf8().data());
QStringList results;
QBrush blackBrush(Qt::black);
void DirStat::populateRunning()
{
QString command = QString(".status dir running");
+ if (mainWin->m_commandDebug)
+ Pmsg1(000, "sending command : %s\n",command.toUtf8().data());
QStringList results;
QBrush blackBrush(Qt::black);
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;
}
*/
void DirStat::createConnections()
{
+ connect(actionRefresh, SIGNAL(triggered()), this,
+ SLOT(populateAll()));
+ connect(actionCancelRunning, SIGNAL(triggered()), this,
+ 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);
+ scheduledTable->addAction(actionDisableScheduledJob);
+ terminatedTable->setContextMenuPolicy(Qt::ActionsContextMenu);
+ terminatedTable->addAction(actionRefresh);
+ runningTable->setContextMenuPolicy(Qt::ActionsContextMenu);
+ runningTable->addAction(actionRefresh);
+ runningTable->addAction(actionCancelRunning);
}
/*
splitter->restoreState(settings.value(m_splitText).toByteArray());
settings.endGroup();
}
+
+/*
+ * Cancel a running job
+ */
+void DirStat::consoleCancelJob()
+{
+ foreach( QString job, m_selectedJobsList )
+ {
+ QString cmd("cancel jobid=");
+ cmd += job;
+ consoleCommand(cmd);
+ }
+}
+
+/*
+ * Disable a scheduled Job
+ */
+void DirStat::consoleDisableJob()
+{
+ int currentrow = scheduledTable->currentRow();
+ QTableWidgetItem *item = scheduledTable->item(currentrow, 4);
+ if (item) {
+ QString text = item->text();
+ QString cmd("disable job=\"");
+ cmd += text + '"';
+ 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"));
+ }
+}