2009-01-09  Luca Bruno  <lethalman88@gmail.com>

	* === Released 0.3.0 ===

	* data/freespeak.desktop.in: removed

	* docs/Makefile.am: added to distribute the manpage

	* Makefile.am (SUBDIRS): added docs

	* configure.ac: 

	* NEWS: updated

2009-01-07  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/translation.py (BaseTranslation.set_default_translator): capability check must be in the whole condition

	* freespeak/ui/translation.py (TextTranslation.setup_clipboard): check for None contents

	* freespeak/translators/opentran.py: typo in importing StatusSuggestionComplete

	* freespeak/ui/utils.py: added docstrings
	Cut lines to 80 characters.
	(MessageDialog.__init__): shadowed built-in 'type'

	* freespeak/ui/translation.py: added docstrings
	Removed wildcard and unused imports.
	Cut lines to 80 characters.
	(TextTranslation.setup_clipboard): get_text_contents() already checks for valid text

	* freespeak/ui/translation_label.py: added docstrings
	Removed unused imports.
	Cut lines to 80 characters.

	* freespeak/ui/translation_box.py: added docstrings
	Removed unused imports.
	Shadowed built-in 'iter'.
	Cut lines to 80 characters.

	* freespeak/ui/suggestion.py: added docstrings
	Removed wildcard imports.
	Cut lines to 80 characters.
	(TranslationSuggestions.on_entry_activate): added for readability
	(SuggestionsTreeView.on_copy, on_open): shadowed built-in 'iter'

	* freespeak/ui/style.py: added docstrings

	* freespeak/ui/status_icon.py: added docstrings
	Cut lines to 80 characters.

	* freespeak/ui/spinner.py: added docstrings
	Cut lines to 80 characters.

	* freespeak/ui/settings.py: added docstrings
	Cut lines to 80 characters.

	* freespeak/ui/manager.py: added docstrings

	* freespeak/ui/main_window.py: removed wildcard and unused imports
	Cut lines to 80 characters.
	Added docstrings.
	(MainWindow.setup_window): default size not needed anymore

2009-01-06  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/intro.py
	(Intro.on_text_clicked, on_web_clicked, on_suggestions_clicked, on_help_clicked):
	added for callback readability
	(IntroButton.__init__): removed description argument, unused in this release
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/ui/globalkeybinding.py (GlobalKeyBinding.__init__): declare instance variables
	Cut lines to 80 characters.
	Removed unused imports.
	Added docstrings.

	* freespeak/ui/exception_dialog.py:
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/translators/opentran.py:
	(Language.__init__): call super
	(Translator.__init__): call super
	(Translator.translate_web): override
	(Translator.translate_text): override
	Removed unused imports.
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/translators/yahoo.py:
	(Language.__init__): call super
	(Translator.__init__): call super
	(Translator.suggest_translations): override
	Removed unused imports.
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/translators/google.py (Translator.translate_text): change domain from .it to .com
	(Language.__init__): call super
	(Translator.__init__): call super
	(Translator.suggest_translations): override
	Removed unused imports.
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/translators/freetranslation.py:
	(Translator.suggest_translations): override
	Removed unused imports.
	Cut lines to 80 characters.
	Added docstrings.

	* freespeak/utils.py (syncronized.closure.idle): added docstrings

	* freespeak/translator.py: removed unused imports
	Cut lines to 80 characters.
	Added docstrings.
	(BaseTranslator.get_language_table): fixed signature

	* freespeak/translation.py: removed unused imports
	(Task.__init__): removed unused args/kwargs
	(BaseTranslation.update_status): only accept the status argument
	Cut lines to 80 characters.
	Removed wildcard imports.
	Added docstrings.

	* freespeak/status.py (__all__): cut line to 80 characters
	Added docstrings.

	* freespeak/ui/about.py (About.__init__): use defs.VERSION
	Cut lines to 80 characters.
	Added docstrings.

	* bin/freespeak (main): added to not insert unused variables in the global module scope
	Added docstrings.
	Removed unused 'freespeak' import.

	* freespeak/application.py: added docstrings
	Removed unused imports.
	Cut lines to 80 characters.
	(__homepage__): removed
	(get_instance): shadowed built-in 'object'
	(Application.__init__): removed options and args arguments/attributes
	Removed domain and version attributes.
	Declared all instance attributes.
	(Application.start): use None as default for options and args arguments

	* freespeak/ui/main_window.py (MainWindow.on_new): shadowed built-in 'type'

	* freespeak/config.py (Config.set): shadowed built-in 'type'
	Added docstrings.

2009-01-05  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/translator.py (BaseTranslator.translate): localize string

	All copyright notices have been updated.
	
	* freespeak/ui/manager.py (Manager.__init__): set scrollable

	* data/freespeak.schemas.in: change default key binding value to Ctrl+Alt+t

	* README: updated

	* docs/man/freespeak.1: bump to 0.3.0 version
	Added key bindings section
	Update date

	* configure.ac: bump to 0.3.0 version

2008-12-22  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/suggestion.py (SuggestionsTreeView.setup_columns): set columns resizable

	* freespeak/ui/translation.py (WebTranslation.on_browser_net_stop): wrong condition fixed
	(WebTranslation.dest_url_buttons): improved tooltip meaning

	* freespeak/ui/intro.py (Intro.on_expose): draw a box around the intro buttons
	(Intro.setup_layout): added
	Be a GtkAlignment the widget in the window
	(IntroButton.__init__): set a border width
	Align the text to the left near the image
	Make the text bold
	Use a custom child instead of button image/text properties
	(Intro.on_expose): paint all the horizontal space
	(Intro.setup_layout): increase border width to achieve a uniform spacing around the box
	Added callbacks to buttons.

	* freespeak/ui/spinner.py (Spinner.stop): None check for self.source

2008-12-21  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/style.py (setup_rc): add some style to the intro buttons

	* freespeak/ui/intro.py: added, display something when the notebook is empty
	(IntroButton.__init__): more fancy buttons

	* freespeak/ui/Makefile.am (freespeak_ui_PYTHON): added globalkeybinding.py, moved from parent Makefile.am

	* freespeak/ui/globalkeybinding.py (GlobalKeyBinding.run): do not use 100% CPU with a loop
	(GlobalKeyBinding.__init__): set daemon flag for thread so that the application terminates when exiting the GTK+ mainloop
	Remove older copyright years
	Changed license to MIT

2008-12-20  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/status_icon.py (StatusIcon.ui_string): use <popup>
	(StatusIcon.setup_menu): change according to the new ui definition
	(StatusIcon.on_new): added as a wrapper for MainWindow.on_new
	Manager will switch to the latest opened tab
	(StatusIcon.tray): hide because iconify does an animation against the task bar

2008-12-19  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/status_icon.py (StatusIcon.setup_menu): added, avoid using accelerators
	(StatusIcon.on_popup_menu): now popup the new menu, without re-creating it every time

	* freespeak/ui/main_window.py (MainWindow.on_keybinding_activate): do not open a translation if no new data is present in the clipboard
	Present the window to the user and switch to the latest opened translation.

	* freespeak/ui/globalkeybinding.py (GlobalKeyBinding.idle): lock the GDK thread when emitting "activate"
	(GlobalKeyBinding.map_modifiers): added, consider only known modifiers

	* freespeak/ui/manager.py (Manager.switch_to_latest): added to force switching to the latest notebook page

2008-12-18  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/application.py (ClipboardController.has_text_contents): added
	(ClipboardController.has_url_contents): added

	* freespeak/ui/main_window.py (MainWindow.on_keybinding_activate): added
	(MainWindow.__init__): connect to the global keybinding
	(MainWindow.setup_clipboard): removed unuseful method

	* freespeak/ui/globalkeybinding.py: moved here from freespeak/

2008-12-17  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/config.py (Config.__init__): watch the freespeak dir, remove the trailing slash from dir

	* freespeak/ui/settings.py (Settings.setup_keybindings): added
	(Settings.setup_layout): add size groups for keeping columns aligned
	(Settings.on_key_binding_edited): added
	(Settings.on_key_binding_cleared): added

	* data/freespeak.schemas.in: added key_binding schema

	* freespeak/globalkeybinding.py (GlobalKeyBinding.ungrab): fixed
	(GlobalKeyBinding.stop): ungrab the key
	(GlobalKeyBinding.on_key_changed): added, regrab the key
	(GlobalKeyBinding.regrab): added, ungrab then grab the key
	(GlobalKeyBinding.__init__): notify when the key changes
	(GlobalKeyBinding.grab): don't grab if disabled

	* freespeak/application.py (Application.setup_globalkeybinding): added
	(Application.start): grab the global keybinding and start the X events loop

	* freespeak/globalkeybindind.py (GlobalKeyBinding): added

	* configure.ac: check for Xlib

	* freespeak/translation.py (BaseTranslation.set_default_to_lang):
	intelligent choice of the "to language"

2008-12-15  Luca Bruno  <lethalman88@gmail.com>

	* data/Makefile.am:

	* data/freespeak.schemas.in: added schema for metacity window keybindings

	* configure.ac: readd pkg-config and check for gnome-keybindings

	* data/90-freespeak.xml.in: added for gnome-keybindings (gnome-control-center)

2008-12-09  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/main_window.py (MainWindow.setup_window): drop version from window title

2008-12-07  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/suggestion.py (TranslationSuggestions.update_translate_button_sensitivity)
	(TranslationSuggestions.update_can_translate)
	(TranslationSuggestions.on_entry_changed)
	(TranslationSuggestions.setup_ui): like with web translations: don't translate if entry is not filled; translate when entry is activated

	* freespeak/ui/translation.py (WebTranslation.update_translate_button_sensitivity): 

2008-12-06  Luca Bruno  <lethalman88@gmail.com>

	* configure.ac: do not check for python headers
	check for lxml.html

2008-12-05  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/translation.py (WebTranslation.update_status): stop loading when cancelled
	(WebTranslation.on_browser_net_stop): show dest_url only when translation is done

	* freespeak/ui/settings.py (Settings.setup_translator): setup default translator in the combo as the TranslatorCombo class doesn't set it automatically anymore

	Cancellation of tasks has been implemented.
	
	* freespeak/ui/translation_box.py (ComboChangedSignal): added for delaying UI change

	* freespeak/ui/translation.py (BaseUITranslation.on_cancelled): added, connect to 'cancelled' signal of Progress

	* freespeak/translation.py (Task): renamed stop with cancel

	* freespeak/status.py (StatusCancelled): added

	* freespeak/translation.py (TranslateTask)
	(LanguageTableTask): added to make cancellable Translation tasks

	* freespeak/ui/suggestion.py (TranslationSuggestions.on_tiny_paste)
	(TranslationSuggestions.on_tiny_clear)
	(TranslationSuggestions.entry_buttons): added tiny buttons next to the entry

	* freespeak/ui/translation.py (WebTranslation.setup_clipboard): use get_url_contents()
	(TextTranslation.setup_clipboard): use get_text_contents()

	* freespeak/application.py (ClipboardController.get_url_contents)
	(ClipboardController.get_text_contents): added

	* freespeak/ui/main_window.py (MainWindow.setup_layout): removed accelerator for Translation menu as it conflicts with the Translate button

	* freespeak/ui/translation.py (WebTranslation.on_browser_net_stop): added, when browser stops loading data from network
	(WebTranslation.update_status): override BaseUITranslation to attach the ProgressBar to the real browser job
	(BaseUITranslation.started)
	(BaseUITranslation.stopped): added for being called from sub classes

	* freespeak/ui/spinner.py (Spinner.is_running): added

2008-12-04  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/suggestion.py (TranslationSuggestions.setup_ui): updated

	* freespeak/ui/utils.py (Progress): switch to HBox to hold a Cancel button

	* freespeak/ui/translation.py (BaseUITranslation)
	(BaseUITranslation.setup_layout): added to split translatino UI in two parts, a layout for translation widgets and another part for the progress bar, to handle sensitivity
	(TextTranslation.setup_ui)
	(WebTranslation.setup_ui): updated

	* configure.ac: check for lxml, pango and gettext

2008-12-03  Luca Bruno  <lethalman88@gmail.com>

	* configure.ac: check for gtkmozembed modules, remove pkgconfig development checks which are not needed for neither building nor installing the project and increases build depends on several binary-based GNU/Linux distributions

2008-12-01  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/translation_label.py: added, with contextual menu

	* freespeak/ui/translation.py: removed
	All calls have been updated

	* TODO: Cancel operation, added

	* freespeak/ui/settings.py (Settings.on_response): handle Help response
	(Settings.__init__): added Help action

2008-11-30  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/status_icon.py (StatusIcon.on_popup_menu): added Contents action

	* freespeak/ui/main_window.py (MainWindow):
	Created menubar
	Removed About and Quit from toolbar
	Removed About accelerator

	* freespeak/ui/manager.py (Manager.close_current_translation): added

	* freespeak/ui/Makefile.am (freespeak_ui_PYTHON): missed suggestion.py (thanks to Cosimo Cecchi)

	* TODO: translation suggestions done, add documentation

	* freespeak/ui/translation_box.py (TranslatorCombo): added pixbufs

	* data/art/Makefile.am, data/art/opentran.png: added

	* Replaced all occurrences of gna.org with berlios.de

	* freespeak/ui/suggestion.py (TranslationSuggestions.update_status): clear model everytime
	(SuggestionsTreeView.on_button_press_event)
	(SuggestionsTreeView.on_copy)
	(SuggestionsTreeView.on_open)
	(SuggestionsTreeView.setup_menu): implemented the popup menu

	* freespeak/translators/opentran.py (Translator.suggest_translations): first append original text

	* freespeak/ui/suggestion.py (SuggestionsTreeView.setup_columns): reorganized better

	* freespeak/ui/translation_box.py (TranslationBox.update_from_langs)
	(TranslationBox.update_to_langs): nullify selection as it could be invalid

	* freespeak/ui/suggestion.py (SuggestionsTreeView): added

	* freespeak/translators/opentran.py (Translator.suggest_translations):
	Parse and cache pixbufs
	Make it a list of lists

	* data/freespeak.desktop.in.in (Encoding): removed as it's been depcrecated by the FreeDesktop standard

	* freespeak/translation.py: fixed updates when changing translator

2008-11-29  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/settings.py (Settings.setup_translator): missing gettext (thanks to David Sagnol)

	* docs/man/freespeak.1: added

	* freespeak/translation.py (BaseTranslation.setup_default_language)
	(BaseTranslation.set_default_from_lang)
	(BaseTranslation.set_default_to_lang): added to set the language according to the default locale
	(BaseTranslation.update_from_lang, BaseTranslation.update_to_lang): added
	(BaseTranslation._run_language_table): set default "from" language
	(BaseTranslation.set_from_lang): once set, set default "to" language

	* freespeak/translator.py (BaseLanguage): added
	All translator modules have been updated.

	* freespeak/translators/opentran.py (Translator.suggest_translations): return a suitable result

	* freespeak/ui/suggestion.py (TranslationSuggestions.update_status): added

	* freespeak/status.py (StatusSuggestionComplete): added

2008-11-26  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/translators/opentran.py (Translator.suggest_translations): started work

2008-11-24  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/translation.py (BaseTranslation.set_default_translator): check for capability before setting the translator

	* freespeak/translators/opentran.py: added back

	* freespeak/translator.py (BaseTranslator.suggest_translations)
	(BaseTranslator.translate): handle TranslationSuggestionsRequest

	* freespeak/ui/suggestion.py: added copyright notice

	* freespeak/ui/translation.py (BaseUITranslation.DESTINATION_COLOR): share the GDK color used for the destination box among all translation types

	* freespeak/translation.py (TranslationSuggestions): added

	* freespeak/ui/main_window.py (MainWindow.on_new): handle Suggestions translations
	(MainWindow.setup_layout): add Suggestions item

	* freespeak/ui/suggestion.py (TranslationSuggestions): added

	* freespeak/ui/status_icon.py (StatusIcon.on_popup_menu): add Suggestions item

	* freespeak/ui/translation.py (WebTranslation.setup_ui): block 'activate' handler, unblock only when translate button is sensitive

2008-11-23  Luca Bruno  <lethalman88@gmail.com>

	* === Released 0.2.0 ===
	
	* freespeak/ui/spinner.py (Spinner._rotate): explained
	(Spinner.setup_animation): always use cls.PIXELS

	* bin/freespeak: cleaned up command line options

	* Updated all copyright notices

2008-11-22  Luca Bruno  <lethalman88@gmail.com>

	* MAINTAINERS: added

	* po/ChangeLog: added

	* configure.ac: bump to 0.2.0 version

	* freespeak/ui/translation_box.py (TranslationBox.setup_translator): localize some strings

2008-11-21  Luca Bruno  <lethalman88@gmail.com>

	* data/freespeak.desktop.in.in: removed Utility as it provided a duplicated entry in the menu

	* TODO: 

	* freespeak/translators/opentran.py: removed for next release

2008-11-16  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/application.py: change interface to org.gna.FreeSpeak, change application path to /

	* freespeak/ui/translation.py (WebTranslation.dest_url_buttons): added
	(WebTranslation.setup_ui): created destination box with a LinkButton
	created an EventBox to set a background
	(WebTranslation.dest_url_hook): added
	(WebTranslation.on_tiny_copy): added
	(WebTranslation): don't take sensitivity to the source url box

	* configure.ac: add missing dependencies

	* freespeak/ui/translation.py (TextTranslation.setup_ui): added spell checker

	* bin/freespeak: options wasn't a dict, so get its attributes dict

	* freespeak/application.py (Application.start): fix signature

2008-11-11  Luca Bruno  <lethalman88@gmail.com>

	* bin/freespeak: use the DBUS specification of FreeSpeak

	* freespeak/application.py (Application.running): renamed from started
	(get_instance): added, create or get an existing running instance of the application
	(Application): create a dbus Object and an interface

	* freespeak/ui/utils.py (question): removed
	(MessageDialog): added, make all dialogs asyncronous

2008-11-10  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/translation.py (WebTranslation.url_buttons)
	(WebTranslation.on_tiny_clear, WebTranslation.on_tiny_paste): added
	(WebTranslation.setup_ui, WebTranslation.update_can_translate): set sensitivity to the whole box
	(WebTranslation.setup_clipboard)
	(TextTranslation.setup_clipboard): pseudo-intelligent clipboard contents handling

	* freespeak/ui/translation_box.py (TranslationBox.set_from_lang)
	(TranslationBox.set_to_lang): added, set the iter given the language model
	(TranslationBox.swap_langs): swap from/to languages when possible

	* freespeak/ui/translation.py (TextTranslation.get_source_contents)
	(TextTranslation.get_dest_contents): added as helpers for other methods
	(TextTranslation.update_dest_actions): called when the destination text can be used, mostly change tiny buttons sensititivy
	(TextTranslation.update_can_translate): overridden to call update_dest_actions
	(TextTranslation.on_tiny_swap): also set translated text and swap languages

	* freespeak/translation.py (BaseTranslation.set_translator)
	(BaseTranslation._run_language_table): fix UI consistency

	* freespeak/ui/translation.py (TextTranslation.translated_buttons)
	(TextTranslation.translate_buttons)
	(TranslationLabel.setup_close): set tooltip texts to tiny buttons

	* freespeak/ui/translation_box.py (TranslationBox.setup_translator)
	(TranslationBox.setup_from, TranslationBox.setup_to): setup mnemonic widget for label

	* freespeak/ui/translation.py (TextTranslation.translated_buttons)
	(TextTranslation.translate_buttons): added, small toolbars above the text views
	(TextTranslation.on_tiny_clear, TextTranslation.on_tiny_paste)
	(TextTranslation.on_tiny_copy, TextTranslation.on_tiny_swap): added, events for the tiny buttons

	* freespeak/application.py (ClipboardController.__init__): control multiple clipboards
	(ClipboardController.get_contents, ClipboardController.set_contents): accept 'force' argument

	* freespeak/ui/status_icon.py (StatusIcon.__init__): set the freespeak icon

	* freespeak/ui/translation.py (TranslationLabel.setup_close): use ui.utils.TinyButton

	* freespeak/ui/Makefile.am (freespeak_ui_PYTHON): 

	* freespeak/ui/style.py: added

	* freespeak/ui/manager.py: moved RC style code to style.py

	* freespeak/ui/utils.py (TinyButton): added

	* data/freespeak.desktop.in.in (Categories): changed

2008-11-09  Luca Bruno  <lethalman88@gmail.com>

	* data/Makefile.am: update

	* data/freespeak.desktop.in: added

	* po/it.po: updated

	* po/POTFILES.in: updated

	* freespeak/ui/spinner.py (Spinner._rotate): less verbose round robin code
	(Spinner.setup_animation): remove the first frame, it's an idle status

	* freespeak/ui/translation.py (BaseUITranslation.setup_clipboard): added
	(TextTranslation.setup_clipboard, WebTranslation.setup_clipboard): implemented
	(TextTranslation.update_status, WebTranslation.update_status): set result to the clipboard

	* freespeak/application.py (ClipboardController): added

	* freespeak/ui/spinner.py (Spinner.setup_animation): pixbuf has different number of icons among different themes

2008-11-02  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/manager.py (Manager.__init__): set RC style for close button of each tab

	* freespeak/application.py (Application.setup_icons): remove icon factory, setup default icon for windows, add search path for translator icons

	* freespeak/ui/spinner.py (Spinner.set_idle): added, set the icon on idle

	* freespeak/translation.py (BaseTranslation.update_translator): added whenever the translator changes

	* freespeak/ui/translation.py (BaseUITranslation.update_translator): added

	* freespeak/translators/*.py: specify the icon

	* data/art/Makefile.am (update-icon-cache): missed macro, added art files for translators

	* freespeak/ui/exception_dialog.py (ExceptionDialog.on_response): use the given dialog (pygtk bug?)

	* freespeak/ui/about.py (About): refactored

	* freespeak/ui/main_window.py (MainWindow.setup_window): change the icon pixels to 64

	* freespeak/ui/translation.py (TextTranslation.setup_ui): change the color of the result

	* freespeak/ui/translation_box.py (TranslatorCombo.__init__): add (none) to unset the translator

	* freespeak/translation.py (BaseTranslation.set_translator): accept None to unset the translator

	* freespeak/ui/main_window.py (MainWindow.setup_window): use the theme to set the window icon

	* data/art: added some freespeak icons

	* freespeak/ui/settings.py (Settings.on_response): translator can be None

	* freespeak/ui/translation_box.py (TranslatorCombo.get_active_translator): iter can be None

	* po/it.po: added

	* configure.ac: added ALL_LINGUAS

	* freespeak/progress.py: removed obsolete file

	* freespeak/translators/*.py: all use urllib.urlopen for parsing html, this fixes unicode errors

	* freespeak/defs.py.in: added GETTEXT_PACKAGE

	* freespeak/application.py: use defs.py

	* freespeak/about.py: use defs.py

	* freespeak/config.py (Config): use GConf
	All calls have been updated

	* configure.ac: added, adopting gnome autotools

	* setup.py: dropped setuptools build system

2008-11-01  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/status_icon.py (StatusIcon.on_popup_menu): added

	* freespeak/ui/translation.py (TranslationLabel.setup_icon): use the new spinner image
	Insensitive translation when doing some operation.

	* freespeak/ui/spinner.py (Spinner): added

	* freespeak/ui/translation.py (TranslationLabel.setup_icon): added, still incomplete

	* freespeak/translation.py (BaseTranslation._run_language_table): added

	* freespeak/status.py (StatusTextComplete): added
	(StatusWebComplete): added
	All calls have been updated

	* freespeak/application.py: removed IPC
	(Application.stop): added
	(Application.status_icon): moved to MainWindow

	* freespeak/status_icon.py: needs a window for initialization

	* freespeak/ui/translation_box.py (TranslatorCombo.get_active_translator): added
	(TranslationBox.on_translator_changed): 

	* freespeak/ui/settings.py (Settings.on_response): save the python module name

	* freespeak/translator.py (TranslatorsManager.get_default): obtain from module name
	(TranslatorsManager.load_translator): set python module name for translator

	* freespeak/translation.py (BaseTranslation.set_default_translator): added

2008-10-26  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/config.py (Config): fixed some issues

	* freespeak/ui/settings.py: moved here, completed

	* freespeak/ui/translation_box.py (TranslatorCombo): added, detached from TranslationBox

	* freespeak/ui/status_icon.py: added

	* freespeak/translators/freetranslation.py: completed

	* freespeak/translators/opentran.py: work started

	* freespeak/translators/yahoo.py: refactoring complete (was altavista)

	* freespeak/ui/utils.py (Frame): added
	(ScrolledWindow): set SHADOW_ETCHED_IN

	* freespeak/ui/translation.py (TranslationLabel): be more cool

	* freespeak/ui/main_window.py (MainWindow.setup_window): no border width
	(MainWindow.start): create a status icon

2008-10-15  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/translation.py (TranslationLabel.setup_progress): added, update other methods

	* freespeak/ui/utils.py (Progress): added

2008-10-14  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/main_window.py (MainWindow.setup_layout): fixed some accelerators

	* freespeak/ui/translation_box.py (TranslationBox.setup_translator): sort translators

	* freespeak/translators/google.py (Language.__cmp__): fixed
	(Language.translate_web): added

	* freespeak/translator.py (BaseTranslator.__cmp__): added

	* freespeak/ui/exception_dialog.py (exception_hook): added as wrapper to the dialog

	* freespeak/ui/translation.py (WebTranslation.setup_ui, create_request, update_status): added
	(TextTranslation.update_status): added
	(BaseUITranslation.update_status): removed, moved to subclasses
	(WebTranslation.on_url_changed): added, extend validation to url

2008-10-13  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/status.py: fix inheritance

	* freespeak/translation.py (TextTranslationRequest): fix inheritance
	(BaseTranslation): don't be a Thread object, but still spawn a thread
	(BaseTranslation._run): was run()

	* freespeak/translators/google.py (Translator.translate_text): added

	* freespeak/utils.py (syncronized): added this decoration to run functions in the main thread, to avoid gdk locking troubles
	All functions that runs in a thread have been updated

	* freespeak/ui/exception_dialog.py (ExceptionDialog.on_response): added, don't run() anymore, be asyncronous

	* freespeak/ui/translation.py (BaseUITranslation.on_translate_clicked): added
	(BaseUITranslation.update_status): added
	(BaseUITranslation.create_request): added virtual function
	(TextTranslation.create_request): added

2008-10-12  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/status.py: added
	
	* freespeak/translators/google.py (Language): added
	(Translator.capabilities, Translator.get_language_table): added

	* freespeak/ui/translation_box.py (TranslationBox): VBox is not suitable for mnemonic activation
	(TranslationBox.setup_to): typo when packing cell renderer
	(TranslationBox.on_translator_changed, on_from_changed, on_to_changed): fix retrieving the value from the iter

	* freespeak/utils.py (label_new_with_mnemonic): removed

	* freespeak/ui/utils.py (ScrolledWindow.__init__): set automatic policy

	* freespeak/translator.py (BaseTranslator.get_language_table, BaseTranslator.translate_text, BaseTranslator.translate_web): added

	* freespeak/translation.py (BaseTranslation.close): added
	(BaseTranslation.__init__): needs the manager for auto adding itself; all calls have been updated
	(TranslationRequest, TextTranslationRequest, WebTranslationRequest): added
	(BaseTranslation.run): use the request and the status
	(BaseTranslation.update_can_translate): added
	(BaseTranslation.set_translator): use sorted ()
	(BaseTranslation.set_from_lang): use sorted ()

	* freespeak/ui/manager.py (Manager.remove_translation): added

	* freespeak/ui/translation.py (TranslationLabel): added
	(BaseUITranslation.get_label): added
	(BaseUITranslation.setup_label): added
	(BaseUITranslation.setup_translation_box): create Translate button and make it insensitive
	(TextTranslation.setup_ui): create text views
	(BaseUITranslation.update_from_langs, update_to_langs, update_can_translate): added

2008-10-11  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/manager.py (Manager.add_translation): added

	* freespeak/config.py (Config.__init__): rename preferred to default; remove interface language, just use system default
	(DuplicateSectionError): import the right way

	* freespeak/translators/google.py: actually comment mechanoid

	* freespeak/translator.py (TranslatorsManager): added
	(TranslatorsManager.load_translator_from_file, TranslatorsManager.load_translator): added
	(TranslatorsManager.get_default): added
	(BaseTranslator): added

	* freespeak/application.py (Application.start): 

	* freespeak/ui/exception_dialog.py (ExceptionDialog): set the default response; make the text not editable; destroy self

	* freespeak/ui/main_window.py (MainWindow): commented regions and removed obsolete methods
	(MainWindow.setup_layout, MainWindow.setup_toolbar): fix typos
	Remove refresh and reduce buttons.
	Uncommented some regions to make it run at least once during the refactoring.

	* freespeak/translation/*: removed

	* freespeak/application.py (Application.start): fix typo and drop obsolete calls
	(Application.setup_factory): removed, do not create a factory anymore
	(Application.setup_translators_manager): added

	* freespeak/utils.py (label_new_with_mnemonic): renamed from make_label

	* bin/freespeak: removed -q option

	* freespeak/ui/translation.py (BaseUITranslation): added
	(TextTranslation.setup_ui): added

	* freespeak/ui/translation_box.py (TranslationBox): added

	* freespeak/translation.py (BaseTextTranslation, BaseWebTranslation): removed

2008-10-08  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/ui/translation.py (TextTranslation, WebTranslation): added

	* freespeak/translation.py (TranslationFactory): removed
	(Translation, TextTranslation, WebTranslation): renamed with Base prefix

2008-10-07  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/translation.py (Translation): fill in the basic methods

2008-10-06  Luca Bruno  <lethalman88@gmail.com>

	* Guidelines: 

	* TODO: 

	* freespeak/translation.py: added

	* freespeak/config.py (Config): refactored to be more fault tollerant

	* freespeak/ui/utils.py (ScrolledWindow): added file, moved classes from __init__.py
	(error): moved from main window
	(question): moved from main window

	* freespeak/ui/exception_dialog.py (ExceptionDialog.__init__): fixed, first print error to stderr

	* freespeak/ui/manager.py (Manager): added

	* freespeak/settings.py (Settings.__init__): removed toolbar and trayicon config

	* freespeak/config.py (Config.__init__): removed toolbar and trayicon config

	* freespeak/ui/main_window.py (MainWindow.setup_layout): added
	(MainWindow.setup_toolbar): added and don't use toolbar and trayicon config
	(MainWindow.setup_manager): added
	(MainWindow.set_toolbar_style): removed
	(MainWindow.setup_cmdline): move to bin/freespeak, act as a library
	(MainWindow.on_new): added, use the application factory
	(MainWindow.__init__): be a window
	Missed some imports, fixed some typos

	* freespeak/application.py (Application): gtk.main() threaded
	(Application.setup_factory): added
	Missed some imports, fixed some typos

	* bin/freespeak: use the application

2008-10-05  Luca Bruno  <lethalman88@gmail.com>

	* freespeak/application.py (Application.setup_icons): create an icon factory

	* freespeak/config.py (Config.__init__): remove alwaysontop and minimalist

	* freespeak/settings.py (Settings.__init__): remove alwaysontop and minimalist

	* freespeak/ui/main_window.py: added
	(MainWindow.__init__): remove alwaysontop and minimalist
	(MainWindow.setup_window): added

	* freespeak/ui/__init__.py (ScrolledWindow): added

	* freespeak/ui/exception_dialog.py: added

	* freespeak/application.py (Application): created class, started refactoring
	(Crash): moving to ExceptionDialog

	* freespeak/src: moved all files to the parent dir

	* bin/freespeak: moved here and cut the .py extension

	Updated copyright and authors.
	New changelog style.

	* 31/10:
	- Moved translation engine in translation/ directory and removed translation.py
	* 28/10:
	- Re-enabled modules icons
	* 23/10:
	- New dutch translation
	- Fixed tab naming and auto-one-option-selecting issues
	* 23/09:
	- View in browser for web page translation
	* 21/09:
	- Repainted icons
	* 19/09:
	- Translate web page also for google
	* 11/09:
	- Implementing translate web page feature (only for altavista)
	* 10/09:
	- Managed focus out event on tab renaming
	* 07/09:
	- Toolbar style in settings
	- Created keyboard shortcut for close tab's page button
	- Created acces key for each checkbutton and combobox
	- Fixed borders
	- Use GNOME style frame (src.utils.Frame)
	- Word wrap for text view
	* 04/09:
	- Created progressbar
	- Created keyboard shortcut 
== 15/08/05 - FreeSpeak 0.1.1 Released ==
	* 15/08:
	- Fixed MANIFEST.in
== 14/08/05 - FreeSpeak 0.1 Released ==
	* 05/08:
	- Created message dialog to inform to restart freespeak to apply
	the change of the language
	* 03/08:
	- Setting uid-based PID e SOCK files
	- No SVG icons anymore
	- Dutch localization
	* 01/08:
	- Select interface's language in settings
	- Created FreeDesktop.org .desktop launcher
	* 31/07:
	- Created setup.py for system installation
	- [IPC] Fixed new client data transmission
		* 27/07:
	- Introducing localization
	* 16/07:
	- Created About Dialog
	- Select preferred module when translation module is not specified
	in IPC
	* 15/07:
	- Auto select first combo item, if there's only an item in
	- [Minimalist] Text to be translated is now shown
	* 12/07:
	- Added popup menu over tabs
	- Tooltips for trayicon
	- Sensible trayicon for enable/disable setting
	- A little fix for IPC
	* 10/07:
	- Added "standalone" trayicon module
	- [Main] Set the tab label color to blue on successful translation 
	- [Google] Use of mechanoid instead of mechanize
	- IPC between new and original processes
	* 09/07:
	- Translator engine's icon in tab caption
	* 08/07:
	- [Minimalist] Fixed trayicon support 
	- [Settings] Use (or not use) trayicon
	- Start minimized in tray icon with "-q", "--quiet" option
	* 07/07:
	- Modularized source code
	- [Minimalist] Now the popup window is resizable
	- Set the exception hook which displays the tracebaick into a window
	- [Minimalist] Fixed translated text in the popup window
	- [Minimalist] Set the preferred module when showing the window
	* 06/07:
	- [Minimalist] Fixed clipboard operations on translation
	- [Minimalist] Popup translated text
	- [Settings] Added popup option on minimalist translation
	* 05/07:
	- Created freetranslation.com translator engine
	* 03/07:
	- Created trayicon, with popup menu
	* 02/07:
	- [Fix] Extend try/except block to the whole language table parser
	- [Settings] Keep window always on top
	- [Feature] Added minimalist window
	- [Fix] Refresh button has been fixed
	* 01/07:
	- Preferred Translator in settings window
	- Cached language table then load new tab faster
	- Added refresh button to refresh the language table of each page
	* 30/06:
	- Created google translator
	* 29/06:
	- Added tab renaming feature with double click
	* 26/06:
	- Created settings window and configuration class
	- Get text from clipboard automatically and clear it
	- Copy text to clipboard when translation is finished
	- Set the current viewing page to the new created one instead of
	staying on the current one
	- You can now start freespeak from other directories
	- Added accelerator to the translation button
	- Fixed displaying for languages like italian, spanish, dutch,
	french and german
	* 24/06:
	- Page close button with question
	* 23/06:
	- Automatic module loading
	- Error message dialog
