Added feedback on successfully export

This commit is contained in:
2025-09-27 23:08:58 +02:00
parent 6fb3ffb680
commit 7a2100f535
2 changed files with 121 additions and 113 deletions

View File

@@ -1,5 +1,4 @@
using Adw;
using GLib;
using Logic;
using Models;
@@ -7,6 +6,9 @@ namespace Feladat1.UI.MainWindow;
public class MainWindow
{
private ToastOverlay toastOverlay;
private const string toastOverlayId = "toast_overlay";
private IUserService userService;
private const string windowId = "main_window";
@@ -88,6 +90,12 @@ public class MainWindow
{
throw new NullReferenceException(passwordLabelId);
}
toastOverlay = builder.GetObject(toastOverlayId) as ToastOverlay;
if (toastOverlay == null)
{
throw new NullReferenceException(toastOverlayId);
}
}
catch (NullReferenceException e)
{
@@ -112,13 +120,9 @@ public class MainWindow
int returnCode = userService.Create(userNameField.GetText(), emailField.GetText(), passwordField.GetText());
if (returnCode == 0)
{
ToastOverlay overlay = new ToastOverlay();
overlay.SetParent(Window);
Toast toast = new Toast();
toast.SetButtonLabel("New user exported successfully");
overlay.AddToast(toast);
toast.SetTitle("User data exported successfully");
toastOverlay.AddToast(toast);
User user = userService.Read();
emailLabel.Text_ = user.Email;

View File

@@ -6,101 +6,105 @@
<property name="default-width">400</property>
<property name="default-height">400</property>
<property name="content">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="header_bar">
<property name="title-widget">
<object class="AdwViewSwitcher">
<property name="stack">stack</property>
<property name="policy">wide</property>
</object>
</property>
</object>
</child>
<property name="content">
<object class="AdwViewStack" id="stack">
<property name="enable-transitions">True</property>
<child>
<object class="AdwViewStackPage">
<property name="name">save</property>
<property name="icon-name">document-save-as-symbolic</property>
<property name="title">Save</property>
<property name="child">
<object class="AdwPreferencesPage">
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwEntryRow" id="email">
<property name="title">Email</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="username">
<property name="title">Felhasználónév</property>
</object>
</child>
<child>
<object class="AdwPasswordEntryRow" id="password">
<property name="title">Jelszó</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="save_btn">
<style>
<class name="suggested-action" />
</style>
<property name="label">Exportálás</property>
<property name="valign">center</property>
<property name="halign">center</property>
</object>
</child>
<object class="AdwToastOverlay" id="toast_overlay">
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="header_bar">
<property name="title-widget">
<object class="AdwViewSwitcher">
<property name="stack">stack</property>
<property name="policy">wide</property>
</object>
</property>
</object>
</child>
<child>
<object class="AdwViewStackPage">
<property name="name">load</property>
<property name="title">Load</property>
<property name="icon-name">document-open-symbolic</property>
<property name="child">
<object class="AdwPreferencesPage">
<child>
<object class="AdwPreferencesGroup">
<property name="content">
<object class="AdwViewStack" id="stack">
<property name="enable-transitions">True</property>
<child>
<object class="AdwViewStackPage">
<property name="name">save</property>
<property name="icon-name">document-save-as-symbolic</property>
<property name="title">Save</property>
<property name="child">
<object class="AdwPreferencesPage">
<child>
<object class="AdwEntryRow" id="emailLabel">
<property name="title">Email</property>
<property name="editable">False</property>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwEntryRow" id="email">
<property name="title">Email</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="username">
<property name="title">Felhasználónév</property>
</object>
</child>
<child>
<object class="AdwPasswordEntryRow" id="password">
<property name="title">Jelszó</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwEntryRow" id="usernameLabel">
<property name="title">Felhasználónév</property>
<property name="editable">False</property>
<property name="activatable">False</property>
</object>
</child>
<child>
<object class="AdwPasswordEntryRow" id="passwordLabel">
<property name="title">Jelszó</property>
<property name="editable">False</property>
<object class="GtkButton" id="save_btn">
<style>
<class name="suggested-action" />
</style>
<property name="label">Exportálás</property>
<property name="valign">center</property>
<property name="halign">center</property>
</object>
</child>
</object>
</child>
</property>
</object>
</property>
</child>
<child>
<object class="AdwViewStackPage">
<property name="name">load</property>
<property name="title">Load</property>
<property name="icon-name">document-open-symbolic</property>
<property name="child">
<object class="AdwPreferencesPage">
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwEntryRow" id="emailLabel">
<property name="title">Email</property>
<property name="editable">False</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="usernameLabel">
<property name="title">Felhasználónév</property>
<property name="editable">False</property>
<property name="activatable">False</property>
</object>
</child>
<child>
<object class="AdwPasswordEntryRow" id="passwordLabel">
<property name="title">Jelszó</property>
<property name="editable">False</property>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</property>
<child type="bottom">
<object class="AdwViewSwitcherBar" id="switcher_bar">
<property name="stack">stack</property>
</object>
</child>
</object>
</property>
<child type="bottom">
<object class="AdwViewSwitcherBar" id="switcher_bar">
<property name="stack">stack</property>
</object>
</child>
</object>
</property>
</object>