X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fqt-console%2Fmainwin.cpp;h=a1352c742960cb8944970e4cf55bfec931aa8a30;hb=afd4ac31e0f65357c5264c04b804e86b2095a304;hp=be3fbce36fee2ae2637d9a8a550a5dd12c047c45;hpb=3b90315b91c7d4e93b2464e3d59f64ba19d3fa59;p=bacula%2Fbacula diff --git a/bacula/src/qt-console/mainwin.cpp b/bacula/src/qt-console/mainwin.cpp index be3fbce36f..a1352c7429 100644 --- a/bacula/src/qt-console/mainwin.cpp +++ b/bacula/src/qt-console/mainwin.cpp @@ -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() {