diff --git a/src/session/model/mod.rs b/src/session/model/mod.rs index 93f223cc..bbdf58cb 100644 --- a/src/session/model/mod.rs +++ b/src/session/model/mod.rs @@ -28,8 +28,8 @@ pub use self::{ session::{Session, SessionState}, session_settings::{SessionSettings, StoredSessionSettings}, sidebar_data::{ - Category, CategoryType, IconItem, ItemList, ItemType, Selection, SidebarItem, - SidebarItemImpl, SidebarListModel, + Category, CategoryType, ItemList, Selection, SidebarIconItem, SidebarIconItemType, + SidebarItem, SidebarItemImpl, SidebarListModel, }, user::{User, UserExt}, user_sessions_list::{UserSession, UserSessionsList}, diff --git a/src/session/model/sidebar_data/icon_item.rs b/src/session/model/sidebar_data/icon_item.rs index 9dcb4e0f..304de9c8 100644 --- a/src/session/model/sidebar_data/icon_item.rs +++ b/src/session/model/sidebar_data/icon_item.rs @@ -7,14 +7,14 @@ use super::{CategoryType, SidebarItem, SidebarItemExt, SidebarItemImpl}; #[derive(Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum)] #[repr(u32)] -#[enum_type(name = "ItemType")] -pub enum ItemType { +#[enum_type(name = "SidebarIconItemType")] +pub enum SidebarIconItemType { #[default] Explore = 0, Forget = 1, } -impl ItemType { +impl SidebarIconItemType { /// The icon name for this item type. pub fn icon_name(&self) -> &'static str { match self { @@ -24,7 +24,7 @@ impl ItemType { } } -impl fmt::Display for ItemType { +impl fmt::Display for SidebarIconItemType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let label = match self { Self::Explore => gettext("Explore"), @@ -41,11 +41,11 @@ mod imp { use super::*; #[derive(Debug, Default, glib::Properties)] - #[properties(wrapper_type = super::IconItem)] - pub struct IconItem { + #[properties(wrapper_type = super::SidebarIconItem)] + pub struct SidebarIconItem { /// The type of this item. - #[property(get, construct_only, builder(ItemType::default()))] - pub r#type: Cell, + #[property(get, construct_only, builder(SidebarIconItemType::default()))] + pub item_type: Cell, /// The display name of this item. #[property(get = Self::display_name)] pub display_name: PhantomData, @@ -55,46 +55,48 @@ mod imp { } #[glib::object_subclass] - impl ObjectSubclass for IconItem { - const NAME: &'static str = "IconItem"; - type Type = super::IconItem; + impl ObjectSubclass for SidebarIconItem { + const NAME: &'static str = "SidebarIconItem"; + type Type = super::SidebarIconItem; type ParentType = SidebarItem; } #[glib::derived_properties] - impl ObjectImpl for IconItem {} + impl ObjectImpl for SidebarIconItem {} - impl SidebarItemImpl for IconItem { + impl SidebarItemImpl for SidebarIconItem { fn update_visibility(&self, for_category: CategoryType) { let obj = self.obj(); - match self.r#type.get() { - ItemType::Explore => obj.set_visible(true), - ItemType::Forget => obj.set_visible(for_category == CategoryType::Left), + match self.item_type.get() { + SidebarIconItemType::Explore => obj.set_visible(true), + SidebarIconItemType::Forget => obj.set_visible(for_category == CategoryType::Left), } } } - impl IconItem { + impl SidebarIconItem { /// The display name of this item. fn display_name(&self) -> String { - self.r#type.get().to_string() + self.item_type.get().to_string() } /// The icon name used for this item. fn icon_name(&self) -> String { - self.r#type.get().icon_name().to_owned() + self.item_type.get().icon_name().to_owned() } } } glib::wrapper! { /// A top-level row in the sidebar with an icon. - pub struct IconItem(ObjectSubclass) @extends SidebarItem; + pub struct SidebarIconItem(ObjectSubclass) @extends SidebarItem; } -impl IconItem { - pub fn new(type_: ItemType) -> Self { - glib::Object::builder().property("type", type_).build() +impl SidebarIconItem { + pub fn new(item_type: SidebarIconItemType) -> Self { + glib::Object::builder() + .property("item-type", item_type) + .build() } } diff --git a/src/session/model/sidebar_data/item_list.rs b/src/session/model/sidebar_data/item_list.rs index a255da55..92ae91cd 100644 --- a/src/session/model/sidebar_data/item_list.rs +++ b/src/session/model/sidebar_data/item_list.rs @@ -1,6 +1,8 @@ use gtk::{gio, glib, glib::clone, prelude::*, subclass::prelude::*}; -use super::{Category, CategoryType, IconItem, ItemType, SidebarItem, SidebarItemExt}; +use super::{ + Category, CategoryType, SidebarIconItem, SidebarIconItemType, SidebarItem, SidebarItemExt, +}; use crate::session::model::{RoomList, VerificationList}; mod imp { @@ -43,14 +45,14 @@ mod imp { let verification_list = obj.verification_list(); let list: [SidebarItem; 8] = [ - IconItem::new(ItemType::Explore).upcast(), + SidebarIconItem::new(SidebarIconItemType::Explore).upcast(), Category::new(CategoryType::VerificationRequest, &verification_list).upcast(), Category::new(CategoryType::Invited, &room_list).upcast(), Category::new(CategoryType::Favorite, &room_list).upcast(), Category::new(CategoryType::Normal, &room_list).upcast(), Category::new(CategoryType::LowPriority, &room_list).upcast(), Category::new(CategoryType::Left, &room_list).upcast(), - IconItem::new(ItemType::Forget).upcast(), + SidebarIconItem::new(SidebarIconItemType::Forget).upcast(), ]; self.list.set(list.clone()).unwrap(); diff --git a/src/session/model/sidebar_data/mod.rs b/src/session/model/sidebar_data/mod.rs index 0a994ec5..74af2999 100644 --- a/src/session/model/sidebar_data/mod.rs +++ b/src/session/model/sidebar_data/mod.rs @@ -7,7 +7,7 @@ mod selection; pub use self::{ category::{Category, CategoryType}, - icon_item::{IconItem, ItemType}, + icon_item::{SidebarIconItem, SidebarIconItemType}, item::{SidebarItem, SidebarItemExt, SidebarItemImpl}, item_list::ItemList, list_model::SidebarListModel, diff --git a/src/session/view/content/mod.rs b/src/session/view/content/mod.rs index 3048b08c..a9b84e38 100644 --- a/src/session/view/content/mod.rs +++ b/src/session/view/content/mod.rs @@ -10,7 +10,9 @@ use self::{ explore::Explore, invite::Invite, room_details::RoomDetails, room_history::RoomHistory, }; use crate::{ - session::model::{IconItem, IdentityVerification, ItemType, Room, RoomType, Session}, + session::model::{ + IdentityVerification, Room, RoomType, Session, SidebarIconItem, SidebarIconItemType, + }, verification_view::IdentityVerificationView, }; @@ -206,8 +208,8 @@ impl Content { } } Some(o) - if o.downcast_ref::() - .is_some_and(|i| i.r#type() == ItemType::Explore) => + if o.downcast_ref::() + .is_some_and(|i| i.item_type() == SidebarIconItemType::Explore) => { imp.explore.init(); imp.stack.set_visible_child(&*imp.explore); diff --git a/src/session/view/sidebar/icon_item_row.rs b/src/session/view/sidebar/icon_item_row.rs index c46ccb4f..06155f96 100644 --- a/src/session/view/sidebar/icon_item_row.rs +++ b/src/session/view/sidebar/icon_item_row.rs @@ -1,7 +1,7 @@ use adw::subclass::prelude::BinImpl; use gtk::{self, glib, prelude::*, subclass::prelude::*, CompositeTemplate}; -use crate::session::model::{IconItem, ItemType}; +use crate::session::model::{SidebarIconItem, SidebarIconItemType}; mod imp { use std::cell::RefCell; @@ -16,7 +16,7 @@ mod imp { pub struct IconItemRow { /// The [`IconItem`] of this row. #[property(get, set = Self::set_icon_item, explicit_notify, nullable)] - pub icon_item: RefCell>, + pub icon_item: RefCell>, } #[glib::object_subclass] @@ -43,7 +43,7 @@ mod imp { impl IconItemRow { /// Set the [`IconItem`] of this row. - fn set_icon_item(&self, icon_item: Option) { + fn set_icon_item(&self, icon_item: Option) { if *self.icon_item.borrow() == icon_item { return; } @@ -51,7 +51,7 @@ mod imp { if icon_item .as_ref() - .is_some_and(|i| i.r#type() == ItemType::Forget) + .is_some_and(|i| i.item_type() == SidebarIconItemType::Forget) { obj.add_css_class("forget"); } else { diff --git a/src/session/view/sidebar/icon_item_row.ui b/src/session/view/sidebar/icon_item_row.ui index e8102e4f..89b3d4c1 100644 --- a/src/session/view/sidebar/icon_item_row.ui +++ b/src/session/view/sidebar/icon_item_row.ui @@ -7,7 +7,7 @@ - + SidebarIconItemRow @@ -20,7 +20,7 @@ True end - + SidebarIconItemRow diff --git a/src/session/view/sidebar/mod.rs b/src/session/view/sidebar/mod.rs index 9cb6f1ac..34d7f9c8 100644 --- a/src/session/view/sidebar/mod.rs +++ b/src/session/view/sidebar/mod.rs @@ -15,7 +15,7 @@ use self::{ use crate::{ account_switcher::AccountSwitcherButton, session::model::{ - Category, CategoryType, IconItem, IdentityVerification, Room, RoomType, Selection, + Category, CategoryType, IdentityVerification, Room, RoomType, Selection, SidebarIconItem, SidebarListModel, User, }, utils::expression, @@ -121,7 +121,7 @@ mod imp { match row.item() { Some(o) if o.is::() => row.set_expanded(!row.is_expanded()), Some(o) if o.is::() => model.set_selected(pos), - Some(o) if o.is::() => model.set_selected(pos), + Some(o) if o.is::() => model.set_selected(pos), Some(o) if o.is::() => model.set_selected(pos), _ => {} } diff --git a/src/session/view/sidebar/row.rs b/src/session/view/sidebar/row.rs index 4c26476e..6355d891 100644 --- a/src/session/view/sidebar/row.rs +++ b/src/session/view/sidebar/row.rs @@ -5,8 +5,8 @@ use gtk::{accessible::Relation, gdk, glib, glib::clone}; use super::{CategoryRow, IconItemRow, RoomRow, Sidebar, VerificationRow}; use crate::{ session::model::{ - Category, CategoryType, IconItem, IdentityVerification, ItemType, Room, RoomType, - SidebarItem, + Category, CategoryType, IdentityVerification, Room, RoomType, SidebarIconItem, + SidebarIconItemType, SidebarItem, }, spawn, toast, utils::{message_dialog, BoundObjectWeakRef}, @@ -135,7 +135,7 @@ mod imp { }; child.set_room(Some(room.clone())); - } else if let Some(icon_item) = item.downcast_ref::() { + } else if let Some(icon_item) = item.downcast_ref::() { let child = if let Some(child) = obj.child().and_downcast::() { child } else { @@ -207,13 +207,13 @@ impl Row { } } - /// Get the [`ItemType`] of this item. + /// Get the [`SidebarIconItemType`] of this item. /// - /// If this is not an [`IconItem`], returns `None`. - pub fn item_type(&self) -> Option { + /// If this is not a [`SidebarIconItem`], returns `None`. + pub fn item_type(&self) -> Option { self.item() - .and_downcast_ref::() - .map(|i| i.r#type()) + .and_downcast_ref::() + .map(|i| i.item_type()) } /// Handle the drag-n-drop hovering this row. @@ -234,7 +234,7 @@ impl Row { return true; } } else if let Some(item_type) = self.item_type() { - if room.category() == RoomType::Left && item_type == ItemType::Forget { + if room.category() == RoomType::Left && item_type == SidebarIconItemType::Forget { self.add_css_class("drop-active"); sidebar.set_drop_active_target_type(None); return true; @@ -264,7 +264,7 @@ impl Row { ret = true; } } else if let Some(item_type) = self.item_type() { - if room.category() == RoomType::Left && item_type == ItemType::Forget { + if room.category() == RoomType::Left && item_type == SidebarIconItemType::Forget { spawn!(clone!(@strong self as obj, @weak room => async move { obj.forget_room(&room).await; })); @@ -338,7 +338,7 @@ impl Row { } else { let is_forget_item = self .item_type() - .is_some_and(|item_type| item_type == ItemType::Forget); + .is_some_and(|item_type| item_type == SidebarIconItemType::Forget); if is_forget_item && source_type == RoomType::Left { self.remove_css_class("drop-disabled"); } else {