]> git.sur5r.net Git - bacula/bacula/commitdiff
prevent status page from requesting status before it has been brought to the front
authorDirk Bartley <dbartley@schupan.com>
Sat, 15 Aug 2009 19:51:54 +0000 (21:51 +0200)
committerKern Sibbald <kern@sibbald.com>
Sat, 15 Aug 2009 19:51:54 +0000 (21:51 +0200)
bacula/src/qt-console/pages.cpp
bacula/src/qt-console/pages.h
bacula/src/qt-console/status/dirstat.cpp

index 293bf70758f63e1ccc3e727c474abdcf63027ee1..49321898149d39cd325fd2a0dc41a2b175edf000 100644 (file)
@@ -87,10 +87,10 @@ void Pages::dockPage()
 
    /* Set docked flag */
    m_docked = true;
+   m_onceDocked = true;
    mainWin->tabWidget->setCurrentWidget(this);
    /* lets set the page selectors action for docking or undocking */
    setContextMenuDockText();
-
 }
 
 /*
@@ -140,6 +140,17 @@ bool Pages::isDocked()
    return m_docked;
 }
 
+/*
+ * This function is because after the tabbed widget was added I could not tell
+ * from is docked if it had been docked yet.  To prevent status pages from requesting
+ * status from the director
+ */
+bool Pages::isOnceDocked()
+{
+   return m_onceDocked;
+}
+
+
 /*
  * To keep m_closeable protected as well
  */
@@ -221,6 +232,7 @@ void Pages::pgInitialize(const QString &name)
 void Pages::pgInitialize(const QString &tname, QTreeWidgetItem *parentTreeWidgetItem)
 {
    m_docked = false;
+   m_onceDocked = false;
    if (tname.size()) {
       m_name = tname;
    }
index 654dd2ad9509fe986415a60ee6622297e85a6b85..4cdacc9aea84ae892ee0dd53edb52bacf56fd153 100644 (file)
@@ -59,6 +59,7 @@ public:
    void undockPage();
    void togglePageDocking();
    bool isDocked();
+   bool isOnceDocked();
    bool isCloseable();
    QTabWidget *m_parent;
    QList<QAction*> m_contextActions;
@@ -91,6 +92,7 @@ protected:
    void setTitle();
    bool m_closeable;
    bool m_docked;
+   bool m_onceDocked;
    Console *m_console;
    QString m_name;
 };
index 890b07c1750e6d7fb64a170ae9d997e2bdd65ed2..91796d04c66049306bcf9de44050957f9ebbb084 100644 (file)
@@ -101,7 +101,7 @@ void DirStat::timerTriggered()
    if (value == 0) {
       value = spinBox->value();
       bool iscurrent = mainWin->tabWidget->currentIndex() == mainWin->tabWidget->indexOf(this);
-      if (((isDocked() && iscurrent) || (!isDocked())) && (checkBox->checkState() == Qt::Checked)) {
+      if (((isDocked() && iscurrent) || ((!isDocked()) && isOnceDocked())) && (checkBox->checkState() == Qt::Checked)) {
          populateAll();
       }
    }