Ejemplo n.º 1
0
void
host_aliases_check_fields (void)
{
  GtkWidget     *address, *aliases, *ok_button;
  GtkTextBuffer *buffer;
  GtkTextIter    start, end;
  gboolean       valid;
  const gchar   *addr;
  gchar         *str;
  gint           address_type;

  address   = gst_dialog_get_widget (tool->main_dialog, "host_alias_address");
  aliases   = gst_dialog_get_widget (tool->main_dialog, "host_alias_list");
  ok_button = gst_dialog_get_widget (tool->main_dialog, "host_alias_ok_button");

  buffer  = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases));
  gtk_text_buffer_get_bounds (buffer, &start, &end);
  str = gtk_text_buffer_get_text (buffer, &start, &end, TRUE);

  addr = gtk_entry_get_text (GTK_ENTRY (address));
  address_type = gst_filter_check_ip_address (addr);

  valid = ((address_type == GST_ADDRESS_IPV4 || address_type == GST_ADDRESS_IPV6)
	   && (str && *str));
  gtk_widget_set_sensitive (ok_button, valid);

  g_free (str);
}
GtkWidget*
group_settings_dialog_new (OobsGroup *group)
{
    GtkWidget *dialog, *widget;
    const gchar *name;
    gchar *title;

    dialog = gst_dialog_get_widget (tool->main_dialog, "group_settings_dialog");
    name = oobs_group_get_name (group);

    if (!name) {
        g_object_set_data (G_OBJECT (dialog), "is_new", GINT_TO_POINTER (FALSE));
        gtk_window_set_title (GTK_WINDOW (dialog), _("New group"));

        widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid");
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget),
                                   group_settings_find_new_gid ());
    } else {
        g_object_set_data (G_OBJECT (dialog), "is_new", GINT_TO_POINTER (FALSE));

        title = g_strdup_printf (_("Group '%s' Properties"), name);
        gtk_window_set_title (GTK_WINDOW (dialog), title);
        g_free (title);

        widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid");
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), oobs_group_get_gid (group));
    }

    widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name");
    set_entry_text (widget, name);

    group_members_table_set_from_group (group);

    return dialog;
}
Ejemplo n.º 3
0
static void
host_aliases_dialog_prepare (OobsStaticHost *host)
{
  GtkWidget *address, *aliases;
  GtkTextBuffer *buffer;
  GList *alias_list;
  gchar *alias_str;

  address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address");
  aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list");
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases));

  if (host)
    {
      gtk_entry_set_text (GTK_ENTRY (address),
			  oobs_static_host_get_ip_address (host));

      alias_list = oobs_static_host_get_aliases (host);
      alias_str = concatenate_aliases (alias_list, "\n");
      g_list_free (alias_list);

      gtk_text_buffer_set_text (buffer, alias_str, -1);
      g_free (alias_str);
    }
  else
    {
      gtk_entry_set_text (GTK_ENTRY (address), "");
      gtk_text_buffer_set_text (buffer, "", -1);
    }

  host_aliases_check_fields ();
}
Ejemplo n.º 4
0
static void
user_toggled_cb (GtkCellRendererToggle *renderer,
		 gchar                 *path,
		 gpointer               user_data)
{
	GstSharesTool *tool;
	GtkWidget *table;
	GtkTreeModel *model;
	GtkTreeIter iter;
	OobsUser *user;
	gboolean active;

	tool = GST_SHARES_TOOL (user_data);
	table = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "users_table");
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));

	if (! gtk_tree_model_get_iter_from_string (model, &iter, path))
		return;

	gtk_tree_model_get (model, &iter,
			    COL_ACTIVE, &active,
			    COL_USER, &user,
			    -1);

	/* we want to invert the state */
	active ^= 1;

	if (!active) {
		oobs_smb_config_delete_user_password (OOBS_SMB_CONFIG (tool->smb_config), user);
	} else {
		GtkWidget *dialog;
		gint response;

		dialog = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "smb_password_dialog");
		gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (GST_TOOL (tool)->main_dialog));
		response = gtk_dialog_run (GTK_DIALOG (dialog));
		gtk_widget_hide (dialog);

		if (response == GTK_RESPONSE_OK) {
			GtkWidget *entry;
			const gchar *password;

			entry = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "smb_password_entry");
			password = gtk_entry_get_text (GTK_ENTRY (entry));

			oobs_smb_config_set_user_password (OOBS_SMB_CONFIG (tool->smb_config), user, password);
		}
	}

	active = oobs_smb_config_user_has_password (OOBS_SMB_CONFIG (tool->smb_config), user);
	gtk_list_store_set (GTK_LIST_STORE (model), &iter,
			    COL_ACTIVE, active,
			    -1);
	g_object_unref (user);

	gst_tool_commit_async (GST_TOOL (tool), tool->smb_config, NULL, NULL, NULL);
}
void
group_settings_dialog_get_data (OobsGroup *group)
{
    GtkWidget *widget;

    widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name");
    oobs_group_set_name (group, gtk_entry_get_text (GTK_ENTRY (widget)));

    widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid");
    oobs_group_set_gid (group, gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)));

    group_members_table_save (group);
}
Ejemplo n.º 6
0
static void
host_aliases_dialog_save (GtkTreeIter *iter)
{
  GtkTreeView *list;
  GtkTreeModel *model;
  GtkWidget *address, *aliases;
  GtkTextBuffer *buffer;
  OobsStaticHost *host;
  GList *aliases_list;
  
  address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address");
  aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list");
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases));

  aliases_list = split_buffer_content (buffer);

  if (iter)
    {
      OobsListIter *list_iter;

      list = GST_NETWORK_TOOL (tool)->host_aliases_list;
      model = gtk_tree_view_get_model (list);

      gtk_tree_model_get (model, iter,
			  COL_HOST_OBJECT, &host,
			  COL_HOST_ITER, &list_iter,
			  -1);

      oobs_static_host_set_ip_address (host, gtk_entry_get_text (GTK_ENTRY (address)));
      oobs_static_host_set_aliases (host, aliases_list);
      host_aliases_modify_at_iter (iter, host, list_iter);

      oobs_list_iter_free (list_iter);
      g_object_unref (host);
    }
  else
    {
      OobsList *list;
      OobsListIter list_iter;

      list = oobs_hosts_config_get_static_hosts (GST_NETWORK_TOOL (tool)->hosts_config);
      host = oobs_static_host_new (gtk_entry_get_text (GTK_ENTRY (address)), aliases_list);

      oobs_list_append (list, &list_iter);
      oobs_list_set (list, &list_iter, host);

      host_aliases_add (host, &list_iter);
    }

    gst_tool_commit (tool, OOBS_OBJECT (GST_NETWORK_TOOL (tool)->hosts_config));
}
Ejemplo n.º 7
0
void
users_table_create (GstTool *tool)
{
	GtkWidget *table;
	GtkCellRenderer *renderer;

	table = gst_dialog_get_widget (tool->main_dialog, "users_table");
	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (table), FALSE);

	renderer = gtk_cell_renderer_toggle_new ();
	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (table),
						     -1, "",
						     renderer,
						     "active", COL_ACTIVE,
						     NULL);
	g_signal_connect (renderer, "toggled",
			  G_CALLBACK (user_toggled_cb), tool);

	renderer = gtk_cell_renderer_text_new ();
	gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (table),
						    -1, "",
						    renderer,
						    users_table_text_cell_data_func,
						    g_object_ref (tool),
						    (GDestroyNotify) g_object_unref);
}
Ejemplo n.º 8
0
gboolean
table_get_iter_with_path (const gchar *path, GtkTreeIter *iter)
{
	GtkWidget    *table = gst_dialog_get_widget (tool->main_dialog, "shares_table");
	GtkTreeModel *model;
	gboolean      valid, found;
	gchar        *iter_path;

	if (!path)
		return FALSE;

	found = FALSE;
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	valid = gtk_tree_model_get_iter_first (model, iter);

	while (valid) {
		gtk_tree_model_get (model, iter,
				    COL_PATH, &iter_path,
				    -1);

		if (strcmp (iter_path, path) == 0) {
			found = TRUE;
			valid = FALSE;
		} else
			valid = gtk_tree_model_iter_next (model, iter);

		g_free (iter_path);
	}

	return found;
}
Ejemplo n.º 9
0
void
privileges_table_save (OobsUser *user)
{
	GtkWidget *table;
	GtkTreeModel *model, *child_model;
	GtkTreeIter iter;
	OobsGroup *group;
	gboolean valid, member;

	table = gst_dialog_get_widget (tool->main_dialog, "user_privileges");
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
	valid = gtk_tree_model_get_iter_first (child_model, &iter);

	while (valid) {
		gtk_tree_model_get (child_model, &iter,
				    COL_GROUP, &group,
				    COL_MEMBER, &member,
				    -1);
		if (member)
			oobs_group_add_user (group, user);
		else
			oobs_group_remove_user (group, user);

		valid = gtk_tree_model_iter_next (child_model, &iter);
	}
}
Ejemplo n.º 10
0
void
privileges_table_set_from_profile (GstUserProfile *profile)
{
	GtkWidget *table;
	GtkTreeModel *model, *child_model;
	GtkTreeIter iter;
	gboolean valid;
	OobsGroup *group;

	table = gst_dialog_get_widget (tool->main_dialog, "user_privileges");
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
	valid = gtk_tree_model_get_iter_first (child_model, &iter);

	while (valid) {
		gtk_tree_model_get (child_model, &iter,
				    COL_GROUP, &group,
				    -1);

		gtk_list_store_set (GTK_LIST_STORE (child_model), &iter,
				    COL_MEMBER, find_group_in_profile (group, profile),
				    -1);

		g_object_unref (group);
		valid = gtk_tree_model_iter_next (child_model, &iter);
	}
}
static void
check_name (gchar **primary_text, gchar **secondary_text, gpointer data)
{
    OobsGroup *group = OOBS_GROUP (data);
    GtkWidget *widget;
    const gchar *name;

    widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name");
    name = gtk_entry_get_text (GTK_ENTRY (widget));

    if (strlen (name) < 1) {
        *primary_text = g_strdup (_("Group name is empty"));
        *secondary_text = g_strdup (_("A group name must be specified."));
    } else if (is_group_root (group) && strcmp (name, "root") != 0) {
        *primary_text = g_strdup (_("Group name of the administrator group user should not be modified"));
        *secondary_text = g_strdup (_("This would leave the system unusable."));
    } else if (!is_valid_name (name)) {
        *primary_text = g_strdup (_("Group name has invalid characters"));
        *secondary_text = g_strdup (_("Please set a valid group name consisting of "
                                      "a lower case letter followed by lower case "
                                      "letters and numbers."));
    } else if (group_settings_dialog_group_is_new () && group_exists (name)) {
        *primary_text = g_strdup_printf (_("Group \"%s\" already exists"), name);
        *secondary_text = g_strdup (_("Please select a different user name."));
    }
}
Ejemplo n.º 12
0
static void
setup_groups_combo (void)
{
	GtkWidget *combo = gst_dialog_get_widget (tool->main_dialog, "user_settings_group");
	GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "groups_table");
	GtkCellRenderer *cell;
	GtkTreeModel *model;

	cell = gtk_cell_renderer_text_new();
	gtk_cell_layout_pack_start(GTK_CELL_LAYOUT (combo), cell, TRUE);
	gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT (combo), cell, "text", 0, NULL);

	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model);
	g_object_unref (model);
}
Ejemplo n.º 13
0
GtkTreeView*
host_aliases_list_create (GstTool *tool)
{
  GtkWidget     *list;
  GstTablePopup *table_popup;
  GtkTreeModel  *model;

  list = gst_dialog_get_widget (tool->main_dialog, "host_aliases_list");

  model = host_aliases_model_create ();
  gtk_tree_view_set_model (GTK_TREE_VIEW (list), model);
  g_object_unref (model);

  add_list_columns (GTK_TREE_VIEW (list));

  table_popup = g_new0 (GstTablePopup, 1);
  table_popup->setup = NULL;
  table_popup->properties = on_host_aliases_properties_clicked;
  table_popup->popup = popup_menu_create (list);

  g_signal_connect (G_OBJECT (list), "button-press-event",
		    G_CALLBACK (on_table_button_press), (gpointer) table_popup);
  g_signal_connect (G_OBJECT (list), "popup_menu",
		    G_CALLBACK (on_table_popup_menu), (gpointer) table_popup);

  return GTK_TREE_VIEW (list);
}
Ejemplo n.º 14
0
void
table_create (GstTool *tool)
{
	GtkWidget        *table = gst_dialog_get_widget (tool->main_dialog, "shares_table");
	GtkWidget        *popup;
	GtkTreeSelection *selection;
	GtkTreeModel     *model;

	model = create_table_model ();
	gtk_tree_view_set_model (GTK_TREE_VIEW (table), model);
	g_object_unref (G_OBJECT (model));

	add_table_columns (GTK_TREE_VIEW (table));

	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table));
	g_signal_connect (G_OBJECT (selection), "changed",
			  G_CALLBACK (on_shares_table_selection_changed), NULL);

	popup = popup_menu_create (GTK_TREE_VIEW (table));
	g_signal_connect (G_OBJECT (table), "button-press-event",
			  G_CALLBACK (on_shares_table_button_press), (gpointer) popup);
	g_signal_connect (G_OBJECT (table), "popup_menu",
			  G_CALLBACK (on_shares_table_popup_menu), (gpointer) popup);

	/* Drag and Drop stuff */
	gtk_drag_dest_unset (table);
	gtk_drag_dest_set (table, GTK_DEST_DEFAULT_ALL, drop_types,
			   sizeof (drop_types) / sizeof (drop_types[0]),
			   GDK_ACTION_COPY);
	g_signal_connect (G_OBJECT (table), "drag_data_received",
			  G_CALLBACK (on_shares_dragged_folder), NULL);
}
Ejemplo n.º 15
0
void
privileges_table_set_from_user (OobsUser *user)
{
	GtkWidget *table;
	GtkTreeModel *model, *child_model;
	GtkTreeIter iter;
	gboolean valid;
	OobsGroup *group;
	GList *users;

	table = gst_dialog_get_widget (tool->main_dialog, "user_privileges");
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
	valid = gtk_tree_model_get_iter_first (child_model, &iter);

	while (valid) {
		gtk_tree_model_get (child_model, &iter,
				    COL_GROUP, &group,
				    -1);

		users = oobs_group_get_users (group);
		gtk_list_store_set (GTK_LIST_STORE (child_model), &iter,
				    COL_MEMBER, (g_list_find (users, user) != NULL),
				    -1);
		g_list_free (users);
		g_object_unref (group);
		valid = gtk_tree_model_iter_next (child_model, &iter);
	}
}
Ejemplo n.º 16
0
GtkTreeView*
ifaces_list_create (GstTool *tool)
{
  GtkWidget        *table = gst_dialog_get_widget (tool->main_dialog, "interfaces_list");
  GstTablePopup    *table_popup;
  GtkTreeSelection *selection;
  GtkTreeModel     *model;

  model = GST_NETWORK_TOOL (tool)->interfaces_model;
  gtk_tree_view_set_model (GTK_TREE_VIEW (table), model);

  gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (GTK_LIST_STORE (model)),
					   ifaces_list_sort,
					   NULL, NULL);
  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (GTK_LIST_STORE (model)),
					GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
					GTK_SORT_DESCENDING);

  add_list_columns (GTK_TREE_VIEW (table), model);

  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table));
  g_signal_connect (G_OBJECT (selection), "changed",
		    G_CALLBACK (on_table_selection_changed), NULL);

  table_popup = g_new0 (GstTablePopup, 1);
  table_popup->properties = on_iface_properties_clicked;
  table_popup->popup = popup_menu_create (table);

  g_signal_connect (G_OBJECT (table), "button-press-event",
		    G_CALLBACK (on_table_button_press), (gpointer) table_popup);
  g_signal_connect (G_OBJECT (table), "popup_menu",
		    G_CALLBACK (on_table_popup_menu), (gpointer) table_popup);

  return GTK_TREE_VIEW (table);
}
Ejemplo n.º 17
0
static void
e_tz_map_set_location_text (ETzMap *tzmap, const gchar *name)
{
	GtkWidget    *location_combo;
	GtkTreeModel *model;
	GtkTreeIter   iter;
	gboolean      valid;
	gchar        *location;

	location_combo = gst_dialog_get_widget (tzmap->tool->main_dialog, "location_combo");
	model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_combo));
	valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter);

	while (valid) {
		gtk_tree_model_get (model, &iter, 0, &location, -1);

		if (strcmp (location, name) == 0) {
			gtk_combo_box_set_active_iter (GTK_COMBO_BOX (location_combo), &iter);
			valid = FALSE;
		} else {
			valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter);
		}

		g_free (location);
	}
}
Ejemplo n.º 18
0
void
on_table_selection_changed (GtkTreeSelection *selection, gpointer data)
{
  GtkWidget    *properties;

  properties = gst_dialog_get_widget (tool->main_dialog, "properties_button");
  gtk_widget_set_sensitive (properties, gtk_tree_selection_get_selected_rows (selection, NULL) != 0);
}
GtkWidget*
share_nfs_add_hosts_dialog_prepare (void)
{
	GtkWidget *dialog = gst_dialog_get_widget (tool->main_dialog, "share_nfs_add_dialog");

	share_nfs_add_combo_elements ();
	
	return dialog;
}
static void
share_nfs_create_size_group (void)
{
	GtkSizeGroup *group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	GtkWidget    *widget;

	widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_host_type_label");
	gtk_size_group_add_widget (group, widget);

	widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_hostname_label");
	gtk_size_group_add_widget (group, widget);
	
	widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_address_label");
	gtk_size_group_add_widget (group, widget);

	widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_network_label");
	gtk_size_group_add_widget (group, widget);
}
Ejemplo n.º 21
0
void
table_clear (void)
{
	GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table");
	GtkTreeModel *model;

	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	gtk_list_store_clear (GTK_LIST_STORE (model));
}
Ejemplo n.º 22
0
void
table_delete_share_at_iter (GtkTreeIter *iter)
{
	GtkWidget    *table = gst_dialog_get_widget (tool->main_dialog, "shares_table");
	GtkTreeModel *model;

	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	gtk_list_store_remove (GTK_LIST_STORE (model), iter);
}
gboolean
group_settings_dialog_group_is_new (void)
{
    GtkWidget *dialog;
    gboolean is_new;

    dialog = gst_dialog_get_widget (tool->main_dialog, "group_settings_dialog");
    is_new = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), "is_new"));

    return is_new;
}
Ejemplo n.º 24
0
static void
set_text_buffers_callback (void)
{
  GtkWidget *textview;
  GtkTextBuffer *buffer;

  textview = gst_dialog_get_widget (tool->main_dialog, "host_alias_list");
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));

  g_signal_connect (G_OBJECT (buffer), "changed",
		    G_CALLBACK (on_host_aliases_dialog_changed), NULL);
}
Ejemplo n.º 25
0
void
privileges_table_clear (void)
{
	GtkWidget *table;
	GtkTreeModel *model, *child_model;

	table = gst_dialog_get_widget (tool->main_dialog, "user_privileges");
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));
	child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));

	gtk_list_store_clear (GTK_LIST_STORE (child_model));
}
Ejemplo n.º 26
0
static void
init_filters (void)
{
  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "host_alias_address")), GST_FILTER_IP);

  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_address")), GST_FILTER_IPV4);
  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_netmask")), GST_FILTER_IPV4);
  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_gateway")), GST_FILTER_IPV4);

  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_local_address")), GST_FILTER_IPV4);
  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_remote_address")), GST_FILTER_IPV4);

  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_phone_number")), GST_FILTER_PHONE);
  gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_dial_prefix")), GST_FILTER_PHONE);
}
Ejemplo n.º 27
0
/* Helpers */
static void
show_settings (void)
{
	GtkWidget *dialog, *table;
	GtkTreeSelection *selection;
	GtkTreeModel *model;
	GtkTreeIter iter;
	OobsService *service;
	gchar *script, *title;

	table = gst_dialog_get_widget (tool->main_dialog, "services_list");
	dialog = gst_dialog_get_widget (tool->main_dialog, "service_settings_dialog");

	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table));

	if (!gtk_tree_selection_get_selected (selection, &model, &iter))
		return;

	gtk_tree_model_get (model, &iter,
			    COL_OBJECT, &service,
			    -1);

	title = g_strdup_printf (_("Settings for service \"%s\""),
				 oobs_service_get_name (service));

	gtk_window_set_title (GTK_WINDOW (dialog), title);
	g_free (title);

	service_settings_table_set_service (GST_SERVICES_TOOL (tool)->services_config,
					    service);

	gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (tool->main_dialog));
	gtk_dialog_run (GTK_DIALOG (dialog));
	gtk_widget_hide (dialog);

	service_settings_table_save (service);
	oobs_object_commit (GST_SERVICES_TOOL (tool)->services_config);
}
Ejemplo n.º 28
0
static void
setup_shells_combo (GstUsersTool *tool)
{
	GtkWidget *combo;
	GtkTreeModel *model;

	combo = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "user_settings_shell");
	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));

	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model);
	g_object_unref (model);

	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (combo), 0);
}
Ejemplo n.º 29
0
ETzMap *
e_tz_map_new (GstTool *tool)
{
	ETzMap *tzmap;
	GPtrArray *locs;
	TzLocation *tzl;
	GtkWidget *location_combo;
	int i;

	tzmap = g_new0 (ETzMap, 1);
	tzmap->tool = GST_TOOL (tool);
	tzmap->tzdb = tz_load_db ();
	if (!tzmap->tzdb)
		g_error ("Unable to load system timezone database.");
	
	tzmap->map = e_map_new ();
	if (!tzmap->map)
		g_error ("Unable to create map widget.");

	gtk_widget_set_events (GTK_WIDGET (tzmap->map), gtk_widget_get_events (GTK_WIDGET (tzmap->map)) | 
	      GDK_LEAVE_NOTIFY_MASK | GDK_VISIBILITY_NOTIFY_MASK);
	
	locs = tz_get_locations (tzmap->tzdb);

	for (i = 0; i < locs->len; i++)
	{
		tzl = g_ptr_array_index (locs, i);
		e_map_add_point (tzmap->map, NULL, tzl->longitude, tzl->latitude,
				 TZ_MAP_POINT_NORMAL_RGBA);
	}

	g_signal_connect (G_OBJECT (tzmap->map), "map-event",
			  G_CALLBACK (map), tzmap);
	g_signal_connect (G_OBJECT (tzmap->map), "unmap-event",
			  G_CALLBACK (unmap), tzmap);
        g_signal_connect(G_OBJECT (tzmap->map), "motion-notify-event",
			 G_CALLBACK (motion), (gpointer) tzmap);
	g_signal_connect(G_OBJECT(tzmap->map), "button-press-event",
			 G_CALLBACK (button_pressed), (gpointer) tzmap);
        g_signal_connect(G_OBJECT (tzmap->map), "enter-notify-event",
	                 G_CALLBACK (in_map), (gpointer) tzmap);
        g_signal_connect(G_OBJECT (tzmap->map), "leave-notify-event",
	                 G_CALLBACK (out_map), (gpointer) tzmap);
	
	location_combo = gst_dialog_get_widget (tzmap->tool->main_dialog, "location_combo");
	g_signal_connect (G_OBJECT (location_combo), "changed",
	                 G_CALLBACK (update_map), (gpointer) tzmap);
	
	return tzmap;
}
Ejemplo n.º 30
0
OobsShare*
table_get_share_at_iter (GtkTreeIter *iter, OobsListIter **list_iter)
{
	GtkWidget    *table = gst_dialog_get_widget (tool->main_dialog, "shares_table");
	GtkTreeModel *model;
	OobsShare     *share;

	model = gtk_tree_view_get_model (GTK_TREE_VIEW (table));

	gtk_tree_model_get (model, iter,
			    COL_SHARE, &share,
			    COL_ITER, list_iter,
			    -1);
	return share;
}