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
