]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/medialist/medialist.cpp
Apply win32-fixes patch from Riccardo that makes the Win32
[bacula/bacula] / bacula / src / qt-console / medialist / medialist.cpp
index b32670a37919a0d72a333af718ee99b8a7153c65..bf891fa4c19399d868ce6a8f4b796e5199770c7a 100644 (file)
@@ -56,7 +56,6 @@ MediaList::MediaList()
 
    /* mp_treeWidget, Storage Tree Tree Widget inherited from ui_medialist.h */
    m_populated = false;
-   m_populating = false;
    m_checkcurwidget = true;
    m_closeable = false;
    /* add context sensitive menu items specific to this classto the page
@@ -77,14 +76,15 @@ MediaList::~MediaList()
  */
 void MediaList::populateTree()
 {
-   if (m_populating)
-      return;
-   m_populating = true;
-   QTreeWidgetItem *pooltreeitem;
+   if (m_populated)
+      writeExpandedSettings();
+   m_populated = true;
 
    if (!m_console->preventInUseConnect())
        return;
 
+   Freeze frz(*mp_treeWidget); /* disable updating*/
+
    QStringList headerlist = (QStringList()
       << tr("Volume Name") << tr("Id") << tr("Status") << tr("Enabled") << tr("Bytes") << tr("Files")
       << tr("Jobs") << tr("Retention") << tr("Media Type") << tr("Slot") << tr("Use Duration")
@@ -92,8 +92,6 @@ void MediaList::populateTree()
       << tr("RecyclePool") << tr("Last Written"));
 
    m_checkcurwidget = false;
-   if (m_populated)
-      writeExpandedSettings();
    mp_treeWidget->clear();
    m_checkcurwidget = true;
    mp_treeWidget->setColumnCount(headerlist.count());
@@ -108,6 +106,7 @@ void MediaList::populateTree()
    settings.beginGroup("MediaListTreeExpanded");
    QString query;
 
+   QTreeWidgetItem *pooltreeitem;
    foreach (QString pool_listItem, m_console->pool_list) {
       pooltreeitem = new QTreeWidgetItem(m_topItem);
       pooltreeitem->setText(0, pool_listItem);
@@ -222,7 +221,6 @@ void MediaList::populateTree()
    for(int cnter=0; cnter<headerlist.count(); cnter++) {
       mp_treeWidget->resizeColumnToContents(cnter);
    }
-   m_populating = false;
 }
 
 /*
@@ -252,7 +250,6 @@ void MediaList::PgSeltreeWidgetClicked()
    if (!m_populated) {
       populateTree();
       createContextMenu();
-      m_populated=true;
    }
 }
 
@@ -323,7 +320,6 @@ void MediaList::currentStackItem()
       populateTree();
       /* Create the context menu for the medialist tree */
       createContextMenu();
-      m_populated=true;
    }
 }
 
@@ -425,12 +421,14 @@ void MediaList::volumeFromPool()
  */
 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());
+   if (m_topItem) {
+      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();
    }
-   settings.endGroup();
 }