mirror of
https://gitlab.gnome.org/World/Authenticator.git
synced 2025-03-04 08:44:40 +01:00
Bump gtk4-rs and replace more deprecated APIs
This commit is contained in:
parent
898222a7a5
commit
cb2b5826e5
12 changed files with 71 additions and 67 deletions
50
Cargo.lock
generated
50
Cargo.lock
generated
|
@ -1110,9 +1110,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gdk4"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "272db1bbb9b152ea1fea946f9d464085c86cfe14cafba450d7defa433caff8ec"
|
||||
checksum = "bb2181330ebf9d091f8ea7fed6877f7adc92114128592e1fdaeb1da28e0d01e9"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
|
@ -1126,9 +1126,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gdk4-sys"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "45b571f36b889ab529b2e173248dafe83d75c703f5685b9845e490c7994ae309"
|
||||
checksum = "de55cb49432901fe2b3534177fa06844665b9b0911d85d8601a8d8b88b7791db"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk-pixbuf-sys",
|
||||
|
@ -1143,9 +1143,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gdk4-wayland"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dee24d5a659ecca2170642c0db211446e7fdbc7ebcf1e63be99405df6f541c15"
|
||||
checksum = "b9998dedfee371c33356809f24790a1593c4751367ace7f66256dd759173701a"
|
||||
dependencies = [
|
||||
"gdk4",
|
||||
"gdk4-wayland-sys",
|
||||
|
@ -1156,9 +1156,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gdk4-wayland-sys"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dbb03e044a5f6ae9270823a8ef89739808845120d47b2be83de785e044c83386"
|
||||
checksum = "7017f59dc8c3a0c25756d617be038540642be64b9f229a531507b8f8e3e645ea"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"libc",
|
||||
|
@ -1375,9 +1375,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gsk4"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4053293b79099bdfecd9ab0d811d118a0eafce613dfe0b26075419d955f1f652"
|
||||
checksum = "591239f5c52ca803b222124ac9c47f230cd180cee9b114c4d672e4a94b74f491"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
|
@ -1391,9 +1391,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gsk4-sys"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08e0642edffdb35028d7d67b830678da98844216b6442e11eee52c91ad2a6dc2"
|
||||
checksum = "195a63f0be42529f98c3eb3bae0decfd0428ba2cc683b3e20ced88f340904ec5"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk4-sys",
|
||||
|
@ -1643,9 +1643,9 @@ checksum = "da5bf7748fd4cd0b2490df8debcc911809dbcbee4ece9531b96c29a9c729de5a"
|
|||
|
||||
[[package]]
|
||||
name = "gtk4"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8954da3659ff1cb35aa95110021b33fadcd8e306e8fe41f32146ffa009665a79"
|
||||
checksum = "fd89dba65def483a233dc4fdd3f3dab01576e3d83f80f6c9303ebe421661855e"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
|
@ -1666,9 +1666,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gtk4-macros"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "58138cd3c595e04f82df050390aa7d2bd093795ce569e5f1d49eb496ef67fe7b"
|
||||
checksum = "832687a415d9d8bc11fe9c17dda1bf13ee262c41b995dd4df1d1cce33cead405"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"proc-macro-crate",
|
||||
|
@ -1680,9 +1680,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gtk4-sys"
|
||||
version = "0.5.4"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ef29e09e055b2f2550eb1882caa6961a1ae3c971a70bcb25cb9d5ab6cbd63821"
|
||||
checksum = "e370564e3fdacff7cffc99f7366b6a4689feb44e819d3ccee598a9a215b71605"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk-pixbuf-sys",
|
||||
|
@ -2265,9 +2265,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "nom"
|
||||
version = "7.1.1"
|
||||
version = "7.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
|
||||
checksum = "e5507769c4919c998e69e49c839d9dc6e693ede4cc4290d6ad8b41d4f09c548c"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"minimal-lexical",
|
||||
|
@ -2411,9 +2411,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.16.0"
|
||||
version = "1.17.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
|
||||
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
|
||||
|
||||
[[package]]
|
||||
name = "oo7"
|
||||
|
@ -2514,9 +2514,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "ordered-stream"
|
||||
version = "0.1.2"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "01ca8c99d73c6e92ac1358f9f692c22c0bfd9c4701fa086f5d365c0d4ea818ea"
|
||||
checksum = "d4eb9ba3f3e42dbdd3b7b122de5ca169c81e93d561eb900da3a8c99bcfcf381a"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"pin-project-lite",
|
||||
|
@ -4042,7 +4042,7 @@ dependencies = [
|
|||
"hex",
|
||||
"nix 0.25.1",
|
||||
"once_cell",
|
||||
"ordered-stream 0.1.2",
|
||||
"ordered-stream 0.1.3",
|
||||
"rand",
|
||||
"serde",
|
||||
"serde_repr",
|
||||
|
|
|
@ -106,7 +106,7 @@ mod imp {
|
|||
app.set_can_be_locked(state);
|
||||
}));
|
||||
preferences.set_transient_for(Some(&window));
|
||||
preferences.show();
|
||||
preferences.present();
|
||||
}).build();
|
||||
|
||||
// About
|
||||
|
@ -147,7 +147,7 @@ mod imp {
|
|||
window.providers().refilter();
|
||||
}));
|
||||
providers.set_transient_for(Some(&window));
|
||||
providers.show();
|
||||
providers.present();
|
||||
})
|
||||
.build();
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ impl AccountAddDialog {
|
|||
fn set_provider(&self, provider: Option<Provider>) {
|
||||
let imp = self.imp();
|
||||
if let Some(provider) = provider {
|
||||
imp.more_list.show();
|
||||
imp.more_list.set_visible(true);
|
||||
imp.provider_entry.set_text(&provider.name());
|
||||
imp.period_label.set_text(&provider.period().to_string());
|
||||
|
||||
|
@ -306,12 +306,12 @@ impl AccountAddDialog {
|
|||
|
||||
match provider.method() {
|
||||
OTPMethod::TOTP | OTPMethod::Steam => {
|
||||
imp.counter_row.hide();
|
||||
imp.period_row.show();
|
||||
imp.counter_row.set_visible(false);
|
||||
imp.period_row.set_visible(true);
|
||||
}
|
||||
OTPMethod::HOTP => {
|
||||
imp.counter_row.show();
|
||||
imp.period_row.hide();
|
||||
imp.counter_row.set_visible(true);
|
||||
imp.period_row.set_visible(false);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ impl AccountDetailsPage {
|
|||
}),
|
||||
);
|
||||
|
||||
dialog.show();
|
||||
dialog.present();
|
||||
}
|
||||
|
||||
pub fn set_account(&self, account: &Account) {
|
||||
|
@ -211,25 +211,25 @@ impl AccountDetailsPage {
|
|||
imp.method_label
|
||||
.set_text(&provider.method().to_locale_string());
|
||||
if provider.method() == OTPMethod::HOTP {
|
||||
imp.counter_row.show();
|
||||
imp.period_row.hide();
|
||||
imp.counter_row.set_visible(true);
|
||||
imp.period_row.set_visible(false);
|
||||
} else {
|
||||
imp.counter_row.hide();
|
||||
imp.period_row.show();
|
||||
imp.counter_row.set_visible(false);
|
||||
imp.period_row.set_visible(true);
|
||||
imp.period_label.set_text(&provider.period().to_string());
|
||||
}
|
||||
imp.digits_label.set_text(&provider.digits().to_string());
|
||||
if let Some(ref help) = provider.help_url() {
|
||||
imp.help_row.set_uri(help);
|
||||
imp.help_row.show();
|
||||
imp.help_row.set_visible(true);
|
||||
} else {
|
||||
imp.help_row.hide();
|
||||
imp.help_row.set_visible(false);
|
||||
}
|
||||
if let Some(ref website) = provider.website() {
|
||||
imp.website_row.set_uri(website);
|
||||
imp.website_row.show();
|
||||
imp.website_row.set_visible(true);
|
||||
} else {
|
||||
imp.website_row.hide();
|
||||
imp.website_row.set_visible(false);
|
||||
}
|
||||
imp.selected_provider.replace(Some(provider));
|
||||
}
|
||||
|
|
|
@ -156,8 +156,7 @@ impl CameraPaintable {
|
|||
{
|
||||
gst::ElementFactory::make("glsinkbin")
|
||||
.property("sink", &sink)
|
||||
.build()
|
||||
.unwrap()
|
||||
.build()?
|
||||
} else {
|
||||
let bin = gst::Bin::default();
|
||||
let convert = gst::ElementFactory::make_with_name("videoconvert", None)?;
|
||||
|
|
|
@ -30,7 +30,7 @@ mod imp {
|
|||
|
||||
obj.set_spacing(6);
|
||||
self.checkmark.set_icon_name(Some("object-select-symbolic"));
|
||||
self.checkmark.hide();
|
||||
self.checkmark.set_visible(false);
|
||||
|
||||
obj.append(&self.label);
|
||||
obj.append(&self.checkmark);
|
||||
|
|
|
@ -50,13 +50,13 @@ impl ErrorRevealer {
|
|||
pub fn popup(&self, text: &str) {
|
||||
let imp = self.imp();
|
||||
imp.label.set_text(text);
|
||||
self.show();
|
||||
self.set_visible(true);
|
||||
imp.revealer.set_reveal_child(true);
|
||||
glib::timeout_add_seconds_local(
|
||||
2,
|
||||
glib::clone!(@weak self as error_revealer => @default-return glib::Continue(false), move || {
|
||||
error_revealer.imp().revealer.set_reveal_child(false);
|
||||
error_revealer.hide();
|
||||
error_revealer.set_visible(false);
|
||||
glib::Continue(false)
|
||||
}),
|
||||
);
|
||||
|
|
|
@ -291,7 +291,7 @@ impl PreferencesWindow {
|
|||
clone!(@weak self as win, @weak model => move |_, _| {
|
||||
let ctx = glib::MainContext::default();
|
||||
ctx.spawn_local(clone!(@weak win, @weak model => async move {
|
||||
if let Ok(Some(file)) = win.select_file(filters, Operation::Backup).await {
|
||||
if let Ok(file) = win.select_file(filters, Operation::Backup).await {
|
||||
let key = T::ENCRYPTABLE.then(|| {
|
||||
win.encyption_key(Operation::Backup, &T::identifier())
|
||||
}).flatten();
|
||||
|
@ -455,7 +455,7 @@ impl PreferencesWindow {
|
|||
clone!(@weak self as win => move |_, _| {
|
||||
let ctx = glib::MainContext::default();
|
||||
ctx.spawn_local(clone!(@weak win => async move {
|
||||
if let Ok(Some(file)) = win.select_file(filters, Operation::Restore).await {
|
||||
if let Ok(file) = win.select_file(filters, Operation::Restore).await {
|
||||
let key = T::ENCRYPTABLE.then(|| {
|
||||
win.encyption_key(Operation::Restore, &T::identifier())
|
||||
}).flatten();
|
||||
|
@ -505,7 +505,7 @@ impl PreferencesWindow {
|
|||
&self,
|
||||
filters: &'static [&str],
|
||||
operation: Operation,
|
||||
) -> Result<Option<gio::File>, glib::Error> {
|
||||
) -> Result<gio::File, glib::Error> {
|
||||
let filters_model = gio::ListStore::new(gtk::FileFilter::static_type());
|
||||
filters.iter().for_each(|f| {
|
||||
let filter = gtk::FileFilter::new();
|
||||
|
@ -521,7 +521,7 @@ impl PreferencesWindow {
|
|||
.filters(&filters_model)
|
||||
.title(&gettext("Backup"))
|
||||
.build();
|
||||
dialog.save_future(Some(self), gio::File::NONE, None).await
|
||||
dialog.save_future(Some(self)).await
|
||||
}
|
||||
Operation::Restore => {
|
||||
let dialog = gtk::FileDialog::builder()
|
||||
|
@ -529,7 +529,7 @@ impl PreferencesWindow {
|
|||
.filters(&filters_model)
|
||||
.title(&gettext("Restore"))
|
||||
.build();
|
||||
dialog.open_future(Some(self), gio::File::NONE).await
|
||||
dialog.open_future(Some(self)).await
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -167,7 +167,7 @@ impl ProviderPage {
|
|||
pub fn set_provider(&self, provider: Option<Provider>) {
|
||||
let imp = self.imp();
|
||||
if let Some(provider) = provider {
|
||||
imp.delete_button.show();
|
||||
imp.delete_button.set_visible(true);
|
||||
imp.name_entry.set_text(&provider.name());
|
||||
imp.period_spinbutton.set_value(provider.period() as f64);
|
||||
|
||||
|
@ -202,7 +202,7 @@ impl ProviderPage {
|
|||
imp.selected_provider.replace(Some(provider));
|
||||
} else {
|
||||
imp.name_entry.set_text("");
|
||||
imp.delete_button.hide();
|
||||
imp.delete_button.set_visible(false);
|
||||
imp.period_spinbutton
|
||||
.set_value(otp::TOTP_DEFAULT_PERIOD as f64);
|
||||
imp.provider_website_entry.set_text("");
|
||||
|
@ -315,10 +315,7 @@ impl ProviderPage {
|
|||
.filters(&model)
|
||||
.build();
|
||||
|
||||
if let Ok(Some(file)) = file_chooser
|
||||
.open_future(Some(&parent), gio::File::NONE)
|
||||
.await
|
||||
{
|
||||
if let Ok(file) = file_chooser.open_future(Some(&parent)).await {
|
||||
self.set_image(file);
|
||||
};
|
||||
}
|
||||
|
@ -377,22 +374,22 @@ impl ProviderPage {
|
|||
let selected = OTPMethod::from(combo_row.selected());
|
||||
match selected {
|
||||
OTPMethod::TOTP => {
|
||||
imp.default_counter_row.hide();
|
||||
imp.period_row.show();
|
||||
imp.default_counter_row.set_visible(false);
|
||||
imp.period_row.set_visible(true);
|
||||
imp.digits_spinbutton.set_value(otp::DEFAULT_DIGITS as f64);
|
||||
imp.period_spinbutton
|
||||
.set_value(otp::TOTP_DEFAULT_PERIOD as f64);
|
||||
}
|
||||
OTPMethod::HOTP => {
|
||||
imp.default_counter_row.show();
|
||||
imp.period_row.hide();
|
||||
imp.default_counter_row.set_visible(true);
|
||||
imp.period_row.set_visible(false);
|
||||
imp.default_counter_spinbutton
|
||||
.set_value(otp::HOTP_DEFAULT_COUNTER as f64);
|
||||
imp.digits_spinbutton.set_value(otp::DEFAULT_DIGITS as f64);
|
||||
}
|
||||
OTPMethod::Steam => {
|
||||
imp.default_counter_row.hide();
|
||||
imp.period_row.show();
|
||||
imp.default_counter_row.set_visible(false);
|
||||
imp.period_row.set_visible(true);
|
||||
imp.digits_spinbutton
|
||||
.set_value(otp::STEAM_DEFAULT_DIGITS as f64);
|
||||
imp.period_spinbutton
|
||||
|
|
|
@ -162,7 +162,7 @@ impl ProviderRow {
|
|||
|
||||
imp.image.set_provider(Some(&provider));
|
||||
if provider.method() == OTPMethod::HOTP {
|
||||
imp.progress_icon.hide();
|
||||
imp.progress_icon.set_visible(false);
|
||||
} else {
|
||||
// Update the progress bar whnever the remaining-time is updated
|
||||
self.tick_progressbar();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use adw::prelude::*;
|
||||
use gtk::{
|
||||
gio,
|
||||
glib::{self, clone},
|
||||
subclass::prelude::*,
|
||||
};
|
||||
|
@ -54,8 +55,15 @@ mod imp {
|
|||
let obj = self.obj();
|
||||
let gesture = gtk::GestureClick::new();
|
||||
gesture.connect_pressed(clone!(@weak obj as row => move |_,_,_,_| {
|
||||
if let Some(ref uri) = *row.imp().uri.borrow() {
|
||||
gtk::show_uri(gtk::Window::NONE, uri, 0);
|
||||
if let Some(uri) = row.imp().uri.borrow().clone() {
|
||||
let ctx = glib::MainContext::default();
|
||||
ctx.spawn_local(async move {
|
||||
let file = gio::File::for_uri(&uri);
|
||||
let launcher = gtk::FileLauncher::new(Some(&file));
|
||||
if let Err(err) = launcher.launch_future(gtk::Window::NONE).await {
|
||||
tracing::error!("Failed to open URI {err}");
|
||||
}
|
||||
});
|
||||
};
|
||||
}));
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ impl Window {
|
|||
dialog.connect_added(clone!(@weak self as win => move |_| {
|
||||
win.providers().refilter();
|
||||
}));
|
||||
dialog.show();
|
||||
dialog.present();
|
||||
}
|
||||
|
||||
pub fn providers(&self) -> ProvidersList {
|
||||
|
|
Loading…
Add table
Reference in a new issue