diff --git a/src/Makefile b/src/Makefile
index e5b2bfc..3249c6a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,2 +1,2 @@
all:
- gcc `pkg-config --libs --cflags gtk+-2.0` mountmatricula.c -o matricula
\ No newline at end of file
+ gcc `pkg-config --libs --cflags gtk+-2.0 gmodule-export-2.0` mountmatricula.c -o matricula
\ No newline at end of file
diff --git a/src/gui.ui b/src/gui.ui
index 97f38c2..3adc36c 100644
--- a/src/gui.ui
+++ b/src/gui.ui
@@ -31,9 +31,10 @@
-
button2
- button1
+ btn_connect
diff --git a/src/matricula b/src/matricula
index 13153ed..d97a43d 100755
Binary files a/src/matricula and b/src/matricula differ
diff --git a/src/mountmatricula.c b/src/mountmatricula.c
index 9b4db29..7974d09 100644
--- a/src/mountmatricula.c
+++ b/src/mountmatricula.c
@@ -3,16 +3,73 @@
#include
#include
+gchar SERVIDOR[] = "localhost";
+
+static void
+mount_mountable_done_cb (GObject *object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GFile *target;
+ GError *error = NULL;
+
+ target = g_file_mount_mountable_finish (G_FILE (object), res, &error);
+
+ g_print ("Destino, %s", target);
+
+ if (target == NULL)
+ g_printerr ("Error mounting location: %s\n", error->message);
+ else
+ g_object_unref (target);
+ /*
+ outstanding_mounts--;
+
+ if (outstanding_mounts == 0)
+ g_main_loop_quit (main_loop);
+ */
+}
+
+void mount (char *username, char *password) {
+ GFile *file;
+ gchar *cmd;
+ GMountOperation *op;
+
+ cmd = g_strdup_printf("ssh://%s@%s:/home/%s",
+ username, SERVIDOR, username);
+
+ g_print ("mountando: %s\n", cmd);
+
+ file = g_file_new_for_commandline_arg (cmd);
+ op = g_mount_operation_new ();
+ g_mount_operation_set_password (op, password);
+ g_file_mount_mountable (file, 0, op, NULL, mount_mountable_done_cb, op);
+
+}
void values_changed_cb (GtkWidget *widget, GtkBuilder *builder) {
- g_print ("values changed");
+ GObject *obj;
+ gint u, p;
+
+ obj = gtk_builder_get_object(builder, "username");
+ u = gtk_entry_get_text_length (GTK_ENTRY(obj));
+
+ obj = gtk_builder_get_object(builder, "password");
+ p = gtk_entry_get_text_length (GTK_ENTRY(obj));
+
+ obj = gtk_builder_get_object(builder, "btn_connect");
+
+ if ((u < 1) || (p < 1))
+ gtk_widget_set_sensitive (GTK_WIDGET(obj), FALSE);
+ else
+ gtk_widget_set_sensitive (GTK_WIDGET(obj), TRUE);
+
}
int main (int argc, char *argv[]) {
GtkBuilder *builder;
- GtkWidget *dialog;
-
+ GtkWidget *dialog, *obj;
+ gchar *username, *password;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
@@ -34,8 +91,17 @@ int main (int argc, char *argv[]) {
gtk_builder_connect_signals (builder, builder);
- dialog = gtk_builder_get_object (builder, "dialog");
- gtk_dialog_run (GTK_DIALOG(dialog));
+ dialog = GTK_WIDGET(gtk_builder_get_object (builder, "dialog"));
+ gint result = gtk_dialog_run (GTK_DIALOG(dialog));
+
+ if (result) {
+ obj = gtk_builder_get_object (builder, "username");
+ username = gtk_entry_get_text (GTK_ENTRY(obj));
+ obj = gtk_builder_get_object (builder, "password");
+ password = gtk_entry_get_text (GTK_ENTRY(obj));
+ mount (username, password);
+
+ }
gtk_main();
}