]> git.tdb.fi Git - pmount-gui.git/blobdiff - main.c
Use te device mounted flag to decide what to do
[pmount-gui.git] / main.c
diff --git a/main.c b/main.c
index 40b4483a87fb87810c332f4dd5228a554b737b5e..26dbca32f208a84be2832d8f7c61a0191cc4e886 100644 (file)
--- a/main.c
+++ b/main.c
@@ -621,7 +621,7 @@ void row_activated(GtkTreeView *list, GtkTreePath *path, GtkTreeViewColumn *colu
 {
        GtkTreeModel *model;
        GtkTreeIter iter;
-       int umount = *(int *)user_data;
+       int umount;
        char buf[1024];
        int pos = 0;
        int status = 0;
@@ -637,6 +637,7 @@ void row_activated(GtkTreeView *list, GtkTreePath *path, GtkTreeViewColumn *colu
                return;
 
        gtk_tree_model_get(model, &iter, 1, &device, -1);
+       umount = !!device->mounted;
 
        pipe(pipe_fd);
 
@@ -749,6 +750,7 @@ void row_activated(GtkTreeView *list, GtkTreePath *path, GtkTreeViewColumn *colu
        }
 
        (void)column;
+       (void)user_data;
 }
 
 /**
@@ -789,6 +791,18 @@ gboolean key_press(GtkWidget *widget, GdkEvent *event, gpointer user_data)
        return FALSE;
 }
 
+void show_help(void)
+{
+       printf("pmount-gui\n"
+               "Copyright (c) 2011-2015 Mikko Rasa, Mikkosoft Productions\n\n"
+               "Usage: pmount-gui [-v] [-u] [-r <command>] [-h]\n\n"
+               "Options:\n"
+               "  -v  Increase verbosity\n"
+               "  -u  Unmount a device (default is mount)\n"
+               "  -r  Run a command after mounting\n"
+               "  -h  Display this help\n");
+}
+
 int main(int argc, char **argv)
 {
        GtkWidget *window;
@@ -808,7 +822,7 @@ int main(int argc, char **argv)
 
        gtk_init(&argc, &argv);
 
-       while((opt = getopt(argc, argv, "vur:"))!=-1) switch(opt)
+       while((opt = getopt(argc, argv, "vur:h"))!=-1) switch(opt)
        {
        case 'v':
                ++verbosity;
@@ -819,6 +833,9 @@ int main(int argc, char **argv)
        case 'r':
                post_mount_command = optarg;
                break;
+       case 'h':
+               show_help();
+               return 0;
        }
 
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
@@ -835,7 +852,7 @@ int main(int argc, char **argv)
 
        list = gtk_tree_view_new();
        gtk_container_add(GTK_CONTAINER(viewport), list);
-       g_signal_connect(list, "row-activated", G_CALLBACK(&row_activated), &umount);
+       g_signal_connect(list, "row-activated", G_CALLBACK(&row_activated), NULL);
 
        store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
        gtk_tree_view_set_model(GTK_TREE_VIEW(list), GTK_TREE_MODEL(store));