gnome: TURN server credentials UI
depends on lrc commit 1ec69c9116550c85dce3c7bb9ee45b41cc2cb25d
Issue: #78301
Change-Id: I69a6e58b60921990b75ccf8d312d6b57d315621b
diff --git a/src/accountadvancedtab.cpp b/src/accountadvancedtab.cpp
index 372845f..1aeeaa3 100644
--- a/src/accountadvancedtab.cpp
+++ b/src/accountadvancedtab.cpp
@@ -68,9 +68,14 @@
GtkWidget *spinbutton_published_port;
GtkWidget *adjustment_published_port;
GtkWidget *checkbutton_use_stun;
- GtkWidget *entry_stun_server;
+ GtkWidget *grid_stun;
+ GtkWidget *entry_stunserver;
GtkWidget *checkbutton_use_turn;
- GtkWidget *entry_turn_server;
+ GtkWidget *grid_turn;
+ GtkWidget *entry_turnserver;
+ GtkWidget *entry_turnusername;
+ GtkWidget *entry_turnpassword;
+ GtkWidget *entry_turnrealm;
GtkWidget *adjustment_audio_port_min;
GtkWidget *adjustment_audio_port_max;
GtkWidget *adjustment_video_port_min;
@@ -128,9 +133,14 @@
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, spinbutton_published_port);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, adjustment_published_port);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, checkbutton_use_stun);
- gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_stun_server);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, grid_stun);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_stunserver);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, checkbutton_use_turn);
- gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_turn_server);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, grid_turn);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_turnserver);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_turnusername);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_turnpassword);
+ gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, entry_turnrealm);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, adjustment_audio_port_min);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, adjustment_audio_port_max);
gtk_widget_class_bind_template_child_private(GTK_WIDGET_CLASS (klass), AccountAdvancedTab, adjustment_video_port_min);
@@ -206,7 +216,7 @@
priv->account->setSipStunEnabled(use_stun);
/* disactivate the stun server entry if stun is disabled */
- gtk_widget_set_sensitive(priv->entry_stun_server, use_stun);
+ gtk_widget_set_sensitive(priv->grid_stun, use_stun);
}
static void
@@ -229,7 +239,7 @@
priv->account->setTurnEnabled(use_turn);
/* disactivate the turn server entry if turn is disabled */
- gtk_widget_set_sensitive(priv->entry_turn_server, use_turn);
+ gtk_widget_set_sensitive(priv->grid_turn, use_turn);
}
static void
@@ -242,6 +252,33 @@
}
static void
+turn_serverusername_changed(GtkEntry *entry, AccountAdvancedTab *self)
+{
+ g_return_if_fail(IS_ACCOUNT_ADVANCED_TAB(self));
+ AccountAdvancedTabPrivate *priv = ACCOUNT_ADVANCED_TAB_GET_PRIVATE(self);
+
+ priv->account->setTurnServerUsername(gtk_entry_get_text(entry));
+}
+
+static void
+turn_serverpassword_changed(GtkEntry *entry, AccountAdvancedTab *self)
+{
+ g_return_if_fail(IS_ACCOUNT_ADVANCED_TAB(self));
+ AccountAdvancedTabPrivate *priv = ACCOUNT_ADVANCED_TAB_GET_PRIVATE(self);
+
+ priv->account->setTurnServerPassword(gtk_entry_get_text(entry));
+}
+
+static void
+turn_serverrealm_changed(GtkEntry *entry, AccountAdvancedTab *self)
+{
+ g_return_if_fail(IS_ACCOUNT_ADVANCED_TAB(self));
+ AccountAdvancedTabPrivate *priv = ACCOUNT_ADVANCED_TAB_GET_PRIVATE(self);
+
+ priv->account->setTurnServerRealm(gtk_entry_get_text(entry));
+}
+
+static void
audio_port_min_changed(GtkAdjustment *adjustment, AccountAdvancedTab *self)
{
g_return_if_fail(IS_ACCOUNT_ADVANCED_TAB(self));
@@ -412,26 +449,38 @@
/* STUN */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->checkbutton_use_stun),
priv->account->isSipStunEnabled());
- gtk_entry_set_text(GTK_ENTRY(priv->entry_stun_server),
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_stunserver),
priv->account->sipStunServer().toUtf8().constData());
- gtk_widget_set_sensitive(priv->entry_stun_server,
+ gtk_widget_set_sensitive(priv->grid_stun,
priv->account->isSipStunEnabled());
g_signal_connect(priv->checkbutton_use_stun,
"toggled", G_CALLBACK(stun_enabled_toggled), self);
- g_signal_connect(priv->entry_stun_server,
+ g_signal_connect(priv->entry_stunserver,
"changed", G_CALLBACK(stun_server_changed), self);
/* TURN */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->checkbutton_use_turn),
priv->account->isTurnEnabled());
- gtk_entry_set_text(GTK_ENTRY(priv->entry_turn_server),
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnserver),
priv->account->turnServer().toUtf8().constData());
- gtk_widget_set_sensitive(priv->entry_turn_server,
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnusername),
+ priv->account->turnServerUsername().toUtf8().constData());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnpassword),
+ priv->account->turnServerPassword().toUtf8().constData());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnrealm),
+ priv->account->turnServerRealm().toUtf8().constData());
+ gtk_widget_set_sensitive(priv->grid_turn,
priv->account->isTurnEnabled());
g_signal_connect(priv->checkbutton_use_turn,
"toggled", G_CALLBACK(turn_enabled_toggled), self);
- g_signal_connect(priv->entry_turn_server,
+ g_signal_connect(priv->entry_turnserver,
"changed", G_CALLBACK(turn_server_changed), self);
+ g_signal_connect(priv->entry_turnusername,
+ "changed", G_CALLBACK(turn_serverusername_changed), self);
+ g_signal_connect(priv->entry_turnpassword,
+ "changed", G_CALLBACK(turn_serverpassword_changed), self);
+ g_signal_connect(priv->entry_turnrealm,
+ "changed", G_CALLBACK(turn_serverrealm_changed), self);
/* audio/video rtp port range */
gtk_adjustment_set_value(GTK_ADJUSTMENT(priv->adjustment_audio_port_min),
@@ -496,14 +545,22 @@
/* STUN */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->checkbutton_use_stun),
priv->account->isSipStunEnabled());
- gtk_entry_set_text(GTK_ENTRY(priv->entry_stun_server),
+ gtk_widget_set_sensitive(priv->grid_stun, priv->account->isSipStunEnabled());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_stunserver),
priv->account->sipStunServer().toUtf8().constData());
/* TURN */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->checkbutton_use_turn),
priv->account->isTurnEnabled());
- gtk_entry_set_text(GTK_ENTRY(priv->entry_turn_server),
+ gtk_widget_set_sensitive(priv->grid_turn, priv->account->isTurnEnabled());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnserver),
priv->account->turnServer().toUtf8().constData());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnusername),
+ priv->account->turnServerUsername().toUtf8().constData());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnpassword),
+ priv->account->turnServerPassword().toUtf8().constData());
+ gtk_entry_set_text(GTK_ENTRY(priv->entry_turnrealm),
+ priv->account->turnServerRealm().toUtf8().constData());
/* audio/video rtp port range */
gtk_adjustment_set_value(GTK_ADJUSTMENT(priv->adjustment_audio_port_min),