]> git.sur5r.net Git - bacula/bacula/commitdiff
This implements dynamic pages created on the fly being nested on the tree
authorDirk H Bartley <dbartley@schupan.com>
Sat, 21 Apr 2007 23:43:12 +0000 (23:43 +0000)
committerDirk H Bartley <dbartley@schupan.com>
Sat, 21 Apr 2007 23:43:12 +0000 (23:43 +0000)
underneath the objects that were used to create them.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4587 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/TODO
bacula/src/qt-console/clients/clients.cpp
bacula/src/qt-console/joblist/joblist.cpp
bacula/src/qt-console/joblist/joblist.h
bacula/src/qt-console/mainwin.cpp
bacula/src/qt-console/mainwin.h
bacula/src/qt-console/medialist/medialist.cpp
bacula/src/qt-console/pages.cpp
bacula/src/qt-console/pages.h

index b1d4485cc859a47fad4edfd6a51e46654f75f9ee..9f937d4186b466d59ad7348a7cb82b95ede783df 100644 (file)
@@ -41,6 +41,21 @@ Things to do:
 
 - Possibly some other things I didn't think of.
 
+===========================================================
+NOT SURE
+===========================================================
+
+I'm not sure about this one??  Things seem to work and I did not do a
+thing to make it happen:  the "dir" is a member of Console
+
+- We also must somehow make the low level I/O routines know which
+director/console to use.  Currently they always use the single
+global one defined in the mainWin class (if I remember right).
+
+
+============================================================
+DONE:
+============================================================
 Another idea for what you have implemented:
 - I think that the dynamic pages that you create on the fly
 should be nested under the item that creates them more like a
@@ -63,21 +78,6 @@ My original concept was to put these in a tabbed widget.  Your Idea may
 make for a cleaner user experience.  I like it.  It could save the
 effort of getting a tabbed widget to work.
 
-===========================================================
-NOT SURE
-===========================================================
-
-I'm not sure about this one??  Things seem to work and I did not do a
-thing to make it happen:  the "dir" is a member of Console
-
-- We also must somehow make the low level I/O routines know which
-director/console to use.  Currently they always use the single
-global one defined in the mainWin class (if I remember right).
-
-
-============================================================
-DONE:
-============================================================
 
 - I think we need to make the current Director more explicit, by
 perhaps highlighting it in the page selector when it is current
index 7f380c6b1322fe7db4472c2ee15a6dcd1d03b1c7..c10e7d9a91a2ec5c46b587b9705a4b2fdc943f9e 100644 (file)
@@ -187,7 +187,8 @@ void Clients::createContextMenu()
 void Clients::showJobs()
 {
    QString emptymedia("");
-   mainWin->createPageJobList(emptymedia, m_currentlyselected);
+   QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
+   mainWin->createPageJobList(emptymedia, m_currentlyselected, parentItem);
 }
 
 /*
index 9d10be8756b6ec7534d0f35d83f930474c421e06..a4598cec915c7d72bfb3a8a55067c9b712b6e00d 100644 (file)
 /*
  * Constructor for the class
  */
-JobList::JobList(QString &medianame, QString &clientname)
+JobList::JobList(QString &medianame, QString &clientname,
+         QTreeWidgetItem *parentTreeWidgetItem)
 {
    setupUi(this);
    m_medianame = medianame;
    m_clientname = clientname;
-   pgInitialize();
+   pgInitialize(parentTreeWidgetItem);
    m_resultCount = 0;
    m_populated = false;
    m_closeable = false;
index f779dec0305b98d2c1a2693fd2385c3329a96d7c..c3ee1fa28f778c81758ede5e953e447afe26a44a 100644 (file)
@@ -43,7 +43,7 @@ class JobList : public Pages, public Ui::JobListForm
    Q_OBJECT 
 
 public:
-   JobList(QString &medianame, QString &clientname);
+   JobList(QString &medianame, QString &clientname, QTreeWidgetItem *);
    virtual void PgSeltreeWidgetClicked();
    virtual void currentStackItem();
    int m_resultCount;
index 4012429b1bd839a969c55bbdb05a2e6c3e2da0ff..1939461777de17324195401aa7b9d09e6536505e 100644 (file)
@@ -63,8 +63,11 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
    }
    m_currentConsole = (Console*)getFromHash(m_firstItem);
    treeWidget->setCurrentItem(getFromHash(m_currentConsole));
-   DIRRES* dirres = m_currentConsole->getDirRes();
-   printf("Setting initial window to %s\n", dirres->name());
+   /*
+    *  I'd like to turn this into a debug item
+    *  DIRRES* dirres = m_currentConsole->getDirRes();
+    *  printf("Setting initial window to %s\n", dirres->name());
+    */
 }
 
 void MainWin::createPages()
@@ -109,7 +112,7 @@ void MainWin::createPages()
       createPagebRestore();
       createPageMediaList();
       QString emptymedia(""), emptyclient("");
-      createPageJobList(emptymedia, emptyclient);
+      createPageJobList(emptymedia, emptyclient, NULL);
       createPageClients();
 
       treeWidget->expandItem(topItem);
@@ -139,13 +142,14 @@ void MainWin::createPageMediaList()
 /*
  * create an instance of the the joblist class on the stack
  */
-void MainWin::createPageJobList(QString &media, QString &client)
+void MainWin::createPageJobList(QString &media, QString &client,
+              QTreeWidgetItem *parentTreeWidgetItem)
 {
    QTreeWidgetItem *item, *holdItem;
 
    /* save current tree widget item in case query produces no results */
    holdItem = treeWidget->currentItem();
-   JobList* joblist = new JobList(media, client);
+   JobList* joblist = new JobList(media, client, parentTreeWidgetItem);
    joblist->dockPage();
    /* If this is a query of jobs on a specific media */
    if ((media != "") || (client != "")) {
index 130b5a516c49d72a845952a2958228a80c8ee256..109ae598465ad14c4b5c0cbb7e016739abc0c25a 100644 (file)
@@ -78,7 +78,7 @@ public:
    QHash<Pages*,QTreeWidgetItem*> m_widgethash;
    /* This is a list of consoles */
    QHash<QTreeWidgetItem*,Console*> m_consoleHash;
-   void createPageJobList(QString &, QString &);
+   void createPageJobList(QString &, QString &, QTreeWidgetItem *);
 
 public slots:
    void input_line();
index 38537ae66909425ee59fa129286882d9b6c1903a..fe751d56381976574e6c2aec01fcbf5b1d82eb8b 100644 (file)
@@ -159,7 +159,8 @@ void MediaList::editMedia()
 void MediaList::showJobs()
 {
    QString emptyclient("");
-   mainWin->createPageJobList(m_currentlyselected, emptyclient);
+   QTreeWidgetItem *parentItem = mainWin->getFromHash(this);
+   mainWin->createPageJobList(m_currentlyselected, emptyclient, parentItem);
 }
 
 /*
index 8858a766238d7943635a8be72f94240a537e7ed0..74cebde6cbe30df2f186fcb7f15a0cbcba82bef0 100644 (file)
@@ -174,13 +174,22 @@ void Pages::closeStackPage()
 }
 
 /*
- * Function to set members from the external mainwin
+ * Function to set members from the external mainwin and it's overload being
+ * passed a specific QTreeWidgetItem to be it's parent on the tree
  */
 void Pages::pgInitialize()
+{
+   pgInitialize(NULL);
+}
+
+void Pages::pgInitialize(QTreeWidgetItem *parentTreeWidgetItem)
 {
    m_parent = mainWin->stackedWidget;
    m_console = mainWin->currentConsole();
-   QTreeWidgetItem *parentTreeWidgetItem = m_console->directorTreeItem();
+
+   if (!parentTreeWidgetItem) {
+      parentTreeWidgetItem = m_console->directorTreeItem();
+   }
 
    QTreeWidgetItem *item = new QTreeWidgetItem(parentTreeWidgetItem);
    QString name; 
index a5616ddcb0006f6e2df08499bb6b408b6a5308be..aec0d6a0b33bebc97be5225f17bb59038ff8e6fc 100644 (file)
@@ -73,6 +73,7 @@ public slots:
 
 protected:
    void pgInitialize();
+   void pgInitialize(QTreeWidgetItem *);
    bool m_closeable;
    bool m_docked;
    virtual void treeWidgetName(QString &);