]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix invalid .mod command in BAT during restore
authorMarcin Haba <marcin.haba@bacula.pl>
Wed, 15 Apr 2015 08:51:10 +0000 (10:51 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Wed, 15 Apr 2015 08:51:10 +0000 (10:51 +0200)
bacula/src/qt-console/bcomm/dircomm.cpp
bacula/src/qt-console/pages.cpp
bacula/src/qt-console/pages.h
bacula/src/qt-console/run/estimate.cpp
bacula/src/qt-console/run/runcmd.cpp

index 4b81699d4ca7aed909bf8a0dae0166f0476bb5e9..33500b00c81e9e9005cd4711d5c749af5bc0ed81 100644 (file)
@@ -396,11 +396,8 @@ int DirComm::read()
       case BNET_TEXT_INPUT:
          if (mainWin->m_commDebug) Pmsg4(000, "conn %i TEXT_INPUT at_prompt=%d  m_in_select=%d notify=%d\n",
                m_conn, m_at_prompt, m_in_select, is_notify_enabled());
-         //if (!m_in_select && is_notify_enabled()) {
-         if (!m_in_select) {
-            mainWin->waitExit();
+         if (!m_in_select && is_notify_enabled()) {
             new textInputDialog(m_console, m_conn);
-         } else {
             if (mainWin->m_commDebug) Pmsg0(000, "!m_in_select && is_notify_enabled\n");
             m_at_prompt = true;
             m_at_main_prompt = false;
index 0a7c70c90341ebf6677e2c220bcfbd92f0b84926..fc1494e1c4f687fb8a74da3e44792b10a92df45f 100644 (file)
@@ -293,24 +293,22 @@ void Pages::consoleCommand(QString &command)
 void Pages::consoleCommand(QString &command, bool setCurrent)
 {
    int conn;
-   bool donotify = false;
-   if (m_console->getDirComm(conn))  {
-      if (m_console->is_notify_enabled(conn)) {
-         donotify = true;
-         m_console->notify(conn, false);
-      }
-      consoleCommand(command, conn, setCurrent);
-      if (donotify) { m_console->notify(conn, true); }
+   if (m_console->getDirComm(conn)) {
+      consoleCommand(command, conn, setCurrent, true);
    }
 }
 
-void Pages::consoleCommand(QString &command, int conn)
-{
-   consoleCommand(command, conn, true);
-}
-
-void Pages::consoleCommand(QString &command, int conn, bool setCurrent)
+/*
+ * Lowest level of console command method.
+ * "notify" parameter default is set to true by higher level console command call.
+ * In most cases "notify" parameter should be set to true value because after console
+ * command sent, notifier should be always enabled for catch all Director responses.
+ */
+void Pages::consoleCommand(QString &command, int conn, bool setCurrent, bool notify)
 {
+   if (notify) {
+      m_console->notify(conn, true);
+   }
    /* Bring this director's console to the front of the stack */
    if (setCurrent) { setConsoleCurrent(); }
    QString displayhtml("<font color=\"blue\">");
index bc460ca74076ff2c0917868db8369acbe9f30fca..c3e3280f8bf5727665d80afb673aceb1fdf08e2a 100644 (file)
@@ -58,9 +58,8 @@ public:
    void setContextMenuDockText();
    void setTreeWidgetItemDockColor();
    void consoleCommand(QString &);
-   void consoleCommand(QString &, int conn);
    void consoleCommand(QString &, bool setCurrent);
-   void consoleCommand(QString &, int conn, bool setCurrent);
+   void consoleCommand(QString &, int conn, bool setCurrent=true, bool notify=true);
    QString &name() { return m_name; };
    void getVolumeList(QStringList &);
    void getStatusList(QStringList &);
index 28399da91940c1b8c15b15d48fc5c0fc33fbbfe7..7154d526ba888809fbf3d6b97451edd9278e3172 100644 (file)
@@ -74,7 +74,7 @@ void estimatePage::okButtonPushed()
       Pmsg1(000, "command : %s\n", cmd.toUtf8().data());
    }
 
-   consoleCommand(cmd, m_conn);
+   consoleCommand(cmd, m_conn, true, true);
    m_console->notify(m_conn, true);
    closeStackPage();
    mainWin->resetFocus();
index e9369ca7fe6de143defe523970e7c73570e67baa..66573985b8ad8aedbe77c9b0a26a8a45ec0bf5b2 100644 (file)
@@ -44,7 +44,6 @@ runCmdPage::runCmdPage(int conn) : Pages()
    m_console->notify(conn, false);
 
    fill();
-   m_console->discardToPrompt(m_conn);
 
    connect(okButton, SIGNAL(pressed()), this, SLOT(okButtonPushed()));
    connect(cancelButton, SIGNAL(pressed()), this, SLOT(cancelButtonPushed()));
@@ -159,12 +158,11 @@ void runCmdPage::okButtonPushed()
 
 void runCmdPage::cancelButtonPushed()
 {
-   m_console->displayToPrompt(m_conn);
-   m_console->write_dir(".");
-   m_console->displayToPrompt(m_conn);
-   mainWin->set_status(tr(" Canceled"));
    this->hide();
+   m_console->write_dir(m_conn, "no");
+   m_console->displayToPrompt(m_conn);
    m_console->notify(m_conn, true);
+   mainWin->set_status(tr(" Canceled"));
    closeStackPage();
    mainWin->resetFocus();
 }