Fix: segfault on column add

master
Crom (Thibaut CHARLES) 8 years ago
parent 61885f57aa
commit 24a4fc9500

@ -104,10 +104,11 @@ void main(string[] args)
tree.addOnColumnsChanged((TreeView tree){
auto store = cast(ListStore)tree.getModel();
if(store.getColumnType(GetColumnStoreIndex(tree, 0)) != GType.INT){
writeln("Position 0 is forbidden");
int si = GetColumnStoreIndex(tree, 0);
if(si>=0 && store.getColumnType(si) != GType.INT){
foreach(i ; 0..store.getNColumns()){
if(store.getColumnType(GetColumnStoreIndex(tree, i))==GType.INT){
si = GetColumnStoreIndex(tree, i);
if(si>=0 && store.getColumnType(si)==GType.INT){
tree.moveColumnAfter(tree.getColumn(i), null);
break;
}
@ -192,11 +193,6 @@ void main(string[] args)
auto store = new ListStore(types);
tree.setModel(store);
//setup cols
foreach(i ; 0..newColIndex+1){
tree.appendColumn(SetupColumn(tree, titles[i], i));
}
//Fill them
TreeIter oldit = new TreeIter();
TreeIter newit = new TreeIter();
@ -217,6 +213,11 @@ void main(string[] args)
}while(oldstore.iterNext(oldit));
}
//setup cols
foreach(i ; 0..newColIndex+1){
tree.appendColumn(SetupColumn(tree, titles[i], i));
}
oldstore.destroy();
});
@ -235,7 +236,10 @@ void main(string[] args)
}
int GetColumnStoreIndex(TreeView tree, int colindex){
return cast(int)(tree.getColumn(colindex).getData("colnumber"));
auto col = tree.getColumn(colindex);
if(col !is null)
return cast(int)(col.getData("colnumber"));
return -1;
}
void Save(ref TreeView tree){

Loading…
Cancel
Save