]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/relabel/relabel.cpp
Add additional mysql connection debug code
[bacula/bacula] / bacula / src / qt-console / relabel / relabel.cpp
index 42074d0d4ccbcad38394f752e40f94a6dc688b4f..4a8e599d1440c5a174d09990fe69b8eafc34de7b 100644 (file)
@@ -1,7 +1,7 @@
 /*
    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.
@@ -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.
@@ -45,7 +45,7 @@ relabelDialog::relabelDialog(Console *console, QString &fromVolume)
 {
    m_console = console;
    m_fromVolume = fromVolume;
-   m_console->notify(false);
+   m_conn = m_console->notifyOff();
    setupUi(this);
    storageCombo->addItems(console->storage_list);
    poolCombo->addItems(console->pool_list);
@@ -53,9 +53,36 @@ relabelDialog::relabelDialog(Console *console, QString &fromVolume)
    QString fromText(tr("From Volume : "));
    fromText += fromVolume;
    fromLabel->setText(fromText);
+   QStringList defFields;
+   if (getDefs(defFields) >= 1) {
+      poolCombo->setCurrentIndex(poolCombo->findText(defFields[1], Qt::MatchExactly));
+      storageCombo->setCurrentIndex(storageCombo->findText(defFields[0], Qt::MatchExactly));
+   }
    this->show();
 }
 
+/*
+ * Use an sql statment to get some defaults
+ */
+int relabelDialog::getDefs(QStringList &fieldlist)
+{
+   QString job, client, fileset;
+   QString query("");
+   query = "SELECT MediaType AS MediaType, Pool.Name AS PoolName"
+   " FROM Media"
+   " LEFT OUTER JOIN Pool ON Media.PoolId = Pool.PoolId"
+   " WHERE VolumeName = \'" + m_fromVolume  + "\'";
+   if (mainWin->m_sqlDebug) { Pmsg1(000, "query = %s\n", query.toUtf8().data()); }
+   QStringList results;
+   if (m_console->sql_cmd(query, results)) {
+      QString field;
+      /* Iterate through the lines of results, there should only be one. */
+      foreach (QString resultline, results) {
+         fieldlist = resultline.split("\t");
+      } /* foreach resultline */
+   } /* if results from query */
+   return results.count();
+}
 
 void relabelDialog::accept()
 {
@@ -83,8 +110,8 @@ void relabelDialog::accept()
       Pmsg1(000, "sending command : %s\n",scmd.toUtf8().data());
    }
    m_console->write_dir(scmd.toUtf8().data());
-   m_console->displayToPrompt();
-   m_console->notify(true);
+   m_console->displayToPrompt(m_conn);
+   m_console->notify(m_conn, true);
    delete this;
    mainWin->resetFocus();
 }
@@ -92,7 +119,7 @@ void relabelDialog::accept()
 void relabelDialog::reject()
 {
    this->hide();
-   m_console->notify(true);
+   m_console->notify(m_conn, true);
    delete this;
    mainWin->resetFocus();
 }