Basic GUI client, login dialog, various comments fixes after copypaste.
Some checks failed
Linting and tests / Linting (push) Failing after 6s

This commit is contained in:
2025-09-13 09:23:47 +05:00
parent 91bc3acb08
commit 0c37f46b53
24 changed files with 507 additions and 56 deletions

View File

@@ -6,12 +6,12 @@ import (
"os"
"bunker/client/internal/application"
"bunker/client/internal/helpers"
"bunker/client/internal/services/core"
"bunker/client/internal/services/core/mainwindow/models"
"bunker/commons"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/lang"
"fyne.io/fyne/v2/widget"
)
@@ -19,15 +19,18 @@ import (
var _ = core.MainWindow(&mainWindow{})
type mainWindow struct {
app *application.Application
logger *slog.Logger
window fyne.Window
options core.Options
tabs *container.AppTabs
sysInfoHandlers map[string]*models.SysInfoHandler
app *application.Application
logger *slog.Logger
window fyne.Window
options core.Options
tabsWidget *fyne.Container
statusBarProgress *widget.ProgressBar
statusBarStatus *widget.Label
sysInfoHandlers map[string]*models.SysInfoHandler
tabs []*models.Tab
}
// Initialize инициализирует сервис.
// Initialize initializes service.
func Initialize(app *application.Application) error {
mainW := &mainWindow{
app: app,
@@ -70,20 +73,20 @@ func (m *mainWindow) Initialize() error {
m.window = m.app.Fyne().NewWindow(lang.L("window.title"))
// ToDo: сохранение и восстановление размеров окна.
//nolint:mnd
m.window.Resize(fyne.NewSize(800, 650))
m.window.Resize(fyne.NewSize(1100, 800))
m.initializeMenu()
var mainWindowCanvas fyne.CanvasObject
if helpers.IsMobile() {
mainWindowCanvas = m.initializeMainWindowMobile()
} else {
mainWindowCanvas = m.initializeMainWindowDesktop()
}
m.window.SetContent(mainWindowCanvas)
m.window.SetCloseIntercept(m.stopApp)
welcomeLabel := widget.NewLabel(lang.L("window.lorem_ipsum.text"))
welcomeLabel.Wrapping = fyne.TextWrapWord
m.tabs = container.NewAppTabs(
container.NewTabItem(lang.L("window.lorem_ipsum.tab_name"), welcomeLabel),
)
m.window.SetContent(m.tabs)
return nil
}