]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/mainwin.cpp
Add additional mysql connection debug code
[bacula/bacula] / bacula / src / qt-console / mainwin.cpp
index be3fbce36fee2ae2637d9a8a550a5dd12c047c45..a1352c742960cb8944970e4cf55bfec931aa8a30 100644 (file)
@@ -66,7 +66,10 @@ void message_callback(int /* type */, char *msg)
 
 MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
 {
+   app->setOverrideCursor(QCursor(Qt::WaitCursor));
    m_isClosing = false;
+   m_waitState = false;
+   m_doConnect = false;
    m_dtformat = "yyyy-MM-dd HH:mm:ss";
    mainWin = this;
    setupUi(this);                     /* Setup UI defined by main.ui (designer) */
@@ -79,9 +82,7 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
 
    createPages();
 
-   resetFocus();
-
-   connectSignals();
+   resetFocus(); /* lineEdit->setFocus() */
 
 #ifndef HAVE_QWT
    actionJobPlot->setEnabled(false);
@@ -92,12 +93,10 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
 
    readSettings();
 
-   foreach(Console *console, m_consoleHash) {
+   foreach(Console *console, m_consoleHash)
       console->connect_dir();
-   }
    m_currentConsole = (Console*)getFromHash(m_firstItem);
-   m_currentConsole->setCurrent();
-   connectConsoleSignals();
+   QTimer::singleShot(750, this, SLOT(popLists()));
    if (m_miscDebug) {
       QString directoryResourceName;
       m_currentConsole->getDirResName(directoryResourceName);
@@ -105,6 +104,17 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
    }
 }
 
+void MainWin::popLists()
+{
+   foreach(Console *console, m_consoleHash)
+      console->populateLists(true);
+   app->restoreOverrideCursor();
+   m_doConnect = true;
+   connectConsoleSignals();
+   connectSignals();
+   m_currentConsole->setCurrent();
+}
+
 void MainWin::createPages()
 {
    DIRRES *dir;
@@ -254,6 +264,7 @@ void MainWin::connectSignals()
    connect(actionToggleDock, SIGNAL(triggered()), this,  SLOT(toggleDockContextWindow()));
    connect(actionClosePage, SIGNAL(triggered()), this,  SLOT(closePage()));
    connect(actionPreferences, SIGNAL(triggered()), this,  SLOT(setPreferences()));
+   connect(actionRepopLists, SIGNAL(triggered()), this,  SLOT(repopLists()));
 }
 
 void MainWin::disconnectSignals()
@@ -279,6 +290,7 @@ void MainWin::disconnectSignals()
    disconnect(actionToggleDock, SIGNAL(triggered()), this,  SLOT(toggleDockContextWindow()));
    disconnect(actionClosePage, SIGNAL(triggered()), this,  SLOT(closePage()));
    disconnect(actionPreferences, SIGNAL(triggered()), this,  SLOT(setPreferences()));
+   disconnect(actionRepopLists, SIGNAL(triggered()), this,  SLOT(repopLists()));
 }
 
 /*
@@ -286,8 +298,18 @@ void MainWin::disconnectSignals()
  */
 void MainWin::waitEnter()
 {
+   if (m_waitState){ 
+      if (mainWin->m_connDebug)
+         Pmsg0(000, "Should Never Get Here DANGER DANGER, for now I'll return\n");
+      return;
+   }
+   m_waitState = true;
+   if (mainWin->m_connDebug)
+      Pmsg0(000, "Entering Wait State\n");
    app->setOverrideCursor(QCursor(Qt::WaitCursor));
    disconnectSignals();
+   disconnectConsoleSignals(m_currentConsole);
+   m_waitTreeItem = treeWidget->currentItem();
 }
 
 /*
@@ -295,8 +317,16 @@ void MainWin::waitEnter()
  */
 void MainWin::waitExit()
 {
+   m_waitState = false;
+   if (mainWin->m_connDebug)
+      Pmsg0(000, "Exiting Wait State\n");
    app->restoreOverrideCursor();
-   connectSignals();
+   if (m_waitTreeItem != treeWidget->currentItem())
+      treeWidget->setCurrentItem(m_waitTreeItem);
+   if (m_doConnect) {
+      connectSignals();
+      connectConsoleSignals();
+   }
 }
 
 void MainWin::connectConsoleSignals()
@@ -315,6 +345,11 @@ void MainWin::disconnectConsoleSignals(Console *console)
    disconnect(actionSelectFont, SIGNAL(triggered()), console, SLOT(set_font()));
 }
 
+void MainWin::repopLists()
+{
+   m_currentConsole->populateLists(false);
+}
+
 /* 
  * Reimplementation of QWidget closeEvent virtual function   
  */
@@ -536,8 +571,8 @@ void MainWin::input_line()
    QString cmdStr = lineEdit->text();    /* Get the text */
    lineEdit->clear();                    /* clear the lineEdit box */
    if (m_currentConsole->is_connected()) {
-      /* Use consoleInput to allow typing anything */
-      m_currentConsole->consoleInput(cmdStr);
+      /* Use consoleCommand to allow typing anything */
+      m_currentConsole->consoleCommand(cmdStr);
    } else {
       set_status(tr("Director not connected. Click on connect button."));
    }
@@ -690,6 +725,7 @@ Console *MainWin::currentConsole()
 {
    return m_currentConsole;
 }
+
 /* Quick function to return the tree item for the director */
 QTreeWidgetItem *MainWin::currentTopItem()
 {