2001-07-18 Chema Celorio * screensaver.desktop.in.in: use the right binary name * expr.c: include string.h * Makefile.am (INCLUDES): remove the -DSSPROP_DIR we now use a define in acclocal.h * screensavers/Makefile.am (Screensaversdir): use GNOMECC_SCREENSAVERS_DIR * prefs-widget.c (prefs_widget_init): remove a warning 2001-07-17 Chema Celorio * Makefile.am (SUBDIRS): clean 2001-07-17 Bradford Hovinen * Makefile.am (EXTRA_DIST): Changed Applications_DATA to Applications_in_files 2001-07-14 Carlos Perelló Marín * screensavers/*.xml: /s/label/_label, /s/low-label/_low-label/, /s/high-label/_high-label/: Changed to let xml-i18n-tools extract this labels. * extract-labels.c: Removed, now, we use xml-i18n-tools. * preferences.c: /s/label/_label, /s/low-label/_low-label/, /s/high-label/_high-label/: Changed to sync with the xml changes. * screensaver-prefs-dialog.c: ditto. 2001-07-03 Richard Hestilow * prefs-widget.c: (add_select_cb, screensaver_add_cb, screensaver_remove_cb): Added. (prefs_widget_init): Connect to "Add" and "Remove" * screensaver-prefs-dialog.c (get_basic_screensaver_widget): Replace confusing stuff with ultra-simple dialog. * screensaver-properties.glade[.h]: Remove "Demo" popup item, as it is on the settings dialogs and is not easy to manage with menu selection anyway. (Too much mouse movement). 2001-07-03 Richard Hestilow * screensaver-properties.glade[.h]: Added. * prefs-widget.[ch]: Complete rewrite. * Makefile.am: Add glade stuff. * main.c: Call glade_gnome_init. * pref-file.c: Restart xscreensaver on save. * screensaver-prefs-dialog.c (screensaver_prefs_dialog_new): Change g_strconcat to g_strdup_printf for i18n purposes. 2001-06-21 Bradford Hovinen * preferences.c (clone_cb): Remove debugging code 2001-05-06 Bradford Hovinen * preferences.c (preferences_clone): Implement. Create a copy of a preferences structure (clone_cb): Implement (read_prefs_from_db): Parse screensavers from a copy of the string so that we don't overwrite the original * main.c (main): Call preferences_clone instead of reloading old preferences 2001-05-05 Bradford Hovinen * prefs-widget.c (one_screensaver_cb): Fix segv 2001-05-03 Bradford Hovinen * preferences.c (preferences_new): Load default values 2001-04-27 Bradford Hovinen * preferences.c (screensaver_read_xml): Make label an attribute of the node rather than a child node (preferences_write_xml): Use xml_write_int rather than rolling our own (xml_read_int): (xml_write_int): (xml_read_bool): (xml_write_bool): Implement 2001-03-12 Bradford Hovinen * main.c (store_archive_data): Fix call to location_store_xml 2001-01-25 Bradford Hovinen * main.c (store_archive_data): Implement; copy from background-properties-capplet (ok_cb): Call store_archive_data 2000-12-16 Bradford Hovinen * all: Fixed compilation warnings: removed unused variables, initialized variables properly, returned default values * selection-dialog.c (get_known_savers): Return list_head when done * resources.c: Include ctype.h 2000-10-28 Bradford Hovinen * screensaver-prefs-dialog.c (get_spinbutton): (get_check_button): (get_select_widget): (get_file_entry): (get_entry): (place_number): Add missing _() around label strings 2000-10-14 Bradford Hovinen * screensavers/Makefile.am (Screensavers_DATA): (screensavers_msgs): Added rorschach.xml[.h] * screensaver-prefs-dialog.c (write_boolean): Return the attribute arg-unset if the toggle button is inactive 2000-10-08 Bradford Hovinen * screensavers/Makefile.am: Place .xml.h files in screensavers_msgs and remove from BUILT_SOURCES; add screensavers_msgs to EXTRA_DIST * preview.c (fix_arguments): Implement (show_screensaver): Call fix_arguments to handle quoted strings in the command line 2000-10-07 Bradford Hovinen * screensaver-prefs-dialog.c (set_widgets_sensitive): Set set->enabled (write_boolean): (write_number): (write_select): (write_string): Write only if the enabled flag is set (get_spinbutton): (get_check_button): (get_select_widget): (get_file_entry): (get_entry): (place_number): (place_hgroup): (populate_table): Set set->enabled (read_boolean): (read_number): (read_select): (read_string): Don't set the value if the set is an alias and not enabled (read_number): (read_string): Set value to default if not supplied (read_command_line): Accept argument as negative number if it is a - * screensaver-prefs-dialog.h (struct _PrefsDialogWidgetSet): Add member enabled - TRUE iff the widget is enabled * screensaver-prefs-dialog.c (free_set_cb): Don't try to free the widgets if the set is an alias (get_spinbutton): (get_check_button): (get_select_widget): (get_file_entry): (get_entry): (place_number): (place_hgroup): (populate_table): Set set->alias * screensaver-prefs-dialog.h (struct _PrefsDialogWidgetSet): Add member alias - TRUE means don't try to free widgets * screensaver-prefs-dialog.c (get_entry): Have entry expand, not label * screensavers/flag.xml: Enable selection for text and bitmap, Set neg_size same-as to pos_size * screensaver-prefs-dialog.c (write_command_line): Support files (place_entry): Allow getting a file entry or a string entry (populate_table): Support files (get_file_entry): Implement. Return a set for a GnomeFileEntry (read_string): Support files (place_screensaver_properties): Support files (populate_table): (place_hgroup): Add feature to allow multiple widget definitions to share the same widget 2000-09-24 Bradford Hovinen * resources.c (screensaver_get_desc_from_xrdb): Fix memory allocation bug 2000-08-18 Bradford Hovinen * preview.c (setup_path): Use setenv only when available, try to use putenv otherwise 2000-08-17 Stanislav Brabec * screensavers/Makefile.am: Search .xml files in srcdir. 2000-08-16 Bradford Hovinen * prefs-widget.c (prefs_widget_get_prefs): Set power control sensitivity when reading preferences structure * preferences.c (preferences_write_xml): (preferences_read_xml): Added missing entries stored in gnome-config rather than .xscreensaver (screensaver_read_xml): Disable screensaver by default (preferences_write_xml): Cast values to ints before passing to g_strdup_printf * rc-parse.c (write_screensaver_list): Don't try to write string if the screensaver has no command line * main.c (main): Register Popt table containing get and set options; call do_get_xml and do_set_xml when necessary (do_get_xml): (do_set_xml): Implement * preferences.c (xml_get_number): Implement. Interpret the XML content of a node as a number and return it (xml_get_programs_list): Implement. Iterate through a programs node and form a list of screensavers (preferences_read_xml): Implement. Read an XML description of the screensaver's state and put it in a preferences object (xml_write_programs_list): Implement. Write out an XML node corresponding to a list of screensavers (preferences_write_xml): Implement. Write out an XML document with the state of the screensaver system (screensaver_read_xml): Implement. Read an XML node describing a screensaver (screensaver_write_xml): Implement. Write an XML node describing a screensaver * screensaver-prefs-dialog.c (get_select_widget): Remove extraneous precondition check (read_command_line): Rewrote to support quoted strings in the command line 2000-08-12 Bradford Hovinen * screensaver-prefs-dialog.c (write_command_line): Use flag free_v to determine whether to free data; add support for strings (write_string): Implement. Analagous to write_* (populate_table): Add support for strings (place_entry): (get_entry): Implement (place_screensaver_properties): Add support for strings (read_string): Implement (read_select): (write_select): Skip over nodes that don't have id attributes 2000-08-10 Bradford Hovinen * resources.c (screensaver_get_desc_from_xrdb): Remove extraneous whitespace and replace tabs with spaces * screensavers/Makefile.am (Screensavers_DATA): Added ant.xml, bsod.xml, compass.xml, and flag.xml (courtesy of James Antill ) * screensaver-prefs-dialog.c (write_command_line): Fix memory leak (read_select): Disable all widgets associated with unselected nodes before enabling those associated with selected one (read_select): Don't iterate through menu items (read_number): Don't crash if person used bad argument * expr.c (int_parse_atom): Have string -> boolean conversion always convert to FALSE (int_parse_factor): Set result to boolean TRUE when symbol of value 1 encountered. * screensaver-prefs-dialog.c (read_select): Don't crash if there are fewer menu_item_nodes than nodes * preview.c (show_preview): Map window before showing screensaver (close_preview): Unmap window after killing screensaver 2000-08-09 Bradford Hovinen * preview.c (setup_path): Use get_screensaver_dir_list; iterate through all the directories listed in list; use g_getenv * rc-parse.c (get_screensaver_dir_list): Implement. Get a list of possible directories where screensavers may be found by scanning the XScreensaver binary. (command_exists): Search through list of screensaver directories from get_screensaver_dir_list rather than using the hardcoded one (get_screensaver_dir_list): Make public, cache return value (command_exists): Don't cache screensaver_dir_list 2000-08-07 Bradford Hovinen * screensavers/Makefile.am (EXTRA_DIST): Added README * expr.c: Allow values of multiple types * main.c (main): Don't initialize glade * screensaver-prefs-dialog.c (screensaver_prefs_dialog_destroy): Free structures only if they were ever allocated * selection-dialog.c (get_known_savers): Implement. Read the screensaver directory for a list of valid screensavers (place_screensaver_list): Use known_savers rather than XML data * preferences.c (screensaver_get_label): Implement. Copy from get_label in resources.c * prefs-widget.c (deselect_saver_cb): Toggle only if event was a mouse button press, not a keyboard press (prefs_widget_init): Change vertical size of preview window to 200 (prefs_widget_init): Use a table for the buttons below the screensaver list (prefs_widget_init): Change label of edit button to Settings... (prefs_widget_init): Don't have description and preview frames expand, have selection frame expand * Makefile.am (screensaver_properties_capplet_LDADD): Don't link against glade (INCLUDES): Don't set glade compilation flags * screensaver-prefs-dialog.c (get_select_widget): Show menu item (populate_table): Don't skip hgroups that lack ids (place_number): (place_boolean): Attach items with GTK_FILL (get_check_button): (get_select_widget): Set object data to point back to dialog (populate_table): Pass dialog, remove extraneous arguments (get_check_button): Connect toggled signal from here (get_select_widget): Set data and connect activate signals from here (place_number): Set default from default attribute (get_spinbutton): Set step_increment, page_increment, and page_size on adjustment (get_spinbutton): (place_number): Set default to average of high and low if not supplied (get_argument_data): Add i18n support (read_boolean): (read_number): (read_select): (write_boolean): (write_number): (write_select): Check if id is NULL before trying to look up a node (screensaver_prefs_dialog_new): Make sure CLI arguments and XML data were read successfully before trying to build the widget (get_argument_data): Return pointer to document rather than root node (screensaver_prefs_dialog_new): Set argument_data from argument_doc (screensaver_prefs_dialog_class_init): Set parent_class (screensaver_prefs_dialog_destroy): Implement; free all structures (free_set_cb): Implement (write_number): Don't assume correct format on the output string; just replace the '%' with the appropriate argument (write_command_line): Free arg iff generated from number 2000-08-06 Bradford Hovinen * screensaver-prefs-dialog.c (get_screensaver_widget): Accept ScreensaverPrefsDialog as option (get_argument_data): Assume one file per screensaver (get_spinbutton): (get_check_button): (get_select_widget): (place_number): (place_boolean): (place_hgroup): (place_select): (populate_table): Implement (get_screensaver_widget): Rewrite to build screensaver config dialogs manually from the XML data (activate_option_cb): (toggle_check_cb): Pass dialog to set_widgets_sensitive (set_widgets_sensitive): Rewrite to use dialog->widget_db (write_boolean): (write_number): (write_select): Use widget_db (write_select): (write_command_line): Don't check no-output (write_command_line): Pass widget_db (read_boolean): (read_number): (read_select): Use widget_db (place_screensaver_properties): Pass dialog->widget_db to above functions (arg_mapping_exists): Use XML file rather than Glade definition (screensaver_prefs_dialog_new): Initialize settings_widget with the widget to be placed in the settings frame (place_screensaver_properties): Take xml node; process hgroups recursively (write_command_line): Process hgroups recursively (read_boolean): (read_number): (read_select): Check if set and set->value_widget are set before proceeding * screensaver-prefs-dialog.h (struct _PrefsDialogConfigOption): New structure (struct _ScreensaverPrefsDialog ): New member widget_db -- key-value database of PrefsDialogConfigOptions indexed by id attribute from XML 2000-07-31 Bradford Hovinen * all: Removed ENABLE_{LIBGLADE|CAPPLET|PREVIEW} ifdefs 2000-07-26 Bradford Hovinen * src/rc-parse.c (command_exists): Use gnome_is_program_in_path, return stat results if program is a full path 2000-07-20 Bradford Hovinen * src/prefs-widget.c: Include check button xpms (set_pixmap): Use gdk_pixbuf_new_from_xpm_data * src/Makefile.am (screensaver_properties_capplet_SOURCES): Put headers in sources list (pixmap_DATA): Don't install xpms (EXTRA_DIST): Add check button xpms 2000-06-25 Bradford Hovinen * src/prefs-widget.c (screensaver_remove_cb): Select next row, not next saver in list * src/selection-dialog.c (place_screensaver_list): Don't crash if node is null * src/rc-parse.c (parse_screensaver_list): Code cleanup * src/selection-dialog.c (place_screensaver_list): Code cleanup * src/preferences.c (screensaver_remove): Return pointer to new head of list, take pointer to start of screensaver list, use g_list_remove_link * src/prefs-widget.c (screensaver_remove_cb): Get new head pointer and assign to screensaver list entry, assign widget->selected_saver (screensaver_prefs_ok_cb): Set text in clist * src/main.c (demo_cb): Save a copy of prefs_widget->screensavers in prefs before saving preferences 2000-06-24 Bradford Hovinen * src/screensaver-prefs-dialog.c (read_boolean): Set toggle button correctly * src/expr.c (int_parse_factor): Handle G_TOKEN_IDENTIFIER * src/screensaver-prefs-dialog.c (read_command_line): Use GScanner (arg_is_set): Rewrite for sentance parser * src/expr.c (int_parse_factor): Use g_scanner_error (parse_sentance): (int_parse_sentance): (int_parse_unary): (int_parse_atom): Implement 2000-06-23 Bradford Hovinen * src/prefs-widget.c (prefs_widget_init): Tweak table attach policies for screensaver selection page * src/main.c (setup_capplet_widget): Set window policy * src/preview.c (strip_arg): (setup_path): (add_window_arg): (show_screensaver): Compile only if ENABLE_PREVIEW set * src/prefs-widget.c (prefs_widget_init): Use table for positioning basic controls * src/main.c (main): Start xscreensaver only if screensaver is not disabled (try_cb): (revert_cb): (ok_cb): (cancel_cb): Start and stop xscreensaver based on whether screensaver is disabled * src/screensaver-prefs-dialog.c (get_basic_screensaver_widget): Add visual combo box, set border width to 5 (screensaver_prefs_dialog_new): Don't set container border width for frame (store_cli): Save visual * src/prefs-widget.c (prefs_widget_init): Set frame border width after adding scrolled window * src/preferences.c (preferences_load): Make default selection mode 3 * src/preferences.h: Add SM_DISABLE_SCREENSAVER and SM_BLANK_SCREEN * src/prefs-widget.c (prefs_widget_init): Use table for power management (prefs_widget_init): Add disable screensaver and black screen only controls * src/main.c (setup_capplet_widget): Don't call prefs_widget_set_screensavers * src/prefs-widget.c (prefs_widget_get_prefs): Call prefs_widget_set_screensavers (prefs_widget_set_screensavers): Clear clist * src/preview.c: gdk-pixbuf should be mandatory (show_screensaver): Don't fork off second process (show_screensaver_timeout): Implement (close_preview): Clear preview_pid, cancel timeout (show_preview): Set timeout id Declare preview_window, preview_pid, and timeout_id only if preview is enabled * src/prefs-widget.c (prefs_widget_init): Make viewport declaration depend on whether ENABLE_PREVIEW is declared 2000-06-22 Bradford Hovinen * src/preview.c: Removed demo_pid and demo_window (print_args): Disabled compilation * src/screensaver-prefs-dialog.c (get_argument_data): (get_screensaver_widget): (arg_mapping_exists): Use SSPROP_DATADIR * src/preview.c (show_screensaver): Use SSPROP_DATADIR * src/prefs-widget.c (set_pixmap): Use SSPROP_DATADIR * configure.in (SSPROP_DATADIR): Define * src/prefs-widget.c (prefs_widget_init): Autosort screensaver list on column 1 (select_saver_cb): (deselect_saver_cb): (create_list_item): Use gtk_clist_{get|set}_row_data (set_pixmap): Accept row (set_toggle_buttons_sensitive): Use gtk_clist_get_row_data (set_screensavers_enabled): Don't call set_pixmap (set_all_pixmaps): Rename from set_toggle_buttons_sensitive (one_screensaver_cb): (random_cb): Don't call set_all_pixmaps (toggle_saver): Accept row (demo_next_cb): (demo_prev_cb): Use gtk_clist_find_row_with_data to get row (select_row): Implement (create_list_item): Return row (prefs_widget_init): Don't create viewport (prefs_widget_set_screensavers): Find enabled screensaver manually, freeze and thaw screensaver list * src/main.c (setup_capplet_widget): Don't sort * src/prefs-widget.c (deselect_saver_cb): (toggle_saver): Implement (set_pixmap): Create pixmaps here, use GdkPixbuf (prefs_widget_store_prefs): Store selection mode (set_pixmap): (set_toggle_buttons_sensitive): Pass selection mode (prefs_widget_set_screensavers): (demo_next_cb): (demo_prev_cb): (screensaver_remove_cb): (one_screensaver_cb): (add_select_cb): Call gtk_clist_moveto after selecting widget * src/preferences.h (struct _Screensaver ): Remove widgets * src/prefs-widget.c (prefs_widget_class_init): Set up pixmaps for screensaver list (prefs_widget_init): Construct clist for screensaver_list, connect signal for selecting rows (create_list_item): (add_select_cb): (prefs_widget_set_screensavers): (select_saver_cb): (set_toggle_buttons_sensitive): (set_screensavers_enabled): (choose_from_selected_cb): (demo_next_cb): (demo_prev_cb): Rewrite for clist (demo_next_cb): (demo_prev_cb): Don't stop preview (screensaver_toggle_cb): Remove (prefs_widget_init): Remove disabled code * src/preferences.c (get_selection_mode): Remove (preferences_load): (preferences_save): Use gnome_config to store selection mode (preferences_destroy): (screensaver_destroy): Don't act if object is NULL (preferences_load): (preferences_save): (screensaver_add): (screensaver_remove): (screensaver_get_desc): Add assertions * src/prefs-widget.c (choose_from_selected_cb): Check off active screensaver when moving from one screensaver only mode to choose from selected mode * configure.in: Eliminate option to use xscreensaver command to start demo (made mandatory) * src/preview.c (show_screensaver): Lower priority on preview (show_demo): Don't close preview when showing demo Eliminate version of show_demo that calls screensaver directly * src/prefs-widget.c (prefs_widget_init): Make priority range from -20 to 0 2000-06-21 Bradford Hovinen * src/pref-file.c (get_line): Don't subtract off len, don't use len-2 when doing line number increase test * src/prefs-widget.c (prefs_widget_init): Change "selected" to "checked off" * src/main.c (setup_capplet_widget): Set screensavers after showing the widget * src/prefs-widget.c (demo_next_cb): (demo_prev_cb): Kill off the preview (set_screensavers_enabled): Implement (random_cb): Enable all screensavers (one_screensaver_cb): Disable all screensavers, then select the first one if none selected (prefs_widget_set_screensavers): Select enabled item when in one screensaver only mode * src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_init): Add help button (help_cb): Implement * src/prefs-widget.c (prefs_demo_cb): Implement * src/screensaver-prefs-dialog.c (get_basic_screensaver_widget): Remove message to choose a screensaver from the list, set padding to 5 pixels (arg_mapping_exists): Return FALSE if name is NULL (screensaver_prefs_dialog_init): Add demo button (screensaver_prefs_dialog_new): Connect demo button signal (store_cli): (demo_cb): Implement (screensaver_prefs_dialog_class_init): Add signal demo * src/preferences.c (screensaver_get_desc): Set screensaver description to default value if it cannot be found * src/selection-dialog.c (selection_dialog_ok_cb): Use g_strdup for name, set name and command_line only when selected node is valid * src/preferences.c (screensaver_add): Implement * src/prefs-widget.c (screensaver_add_cb): Use SelectionDialog (create_list_item): Implement (add_select_cb): Select the item just created * src/selection-dialog.c (selection_dialog_get_type): (selection_dialog_init): (selection_dialog_class_init): (selection_dialog_new): (select_program_cb): (selection_dialog_ok_cb): (selection_dialog_cancel_cb): (append_list_item): Implement * src/prefs-widget.c (prefs_widget_set_screensavers): Make item a member of the saver * src/preferences.c (screensaver_destroy): Don't remove link from list; assume that's already done (screensaver_remove): Don't destroy screensaver * src/prefs-widget.c (prefs_widget_store_prefs): Use gtk_spin_button_get_value_as_{float|int} (make_screensaver_selection_dialog): (add_cancel_cb): (add_select_cb): Implement * src/preferences.c (store_prefs_in_db): (read_prefs_from_db): Remove password timeout * src/rc-parse.c (write_minutes): Accept gdouble (parse_minutes_resource): Return gdouble * src/preferences.h (struct _Preferences ): Make timeouts doubles * src/prefs-widget.c (prefs_widget_set_screensavers): Use member label_widget rather than auto label (prefs_widget_init): Remove controls dealing with password timeout, make lock timeout in minutes * src/preferences.c (screensaver_remove): Implement * src/prefs-widget.c (prefs_widget_init): Add demo previous button (demo_prev_cb): Implement * src/rc-parse.c (parse_screensaver_list): Use our own procedure to append the item to the end of the list * src/prefs-widget.c (demo_next_cb): (settings_cb): Check if a screensaver is selected before proceeding (demo_next_cb): Implement * src/rc-parse.c (parse_screensaver_list): Set saver->link * src/prefs-widget.c (prefs_widget_init): Make remove button a member of the structure (select_saver_cb): Sensitive remove_button (prefs_widget_init): Add demo next button * src/preview.c (find_xscreensaver_window): Fixed up the code to trap errors better 2000-06-20 Bradford Hovinen * src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_init): Add code to support name entry (screensaver_prefs_dialog_new): Set name entry to label, add preferences widget only if it exists, make basic_widget an element of the structure (screensaver_prop_ok_cb): Set label from name entry, free old command line and label, use g_strdup when getting text from entries (add_screensaver_selector): Implement (get_basic_screensaver_widget): Use a different label if the screensaver is not yet defined * src/prefs-widget.c (set_standby_time_sensitive): (set_suspend_time_sensitive): (set_power_controls_sensitive): Implement (set_power_down_time_sensitive): Disable only the control, not the labels (power_management_toggled_cb): Use set_power_controls_sensitive (prefs_widget_get_prefs): Code cleanup * src/daemon.c (setup_dpms): Use standby and suspend times, add prefs->timeout, sanitize values before sending to xset, return if power management disabled * src/preferences.c (preferences_load): (preferences_save): Load/save standby and suspend times * src/prefs-widget.c (prefs_widget_init): Remove extraneous code, add support for all dpms timings (prefs_widget_store_prefs): (prefs_widget_get_prefs): Read/store standby and suspend times * src/daemon.c (setup_dpms): Don't call the command to enable dpms, use unsigned formats, multiply times by 60 * src/main.c (state_changed_cb): (try_cb): (revert_cb): (ok_cb): Call setup_dpms * src/rc-parse.c (get_settings_name): (get_label): Use g_strdup rather than strdup * src/pref-file.c (preferences_save_to_file): (write_entry): Use g_file_test rather than stat * src/main.c (main): Set up to start xscreensaver on startup * src/rc-parse.c (get_settings_name): Use g_basename (command_exists): Use g_file_test rather than stat (parse_boolean_resource): Use g_strncasecmp * src/pref-file.c (init_file_name): Use g_concat_dir_and_file and g_get_home_dir * src/daemon.c (start_xscreensaver): (stop_xscreensaver): (restart_xscreensaver): (setup_dpms): Use gnome_execute_shell rather than system * src/main.c (cancel_cb): (ok_cb): (revert_cb): (try_cb): Don't restart xscreensaver * src/prefs-widget.c (prefs_widget_get_prefs): Don't divide minute values by 60 before displaying (prefs_widget_store_prefs): Don't multiply minute values by 60 before storing * src/pref-file.c (preferences_save_to_file): Use g_warning rather than sprintf and perror (parse_config_file): Use g_warning directly rather than g_strdup_printf * src/preferences.h (struct _Preferences ): Change be_verbose to verbose * src/preferences.c (preferences_get_screensaver_list): Remove (preferences_load): Call read_prefs_from_db (preferences_save): Call store_prefs_in_db (read_prefs_from_db): (store_prefs_in_db): Implement * src/rc-parse.c (format_command): (stab_to): (string_columns): (format_hack): Move to rc-parse.c (write_screensaver_list): Implement; copy from pref-file.c, preferences_save_to_file (write_screensaver_list): Fixed memory leak with output from format_hack * src/pref-file.c (preferences_save_to_file): Remove code to write out programs resource string * src/preferences.c (preferences_destroy): Remove check on prefs->shell * src/prefs-widget.c (prefs_widget_init): Remove lock_vts widget 2000-06-19 Bradford Hovinen * src/prefs-widget.c (prefs_widget_init): Create GtkText prefs->description rather than prefs->description_label; put inside a scrolled window (select_saver_cb): Fill GtkText with description (set_description_text): Implement * src/preview.c (show_demo): Make xscreensaver_window automatic * src/prefs-widget.c (prefs_widget_class_init): New signal: activate-demo (demo_cb): Emit activate-demo signal * src/main.c (setup_capplet_widget): Connect activate-demo signal * src/preview.c (find_xscreensaver_window): Use free rather than g_free for data allocated by Xlib (show_demo): Free allocated event structure * src/pref-file.c: Use g_strstrip rather than strip (transform_line): Add default action to copy escaped character over * src/rc-parse.c (command_exists): Check for string termination when looking for the first whitespace * src/resources.c (get_resource): Use g_strconcat rather than strcpy and strcat * src/rc-parse.c (parse_screensaver): Use g_strdup rather than malloc and strncpy * src/screensaver-prefs-dialog.c (arg_mapping_exists): Implement (screensaver_prefs_dialog_new): Check if glade definition exists before trying to load data * src/pref-file.c (transform_line): Terminate loop when i > len (strip): Code cleanup (init_file_name): (init_file_tmp_name): Use g_strconcat rather than legacy functions * src/prefs-widget.c (prefs_widget_init): Add line to set data type for fade_ticks_widget to integer 2000-06-18 Bradford Hovinen * src/pref-file.c (place_preferences): Delete (preferences_load_from_file): Return gboolean rather than int (preferences_save_to_file): Use g_tree_traverse on config_db (write_preference_cb): Implement (preferences_save_to_file): Store programs resource in config_db after building it (transform_line): Added support for backslash escape * src/resources.c (preferences_load_from_xrdb): Update to use config_db (get_string_resource): Rename to get_resource * src/pref-file.c (preferences_load_from_file): Use GTree for config_db rather than GHashTable * src/prefs-widget.c (prefs_widget_init): Put preview above description * src/preferences.h (struct _Preferences ): Add config_db * src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_new): Set dialog title to label + " properties"