Browse Source

general: Update to the latest version of the gtk-rs stack

merge-requests/1327/merge
Christopher Davis 3 years ago committed by Kévin Commaille
parent
commit
5db1d9f902
No known key found for this signature in database
GPG Key ID: DD507DAE96E8245C
  1. 937
      Cargo.lock
  2. 24
      Cargo.toml
  3. 2
      src/account_switcher/avatar_with_selection.rs
  4. 2
      src/account_switcher/mod.rs
  5. 6
      src/application.rs
  6. 4
      src/components/action_button.rs
  7. 2
      src/components/audio_player.rs
  8. 2
      src/components/avatar.rs
  9. 2
      src/components/badge.rs
  10. 2
      src/components/button_row.rs
  11. 2
      src/components/custom_entry.rs
  12. 10
      src/components/drag_overlay.rs
  13. 14
      src/components/editable_avatar.rs
  14. 2
      src/components/image_paintable.rs
  15. 2
      src/components/label_with_widgets.rs
  16. 2
      src/components/loading_listbox_row.rs
  17. 4
      src/components/location_viewer.rs
  18. 2
      src/components/media_content_viewer.rs
  19. 2
      src/components/overlapping_box.rs
  20. 2
      src/components/reaction_chooser.rs
  21. 2
      src/components/room_title.rs
  22. 4
      src/components/scale_revealer.rs
  23. 2
      src/components/spinner_button.rs
  24. 2
      src/components/video_player.rs
  25. 2
      src/components/video_player_renderer.rs
  26. 2
      src/contrib/qr_code.rs
  27. 2
      src/contrib/qr_code_scanner/camera.rs
  28. 2
      src/contrib/qr_code_scanner/camera_paintable.rs
  29. 2
      src/contrib/qr_code_scanner/mod.rs
  30. 2
      src/contrib/qr_code_scanner/qr_code_detector.rs
  31. 2
      src/error_page.rs
  32. 2
      src/greeter.rs
  33. 2
      src/login/homeserver_page.rs
  34. 2
      src/login/idp_button.rs
  35. 2
      src/login/method_page.rs
  36. 2
      src/login/mod.rs
  37. 4
      src/login/sso_page.rs
  38. 2
      src/session/account_settings/mod.rs
  39. 6
      src/session/account_settings/security_page/import_export_keys_subpage.rs
  40. 6
      src/session/account_settings/user_page/change_password_subpage.rs
  41. 2
      src/session/account_settings/user_page/mod.rs
  42. 2
      src/session/content/explore/mod.rs
  43. 2
      src/session/content/explore/public_room_row.rs
  44. 2
      src/session/content/invite.rs
  45. 2
      src/session/content/room_details/general_page/mod.rs
  46. 2
      src/session/content/room_details/invite_subpage/invitee_list.rs
  47. 2
      src/session/content/room_details/invite_subpage/mod.rs
  48. 2
      src/session/content/room_details/member_page/member_menu.rs
  49. 2
      src/session/content/room_details/member_page/members_list_view/item_row.rs
  50. 2
      src/session/content/room_details/member_page/members_list_view/member_row.rs
  51. 2
      src/session/content/room_details/member_page/members_list_view/membership_subpage_item.rs
  52. 4
      src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs
  53. 2
      src/session/content/room_details/member_page/members_list_view/mod.rs
  54. 32
      src/session/content/room_details/member_page/mod.rs
  55. 2
      src/session/content/room_details/mod.rs
  56. 13
      src/session/content/room_history/completion/completion_popover.rs
  57. 2
      src/session/content/room_history/completion/completion_row.rs
  58. 2
      src/session/content/room_history/divider_row.rs
  59. 4
      src/session/content/room_history/message_row/audio.rs
  60. 10
      src/session/content/room_history/message_row/content.rs
  61. 2
      src/session/content/room_history/message_row/file.rs
  62. 2
      src/session/content/room_history/message_row/location.rs
  63. 4
      src/session/content/room_history/message_row/media.rs
  64. 2
      src/session/content/room_history/message_row/mod.rs
  65. 2
      src/session/content/room_history/message_row/reaction_list.rs
  66. 2
      src/session/content/room_history/message_row/reply.rs
  67. 2
      src/session/content/room_history/message_row/text.rs
  68. 18
      src/session/content/room_history/mod.rs
  69. 2
      src/session/content/room_history/state_row/creation.rs
  70. 2
      src/session/content/room_history/state_row/mod.rs
  71. 2
      src/session/content/room_history/state_row/tombstone.rs
  72. 2
      src/session/content/room_history/typing_row.rs
  73. 4
      src/session/content/verification/emoji.rs
  74. 6
      src/session/content/verification/identity_verification_widget.rs
  75. 10
      src/session/media_viewer.rs
  76. 4
      src/session/mod.rs
  77. 6
      src/session/room/member.rs
  78. 2
      src/session/room/mod.rs
  79. 2
      src/session/room/power_levels.rs
  80. 2
      src/session/room/reaction_list.rs
  81. 2
      src/session/room/timeline/mod.rs
  82. 2
      src/session/room/timeline/timeline_new_messages_divider.rs
  83. 10
      src/session/room/timeline/timeline_placeholder.rs
  84. 2
      src/session/room/typing_list.rs
  85. 6
      src/session/sidebar/category.rs
  86. 9
      src/session/sidebar/category_row.rs
  87. 2
      src/session/sidebar/entry.rs
  88. 2
      src/session/sidebar/entry_row.rs
  89. 9
      src/session/sidebar/item_list.rs
  90. 16
      src/session/sidebar/mod.rs
  91. 4
      src/session/sidebar/room_row.rs
  92. 2
      src/session/sidebar/row.rs
  93. 2
      src/session/sidebar/verification_row.rs
  94. 4
      src/session/verification/identity_verification.rs
  95. 4
      src/utils/macros.rs
  96. 2
      src/window.rs

937
Cargo.lock generated

File diff suppressed because it is too large Load Diff

24
Cargo.toml

@ -38,18 +38,18 @@ futures = "0.3"
rand = "0.8"
indexmap = "1.6.2"
qrcode = "0.12.0"
ashpd = { version = "0.4.0-alpha.2", default-features = false, features = [
ashpd = { version = "0.4.0-alpha.4", default-features = false, features = [
"gtk4",
"pipewire",
"tracing",
"tokio",
] }
gst = { version = "0.19.1", package = "gstreamer" }
gst_base = { version = "0.19.1", package = "gstreamer-base" }
gst_video = { version = "0.19.0", package = "gstreamer-video" }
gst_play = { version = "0.19.0", package = "gstreamer-play" }
gst_gtk = { version = "0.9.0", package = "gst-plugin-gtk4" }
gst_pbutils = { version = "0.19.0", package = "gstreamer-pbutils" }
gst = { version = "0.20.2", package = "gstreamer" }
gst_base = { version = "0.20.0", package = "gstreamer-base" }
gst_video = { version = "0.20.2", package = "gstreamer-video" }
gst_play = { version = "0.20.2", package = "gstreamer-play" }
gst_gtk = { version = "0.10.3", package = "gst-plugin-gtk4" }
gst_pbutils = { version = "0.20.0", package = "gstreamer-pbutils" }
image = "0.24"
regex = "1.5.4"
mime_guess = "2.0.3"
@ -65,21 +65,21 @@ futures-signals = { version = "0.3.30", default-features = false }
[dependencies.sourceview]
package = "sourceview5"
version = "0.5.0"
version = "0.6.0"
[dependencies.gtk]
package = "gtk4"
version = "0.5.0"
version = "0.6.2"
features = ["v4_6"]
[dependencies.adw]
package = "libadwaita"
version = "0.2.0"
features = ["v1_2"]
version = "0.3.1"
features = ["v1_3"]
[dependencies.shumate]
package = "libshumate"
version = "0.2.0"
version = "0.3.0"
[dependencies.matrix-sdk]
git = "https://github.com/matrix-org/matrix-rust-sdk.git"

2
src/account_switcher/avatar_with_selection.rs

@ -84,7 +84,7 @@ glib::wrapper! {
impl AvatarWithSelection {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set whether this avatar is selected.

2
src/account_switcher/mod.rs

@ -108,7 +108,7 @@ glib::wrapper! {
impl AccountSwitcher {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set the model containing the stack pages for each logged in account.

6
src/application.rs

@ -180,7 +180,7 @@ impl Application {
let dialog = adw::AboutWindow::builder()
.application_name("Fractal")
.application_icon(config::APP_ID)
.developer_name(&gettext("The Fractal Team"))
.developer_name(gettext("The Fractal Team"))
.license_type(gtk::License::Gpl30)
.website("https://gitlab.gnome.org/GNOME/fractal/")
.issue_url("https://gitlab.gnome.org/GNOME/fractal/-/issues")
@ -188,7 +188,7 @@ impl Application {
.version(config::VERSION)
.transient_for(&self.get_main_window())
.modal(true)
.copyright(&gettext("© 2017-2023 The Fractal Team"))
.copyright(gettext("© 2017-2023 The Fractal Team"))
.developers(vec![
"Alejandro Domínguez".to_string(),
"Alexandre Franke".to_string(),
@ -202,7 +202,7 @@ impl Application {
"Saurav Sachidanand".to_string(),
])
.designers(vec!["Tobias Bernard".to_string()])
.translator_credits(&gettext("translator-credits"))
.translator_credits(gettext("translator-credits"))
.build();
// This can't be added via the builder

4
src/components/action_button.rs

@ -87,7 +87,7 @@ mod imp {
glib::ParamSpecString::builder("icon-name")
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("state", ActionState::default())
glib::ParamSpecEnum::builder::<ActionState>("state")
.explicit_notify()
.build(),
glib::ParamSpecOverride::for_interface::<gtk::Actionable>("action-name"),
@ -155,7 +155,7 @@ glib::wrapper! {
#[gtk::template_callbacks]
impl ActionButton {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The icon used in the default state.

2
src/components/audio_player.rs

@ -87,7 +87,7 @@ glib::wrapper! {
impl AudioPlayer {
/// Create a new audio player.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The media file that is playing.

2
src/components/avatar.rs

@ -94,7 +94,7 @@ glib::wrapper! {
impl Avatar {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set the size of the Avatar.

2
src/components/badge.rs

@ -73,7 +73,7 @@ glib::wrapper! {
impl Badge {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The power level this badge displays.

2
src/components/button_row.rs

@ -98,7 +98,7 @@ glib::wrapper! {
impl ButtonRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether activating this button opens a subpage.

2
src/components/custom_entry.rs

@ -34,6 +34,6 @@ glib::wrapper! {
impl CustomEntry {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
}

10
src/components/drag_overlay.rs

@ -59,7 +59,7 @@ mod imp {
match pspec.name() {
"title" => obj.set_title(value.get().unwrap()),
"child" => obj.set_child(value.get().ok().as_ref()),
"drop-target" => obj.set_drop_target(&value.get().unwrap()),
"drop-target" => obj.set_drop_target(value.get().unwrap()),
_ => unimplemented!(),
};
}
@ -95,7 +95,7 @@ glib::wrapper! {
impl DragOverlay {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The title of this `DragOverlay`.
@ -124,7 +124,7 @@ impl DragOverlay {
}
/// Set the [`gtk::DropTarget`] of this `DragOverlay`.
pub fn set_drop_target(&self, drop_target: &gtk::DropTarget) {
pub fn set_drop_target(&self, drop_target: gtk::DropTarget) {
let imp = self.imp();
if let Some(target) = imp.drop_target.borrow_mut().take() {
@ -142,8 +142,8 @@ impl DragOverlay {
);
imp.handler_id.replace(Some(handler_id));
self.add_controller(drop_target);
imp.drop_target.replace(Some(drop_target.clone()));
self.add_controller(drop_target.clone());
imp.drop_target.replace(Some(drop_target));
self.notify("drop-target");
}
}

14
src/components/editable_avatar.rs

@ -90,7 +90,7 @@ mod imp {
glib::ParamSpecBoolean::builder("editable")
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("edit-state", ActionState::default())
glib::ParamSpecEnum::builder::<ActionState>("edit-state")
.explicit_notify()
.build(),
glib::ParamSpecBoolean::builder("edit-sensitive")
@ -101,7 +101,7 @@ mod imp {
glib::ParamSpecBoolean::builder("removable")
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("remove-state", ActionState::default())
glib::ParamSpecEnum::builder::<ActionState>("remove-state")
.explicit_notify()
.build(),
glib::ParamSpecBoolean::builder("remove-sensitive")
@ -169,7 +169,7 @@ glib::wrapper! {
impl EditableAvatar {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The Avatar to display.
@ -305,7 +305,7 @@ impl EditableAvatar {
image_filter.add_mime_type("image/*");
let dialog = gtk::FileChooserNative::builder()
.title(&gettext("Choose Avatar"))
.title(gettext("Choose Avatar"))
.modal(true)
.transient_for(
self.root()
@ -314,8 +314,8 @@ impl EditableAvatar {
.unwrap(),
)
.action(gtk::FileChooserAction::Open)
.accept_label(&gettext("Choose"))
.cancel_label(&gettext("Cancel"))
.accept_label(gettext("Choose"))
.cancel_label(gettext("Cancel"))
.filter(&image_filter)
.build();
@ -323,7 +323,7 @@ impl EditableAvatar {
if let Some(file) = dialog.file() {
if let Some(content_type) = file
.query_info_future(
&gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FileQueryInfoFlags::NONE,
glib::PRIORITY_LOW,
)

2
src/components/image_paintable.rs

@ -170,7 +170,7 @@ impl ImagePaintable {
reader: R,
format: Option<ImageFormat>,
) -> Result<Self, Box<dyn std::error::Error>> {
let obj = glib::Object::new::<Self>(&[]);
let obj = glib::Object::new::<Self>();
let mut reader = image::io::Reader::new(reader);

2
src/components/label_with_widgets.rs

@ -171,7 +171,7 @@ glib::wrapper! {
impl LabelWithWidgets {
/// Create an empty `LabelWithWidget`.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Create a `LabelWithWidget` with the given label and widgets.

2
src/components/loading_listbox_row.rs

@ -111,7 +111,7 @@ glib::wrapper! {
impl LoadingListBoxRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether to show the loading spinner.

4
src/components/location_viewer.rs

@ -69,7 +69,7 @@ mod imp {
self.marker.set_child(Some(&*self.marker_img));
let registry = shumate::MapSourceRegistry::with_defaults();
let source = registry.by_id(&shumate::MAP_SOURCE_OSM_MAPNIK).unwrap();
let source = registry.by_id(shumate::MAP_SOURCE_OSM_MAPNIK).unwrap();
self.map.set_map_source(Some(&source));
let viewport = self.map.viewport().unwrap();
@ -97,7 +97,7 @@ glib::wrapper! {
impl LocationViewer {
/// Create a new location message.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether to display this location in a compact format.

2
src/components/media_content_viewer.rs

@ -214,7 +214,7 @@ impl MediaContentViewer {
let file_info = file
.query_info_future(
&gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FileQueryInfoFlags::NONE,
glib::PRIORITY_DEFAULT,
)

2
src/components/overlapping_box.rs

@ -173,7 +173,7 @@ glib::wrapper! {
impl OverlappingBox {
/// Create an empty `OverlappingBox`.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The size by which the widgets overlap.

2
src/components/reaction_chooser.rs

@ -114,7 +114,7 @@ glib::wrapper! {
impl ReactionChooser {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn reactions(&self) -> Option<ReactionList> {

2
src/components/room_title.rs

@ -90,7 +90,7 @@ glib::wrapper! {
impl RoomTitle {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set the title of the room.

4
src/components/scale_revealer.rs

@ -73,7 +73,7 @@ mod imp {
let target = adw::CallbackAnimationTarget::new(clone!(@weak obj => move |_| {
obj.queue_draw();
}));
let animation = adw::TimedAnimation::new(&*obj, 0.0, 1.0, ANIMATION_DURATION, &target);
let animation = adw::TimedAnimation::new(&*obj, 0.0, 1.0, ANIMATION_DURATION, target);
animation.set_easing(adw::Easing::EaseOutQuart);
animation.connect_done(clone!(@weak obj => move |_| {
@ -175,7 +175,7 @@ glib::wrapper! {
impl ScaleRevealer {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether the child is revealed or not.

2
src/components/spinner_button.rs

@ -81,7 +81,7 @@ glib::wrapper! {
impl SpinnerButton {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set the text of the button.

2
src/components/video_player.rs

@ -117,7 +117,7 @@ glib::wrapper! {
impl VideoPlayer {
/// Create a new video player.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The `GstPlay` for the video.

2
src/components/video_player_renderer.rs

@ -61,7 +61,7 @@ glib::wrapper! {
impl VideoPlayerRenderer {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The GdkPaintable to render the video into.

2
src/contrib/qr_code.rs

@ -136,7 +136,7 @@ glib::wrapper! {
impl QRCode {
/// Creates a new [`QRCode`].
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Creates a new [`QRCode`] with a QR code generated from `bytes`.

2
src/contrib/qr_code_scanner/camera.rs

@ -34,7 +34,7 @@ impl Camera {
/// Create a new `Camera`. You should consider using `Camera::default()` to
/// get a shared Object
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub async fn has_camera(&self) -> Result<bool, ashpd::Error> {

2
src/contrib/qr_code_scanner/camera_paintable.rs

@ -123,7 +123,7 @@ glib::wrapper! {
impl CameraPaintable {
pub async fn new<F: AsRawFd>(fd: F, streams: Vec<camera::Stream>) -> Self {
let self_: Self = glib::Object::new(&[]);
let self_: Self = glib::Object::new();
self_.set_pipewire_fd(fd, streams).await;
self_

2
src/contrib/qr_code_scanner/mod.rs

@ -67,7 +67,7 @@ glib::wrapper! {
impl QrCodeScanner {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn stop(&self) {

2
src/contrib/qr_code_scanner/qr_code_detector.rs

@ -129,7 +129,7 @@ unsafe impl Sync for QrCodeDetector {}
impl QrCodeDetector {
pub fn new(sender: Sender<Action>) -> Self {
let sink = glib::Object::new::<Self>(&[]);
let sink = glib::Object::new::<Self>();
sink.imp().sender.lock().unwrap().replace(sender);
sink
}

2
src/error_page.rs

@ -80,7 +80,7 @@ glib::wrapper! {
impl ErrorPage {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn display_secret_error(&self, message: &str, item: Option<oo7::Item>) {

2
src/greeter.rs

@ -65,7 +65,7 @@ glib::wrapper! {
impl Greeter {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn default_widget(&self) -> gtk::Widget {

2
src/login/homeserver_page.rs

@ -89,7 +89,7 @@ glib::wrapper! {
impl LoginHomeserverPage {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether homeserver auto-discovery is enabled.

2
src/login/idp_button.rs

@ -120,7 +120,7 @@ mod imp {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("brand", IdpBrand::default())
glib::ParamSpecEnum::builder::<IdpBrand>("brand")
.construct_only()
.build(),
glib::ParamSpecString::builder("id")

2
src/login/method_page.rs

@ -118,7 +118,7 @@ glib::wrapper! {
impl LoginMethodPage {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The homeserver to log into.

2
src/login/mod.rs

@ -181,7 +181,7 @@ glib::wrapper! {
impl Login {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
fn parent_window(&self) -> Window {

4
src/login/sso_page.rs

@ -1,4 +1,4 @@
use adw::{prelude::*, subclass::prelude::BinImpl};
use adw::subclass::prelude::BinImpl;
use gtk::{self, glib, subclass::prelude::*, CompositeTemplate};
mod imp {
@ -40,6 +40,6 @@ glib::wrapper! {
impl LoginSsoPage {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
}

2
src/session/account_settings/mod.rs

@ -62,7 +62,7 @@ mod imp {
klass.install_action("win.add-toast", Some("s"), |obj, _, message| {
if let Some(message) = message.and_then(String::from_variant) {
let toast = adw::Toast::new(&message);
obj.add_toast(&toast);
obj.add_toast(toast);
}
});

6
src/session/account_settings/security_page/import_export_keys_subpage.rs

@ -83,7 +83,7 @@ mod imp {
glib::ParamSpecString::builder("file-path")
.read_only()
.build(),
glib::ParamSpecEnum::builder("mode", KeysSubpageMode::default())
glib::ParamSpecEnum::builder::<KeysSubpageMode>("mode")
.explicit_notify()
.build(),
]
@ -262,8 +262,8 @@ impl ImportExportKeysSubpage {
.unwrap(),
)
.action(action)
.accept_label(&gettext("Select"))
.cancel_label(&gettext("Cancel"))
.accept_label(gettext("Select"))
.cancel_label(gettext("Cancel"))
.build();
if let Some(file) = self.file_path() {

6
src/session/account_settings/user_page/change_password_subpage.rs

@ -99,13 +99,13 @@ mod imp {
self.password_progress.set_min_value(0.0);
self.password_progress.set_max_value(5.0);
self.password_progress
.add_offset_value(&gtk::LEVEL_BAR_OFFSET_LOW, 1.0);
.add_offset_value(gtk::LEVEL_BAR_OFFSET_LOW, 1.0);
self.password_progress.add_offset_value("step2", 2.0);
self.password_progress.add_offset_value("step3", 3.0);
self.password_progress
.add_offset_value(&gtk::LEVEL_BAR_OFFSET_HIGH, 4.0);
.add_offset_value(gtk::LEVEL_BAR_OFFSET_HIGH, 4.0);
self.password_progress
.add_offset_value(&gtk::LEVEL_BAR_OFFSET_FULL, 5.0);
.add_offset_value(gtk::LEVEL_BAR_OFFSET_FULL, 5.0);
self.password.connect_changed(clone!(@weak obj => move|_| {
obj.validate_password();

2
src/session/account_settings/user_page/mod.rs

@ -249,7 +249,7 @@ impl UserPage {
let client = self.session().unwrap().client();
let mime = file
.query_info_future(
&gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FileQueryInfoFlags::NONE,
glib::PRIORITY_LOW,
)

2
src/session/content/explore/mod.rs

@ -183,7 +183,7 @@ impl Explore {
if let Some(ref session) = session {
let public_room_list = PublicRoomList::new(session);
imp.listview
.set_model(Some(&gtk::NoSelection::new(Some(&public_room_list))));
.set_model(Some(&gtk::NoSelection::new(Some(public_room_list.clone()))));
public_room_list.connect_notify_local(
Some("loading"),

2
src/session/content/explore/public_room_row.rs

@ -108,7 +108,7 @@ glib::wrapper! {
impl PublicRoomRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The public room displayed by this row.

2
src/session/content/invite.rs

@ -127,7 +127,7 @@ glib::wrapper! {
impl Invite {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether a compact view is used.

2
src/session/content/room_details/general_page/mod.rs

@ -196,7 +196,7 @@ impl GeneralPage {
let room = this.room();
let room_name = imp.room_name_entry.buffer().text();
let room_name = imp.room_name_entry.buffer().text().to_string();
let topic_buffer = imp.room_topic_text_view.buffer();
let topic = topic_buffer.text(&topic_buffer.start_iter(), &topic_buffer.end_iter(), true);
room.store_room_name(room_name);

2
src/session/content/room_details/invite_subpage/invitee_list.rs

@ -69,7 +69,7 @@ mod imp {
glib::ParamSpecBoolean::builder("has-selected")
.read_only()
.build(),
glib::ParamSpecEnum::builder("state", InviteeListState::default())
glib::ParamSpecEnum::builder::<InviteeListState>("state")
.read_only()
.build(),
]

2
src/session/content/room_details/invite_subpage/mod.rs

@ -232,7 +232,7 @@ impl InviteSubpage {
.build();
imp.list_view
.set_model(Some(&gtk::NoSelection::new(Some(&user_list))));
.set_model(Some(&gtk::NoSelection::new(Some(user_list))));
} else {
imp.list_view.set_model(gtk::SelectionModel::NONE);
}

2
src/session/content/room_details/member_page/member_menu.rs

@ -74,7 +74,7 @@ glib::wrapper! {
impl MemberMenu {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The member to apply actions to.

2
src/session/content/room_details/member_page/members_list_view/item_row.rs

@ -59,7 +59,7 @@ glib::wrapper! {
impl ItemRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The item represented by this row.

2
src/session/content/room_details/member_page/members_list_view/member_row.rs

@ -94,7 +94,7 @@ glib::wrapper! {
impl MemberRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The member displayed by this row.

2
src/session/content/room_details/member_page/members_list_view/membership_subpage_item.rs

@ -28,7 +28,7 @@ mod imp {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("state", Membership::default())
glib::ParamSpecEnum::builder::<Membership>("state")
.construct_only()
.build(),
glib::ParamSpecObject::builder::<gio::ListModel>("model")

4
src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs

@ -88,7 +88,7 @@ mod imp {
self.gesture
.set_propagation_phase(gtk::PropagationPhase::Capture);
obj.add_controller(&self.gesture);
obj.add_controller(self.gesture.clone());
}
}
@ -105,7 +105,7 @@ glib::wrapper! {
impl MembershipSubpageRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The item of this row.

2
src/session/content/room_details/member_page/members_list_view/mod.rs

@ -98,7 +98,7 @@ impl MembersListView {
self.imp()
.members_list_view
.set_model(Some(&gtk::NoSelection::new(model)));
.set_model(Some(&gtk::NoSelection::new(model.cloned())));
self.imp().model.set(model);
self.notify("model");

32
src/session/content/room_details/member_page/mod.rs

@ -106,7 +106,7 @@ mod imp {
glib::ParamSpecObject::builder::<MemberMenu>("member-menu")
.read_only()
.build(),
glib::ParamSpecEnum::builder("state", Membership::default())
glib::ParamSpecEnum::builder::<Membership>("state")
.explicit_notify()
.build(),
]
@ -192,7 +192,7 @@ impl MemberPage {
// Sort the members list by power level, then display name.
let sorter = gtk::MultiSorter::new();
sorter.append(
&gtk::NumericSorter::builder()
gtk::NumericSorter::builder()
.expression(&gtk::PropertyExpression::new(
Member::static_type(),
gtk::Expression::NONE,
@ -202,19 +202,17 @@ impl MemberPage {
.build(),
);
sorter.append(&gtk::StringSorter::new(Some(
&gtk::PropertyExpression::new(
Member::static_type(),
gtk::Expression::NONE,
"display-name",
),
)));
sorter.append(gtk::StringSorter::new(Some(gtk::PropertyExpression::new(
Member::static_type(),
gtk::Expression::NONE,
"display-name",
))));
let members = gtk::SortListModel::new(Some(room.members()), Some(&sorter));
let members = gtk::SortListModel::new(Some(room.members().clone()), Some(sorter));
let joined_members = self.build_filtered_list(&members, Membership::Join);
let invited_members = self.build_filtered_list(&members, Membership::Invite);
let banned_members = self.build_filtered_list(&members, Membership::Ban);
let joined_members = self.build_filtered_list(members.clone(), Membership::Join);
let invited_members = self.build_filtered_list(members.clone(), Membership::Invite);
let banned_members = self.build_filtered_list(members, Membership::Ban);
let main_list = ExtraLists::new(
&joined_members,
@ -308,7 +306,7 @@ impl MemberPage {
fn build_filtered_list(
&self,
model: &impl IsA<gio::ListModel>,
model: impl IsA<gio::ListModel>,
state: Membership,
) -> gio::ListModel {
let membership_expression = gtk::PropertyExpression::new(
@ -350,10 +348,10 @@ impl MemberPage {
let filter = gtk::EveryFilter::new();
filter.append(&membership_filter);
filter.append(&search_filter);
filter.append(membership_filter);
filter.append(search_filter);
let filter_model = gtk::FilterListModel::new(Some(model), Some(&filter));
let filter_model = gtk::FilterListModel::new(Some(model), Some(filter));
filter_model.upcast()
}

2
src/session/content/room_details/mod.rs

@ -110,7 +110,7 @@ mod imp {
glib::ParamSpecObject::builder::<Room>("room")
.construct_only()
.build(),
glib::ParamSpecEnum::builder("visible-page", PageName::default())
glib::ParamSpecEnum::builder::<PageName>("visible-page")
.explicit_notify()
.build(),
]

13
src/session/content/room_history/completion/completion_popover.rs

@ -148,8 +148,8 @@ mod imp {
))
.build();
let filter = gtk::EveryFilter::new();
filter.append(&joined);
filter.append(&not_user);
filter.append(joined);
filter.append(not_user);
let first_model = gtk::FilterListModel::builder().filter(&filter).build();
// Sort the members list by activity, then display name.
@ -162,8 +162,8 @@ mod imp {
.expression(Member::this_expression("display-name"))
.build();
let sorter = gtk::MultiSorter::new();
sorter.append(&activity);
sorter.append(&display_name);
sorter.append(activity);
sorter.append(display_name);
let second_model = gtk::SortListModel::builder()
.sorter(&sorter)
.model(&first_model)
@ -209,7 +209,6 @@ mod imp {
imp.buffer_handler.replace(Some((buffer, handler_id)));
let key_events = gtk::EventControllerKey::new();
view.add_controller(&key_events);
key_events.connect_key_pressed(clone!(@weak obj => @default-return glib::signal::Inhibit(false), move |_, key, _, modifier| {
if modifier.is_empty() {
if obj.is_visible() {
@ -251,6 +250,8 @@ mod imp {
glib::signal::Inhibit(false)
}));
view.add_controller(key_events);
// Close popup when the entry is not focused.
view.connect_has_focus_notify(clone!(@weak obj => move |view| {
if !view.has_focus() && obj.get_visible() {
@ -281,7 +282,7 @@ glib::wrapper! {
impl CompletionPopover {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The parent `GtkTextView` to autocomplete.

2
src/session/content/room_history/completion/completion_row.rs

@ -79,7 +79,7 @@ glib::wrapper! {
impl CompletionRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The room member displayed by this row.

2
src/session/content/room_history/divider_row.rs

@ -65,7 +65,7 @@ glib::wrapper! {
impl DividerRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn with_label(label: String) -> Self {

4
src/session/content/room_history/message_row/audio.rs

@ -58,7 +58,7 @@ mod imp {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecString::builder("body").read_only().build(),
glib::ParamSpecEnum::builder("state", MediaState::default())
glib::ParamSpecEnum::builder::<MediaState>("state")
.explicit_notify()
.build(),
glib::ParamSpecBoolean::builder("compact")
@ -103,7 +103,7 @@ glib::wrapper! {
impl MessageAudio {
/// Create a new audio message.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The body of the audio message.

10
src/session/content/room_history/message_row/content.rs

@ -63,11 +63,9 @@ mod imp {
impl ObjectImpl for MessageContent {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("format", ContentFormat::default())
.explicit_notify()
.build(),
]
vec![glib::ParamSpecEnum::builder::<ContentFormat>("format")
.explicit_notify()
.build()]
});
PROPERTIES.as_ref()
@ -99,7 +97,7 @@ glib::wrapper! {
impl MessageContent {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The displayed format of the message.

2
src/session/content/room_history/message_row/file.rs

@ -85,7 +85,7 @@ glib::wrapper! {
impl MessageFile {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Set the filename of the file.

2
src/session/content/room_history/message_row/location.rs

@ -78,7 +78,7 @@ glib::wrapper! {
impl MessageLocation {
/// Create a new location message.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn set_geo_uri(&self, uri: &str, format: ContentFormat) {

4
src/session/content/room_history/message_row/media.rs

@ -109,7 +109,7 @@ mod imp {
.default_value(-1)
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("state", MediaState::default())
glib::ParamSpecEnum::builder::<MediaState>("state")
.explicit_notify()
.build(),
glib::ParamSpecBoolean::builder("compact")
@ -239,7 +239,7 @@ glib::wrapper! {
impl MessageMedia {
/// Create a new media message.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
#[template_callback]

2
src/session/content/room_history/message_row/mod.rs

@ -116,7 +116,7 @@ glib::wrapper! {
impl MessageRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether this item should show its header.

2
src/session/content/room_history/message_row/reaction_list.rs

@ -47,7 +47,7 @@ glib::wrapper! {
impl MessageReactionList {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn set_reaction_list(&self, reaction_list: &ReactionList) {

2
src/session/content/room_history/message_row/reply.rs

@ -48,7 +48,7 @@ glib::wrapper! {
impl MessageReply {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn set_related_content_sender(&self, user: &User) {

2
src/session/content/room_history/message_row/text.rs

@ -57,7 +57,7 @@ glib::wrapper! {
impl MessageText {
/// Creates a text widget.
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Display the given plain text.

18
src/session/content/room_history/mod.rs

@ -253,7 +253,7 @@ mod imp {
glib::ParamSpecBoolean::builder("sticky")
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("related-event-type", RelatedEventType::default())
glib::ParamSpecEnum::builder::<RelatedEventType>("related-event-type")
.read_only()
.build(),
glib::ParamSpecObject::builder::<Event>("related-event")
@ -348,7 +348,6 @@ mod imp {
}));
let key_events = gtk::EventControllerKey::new();
self.message_entry.add_controller(&key_events);
self.message_entry
.connect_paste_clipboard(clone!(@weak obj => move |entry| {
let formats = obj.clipboard().formats();
@ -386,6 +385,7 @@ mod imp {
Inhibit(false)
}
}));
self.message_entry.add_controller(key_events);
let buffer = self
.message_entry
@ -443,7 +443,7 @@ glib::wrapper! {
#[gtk::template_callbacks]
impl RoomHistory {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether a compact view is used.
@ -521,7 +521,7 @@ impl RoomHistory {
// TODO: use gtk::MultiSelection to allow selection
let model = room
.as_ref()
.map(|room| gtk::NoSelection::new(Some(room.timeline())));
.map(|room| gtk::NoSelection::new(Some(room.timeline().clone())));
imp.listview.set_model(model.as_ref());
imp.is_loading.set(false);
@ -998,9 +998,9 @@ impl RoomHistory {
async fn send_file(&self, file: gio::File) {
let attributes: &[&str] = &[
*gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
*gio::FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
*gio::FILE_ATTRIBUTE_STANDARD_SIZE,
gio::FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
gio::FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
gio::FILE_ATTRIBUTE_STANDARD_SIZE,
];
// Read mime type.
@ -1068,7 +1068,7 @@ impl RoomHistory {
}
fn setup_drop_target(&self) {
let imp = imp::RoomHistory::from_instance(self);
let imp = self.imp();
let target = gtk::DropTarget::new(
gio::File::static_type(),
@ -1097,7 +1097,7 @@ impl RoomHistory {
}),
);
imp.drag_overlay.set_drop_target(&target);
imp.drag_overlay.set_drop_target(target);
}
async fn read_clipboard(&self) {

2
src/session/content/room_history/state_row/creation.rs

@ -45,7 +45,7 @@ glib::wrapper! {
impl StateCreation {
pub fn new(event: &FullStateEventContent<RoomCreateEventContent>) -> Self {
let obj: Self = glib::Object::new(&[]);
let obj: Self = glib::Object::new();
obj.set_event(event);
obj
}

2
src/session/content/room_history/state_row/mod.rs

@ -58,7 +58,7 @@ glib::wrapper! {
impl StateRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn update_with_other_state(&self, other_state: &OtherState) {

2
src/session/content/room_history/state_row/tombstone.rs

@ -42,7 +42,7 @@ glib::wrapper! {
impl StateTombstone {
pub fn new(event: &FullStateEventContent<RoomTombstoneEventContent>) -> Self {
let obj: Self = glib::Object::new(&[]);
let obj: Self = glib::Object::new();
obj.set_event(event);
obj
}

2
src/session/content/room_history/typing_row.rs

@ -100,7 +100,7 @@ glib::wrapper! {
impl TypingRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The list of members that are currently typing.

4
src/session/content/verification/emoji.rs

@ -1,5 +1,5 @@
use adw::subclass::prelude::*;
use gtk::{glib, prelude::*, CompositeTemplate};
use gtk::{glib, CompositeTemplate};
mod imp {
use glib::subclass::InitializingObject;
@ -43,7 +43,7 @@ glib::wrapper! {
impl Emoji {
pub fn new(symbol: &str, name: &str) -> Self {
let obj: Self = glib::Object::new(&[]);
let obj: Self = glib::Object::new();
obj.set_emoji(symbol, name);
obj

6
src/session/content/verification/identity_verification_widget.rs

@ -464,9 +464,9 @@ impl IdentityVerificationWidget {
.spacing(24)
.css_classes(vec!["emoji".to_string()])
.build();
container.append(&gtk::Label::builder().label(&a.to_string()).build());
container.append(&gtk::Label::builder().label(&b.to_string()).build());
container.append(&gtk::Label::builder().label(&c.to_string()).build());
container.append(&gtk::Label::builder().label(a.to_string()).build());
container.append(&gtk::Label::builder().label(b.to_string()).build());
container.append(&gtk::Label::builder().label(c.to_string()).build());
imp.emoji_row_1.append(&container);
}
}

10
src/session/media_viewer.rs

@ -120,7 +120,7 @@ mod imp {
obj.queue_draw();
}));
let animation = adw::TimedAnimation::new(&*obj, 0.0, 1.0, ANIMATION_DURATION, &target);
let animation = adw::TimedAnimation::new(&*obj, 0.0, 1.0, ANIMATION_DURATION, target);
self.animation.set(animation).unwrap();
let swipe_tracker = adw::SwipeTracker::new(&*obj);
@ -144,7 +144,7 @@ mod imp {
swipe_progress,
0.0,
CANCEL_SWIPE_ANIMATION_DURATION,
&target,
target,
);
animation.set_easing(adw::Easing::EaseOutCubic);
animation.connect_done(clone!(@weak obj => move |_| {
@ -222,8 +222,8 @@ mod imp {
self.swipe_progress.get()
}
fn snap_points(&self) -> &[f64] {
&[-1.0, 0.0, 1.0]
fn snap_points(&self) -> Vec<f64> {
vec![-1.0, 0.0, 1.0]
}
fn swipe_area(&self, _: adw::NavigationDirection, _: bool) -> gdk::Rectangle {
@ -240,7 +240,7 @@ glib::wrapper! {
#[gtk::template_callbacks]
impl MediaViewer {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Reveal this widget by transitioning from `source_widget`.

4
src/session/mod.rs

@ -329,7 +329,7 @@ glib::wrapper! {
impl Session {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn session_id(&self) -> Option<&str> {
@ -714,7 +714,7 @@ impl Session {
}));
dialog.set_transient_for(self.parent_window().as_ref());
if dialog.run_future().await == "join" {
if dialog.choose_future().await == "join" {
let (room_id, via) = match parse_room(&entry.text()) {
Some(room) => room,
None => return,

6
src/session/room/member.rs

@ -102,7 +102,7 @@ mod imp {
.maximum(POWER_LEVEL_MAX)
.read_only()
.build(),
glib::ParamSpecEnum::builder("membership", Membership::default())
glib::ParamSpecEnum::builder::<Membership>("membership")
.read_only()
.build(),
glib::ParamSpecUInt64::builder("latest-activity")
@ -180,7 +180,7 @@ impl Member {
/// This member's membership state.
pub fn membership(&self) -> Membership {
let imp = imp::Member::from_instance(self);
let imp = self.imp();
imp.membership.get()
}
@ -189,7 +189,7 @@ impl Member {
if self.membership() == membership {
return;
}
let imp = imp::Member::from_instance(self);
let imp = self.imp();
imp.membership.replace(membership);
self.notify("membership");
}

2
src/session/room/mod.rs

@ -148,7 +148,7 @@ mod imp {
glib::ParamSpecUInt64::builder("notification-count")
.read_only()
.build(),
glib::ParamSpecEnum::builder("category", RoomType::default())
glib::ParamSpecEnum::builder::<RoomType>("category")
.explicit_notify()
.build(),
glib::ParamSpecString::builder("topic")

2
src/session/room/power_levels.rs

@ -64,7 +64,7 @@ glib::wrapper! {
impl PowerLevels {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The source of the power levels information.

2
src/session/room/reaction_list.rs

@ -57,7 +57,7 @@ glib::wrapper! {
impl ReactionList {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The user of the parent session.

2
src/session/room/timeline/mod.rs

@ -77,7 +77,7 @@ mod imp {
.construct_only()
.build(),
glib::ParamSpecBoolean::builder("empty").read_only().build(),
glib::ParamSpecEnum::builder("state", TimelineState::default())
glib::ParamSpecEnum::builder::<TimelineState>("state")
.read_only()
.build(),
]

2
src/session/room/timeline/timeline_new_messages_divider.rs

@ -26,6 +26,6 @@ glib::wrapper! {
impl TimelineNewMessagesDivider {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
}

10
src/session/room/timeline/timeline_placeholder.rs

@ -35,11 +35,9 @@ mod imp {
impl ObjectImpl for TimelinePlaceholder {
fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("kind", PlaceholderKind::default())
.construct_only()
.build(),
]
vec![glib::ParamSpecEnum::builder::<PlaceholderKind>("kind")
.construct_only()
.build()]
});
PROPERTIES.as_ref()
@ -70,7 +68,7 @@ glib::wrapper! {
impl TimelinePlaceholder {
pub fn spinner() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn typing() -> Self {

2
src/session/room/typing_list.rs

@ -68,7 +68,7 @@ glib::wrapper! {
impl TypingList {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
pub fn members(&self) -> Vec<Member> {

6
src/session/sidebar/category.rs

@ -33,7 +33,7 @@ mod imp {
use once_cell::sync::Lazy;
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("type", CategoryType::default())
glib::ParamSpecEnum::builder::<CategoryType>("type")
.construct_only()
.build(),
glib::ParamSpecString::builder("display-name")
@ -146,13 +146,13 @@ impl Category {
.filter(|r| CategoryType::from(r.category()) == type_)
.is_some()
});
let filter_model = gtk::FilterListModel::new(Some(&model), Some(&filter));
let filter_model = gtk::FilterListModel::new(Some(model), Some(filter));
let sorter = gtk::NumericSorter::builder()
.expression(Room::this_expression("latest-unread"))
.sort_order(gtk::SortType::Descending)
.build();
let sort_model = gtk::SortListModel::new(Some(&filter_model), Some(&sorter));
let sort_model = gtk::SortListModel::new(Some(filter_model), Some(sorter));
sort_model.upcast()
} else {
model

9
src/session/sidebar/category_row.rs

@ -52,9 +52,12 @@ mod imp {
.construct()
.build(),
glib::ParamSpecString::builder("label").read_only().build(),
glib::ParamSpecEnum::builder("show-label-for-category", CategoryType::None)
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder_with_default(
"show-label-for-category",
CategoryType::None,
)
.explicit_notify()
.build(),
]
});

2
src/session/sidebar/entry.rs

@ -24,7 +24,7 @@ mod imp {
use once_cell::sync::Lazy;
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpecEnum::builder("type", EntryType::default())
glib::ParamSpecEnum::builder::<EntryType>("type")
.construct_only()
.build(),
glib::ParamSpecString::builder("display-name")

2
src/session/sidebar/entry_row.rs

@ -69,7 +69,7 @@ glib::wrapper! {
impl EntryRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The entry of this row.

9
src/session/sidebar/item_list.rs

@ -38,9 +38,12 @@ mod imp {
glib::ParamSpecObject::builder::<VerificationList>("verification-list")
.construct_only()
.build(),
glib::ParamSpecEnum::builder("show-all-for-category", CategoryType::None)
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder_with_default(
"show-all-for-category",
CategoryType::None,
)
.explicit_notify()
.build(),
]
});

16
src/session/sidebar/mod.rs

@ -141,9 +141,12 @@ mod imp {
glib::ParamSpecObject::builder::<glib::Object>("selected-item")
.explicit_notify()
.build(),
glib::ParamSpecEnum::builder("drop-source-type", CategoryType::None)
.read_only()
.build(),
glib::ParamSpecEnum::builder_with_default(
"drop-source-type",
CategoryType::None,
)
.read_only()
.build(),
]
});
@ -267,7 +270,7 @@ glib::wrapper! {
impl Sidebar {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// Whether a compact view is used.
@ -311,7 +314,7 @@ impl Sidebar {
.build(),
));
let tree_model = gtk::TreeListModel::new(&item_list, false, true, |item| {
let tree_model = gtk::TreeListModel::new(item_list, false, true, |item| {
item.clone().downcast::<gio::ListModel>().ok()
});
@ -328,12 +331,11 @@ impl Sidebar {
.expression(&room_expression)
.ignore_case(true)
.build();
let filter_model = gtk::FilterListModel::new(Some(&tree_model), Some(&filter));
imp.room_search_entry
.bind_property("text", &filter, "search")
.flags(glib::BindingFlags::SYNC_CREATE)
.build();
let filter_model = gtk::FilterListModel::new(Some(tree_model), Some(filter));
let selection = Selection::new(Some(&filter_model));
self.bind_property("selected-item", &selection, "selected-item")

4
src/session/sidebar/room_row.rs

@ -118,7 +118,7 @@ mod imp {
drag.connect_drag_end(clone!(@weak obj => move |_, _, _| {
obj.drag_end();
}));
obj.add_controller(&drag);
obj.add_controller(drag);
}
fn dispose(&self) {
@ -157,7 +157,7 @@ glib::wrapper! {
impl RoomRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The room represented by this row.

2
src/session/sidebar/row.rs

@ -96,7 +96,7 @@ mod imp {
obj.drop_end(v)
}),
);
obj.add_controller(&drop);
obj.add_controller(drop);
}
}

2
src/session/sidebar/verification_row.rs

@ -73,7 +73,7 @@ glib::wrapper! {
impl VerificationRow {
pub fn new() -> Self {
glib::Object::new(&[])
glib::Object::new()
}
/// The identity verification represented by this row.

4
src/session/verification/identity_verification.rs

@ -194,10 +194,10 @@ mod imp {
glib::ParamSpecObject::builder::<Session>("session")
.construct_only()
.build(),
glib::ParamSpecEnum::builder("state", State::default())
glib::ParamSpecEnum::builder::<State>("state")
.construct_only()
.build(),
glib::ParamSpecEnum::builder("mode", Mode::default())
glib::ParamSpecEnum::builder::<Mode>("mode")
.read_only()
.build(),
glib::ParamSpecFlags::builder::<SupportedMethods>("supported-methods")

4
src/utils/macros.rs

@ -157,10 +157,10 @@ macro_rules! _add_toast {
use gtk::prelude::WidgetExt;
if let Some(root) = $widget.root() {
if let Some(window) = root.downcast_ref::<$crate::Window>() {
window.add_toast($toast.as_ref());
window.add_toast($toast);
} else if let Some(window) = root.downcast_ref::<adw::PreferencesWindow>() {
use adw::prelude::PreferencesWindowExt;
window.add_toast($toast.as_ref());
window.add_toast($toast);
} else {
panic!("Trying to display a toast when the parent doesn't support it");
}

2
src/window.rs

@ -374,7 +374,7 @@ impl Window {
}
/// This appends a new toast to the list
pub fn add_toast(&self, toast: &adw::Toast) {
pub fn add_toast(&self, toast: adw::Toast) {
self.imp().toast_overlay.add_toast(toast);
}

Loading…
Cancel
Save