]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/mainwin.cpp
dhb forgot to remove a couple of debugging printf's
[bacula/bacula] / bacula / src / qt-console / mainwin.cpp
index fa81992be0426d1e06187559ab75c13664bd54a2..9722cc69a6abf85fd21625e51fac84db915100e1 100644 (file)
@@ -59,7 +59,6 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
    readSettings();
 
    m_console->connect();
-   m_medialist->populateTree();
 }
 
 void MainWin::createPages()
@@ -69,21 +68,20 @@ void MainWin::createPages()
 
    /* Create console tree stacked widget item */
    m_console = new Console(stackedWidget);
-   /* Console is special needs director*/
+   /* Console is special -> needs director*/
    /* Just take the first Director */
    LockRes();
    dir = (DIRRES *)GetNextRes(R_DIRECTOR, NULL);
    m_console->setDirRes(dir);
    UnlockRes();
    /* The top tree item representing the director */
-   topItem = createTopPage(dir->name(), false);
+   topItem = createTopPage(dir->name());
    topItem->setIcon(0, QIcon(QString::fromUtf8("images/server.png")));
    /* Create Tree Widget Item */
-   item = createPage("Console", topItem, true);
+   item = createPage("Console", topItem);
+   m_console->setTreeItem(item);
    /* Append to bstacklist */
    m_bstacklist.append(m_console);
-   /* FIXME Associate tree item with console, may not be needed. */
-   m_console->setTreeItem(item);
    /* Set BatStack m_treeItem */
    m_console->SetBSTreeWidgetItem(item);
    QBrush redBrush(Qt::red);
@@ -93,17 +91,15 @@ void MainWin::createPages()
    /* All should be
  * 1. create tree widget item
  * 2. create object passing pointer to tree widget item (modified constructors to pass QTreeWidget pointers)
- * 3. append to stacklist  */ 
+ * 3. append to stacklist
+ * And it can even be done in one line.
+ * */ 
 
    /* brestore */
-   item = createPage("brestore", topItem, true);
-   m_brestore = new bRestore(stackedWidget,item);
-   m_bstacklist.append(m_brestore);
+   m_bstacklist.append(new bRestore( stackedWidget, createPage("brestore", topItem) ));
 
    /* lastly for now, the medialist */
-   item = createPage("Storage Tree", topItem, true);
-   m_medialist = new MediaList(stackedWidget, m_console, item);
-   m_bstacklist.append(m_medialist);
+   m_bstacklist.append(new MediaList(stackedWidget, m_console, createPage("Storage Tree", topItem )));
 
    /* Iterate through and add to the stack */
    for ( QList<BatStack*>::iterator bstackItem = m_bstacklist.begin(); bstackItem != m_bstacklist.end(); ++bstackItem ) {
@@ -114,30 +110,19 @@ void MainWin::createPages()
    stackedWidget->setCurrentIndex(0);
 }
 
-/* FIXME These Two are not needed any more because UserRole is not used. */
 /* Create a root Tree Widget */
-QTreeWidgetItem *MainWin::createTopPage(char *name, bool canDisplay)
+QTreeWidgetItem *MainWin::createTopPage(char *name )
 {
    QTreeWidgetItem *item = new QTreeWidgetItem(treeWidget);
    item->setText(0, name);
-   if (canDisplay) {
-      item->setData(0, Qt::UserRole, QVariant(m_pages++));
-   } else {
-      item->setData(0, Qt::UserRole, QVariant(-1));
-   }
    return item;
 }
 
 /* Create A Tree Widget Item which will be associated with a Page in the stacked widget */
-QTreeWidgetItem *MainWin::createPage(char *name, QTreeWidgetItem *parent, bool canDisplay)
+QTreeWidgetItem *MainWin::createPage(char *name, QTreeWidgetItem *parent)
 {
    QTreeWidgetItem *item = new QTreeWidgetItem(parent);
    item->setText(0, name);
-   if (canDisplay) {
-      item->setData(0, Qt::UserRole, QVariant(m_pages++));
-   } else {
-      item->setData(0, Qt::UserRole, QVariant(-1));
-   }
    return item;
 }
 
@@ -183,11 +168,11 @@ void MainWin::createConnections()
    connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(input_line()));
    connect(actionAbout_bat, SIGNAL(triggered()), this, SLOT(about()));
 
-   connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this, 
-           SLOT(treeItemClicked(QTreeWidgetItem *, int)));
-   connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, 
+/*   connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this, 
            SLOT(treeItemClicked(QTreeWidgetItem *, int)));
    connect(treeWidget, SIGNAL(itemPressed(QTreeWidgetItem *, int)), this, 
+           SLOT(treeItemClicked(QTreeWidgetItem *, int)));  Commented out because it was getting to clicked multiple times*/
+   connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, 
            SLOT(treeItemClicked(QTreeWidgetItem *, int)));
    connect(treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, 
            SLOT(treeItemDoubleClicked(QTreeWidgetItem *, int)));
@@ -236,13 +221,17 @@ void MainWin::treeItemClicked(QTreeWidgetItem *item, int column)
 {
    /* Iterate through and find the tree widget item clicked */
    column+=0;
-   for ( QList<BatStack*>::iterator bstackItem = m_bstacklist.begin(); bstackItem != m_bstacklist.end(); ++bstackItem ) {
+   QList<BatStack*>::iterator bstackItem;
+   bstackItem = m_bstacklist.begin();
+   while ( bstackItem != m_bstacklist.end() ){
       if ( item == (*bstackItem)->m_treeItem ) {
-         int stackindex=stackedWidget->indexOf( *bstackItem );
-         if( stackindex >= 0 ){
-            stackedWidget->setCurrentIndex(stackindex);
-         }
+        int stackindex=stackedWidget->indexOf( *bstackItem );
+        if( stackindex >= 0 ){
+           stackedWidget->setCurrentIndex(stackindex);
+        }
+         (*bstackItem)->PgSeltreeWidgetClicked();
       }
+      ++bstackItem;
    }
 }
 
@@ -252,10 +241,22 @@ void MainWin::treeItemDoubleClicked(QTreeWidgetItem *item, int column)
 {
    /* Iterate through and find the tree widget item double clicked */
    column+=0;
-   for ( QList<BatStack*>::iterator bstackItem = m_bstacklist.begin(); bstackItem != m_bstacklist.end(); ++bstackItem ) {
+   QList<BatStack*>::iterator bstackItem;
+   bstackItem = m_bstacklist.begin();
+   while ( bstackItem != m_bstacklist.end() ){
       if ( item == (*bstackItem)->m_treeItem ) {
-         (*bstackItem)->Togglestack();
+        /* This could be a call a virtual function ?? or just popup a popup menu for an action */
+        if ( (*bstackItem)->isStacked() == true ){
+           m_bstackpophold=*bstackItem;
+           QMenu *popup = new QMenu( treeWidget );
+           connect(popup->addAction("Pull Window Out"), SIGNAL(triggered()), this, SLOT(pullWindowOut()));
+           popup->exec(QCursor::pos());
+        } else {
+           (*bstackItem)->Togglestack();
+        }
+         (*bstackItem)->PgSeltreeWidgetDoubleClicked();
       }
+      ++bstackItem;
    }
 }
 
@@ -323,3 +324,8 @@ void MainWin::set_status(const char *buf)
 {
    statusBar()->showMessage(buf);
 }
+
+void MainWin::pullWindowOut()
+{
+   m_bstackpophold->Togglestack();
+}