]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/console/console.cpp
Check for job_canceled() in fd_plugin code
[bacula/bacula] / bacula / src / qt-console / console / console.cpp
index 25a5b1305f8ad730c97b44572043cf713af7ef84..a3b6ee6115167236ed8bbdb8825770b1cabd7725 100644 (file)
@@ -96,7 +96,7 @@ void Console::poll_messages()
       return;
    DirComm *dircomm = m_dircommHash.value(conn);
 
-   if (mainWin->m_checkMessages && dircomm->m_at_main_prompt && hasFocus()){
+   if (mainWin->m_checkMessages && dircomm->m_at_main_prompt && hasFocus() && !mainWin->getWaitState()){
       messagesPending(true);
       dircomm->write(".messages");
       displayToPrompt(conn);
@@ -194,7 +194,7 @@ bool Console::dir_cmd(QString &cmd, QStringList &results)
 bool Console::dir_cmd(const char *cmd, QStringList &results)
 {
    int conn;
-   if(availableDirComm(conn)) {
+   if (availableDirComm(conn)) {
       dir_cmd(conn, cmd, results);
       return true;
    } else {
@@ -302,25 +302,45 @@ bool Console::sql_cmd(int &conn, const char *query, QStringList &results, bool d
    return true;              /* ***FIXME*** return any command error */
 }
 
-/* Send a command to the Director */
+/* 
+ * Overloads for
+ * Sending a command to the Director
+ */
 int Console::write_dir(const char *msg)
 {
    int conn;
-   if(availableDirComm(conn))
+   if (availableDirComm(conn))
       write_dir(conn, msg);
    return conn;
 }
 
-/* Send a command to the Director */
+int Console::write_dir(const char *msg, bool dowait)
+{
+   int conn;
+   if (availableDirComm(conn))
+      write_dir(conn, msg, dowait);
+   return conn;
+}
+
 void Console::write_dir(int conn, const char *msg)
+{
+   write_dir(conn, msg, true);
+}
+
+/*
+ * Send a command to the Director
+ */
+void Console::write_dir(int conn, const char *msg, bool dowait)
 {
    DirComm *dircomm = m_dircommHash.value(conn);
 
    if (dircomm->m_sock) {
       mainWin->set_status(_("Processing command ..."));
-      mainWin->waitEnter();
+      if (dowait)
+         mainWin->waitEnter();
       dircomm->write(msg);
-      mainWin->waitExit();
+      if (dowait)
+         mainWin->waitExit();
    } else {
       mainWin->set_status( tr(" Director not connected. Click on connect button."));
       mainWin->actionConnect->setIcon(QIcon(":images/disconnected.png"));
@@ -547,7 +567,6 @@ void Console::display_html(const QString buf)
 /* Position cursor to end of screen */
 void Console::update_cursor()
 {
-//   QApplication::restoreOverrideCursor();
    m_textEdit->moveCursor(QTextCursor::End);
    m_textEdit->ensureCursorVisible();
 }
@@ -600,7 +619,10 @@ void Console::discardToPrompt(int conn)
       displayToPrompt(conn);
    } else {
       while (!dircomm->m_at_prompt) {
-         stat=dircomm->read();
+         stat = dircomm->read();
+         if (stat < 0) {
+            break;
+         }
       }
    }
    if (mainWin->m_commDebug) Pmsg2(000, "endDiscardToPrompt=%d %s\n", stat, m_dir->name());
@@ -621,7 +643,7 @@ void Console::discardToPrompt(int conn)
 int Console::notifyOff()
 { 
    int conn = 0;
-   if(availableDirComm(conn))
+   if (availableDirComm(conn))
       notify(conn, false);
    return conn;
 }