summaryrefslogtreecommitdiffstats
path: root/sfshare-gui/src/sfshare.c
diff options
context:
space:
mode:
Diffstat (limited to 'sfshare-gui/src/sfshare.c')
-rw-r--r--sfshare-gui/src/sfshare.c74
1 files changed, 55 insertions, 19 deletions
diff --git a/sfshare-gui/src/sfshare.c b/sfshare-gui/src/sfshare.c
index b7c2978..a3c8f9f 100644
--- a/sfshare-gui/src/sfshare.c
+++ b/sfshare-gui/src/sfshare.c
@@ -1,3 +1,20 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
#include <gtk/gtk.h>
#include <string.h> /* strlen */
@@ -38,7 +55,6 @@ typedef struct _sfsdialog
/* Dialog window */
SFSDialog sfsdialog;
-
/* Is directory shared? */
gboolean shared_smbconf = FALSE;
@@ -50,6 +66,21 @@ gchar *dir_path;
void
+sfshare_dialog_destroy ()
+{
+ gtk_widget_destroy (sfsdialog.gui_guestok);
+ gtk_widget_destroy (sfsdialog.gui_readonly);
+ gtk_widget_destroy (sfsdialog.gui_comment);
+ gtk_widget_destroy (sfsdialog.gui_sharename);
+ gtk_widget_destroy (sfsdialog.gui_share);
+ gtk_widget_destroy (sfsdialog.gui_save);
+ gtk_widget_destroy (sfsdialog.gui_close);
+ gtk_widget_destroy (sfsdialog.window);
+}
+
+
+
+void
gui_changed ( void )
{
if (!change_in_gui)
@@ -65,25 +96,22 @@ gui_changed ( void )
void
show_message (GtkMessageType type, const gchar *format, gchar *msgtxt, const gchar *format_sec, gchar *msgtxt_sec)
{
- GtkWidget *msg_widget;
+ GtkWidget *dialog;
- msg_widget = gtk_message_dialog_new ( GTK_WINDOW (sfsdialog.window),
- GTK_DIALOG_MODAL,
+ dialog = gtk_message_dialog_new ( GTK_WINDOW (sfsdialog.window),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
type,
GTK_BUTTONS_OK,
format,
msgtxt);
- gtk_message_dialog_format_secondary_text ( GTK_MESSAGE_DIALOG (msg_widget),
+ gtk_message_dialog_format_secondary_text ( GTK_MESSAGE_DIALOG (dialog),
format_sec,
msgtxt_sec);
- g_signal_connect_swapped ( msg_widget,
- "response",
- G_CALLBACK (gtk_widget_destroy),
- msg_widget);
+ gtk_dialog_run ( GTK_DIALOG (dialog));
- gtk_widget_show (msg_widget);
+ gtk_widget_destroy (dialog);
}
@@ -150,7 +178,7 @@ void
reload_share_info ( void )
{
/* Reload info */
- load_share_info ();
+ load_share_info ();
}
void
@@ -194,7 +222,7 @@ sfshare_authority_check ( void )
* Call set_share
*/
void
-save_share_button ( void )
+save_share ( void )
{
gboolean shared_gui = FALSE;
@@ -248,7 +276,8 @@ main ( int argc, char **argv )
{
GtkBuilder *builder;
- gchar *filename;
+ const gchar *ui_filename;
+ GError *error = NULL;
if (argc < 2)
{
@@ -256,22 +285,28 @@ main ( int argc, char **argv )
exit(1);
}
+ /* First parameter is path to shared folder */
dir_path = argv[1];
gtk_init( &argc, &argv );
/* Create builder and load interface */
- builder = gtk_builder_new();
+ builder = gtk_builder_new ();
- filename = "/usr/share/sfshare/sfshare_window.ui";
- if (!g_file_test (filename, G_FILE_TEST_EXISTS))
- filename = "../data/sfshare_window.ui";
+ ui_filename = "/usr/share/sfshare/sfshare_window.ui";
+ if (!g_file_test (ui_filename, G_FILE_TEST_EXISTS))
+ ui_filename = "../data/sfshare_window.ui";
- gtk_builder_add_from_file( builder, filename, NULL );
+
+ if (!gtk_builder_add_from_file ( builder, ui_filename, &error ))
+ {
+ g_warning ("gtk_builder_add_from_file failed: %s", error->message);
+ g_error_free (error);
+ return -1;
+ }
/* Obtain widgets that we need */
sfsdialog.window = GTK_WIDGET ( gtk_builder_get_object( builder, "sfshare_window" ));
-
g_signal_connect (sfsdialog.window, "destroy", gtk_main_quit, NULL);
sfsdialog.gui_close = GTK_WIDGET( gtk_builder_get_object( builder, "button_close" ));
@@ -313,6 +348,7 @@ main ( int argc, char **argv )
gtk_main();
dbus_sfshare_disconnect ();
+ polkit_sfshare_free ();
return(0);
}