src: add window

This commit is contained in:
0xMRTT 2023-05-02 00:29:32 +02:00
parent a037818ea5
commit eb61483fe4
Signed by: 0xMRTT
GPG Key ID: 19C1449A774028BD
2 changed files with 188 additions and 0 deletions

148
src/window.blp Normal file
View File

@ -0,0 +1,148 @@
using Gtk 4.0;
using Adw 1;
template ImaginerWindow : Adw.ApplicationWindow {
default-width: 700;
default-height: 600;
width-request: 300;
height-request: 300;
title: _("Imaginer");
Box {
orientation: vertical;
Adw.HeaderBar {
[end]
MenuButton {
icon-name: "open-menu-symbolic";
menu-model: main_menu;
tooltip-text: _("Main Menu");
}
}
Adw.Banner banner {
title: _("Error while querying the API");
revealed: false;
}
Adw.ToastOverlay toast {
Stack stack_imaginer {
transition-type: crossfade;
StackPage {
name: "stack_imagine";
child:
Adw.PreferencesPage {
Adw.PreferencesGroup {
Picture image {}
height-request: 192;
}
Adw.PreferencesGroup {
Adw.EntryRow prompt {
title: _("Prompt");
}
}
Adw.PreferencesGroup {
title: _("Options");
Adw.ActionRow {
title: _("Save Location");
activatable-widget: button_output;
Button button_output {
valign: center;
action-name: "app.choose_output";
Box {
spacing: 6;
Image {
icon-name: "document-open-symbolic";
}
Label label_output {
label: _("(None)");
}
}
}
}
Adw.ComboRow provider {
title: _("Provider");
model: provider_model;
}
Adw.PasswordEntryRow token {
title: _("Token");
}
}
Adw.PreferencesGroup {
Button button_imagine {
valign: center;
halign: center;
label: _("_Imagine");
tooltip-text: _("Save location is missing.");
use-underline: true;
sensitive: false;
action-name: "app.imagine";
styles [
"suggested-action",
"pill",
]
}
}
}
;
}
StackPage {
name: "stack_loading";
child:
Adw.StatusPage {
Spinner spinner_loading {
valign: center;
}
};
}
}
}
}
}
menu main_menu {
section {
item {
label: _("New Window");
action: "app.new_window";
}
}
section {
item {
label: _("Keyboard Shortcuts");
action: "win.show-help-overlay";
}
item {
label: _("About Imaginer");
action: "app.about";
}
}
}
Gtk.StringList provider_model{
strings [_("Stable Diffusion"), _("OpenAI"), _("Waifu Diffusion"), _("Open Journey"), _("Nitro Diffusion"), _("Analog Diffusion"), _("Portrait Plus")]
}

40
src/window.py Normal file
View File

@ -0,0 +1,40 @@
# window.py
#
# Copyright 2023 Me
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
from gi.repository import Adw
from gi.repository import Gtk
@Gtk.Template(resource_path='/io/github/ImaginerApp/Imaginer/window.ui')
class ImaginerWindow(Adw.ApplicationWindow):
__gtype_name__ = 'ImaginerWindow'
toast = Gtk.Template.Child()
stack_imaginer = Gtk.Template.Child()
spinner_loading = Gtk.Template.Child()
image = Gtk.Template.Child()
button_output = Gtk.Template.Child()
button_imagine = Gtk.Template.Child()
label_output = Gtk.Template.Child()
banner = Gtk.Template.Child()
prompt = Gtk.Template.Child()
token = Gtk.Template.Child()
provider = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)