/*
Bacula® - The Network Backup Solution
- Copyright (C) 2007-2008 Free Software Foundation Europe e.V.
+ Copyright (C) 2007-2009 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
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.
* selector tree. m_contextActions is QList of QActions */
m_contextActions.append(actionRefreshJobs);
createContextMenu();
- dockPage();
+
+ connect(tableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem*)),
+ this, SLOT(runJob()));
}
Jobs::~Jobs()
*/
void Jobs::populateTable()
{
- QBrush blackBrush(Qt::black);
+ m_populated = true;
+ mainWin->waitEnter();
- if (!m_console->preventInUseConnect())
- return;
+ Freeze frz(*tableWidget); /* disable updating*/
+
+ QBrush blackBrush(Qt::black);
m_checkcurwidget = false;
tableWidget->clear();
m_checkcurwidget = true;
job_defaults job_defs;
job_defs.job_name = jobName;
if (m_console->get_job_defaults(job_defs)) {
- int col = 0;
- TableItemFormatter jobsItem(*tableWidget, row);
- jobsItem.setTextFld(col++, jobName);
- jobsItem.setTextFld(col++, job_defs.pool_name);
- jobsItem.setTextFld(col++, job_defs.messages_name);
- jobsItem.setTextFld(col++, job_defs.client_name);
- jobsItem.setTextFld(col++, job_defs.store_name);
- jobsItem.setTextFld(col++, job_defs.level);
- jobsItem.setTextFld(col++, job_defs.type);
- jobsItem.setTextFld(col++, job_defs.fileset_name);
- jobsItem.setTextFld(col++, job_defs.catalog_name);
- jobsItem.setBoolFld(col++, job_defs.enabled);
- jobsItem.setTextFld(col++, job_defs.where);
-
+ int col = 0;
+ TableItemFormatter jobsItem(*tableWidget, row);
+ jobsItem.setTextFld(col++, jobName);
+ jobsItem.setTextFld(col++, job_defs.pool_name);
+ jobsItem.setTextFld(col++, job_defs.messages_name);
+ jobsItem.setTextFld(col++, job_defs.client_name);
+ jobsItem.setTextFld(col++, job_defs.store_name);
+ jobsItem.setTextFld(col++, job_defs.level);
+ jobsItem.setTextFld(col++, job_defs.type);
+ jobsItem.setTextFld(col++, job_defs.fileset_name);
+ jobsItem.setTextFld(col++, job_defs.catalog_name);
+ jobsItem.setBoolFld(col++, job_defs.enabled);
+ jobsItem.setTextFld(col++, job_defs.where);
}
row++;
}
/* Resize rows and columns */
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
+
+ /* make read only */
+ tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
+
+ mainWin->waitExit();
+ dockPage();
}
/*
{
if(!m_populated) {
populateTable();
- m_populated=true;
}
}
void Jobs::tableItemChanged(QTableWidgetItem *currentwidgetitem, QTableWidgetItem *previouswidgetitem )
{
/* m_checkcurwidget checks to see if this is during a refresh, which will segfault */
- if (m_checkcurwidget) {
+ if (m_checkcurwidget && currentwidgetitem) {
/* The Previous item */
if (previouswidgetitem) { /* avoid a segfault if first time */
foreach(QAction* jobAction, tableWidget->actions()) {
if (m_currentlyselected.length() != 0) {
/* set a hold variable to the client name in case the context sensitive
* menu is used */
+ tableWidget->addAction(actionRefreshJobs);
tableWidget->addAction(actionConsoleListFiles);
tableWidget->addAction(actionConsoleListVolumes);
tableWidget->addAction(actionConsoleListNextVolume);
*/
void Jobs::currentStackItem()
{
- populateTable();
if(!m_populated) {
/* Create the context menu for the client table */
- m_populated=true;
+ populateTable();
}
}