aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/contact_details
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-10-05 16:31:38 +0200
committerfiaxh <git@lightrise.org>2025-10-05 17:59:08 +0200
commit61f20787151febd54b7271f686bc4f9de5613c15 (patch)
tree08d303a97707a2f7de6fa1b4ca0bd70fde24da56 /main/src/ui/contact_details
parente14c7d933bfa0bdd97781857b9341854232058a2 (diff)
Cleanup: Remove LabelHybrid, conversation details preferences
Diffstat (limited to 'main/src/ui/contact_details')
-rw-r--r--main/src/ui/contact_details/permissions_provider.vala15
-rw-r--r--main/src/ui/contact_details/settings_provider.vala61
2 files changed, 23 insertions, 53 deletions
diff --git a/main/src/ui/contact_details/permissions_provider.vala b/main/src/ui/contact_details/permissions_provider.vala
index a0ca4d13..54eac7b1 100644
--- a/main/src/ui/contact_details/permissions_provider.vala
+++ b/main/src/ui/contact_details/permissions_provider.vala
@@ -1,5 +1,3 @@
-using Gtk;
-
using Dino.Entities;
namespace Dino.Ui.ContactDetails {
@@ -20,10 +18,15 @@ public class PermissionsProvider : Plugins.ContactDetailsProvider, Object {
Xmpp.Jid? own_jid = stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(conversation.counterpart, conversation.account);
if (own_jid == null) return;
- if (stream_interactor.get_module(MucManager.IDENTITY).get_role(own_jid, conversation.account) == Xmpp.Xep.Muc.Role.VISITOR){
- Button voice_request = new Button.with_label(_("Request"));
- voice_request.clicked.connect(()=>stream_interactor.get_module(MucManager.IDENTITY).request_voice(conversation.account, conversation.counterpart));
- contact_details.add("Permissions", _("Request permission to send messages"), "", voice_request);
+ if (true || stream_interactor.get_module(MucManager.IDENTITY).get_role(own_jid, conversation.account) == Xmpp.Xep.Muc.Role.VISITOR) {
+ var view_model = new Ui.ViewModel.PreferencesRow.Button() {
+ title = _("Request permission to send messages"),
+ button_text = _("Request")
+ };
+ view_model.clicked.connect(()=> {
+ stream_interactor.get_module(MucManager.IDENTITY).request_voice(conversation.account, conversation.counterpart);
+ });
+ contact_details.add_settings_action_row(view_model);
}
}
diff --git a/main/src/ui/contact_details/settings_provider.vala b/main/src/ui/contact_details/settings_provider.vala
index c6b87652..83794692 100644
--- a/main/src/ui/contact_details/settings_provider.vala
+++ b/main/src/ui/contact_details/settings_provider.vala
@@ -10,9 +10,6 @@ public class SettingsProvider : Plugins.ContactDetailsProvider, Object {
private StreamInteractor stream_interactor;
- private string DETAILS_HEADLINE_CHAT = "Settings";
- private string DETAILS_HEADLINE_ROOM = "Local Settings";
-
public SettingsProvider(StreamInteractor stream_interactor) {
this.stream_interactor = stream_interactor;
}
@@ -21,54 +18,24 @@ public class SettingsProvider : Plugins.ContactDetailsProvider, Object {
if (type != Plugins.WidgetType.GTK4) return;
if (!stream_interactor.get<MucManager>().is_public_room(conversation.account, conversation.counterpart)) {
- string details_headline = conversation.type_ == Conversation.Type.GROUPCHAT ? DETAILS_HEADLINE_ROOM : DETAILS_HEADLINE_CHAT;
-
- ComboBoxText combobox_typing = get_combobox(Dino.Application.get_default().settings.send_typing);
- combobox_typing.active_id = get_setting_id(conversation.send_typing);
- combobox_typing.changed.connect(() => { conversation.send_typing = get_setting(combobox_typing.active_id); } );
- contact_details.add(details_headline, _("Send typing notifications"), "", combobox_typing);
+ string typing_default_setting = Dino.Application.get_default().settings.send_typing ? _("On") : _("Off");
+ var setting_model = new Dino.Ui.ViewModel.PreferencesRow.ComboBox() { title = _("Send typing notifications") };
+ setting_model.items.add(_("Default: %s").printf(typing_default_setting));
+ setting_model.items.add(_("On"));
+ setting_model.items.add(_("Off"));
+ conversation.bind_property("send-typing", setting_model, "active-item", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
+ contact_details.add_settings_action_row(setting_model);
}
if (conversation.type_ == Conversation.Type.CHAT) {
- ComboBoxText combobox_marker = get_combobox(Dino.Application.get_default().settings.send_marker);
- contact_details.add(DETAILS_HEADLINE_CHAT, _("Send read receipts"), "", combobox_marker);
- combobox_marker.active_id = get_setting_id(conversation.send_marker);
- combobox_marker.changed.connect(() => { conversation.send_marker = get_setting(combobox_marker.active_id); } );
- }
- }
-
- private Conversation.Setting get_setting(string id) {
- switch (id) {
- case "default":
- return Conversation.Setting.DEFAULT;
- case "on":
- return Conversation.Setting.ON;
- case "off":
- return Conversation.Setting.OFF;
+ string marker_default_setting = Dino.Application.get_default().settings.send_marker ? _("On") : _("Off");
+ var setting_model = new Dino.Ui.ViewModel.PreferencesRow.ComboBox() { title = _("Send read receipts") };
+ setting_model.items.add(_("Default: %s").printf(marker_default_setting));
+ setting_model.items.add(_("On"));
+ setting_model.items.add(_("Off"));
+ conversation.bind_property("send-marker", setting_model, "active-item", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL);
+ contact_details.add_settings_action_row(setting_model);
}
- assert_not_reached();
- }
-
- private string get_setting_id(Conversation.Setting setting) {
- switch (setting) {
- case Conversation.Setting.DEFAULT:
- return "default";
- case Conversation.Setting.ON:
- return "on";
- case Conversation.Setting.OFF:
- return "off";
- }
- assert_not_reached();
- }
-
- private ComboBoxText get_combobox(bool default_val) {
- ComboBoxText combobox = new ComboBoxText();
- combobox = new ComboBoxText();
- string default_setting = default_val ? _("On") : _("Off");
- combobox.append("default", _("Default: %s").printf(default_setting) );
- combobox.append("on", _("On"));
- combobox.append("off", _("Off"));
- return combobox;
}
public Object? get_widget(Conversation conversation) {