diff libgui/src/workspace-model.h @ 16477:64727ed135cb

use QTableView instead of QTreeView to display workspace * libgui/src/workspace-model.cc, libgui/src/workspace-model.h (workspace_model::workspace_model): Change to subclass QTreeView, using _columnNames for columns. (workspace_model::~workspace_model): Don't delete rootItem. (workspace_model::index): Delete. (workspace_model::parent): Delete. (workspace_model::rowCount): Return _symbols.size (workspace_model::columnCount): Return _columnNames.size. (workspace_model::insert_top_level_item): Delete. (workspace_model::top_level_item): Delete. (workspace_model::headerData): Return _columnNames. (workspace_model::data): Return data from string lists values. (workspace_model::set_workspace): Call update_table. (workspace_model::clear_workspace): Call update_table. (workspace_model::update_table): Rename from workspace_model::update_tree. (workspace_model::append_tree): Delete. * libgui/src/workspace-model.h (tree_item): Delete class decl. * libgui/src/workspace-view.h, libgui/src/workspace-view.cc (workspace_view::workspace_view): Use QTableView instead of QTreeView. (workspace_view::_explicit_collapse): Delete. (workspace_view::~workspace_view): Don't save _explicit_collapse settings. (workspace_view::model_changed): Delete. (workspace_view::collapse_requested): Delete. (workspace_view::expand_requested): Delete. (workspace_view::relay_contextmenu_command): Get cell 0 of the row. (workspace_view::contextmenu_requested): Get cell 0 of the row.
author John Donoghue <john.donoghue@ieee.org>
date Tue, 09 Apr 2013 03:26:11 -0400
parents 0f143f68078d
children 079ec7ce60e0
line wrap: on
line diff
--- a/libgui/src/workspace-model.h
+++ b/libgui/src/workspace-model.h
@@ -24,92 +24,13 @@
 #if !defined (workspace_model_h)
 #define workspace_model_h 1
 
-#include <QAbstractItemModel>
+#include <QAbstractTableModel>
 #include <QVector>
 #include <QSemaphore>
 #include <QStringList>
 
-class tree_item
-{
-public:
-  tree_item (const QList<QVariant> &d, tree_item *p = 0) {
-    _parent_item = p;
-    _item_data = d;
-  }
-
-  tree_item (QVariant d = QVariant(), tree_item *p = 0) {
-    QList<QVariant> variantList;
-    variantList << d << QVariant () << QVariant () << QVariant ();
-    _parent_item = p;
-    _item_data = variantList;
-  }
-
-  ~tree_item () {
-    qDeleteAll (_child_items);
-  }
-
-  void insert_child_item (int at, tree_item *item) {
-    item->_parent_item = this;
-    _child_items.insert (at, item);
-  }
-
-  void add_child (tree_item *item) {
-    item->_parent_item = this;
-    _child_items.append (item);
-  }
-
-  void delete_child_items () {
-    qDeleteAll (_child_items);
-    _child_items.clear ();
-  }
-
-  void remove_child (tree_item *item) {
-    _child_items.removeAll (item);
-  }
-
-  QVariant data (int column) const
-  {
-    return _item_data[column];
-  }
-
-  void set_data (int column, QVariant d)
-  {
-    _item_data[column] = d;
-  }
-
-  tree_item *child (int r) {
-    return _child_items[r];
-  }
-
-  int child_count () const {
-    return _child_items.count();
-  }
-
-  int column_count () const
-  {
-    return _item_data.count();
-  }
-
-  int row () const {
-    if (_parent_item)
-      return _parent_item->_child_items.indexOf (const_cast<tree_item*>(this));
-
-    return 0;
-  }
-
-  tree_item *parent ()
-  {
-    return _parent_item;
-  }
-
-private:
-  QList<tree_item*> _child_items;
-  QList<QVariant> _item_data;
-  tree_item *_parent_item;
-};
-
 class workspace_model
-  : public QAbstractItemModel
+  : public QAbstractTableModel
 {
   Q_OBJECT
 
@@ -126,19 +47,10 @@
   QVariant headerData (int section, Qt::Orientation orientation,
                        int role = Qt::DisplayRole) const;
 
-  QModelIndex index (int row, int column,
-                     const QModelIndex &parent = QModelIndex ()) const;
-
-  QModelIndex parent (const QModelIndex &index) const;
-
   int rowCount (const QModelIndex &parent = QModelIndex ()) const;
 
   int columnCount (const QModelIndex &parent = QModelIndex ()) const;
 
-  void insert_top_level_item (int at, tree_item *treeItem);
-
-  tree_item *top_level_item (int at);
-
 public slots:
 
   void set_workspace (const QString& scopes,
@@ -156,14 +68,7 @@
 private:
 
   void clear_data (void);
-
-  void clear_tree (void);
-
-  void update_tree (void);
-
-  void append_tree (QChar scope, const QString& symbol,
-                    const QString& class_name, const QString& dimension,
-                    const QString& value);
+  void update_table (void);
 
   QString _scopes;
   QStringList _symbols;
@@ -171,7 +76,7 @@
   QStringList _dimensions;
   QStringList _values;
 
-  tree_item *_rootItem;
+  QStringList _columnNames;
 };
 
 #endif // WORKSPACEMODEL_H