update to libadwaita 1.5

This commit is contained in:
ranfdev
2024-02-12 17:50:46 +01:00
parent fe3ae28464
commit 75c59dfdb8
9 changed files with 145 additions and 150 deletions

142
Cargo.lock generated
View File

@ -471,23 +471,22 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]]
name = "cairo-rs"
version = "0.18.5"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
checksum = "bc1c415b7088381c53c575420899c34c9e6312df5ac5defd05614210e9fd6e1b"
dependencies = [
"bitflags 2.4.1",
"cairo-sys-rs",
"glib",
"libc",
"once_cell",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
version = "0.18.2"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
checksum = "75b6a5fefce2eadb8333e3c604ac964ba6573ec4f28bdd17f67032c4a2831831"
dependencies = [
"glib-sys",
"libc",
@ -1015,22 +1014,21 @@ dependencies = [
[[package]]
name = "gdk-pixbuf"
version = "0.18.5"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
checksum = "c311c47800051b87de1335e8792774d7cec551c91a0a3d109ab21d76b36f208f"
dependencies = [
"gdk-pixbuf-sys",
"gio",
"glib",
"libc",
"once_cell",
]
[[package]]
name = "gdk-pixbuf-sys"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
dependencies = [
"gio-sys",
"glib-sys",
@ -1041,9 +1039,9 @@ dependencies = [
[[package]]
name = "gdk4"
version = "0.7.3"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
checksum = "6771942f85a2beaa220c64739395e4401b9fab4a52aba9b503fa1e6ed4d4d806"
dependencies = [
"cairo-rs",
"gdk-pixbuf",
@ -1056,9 +1054,9 @@ dependencies = [
[[package]]
name = "gdk4-sys"
version = "0.7.2"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
checksum = "1eb95854fab65072023a7814434f003db571d6e45c287c0b0c540c1c78bdf6ae"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -1129,9 +1127,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
[[package]]
name = "gio"
version = "0.18.4"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
checksum = "b3d1aaa2d926710a27f3b35822806b1513b393b71174dd2601c9d02fdab0cb82"
dependencies = [
"futures-channel",
"futures-core",
@ -1140,7 +1138,6 @@ dependencies = [
"gio-sys",
"glib",
"libc",
"once_cell",
"pin-project-lite",
"smallvec",
"thiserror",
@ -1148,22 +1145,22 @@ dependencies = [
[[package]]
name = "gio-sys"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
dependencies = [
"glib-sys",
"gobject-sys",
"libc",
"system-deps",
"winapi",
"windows-sys 0.52.0",
]
[[package]]
name = "glib"
version = "0.18.5"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
checksum = "170ee82b9b44b3b5fd1cf4971d6cf0eadec38303bb84c7bcc4e6b95a18934e71"
dependencies = [
"bitflags 2.4.1",
"futures-channel",
@ -1177,20 +1174,18 @@ dependencies = [
"gobject-sys",
"libc",
"memchr",
"once_cell",
"smallvec",
"thiserror",
]
[[package]]
name = "glib-macros"
version = "0.18.5"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
checksum = "2ff52fff7e4d1bb8598ae744e9bb90c8c76271712483c3f0ce931bee9814de85"
dependencies = [
"heck",
"proc-macro-crate 2.0.1",
"proc-macro-error",
"proc-macro-crate 3.1.0",
"proc-macro2",
"quote",
"syn 2.0.46",
@ -1198,9 +1193,9 @@ dependencies = [
[[package]]
name = "glib-sys"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
dependencies = [
"libc",
"system-deps",
@ -1220,9 +1215,9 @@ dependencies = [
[[package]]
name = "gobject-sys"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
dependencies = [
"glib-sys",
"libc",
@ -1231,9 +1226,9 @@ dependencies = [
[[package]]
name = "graphene-rs"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
checksum = "147827e4f506f8073ac3ec5b28cc2255bdf3abc30f5b4e101a80506eebe11d2c"
dependencies = [
"glib",
"graphene-sys",
@ -1242,9 +1237,9 @@ dependencies = [
[[package]]
name = "graphene-sys"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
dependencies = [
"glib-sys",
"libc",
@ -1254,9 +1249,9 @@ dependencies = [
[[package]]
name = "gsk4"
version = "0.7.3"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
checksum = "0e8ce8dee0fd87a11002214b1204ff18c9272fbd530408f0884a0f9b25dc31de"
dependencies = [
"cairo-rs",
"gdk4",
@ -1269,9 +1264,9 @@ dependencies = [
[[package]]
name = "gsk4-sys"
version = "0.7.3"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
checksum = "2660a652da5b662d43924df19ba40d73f015ed427329ef51d2b1360a4e0dc0e4"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
@ -1285,9 +1280,9 @@ dependencies = [
[[package]]
name = "gtk4"
version = "0.7.3"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
checksum = "7d26ffa3ec6316ccaa1df62d3e7f5bae1637c0acbb43f250fabef38319f73c64"
dependencies = [
"cairo-rs",
"field-offset",
@ -1306,12 +1301,12 @@ dependencies = [
[[package]]
name = "gtk4-macros"
version = "0.7.2"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
checksum = "c8b86439e9896f6f3f47c3d8077c5c8205174078760afdabd9098a8e9e937d97"
dependencies = [
"anyhow",
"proc-macro-crate 1.3.1",
"proc-macro-crate 3.1.0",
"proc-macro-error",
"proc-macro2",
"quote",
@ -1320,9 +1315,9 @@ dependencies = [
[[package]]
name = "gtk4-sys"
version = "0.7.3"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
checksum = "2abc0a6d356d59a3806021829ce6ed3e70bba3509b41a535fedcb09fae13fbc0"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
@ -1610,9 +1605,9 @@ dependencies = [
[[package]]
name = "libadwaita"
version = "0.5.3"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
dependencies = [
"gdk-pixbuf",
"gdk4",
@ -1626,9 +1621,9 @@ dependencies = [
[[package]]
name = "libadwaita-sys"
version = "0.5.3"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
dependencies = [
"gdk4-sys",
"gio-sys",
@ -2084,22 +2079,21 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "pango"
version = "0.18.3"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
checksum = "78d7f779b957728c74fd1a060dfa6d89a0bea792ebc50cc2da80e4e87282d69e"
dependencies = [
"gio",
"glib",
"libc",
"once_cell",
"pango-sys",
]
[[package]]
name = "pango-sys"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
dependencies = [
"glib-sys",
"gobject-sys",
@ -2177,9 +2171,9 @@ dependencies = [
[[package]]
name = "pkg-config"
version = "0.3.28"
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
[[package]]
name = "polling"
@ -2229,12 +2223,11 @@ dependencies = [
[[package]]
name = "proc-macro-crate"
version = "2.0.1"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
dependencies = [
"toml_datetime",
"toml_edit 0.20.2",
"toml_edit 0.21.1",
]
[[package]]
@ -2678,9 +2671,9 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.11.2"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
[[package]]
name = "socket2"
@ -2704,9 +2697,9 @@ dependencies = [
[[package]]
name = "sourceview5"
version = "0.7.1"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88c5f976a113e947bc5ec67758b2960c0db4ca76f80fb410d7cd86cd456d9ee5"
checksum = "9f0bf70f2f1ac4624af22056f9c4cf58dccff73dafc7207b46fbd3df7b57410f"
dependencies = [
"futures-channel",
"futures-core",
@ -2722,9 +2715,9 @@ dependencies = [
[[package]]
name = "sourceview5-sys"
version = "0.7.1"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29637cccd56075a37ba72c0cc8b8d599dbc1d857e30dadea97eaacbc29b7fd46"
checksum = "eac236ad7ce6dad2b819ced8b68b5a1cf4d968aa301cb9a7692470eb21f657be"
dependencies = [
"gdk-pixbuf-sys",
"gdk4-sys",
@ -2981,9 +2974,9 @@ dependencies = [
[[package]]
name = "toml_datetime"
version = "0.6.3"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
dependencies = [
"serde",
]
@ -3012,6 +3005,17 @@ dependencies = [
"winnow",
]
[[package]]
name = "toml_edit"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "tower-service"
version = "0.3.2"

View File

@ -15,12 +15,12 @@ members = [
[dependencies]
ntfy-daemon = { path = "./ntfy-daemon" }
gettext-rs = { version = "0.7", features = ["gettext-system"] }
gtk = { version = "0.7", package = "gtk4", features = ["gnome_45"] }
gsv = { package = "sourceview5", version = "0.7" }
gtk = { version = "0.8", package = "gtk4", features = ["gnome_45"] }
gsv = { package = "sourceview5", version = "0.8" }
once_cell = "1.14"
tracing = "0.1.37"
tracing-subscriber = "0.3"
adw = { version = "0.5", package = "libadwaita", features = ["v1_4"] }
adw = { version = "0.6", package = "libadwaita", features = ["v1_5"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
capnp = "0.18.0"

View File

@ -18,3 +18,6 @@ https://ntfy.sh client application to receive everyday's notifications.
The code is split between the GUI and the underlying ntfy-daemon.
## How to run
Use gnome-builder to clone and run the project. Note: after clicking the "run"
button a terminal may appear at the bottom: run the command "notify" in it.

View File

@ -1,7 +1,7 @@
{
"id": "com.ranfdev.Notify.Devel",
"runtime": "org.gnome.Platform",
"runtime-version": "45",
"runtime-version": "master",
"sdk": "org.gnome.Sdk",
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.rust-stable",

View File

@ -1,10 +1,8 @@
using Gtk 4.0;
using Adw 1;
template $SubscriptionInfoDialog : Adw.Window {
modal: true;
template $SubscriptionInfoDialog : Adw.Dialog {
title: "Subscription Info";
width-request: 240;
Adw.ToolbarView {
[top]
Adw.HeaderBar {}

View File

@ -41,7 +41,7 @@ menu subscription_menu {
}
template $NotifyWindow : Adw.ApplicationWindow {
width-request: 240;
width-request: 360;
height-request: 360;
Adw.Breakpoint {
condition ("max-width: 640sp")

View File

@ -3,11 +3,11 @@ use std::cell::RefCell;
use adw::prelude::*;
use adw::subclass::prelude::*;
use glib::once_cell::sync::Lazy;
use glib::subclass::Signal;
use gtk::gio;
use gtk::glib;
use ntfy_daemon::models;
use once_cell::sync::Lazy;
#[derive(Default, Debug, Clone)]
pub struct Widgets {
@ -28,14 +28,13 @@ mod imp {
impl ObjectSubclass for AddSubscriptionDialog {
const NAME: &'static str = "AddSubscriptionDialog";
type Type = super::AddSubscriptionDialog;
type ParentType = adw::Window;
type ParentType = adw::Dialog;
fn class_init(klass: &mut Self::Class) {
klass.add_binding_action(
gtk::gdk::Key::Escape,
gtk::gdk::ModifierType::empty(),
"window.close",
None,
);
klass.install_action("default.activate", None, |this, _, _| {
this.emit_subscribe_request();
@ -51,13 +50,12 @@ mod imp {
}
}
impl WidgetImpl for AddSubscriptionDialog {}
impl WindowImpl for AddSubscriptionDialog {}
impl AdwWindowImpl for AddSubscriptionDialog {}
impl AdwDialogImpl for AddSubscriptionDialog {}
}
glib::wrapper! {
pub struct AddSubscriptionDialog(ObjectSubclass<imp::AddSubscriptionDialog>)
@extends gtk::Widget, gtk::Window, adw::Window,
@extends gtk::Widget, adw::Dialog,
@implements gio::ActionMap, gio::ActionGroup, gtk::Root;
}
@ -75,72 +73,67 @@ impl AddSubscriptionDialog {
fn build_ui(&self) {
let imp = self.imp();
let obj = self.clone();
obj.set_title(Some("Subscribe To Topic"));
obj.set_modal(true);
obj.set_default_width(360);
obj.set_title("Subscribe To Topic");
relm4_macros::view! {
toolbar_view = adw::ToolbarView {
add_top_bar: &adw::HeaderBar::new(),
#[wrap(Some)]
set_content = &adw::Clamp {
#[wrap(Some)]
set_child = &gtk::Box {
set_orientation: gtk::Orientation::Vertical,
set_spacing: 12,
set_margin_end: 12,
set_margin_start: 12,
set_margin_top: 12,
set_margin_bottom: 12,
append = &gtk::Label {
add_css_class: "dim-label",
set_label: "Topics may not be password-protected, so choose a name that's not easy to guess. \
Once subscribed, you can PUT/POST notifications.",
set_wrap: true,
set_xalign: 0.0,
set_wrap_mode: gtk::pango::WrapMode::WordChar
},
append = &gtk::ListBox {
add_css_class: "boxed-list",
append: topic_entry = &adw::EntryRow {
set_title: "Topic",
set_activates_default: true,
add_suffix = &gtk::Button {
set_icon_name: "dice3-symbolic",
set_tooltip_text: Some("Generate name"),
set_valign: gtk::Align::Center,
add_css_class: "flat",
connect_clicked[topic_entry] => move |_| {
use rand::distributions::Alphanumeric;
use rand::{thread_rng, Rng};
let mut rng = thread_rng();
let chars: String = (0..10).map(|_| rng.sample(Alphanumeric) as char).collect();
topic_entry.set_text(&chars);
}
}
},
append: server_expander = &adw::ExpanderRow {
set_title: "Custom server...",
set_enable_expansion: imp.init_custom_server.get().is_some(),
set_expanded: imp.init_custom_server.get().is_some(),
set_show_enable_switch: true,
add_row: server_entry = &adw::EntryRow {
set_title: "Server",
set_text: imp.init_custom_server.get().map(|x| x.as_str()).unwrap_or(""),
set_content = &gtk::Box {
set_orientation: gtk::Orientation::Vertical,
set_spacing: 12,
set_margin_end: 12,
set_margin_start: 12,
set_margin_top: 12,
set_margin_bottom: 12,
append = &gtk::Label {
add_css_class: "dim-label",
set_label: "Topics may not be password-protected, so choose a name that's not easy to guess. \
Once subscribed, you can PUT/POST notifications.",
set_wrap: true,
set_xalign: 0.0,
set_wrap_mode: gtk::pango::WrapMode::WordChar
},
append = &gtk::ListBox {
add_css_class: "boxed-list",
append: topic_entry = &adw::EntryRow {
set_title: "Topic",
set_activates_default: true,
add_suffix = &gtk::Button {
set_icon_name: "dice3-symbolic",
set_tooltip_text: Some("Generate name"),
set_valign: gtk::Align::Center,
add_css_class: "flat",
connect_clicked[topic_entry] => move |_| {
use rand::distributions::Alphanumeric;
use rand::{thread_rng, Rng};
let mut rng = thread_rng();
let chars: String = (0..10).map(|_| rng.sample(Alphanumeric) as char).collect();
topic_entry.set_text(&chars);
}
}
},
append: sub_btn = &gtk::Button {
set_label: "Subscribe",
add_css_class: "suggested-action",
add_css_class: "pill",
set_halign: gtk::Align::Center,
set_sensitive: false,
connect_clicked[obj] => move |_| {
obj.emit_subscribe_request();
append: server_expander = &adw::ExpanderRow {
set_title: "Custom server...",
set_enable_expansion: imp.init_custom_server.get().is_some(),
set_expanded: imp.init_custom_server.get().is_some(),
set_show_enable_switch: true,
add_row: server_entry = &adw::EntryRow {
set_title: "Server",
set_text: imp.init_custom_server.get().map(|x| x.as_str()).unwrap_or(""),
}
}
},
append: sub_btn = &gtk::Button {
set_label: "Subscribe",
add_css_class: "suggested-action",
add_css_class: "pill",
set_halign: gtk::Align::Center,
set_sensitive: false,
connect_clicked[obj] => move |_| {
obj.emit_subscribe_request();
}
}
},
},
}
@ -175,7 +168,8 @@ impl AddSubscriptionDialog {
sub_btn,
});
obj.set_content(Some(&toolbar_view));
obj.set_content_width(480);
obj.set_child(Some(&toolbar_view));
}
pub fn subscription(&self) -> Result<models::Subscription, Vec<ntfy_daemon::Error>> {
let w = { self.imp().widgets.borrow().clone() };

View File

@ -26,7 +26,7 @@ mod imp {
impl ObjectSubclass for SubscriptionInfoDialog {
const NAME: &'static str = "SubscriptionInfoDialog";
type Type = super::SubscriptionInfoDialog;
type ParentType = adw::Window;
type ParentType = adw::Dialog;
fn class_init(klass: &mut Self::Class) {
klass.bind_template();
@ -34,7 +34,6 @@ mod imp {
gtk::gdk::Key::Escape,
gtk::gdk::ModifierType::empty(),
"window.close",
None,
);
}
@ -73,13 +72,12 @@ mod imp {
}
}
impl WidgetImpl for SubscriptionInfoDialog {}
impl WindowImpl for SubscriptionInfoDialog {}
impl AdwWindowImpl for SubscriptionInfoDialog {}
impl AdwDialogImpl for SubscriptionInfoDialog {}
}
glib::wrapper! {
pub struct SubscriptionInfoDialog(ObjectSubclass<imp::SubscriptionInfoDialog>)
@extends gtk::Widget, gtk::Window, adw::Window,
@extends gtk::Widget, adw::Dialog,
@implements gio::ActionMap, gio::ActionGroup, gtk::Root;
}

View File

@ -21,7 +21,7 @@ pub trait SpawnWithToast {
);
}
impl<W: glib::IsA<gtk::Widget>> SpawnWithToast for W {
impl<W: IsA<gtk::Widget>> SpawnWithToast for W {
fn spawn_with_near_toast<T, R: std::fmt::Display>(
&self,
f: impl Future<Output = Result<T, R>> + 'static,
@ -125,8 +125,7 @@ mod imp {
let this = self.obj().clone();
let dialog =
AddSubscriptionDialog::new(this.selected_subscription().map(|x| x.server()));
dialog.set_transient_for(Some(&self.obj().clone()));
dialog.present();
dialog.present(&self.obj().clone());
let dc = dialog.clone();
dialog.connect_local("subscribe-request", true, move |_| {
@ -272,8 +271,7 @@ impl NotifyWindow {
}
fn show_subscription_info(&self) {
let sub = SubscriptionInfoDialog::new(self.selected_subscription().unwrap());
sub.set_transient_for(Some(self));
sub.present();
sub.present(self);
}
fn connect_items_changed(&self) {
let this = self.clone();
@ -448,7 +446,7 @@ impl NotifyWindow {
chip
}
fn build_subscription_row(sub: &Subscription) -> impl glib::IsA<gtk::Widget> {
fn build_subscription_row(sub: &Subscription) -> impl IsA<gtk::Widget> {
let b = gtk::Box::builder().spacing(4).build();
let label = gtk::Label::builder()