[frogr] Added new configuration options to settings dialog
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Added new configuration options to settings dialog
- Date: Mon, 17 Jan 2011 16:58:15 +0000 (UTC)
commit ce8935ac32804ac65c77e26966610c4f4fc36246
Author: Mario Sanchez Prada <msanchez igalia com>
Date: Mon Jan 17 17:08:10 2011 +0100
Added new configuration options to settings dialog
src/frogr-details-dialog.c | 2 +-
src/frogr-settings-dialog.c | 278 ++++++++++++++++++++++++++++++++++---------
2 files changed, 225 insertions(+), 55 deletions(-)
---
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index db3838d..4b702e1 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -163,7 +163,7 @@ _create_widgets (FrogrDetailsDialog *self)
gtk_container_add (GTK_CONTAINER (align), widget);
gtk_box_pack_start (GTK_BOX (section_vbox), align, FALSE, FALSE, 0);
- internal_hbox = gtk_hbox_new (FALSE, 6);
+ internal_hbox = gtk_hbox_new (FALSE, 12);
widget = gtk_radio_button_new (NULL);
gtk_button_set_label (GTK_BUTTON (widget), _("Private"));
diff --git a/src/frogr-settings-dialog.c b/src/frogr-settings-dialog.c
index 0325b45..d3e179e 100644
--- a/src/frogr-settings-dialog.c
+++ b/src/frogr-settings-dialog.c
@@ -45,6 +45,13 @@ typedef struct _FrogrSettingsDialogPrivate {
GtkWidget *friend_cb;
GtkWidget *family_cb;
GtkWidget *open_browser_after_upload_cb;
+ GtkWidget *show_in_search_cb;
+ GtkWidget *photo_content_rb;
+ GtkWidget *sshot_content_rb;
+ GtkWidget *other_content_rb;
+ GtkWidget *safe_rb;
+ GtkWidget *moderate_rb;
+ GtkWidget *restricted_rb;
GtkWidget *use_proxy_cb;
GtkWidget *proxy_host_label;
@@ -60,6 +67,9 @@ typedef struct _FrogrSettingsDialogPrivate {
gboolean family_visibility;
gboolean friend_visibility;
gboolean open_browser_after_upload;
+ gboolean show_in_search;
+ FspSafetyLevel safety_level;
+ FspContentType content_type;
gboolean use_proxy;;
gchar *proxy_host;
@@ -103,6 +113,7 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
GtkWidget *vbox = NULL;
GtkWidget *box1 = NULL;
GtkWidget *box2 = NULL;
+ GtkWidget *padding_hbox = NULL;
GtkWidget *align = NULL;
GtkWidget *label = NULL;
GtkWidget *rbutton = NULL;
@@ -110,7 +121,7 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
gchar *markup = NULL;
priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
- vbox = gtk_vbox_new (FALSE, 0);
+ vbox = gtk_vbox_new (FALSE, 6);
/* Default Visibility */
@@ -125,46 +136,41 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
gtk_container_add (GTK_CONTAINER (align), label);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
- box1 = gtk_vbox_new (FALSE, 0);
- box2 = gtk_hbox_new (TRUE, 0);
+ box1 = gtk_vbox_new (FALSE, 6);
+ box2 = gtk_hbox_new (FALSE, 12);
rbutton = gtk_radio_button_new (NULL);
gtk_button_set_label (GTK_BUTTON (rbutton), _("Private"));
- align = gtk_alignment_new (0, 0, 1, 0);
- gtk_container_add (GTK_CONTAINER (align), rbutton);
- gtk_box_pack_start (GTK_BOX (box2), align, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX (box2), rbutton, FALSE, FALSE, 0);
priv->private_rb = rbutton;
rbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (priv->private_rb));
gtk_button_set_label (GTK_BUTTON (rbutton), _("Public"));
- align = gtk_alignment_new (0, 0, 1, 0);
- gtk_container_add (GTK_CONTAINER (align), rbutton);
- gtk_box_pack_start (GTK_BOX (box2), align, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX (box2), rbutton, FALSE, FALSE, 0);
priv->public_rb = rbutton;
- gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
- box2 = gtk_vbox_new (TRUE, 0);
+ box2 = gtk_vbox_new (FALSE, 6);
cbutton = gtk_check_button_new_with_label (_("Visible to family"));
- align = gtk_alignment_new (0, 0, 0, 1);
- gtk_container_add (GTK_CONTAINER (align), cbutton);
- gtk_box_pack_start (GTK_BOX (box2), align, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (box2), cbutton, FALSE, FALSE, 0);
priv->family_cb = cbutton;
cbutton = gtk_check_button_new_with_label (_("Visible to friends"));
- align = gtk_alignment_new (0, 0, 1, 0);
- gtk_container_add (GTK_CONTAINER (align), cbutton);
- gtk_box_pack_start (GTK_BOX (box2), align, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (box2), cbutton, FALSE, FALSE, 0);
priv->friend_cb = cbutton;
- align = gtk_alignment_new (0.1, 0, 0, 0);
- gtk_container_add (GTK_CONTAINER (align), box2);
- gtk_box_pack_start (GTK_BOX (box1), align, TRUE, TRUE, 0);
+ padding_hbox = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (padding_hbox), box2, FALSE, FALSE, 12);
+ gtk_box_pack_start (GTK_BOX (box1), padding_hbox, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), box1, FALSE, FALSE, 6);
+ cbutton = gtk_check_button_new_with_label (_("Show up in global search results"));
+ gtk_box_pack_start (GTK_BOX (box1), cbutton, FALSE, FALSE, 0);
+ priv->show_in_search_cb = cbutton;
+
+ gtk_box_pack_start (GTK_BOX (vbox), box1, FALSE, FALSE, 0);
- /* Connect signals */
g_signal_connect (G_OBJECT (priv->public_rb), "toggled",
G_CALLBACK (_on_button_toggled),
self);
@@ -177,6 +183,98 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
G_CALLBACK (_on_button_toggled),
self);
+ g_signal_connect (G_OBJECT (priv->show_in_search_cb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ /* Default Content type */
+
+ label = gtk_label_new (NULL);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ markup = g_markup_printf_escaped ("<span weight=\"bold\">%s</span>",
+ _("Default Content Type"));
+ gtk_label_set_markup (GTK_LABEL (label), markup);
+ g_free (markup);
+
+ align = gtk_alignment_new (0, 0, 0, 1);
+ gtk_container_add (GTK_CONTAINER (align), label);
+ gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
+
+ box1 = gtk_hbox_new (FALSE, 12);
+
+ rbutton = gtk_radio_button_new (NULL);
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Photo"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->photo_content_rb = rbutton;
+
+ rbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (priv->photo_content_rb));
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Screenshot"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->sshot_content_rb = rbutton;
+
+ rbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (priv->photo_content_rb));
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Other"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->other_content_rb = rbutton;
+
+ gtk_box_pack_start (GTK_BOX (vbox), box1, FALSE, FALSE, 0);
+
+ g_signal_connect (G_OBJECT (priv->photo_content_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ g_signal_connect (G_OBJECT (priv->sshot_content_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ g_signal_connect (G_OBJECT (priv->other_content_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ /* Default Safety level */
+
+ label = gtk_label_new (NULL);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ markup = g_markup_printf_escaped ("<span weight=\"bold\">%s</span>",
+ _("Default Safety Level"));
+ gtk_label_set_markup (GTK_LABEL (label), markup);
+ g_free (markup);
+
+ align = gtk_alignment_new (0, 0, 0, 1);
+ gtk_container_add (GTK_CONTAINER (align), label);
+ gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
+
+ box1 = gtk_hbox_new (FALSE, 12);
+
+ rbutton = gtk_radio_button_new (NULL);
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Safe"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->safe_rb = rbutton;
+
+ rbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (priv->safe_rb));
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Moderate"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->moderate_rb = rbutton;
+
+ rbutton = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (priv->safe_rb));
+ gtk_button_set_label (GTK_BUTTON (rbutton), _("Restricted"));
+ gtk_box_pack_start (GTK_BOX (box1), rbutton, FALSE, FALSE, 0);
+ priv->restricted_rb = rbutton;
+
+ gtk_box_pack_start (GTK_BOX (vbox), box1, FALSE, FALSE, 0);
+
+ g_signal_connect (G_OBJECT (priv->safe_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ g_signal_connect (G_OBJECT (priv->moderate_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
+ g_signal_connect (G_OBJECT (priv->restricted_rb), "toggled",
+ G_CALLBACK (_on_button_toggled),
+ self);
+
/* Default Actions */
label = gtk_label_new (NULL);
@@ -191,9 +289,7 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
cbutton = gtk_check_button_new_with_label (_("Open browser after uploading pictures"));
- align = gtk_alignment_new (0, 0, 0, 0);
- gtk_container_add (GTK_CONTAINER (align), cbutton);
- gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (vbox), cbutton, FALSE, FALSE, 0);
priv->open_browser_after_upload_cb = cbutton;
g_signal_connect (G_OBJECT (priv->open_browser_after_upload_cb), "toggled",
@@ -216,20 +312,20 @@ _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
GtkWidget *entry = NULL;
priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
- vbox = gtk_vbox_new (FALSE, 0);
+ vbox = gtk_vbox_new (FALSE, 6);
/* Proxy settings */
cbutton = gtk_check_button_new_with_label (_("Use HTTP proxy"));
align = gtk_alignment_new (0, 0, 0, 0);
gtk_container_add (GTK_CONTAINER (align), cbutton);
- gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
priv->use_proxy_cb = cbutton;
/* Proxy host */
table = gtk_table_new (2, 4, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
label = gtk_label_new (_("Host:"));
align = gtk_alignment_new (1, 0, 1, 0);
@@ -313,6 +409,8 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
FrogrSettingsDialogPrivate *priv =
FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
+ /* Get data form configuration */
+
priv->public_visibility = frogr_config_get_default_public (priv->config);
priv->family_visibility = frogr_config_get_default_family (priv->config);
priv->friend_visibility = frogr_config_get_default_friend (priv->config);
@@ -339,6 +437,51 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
if (priv->proxy_password)
g_strstrip (priv->proxy_password);
+ /* Update widgets' values */
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->public_rb),
+ priv->public_visibility);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->private_rb),
+ !priv->public_visibility);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->family_cb),
+ priv->family_visibility);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->friend_cb),
+ priv->friend_visibility);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->open_browser_after_upload_cb),
+ priv->open_browser_after_upload);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
+ priv->show_in_search);
+
+ if (priv->content_type == FSP_CONTENT_TYPE_SCREENSHOT)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->sshot_content_rb), TRUE);
+ else if (priv->content_type == FSP_CONTENT_TYPE_OTHER)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->other_content_rb), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->photo_content_rb), TRUE);
+
+ if (priv->safety_level == FSP_SAFETY_LEVEL_MODERATE)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->moderate_rb), TRUE);
+ else if (priv->safety_level == FSP_SAFETY_LEVEL_RESTRICTED)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->restricted_rb), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->safe_rb), TRUE);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_proxy_cb),
+ priv->use_proxy);
+ if (priv->proxy_host)
+ gtk_entry_set_text (GTK_ENTRY (priv->proxy_host_entry), priv->proxy_host);
+
+ if (priv->proxy_port)
+ gtk_entry_set_text (GTK_ENTRY (priv->proxy_port_entry), priv->proxy_port);
+
+ if (priv->proxy_username)
+ gtk_entry_set_text (GTK_ENTRY (priv->proxy_username_entry), priv->proxy_username);
+
+ if (priv->proxy_password)
+ gtk_entry_set_text (GTK_ENTRY (priv->proxy_password_entry), priv->proxy_password);
+
+ /* Update UI */
+
_update_ui (self);
}
@@ -392,31 +535,6 @@ _update_ui (FrogrSettingsDialog *self)
priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
- /* Update widgets' values */
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->public_rb),
- priv->public_visibility);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->private_rb),
- !priv->public_visibility);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->family_cb),
- priv->family_visibility);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->friend_cb),
- priv->friend_visibility);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->open_browser_after_upload_cb),
- priv->open_browser_after_upload);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_proxy_cb),
- priv->use_proxy);
- if (priv->proxy_host)
- gtk_entry_set_text (GTK_ENTRY (priv->proxy_host_entry), priv->proxy_host);
-
- if (priv->proxy_port)
- gtk_entry_set_text (GTK_ENTRY (priv->proxy_port_entry), priv->proxy_port);
-
- if (priv->proxy_username)
- gtk_entry_set_text (GTK_ENTRY (priv->proxy_username_entry), priv->proxy_username);
-
- if (priv->proxy_password)
- gtk_entry_set_text (GTK_ENTRY (priv->proxy_password_entry), priv->proxy_password);
-
/* Sensitiveness */
gtk_widget_set_sensitive (priv->friend_cb, !priv->public_visibility);
gtk_widget_set_sensitive (priv->family_cb, !priv->public_visibility);
@@ -465,6 +583,48 @@ _on_button_toggled (GtkToggleButton *button, gpointer data)
g_debug ("Open browser after upload set to %s", active ? "TRUE" : "FALSE");
}
+ if (GTK_WIDGET (button) == priv->show_in_search_cb)
+ {
+ priv->show_in_search = active;
+ g_debug ("Show up in global search results set to %s", active ? "TRUE" : "FALSE");
+ }
+
+ if (active && GTK_WIDGET (button) == priv->photo_content_rb)
+ {
+ priv->content_type = FSP_CONTENT_TYPE_PHOTO;
+ g_debug ("Content type set to %d", priv->content_type);
+ }
+
+ if (active && GTK_WIDGET (button) == priv->sshot_content_rb)
+ {
+ priv->content_type = FSP_CONTENT_TYPE_SCREENSHOT;
+ g_debug ("Content type set to %d", priv->content_type);
+ }
+
+ if (active && GTK_WIDGET (button) == priv->other_content_rb)
+ {
+ priv->content_type = FSP_CONTENT_TYPE_OTHER;
+ g_debug ("Content type set to %d", priv->content_type);
+ }
+
+ if (active && GTK_WIDGET (button) == priv->safe_rb)
+ {
+ priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
+ g_debug ("Content type set to %d", priv->safety_level);
+ }
+
+ if (active && GTK_WIDGET (button) == priv->moderate_rb)
+ {
+ priv->safety_level = FSP_SAFETY_LEVEL_MODERATE;
+ g_debug ("Content type set to %d", priv->safety_level);
+ }
+
+ if (active && GTK_WIDGET (button) == priv->restricted_rb)
+ {
+ priv->safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
+ g_debug ("Content type set to %d", priv->safety_level);
+ }
+
if (GTK_WIDGET (button) == priv->use_proxy_cb)
{
priv->use_proxy = active;
@@ -581,6 +741,13 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
priv->friend_cb = NULL;
priv->family_cb = NULL;
priv->open_browser_after_upload_cb = NULL;
+ priv->show_in_search_cb = NULL;
+ priv->photo_content_rb = NULL;
+ priv->sshot_content_rb = NULL;
+ priv->other_content_rb = NULL;
+ priv->safe_rb = NULL;
+ priv->moderate_rb = NULL;
+ priv->restricted_rb = NULL;
priv->use_proxy_cb = NULL;
priv->proxy_host_label = NULL;
priv->proxy_host_entry = NULL;
@@ -594,6 +761,9 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
priv->family_visibility = FALSE;
priv->friend_visibility = FALSE;
priv->open_browser_after_upload = FALSE;
+ priv->show_in_search = FALSE;
+ priv->safety_level = FSP_SAFETY_LEVEL_NONE;
+ priv->content_type = FSP_CONTENT_TYPE_NONE;
priv->use_proxy = FALSE;
priv->proxy_host = NULL;
priv->proxy_port = NULL;
@@ -649,7 +819,7 @@ frogr_settings_dialog_show (GtkWindow *parent)
object = g_object_new (FROGR_TYPE_SETTINGS_DIALOG,
"modal", TRUE,
"transient-for", parent,
- "resizable", FALSE,
+ "resizable", TRUE,
"title", _("Settings"),
NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]