-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMultiSelectDialog.x
More file actions
86 lines (70 loc) · 2.57 KB
/
MultiSelectDialog.x
File metadata and controls
86 lines (70 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//xlang Source, Name:MultiSelectDialog.x
//Date: Sat Apr 04:24:36 2020
class MultiSelectDialog : QDialog{
InputDialog.onInputListener listener;
public MultiSelectDialog(InputDialog.onInputListener intputlis, String [] items){
listener = intputlis;
displayItems = items;
}
String [] displayItems;
QPushButton btnOk, btnCancel;
QTreeWidget treeWidget;
public void onOk(){
long item = treeWidget.getSelItem();
int id = -1;
if (item != 0){
id = treeWidget.getItemTag(item,0);
}
if (listener.onSelectOk(id)){
done(1);
}
}
public void onAttach()override{
setWindowFlags(Constant.CustomizeWindowHint | Constant.WindowMinMaxButtonsHint | Constant.WindowCloseButtonHint);
btnOk = (QPushButton)attachByName(new QPushButton(), "btnOk");
btnCancel = (QPushButton)attachByName(new QPushButton(), "btnCancel");
treeWidget = (QTreeWidget)attachByName(new QTreeWidget(), "treeWidget");
treeWidget.setOnTreeViewItemEvent(new onTreeViewItemEvent(){
void onItemDoubleClicked(QTreeWidget,long item, int column) {
onOk();
}
});
btnOk.setOnClickListener(
new onClickListener(){
void onClick(QObject obj, bool checked)override{
onOk();
}
});
btnCancel.setOnClickListener(
new onClickListener(){
void onClick(QObject obj, bool checked)override{
if (listener.onInputCancel()){
done(0);
}
}
});
String defid = listener.getDefault();
int defnid = 0;
if (defid != nilptr){
defnid = defid.parseInt();
}
for (int i = 0; i < displayItems.length; i++){
long hi = treeWidget.addItem(nilptr,displayItems[i]);
treeWidget.setItemTag(hi,0,i);
if (defnid == i){
treeWidget.setItemSelected(hi,true);
}
}
setWindowTitle(listener.getTitle());
setModal(true);
}
public static int requestSelect(InputDialog.onInputListener lis, String [] items){
QDialog newDlg = new QDialog();
if (newDlg.load(UIManager.getUIData(__xPackageResource("ui/mulsel.ui"))) == false){
return 0;
}
MultiSelectDialog wizard = new MultiSelectDialog(lis, items);
wizard.attach(newDlg);
return wizard.exec();
}
};