Listview groups

I'm playing with listview groups in 12.20.8 and I can only add items to the first group created. The following test button opens a dialog with a listview, adds a column, adds 2 groups (Files and Folders) and then adds 3 items to each group. The items are all added to the Folder group. What am I doing wrong please?

Group Test.dcf (3.2 KB)

Script

function OnClick(clickData)
{
	var dlg = DOpus.Dlg();
	dlg.title = "Test";
	dlg.template = "dialog1";
	dlg.detach = true;
	dlg.Create();

	dlg.Control("list").columns.AddColumn("Col 1");
	dlg.Control("list").AddGroup("Folders", 1, "c");
	dlg.Control("list").AddGroup("Files", 2, "c");
	dlg.Control("list").EnableGroupView(true);

	var i = dlg.Control("list").AddItem("Folder 1");
	dlg.Control("list").GetItemAt(i).group = 1;
	var i = dlg.Control("list").AddItem("Folder 2");
	dlg.Control("list").GetItemAt(i).group = 1;
	var i = dlg.Control("list").AddItem("Folder 3");
	dlg.Control("list").GetItemAt(i).group = 1;

	var i = dlg.Control("list").AddItem("File 1");
	dlg.Control("list").GetItemAt(i).group = 2;
	var i = dlg.Control("list").AddItem("File 2");
	dlg.Control("list").GetItemAt(i).group = 2;
	var i = dlg.Control("list").AddItem("File 3");
	dlg.Control("list").GetItemAt(i).group = 2;

	dlg.Control("list").columns.AutoSize();

	dlg.Show();
	while (true) {
        var msg = dlg.GetMsg();
        if (!msg.result) break;
    }
}

Yes, you're right - a bug. It won't recognise a group other than ID 1.

Luckily there's another way you can do it for now (which I just realised I forgot to document :face_with_raised_eyebrow:) - by passing the group ID when you add the item:

function OnClick(clickData)
{
	var dlg = DOpus.Dlg();
	dlg.title = "Test";
	dlg.template = "dialog1";
	dlg.detach = true;
	dlg.Create();

	dlg.Control("list").columns.AddColumn("Col 1");
	dlg.Control("list").AddGroup("Folders", 1, "c");
	dlg.Control("list").AddGroup("Files", 2, "c");
	dlg.Control("list").EnableGroupView(true);

	var i = dlg.Control("list").AddItem("Folder 1", 0, 1);
	var i = dlg.Control("list").AddItem("Folder 2", 0, 1);
	var i = dlg.Control("list").AddItem("Folder 3", 0, 1);

	var i = dlg.Control("list").AddItem("File 1", 0, 2);
	var i = dlg.Control("list").AddItem("File 2", 0, 2);
	var i = dlg.Control("list").AddItem("File 3", 0, 2);

	dlg.Control("list").columns.AutoSize();

	dlg.Show();
	while (true) {
        var msg = dlg.GetMsg();
        if (!msg.result) break;
    }
}

Thanks. That's got it working.