]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/storage/storage.cpp
I could not get a few files to compile until I opened and saved these
[bacula/bacula] / bacula / src / qt-console / storage / storage.cpp
index 6b8549cbed052ffec7f5527994f7f6ca9353a51f..6e8ffedcb52ef82dee4942c57bc18dbad1de5782 100644 (file)
@@ -1,14 +1,14 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2007-2007 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
    modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +27,7 @@
 */
  
 /*
- *   Version $Id: storage.cpp 4230 2007-02-21 20:07:37Z kerns $
+ *   Version $Id$
  *
  *  Storage Class
  *
@@ -39,6 +39,7 @@
 #include <QMenu>
 #include "bat.h"
 #include "storage.h"
+#include "label/label.h"
 #include "../mount/mount.h"
 
 Storage::Storage()
@@ -46,13 +47,18 @@ Storage::Storage()
    setupUi(this);
    m_name = "Storage";
    pgInitialize();
+   QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
+   thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/package-x-generic.png")));
 
    /* mp_treeWidget, Storage Tree Tree Widget inherited from ui_storage.h */
    m_populated = false;
    m_checkcurwidget = true;
    m_closeable = false;
    m_currentStorage = "";
-   setTitle();
+   /* add context sensitive menu items specific to this classto the page
+    * selector tree. m_contextActions is QList of QActions */
+   m_contextActions.append(actionRefreshStorage);
+   dockPage();
 }
 
 Storage::~Storage()
@@ -67,6 +73,9 @@ void Storage::populateTree()
 {
    QTreeWidgetItem *storageItem, *topItem;
 
+   if (!m_console->preventInUseConnect())
+       return;
+
    m_checkcurwidget = false;
    mp_treeWidget->clear();
    m_checkcurwidget = true;
@@ -81,8 +90,6 @@ void Storage::populateTree()
 
    mp_treeWidget->setColumnCount(headerlist.count());
    mp_treeWidget->setHeaderLabels(headerlist);
-   /* This could be a log item */
-   //printf("In Storage::populateTree()\n");
 
    foreach(QString storageName, m_console->storage_list){
       storageItem = new QTreeWidgetItem(topItem);
@@ -98,7 +105,9 @@ void Storage::populateTree()
 
       QStringList results;
       /* This could be a log item */
-      //printf("Storage query cmd : %s\n",query.toUtf8().data());
+      if (mainWin->m_sqlDebug) {
+         Pmsg1(000, "Storage query cmd : %s\n",query.toUtf8().data());
+      }
       if (m_console->sql_cmd(query, results)) {
          int resultCount = results.count();
          if (resultCount == 1){
@@ -157,6 +166,9 @@ void Storage::treeItemChanged(QTreeWidgetItem *currentwidgetitem, QTreeWidgetIte
             mp_treeWidget->removeAction(actionLabelStorage);
             mp_treeWidget->removeAction(actionMountStorage);
             mp_treeWidget->removeAction(actionUnMountStorage);
+            mp_treeWidget->removeAction(actionUpdateSlots);
+            mp_treeWidget->removeAction(actionUpdateSlotsScan);
+            mp_treeWidget->removeAction(actionRelease);
          }
       }
 
@@ -170,15 +182,26 @@ void Storage::treeItemChanged(QTreeWidgetItem *currentwidgetitem, QTreeWidgetIte
          mp_treeWidget->addAction(actionLabelStorage);
          mp_treeWidget->addAction(actionMountStorage);
          mp_treeWidget->addAction(actionUnMountStorage);
+         mp_treeWidget->addAction(actionRelease);
          QString text;
-         text = "Status Storage " + m_currentStorage;
+         text = "Status Storage \"" + m_currentStorage + "\"";
          actionStatusStorageInConsole->setText(text);
-         text = "Label media in Storage " + m_currentStorage;
+         text = "Label media in Storage \"" + m_currentStorage + "\"";
          actionLabelStorage->setText(text);
-         text = "Mount media in Storage " + m_currentStorage;
+         text = "Mount media in Storage \"" + m_currentStorage + "\"";
          actionMountStorage->setText(text);
-         text = "\"UN\" Mount media in Storage " + m_currentStorage;
+         text = "\"UN\" Mount media in Storage \"" + m_currentStorage + "\"";
          actionUnMountStorage->setText(text);
+         text = "Release media in Storage \"" + m_currentStorage + "\"";
+         actionRelease->setText(text);
+         if (m_currentAutoChanger != 0) {
+            mp_treeWidget->addAction(actionUpdateSlots);
+            mp_treeWidget->addAction(actionUpdateSlotsScan);
+            text = "Barcode Scan media in Storage \"" + m_currentStorage + "\"";
+            actionUpdateSlots->setText(text);
+            text = "Mount and read scan media in Storage \"" + m_currentStorage + "\"";
+            actionUpdateSlotsScan->setText(text);
+         }
       }
    }
 }
@@ -206,6 +229,12 @@ void Storage::createContextMenu()
                 SLOT(consoleMountStorage()));
    connect(actionUnMountStorage, SIGNAL(triggered()), this,
                 SLOT(consoleUnMountStorage()));
+   connect(actionUpdateSlots, SIGNAL(triggered()), this,
+                SLOT(consoleUpdateSlots()));
+   connect(actionUpdateSlotsScan, SIGNAL(triggered()), this,
+                SLOT(consoleUpdateSlotsScan()));
+   connect(actionRelease, SIGNAL(triggered()), this,
+                SLOT(consoleRelease()));
 }
 
 /*
@@ -215,10 +244,6 @@ void Storage::currentStackItem()
 {
    if(!m_populated) {
       populateTree();
-      /* add context sensitive menu items specific to this classto the page
-       * selector tree. m_m_contextActions is QList of QActions, so this is 
-       * only done once with the first population. */
-      m_contextActions.append(actionRefreshStorage);
       /* Create the context menu for the storage tree */
       createContextMenu();
       m_populated=true;
@@ -235,10 +260,14 @@ void Storage::consoleStatusStorage()
    cmd += m_currentStorage;
    consoleCommand(cmd);
 }
+
+/* Label Media populating current storage by default */
 void Storage::consoleLabelStorage()
 {
-   new labelDialog(m_console, m_currentStorage);
+   new labelPage(m_currentStorage);
 }
+
+/* Mount currently selected storage */
 void Storage::consoleMountStorage()
 {
    if (m_currentAutoChanger == 0){
@@ -247,14 +276,40 @@ void Storage::consoleMountStorage()
       cmd += m_currentStorage;
       consoleCommand(cmd);
    } else {
-      placeConsoleOnTop();
+      setConsoleCurrent();
       /* if this storage is an autochanger, lets ask for the slot */
       new mountDialog(m_console, m_currentStorage);
    }
 }
+
+/* Unmount Currently selected storage */
 void Storage::consoleUnMountStorage()
 {
    QString cmd("umount storage=");
    cmd += m_currentStorage;
    consoleCommand(cmd);
 }
+
+/* Update Slots */
+void Storage::consoleUpdateSlots()
+{
+   QString cmd("update slots storage=");
+   cmd += m_currentStorage;
+   consoleCommand(cmd);
+}
+
+/* Update Slots Scan*/
+void Storage::consoleUpdateSlotsScan()
+{
+   QString cmd("update slots scan storage=");
+   cmd += m_currentStorage;
+   consoleCommand(cmd);
+}
+
+/* Release a tape in the drive */
+void Storage::consoleRelease()
+{
+   QString cmd("release storage=");
+   cmd += m_currentStorage;
+   consoleCommand(cmd);
+}