This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 .gitignore              |    5 +-
 ChangeLog               |    2 +
 applet/main.c           |  208 +++++++----
 common/Makefile.am      |   20 +-
 common/client.c         |  971 -----------------------------------------------
 common/client.h         |   92 -----
 common/client.xml       |   21 -
 common/common.h         |   25 --
 common/connman-client.c |  470 +++++++++++++++++++++++
 common/connman-client.h |  107 ++++++
 common/connman-dbus.c   |  577 ++++++++++++++++++++++++++++
 common/connman-dbus.h   |   42 ++
 common/connman-dbus.xml |   19 +
 common/demo.c           |  465 +++++++++++++++++++++++
 common/instance.c       |    4 +-
 common/test-client.c    |  517 +++----------------------
 configure.ac            |    4 +-
 po/POTFILES.in          |    4 +-
 properties/80203.c      |  130 -------
 properties/80211.c      |  116 ------
 properties/Makefile.am  |    3 +-
 properties/advanced.c   |   62 +---
 properties/advanced.h   |    8 +-
 properties/ethernet.c   |  100 +++++
 properties/main.c       |  246 ++++---------
 properties/wifi.c       |   99 +++++
 26 files changed, 2173 insertions(+), 2144 deletions(-)

New commits:
commit 1139c84bfdd7aec6e16c4b2a41df7215c62d3ba1
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 18:04:09 2008 +0100

    Release 0.1

commit 5c5b409ba0a0e188d85bfa52d8add60fad1dabbb
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 18:02:22 2008 +0100

    Update the properties dialog from latest API changes

commit 13168bb5189e4b6c1184010245aeb5bdbdc88636
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 18:02:04 2008 +0100

    Remove an unused variable

commit c71e1db7cf752ecfef7e46dc2662693cc7cb5cf5
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 18:01:43 2008 +0100

    Add correct introspection to the distribution

commit efa0a81c58b9719c0f4681779b254ab0621f0087
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 10:56:02 2008 +0100

    Show icon for networks with security enabled

commit 82a8317e0b6e5f5f284452d764fffac61a80f53f
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 10:51:29 2008 +0100

    Fix creation of network model

commit 7b6a7b2db31da044ae9200a31d7252c1aca5d3f1
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 10:37:49 2008 +0100

    Update applet for latest API changes

commit c6fa8a50b6eafe8c06ff8e2541094219c3447be7
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 10:37:10 2008 +0100

    If specified propose a scan for all devices

commit 332bca5effa43ddcf1bc9458e9eaa5903b48ba2f
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 10:30:14 2008 +0100

    Disable current network before connecting to new one

commit f545b6f84f7800b0619fbae6311d10f51be84d9c
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 09:35:05 2008 +0100

    Track signal strength of connections

commit bf26162084c361fa5716c92505365855bcc4dafe
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 09:05:49 2008 +0100

    Add more parameter validation

commit 5f1201eda1949b348620b7b637679045442fbc02
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 08:27:45 2008 +0100

    Add function to get connection model

commit b0d5b0a8d4a54271aaa97cb6945f61b2c0987624
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 08:21:40 2008 +0100

    Add function to get a combined device and network model

commit 9989dcb60922cadd575f9341063ce39545678f71
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 05:50:01 2008 +0100

    Remove useless casting

commit 2757666cd4b5b92e60f6b5a59ef0baa1b915773a
Author: Marcel Holtmann <[email protected]>
Date:   Thu Dec 18 05:17:11 2008 +0100

    Update common D-Bus tracking and example code


Diff in this email is a maximum of 400 lines.
diff --git a/.gitignore b/.gitignore
index 5aabe29..ca71aed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,8 +27,11 @@ po/POTFILES
 po/stamp-it
 po/.intltool-merge-cache
 
-common/instance-glue.h
 common/test-client
+common/connman-demo
 applet/connman-applet
 properties/connman-properties
+marshal.h
+marshal.c
+*-glue.h
 *.desktop
diff --git a/ChangeLog b/ChangeLog
index e69de29..ba27052 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -0,0 +1,2 @@
+ver 0.1:
+       Initial public release.
diff --git a/applet/main.c b/applet/main.c
index 12dc304..75ba582 100644
--- a/applet/main.c
+++ b/applet/main.c
@@ -23,31 +23,53 @@
 #include <config.h>
 #endif
 
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
 #include <dbus/dbus-glib.h>
-
 #include <glib/gi18n.h>
-#include <gtk/gtk.h>
 
-#include "client.h"
+#include "connman-client.h"
+
 #include "status.h"
 
-static void close_callback(GtkWidget *dialog, gpointer user_data)
+static ConnmanClient *client;
+
+static void open_uri(GtkWindow *parent, const char *uri)
 {
-       gtk_widget_destroy(dialog);
+       GtkWidget *dialog;
+       GdkScreen *screen;
+       GError *error = NULL;
+       gchar *cmdline;
+
+       screen = gtk_window_get_screen(parent);
+
+       cmdline = g_strconcat("xdg-open ", uri, NULL);
+
+       if (gdk_spawn_command_line_on_screen(screen,
+                                               cmdline, &error) == FALSE) {
+               dialog = gtk_message_dialog_new(parent,
+                       GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
+                               GTK_BUTTONS_CLOSE, "%s", error->message);
+               gtk_dialog_run(GTK_DIALOG(dialog));
+               gtk_widget_destroy(dialog);
+               g_error_free(error);
+       }
+
+       g_free(cmdline);
 }
 
 static void about_url_hook(GtkAboutDialog *dialog,
                                        const gchar *url, gpointer data)
 {
+       open_uri(GTK_WINDOW(dialog), url);
 }
 
 static void about_email_hook(GtkAboutDialog *dialog,
                                        const gchar *email, gpointer data)
 {
+       gchar *uri;
+
+       uri = g_strconcat("mailto:";, email, NULL);
+       open_uri(GTK_WINDOW(dialog), uri);
+       g_free(uri);
 }
 
 static void about_callback(GtkWidget *item, gpointer user_data)
@@ -56,34 +78,19 @@ static void about_callback(GtkWidget *item, gpointer 
user_data)
                "Marcel Holtmann <[email protected]>",
                NULL
        };
-       GtkWidget *dialog;
-
-       dialog = gtk_about_dialog_new();
-
-       gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog),
-                                               _("Connection Manager"));
-       gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
-       gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),
-                               "Copyright \xc2\xa9 2008 Intel Corporation");
-       gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog),
-                       _("A connection manager for the GNOME desktop"));
-       gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(dialog),
-                                                       "stock_internet");
 
        gtk_about_dialog_set_url_hook(about_url_hook, NULL, NULL);
        gtk_about_dialog_set_email_hook(about_email_hook, NULL, NULL);
 
-       gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors);
-       gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog),
-                                               _("translator-credits"));
-
-       g_signal_connect(dialog, "close", G_CALLBACK(close_callback), NULL);
-       g_signal_connect(dialog, "response", G_CALLBACK(close_callback), NULL);
-
-       gtk_widget_show_all(dialog);
+       gtk_show_about_dialog(NULL, "version", VERSION,
+               "copyright", "Copyright \xc2\xa9 2008 Intel Corporation",
+               "comments", _("A connection manager for the GNOME desktop"),
+               "authors", authors,
+               "translator-credits", _("translator-credits"),
+               "logo-icon-name", "network-wireless", NULL);
 }
 
-static void settings_callback(GObject *widget, gpointer user_data)
+static void settings_callback(GtkWidget *item, gpointer user_data)
 {
        const char *command = "connman-properties";
 
@@ -91,6 +98,13 @@ static void settings_callback(GObject *widget, gpointer 
user_data)
                g_printerr("Couldn't execute command: %s\n", command);
 }
 
+static void activate_callback(GtkWidget *item, gpointer user_data)
+{
+       const gchar *path = user_data;
+
+       connman_client_connect(client, path);
+}
+
 static GtkWidget *create_popupmenu(void)
 {
        GtkWidget *menu;
@@ -112,7 +126,7 @@ static GtkWidget *create_popupmenu(void)
 }
 
 static GtkWidget *append_menuitem(GtkMenu *menu, const char *ssid,
-                                       gboolean security, double strength)
+                                       guint security, guint strength)
 {
        GtkWidget *item;
        GtkWidget *hbox;
@@ -136,14 +150,15 @@ static GtkWidget *append_menuitem(GtkMenu *menu, const 
char *ssid,
        image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_AUTHENTICATION,
                                                        GTK_ICON_SIZE_MENU);
        gtk_misc_set_alignment(GTK_MISC(image), 1.0, 0.5);
-       if (security == TRUE) {
+       if (security != CONNMAN_SECURITY_NONE) {
                gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
                gtk_widget_show(image);
        }
 
        progress = gtk_progress_bar_new();
        gtk_widget_set_size_request(progress, 100, -1);
-       gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), strength);
+       gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress),
+                                               (double) strength / 100);
        gtk_box_pack_end(GTK_BOX(hbox), progress, FALSE, TRUE, 0);
        gtk_widget_show(progress);
 
@@ -163,19 +178,27 @@ static void enumerate_networks(GtkMenu *menu,
 
        while (cont == TRUE) {
                GtkWidget *item;
-               gboolean security;
-               guint signal;
-               gchar *str;
+               DBusGProxy *proxy;
+               guint strength, security;
+               gchar *name, *path;
+               gboolean connected;
 
                gtk_tree_model_get(model, &iter,
-                               CLIENT_COLUMN_SIGNAL, &signal,
-                               CLIENT_COLUMN_NETWORK_ESSID, &str,
-                               CLIENT_COLUMN_NETWORK_SECURITY, &security, -1);
+                               CONNMAN_COLUMN_PROXY, &proxy,
+                               CONNMAN_COLUMN_NAME, &name,
+                               CONNMAN_COLUMN_ENABLED, &connected,
+                               CONNMAN_COLUMN_STRENGTH, &strength,
+                               CONNMAN_COLUMN_SECURITY, &security, -1);
+
+               item = append_menuitem(menu, name, security, strength);
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
+                                                               connected);
 
-               item = append_menuitem(menu, str, security,
-                                               (double) signal / 100);
+               path = g_strdup(dbus_g_proxy_get_path(proxy));
+               g_signal_connect(item, "activate",
+                                       G_CALLBACK(activate_callback), path);
 
-               g_free(str);
+               g_free(name);
 
                cont = gtk_tree_model_iter_next(model, &iter);
        }
@@ -188,29 +211,29 @@ static gboolean menu_callback(GtkMenu *menu)
        GtkWidget *item;
        gboolean cont;
 
-       client_propose_scanning();
+       connman_client_propose_scan(client, NULL);
 
-       model = client_get_active_model();
+       model = connman_client_get_device_network_model(client);
 
        cont = gtk_tree_model_get_iter_first(model, &parent);
 
        while (cont == TRUE) {
                guint type;
-               gchar *str;
+               gchar *name;
 
                gtk_tree_model_get(model, &parent,
-                                       CLIENT_COLUMN_TYPE, &type,
-                                       CLIENT_COLUMN_PRODUCT, &str, -1);
+                                       CONNMAN_COLUMN_TYPE, &type,
+                                       CONNMAN_COLUMN_NAME, &name, -1);
 
                switch (type) {
-               case CLIENT_TYPE_80211:
+               case CONNMAN_TYPE_WIFI:
                        enumerate_networks(menu, model, &parent);
                        break;
                default:
                        break;
                }
 
-               g_free(str);
+               g_free(name);
 
                cont = gtk_tree_model_iter_next(model, &parent);
        }
@@ -231,63 +254,90 @@ static gboolean menu_callback(GtkMenu *menu)
        return TRUE;
 }
 
-static void state_callback(guint state, gint signal)
+static void update_status(GtkTreeModel *model)
 {
-       switch (state) {
-       case CLIENT_STATE_OFF:
-       case CLIENT_STATE_ENABLED:
-       case CLIENT_STATE_SHUTDOWN:
+       GtkTreeIter iter;
+       gboolean cont;
+       gboolean online = FALSE;
+       guint strength, type;
+
+       cont = gtk_tree_model_get_iter_first(model, &iter);
+
+       while (cont == TRUE) {
+               gboolean enabled;
+
+               gtk_tree_model_get(model, &iter,
+                                       CONNMAN_COLUMN_TYPE, &type,
+                                       CONNMAN_COLUMN_STRENGTH, &strength,
+                                       CONNMAN_COLUMN_ENABLED, &enabled, -1);
+
+               online = TRUE;
+
+               if (enabled == TRUE)
+                       break;
+
+               cont = gtk_tree_model_iter_next(model, &iter);
+       }
+
+       if (online == FALSE) {
                status_offline();
-               break;
-       case CLIENT_STATE_SCANNING:
-       case CLIENT_STATE_CONNECT:
-               status_prepare();
-               break;
-       case CLIENT_STATE_CONNECTED:
-       case CLIENT_STATE_CARRIER:
-       case CLIENT_STATE_CONFIGURE:
-               status_config();
-               break;
-       case CLIENT_STATE_READY:
-               status_ready(signal);
+               return;
+       }
+
+       switch (type) {
+       case CONNMAN_TYPE_WIFI:
+       case CONNMAN_TYPE_WIMAX:
+               status_ready(strength / 25);
                break;
        default:
-               status_hide();
+               status_ready(-1);
                break;
        }
 }
 
-static void sig_term(int sig)
+static void connection_added(GtkTreeModel *model, GtkTreePath *path,
+                                       GtkTreeIter *iter, gpointer user_data)
 {
-       gtk_main_quit();
+       update_status(model);
+}
+
+static void connection_removed(GtkTreeModel *model, GtkTreePath *path,
+                                                       gpointer user_data)
+{
+       update_status(model);
 }
 
 int main(int argc, char *argv[])
 {
-       struct sigaction sa;
+       GtkTreeModel *model;
 
        bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
        bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
        textdomain(GETTEXT_PACKAGE);
 
        gtk_init(&argc, &argv);
+       gtk_window_set_default_icon_name("network-wireless");
 
-       gtk_window_set_default_icon_name("stock_internet");
+       g_set_application_name(_("Connection Manager"));
 
        status_init(menu_callback, create_popupmenu());
 
-       client_init(NULL);
+       client = connman_client_new();
+       model = connman_client_get_connection_model(client);
 
-       client_set_state_callback(state_callback);
+       g_signal_connect(G_OBJECT(model), "row-inserted",
+                                       G_CALLBACK(connection_added), NULL);
+       g_signal_connect(G_OBJECT(model), "row-changed",
+                                       G_CALLBACK(connection_added), NULL);
+       g_signal_connect(G_OBJECT(model), "row-deleted",
+                                       G_CALLBACK(connection_removed), NULL);
 
-       memset(&sa, 0, sizeof(sa));
-       sa.sa_handler = sig_term;
-       sigaction(SIGINT, &sa, NULL);
-       sigaction(SIGTERM, &sa, NULL);
+       update_status(model);
 
        gtk_main();
 
-       client_cleanup();
+       g_object_unref(model);
+       g_object_unref(client);
 
        status_cleanup();
 
diff --git a/common/Makefile.am b/common/Makefile.am
index 015ca0c..139897e 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
@@ -1,14 +1,20 @@
 
 noinst_LIBRARIES = libcommon.a
 
-libcommon_a_SOURCES = common.h client.h client.c \
-                               instance.h instance.c
+libcommon_a_SOURCES = connman-dbus.c connman-dbus.h \
+                               connman-client.h connman-client.c \
+                                                       instance.h instance.c
 
-noinst_PROGRAMS = test-client
+noinst_PROGRAMS = connman-demo test-client
+
+connman_demo_SOURCES = demo.c
+connman_demo_LDADD = libcommon.a @GTK_LIBS@ @DBUS_LIBS@
 
 test_client_LDADD = libcommon.a @GTK_LIBS@ @DBUS_LIBS@
 
-BUILT_SOURCES = marshal.h marshal.c instance-glue.h client-glue.h
+BUILT_SOURCES = marshal.h marshal.c \
+                       connman-dbus-glue.h \
+                               instance-glue.h
 
 nodist_libcommon_a_SOURCES = $(BUILT_SOURCES)
 
@@ -16,7 +22,7 @@ CLEANFILES = $(BUILT_SOURCES)
 
 AM_CFLAGS = @DBUS_CFLAGS@ @GTK_CFLAGS@
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits

Reply via email to