diff --git a/source/app.d b/source/app.d index 71c1118..43f99ff 100644 --- a/source/app.d +++ b/source/app.d @@ -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){