Revision: 1871
          http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1871&view=rev
Author:   Sikon
Date:     2007-12-29 08:20:52 -0800 (Sat, 29 Dec 2007)

Log Message:
-----------
mserv preferences

Modified Paths:
--------------
    gtkpod/trunk/ChangeLog
    gtkpod/trunk/data/gtkpod.glade
    gtkpod/trunk/src/prefsdlg.c

Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog      2007-12-29 14:38:50 UTC (rev 1870)
+++ gtkpod/trunk/ChangeLog      2007-12-29 16:20:52 UTC (rev 1871)
@@ -6,6 +6,7 @@
     Filename parse preferences
     Cover art search preferences
        File mask exclusion preferences
+       mserv preferences
        
   * data/default-cover.png:
   
@@ -14,6 +15,10 @@
   * src/display_coverart.c:
   
     Set resize algorithm to GDK_INTERP_BILINEAR - yields nicer-looking images
+       
+  * src/charset.c:
+  
+    Added missing call to g_free
 
 2007-12-28 Matvey Kozhev <sikon at users.sourceforge.net>
 

Modified: gtkpod/trunk/data/gtkpod.glade
===================================================================
--- gtkpod/trunk/data/gtkpod.glade      2007-12-29 14:38:50 UTC (rev 1870)
+++ gtkpod/trunk/data/gtkpod.glade      2007-12-29 16:20:52 UTC (rev 1871)
@@ -14622,12 +14622,12 @@
                                 <child>
                                   <widget class="GtkButton" 
id="mserv_settings">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property 
name="receives_default">True</property>
                                     <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                     <property name="label" 
translatable="yes">Settings...</property>
                                     <property name="response_id">0</property>
+                                    <signal name="clicked" 
handler="on_mserv_settings_clicked"/>
                                   </widget>
                                   <packing>
                                     <property name="expand">False</property>
@@ -15141,6 +15141,7 @@
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Encoding Preferences</property>
     <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="has_separator">False</property>
@@ -15275,6 +15276,7 @@
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Filename Parse 
Preferences</property>
     <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="has_separator">False</property>
@@ -15393,6 +15395,7 @@
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Cover Art Search 
Preferences</property>
     <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <property name="has_separator">False</property>
@@ -15501,6 +15504,7 @@
     <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Exclusions List</property>
+    <property name="modal">True</property>
     <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
     <property name="default_height">350</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
@@ -15643,4 +15647,236 @@
       </widget>
     </child>
   </widget>
+  <widget class="GtkDialog" id="prefs_mserv_dialog">
+    <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">mserv Preferences</property>
+    <property name="modal">True</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="default_width">400</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox12">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">2</property>
+        <child>
+          <widget class="GtkVBox" id="vbox26">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+            <property name="border_width">7</property>
+            <property name="spacing">18</property>
+            <child>
+              <widget class="GtkCheckButton" id="use_mserv">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">Use mserv database 
to fill track information</property>
+                <property name="response_id">0</property>
+                <property name="draw_indicator">True</property>
+                <signal name="toggled" handler="on_simple_checkbox_toggled"/>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkFrame" id="mserv_settings_frame">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <widget class="GtkAlignment" id="alignment31">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <widget class="GtkVBox" id="vbox27">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkTable" id="table2">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="n_rows">3</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <widget class="GtkEntry" id="mserv_username">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <signal name="changed" 
handler="on_mserv_username_changed"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkFileChooserButton" 
id="mserv_root">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property 
name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+                                <signal name="current_folder_changed" 
handler="on_mserv_root_current_folder_changed"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkFileChooserButton" 
id="music_root">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property 
name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+                                <signal name="current_folder_changed" 
handler="on_music_root_current_folder_changed"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="hbox26">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label31">
+                                    <property name="visible">True</property>
+                                    <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                    <property name="label" 
translatable="yes">Music root:</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="hbox27">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label32">
+                                    <property name="visible">True</property>
+                                    <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                    <property name="label" 
translatable="yes">mserv root:</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="hbox28">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label33">
+                                    <property name="visible">True</property>
+                                    <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                    <property name="label" 
translatable="yes">Username:</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" 
id="report_mserv_problems">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="label" translatable="yes">Report 
problems when accessing mserv</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                            <signal name="toggled" 
handler="on_simple_checkbox_toggled"/>
+                          </widget>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label28">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="label" translatable="yes">&lt;b&gt;mserv 
Settings&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="type">label_item</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area12">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="close_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label" translatable="yes">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>

Modified: gtkpod/trunk/src/prefsdlg.c
===================================================================
--- gtkpod/trunk/src/prefsdlg.c 2007-12-29 14:38:50 UTC (rev 1870)
+++ gtkpod/trunk/src/prefsdlg.c 2007-12-29 16:20:52 UTC (rev 1871)
@@ -146,28 +146,30 @@
 void update_checkbox_deps (GtkToggleButton *checkbox, const gchar *deps)
 {
        /* Enable or disable dependent checkboxes */
+       GladeXML *xml = GLADE_XML (g_object_get_data (G_OBJECT (checkbox), 
"xml"));
        gboolean active = gtk_toggle_button_get_active (checkbox);
        gchar **deparray;
        int i;
 
-       if(!deps)
+       if(!xml || !deps)
                return;
 
        deparray = g_strsplit (deps, ",", 0);
        
        for(i = 0; deparray[i]; i++)
        {
-               GtkWidget *dep = gtkpod_xml_get_widget (prefs_xml, deparray[i]);
+               GtkWidget *dep = gtkpod_xml_get_widget (xml, deparray[i]);
                gtk_widget_set_sensitive (dep, active);
        }
        
        g_strfreev (deparray);
 }
 
-void init_checkbox (GtkToggleButton *checkbox, const gchar *pref, const gchar 
*deps)
+void init_checkbox (GtkToggleButton *checkbox, GladeXML *xml, const gchar 
*pref, const gchar *deps)
 {
        g_object_set_data(G_OBJECT(checkbox), "pref", (gchar *) pref);
        g_object_set_data(G_OBJECT(checkbox), "deps", (gchar *) deps);
+       g_object_set_data(G_OBJECT(checkbox), "xml", xml);
        
        if(pref)
        {       
@@ -299,7 +301,7 @@
        for (i = 0; i < COUNTOF(checkbox_map); i++)
        {
                init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
checkbox_map[i][0])),
-                                          checkbox_map[i][1], 
checkbox_map[i][2]);
+                                          xml, checkbox_map[i][1], 
checkbox_map[i][2]);
        }
        
        for (i = 0; i < COUNTOF(tag_checkbox_map); i++)
@@ -553,10 +555,10 @@
        GtkWidget *combo = gtkpod_xml_get_widget (xml, "encoding_combo");
        
        init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
"use_encoding_for_update")),
-                                                                         
"update_charset", NULL);
+                                  xml, "update_charset", NULL);
 
        init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
"use_encoding_for_writing")),
-                                                                         
"write_charset", NULL);
+                                  xml, "write_charset", NULL);
 
        charset_init_combo_box (GTK_COMBO_BOX (combo));
        glade_xml_signal_autoconnect (xml);
@@ -595,7 +597,7 @@
        }
        
        init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
"overwrite_tags")),
-                                                                         
"parsetags_overwrite", NULL);
+                                  xml, "parsetags_overwrite", NULL);
        
        glade_xml_signal_autoconnect (xml);
        gtk_dialog_run (GTK_DIALOG (dlg));
@@ -752,3 +754,79 @@
                update_exclusions (store);
        }
 }
+
+/*
+       glade callback
+*/
+G_MODULE_EXPORT void on_mserv_settings_clicked (GtkButton *sender, gpointer e)
+{
+       GladeXML *xml = gtkpod_xml_new (xml_file, "prefs_mserv_dialog");
+       GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_mserv_dialog");
+       gchar *temp = prefs_get_string ("mserv_username");
+       
+       if(temp)
+       {
+               gtk_entry_set_text (GTK_ENTRY (gtkpod_xml_get_widget (xml, 
"mserv_username")),
+                                                       temp);
+               
+               g_free (temp);
+       }
+       
+       temp = prefs_get_string ("path_mserv_music_root");
+       
+       if(temp)
+       {
+               gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER 
(gtkpod_xml_get_widget (xml, "music_root")),
+                                                                               
         temp);
+               
+               g_free (temp);
+       }
+       
+       temp = prefs_get_string ("path_mserv_trackinfo_root");
+       
+       if(temp)
+       {
+               gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER 
(gtkpod_xml_get_widget (xml, "mserv_root")),
+                                                                               
         temp);
+               
+               g_free (temp);
+       }
+       
+       init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
"use_mserv")),
+                                  xml, "mserv_use", "mserv_settings_frame");
+       
+       init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml, 
"report_mserv_problems")),
+                                  xml, "mserv_report_probs", NULL);
+       
+       glade_xml_signal_autoconnect (xml);
+       gtk_dialog_run (GTK_DIALOG (dlg));
+       gtk_widget_destroy (dlg);
+       g_object_unref (xml);
+}
+
+/*
+       glade callback
+*/
+G_MODULE_EXPORT void on_mserv_username_changed (GtkEditable *sender, gpointer 
e)
+{
+       prefs_set_string ("mserv_username", gtk_entry_get_text (GTK_ENTRY 
(sender)));
+}
+
+/*
+       glade callback
+*/
+G_MODULE_EXPORT void on_music_root_current_folder_changed (GtkFileChooser 
*sender, gpointer e)
+{
+       printf ("Got here!\n");
+       prefs_set_string ("path_mserv_music_root",
+                                         gtk_file_chooser_get_current_folder 
(GTK_FILE_CHOOSER (sender)));
+}
+
+/*
+       glade callback
+*/
+G_MODULE_EXPORT void on_mserv_root_current_folder_changed (GtkFileChooser 
*sender, gpointer e)
+{
+       prefs_set_string ("path_mserv_trackinfo_root",
+                                         gtk_file_chooser_get_current_folder 
(GTK_FILE_CHOOSER (sender)));
+}


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to