From: Dirk H Bartley Date: Wed, 30 May 2007 17:40:21 +0000 (+0000) Subject: Get jump from jobs to joblist query of specific job to work. X-Git-Tag: Release-7.0.0~6203 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=eba14399b884e7c52afc68c55c037bb961af6cf5;p=bacula%2Fbacula Get jump from jobs to joblist query of specific job to work. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4942 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/src/qt-console/clients/clients.cpp b/bacula/src/qt-console/clients/clients.cpp index 922ee9056f..adbbdd159f 100644 --- a/bacula/src/qt-console/clients/clients.cpp +++ b/bacula/src/qt-console/clients/clients.cpp @@ -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); } /* diff --git a/bacula/src/qt-console/joblist/joblist.cpp b/bacula/src/qt-console/joblist/joblist.cpp index bc1585affa..a5956f858e 100644 --- a/bacula/src/qt-console/joblist/joblist.cpp +++ b/bacula/src/qt-console/joblist/joblist.cpp @@ -41,13 +41,14 @@ /* * Constructor for the class */ -JobList::JobList(const QString &mediaName, const QString &clientname, - QTreeWidgetItem *parentTreeWidgetItem) +JobList::JobList(const QString &mediaName, const QString &clientName, + const QString &jobName, QTreeWidgetItem *parentTreeWidgetItem) { setupUi(this); m_name = ""; /* treeWidgetName has a virtual override in this class */ m_mediaName = mediaName; - m_clientName = clientname; + m_clientName = clientName; + m_jobName = jobName; pgInitialize(parentTreeWidgetItem); QTreeWidgetItem* thisitem = mainWin->getFromHash(this); thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/emblem-system.svg"))); @@ -55,7 +56,8 @@ JobList::JobList(const QString &mediaName, const QString &clientname, m_resultCount = 0; m_populated = false; m_closeable = false; - if ((m_mediaName != "") || (m_clientName != "")) { m_closeable=true; } + if ((m_mediaName != "") || (m_clientName != "") || (m_jobName != "")) + m_closeable=true; m_checkCurrentWidget = true; createConnections(); @@ -112,6 +114,10 @@ void JobList::populateTable() } jobComboBox->addItem("Any"); jobComboBox->addItems(m_console->job_list); + int jobIndex = jobComboBox->findText(m_jobName, Qt::MatchExactly); + if (jobIndex != -1) { + jobComboBox->setCurrentIndex(jobIndex); + } levelComboBox->addItem("Any"); levelComboBox->addItems( QStringList() << "F" << "D" << "I"); purgedComboBox->addItem("Any"); @@ -164,6 +170,8 @@ void JobList::populateTable() conditions.append("Client.Name='" + m_clientName + "'"); } int jobIndex = jobComboBox->currentIndex(); + if (jobIndex != -1) + m_jobName = jobComboBox->itemText(jobIndex); if ((jobIndex != -1) && (jobComboBox->itemText(jobIndex) != "Any")) { conditions.append("Job.Name='" + jobComboBox->itemText(jobIndex) + "'"); } @@ -315,7 +323,7 @@ void JobList::currentStackItem() */ void JobList::treeWidgetName(QString &desc) { - if ((m_mediaName == "") && (m_clientName == "")) { + if ((m_mediaName == "") && (m_clientName == "") && (m_jobName == "")) { desc = "JobList"; } else { desc = "JobList "; @@ -325,6 +333,9 @@ void JobList::treeWidgetName(QString &desc) if (m_clientName != "" ) { desc += "of Client " + m_clientName; } + if (m_jobName != "" ) { + desc += "of Job " + m_jobName; + } } } diff --git a/bacula/src/qt-console/joblist/joblist.h b/bacula/src/qt-console/joblist/joblist.h index df4b0fcd49..c6ceb80e28 100644 --- a/bacula/src/qt-console/joblist/joblist.h +++ b/bacula/src/qt-console/joblist/joblist.h @@ -43,7 +43,8 @@ class JobList : public Pages, public Ui::JobListForm Q_OBJECT public: - JobList(const QString &medianame, const QString &clientname, QTreeWidgetItem *); + JobList(const QString &medianame, const QString &clientname, + const QString &jobname, QTreeWidgetItem *); virtual void PgSeltreeWidgetClicked(); virtual void currentStackItem(); int m_resultCount; @@ -71,6 +72,7 @@ private: void setStatusColor(QTableWidgetItem *item, QString &field); QString m_mediaName; QString m_clientName; + QString m_jobName; QString m_currentJob; bool m_populated; bool m_checkCurrentWidget; diff --git a/bacula/src/qt-console/jobs/jobs.cpp b/bacula/src/qt-console/jobs/jobs.cpp index 8d3314457a..2d20a1be96 100644 --- a/bacula/src/qt-console/jobs/jobs.cpp +++ b/bacula/src/qt-console/jobs/jobs.cpp @@ -258,4 +258,6 @@ void Jobs::consoleCancel() void Jobs::listJobs() { printf("In Jobs::listJobs\n"); + QTreeWidgetItem *parentItem = mainWin->getFromHash(this); + mainWin->createPageJobList("", "", m_currentlyselected, parentItem); } diff --git a/bacula/src/qt-console/mainwin.cpp b/bacula/src/qt-console/mainwin.cpp index 95a6e157e1..990dfddb4a 100644 --- a/bacula/src/qt-console/mainwin.cpp +++ b/bacula/src/qt-console/mainwin.cpp @@ -139,7 +139,7 @@ void MainWin::createPages() 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, - QTreeWidgetItem *parentTreeWidgetItem) + const QString &job, QTreeWidgetItem *parentTreeWidgetItem) { QTreeWidgetItem *holdItem; /* save current tree widget item in case query produces no results */ holdItem = treeWidget->currentItem(); - JobList* joblist = new JobList(media, client, parentTreeWidgetItem); + JobList* joblist = new JobList(media, client, job, parentTreeWidgetItem); /* If this is a query of jobs on a specific media */ - if ((media != "") || (client != "")) { + if ((media != "") || (client != "") || (job != "")) { joblist->setCurrent(); /* did query produce results, if not close window and set back to hold */ if (joblist->m_resultCount == 0) { diff --git a/bacula/src/qt-console/mainwin.h b/bacula/src/qt-console/mainwin.h index a0a5ed7d89..25f619cceb 100644 --- a/bacula/src/qt-console/mainwin.h +++ b/bacula/src/qt-console/mainwin.h @@ -68,7 +68,8 @@ public: QHash m_widgethash; /* This is a list of consoles */ QHash m_consoleHash; - void createPageJobList(const QString &, const QString &, QTreeWidgetItem *); + void createPageJobList(const QString &, const QString &, + const QString &, QTreeWidgetItem *); QString m_dtformat; /* Begin Preferences variables */ bool m_commDebug; diff --git a/bacula/src/qt-console/medialist/medialist.cpp b/bacula/src/qt-console/medialist/medialist.cpp index ec16038705..0e04993cea 100644 --- a/bacula/src/qt-console/medialist/medialist.cpp +++ b/bacula/src/qt-console/medialist/medialist.cpp @@ -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); } /*