Thanks very much for the clear explanations. It all makes sense now.
Nalin Singal wrote:
Sorry for breaking up the reply.
Regarding the reorderable columns. When you do
menuColumns.id.set_reorderable(), you are trying to
set the column in the treeModel as reoderable. But
actually the column in the treeView is the one which
should be reorderable. Remember there are two
different sets of columns - one in the treemodel and
one in the treeview which are backed up by the
treemodel columns. So the columns in the treeview are
the ones which can be reordered and not the ones in
the treemodel because reordering is just a view thing.
So as you are doing the for loop, get the column you
want to set as reorderable from the treeview and call
set_reorderable on it.
Hope this helps :)
-Nalin
--- John Taber [EMAIL PROTECTED] wrote:
Has anyone else had problems with TreeModel?
1) If I try to append rows after using
TreeModel.clear(), it segfaults.
2) If I try to define a column as reorderable - it
does not compile but
if I put it in a loop thru all the columns it
compiles okay.
3) I'm getting weird behavior when using a table
refresh function
(setListToDisplay) - sometimes the view does not
load the data, some
times I get a glibmm memory error.
I'm running gtkmm 2.6.1 with gtk 2.6.4 with gcc
3.3.5 on debian sid
Here's excerpt of what I've been using - anything
wrong in what I'm doing?
in .h file:
virtual void menuTreeOnClicked(const
Gtk::TreeModel::Path path,
Gtk::TreeViewColumn* column);
//-- menu tree --
class ModelColumns : public
Gtk::TreeModel::ColumnRecord {
public:
ModelColumns() {
add(id);
add(name);
}
Gtk::TreeModelColumnintid;
Gtk::TreeModelColumnstd::stringname;
};
ModelColumns menuColumns;
Gtk::ScrolledWindow menuWindow;
Gtk::TreeView menuTreeView;
Glib::RefPtrGtk::ListStore menuTreeModel;
in .cpp file
//-- menu tree
-
menuTreeModel =
Gtk::ListStore::create(menuColumns);
menuTreeView.set_model(menuTreeModel);
//Gtk::TreeModel::Row row =
*(menuTreeModel-append());
//row[menuColumns.id] = 0;
//row[menuColumns.name] = ;
menuTreeView.append_column(ID,
menuColumns.id);
//(menuColumns.id).set_reorderable();
menuTreeView.append_column(Name,
menuColumns.name);
for(int i=0;i2;i++) {
Gtk::TreeView::Column* mColumn =
menuTreeView.get_column(i);
mColumn-set_reorderable();
}
menuWindow.set_policy(Gtk::POLICY_AUTOMATIC,
Gtk::POLICY_AUTOMATIC);
menuWindow.add(menuTreeView);
menuTreeView.signal_row_activated().connect(sigc::mem_fun(*this,
LanduseListDialog::menuTreeOnClicked) );
.
void
LanduseListDialog::setListToDisplay(std::vectorData*data)
{
if (data.empty()) {return;}
//menuTreeModel.clear();
Gtk::TreeModel::Row row;
for (uint i=0;idata.size();i++) {
row = *(menuTreeModel-append());
row[menuColumns.id] = data[i]-getid();
row[menuColumns.name] = data[i]-getname();
}
}
___
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
__
How much free photo storage do you get? Store your friends 'n family snaps for
FREE with Yahoo! Photos http://in.photos.yahoo.com
___
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list