2026-01-20 02:55:17 +01:00
|
|
|
/*
|
|
|
|
|
import {
|
|
|
|
|
Button,
|
|
|
|
|
VerticalBox,
|
|
|
|
|
LineEdit,
|
|
|
|
|
GridBox,
|
|
|
|
|
TabWidget,
|
|
|
|
|
Button,
|
|
|
|
|
} from "std-widgets.slint";
|
|
|
|
|
*/
|
2026-01-26 19:21:49 +01:00
|
|
|
import {
|
|
|
|
|
Button,
|
|
|
|
|
VerticalBox,
|
|
|
|
|
LineEdit,
|
|
|
|
|
GridBox,
|
|
|
|
|
StandardListView,
|
|
|
|
|
ListView,
|
|
|
|
|
ComboBox,
|
|
|
|
|
} from "std-widgets.slint";
|
2025-12-29 19:36:00 +01:00
|
|
|
|
2026-01-11 00:06:35 +01:00
|
|
|
// See https://github.com/slint-ui/slint/issues/4956 for issues with fonts.
|
|
|
|
|
import "../fonts/IBM_Plex_Mono/IBMPlexMono-Regular.ttf";
|
2026-01-26 19:21:49 +01:00
|
|
|
import { UserSitesView } from "user-sites-view.slint";
|
|
|
|
|
import { Style } from "globals.slint";
|
|
|
|
|
import { UsersView } from "users-view.slint";
|
|
|
|
|
import { LoginView } from "login-view.slint";
|
2026-01-11 00:06:35 +01:00
|
|
|
|
2026-01-20 02:55:17 +01:00
|
|
|
export enum AppState {
|
2026-01-26 19:21:49 +01:00
|
|
|
login,
|
|
|
|
|
user-sites,
|
|
|
|
|
users,
|
2026-01-20 02:55:17 +01:00
|
|
|
}
|
|
|
|
|
|
2025-12-29 19:36:00 +01:00
|
|
|
export component AppWindow inherits Window {
|
2026-01-26 19:21:49 +01:00
|
|
|
in property <string> dummy: "ÄÖÜÁÉÍÓÚÝŔŚĹŹĆŃĚĽŽŠČŘĎŤŇŮÅäöüáéíóúýŕśĺźćńěľžščřďťňůåß„“”‘’—–@&$%+=¡¿¢£$¥€²³¼½¬¤¦§©®™°´ˇ¨";
|
2026-01-11 00:06:35 +01:00
|
|
|
default-font-family: "IBM Plex Mono";
|
2025-12-31 22:24:26 +01:00
|
|
|
default-font-size: 16pt;
|
2026-01-01 03:07:13 +01:00
|
|
|
height: 368px;
|
|
|
|
|
width: 960px;
|
2026-01-26 19:21:49 +01:00
|
|
|
in property <AppState> app-state: AppState.login;
|
|
|
|
|
// Login View
|
|
|
|
|
callback login_pw_accepted <=> login_view.pw_accepted;
|
|
|
|
|
// Sites View
|
|
|
|
|
in property <[StandardListViewItem]> sites <=> user_sites_view.model;
|
|
|
|
|
callback site_pw_edited <=> user_sites_view.pw_edited;
|
|
|
|
|
callback site_pw_accepted <=> user_sites_view.pw_accepted;
|
|
|
|
|
// Sites View
|
|
|
|
|
in property <[StandardListViewItem]> usernames <=> users_view.model;
|
|
|
|
|
callback user_username_edited <=> users_view.pw_edited;
|
|
|
|
|
callback user_username_accepted <=> users_view.pw_accepted;
|
2026-01-01 03:07:13 +01:00
|
|
|
VerticalBox {
|
2025-12-31 22:24:26 +01:00
|
|
|
width: 960px;
|
2026-01-01 03:07:13 +01:00
|
|
|
height: 368px;
|
|
|
|
|
padding: 0px;
|
2026-01-01 03:22:43 +01:00
|
|
|
padding-top: 120px;
|
|
|
|
|
padding-bottom: 8px;
|
2026-01-01 03:07:13 +01:00
|
|
|
Rectangle {
|
2026-01-26 19:21:49 +01:00
|
|
|
height: 240px;
|
|
|
|
|
background: #00141d;
|
2026-01-01 03:49:59 +01:00
|
|
|
// For debugging bounds.
|
|
|
|
|
// border-color: #ffcf00;
|
|
|
|
|
// border-width: 1px;
|
2026-01-26 19:21:49 +01:00
|
|
|
login_view := LoginView {
|
|
|
|
|
visible: app-state == AppState.login;
|
|
|
|
|
}
|
2025-12-29 19:36:00 +01:00
|
|
|
|
2026-01-26 19:21:49 +01:00
|
|
|
user_sites_view := UserSitesView {
|
|
|
|
|
visible: app-state == AppState.user-sites;
|
|
|
|
|
}
|
2025-12-31 22:24:26 +01:00
|
|
|
|
2026-01-26 19:21:49 +01:00
|
|
|
users_view := UsersView {
|
|
|
|
|
visible: app-state == AppState.users;
|
2026-01-01 03:07:13 +01:00
|
|
|
}
|
2025-12-29 19:36:00 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|