]> git.sur5r.net Git - bacula/bacula/commitdiff
Bringing one fix and one feature from the head to 2.4 branch. This feature is rememb...
authorDirk H Bartley <dbartley@schupan.com>
Sun, 3 Aug 2008 16:52:47 +0000 (16:52 +0000)
committerDirk H Bartley <dbartley@schupan.com>
Sun, 3 Aug 2008 16:52:47 +0000 (16:52 +0000)
state of the medilist tree.  The fix is the fileset query will only retrieve the most recent
record.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/branches/Branch-2.4@7460 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/fileset/fileset.cpp
bacula/src/qt-console/medialist/medialist.cpp
bacula/src/qt-console/medialist/medialist.h

index a07c9569c422dad3919e75bec4767ec3818368fd..a1ec77795ce163c646bdd4ad2680535b46f60985 100644 (file)
@@ -107,7 +107,7 @@ void FileSet::populateTree()
            " FROM FileSet"
            " WHERE ";
       query += " FileSet='" + filesetName + "'";
-      query += " ORDER BY FileSet";
+      query += " ORDER BY CreateTime DESC LIMIT 1";
 
       QStringList results;
       if (mainWin->m_sqlDebug) {
index 49639a2ee456b2b2f1adc6d29171272462535fdb..a8e076e32820089ed24c534bdcc03009d0022b1a 100644 (file)
@@ -65,6 +65,8 @@ MediaList::MediaList()
 
 MediaList::~MediaList()
 {
+   if (m_populated)
+      writeExpandedSettings();
 }
 
 /*
@@ -73,7 +75,7 @@ MediaList::~MediaList()
  */
 void MediaList::populateTree()
 {
-   QTreeWidgetItem *mediatreeitem, *pooltreeitem, *topItem;
+   QTreeWidgetItem *mediatreeitem, *pooltreeitem;
    if (m_populating)
       return;
    m_populating = true;
@@ -89,23 +91,31 @@ void MediaList::populateTree()
    int statusIndex = headerlist.indexOf("Status");
 
    m_checkcurwidget = false;
+   if (m_populated)
+      writeExpandedSettings();
    mp_treeWidget->clear();
    m_checkcurwidget = true;
    mp_treeWidget->setColumnCount(headerlist.count());
-   topItem = new QTreeWidgetItem(mp_treeWidget);
-   topItem->setText(0, "Pools");
-   topItem->setData(0, Qt::UserRole, 0);
-   topItem->setExpanded(true);
+   m_topItem = new QTreeWidgetItem(mp_treeWidget);
+   m_topItem->setText(0, "Pools");
+   m_topItem->setData(0, Qt::UserRole, 0);
+   m_topItem->setExpanded(true);
    
    mp_treeWidget->setHeaderLabels(headerlist);
 
+   QSettings settings(m_console->m_dir->name(), "bat");
+   settings.beginGroup("MediaListTreeExpanded");
    QString query;
 
    foreach (QString pool_listItem, m_console->pool_list) {
-      pooltreeitem = new QTreeWidgetItem(topItem);
+      pooltreeitem = new QTreeWidgetItem(m_topItem);
       pooltreeitem->setText(0, pool_listItem);
       pooltreeitem->setData(0, Qt::UserRole, 1);
-      pooltreeitem->setExpanded(true);
+      if(settings.contains(pool_listItem)) {
+         pooltreeitem->setExpanded(settings.value(pool_listItem).toBool());
+      } else {
+         pooltreeitem->setExpanded(true);
+      }
 
       query =  "SELECT Media.VolumeName AS Media, "
          " Media.MediaId AS Id, Media.VolStatus AS VolStatus,"
@@ -155,6 +165,7 @@ void MediaList::populateTree()
          } /* foreach resultline */
       } /* if results from query */
    } /* foreach pool_listItem */
+   settings.endGroup();
    /* Resize the columns */
    for(int cnter=0; cnter<headerlist.count(); cnter++) {
       mp_treeWidget->resizeColumnToContents(cnter);
@@ -367,3 +378,18 @@ void MediaList::volumeFromPool()
    consoleCommand(cmd);
    populateTree();
 }
+
+/*
+ * Write settings to save expanded states of the pools
+ */
+void MediaList::writeExpandedSettings()
+{
+   QSettings settings(m_console->m_dir->name(), "bat");
+   settings.beginGroup("MediaListTreeExpanded");
+   int childcount = m_topItem->childCount();
+   for (int cnt=0; cnt<childcount; cnt++) {
+      QTreeWidgetItem *poolitem = m_topItem->child(cnt);
+      settings.setValue(poolitem->text(0), poolitem->isExpanded());
+   }
+   settings.endGroup();
+}
index 61b6f8d62861eda2f45cef3691ac923d7f18dca7..e3be25b8f26f5a1656bbb4d27fb8510756fca037 100644 (file)
@@ -66,11 +66,13 @@ private slots:
 private:
    void createContextMenu();
    void setStatusColor(QTreeWidgetItem *, QString &, int &);
+   void writeExpandedSettings();
    QString m_currentVolumeName;
    QString m_currentVolumeId;
    bool m_populated;
    bool m_populating;
    bool m_checkcurwidget;
+   QTreeWidgetItem *m_topItem;
 };
 
 #endif /* _MEDIALIST_H_ */