diff --git a/data/teleport.gresource.xml b/data/teleport.gresource.xml
index a6750ff..80df0a4 100644
--- a/data/teleport.gresource.xml
+++ b/data/teleport.gresource.xml
@@ -4,6 +4,7 @@
gtk/menus.ui
window.ui
settings.ui
+ device_settings.ui
remote_list.ui
style.css
diff --git a/src/device_settings.ui b/src/device_settings.ui
new file mode 100644
index 0000000..6e136e0
--- /dev/null
+++ b/src/device_settings.ui
@@ -0,0 +1,53 @@
+
+
+
+
+
diff --git a/src/teleport-window.c b/src/teleport-window.c
index 8a7e820..c288ba7 100644
--- a/src/teleport-window.c
+++ b/src/teleport-window.c
@@ -37,10 +37,12 @@ struct _TeleportWindowPrivate
{
GSettings *settings;
GtkWidget *gears;
+ GtkWidget *this_device_settings_button;
GtkWidget *remote_devices_box;
GtkWidget *this_device_name_label;
GtkWidget *remote_no_devices;
GtkWidget *remote_no_avahi;
+ GtkWidget *this_device_settings_entry;
};
G_DEFINE_TYPE_WITH_PRIVATE(TeleportWindow, teleport_window, GTK_TYPE_APPLICATION_WINDOW);
@@ -60,6 +62,15 @@ change_download_directory_cb (GtkWidget *widget,
g_free(newDownloadDir);
}
+static void
+on_click_this_device_settings_button (GtkWidget *widget,
+ gpointer user_data) {
+ TeleportWindowPrivate *priv = (TeleportWindowPrivate *) user_data;
+ g_settings_set_string (priv->settings,
+ "device-name",
+ gtk_entry_get_text (GTK_ENTRY (priv->this_device_settings_entry)));
+}
+
static void
teleport_window_init (TeleportWindow *win)
{
@@ -120,6 +131,27 @@ teleport_window_init (TeleportWindow *win)
//g_object_unref (menu);
//g_object_unref (label);
g_object_unref (builder);
+
+ /* Add popover for device settings */
+ builder = gtk_builder_new_from_resource ("/com/frac_tion/teleport/device_settings.ui");
+ menu = GTK_WIDGET (gtk_builder_get_object (builder, "device-settings"));
+ gtk_menu_button_set_popover(GTK_MENU_BUTTON (priv->this_device_settings_button), menu);
+
+ priv->this_device_settings_entry = GTK_WIDGET (gtk_builder_get_object (builder,
+ "this_device_settings_entry"));
+ g_settings_bind (priv->settings,
+ "device-name",
+ priv->this_device_settings_entry,
+ "text",
+ G_SETTINGS_BIND_GET);
+
+ g_signal_connect (GTK_WIDGET (gtk_builder_get_object (builder, "this_device_settings_button")),
+ "clicked", G_CALLBACK (on_click_this_device_settings_button), priv);
+
+ g_signal_connect (priv->this_device_settings_entry,
+ "activate", G_CALLBACK (on_click_this_device_settings_button), priv);
+
+ g_object_unref (builder);
}
@@ -188,6 +220,7 @@ teleport_window_class_init (TeleportWindowClass *class)
"/com/frac_tion/teleport/window.ui");
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportWindow, gears);
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportWindow, this_device_settings_button);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportWindow, this_device_name_label);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportWindow, remote_no_devices);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), TeleportWindow, remote_devices_box);
diff --git a/src/window.ui b/src/window.ui
index fe0b0c6..feb0360 100644
--- a/src/window.ui
+++ b/src/window.ui
@@ -132,8 +132,8 @@
-