Skip to content

Commit f5a5012

Browse files
committed
build: Update dependencies and fix warnings
1 parent ab48a3e commit f5a5012

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1689
-1101
lines changed

Cargo.lock

Lines changed: 314 additions & 300 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,26 @@ authors = ["Marco Melorio <[email protected]>", "Marcus Behrendt <mar
55
edition = "2021"
66

77
[dependencies]
8-
adw = { version = "0.6", package = "libadwaita", features = ["v1_5"] }
8+
adw = { version = "0.7", package = "libadwaita", features = ["v1_6"] }
99
anyhow = "1"
1010
async-channel = "2"
1111
ellipse = "0.2"
1212
futures = { version = "0.3", default-features = false }
13-
gettext-rs = { version = "0.7", features = ["gettext-system"] }
14-
gtk = { version = "0.8", package = "gtk4", features = ["gnome_45", "blueprint"] }
13+
gettext-rs = { version = "=0.7.0", features = ["gettext-system"] }
14+
gtk = { version = "0.9", package = "gtk4", features = ["gnome_47", "blueprint"] }
1515
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp"] }
1616
indexmap = "2"
1717
locale_config = "0.3"
1818
log = "0.4"
19-
ori = { git = "https://github.com/paper-plane-developers/origami.git", tag="v0.8.1", package = "origami" }
19+
ori = { git = "https://github.com/paper-plane-developers/origami.git", tag="v0.9.0", package = "origami" }
2020
pretty_env_logger = "0.5"
21-
qrcode-generator = { version = "4", default-features = false }
21+
qrcode-generator = { version = "5", default-features = false }
2222
regex = "1"
23-
rlt = { package = "gtk-rlottie", git = "https://github.com/paper-plane-developers/gtk-rlottie-rs.git", tag = "v0.8.1" }
24-
shumate = { version = "0.5", package = "libshumate" }
23+
rlt = { git = "https://github.com/paper-plane-developers/gtk-rlottie-rs.git", tag = "v0.9.0", package = "gtk-rlottie" }
24+
shumate = { version = "0.6", package = "libshumate" }
2525
tdlib = { version = "0.10", default-features = false }
2626
temp-dir = "0.1"
27-
thiserror = "1"
27+
thiserror = "2"
2828

2929
[profile.release]
3030
lto = true

build-aux/app.drey.PaperPlane.Devel.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"id": "app.drey.PaperPlane.Devel",
33
"runtime": "org.gnome.Platform",
4-
"runtime-version": "46",
4+
"runtime-version": "47",
55
"sdk": "org.gnome.Sdk",
66
"sdk-extensions": [
77
"org.freedesktop.Sdk.Extension.rust-stable",
8-
"org.freedesktop.Sdk.Extension.llvm16"
8+
"org.freedesktop.Sdk.Extension.llvm18"
99
],
1010
"command": "paper-plane",
1111
"finish-args": [
@@ -18,7 +18,7 @@
1818
"--env=RUST_BACKTRACE=1"
1919
],
2020
"build-options": {
21-
"append-path": "/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/llvm16/bin:/app/bin",
21+
"append-path": "/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/llvm18/bin:/app/bin",
2222
"env": {
2323
"CARGO_REGISTRIES_CRATES_IO_PROTOCOL": "sparse",
2424
"CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER": "clang",
@@ -78,7 +78,7 @@
7878
{
7979
"type": "git",
8080
"url": "https://gitlab.gnome.org/GNOME/gtk.git",
81-
"tag": "4.14.4"
81+
"tag": "4.16.12"
8282
},
8383
{
8484
"type": "patch",
@@ -146,13 +146,15 @@
146146
"-Dgir=false",
147147
"-Dvapi=false",
148148
"-Dgtk_doc=false",
149+
"-Ddemos=false",
150+
"-Dvector_renderer=false",
149151
"-Dsysprof=disabled"
150152
],
151153
"sources": [
152154
{
153155
"type": "git",
154156
"url": "https://gitlab.gnome.org/GNOME/libshumate/",
155-
"tag": "1.1.4"
157+
"tag": "1.3.1"
156158
}
157159
]
158160
},

src/application.rs

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -97,44 +97,64 @@ impl Application {
9797
fn setup_gactions(&self) {
9898
// Quit
9999
let action_quit = gio::SimpleAction::new("quit", None);
100-
action_quit.connect_activate(clone!(@weak self as app => move |_, _| {
101-
// This is needed to trigger the delete event and saving the window state
102-
app.main_window().close();
103-
app.quit();
104-
}));
100+
action_quit.connect_activate(clone!(
101+
#[weak(rename_to = app)]
102+
self,
103+
move |_, _| {
104+
// This is needed to trigger the delete event and saving the window state
105+
app.main_window().close();
106+
app.quit();
107+
}
108+
));
105109
self.add_action(&action_quit);
106110

107111
// About
108112
let action_about = gio::SimpleAction::new("about", None);
109-
action_about.connect_activate(clone!(@weak self as app => move |_, _| {
110-
app.show_about_dialog();
111-
}));
113+
action_about.connect_activate(clone!(
114+
#[weak(rename_to = app)]
115+
self,
116+
move |_, _| {
117+
app.show_about_dialog();
118+
}
119+
));
112120
self.add_action(&action_about);
113121

114122
// Select chat
115123
let action_select_chat =
116124
gio::SimpleAction::new("select-chat", Some(glib::VariantTy::new("(ix)").unwrap()));
117-
action_select_chat.connect_activate(clone!(@weak self as app => move |_, data| {
118-
let (client_id, chat_id) = data.unwrap().get().unwrap();
119-
app.main_window().select_chat(client_id, chat_id);
120-
}));
125+
action_select_chat.connect_activate(clone!(
126+
#[weak(rename_to = app)]
127+
self,
128+
move |_, data| {
129+
let (client_id, chat_id) = data.unwrap().get().unwrap();
130+
app.main_window().select_chat(client_id, chat_id);
131+
}
132+
));
121133
self.add_action(&action_select_chat);
122134

123135
// New login on production server
124136
let action_new_login_production_server =
125137
gio::SimpleAction::new("new-login-production-server", None);
126-
action_new_login_production_server.connect_activate(
127-
clone!(@weak self as app => move |_, _| {
128-
app.main_window().client_manager_view().add_new_client(false);
129-
}),
130-
);
138+
action_new_login_production_server.connect_activate(clone!(
139+
#[weak(rename_to = app)]
140+
self,
141+
move |_, _| {
142+
app.main_window()
143+
.client_manager_view()
144+
.add_new_client(false);
145+
}
146+
));
131147
self.add_action(&action_new_login_production_server);
132148

133149
// New login on test server
134150
let action_new_login_test_server = gio::SimpleAction::new("new-login-test-server", None);
135-
action_new_login_test_server.connect_activate(clone!(@weak self as app => move |_, _| {
136-
app.main_window().client_manager_view().add_new_client(true);
137-
}));
151+
action_new_login_test_server.connect_activate(clone!(
152+
#[weak(rename_to = app)]
153+
self,
154+
move |_, _| {
155+
app.main_window().client_manager_view().add_new_client(true);
156+
}
157+
));
138158
self.add_action(&action_new_login_test_server);
139159
}
140160

src/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ test (
7272
],
7373
env: [
7474
'CARGO_HOME=@0@'.format(cargo_home),
75-
'PATH=/app/bin:/usr/bin:/usr/lib/sdk/llvm16/bin:/usr/lib/sdk/rust-stable/bin',
75+
'PATH=/app/bin:/usr/bin:/usr/lib/sdk/llvm18/bin:/usr/lib/sdk/rust-stable/bin',
7676
],
7777
timeout: 300, # Give cargo more time
7878
)

src/model/chat_history_model.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,20 @@ impl ChatHistoryModel {
8888

8989
obj.imp().chat.set(Some(chat));
9090

91-
chat.connect_new_message(clone!(@weak obj => move |_, message| {
92-
obj.push_front(message);
93-
}));
94-
chat.connect_deleted_message(clone!(@weak obj => move |_, message| {
95-
obj.remove(message);
96-
}));
91+
chat.connect_new_message(clone!(
92+
#[weak]
93+
obj,
94+
move |_, message| {
95+
obj.push_front(message);
96+
}
97+
));
98+
chat.connect_deleted_message(clone!(
99+
#[weak]
100+
obj,
101+
move |_, message| {
102+
obj.remove(message);
103+
}
104+
));
97105

98106
obj
99107
}

src/model/chat_list.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,19 +142,27 @@ impl ChatList {
142142
}
143143

144144
pub(crate) fn fetch(&self) {
145-
utils::spawn(clone!(@weak self as obj => async move {
146-
let result = tdlib::functions::load_chats(Some(obj.list_type().0), 20, obj.session_().client_().id())
145+
utils::spawn(clone!(
146+
#[weak(rename_to = obj)]
147+
self,
148+
async move {
149+
let result = tdlib::functions::load_chats(
150+
Some(obj.list_type().0),
151+
20,
152+
obj.session_().client_().id(),
153+
)
147154
.await;
148155

149-
if let Err(err) = result {
150-
// Error 404 means that all chats have been loaded
151-
if err.code != 404 {
152-
log::error!("Received an error for LoadChats: {}", err.code);
156+
if let Err(err) = result {
157+
// Error 404 means that all chats have been loaded
158+
if err.code != 404 {
159+
log::error!("Received an error for LoadChats: {}", err.code);
160+
}
161+
} else {
162+
obj.fetch();
153163
}
154-
} else {
155-
obj.fetch();
156164
}
157-
}));
165+
));
158166
}
159167

160168
pub(crate) fn update_chat_position(

src/model/client.rs

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,13 @@ mod imp {
6868

6969
let obj = &*self.obj();
7070

71-
utils::spawn(clone!(@weak obj => async move {
72-
obj.init().await;
73-
}));
71+
utils::spawn(clone!(
72+
#[weak]
73+
obj,
74+
async move {
75+
obj.init().await;
76+
}
77+
));
7478
obj.set_state(model::ClientStateAuth::from(obj).upcast());
7579
}
7680
}
@@ -256,26 +260,36 @@ impl Client {
256260
match update {
257261
Update::AuthorizationState(state) => match state.authorization_state {
258262
AuthorizationState::WaitTdlibParameters => {
259-
utils::spawn(clone!(@weak self as obj => async move {
260-
if let Err(e) = obj.send_tdlib_parameters().await {
261-
log::error!("Failed sensing tdlib parameters: {e:?}");
263+
utils::spawn(clone!(
264+
#[weak(rename_to = obj)]
265+
self,
266+
async move {
267+
if let Err(e) = obj.send_tdlib_parameters().await {
268+
log::error!("Failed sensing tdlib parameters: {e:?}");
269+
}
262270
}
263-
}));
271+
));
264272
}
265273
AuthorizationState::Ready => {
266-
utils::spawn(clone!(@weak self as obj => async move {
267-
let tdlib::enums::User::User(me) =
268-
tdlib::functions::get_me(obj.id()).await.unwrap();
269-
270-
let state = model::ClientStateSession::new(&obj, me);
271-
while let Some(update) = obj.imp().queued_updates.borrow_mut().pop_front() {
272-
state.handle_update(update);
274+
utils::spawn(clone!(
275+
#[weak(rename_to = obj)]
276+
self,
277+
async move {
278+
let tdlib::enums::User::User(me) =
279+
tdlib::functions::get_me(obj.id()).await.unwrap();
280+
281+
let state = model::ClientStateSession::new(&obj, me);
282+
while let Some(update) =
283+
obj.imp().queued_updates.borrow_mut().pop_front()
284+
{
285+
state.handle_update(update);
286+
}
287+
288+
obj.set_state(state.upcast());
289+
290+
obj.client_manager_().on_client_logged_in(&obj);
273291
}
274-
275-
obj.set_state(state.upcast());
276-
277-
obj.client_manager_().on_client_logged_in(&obj);
278-
}));
292+
));
279293
}
280294
AuthorizationState::Closing => {
281295
self.set_state(model::ClientStateLoggingOut::default().upcast());

src/model/client_manager.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -267,17 +267,23 @@ impl ClientManager {
267267

268268
fn start_tdlib_thread(&self) {
269269
let (sender, receiver) = async_channel::unbounded();
270-
glib::spawn_future_local(clone!(@weak self as obj => async move {
271-
while let Ok((update, client_id)) = receiver.recv().await {
272-
obj.handle_update(update, client_id);
270+
glib::spawn_future_local(clone!(
271+
#[weak(rename_to = obj)]
272+
self,
273+
async move {
274+
while let Ok((update, client_id)) = receiver.recv().await {
275+
obj.handle_update(update, client_id);
276+
}
273277
}
274-
}));
278+
));
275279

276280
thread::spawn(move || loop {
277281
if let Some((update, client_id)) = tdlib::receive() {
278-
glib::spawn_future(clone!(@strong sender => async move {
279-
_ = sender.send((update, client_id)).await;
280-
}));
282+
glib::spawn_future(clone!(
283+
#[strong]
284+
sender,
285+
async move { _ = sender.send((update, client_id)).await }
286+
));
281287
}
282288
});
283289
}

src/model/client_state_auth_code.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,23 @@ mod imp {
7070

7171
let source_id = glib::timeout_add_seconds_local(
7272
1,
73-
clone!(@weak obj => @default-return glib::ControlFlow::Break, move || {
74-
let imp = obj.imp();
75-
76-
imp.set_countdown(obj.countdown() - 1);
77-
glib::ControlFlow::from(if obj.countdown() == 0 {
78-
imp.stop_code_next_type_countdown();
79-
false
80-
} else {
81-
true
82-
})
83-
}),
73+
clone!(
74+
#[weak]
75+
obj,
76+
#[upgrade_or]
77+
glib::ControlFlow::Break,
78+
move || {
79+
let imp = obj.imp();
80+
81+
imp.set_countdown(obj.countdown() - 1);
82+
glib::ControlFlow::from(if obj.countdown() == 0 {
83+
imp.stop_code_next_type_countdown();
84+
false
85+
} else {
86+
true
87+
})
88+
}
89+
),
8490
);
8591
self.countdown_source_id.replace(Some(source_id));
8692
}

0 commit comments

Comments
 (0)