2010-12-13  Raymond Huang

	* UgetGtk-gui.c, UgetGtk-callback.c: fix "can't compile with GTK+ 2.18".

2010-12-12  Raymond Huang

	* Windows/Makefile.am: fix "error occurred when running 'make dist'"
	* Windows/CodeBlocks/uget.workspace, Windows/CodeBlocks/*.cbp: add projects for CodeBlocks.
	* Windows/*: update files.
	* configure.ac, uget-gtk-setting.h: change version to 1.6.2
	* uget-cmd/main.c: change version to 1.6.2

2010-12-11  Raymond Huang

	* UgMarkup.h, UgMarkup.c
	(UgMarkup): hide structure and move it to "UgMarkup.c".
	(ug_markup_write_xxx): rename from ug_markup_output_xxx.
	(ug_markup_parse): rename from ug_markup_input.

2010-12-09  Raymond Huang

	* UgetGtk-callback.c
	(on_about): use label to replace link in the “About” page in Windows.

2010-12-08  Raymond Huang

	* UgString.h, UgString.c: move ug_str_xxx from UgUtils.h and UgUtils.c

	* UgOption.h, UgOption.c
	(ug_arg_find_help): rename from ug_find_help_option.
	(ug_arg_find_version): rename from ug_find_version_option.

	* UgetGtk-timeout.c
	(uget_play_sound): remove gdk_beep.

	* UgetGtk-callback.c
	(uget_gtk_tray_icon_init_callback): handle signal "leave-notify-event" and "enter-notify-event" on Windows.
	(tray_menu_leave_enter): new callback for Windows.
	(tray_menu_timeout): new callback for Windows. hide menu on tray icon on Windows.

	* uget-gtk/*, uget-cmd/*: sync with recent changes.

2010-12-07  Raymond Huang

	* UgOption.h, UgOption.c
	(UgOption): rename from original UgetOption.
	(UgOptionEntry): rename from original UgOption.
	(ug_option_main_get): Fix "command argument --http-password works incorrectly".

	* UgIpc.h, UgIpc.c
	(ug_ipc_init_with_args): rename from uget_ipc_init.

	* UgData.h: fix misspelled words.
	* UgMarkup.h: fix comment.

2010-12-06  Raymond Huang

	* uget-cmd/main.c: rename to main-cmd.c
	* uget-gtk/main.c: rename to main-gtk.c
	* Windows/msvc/*: update path and change output directory.
	* Windows/CodeBlocks/uget.cbp: update for recent changed.

2010-12-05  Raymond Huang

	* uget-gtk-callback.c
	(on_delete_download): remove compiling warning.

	* uglib/*, uget-cmd/*, uget-gtk/*, tests/*: change file naming rule. remove underscore.

2010-12-04  Raymond Huang

	* uget-gtk-callback.c
	(on_config_settings): replace gtk_notebook_set_page to gtk_notebook_set_current_page.
	(menu_position_func): Use accessor functions instead of direct access.
	(on_window_key_press_event): use GDK_KEY_<keyname> to replace GDK_<keyname>.
	(on_download_key_press_event): use GDK_KEY_<keyname> to replace GDK_<keyname>.

	* uget-gtk-gui.c
	(uget_gtk_init_gui): use GDK_KEY_<keyname> to replace GDK_<keyname>.

	* uget-gtk.c
	(uget_gtk_get_setting): Use accessor functions instead of direct access.
	(on_confirm_to_quit_response): Fix "Can't remember exit setting".

	* ug_download_dialog.c
	(ug_download_dialog_new): Use accessor functions instead of direct access.

	* ug_selector.c
	(ug_selector_filter_init): Use accessor functions instead of direct access.

	* uget-gtk/Makefile.am: add some definition for GTK+ 3.

2010-12-03  Raymond Huang

	* uget-gtk-timeout.c
	(uget_gtk_notify): add flag NIIF_NOSOUND to disable Windows sound notification.

2010-11-24  Raymond Huang

	* uget-gtk-setting.h, uget-gtk-setting.c
	(UgUserInterfaceSetting): add new member for "Sound when download is finished"

	* ug_setting_form.h, ug_setting_form.c
	(ug_user_interface_form_init): add new item for "Sound when download is finished"
	(ug_user_interface_form_set): add new item for "Sound when download is finished"
	(ug_user_interface_form_get): add new item for "Sound when download is finished"

	* po/POTFILES.in: change path from src to uglib.
	* po/*.po: updated for recent changes.

2010-11-23  Raymond Huang

	* po/es.po: Spanish translation file. (Victor Emmanuel)

2010-11-18  Raymond Huang

	* uglib/*.h: move files from include/*.h
	* uglib/*.c: move files from src/*.c
	* configure.ac, Makefile.am: remove subdirs include and src, add uglib

2010-11-12  Raymond Huang

	* uget-gtk-timeout.c
	(uget_gtk_notify): change LIBNOTIFY_VERSION_MINOR to NOTIFY_VERSION_MINOR

2010-11-11  Raymond Huang

	* ug_plugin_curl.c
	(ug_plugin_curl_progress): send progress message every 2 times.

	* uget-gtk-timeout.c
	(uget_gtk_notify): support libnotify 0.7

2010-10-26  Raymond Huang

	* ug_plugin_curl.c
	(ug_plugin_curl_open_file): The offset wasn't getting updated. (Ben Kibbey)

	* configure.ac, uget-gtk-setting.h: change version to 1.6.1
	* uget-cmd/main.c: change version to 1.6.1

2010-10-10  Raymond Huang

	* configure.ac: add LIBNOTIFY_CFLAGS, LIBNOTIFY_LIBS, GSTREAMER_CFLAGS, and GSTREAMER_LIBS for ArchLinux

2010-09-19  Raymond Huang

	* uget-gtk/uget-gtk-timeout.c
	(uget_gtk_timeout_ipc): handle command argument "--set-offline"

	* ug_option.h, ug_option.c: add command argument "--set-offline"

	* ug_uri.c
	(ug_uri_full_get_user): fix compiling warning.

2010-08-18  Raymond Huang

	* uget-cmd/Makefile: remove @LIBNOTIFY_CFLAGS@ and @LIBNOTIFY_LIBS@

2010-08-09  Raymond Huang

	* configure.ac, uget-gtk-setting.h: change version to 1.6.0
	* uget-cmd/main.c: change version to 1.6.0

2010-07-28  Raymond Huang

	* uget-gtk.c
	(uget_gtk_tray_icon_refresh): use IEC binary prefixes.
	(uget_gtk_statusbar_refresh_speed): use IEC binary prefixes.

2010-07-24  Raymond Huang

	* ug_utils.c
	(ug_str_dtoa_unit): use IEC binary prefixes.

	* ug_category-gtk.h, ug_category-gtk.c
	(ug_category_gtk_refresh): change returned type from gint to gboolean
	(ug_category_gtk_activate): change returned type from gint to gboolean
	(ug_category_gtk_clear_excess): change returned type from gint to gboolean

	* uget-gtk-callback.c
	(on_delete_download): set user_action flag.
	(on_delete_download_file_response): set user_action flag.

2010-07-22  Raymond Huang

	* uget-gtk-callback.c
	(on_delete_download): set user_action flag.

	* configure.ac, uget-gtk-setting.h: change version to 1.5.9.3
	* uget-cmd/main.c: change version to 1.5.9.3

2010-07-16  Raymond Huang

	* uget-cmd/main.c: support version argument.
	* uget-gtk/main.c: support version argument.
	* ug_option.h, ug_option.c: support version argument.

	* uglib.h, uglib.c
	(ug_find_version_option): find and return version argument.

2010-07-11  Raymond Huang

	* uget-cmd/main.c: display version in help message.
	* uget-gtk/main.c: display version in help message.

2010-07-04  Raymond Huang

	* ug_plugin_curl.c
	(curl_easy_setopt): move HIDE_TEMPORARY_FILE definition from ug_plugin_curl.c to config.h

	* configure.ac: add new option --enable-hidden

2010-07-02  Raymond Huang

	* ug_plugin_curl.c
	(curl_easy_setopt): add CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME for testing.

2010-06-25  Raymond Huang

	* ug_utils.h, ug_utils.c
	(ug_shutdown): It can do power off.

	* uget-gtk-callback.c
	(on_config_shutdown): signal handler for "shutdown when downloads complete".

	* uget-gtk-timeout.c
	(uget_gtk_timeout_queue): save and shutdown.

	* uget-gtk.h, uget-gtk-gui.c
	(uget_gtk_menubar_init): add menu item "shutdown when downloads complete".

	* uget-gtk-setting.h, uget-gtk-setting.c: add setting for "shutdown when downloads complete".

2010-06-22  Raymond Huang

	* ug_utils.c
	(ug_delete_dir_recursive): Fix - Program will crash if filename encoding is not UTF-8.

	* po/tr.po: Turkish translation file.

2010-06-13  Raymond Huang

	* ug_utils.c
	(ug_str_dtoa_unit): add Petabyte "PB" and fix index out of range.

2010-05-30  Raymond Huang

	* uget-gtk-timeout.c
	(uget_gtk_timeout_queue): More accurate notification.

	* uget-gtk.c
	(uget_gtk_init): clear unused attachment.

	* ugtk-gtk/main.c
	(main): initialize libnotify after IPC and finalize libnotify before IPC

	* ug_data_download.c
	(ug_data_common_finalize): use new attachment manager.

	* ug_utils.c
	(ug_delete_dir_recursive): free resource.

	* ug_registry.h, ug_registry.c
	(ug_attachment_init): new function for attachment manager
	(ug_attachment_destroy): new function for attachment manager
	(ug_attachment_ref): new function for attachment manager
	(ug_attachment_unref): new function for attachment manager
	(ug_attachment_sync): new function for attachment manager

2010-05-28  Raymond Huang

	* uget-gtk/ug_category-gtk.c
	(ug_category_gtk_clear): fix crash bug
	(ug_category_gtk_switch): fix - If no data exists, switch incorrectly.
	(ug_category_gtk_set_primary): set primary category
	(ug_category_gtk_move_selected_up): fix scrolling bug
	(ug_category_gtk_move_selected_down): fix scrolling bug
	(ug_category_gtk_move_selected_top): fix scrolling bug
	(ug_category_gtk_move_selected_bottom): fix scrolling bug
	(ug_download_model_filter_category): category filter function

	* uget-gtk/uget-gtk.c
	(uget_gtk_quit): stop all active downloads

	* uget-gtk/main.c
	(main): shutdown IPC and sleep 2 second to wait thread.

	* uget-cmd/main.c
	(main): shutdown IPC and sleep 2 second to wait thread.

	* ug_plugin_curl.c
	(ug_plugin_curl_set_proxy_pwmd): set proxy type when using pwmd.

2010-05-25  Raymond Huang

	* sounds/notification.wav: newer and smaller notification sound.

	* configure.ac, uget-gtk-setting.h: change version to 1.5.9.2

2010-05-24  Raymond Huang

	* ug_data_download.h: build fix.
	* ug_plugin_curl.c: build fix.
	* ug_proxy_form.h: build fix.

	* ug_plugin_curl.c
	(ug_plugin_curl_set_proxy): new function to set classic proxy.
	(ug_plugin_curl_set_proxy_pwmd): rename from ug_plugin_curl_set_pwmd_proxy_opts and fix building error. 

	* ug_proxy_form.c
	(ug_proxy_form_pwmd_init): add code that I forgot to add in the previous version.
	(ug_proxy_form_set): fix issue if no proxy data exists.

	* tests/Makefile.am, uget-cmd/Makefile.am: build fix.

2010-05-23  Raymond Huang

	* ug_data_download.h, ug_data_download.c: add pwmd members

	* ug_plugin_curl.c
	(ug_plugin_curl_thread): Don't post completed message if HTTP server respond error code.
	(ug_plugin_curl_set_pwmd_proxy_opts): set proxy data by libpwmd.

	* ug_proxy_form.h, ug_proxy_form.c: rewrite and support libpwmd.

	* configure.ac, src/Makefile.am, uget-gtk/Makefile.am: apply libpwmd patch

2010-05-22  Raymond Huang

	* ug_plugin_curl.h
	(UgPluginCurl): add two members - scheme and file_offset_old

	* ug_plugin_curl.c
	(ug_plugin_curl_thread): It can handle response code from HTTP server now.
	(ug_plugin_curl_header_http): Using C standard string functions to rewrite it. Don't rename file if filenames are the same.
	(ug_plugin_curl_setup_scheme): It can setup scheme and it's related data. It rename from ug_plugin_curl_set_auth.

2010-05-20  Raymond Huang

	* ug_plugin.h
	(UgPluginClass): adding a new reserved virtual function "set".

	* ug_plugin_curl.h, ug_plugin_curl.c
	(UgPluginCurl): remove and clean unnecessary members.
	(ug_plugin_curl_set_auth): to set authority.
	(ug_plugin_curl_thread): It use libcurl's redirection and try to keep downloaded data.
	(ug_plugin_curl_header_http): remove old redirection code.

2010-05-14  Raymond Huang

	* ug_plugin.h, ug_plugin.c
	(ug_plugin_create_and_hide): new function for "Hide temporary files".
	(ug_plugin_rename_and_unhide): new function for "Hide temporary files".

	* ug_plugin_curl.c: add definition "HIDE_TEMPORARY_FILE".

	* po/zh_TW.po: updated.

2010-05-11  Raymond Huang

	* ug_setting_form.h, ug_setting_form.c
	(ug_user_interface_form_init): add new item - "Enable offline mode on startup".
	(ug_user_interface_form_set): set value to item - "Enable offline mode on startup".
	(ug_user_interface_form_get): get value from item - "Enable offline mode on startup".

	* uget-gtk-setting.h, uget-gtk-setting.c
	(uget_gtk_setting_reset): add default value for new member "start_in_offline_mode" in UgetGtkSetting.

2010-05-09  Raymond Huang

	* uget-gtk-callback.c
	(on_offline_mode): callback function for offline mode.

	* uget-gtk-timeout.c
	(refresh_category_info): If offline mode is enabled, don't activate downloads.

	* uget-gtk-setting.c, uget-gtk-setting.h: add setting for offline mode.

	* uget-gtk-gui.c
	(uget_gtk_tray_icon_init): add menu item "Offline mode".
	(uget_gtk_menubar_init): add menu item "Offline mode".

2010-05-08  Raymond Huang

	* uget-gtk-timeout.c
	(uget_add_download_quietly): remove unnecessary code to make command argument "--quiet" workable.
	(uget_add_uris_quietly): remove unnecessary code.
	(uget_gtk_notify): remove unnecessary code.

	* uget-gtk/main.c
	(main): remove unnecessary code.

	* uget-cmd/main.c
	(main): remove unnecessary code.

2010-05-06  Raymond Huang

	* ug_dataset.c, ug_dataset.h,
	ug_category.h, ug_category.c,
	ug_category-gtk.h, ug_category-gtk.c,
	ug_category-cmd.h, ug_category-cmd.c,
	ug_category_form.h, ug_category_form.c: reduce underscores.

	* po/zh_TW.po: updated.

2010-04-18  Raymond Huang

	* uget-gtk-timeout.c
	(uget_gtk_timeout_queue): If user delete downloading job, update status.

	* ug_ipc.c
	(ug_arg_free): Using g_ptr_array_foreach() to free arguments.

	* configure.ac, uget-gtk-setting.h: change version to 1.5.9.1

2010-03-30  Raymond Huang

	* ug_setting_dialog.h, ug_setting_dialog.c: change layout of setting dialog.

2010-03-22  Raymond Huang

	* uget-gtk-callback.c
	(on_tray_icon_popup_menu): change pop-up menu position.

2010-03-19  Raymond Huang

	* ug_plugin_curl.h, ug_plugin_curl.c: new HTTP post code.

	* ug_category-cmd.c
	(ug_category_cmd_switch): Revert previous changed.

	* ug_category-gtk.c
	(ug_category_gtk_switch): Revert previous changed.

	* ug_category-gtk.h, ug_category-gtk.c
	(ug_category_gtk_start_1): new function. to activate download.
	(ug_category_gtk_stop_1): new function. to stop download.
	(ug_category_gtk_refresh): clear data in active queue to avoid crash.

	* ug_setting_form.h, ug_setting_form.c: add clipboard setting item.
	* uget-gtk-setting.h, uget-gtk-setting.c: add clipboard setting item.

	* uget-gtk.h, uget-gtk-gui.c, uget-gtk-callback.c: Add menu item - "Settings".

2010-03-16  Raymond Huang

	* ug_category-cmd.c
	(ug_category_cmd_switch): stop job before moving it to recycled or finished.

	* ug_category-gtk.c
	(ug_category_gtk_switch): stop job before moving it to recycled or finished.

	* ug_category-gtk.h: gettextize string "All", Queuing", "Finished", and "Recycled".
	* ug_setting_form.h, ug_setting_form.c: add item - "Download starting notification".
	* uget-gtk-setting.h, uget-gtk-setting.c: add data for "Download starting notification".

	* uget-gtk-timeout.c
	(uget_gtk_notify_starting): This function can show downloading starting notification.

	* ug_download_dialog.c
	(ug_download_dialog_get_downloads): increase reference count before dataset return.

	* po/POTFILES.in: updated.
	* po/fr.po: fix encoding.

2010-03-13  Raymond Huang

	* ug_plugin_curl.c
	(ug_plugin_curl_progress): update progress if user aborted.

	* ug_category.c
	(ug_download_temp_delete): delete temp file in specify folder.

	* ug_category-gtk.c
	(ug_category_gtk_finalize): static queue can't be freed by g_queue_free(). use g_queue_clear() to replace it.

	* ug_summary.c
	(ug_summary_show): clear rows if no data.
	(ug_summary_store_realloc_next): get next or append iter.

	* uget-gtk-gui.c
	(uget_gtk_statusbar_init): add speed label to statusbar.

	* uget-gtk-callback.c
	(on_delete_download_file): delete file.

	* uget-gtk-timeout.c
	(uget_gtk_timeout_queue): show & update speed in statusbar.

2010-03-09  Raymond Huang

	* ug_html.c
	(ug_html_context_parse_file): close file descriptor before exiting.

	* ug_plugin_curl.c
	(ug_plugin_curl_progress): fix - wrong file size.

	* uget-gtk.h, uget-gtk.c
	(uget_gtk_tray_icon_refresh): show more information on system tray icon.

2010-03-07  Raymond Huang

	* ug_data_download.h, ug_data_download.c: add value for FTP active mode.

	* ug_plugin_curl.c
	(ug_plugin_curl_thread): support FTP active mode.

	* ug_category-gtk.c
	(ug_relation_gtk_assign): assign status only.

	* ug_download_form.c
	(ug_download_form_init): set tooltip for the icon in entry.

	* ug_download_dialog.h, ug_download_dialog.c
	(ug_download_dialog_free): free external data.

	* uget-gtk.c
	(uget_gtk_init): use uget_gtk_init_timeout() to add timeout to main loop.

	* uget-gtk-timeout.c
	(uget_gtk_init_timeout): add timeout to main loop. use g_timeout_add_seconds() to replace g_timeout_add()
	(uget_gtk_timeout_ipc): replace uget_gtk_monitor_ipc().
	(uget_gtk_timeout_queue): replace uget_gtk_refresh_queue().
	(uget_gtk_timeout_clipboard): replace uget_gtk_monitor_clipboard().
	(uget_gtk_timeout_autosave): auto save function.

2010-03-05  Raymond Huang

	* ug_data.h, ug_data.c: add UG_DATA_TYPE_UINT

	* ug_data_download.h, ug_data_download.c
	(UgProgress): add "upload_speed" and remove "current_speed".

	* ug_plugin_curl.c
	(ug_plugin_curl_get): use curl_easy_getinfo() to count progress.
	(ug_plugin_curl_thread): reset progress callback count.

	* uglib.c
	(uget_option_parse): remove attachment code.

	* ug_category_widget.h, ug_category_widget.c
	(ug_category_view_get_nth): get category by index

	* uget-gtk-timeout.c
	(uget_gtk_refresh_queue): change window title when downloading.
	(uget_gtk_monitor_ipc): support command argument "--category-index"

2010-03-01  Raymond Huang

	* ug_plugin.c
	(ug_plugin_create_file): It still works if no filename.

	* ug_data_download.h, ug_data_download.c
	(ug_data_common_attach_ref): increase reference count
	(ug_data_common_attach_unref): decrease reference count or remove attach

	* ug_category.h, ug_category.c
	(ug_download_attach_create_dir): create attachment directory
	(ug_download_attach_create): create and copy attachment
	(ug_download_attach_set): copy attachment settings

	* ug_download_form.c, ug_proxy_form.c: set default value if no data.

	* uget-gtk-timeout.c
	(uget_gtk_monitor_ipc): use ug_download_attach_create() to create attachment directory.

	* uget-gtk.h, uget-gtk.c
	(ug_get_attach_dir): get Uget attachment directory

2010-02-20  Raymond Huang

	* ug_plugin_curl.c: Don't set the file modification time if no data.

2010-02-19  Raymond Huang

	* ug_message.h, ug_message.c: add UG_MESSAGE_INFO_FINISH

	* ug_download_widget.h, ug_download_widget.c
	(ug_download_view_use_all_icon): enable/disable finished and recycled icons.

	* ug_plugin_curl.c
	(ug_plugin_curl_thread): send UG_MESSAGE_INFO_FINISH when completed.

	* uget-gtk-timeout.c
	(uget_gtk_refresh_queue): fix bug about completed notification.

2010-02-15  Raymond Huang

	* ug_category-gtk.h, ug_category-gtk.c
	(ug_category_gtk_switch): fix - work incorrect with primary category.
	(ug_category_gtk_refresh): refresh downloads
	(ug_category_gtk_activate): activate downloads.
	(ug_category_gtk_clear_excess): clear excess downloads.

	* ug_setting_form.h, ug_setting_form.c: Add "Minimize to tray on startup" item.

	* uget-gtk-callback.c
	(on_delete_download): fix - work incorrect with primary category.

	* uget-gtk-timeout.c
	(uget_gtk_refresh_queue): refresh queue in category and activate downloads.

	* uget-gtk.h, uget-gtk.c
	(uget_gtk_statusbar_refresh_speed): refresh speed in statusbar.

	* ug_plugin.c
	(ug_plugin_create_file): fix - filename incorrect.

2010-02-14  Raymond Huang

	* ug_plugin_curl.c: set the file modification time.

2010-02-11  Raymond Huang

	* uglib.h, uglib.c
	(ug_text_file_get_uris): return error it file open failed.
	(uget_complete_data): complete file, user, and password from URL.

	* ug_setting_dialog.h, ug_setting_dialog.c: Add new setting page.

	* ug_download_dialog.c
	(ug_download_dialog_get_downloads): call uget_complete_data to complete data.

	* ug_download_widget.c
	(ug_download_view_new): change size of URL column.

	* ug_selector.c
	(ug_selector_get_selected_downloads): fix bug.

	* uget-gtk.h, uget-gtk.c
	(uget_gtk_show_message): replace uget_gtk_init_dialog and uget_gtk_show_window
	(uget_gtk_close_window): close or hide window.
	(uget_gtk_confirm_to_quit): close confirmation dialog.
	(uget_gtk_confirm_to_delete): delete confirmation dialog.

	* uget-gtk-callback.c
	(on_window_delete_event): "delete-event" signal handler
	(on_import_html_file): signal handler
	(on_import_text_file): signal handler

	* uget-gtk-timeout.c
	(uget_gtk_monitor_clipboard): get URLs from clipboard
	(uget_gtk_monitor_ipc): get downloads from IPC.

2010-02-05  Raymond Huang

	* ug_category.h, ug_category.c
	(ug_category_assign): This new function is used by ug_data_copy() and ug_data_assign().

	* ug_category-cmd.h, ug_category-cmd.c: use new function - ug_category_assign.
	* ug_category-gtk.h, ug_category-gtk.c: use GQueue to replace GList.

	* ug_category_widget.c
	(category_col_set_icon): use "stock-id" to replace "pixbuf".

	* ug_download_widget.c
	(col_set_list_icon): use "stock-id" to replace "pixbuf".

	* ug_download_dialog.h, ug_download_dialog.c
	(ug_download_dialog_decide_completed): enable or disable "OK" button.

	* ug_download_form.h, ug_download_form.c
	(ug_download_form_set_relation): endable or disable status frame.

	* ug_summary.h, ug_summary.c: Add visible flags for summary items.
	* ug_batch_form.h, ug_batch_form.c: fix bugs about UgBatchForm.preview.
	* uget-gtk-setting.h, uget-gtk-setting.c: New files. to save and load UgetGtk settings.

	* uget-gtk.h, uget-gtk.c
	(uget_gtk_save): This function can save UgetGtkSetting to file now.
	(uget_gtk_load): This function can load UgetGtkSetting from file now.
	(uget_gtk_set_setting): apply UgetGtkSetting to UgetGtk.
	(uget_gtk_get_setting): refresh UgetGtkSetting from UgetGtk.

	* uget-gtk-callback.c
	(on_category_cursor_changed): refresh UgetGtkViewMenu status when cursor changed.
	(on_change_visible_widget): signal handler for UgetGtkViewMenu.
	(on_change_visible_summary): signal handler for summary items in UgetGtkViewMenu.
	(on_change_visible_column): signal handler for download columns in UgetGtkViewMenu.
	(on_clipboard_monitor): enable/disable clipboard monitor.
	(on_set_download_runnable): set flag and move download to queuing.
	(on_set_download_to_pause): set flag and stop downloading.

	* uget-gtk/main.c
	(term_signal_handler): use uget_gtk_quit() to replace exit().

2010-01-31  Raymond Huang

	* ug_category-gtk.c
	(ug_category_gtk_finalize): remove downloads from primary and secondary category.

	* ug_download_dialog.c
	(ug_download_dialog_get_downloads): get and set downloads from UgBatchForm or UgSelector.

	* ug_download_widget.c
	(ug_download_widget_finalize): use gtk_widget_destroy to replace g_object_unref.

	* ug_category_widget.h, ug_category_widget.c: use "cursor-changed" to replace selection "changed".
	* ug_item.h, ug_item.c: Removed.
	* ug_selector.c: use UgSelectorItem to replace UgItem.
	* ug_summary.h, ug_summary.c: New files. replace UgetGtkSummary.
	* uget-gtk.h, ugtk-gtk.c: use UgSummary to replace UgetGtkSummary.
	* uget-gtk-gui.c: remove UgetGtkSummary.
	* uget-gtk-callback.c: use "cursor-changed" to replace selection "changed".

	* configure.ac: use GLIB 2.22 and GTK+ 2.18

2010-01-22  Raymond Huang

	* ug_uri.h, ug_uri.c
	(ug_uri_part_init): use strcspn() to replace strchr()

	* ug_selector.h, ug_selector.c: If form was completed, UgSelector will notify.
	* ug_batch_form.h, ug_batch_form.c: If form was completed, UgBatchForm will notify.
	* ug_download_form.h, ug_download_form.c: If form was completed, UgDownloadForm will notify.
	
	* ug_item.h, ug_item.c
	(ug_item_view_get_renderer_toggle): This new function is used by UgSelector.

	* ug_proxy_form.c
	(ug_proxy_form_init): enable "activates default" for GtkEntry.

	* ug_category_form.c
	(ug_category_form_init): enable "activates default" for GtkEntry.

	* uget-gtk.h, uget-gtk-gui.c
	(UgetGtkTrayIcon): renamed from UgetGtkStatusIcon.

	* ugtk-gtk/main.c, ugtk-cmd/main.c
	(term_signal_handler): SIGTERM signal handler

2010-01-15  Raymond Huang

	* ug_url.h, ug_url.c, ug_path.h, ug_path.c: Removed. (replaced by ug_uri.h and ug_uri.c) 

	* ug_uri.h, ug_uri.c
	(ug_uri_part_init): enhance scheme parsing.
	(UgUriFull): separate authority parser from UgUriPart. 
	(ug_uri_full_get_user): New function to get user from URI.
	(ug_uri_full_get_password): New function to get password from URI.

	* ug_item.h, ug_item.c
	(ug_item_store_alloc_back): New function.

	* ug_selector.h, ug_selector.c
	(UgSelectorPage): separate from UgSelector.
	(ug_selector_page_make_filter): remove dependency on UgUrlPart. 

	* ug_download_form.c, ug_download_dialog.c: remove dependency on UgUrlPart.

2010-01-10  Raymond Huang

	* ug_url.h, ug_url.c, ug_path.h, ug_path.c: These files will be deprecated.

	* ug_uri.h, ug_uri.c
	(UgUriPart): replace UgUrlPart and UgPathPart (ug_url.h and ug_path.h)
	(ug_uri_scheme_len): New function. To get length of URI scheme.
	(ug_uri_referrer_len): New function. To get length for referrer. (auto referrer)
	(ug_uri_get_filename): New function. To get filename from URI.

	* ug_plugin.c
	(ug_plugin_new_by_data): Don't find plug-in if scheme is NULL.

	* ug_plugin_curl.h, ug_plugin_curl.c: remove code that use UgUrlPart.

	* uglib.h, uglib.c
	(ug_text_file_get_uris): New function. To get URIs from text file.
	(ug_text_get_uris): New function. To get URIs from text.
	(ug_uri_list_remove_scheme): New function. To emove URIs from list by scheme.

	* ug_category-gtk.h, ug_category-gtk.c
	(ug_category_gtk_move_selected_up): New function. To move selected download up.
	(ug_category_gtk_move_selected_down): New function. To move selected download down.
	(ug_category_gtk_move_selected_to_top): New function. To move selected download to top.
	(ug_category_gtk_move_selected_to_bottom): New function. To move selected download to bottom.

	* ug_category_widget.h, ug_category_widget.c
	(UgCategoryCursorChanged): rename from UgCategorySwitchFunc

	* ug_download_widget.h, ug_download_widget.c
	(ug_download_widget_get_selected_indices): New function for UgDownloadWidget.
	(ug_download_widget_count_selected): New function for UgDownloadWidget.
	(ug_download_widget_get_cursor): New function for UgDownloadWidget.

	* uget-gtk.h, uget-gtk.c
	(uget_gtk_clipboard_init): New function for UgetGtkClipboard.
	(uget_gtk_clipboard_set_pattern): New function for UgetGtkClipboard.
	(uget_gtk_clipboard_get_uris): New function for UgetGtkClipboard.
	(uget_gtk_clipboard_monitor): New function for UgetGtkClipboard.

2010-01-01  Raymond Huang

	* All source: change 2009 to 2010

	* uglib.c
	(uget_option_parse): create attach folder and copy file if need be.
	(uget_delete_temp): delete temp file

	* ug_category.h, ug_category.c: add abstract base classes (UgCategory and UgRelation) to uglib.
	* ug_category-gtk.h, ug_category-gtk.c
	(UgCategoryGtk): implements abstract class (UgCategory). It replace old UgCategory of uget-gtk.
	(UgRelationGtk): implements abstract class (UgRelation). It replace UgDataApp.

	* uget-gtk/main.c, uget-cmd/main.c
	(main): show message if IPC failed.

	* uget-gtk/ug_download_widget.h: replace a part of code in uget-gtk/ug_list_view.h and uget-gtk/uget.h
	* uget-gtk/ug_download_widget.c: replace a part of code in uget-gtk/ug_list_view.c and uget-gtk/uget.c
	* uget-gtk/ug_category_widget.h: replace a part of code in uget-gtk/ug_list_view.h and uget-gtk/uget.h
	* uget-gtk/ug_category_widget.c: replace a part of code in uget-gtk/ug_list_view.c and uget-gtk/uget.c
	* uget-gtk/ug_item_widget.h: replace a part of code in uget-gtk/ug_list_view.h and uget-gtk/ug_item.h
	* uget-gtk/ug_item_widget.c: replace a part of code in uget-gtk/ug_list_view.h and uget-gtk/ug_item.c
	* uget-gtk/uget-gtk.h, replace uget-gtk/uget.h
	* uget-gtk/uget-gtk.c: replace uget-gtk/uget.c
	* uget-gtk/uget-gtk-callback.c: replace uget-gtk/uget-callback.c
	* uget-gtk/main.c: replace uget-gtk/uget-main.c

	* uget-gtk/ug_proxy_form.h: rename from old uget-gtk/ug_proxy_widget.h
	* uget-gtk/ug_proxy_form.c: rename from old uget-gtk/ug_proxy_widget.c
	* uget-gtk/ug_batch_form.h: rename from old uget-gtk/ug_batch_widget.h
	* uget-gtk/ug_batch_form.c: rename from old uget-gtk/ug_batch_widget.c
	* uget-gtk/ug_download_form.h: rename from old uget-gtk/ug_download_widget.h
	* uget-gtk/ug_download_form.c: rename from old uget-gtk/ug_download_widget.c
	* uget-gtk/ug_category_form.h: rename from old uget-gtk/ug_category_widget.h
	* uget-gtk/ug_category_form.c: rename from old uget-gtk/ug_category_widget.c

2009-12-19  Raymond Huang

	* ug_option.h, ug_option.c
	(UgOptionMainData): add command argument "--http-user-agent"

	* ug_ipc.h: change UGET_SOCKET_NAME from "uget_ipc" to "UgetIPC"

	* ug_dataset.h, ug_dataset.c: use UG_DATASET_RELATION to instead UG_DATASET_APP

	* ug_plugin_curl.c
	(ug_plugin_curl_init): Don't reset counts if it doesn't exist.
	(ug_plugin_curl_open_file): Don't use CURLOPT_WRITEFUNCTION if compiler is not MS VC.

	* uglib.c
	(uget_option_parse): set merge flag if file or url exists.

	* ug_category.h, ug_category.c: define abstract class - UgCategory and UgRelation.

	* ug_category-cmd.h, ug_category-cmd.c: define category and relation class for uget-cmd

	* uget-cmd.h, uget-cmd.c
	(uget_cmd_class_init): register new data class.
	(uget_cmd_save): a new function to save file.
	(uget_cmd_load): a new function to load file.

	* uget.h, uget.c
	(uget_add_download_from_ipc): modify for recent changes.

2009-12-12  Raymond Huang

	* ug_utils.h, ug_utils.c
	(ug_copy_file): copy an existing file to a new file.
	(ug_delete_dir_recursive): remove a file or directory recursively.

	* ug_data_download.h, ug_data_download.c
	(UgDataCommon): add member - attach_folder

	* uglib.h, uglib.c
	(uget_create_attach_folder): create attach folder
	(uget_create_attach): copy files to attach folder
	(uget_delete_attach): delete attach file and folder
	(ug_get_user_config_dir): get Uget user config dir

﻿2009-12-06  Raymond Huang

	* ug_data.h, ug_data.c
	(ug_data_list_assign): assign/merge function for data list.

	* ug_dataset.c (ug_dataset_assign): assign/merge function for dataset.

	* uglib.c (uget_option_add): option can be NULL.

	* uget-main.c (main): rewrite for recent changes.

	* ug_item.h, ug_selector.h, header files...: replace all tail 'T' of types with underscore.

2009-11-30  Raymond Huang

	* ug_data_download.h, ug_data_download.c
	(UgDataCommon): add member speed_limit

	* ug_plugin.h, ug_plugin.c
	(UgPluginCallback): rename from UgPluginFunc
	(ug_plugin_new_by_data): remove UgPathPart dependency
	(ug_plugin_create_file): remove UgPathPart dependency

	* ug_plugin_curl.c
	(ug_plugin_curl_header_http): remove tail "\r\n"
	(ug_plugin_curl_thread): support speed limit.

	* ug_url.c
	(ug_url_unescape_to_utf8): escape string if convert fail.

	* uglib.h, uglib.c
	(uget_class_init): rename from ug_global_init
	(uget_class_finalize): rename from ug_global_finalize
	(ug_arg_get_rest): rename from ug_arg_get_urls

	* uget-cmd.c
	(uget_cmd_refresh): new function for queuing.

2009-11-25  Raymond Huang

	* ug_category.h, ug_category.c, ug_category_file.c: Remove from uglib.

	* ug_data.h, ug_data.c
	(ug_data_to_markup): Don't output anything if entry is NULL.

	* ug_dataset.c
	(ug_datapair_to_markup): Don't output anything if entry is NULL.

	* ug_ipc.h, ug_ipc.c
	(ug_arg_new): create instance from arguments of main function.

	* ug_plugin.h, ug_plugin.c
	(ug_plugin_new_by_data): add argument for deciding class of plug-in.

	* uglib.h, uglib.c: rename from uget.h and uget.c

	* uglib.h, uglib.c
	(ug_io_channel_decide_encoding): check BOM in text file and set encoding of GIOChannel.
	(uget_ipc_init): IPC initialize function for Uget application.

	* uget-cmd.h, uget-cmd.c: rewrite for recent changes.

2009-11-20  Raymond Huang

	* ug_data_download.h, ug_data_download.c
	(ug_data_common_assign): Support merge flags.
	(ug_data_proxy_assign): Support merge flags.
	(ug_data_http_assign): Support merge flags.
	(ug_data_ftp_assign): Support merge flags.

	* ug_ipc.h, ug_ipc.c
	(ug_arg_free): add parameter for strings free.

	* ug_option.c
	(ug_option_main_get): Support merge flags.

	* uget.h, uget.c
	(uget_option_parse): Support multiple URLs from command-line option.

2009-11-16  Raymond Huang

	* ug_data.h, ug_data.c
	(ug_data_list_reverse): Fix - list may lost link.
	(ug_data_list_unlink): Fix - list may lost link.

	* ug_message.c (ug_message_new_info): restore to old version.

	* ug_ipc.h, ug_ipc.c
	(ug_ipc_server_start): rename from ug_ipc_server_init
	(ug_ipc_client_connect): rename from ug_ipc_client_init

	* tests/test_ipc.c: Rewrite for recent changes.

2009-11-15  Raymond Huang

	* All sources: replace all tail 'T' of types with underscore.

	* ug_category_file.c: new element name: 'UgetDownloadList' and 'UgetCategoryList'.

	* ug_ipc.h, ug_ipc.c
	(ug_ipc_peek): new function. peek argument from queue.
	(ug_ipc_pop): new function. pop argument from queue.
	(server_connect): push argument to queue. If queue full, response busy.

	* ug_option.h, ug_option.c
	(ug_option_get): rename from ug_option_get_dataset.
	(ug_option_clear): rename from ug_option_init_data.

	* uget.h, uget.c: rename from uglib.h and uglib.c

	* uget-cmd/uget-cmd.h, uget-cmd/uget-cmd.c, uget-cmd/main.c: new sub-project for testing.

2009-11-10  Raymond Huang

	* ug_category.h, ug_category.c
	(ug_category_set_watch): add new function for watch callbacks.
	(UgRelationHints): replace UgRelationFlag.

	* ug_data_download.h, ug_data_download.c
	(UgDataCommon): add new member - retry_count.
	(UgDataHttp): add new member - redirection_count.

	* ug_message.h
	(UgMessageInfoCode): UG_MESSAGE_INFO_NOT_RESUMABLE rename to UG_MESSAGE_INFO_UNRESUMABLE

	* uglib.h, uglib.c: new files.

2009-11-07  Raymond Huang

	* ug_category.h, ug_category.c, ug_category_file.c, ug_utils.c,
	ug_dataset.h, ug_dataset.c: UgRelated rename to UgRelation.

	* ug_category.h, ug_category.c, ug_category_file.c: Use GList to replace UgDataset list.

	* ug_message.h, ug_message.c (UgMessageInfoCode): Add new message: UG_MESSAGE_INFO_COMPLETE

	* ug_plugin.h, ug_plugin.c
	(ug_plugin_pop_all): New function.
	(UgPluginInitFunc): change argument of init function.

	* ug_data.h, ug_data.c: Add new function: ug_data_list_reverse

2009-11-01  Raymond Huang

	* ug_class.h, ug_class.c, ug_regestry.c, ug_regestry.h: replace ug_class by ug_regestry.
	* ug_markup.h, ug_markup.c: improve formating and build-in parser.
	* ug_category.h, ug_category.c, ug_category_file.c: move UgCategory to uglib.

	* ug_data.h, ug_data.c,
	ug_data_download.h, ug_data_download.c,
	ug_dataset.h, ug_dataset.c
	ug_message.h, ug_message.c: separates UgData to UgData and UgDataList.

	* configure.ac: change version to 1.5.9 developing

