Author: colossus
Date: 2007-08-02 11:10:22 +0000 (Thu, 02 Aug 2007)
New Revision: 25953

Modified:
   xarchiver/trunk/src/main.c
   xarchiver/trunk/src/mime.c
   xarchiver/trunk/src/pref_dialog.c
   xarchiver/trunk/src/pref_dialog.h
   xarchiver/trunk/src/window.c
Log:
Working on preferences dialog to store and restore the settings.
Added lha mimetype.


Modified: xarchiver/trunk/src/main.c
===================================================================
--- xarchiver/trunk/src/main.c  2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/main.c  2007-08-02 11:10:22 UTC (rev 25953)
@@ -35,6 +35,7 @@
 gboolean cli = FALSE;
 gboolean unrar = FALSE;
 extern gchar *current_open_directory;
+Prefs_dialog_data *prefs_window = NULL;
 
 static GOptionEntry entries[] =
 {
@@ -220,8 +221,11 @@
                GetAvailableCompressors();
                ArchiveSuffix = g_list_reverse (ArchiveSuffix);
                ArchiveType = g_list_reverse (ArchiveType);
+               MainWindow = create_MainWindow ();
 
-               MainWindow = create_MainWindow ();
+               prefs_window = xa_create_prefs_dialog();
+               xa_prefs_load_options (prefs_window);
+
                gtk_window_set_position ( GTK_WINDOW 
(MainWindow),GTK_WIN_POS_CENTER);
                gtk_window_set_default_size (GTK_WINDOW(MainWindow), 600, 400);
                Update_StatusBar ( _("Ready."));

Modified: xarchiver/trunk/src/mime.c
===================================================================
--- xarchiver/trunk/src/mime.c  2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/mime.c  2007-08-02 11:10:22 UTC (rev 25953)
@@ -46,7 +46,7 @@
                icon_name = "gnome-mime-application-vnd.ms-powerpoint";
        else if (strcmp(mime,"application/zip") == 0 || 
strcmp(mime,"application/x-rar") == 0 || strcmp(mime,"application/x-tar") == 0
                || strcmp(mime,"application/x-7z-compressed") == 0 || 
strcmp(mime,"application/x-bzip-compressed-tar") == 0
-               || strcmp (mime,"application/x-compressed-tar") == 0 )
+               || strcmp (mime,"application/x-compressed-tar") == 0 || strcmp 
(mime,"application/x-lha") == 0 )
                icon_name = "package";
        else if (strcmp(mime,"application/x-shockwave-flash") == 0 || 
strcmp(mime,"video/mpeg") == 0 || strcmp(mime,"video/quicktime") == 0
                || strcmp(mime,"video/x-msvideo") == 0)

Modified: xarchiver/trunk/src/pref_dialog.c
===================================================================
--- xarchiver/trunk/src/pref_dialog.c   2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/pref_dialog.c   2007-08-02 11:10:22 UTC (rev 25953)
@@ -28,7 +28,7 @@
 {
        GtkWidget *vbox1, *vbox2, *vbox3, *vbox4,*hbox1, *scrolledwindow1, 
*prefs_iconview, *label5;
        GtkWidget *label1, *label2, *label3, *label4, *frame1, *frame2, 
*frame3, *alignment1, *alignment2, *alignment3;
-       GtkWidget *hbox3, *hbox4, *label6, *label7, *hbox5, *label8, *hbox6;
+       GtkWidget *hbox3, *hbox4, *label6, *label7, *hbox5, *label8, *label9, 
*hbox6, *hbox7;
        GtkTreeIter iter;
        GList *archive_type;
        GdkPixbuf *icon_pixbuf;
@@ -100,15 +100,15 @@
        label4 = gtk_label_new (_("Preferred format for new archives:"));
        gtk_box_pack_start (GTK_BOX (hbox1), label4, FALSE, FALSE, 0);
 
-       prefs_data->combo_box1 = gtk_combo_box_new_text();
-       gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->combo_box1, FALSE, 
TRUE, 0);
+       prefs_data->combo_prefered_format = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->combo_prefered_format, 
FALSE, TRUE, 0);
        archive_type = g_list_first ( ArchiveType );
        while ( archive_type != NULL )
        {
                if (archive_type->data == "tgz" || archive_type->data == "rpm" 
|| archive_type->data == "iso" || archive_type->data == "gz" || 
archive_type->data == "bz2" || (archive_type->data == "rar" && unrar) )
                        goto next;
                else
-                       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_box1),archive_type->data );
+                       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_format),archive_type->data );
                next:
                        archive_type = g_list_next ( archive_type );
        }
@@ -150,11 +150,22 @@
        label5 = gtk_label_new (_("View archive content as"));
        gtk_box_pack_start (GTK_BOX (hbox3), label5, FALSE, FALSE, 0);
 
-       prefs_data->combo_box2 = gtk_combo_box_new_text();
-       gtk_box_pack_start (GTK_BOX (hbox3), prefs_data->combo_box2, FALSE, 
TRUE, 0);
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box2), 
_("list") );
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box2), 
_("icon") );
+       prefs_data->combo_archive_view = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox3), prefs_data->combo_archive_view, 
FALSE, TRUE, 0);
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_archive_view), _("list") );
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_archive_view), _("icon") );
+       
+       hbox7 = gtk_hbox_new (FALSE, 5);
+       gtk_box_pack_start (GTK_BOX (vbox2), hbox7, FALSE, TRUE, 0);
+       
+       label9 = gtk_label_new (_("Size of the mimetype icons"));
+       gtk_box_pack_start (GTK_BOX (hbox7), label9, FALSE, FALSE, 0);
 
+       prefs_data->combo_icon_size = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox7), prefs_data->combo_icon_size, 
FALSE, TRUE, 0);
+       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size), 
_("Large") );
+       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size), 
_("Small") );
+
        prefs_data->check_show_comment = gtk_check_button_new_with_mnemonic 
(_("Show archive comment after loading it"));
        gtk_box_pack_start (GTK_BOX (vbox2), prefs_data->check_show_comment, 
FALSE, FALSE, 0);
        gtk_button_set_focus_on_click (GTK_BUTTON 
(prefs_data->check_show_comment), FALSE);
@@ -190,23 +201,23 @@
        hbox4 = gtk_hbox_new (FALSE, 5);
        gtk_box_pack_start (GTK_BOX (vbox3), hbox4, FALSE, TRUE, 0);
 
-       label6 = gtk_label_new (_("Preferred web browser:"));
+       label6 = gtk_label_new (_("View HTML help with:"));
        gtk_box_pack_start (GTK_BOX (hbox4), label6, FALSE, FALSE, 0);
 
-       prefs_data->combo_box3 = gtk_combo_box_new_text();
-       gtk_box_pack_start (GTK_BOX (hbox4), prefs_data->combo_box3, FALSE, 
TRUE, 0);
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box3), 
_("xfce default") );
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box3), 
_("konqueror") );
+       prefs_data->combo_prefered_web_browser = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox4), 
prefs_data->combo_prefered_web_browser, FALSE, TRUE, 0);
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_web_browser), _("Firefox") );
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_web_browser), _("choose...") );
 
        hbox5 = gtk_hbox_new (FALSE, 5);
        gtk_box_pack_start (GTK_BOX (vbox3), hbox5, FALSE, TRUE, 0);
 
-       label7 = gtk_label_new (_("Preferred view application:"));
+       label7 = gtk_label_new (_("Open text files with:"));
        gtk_box_pack_start (GTK_BOX (hbox5), label7, FALSE, FALSE, 0);
 
-       prefs_data->combo_box4 = gtk_combo_box_new_text();
-       gtk_box_pack_start (GTK_BOX (hbox5), prefs_data->combo_box4, FALSE, 
TRUE, 0);
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box4), 
_("choose...") );
+       prefs_data->combo_prefered_editor = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox5), prefs_data->combo_prefered_editor, 
FALSE, TRUE, 0);
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_editor), _("choose...") );
        
        hbox6 = gtk_hbox_new (FALSE, 5);
        gtk_box_pack_start (GTK_BOX (vbox3), hbox6, FALSE, TRUE, 0);
@@ -214,9 +225,10 @@
        label8 = gtk_label_new (_("Preferred temp directory:"));
        gtk_box_pack_start (GTK_BOX (hbox6), label8, FALSE, FALSE, 0);
        
-       prefs_data->combo_box5 = gtk_combo_box_new_text();
-       gtk_box_pack_start (GTK_BOX (hbox6), prefs_data->combo_box5, FALSE, 
TRUE, 0);
-       gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_box5), 
_("choose...") );
+       prefs_data->combo_prefered_temp_dir = gtk_combo_box_new_text();
+       gtk_box_pack_start (GTK_BOX (hbox6), 
prefs_data->combo_prefered_temp_dir, FALSE, TRUE, 0);
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_temp_dir), _("/tmp") );
+       gtk_combo_box_append_text (GTK_COMBO_BOX 
(prefs_data->combo_prefered_temp_dir), _("choose...") );
 
        prefs_data->check_save_geometry = gtk_check_button_new_with_mnemonic 
(_("Save window geometry on exit"));
        gtk_box_pack_start (GTK_BOX (vbox3), prefs_data->check_save_geometry, 
FALSE, FALSE, 0);
@@ -255,3 +267,55 @@
        else if (column == 2)
                gtk_notebook_set_current_page 
(GTK_NOTEBOOK(prefs->prefs_notebook),2);
 }
+
+void xa_prefs_dialog_set_default_options(Prefs_dialog_data *prefs_data)
+{
+       gtk_combo_box_set_active 
(GTK_COMBO_BOX(prefs_data->combo_prefered_format),2);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(prefs_data->confirm_deletion),TRUE);
+
+       gtk_combo_box_set_active 
(GTK_COMBO_BOX(prefs_data->combo_archive_view),0);
+       gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_icon_size),0);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(prefs_data->show_location_bar),TRUE);
+       
+       gtk_combo_box_set_active 
(GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),0);
+       gtk_combo_box_set_active 
(GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(prefs_data->check_save_geometry),TRUE);        
+}
+
+void xa_prefs_save_options(Prefs_dialog_data *prefs_data, const char *filename)
+{
+       // leggi i valori dei widget e salva
+       
+}
+
+void xa_prefs_load_options(Prefs_dialog_data *prefs_data)
+{
+       GKeyFile *xa_key_file = NULL;
+       gchar *config_dir = NULL;
+       gchar *xarchiver_config_dir = NULL;
+       gchar *config_file = NULL;
+
+       xa_key_file = g_key_file_new();
+       config_dir = g_strconcat (g_get_home_dir(),"/.config",NULL);
+       if (g_file_test(config_dir, G_FILE_TEST_EXISTS) == FALSE)
+               g_mkdir_with_parents(config_dir,0600);
+                                       
+       xarchiver_config_dir = g_strconcat (config_dir,"/xarchiver",NULL);
+       g_free (config_dir);
+       if (g_file_test(xarchiver_config_dir, G_FILE_TEST_EXISTS) == FALSE)
+               g_mkdir_with_parents(xarchiver_config_dir,0600);
+
+       config_file = g_strconcat (xarchiver_config_dir,"/xarchiverrc",NULL);
+       g_free (xarchiver_config_dir);
+               
+       if ( ! 
g_key_file_load_from_file(xa_key_file,config_file,G_KEY_FILE_KEEP_COMMENTS,NULL)
 )
+       {
+               g_print ("Chiamo il default\n");
+               xa_prefs_dialog_set_default_options(prefs_data);
+               xa_prefs_save_options(prefs_data,config_file);
+       }
+       else
+               //imposta i widget con i valori caricati
+       g_key_file_free(xa_key_file);
+}
+

Modified: xarchiver/trunk/src/pref_dialog.h
===================================================================
--- xarchiver/trunk/src/pref_dialog.h   2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/pref_dialog.h   2007-08-02 11:10:22 UTC (rev 25953)
@@ -23,15 +23,18 @@
 {
        GtkWidget *dialog1;
        GtkWidget *dialog_vbox1;
-       GtkWidget *combo_box1, *check_save_add_dialog, 
*check_save_extract_dialog;
-       GtkWidget *allow_dir_extract_with_dnd, *confirm_deletion, *combo_box2;
+       GtkWidget *combo_prefered_format, *check_save_add_dialog, 
*check_save_extract_dialog;
+       GtkWidget *allow_dir_extract_with_dnd, *confirm_deletion, 
*combo_archive_view,*combo_icon_size;
        GtkWidget *check_show_comment, *check_sort_filename_column, 
*check_show_iso_info,*show_location_bar;
-       GtkWidget *combo_box3, *combo_box4, *combo_box5, 
*check_save_geometry,*prefs_notebook;
+       GtkWidget *combo_prefered_web_browser, *combo_prefered_editor, 
*combo_prefered_temp_dir, *check_save_geometry,*prefs_notebook;
        GtkListStore *prefs_liststore;
        GtkTooltips *tooltips;
 } Prefs_dialog_data;
 
 Prefs_dialog_data *xa_create_prefs_dialog ();
 void xa_prefs_iconview_changed (GtkIconView *iconview, gpointer user_data);
+void xa_prefs_dialog_set_default_options (Prefs_dialog_data *prefs_data);
+void xa_prefs_save_options (Prefs_dialog_data *prefs_data,const char 
*filename);
+void xa_prefs_load_options (Prefs_dialog_data *prefs_data);
 #endif
 

Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c        2007-08-02 07:31:28 UTC (rev 25952)
+++ xarchiver/trunk/src/window.c        2007-08-02 11:10:22 UTC (rev 25953)
@@ -35,6 +35,7 @@
 extern gboolean stop_flag;
 extern gboolean unrar;
 
+extern Prefs_dialog_data *prefs_window;
 gchar *current_open_directory = NULL;
 GtkFileFilter *open_file_filter = NULL;
 GList *Suffix , *Name;
@@ -663,13 +664,9 @@
 
 void xa_show_prefs_dialog ( GtkMenuItem *menuitem , gpointer user_data )
 {
-       static Prefs_dialog_data *prefs_window = NULL;
-
        if (prefs_window == NULL)
-       {
                prefs_window = xa_create_prefs_dialog();
-               gtk_window_set_destroy_with_parent (GTK_WINDOW 
(prefs_window->dialog1) , TRUE);
-       }
+
        gtk_widget_show_all(prefs_window->dialog1);
        gtk_dialog_run ( GTK_DIALOG(prefs_window->dialog1) );
        gtk_widget_hide (prefs_window->dialog1);
@@ -1164,9 +1161,9 @@
        /* First column: icon + text */
        column = gtk_tree_view_column_new();
        renderer = gtk_cell_renderer_pixbuf_new();
-       //GTK_ICON_SIZE_SMALL_TOOLBAR = 2;
        //GTK_ICON_SIZE_LARGE_TOOLBAR = 3;
-       g_object_set(G_OBJECT(renderer), "stock-size", 
GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
+       //GTK_ICON_SIZE_SMALL_TOOLBAR = 2;
+       g_object_set(G_OBJECT(renderer), "stock-size", (3 - 
gtk_combo_box_get_active(GTK_COMBO_BOX(prefs_window->combo_icon_size))), NULL);
        gtk_tree_view_column_pack_start(column, renderer, FALSE);
        gtk_tree_view_column_set_attributes(column, renderer, 
"icon-name",0,NULL);
 

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to