]> git.sur5r.net Git - bacula/bacula/commitdiff
Prevent connecting with the Console::m_at_main_prompt member.
authorDirk H Bartley <dbartley@schupan.com>
Fri, 18 May 2007 01:31:30 +0000 (01:31 +0000)
committerDirk H Bartley <dbartley@schupan.com>
Fri, 18 May 2007 01:31:30 +0000 (01:31 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4825 91ce42f0-d328-0410-95d8-f526ca767f89

13 files changed:
bacula/src/qt-console/TODO
bacula/src/qt-console/clients/clients.cpp
bacula/src/qt-console/console/console.cpp
bacula/src/qt-console/console/console.h
bacula/src/qt-console/fileset/fileset.cpp
bacula/src/qt-console/joblist/joblist.cpp
bacula/src/qt-console/joblog/joblog.cpp
bacula/src/qt-console/mediaedit/mediaedit.cpp
bacula/src/qt-console/medialist/medialist.cpp
bacula/src/qt-console/pages.cpp
bacula/src/qt-console/restore/prerestore.cpp
bacula/src/qt-console/run/runcmd.cpp
bacula/src/qt-console/storage/storage.cpp

index 44e12ddf68b8aa33100cb21c77b4b9bb554ad284..f46b6838d172c667ec5053d5fbeac308adf9a7ec 100644 (file)
@@ -26,7 +26,7 @@ Purging not working from console or from context sensitive.  (Kern)
 Human readable in joblist for purged, joblevel and job type.
 
 Possibly a stack of past screens so that when you open a window from another,
-closing would brint the previous one back.
+closing would bring the previous one back.
 
 Is there a way to query the director/database for whether a storage is currently
 mounted so I am not presenting both mount and unmount to the user??
index 8aa2ed5fe85694b00ba76e1a63cf43b5b6da02c2..77c646baca530e66f608a22d3e62188acb913310 100644 (file)
@@ -64,6 +64,8 @@ void Clients::populateTree()
 {
    QTreeWidgetItem *clientItem, *topItem;
 
+   if (!m_console->preventInUseConnect())
+      return;
    m_checkcurwidget = false;
    mp_treeWidget->clear();
    m_checkcurwidget = true;
index 09ca2cb915e9850656480df775d174e3108f76b6..04f50c833133c50d24800ab18b7e8f025f458095 100644 (file)
@@ -690,11 +690,44 @@ bool Console::is_connectedGui()
    if (is_connected()) {
       return true;
    } else {
+      QString message("Director ");
+      message += " is curerntly disconnected\n  Please reconnect!!";
+      QMessageBox::warning(this, tr("Bat"),
+         tr(message.toUtf8().data()), QMessageBox::Ok );
+      return false;
+   }
+}
+
+/*
+ * A temporary function to prevent connecting to the director if the director
+ * is busy with a restore.
+ */
+bool Console::preventInUseConnect()
+{
+   if (!is_connected()) {
       QString message("Director ");
       message += m_dir->name();
       message += " is curerntly disconnected\n  Please reconnect!!";
       QMessageBox::warning(this, tr("Bat"),
          tr(message.toUtf8().data()), QMessageBox::Ok );
       return false;
+   } else if (!m_at_main_prompt){
+      QString message("Director ");
+      message += m_dir->name();
+      message += " is curerntly busy\n  Please complete restore or other "
+" operation !!  This is a limitation that will be resolved before a beta"
+" release.  This is currently an alpa release.";
+      QMessageBox::warning(this, tr("Bat"),
+         tr(message.toUtf8().data()), QMessageBox::Ok );
+      return false;
+   } else if (!m_at_prompt){
+      QString message("Director ");
+      message += m_dir->name();
+      message += " is curerntly not at a prompt\n  Please try again!!";
+      QMessageBox::warning(this, tr("Bat"),
+         tr(message.toUtf8().data()), QMessageBox::Ok );
+      return false;
+   } else {
+      return true;
    }
 }
index b36c09561801f4a4dfdcaccb726c6d3f50412024..ec54da8a9b5d5181f374db892117e2645d87af6e 100644 (file)
@@ -83,6 +83,7 @@ public:
    bool authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons);
    bool is_connected() { return m_sock != NULL; };
    bool is_connectedGui();
+   bool preventInUseConnect();
    const QFont get_font();
    void writeSettings();
    void readSettings();
index bf4513ce561c4da6aff80bea5983a1b12331b4c5..b8f8aaba530b5f5775321e9301fd0bb813b39b4f 100644 (file)
@@ -64,6 +64,8 @@ void FileSet::populateTree()
 {
    QTreeWidgetItem *filesetItem, *topItem;
 
+   if (!m_console->preventInUseConnect())
+       return;
 
    m_checkcurwidget = false;
    mp_treeWidget->clear();
index 89ec394333ff6b8098c60d03aaa8d78cabb3e0c3..cf3fb97a94c82ccbea2751ebd6ea22da8fc374b4 100644 (file)
@@ -75,6 +75,9 @@ void JobList::populateTable()
    QString resultline;
    QBrush blackBrush(Qt::black);
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    /* Can't do this in constructor because not neccesarily conected in constructor */
    if (!m_populated) {
       clientsComboBox->addItem("Any");
index a042ced364b5d552cc64bac4395bb6379fc5eb64..f9b6539f306d70b5e760c419e02bc33284bbfbd9 100644 (file)
@@ -77,6 +77,9 @@ void JobLog::populateText()
    QString heading("<A href=\"#top\">Log records for job ");
    heading += m_jobId + "</A>\n";
    textEdit->insertHtml(heading);
+
+   if (!m_console->preventInUseConnect())
+       return;
    
    QString query("");
    query = "SELECT Time, LogText FROM Log WHERE JobId='" + m_jobId + "'";
index a8a099f2a24dd2a4d2121f757c3863df6ed9e8a9..ee0bdb987cd0b2e8c0bf2b11d09e6aa57f9f5780 100644 (file)
@@ -48,9 +48,11 @@ MediaEdit::MediaEdit(Console *console, QString &mediaId)
    m_status = "";
    m_slot = 0;
 
-
    setupUi(this);
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    /* The media's pool */
    poolCombo->addItems(console->pool_list);
 
index 0f6c54aaa92808d13d942b0290698a8cdfaf86bb..894c937dc49c57a08bf2d5b506dd93a920f09b13 100644 (file)
@@ -67,6 +67,9 @@ void MediaList::populateTree()
 {
    QTreeWidgetItem *mediatreeitem, *pooltreeitem, *topItem;
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    QStringList headerlist = (QStringList()
       << "Volume Name" << "Id" << "Status" << "Enabled"
       << "Bytes" << "Files" << "Jobs" << "Retention" 
index ebdd8b06fca33f5fb5a55de836748f3a246e97ee..1b1201548fa7017ca69ac6cbcb516547fe1460c7 100644 (file)
@@ -205,9 +205,10 @@ void Pages::treeWidgetName(QString &name)
  */
 void Pages::consoleCommand(QString &command)
 {
-   if (!m_console->is_connectedGui()) {
+   /*if (!m_console->is_connectedGui())
+       return;*/
+   if (!m_console->preventInUseConnect())
        return;
-   }
    /* Bring this directors console to the front of the stack */
    setConsoleCurrent();
    QString displayhtml("<font color=\"blue\">");
index bca6c1e6c14f0d135696ff35d4ac188abcfc407d..d07ab66312832239a572ee9fbeaa6245f5fef079 100644 (file)
@@ -66,6 +66,9 @@ void prerestorePage::buildPage()
    m_console->notify(false);
    m_closeable = true;
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    jobCombo->addItems(m_console->job_list);
    filesetCombo->addItems(m_console->fileset_list);
    clientCombo->addItems(m_console->client_list);
index 02f8cbea555fc368fb9d28d51c592848f723ead1..25346ea7196126114f0a50f151bd333428cf1445 100644 (file)
@@ -150,7 +150,15 @@ void runCmdPage::okButtonPushed()
    cmd += pri;
    cmd += " yes\n";
    
-   consoleCommand(cmd);
+   setConsoleCurrent();
+   QString displayhtml("<font color=\"blue\">");
+   displayhtml += cmd + "</font>\n";
+   m_console->display_html(displayhtml);
+   m_console->display_text("\n");
+   m_console->write_dir(cmd.toUtf8().data());
+   m_console->displayToPrompt();
+//   consoleCommand(cmd); ***FIXME set back to consoleCommand when connection issue is resolved
+
    m_console->notify(true);
    closeStackPage();
 }
index 7d63e15cf80e90f6ea3e3aa33bda5e07265bc28b..4a5e32ac4820f8a2f56534fd8fdf61cba7d3fc61 100644 (file)
@@ -67,6 +67,9 @@ void Storage::populateTree()
 {
    QTreeWidgetItem *storageItem, *topItem;
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    m_checkcurwidget = false;
    mp_treeWidget->clear();
    m_checkcurwidget = true;