aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2011-03-25 15:19:37 +0800
committerSamuel Ortiz <sameo@linux.intel.com>2011-03-25 12:19:47 +0100
commitf6b129de8fe6c472f42981d819defe0fbac90f7d (patch)
tree18f654e4e580eb22eca8883a678a48751563bd45
parent7aecdb9ec2d1f5ebafb1a84555d7d7ff0d5ed67d (diff)
downloadconnman-gnome-f6b129de8fe6c472f42981d819defe0fbac90f7d.tar.gz
Enable properties
Change some macros according to service based solutions. Remove some unused functions in properties.
-rw-r--r--common/connman-client.c50
-rw-r--r--common/connman-client.h2
-rw-r--r--properties/main.c89
3 files changed, 50 insertions, 91 deletions
diff --git a/common/connman-client.c b/common/connman-client.c
index 29f68c1..59f6318 100644
--- a/common/connman-client.c
+++ b/common/connman-client.c
@@ -118,7 +118,8 @@ static void connman_client_init(ConnmanClient *client)
G_TYPE_BOOLEAN, /* favorite */
G_TYPE_UINT, /* strength */
G_TYPE_UINT, /* security */
- G_TYPE_STRING); /* passphrase */
+ G_TYPE_STRING, /* passphrase */
+ G_TYPE_STRING); /* address */
gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(priv->store),
compare_index, NULL, NULL);
@@ -215,6 +216,43 @@ GtkTreeModel *connman_client_get_connection_model(ConnmanClient *client)
return connman_client_get_model(client);
}
+static gboolean device_filter(GtkTreeModel *model,
+ GtkTreeIter *iter, gpointer user_data)
+{
+ DBusGProxy *proxy;
+ gboolean active;
+ guint type;
+
+ gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy,
+ CONNMAN_COLUMN_TYPE, &type,
+ -1);
+
+ if (proxy == NULL)
+ return FALSE;
+
+ active = g_str_equal(CONNMAN_SERVICE_INTERFACE,
+ dbus_g_proxy_get_interface(proxy));
+
+ g_object_unref(proxy);
+
+ return active;
+}
+
+GtkTreeModel *connman_client_get_device_model(ConnmanClient *client)
+{
+ ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
+ GtkTreeModel *model;
+
+ DBG("client %p", client);
+
+ model = gtk_tree_model_filter_new(GTK_TREE_MODEL(priv->store), NULL);
+
+ gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model),
+ device_filter, NULL, NULL);
+
+ return model;
+}
+
void connman_client_set_policy(ConnmanClient *client, const gchar *device,
const gchar *policy)
{
@@ -310,8 +348,13 @@ static gboolean network_disconnect(GtkTreeModel *model, GtkTreePath *path,
GtkTreeIter *iter, gpointer user_data)
{
DBusGProxy *proxy;
+ char *name;
+ guint type;
- gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy, -1);
+ gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy,
+ CONNMAN_COLUMN_NAME, &name,
+ CONNMAN_COLUMN_TYPE, &type,
+ -1);
if (proxy == NULL)
return FALSE;
@@ -320,7 +363,8 @@ static gboolean network_disconnect(GtkTreeModel *model, GtkTreePath *path,
CONNMAN_SERVICE_INTERFACE) == FALSE)
return FALSE;
- connman_disconnect(proxy, NULL);
+ if (type == CONNMAN_TYPE_WIFI)
+ connman_disconnect(proxy, NULL);
g_object_unref(proxy);
diff --git a/common/connman-client.h b/common/connman-client.h
index 1d9b91b..7251265 100644
--- a/common/connman-client.h
+++ b/common/connman-client.h
@@ -54,6 +54,7 @@ GType connman_client_get_type(void);
ConnmanClient *connman_client_new(void);
GtkTreeModel *connman_client_get_model(ConnmanClient *client);
+GtkTreeModel *connman_client_get_device_model(ConnmanClient *client);
GtkTreeModel *connman_client_get_connection_model(ConnmanClient *client);
void connman_client_set_policy(ConnmanClient *client, const gchar *device,
@@ -88,6 +89,7 @@ enum {
CONNMAN_COLUMN_STRENGTH, /* G_TYPE_UINT */
CONNMAN_COLUMN_SECURITY, /* G_TYPE_UINT */
CONNMAN_COLUMN_PASSPHRASE, /* G_TYPE_STRING */
+ CONNMAN_COLUMN_ADDRESS, /* G_TYPE_STRING */
_CONNMAN_NUM_COLUMNS
};
diff --git a/properties/main.c b/properties/main.c
index a77a43c..03e7fa4 100644
--- a/properties/main.c
+++ b/properties/main.c
@@ -30,7 +30,6 @@
#include "advanced.h"
-#if 0
static ConnmanClient *client;
static GtkWidget *interface_notebook;
@@ -140,10 +139,8 @@ static struct config_data *create_config(GtkTreeModel *model,
gtk_tree_model_get(model, iter,
CONNMAN_COLUMN_PROXY, &proxy,
CONNMAN_COLUMN_TYPE, &type,
- CONNMAN_COLUMN_INRANGE, &inrange,
- CONNMAN_COLUMN_NETWORK, &network,
CONNMAN_COLUMN_ADDRESS, &address,
- CONNMAN_COLUMN_POLICY, &policy, -1);
+ -1);
data->device = g_strdup(dbus_g_proxy_get_path(proxy));
g_object_unref(proxy);
@@ -250,73 +247,6 @@ static void select_callback(GtkTreeSelection *selection, gpointer user_data)
gtk_widget_show(notebook);
}
-static void row_changed(GtkTreeModel *model, GtkTreePath *path,
- GtkTreeIter *iter, gpointer user_data)
-{
- guint type;
- gboolean powered, inrange;
-
- gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type,
- CONNMAN_COLUMN_ENABLED, &powered,
- CONNMAN_COLUMN_INRANGE, &inrange, -1);
-}
-
-static void state_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
- GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
-{
- gboolean inrange;
-
- gtk_tree_model_get(model, iter, CONNMAN_COLUMN_INRANGE, &inrange, -1);
-
- if (inrange == TRUE)
- g_object_set(cell, "icon-name", GTK_STOCK_YES, NULL);
- else
- g_object_set(cell, "icon-name", NULL, NULL);
-}
-
-static void type_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
- GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
-{
- guint type;
- gboolean powered, inrange;
- gchar *markup;
- const char *title, *info;
-
- gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type,
- CONNMAN_COLUMN_ENABLED, &powered,
- CONNMAN_COLUMN_INRANGE, &inrange, -1);
-
- switch (type) {
- case CONNMAN_TYPE_ETHERNET:
- title = N_("Ethernet");
- break;
- case CONNMAN_TYPE_WIFI:
- title = N_("Wireless");
- break;
- case CONNMAN_TYPE_WIMAX:
- title = N_("WiMAX");
- break;
- case CONNMAN_TYPE_BLUETOOTH:
- title = N_("Bluetooth");
- break;
- default:
- title = N_("Unknown");
- break;
- }
-
- if (powered == TRUE) {
- if (inrange == TRUE)
- info = N_("Connected");
- else
- info = N_("Not Connected");
- } else
- info = N_("Disabled");
-
- markup = g_strdup_printf("<b>%s</b>\n<small>%s</small>", title, info);
- g_object_set(cell, "markup", markup, NULL);
- g_free(markup);
-}
-
static void type_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
{
@@ -382,17 +312,6 @@ static GtkWidget *create_interfaces(GtkWidget *window)
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
renderer = gtk_cell_renderer_pixbuf_new();
- gtk_cell_renderer_set_fixed_size(renderer, 20, 45);
- gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_set_cell_data_func(column, renderer,
- state_to_icon, NULL, NULL);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(column, renderer, TRUE);
- gtk_tree_view_column_set_cell_data_func(column, renderer,
- type_to_text, NULL, NULL);
-
- renderer = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_column_pack_end(column, renderer, FALSE);
gtk_tree_view_column_set_cell_data_func(column, renderer,
type_to_icon, NULL, NULL);
@@ -413,9 +332,6 @@ static GtkWidget *create_interfaces(GtkWidget *window)
g_signal_connect(G_OBJECT(selection), "changed",
G_CALLBACK(select_callback), window);
- g_signal_connect(G_OBJECT(model), "row-changed",
- G_CALLBACK(row_changed), selection);
-
return mainbox;
}
@@ -479,11 +395,9 @@ static GtkWidget *create_window(void)
return window;
}
-#endif
int main(int argc, char *argv[])
{
-#if 0
GtkWidget *window;
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
@@ -501,7 +415,6 @@ int main(int argc, char *argv[])
gtk_main();
g_object_unref(client);
-#endif
return 0;
}