mirror of
https://github.com/slint-ui/slint.git
synced 2025-08-31 07:37:24 +00:00
73 lines
2.1 KiB
Text
73 lines
2.1 KiB
Text
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { VerticalBox } from "std-widgets.slint";
|
|
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { SelectionListView, SelectionListViewItem } from "../widgets/selection_list_view.slint";
|
|
export { SelectionListViewItem }
|
|
|
|
import { ActionButton } from "../widgets/action_button.slint";
|
|
import { Icons } from "../widgets/styling.slint";
|
|
|
|
export global TaskListAdapter {
|
|
in-out property <[SelectionListViewItem]> tasks: [
|
|
// this is only dummy data for the preview
|
|
{ text: "Contribute to Slint", description: "2024/11/11 13:13" },
|
|
{ text: "Open a discussion on GitHub", description: "2024/11/11 13:13" },
|
|
{ text: "Write some documentation", description: "2024/11/11 13:13" }
|
|
];
|
|
|
|
callback toggle-task-checked(/* index */ int);
|
|
callback remove-task(/* index */ int);
|
|
callback show-create-task();
|
|
|
|
// this is only a dummy implementation for the preview
|
|
toggle-task-checked(index) => {
|
|
root.tasks[index] = {
|
|
text: root.item(index).text,
|
|
checked: !root.item(index).checked,
|
|
description: root.item(index).description
|
|
};
|
|
}
|
|
|
|
function item(index: int) -> SelectionListViewItem {
|
|
root.tasks[index]
|
|
}
|
|
}
|
|
|
|
export component TaskListView {
|
|
VerticalBox {
|
|
padding-top: 0;
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
|
|
SelectionListView {
|
|
width: 100%;
|
|
model: TaskListAdapter.tasks;
|
|
accessible-label: @tr("List of Tasks");
|
|
|
|
toggle(index) => {
|
|
TaskListAdapter.toggle-task-checked(index);
|
|
}
|
|
|
|
remove(index) => {
|
|
TaskListAdapter.remove-task(index);
|
|
}
|
|
}
|
|
|
|
HorizontalLayout {
|
|
alignment: center;
|
|
|
|
ActionButton {
|
|
icon: Icons.add;
|
|
accessible-label: @tr("Create New Task");
|
|
|
|
clicked => {
|
|
TaskListAdapter.show-create-task();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|