2007-08-18  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/actions.py: 
	  + (followup): Spawn the user MUA to send a followup
	  + (upstream_new): Create a new upstream bug based on a Debian bug
	
	* src/lib/ui/gtk/win_main.py:
	  + (followup): Callback to followup button click
	  + (upstream): Create a new upstream bug if requested
	
	* src/lib/ui/gtk/data/win_main.glade: 
	  + Add followup buttons to menu and toolbar
	  + Add a context-sensitive menu
	  + Add tags to the context menu
	
	* src/lib/ui/gtk/bug_view.py:
	  + (on_cursor_changed): Activate and deactivate the followup buttons
	    when bugs are selected/deselected.
	  + (popup): 
	    - Show the context-sensitive menu on right-click
	    - Before showing the context-sensitive menu, sync the tag status

2007-08-16  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/dlg_qbuilder.glade:
	  + Add buttons to generate composite queries
	  + Add an entry for each of the available fields instead of the
	    combo/entry pair
	
	* src/lib/ui/gtk/dlg_qbuilder.py:
	  + (__init__): Don't try get widgets which were removed
	  + (get): Return a proper multi-field query
	  + (run): Return the response code of the clicked button
	  + Move the response_* constants to inside the class
	
	* src/lib/ui/gtk/win_main.py (query_new): Check the response
	  code of dlg_qbuilder.run and create a proper composite query
	  if needed.
	
	* src/lib/actions.py 
	  + (show): Use xdg-open to get the right browser if available
	  + (upstream): 
	    - Use xdg-open to get the right browser if available
	    - Return false if the bug is already forwarded, as documented

2007-08-14  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/dlg_qbuilder.py:
	  + (get): Return the query inside parenthesis

2007-08-04  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_store.py: Add support to the url field

	* src/lib/ui/gtk/bz_bug_store.py: 
	  + Add support to the url field
	  + (get): Returns a bug object for a given TreeIter
	  + (__init__): Sort by component by default

	* src/lib/ui/gtk/win_main.py (show),
	  src/lib/actions.py (show): Use btsutils URL instead of generating
	  one.
	
	* src/lib/ui/gtk/dlg_upstream: 
	  + (__init__): 
	    - allow to sort the upstream bugs by any of the columns
	    - Remove the product column, we are filtering by product anyway
	  + (get_selection): Returns a list of the selected rows.
	
	* Make the upstream dialog a proper runable Gtk.Dialog
	  + src/lib/ui/gtk/data/dlg_upstream.glade: 
	    - Set response codes on the buttons 
	    - remove the hide signal handler
	  + src/lib/ui/gtk/dlg_upstream.py:
	    - Add RESPONSE constants
	    - (run): Run the dialog and return the response code
	  + src/lib/ui/gtk/win_main.py (upstream): Run the dialog
	    and execute an action depending on the response
	
	* src/lib/ui/gtk/win_main.py (upstream): If the package's upstream BTS
	  isn't configured, popup a dialog asking the user to configure it.
	
2007-07-30  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_store.py: Add support to the forwarded field

	* src/lib/ui/gtk/bz_bug_store.py (__init__): Allows to initialize the
	  store with a pre-obtained list of bugs.
	
	* src/lib/ui/gtk/win_main.py (upstream),
	  src/lib/actions.py (upstream): 
	  + Move upstream bug logic to actions
	  + If the bug already was forwarded, show the upstream bug in the
	    browser
	
	* src/lib/ui/gtk/dlg_upstream.py (__init__): Adapted to the new
	  upstream code

2007-07-27  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/win_main.glade,
	  src/lib/ui/gtk/bug_view.py (*_toggle): Add a view menu to allow
	  selection of the visible columns on the bug treeview.

2007-07-26  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_view.py (__init__): Add a column for each bug
	  information available
	
	* src/lib/ui/gtk/bug_store.py (sort_status),
	  src/lib/ui/gtk/bug_view.py (__init__): Add function to sort by bug
	  status

2007-07-24  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/config/config.py: Add methods to set and get
	  the BTS access method
	
	* src/lib/ui/gtk/data/dlg_config.glade,
	  src/lib/ui/gtk/dlg_config.py: Allow configuration of
	  the BTS access method through the GTK ui.
	
	* src/lib/config/config.py (get_html_address): s/soap/html

	* src/lib/ui/gtk/win_main.py (query): Honor the bts access
	  method chosen by the user's configuration

2007-07-23  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/dlg_config.glade,
	  src/lib/ui/gtk/dlg_config.py: Add options to
	  configure BTS options on the interface

2007-07-22  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_store.py: 
	  + Add the status field
	  + Add the usertags field
	
	* src/lib/actions.py (bts_init): Initializes a debbugs object
	  according to bug-triage configurations
	
	* src/lib/win_main.py (__init__): Use actions.bts_init

	* src/lib/config/actions.py,
	  src/lib/config/config.py: Move soap configuration logic to Config
	
	* src/lib/config/actions.py,
	  src/lib/config/config.py: Move html configuration logic to Config

2007-07-21  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/win_main.glade,
	  src/lib/ui/gtk/bug_view.py: Add upstream button to toolbar
	
	* src/lib/ui/gtk/bug_view.py (__init__): 
	  + Use only one renderer
	  + Set the sorting functions of each TreeViewColumn
	
	* src/lib/ui/gtk/bug_store.py (__init__): Set the right severity
	  sorting function and use it by default

	* src/lib/ui/gtk/bug_store.py: Move the COLUMN constants to be inside
	  the bug_store class.
	
	* src/lib/ui/gtk/bug_view.py: Refer to bug_store columns through its
	  constants

2007-07-20  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_view.py (on_cursor_changed): Fix upstream
	  menu activation.

2007-07-19  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/dlg_upstream.glade: Design improvements

	* src/lib/ui/gtk/data/win_main.glade: Made the bug manipulation menu
	  itens not sensitive on the glade file

	* src/lib/ui/gtk/data/dlg_upstream.glade,
	  src/lib/ui/gtk/dlg_upstream.py (hide): Add callback function to
	  cancel button
	
	* src/lib/ui/gtk/bug_view.py (on_cursor_changed): Enable and disable
	  the upstream menu depending on the bug selection

2007-07-18  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/config/config.py 
	  + (__init__): Use an file on the same path as
	    user's packages.conf for general configurations
	  + (write): Write the current settings to the user config file
	  + (set): Override ConfigParser's set method to add the
	    section if it doesn't exists
	
	* src/lib/ui/gtk/bug_store.py (get): Handle bugs without tags
	  properly
	
	* src/lib/ui/gtk/bz_bug_store.py:
	  + Fix identation
	  + (__init__): Pass the store column types to gtk.ListStore
	    intialization method
	  + Syntax fixes
	
	* src/lib/ui/gtk/data/dlg_upstream.glade,
	  src/lib/ui/gtk/dlg_usptream.py: New dialog to show
	  upstream bugs
	
	* src/lib/ui/gtk/data/win_main.glade,
	  src/lib/ui/gtk/win_main.py: Add a upstream menu item
	  and its callback

2007-07-16  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/win_main.py: Adapted to use python-btsutils >= 0.2

2007-07-15  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/bt_exceptions.py: Added MethodNotImplemented exception

	* src/lib/ui/gtk/bz_bug_store.py: DataModel for upstream bugzilla bugs

2007-07-07  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/dlg_config.py (pkg_add): Refresh the package treeview
	  whenever a package is added.
	
	* src/lib/ui/gtk/pkg_store.py (get): Dictionarize the data

	* src/lib/ui/gtk/data/dlg_config.glade,
	  src/lib/ui/gtk/dlg_config.py (pkg_edit): Callback function for the
	  package edit button
	
	* src/lib/config/btstype.py: Keep bts type constants in one place
	  only.
	
	* src/lib/config/packages.py,
	  src/lib/ui/gtk/dlg_package.py,
	  src/lib/ui/gtk/dlg_config.py: Use the bts type constants from
	  btstype.py
	
	* src/lib/ui/gtk/pkg_store.py: Use the _str variants of package's 
	  get_type and set_type methods

2007-07-06  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/bt_exceptions.py (InvalidBTSError): Exception class to
	  invalid BTS types
	
	* src/lib/ui/gtk/data/dlg_package.glade: Remove "Test" from bts
	  BTS type list...
	
	* src/lib/ui/gtk/dlg_package.py: Add get and set functions

	* src/lib/ui/gtk/data/dlg_config.glade,
	  src/lib/ui/gtk/dlg_config.py (pkg_add): Callback function for
	  the package add button

2007-07-05  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/dlg_package.glade: Dialog to fill package and
	  upstream BTS information

	* src/lib/ui/gtk/dlg_package.py: Class to handle the dlg_package
	  dialog
	  + (init): Dialog initialization
	  + (btstype_changed): Callback to change of the BTS type
	  + (run, hide): Convenience functions

2007-07-01  Gustavo R. Montesino <grmontesino@gmail.com>

	* Rename the exceptions module to bt_exceptions, as there is already
	  a buildin exceptions module.

	* src/lib/ui/gtk/data/dlg_config.glade: Request a nicer size for
	  the package treeview.

	* src/lib/ui/gtk/pkg_store.py (get): Returns the Package object
	  of the row pointed by a treeiter
	
	* src/lib/ui/gtk/pkg_view.py
	  + (load): split the package list loading to its own function
	  + (get_selection): Return a list of Package objects with the
	    selected packages
	
	* src/lib/ui/gtk/msg_exception.py: Handle exceptions with a gtk gui
	  + (msg_exception): Shows a gtk MessageDialog with a exception
	    description
	  + (errorhandler): Function decorator to trap all unhandled
	    exceptions with msg_exception
	
	* src/lib/config/packages.py (remove): Handle invalid packages.

	* src/lib/ui/gtk/dlg_config.py (pkg_del): Handler to delete a
	  package
	
	* Decorate all functions with msg_exception's error handler

2007-06-30  Gustavo R. Montesino <grmontesino@gmail.com>

	* Rename everything on the configurations to upstream to package.

	* src/lib/config/packages.py (get_all): Returns a list with all
	  package data available
	
	* src/lib/ui/gtk/pkg_store.py: Data model for package data

	* src/lib/ui/gtk/pkg_view.py: Package treeview stuff

	* src/lib/ui/gtk/dlg_config.py: Fill the packages tree view when
	  shown.

2007-06-29  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/win_main.py (quit): Properly hide the main window
	  if it get closed when child proccesses are still alive
	
	* src/lib/actions.py (show): Fork a child proccess to invoke the
	  browser on.
	
	* src/lib/ui/gtk/data/win_main.glade: Put the focus on the query entry
	  by default
	
	* src/lib/ui/gtk/data/dlg_qbuilder.glade,
	  src/lib/uigt/gtk/dlg_qbuilder.py: Put the focus on the entry and
	  query by maintainer as default
	
	* src/lib/ui/gtk/dlg_qbuilder.py: Define constants for the main field
	  values

2007-06-28  Gustavo R. Montesino <grmontesino@gmail.com>

	* Split bug-triage.glade; put each window to its own glade file

	* src/lib/config: Create a new config package to hold all
	  configuration stuff
	  + src/lib/config.py: Moved to src/lib/config/general.py
	  + setup.py: distribute and install the config package
	
	* src/lib/config/upstreams.py: Links debian packages and upstream
	  BTSes
	  + src/lib/config/data/packages.conf: Default package-to-bts mappings
	
	* src/lib/ui/gtk/data/dlg_config.glade, src/lib/ui/gtk/dlg_config.py:
	  Create a configuration dialog
	
	* src/lib/ui/gtk/data/win_main.glade, src/lib/ui/gtk/win_main.py:
	  Add a preferences menu item to show the configuration dialog

2007-06-24  Gustavo R. Montesino <grmontesino@gmail.com>

	* Update distutils stuff to install the glade file and
	  the action module.
	
	* bug-triage.desktop: Add desktop (menu) file.

2007-06-23  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/bug_store.py:
	  + Add constants to reference columns by name instead of by number
	  + Add the bug fields which weren't represented on the model
	  + (bug_to_list): Converts a bug object to a list
	  + (get): Return the bug object pointer by a treeiter.

	* src/lib/ui/gtk/data/bug-triage.glade: Add toolbar button and menu
	  item to show the selected bug
	
	* src/lib/ui/gtk/win_main.py, src/lib/ui/gtk/bug_view.py:
	  Enable and disable the show bug buttons depending on the
	  selection (or lack of)
	
	* src/lib/ui/gtk/bug_view.py (get_selection): Returns a list
	  with the selected bugs.
	
	* src/lib/actions.py: Actions with Debian bugs
	  + (show): Opens a bug in the preferred webbrowser
	
	* src/lib/ui/gtk/win_main.py (show): Callback for the
	  show button clicked signal.

2007-06-21  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/win_main.py (query_new): execute
	  the query when a new query is specified.

2007-06-20  Gustavo R. Montesino <grmontesino@gmail.com>

	* Connect the signals from the menu and the main window's 
	  delete-event.
	
	* Rename BugStore.py to bug_store.py and its class to follow the
	  current naming scheme.
	
	* src/lib/ui/gtk/bug_store.py: retab and fix mention of the old
	  debbugs module to btsutils in a docstring.
	
	* src/lib/ui/gtk/bug_view.py: Bug TreeView initialization and
	  methods.
	  + (set_model): Sets the bug treeview data model
	  + (get_model): Returns the bug treeview data model
	
	* src/lib/win_main.py (query): Callback for query button click
	
	* src/lib/ui/gtk/data/bug-triage.glade: Draw a line around the
	  bug treeview and make it request a larger size.
	
	* Change the name from bugtaf to bug-triage in all copyright
	  headers

2007-06-17  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/data/bug-triage.glade: "Port" the ui to glade

	* src/lib/ui/gtk/dlg_qbuilder.py: Query builder dialog methods
	  + (get): return the current query of the dialog
	  + (run): show the dialog, returns the query string or None if
	    canceled
	
	* src/lib/ui/gtk/win_main.py: Main window methods
	  + (quit): closes the application
	  + (query_new): shows the query builder
	
	* src/lib/ui/gtk/core.py: Glade core module
	  + (run): initializes the glade interface and shows the main win

	* src/bug-triage: Use the new glade interface

2007-06-11  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/lib/ui/gtk/QueryBuilder.py: fix exception import path.

2007-06-10  Gustavo R. Montesino <grmontesino@gmail.com>

	* Add MANIFEST.in to source tarballs.
	* Add a toolbar to the main window.
	* Change spacing to fix the strange look of the menu and toolbar
	* src/lib/ui/gtk/MainWindow.py: 
	  + Turn MainWindow in a proper child of gtk.Window
	  + Add the accelgroup of the menu to the main window
	  + Change the access key of the Query edit box label to not conflict
	    with the menu
	* src/lib/ui/gtk/BugStore.py:
	  + Default to sorting bugs by severity.

2007-06-07  Gustavo R. Montesino <grmontesino@gmail.com>

	* Make the query button the default widget on the main window

	* Add a menu to the main window

2007-06-03  Gustavo R. Montesino <grmontesino@gmail.com>

	* split python-btsutils to its own codebase.

	* Move all modules to private namespace.

2007-06-02  Gustavo R. Montesino <grmontesino@gmail.com>
	
	* src/bugtaf/gtk/:
	  + BugStore.py: Add BugStore class.
	  + MainWindow.py: Add the bug TreeView.
	
	* src/bugtaf/debbugs/debbugs.py: Backend-agnostic debbugs interaction
	
	* src/bugtaf/debbugs/: Refactor to get more python-esque
	  + soap.py, html.py: Put the functions in the module body, 
	    remove the classes Debbugs and DebbugsHTML
	
	* src/bugtaf/debbugs/html.py: For now, get only pending bugs

	* src/bugtaf/debbugs/html.py (query): Fix querying by bug number to
	  return a list.

2007-05-31  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/bugtaf/debbugs/: 
	  + bug.py: Add Bug class.
	  + html.py, soap.py: Use the new bug class on getBug Methods.
	  + html.py: Add query method and a note/comment about reportbug-ng

	* src/bugtaf/gtk/:
	  + QueryBuilder.py: Added getQuery() Method
	  + MainWindow.py: Use QueryBuilder's getQuery() when the dialog
	    run sucessfully.
	
	* setup.py: Add bugtaf.debbugs module.

2007-05-30  Gustavo R. Montesino <grmontesino@gmail.com>
	
	* src/bugtaf/exceptions.py: Add InvalidQueryError Exception class.
	* README: Document query string syntax
	* src/bugtaf/debbugs/html.py (queryToURL): Generates an Debbugs url
	  from a query string.

2007-05-27  Gustavo R. Montesino <grmontesino@gmail.com>
	
	* src/bugtaf/config.py: Handles user configuration file
	* src/bugtaf/debbugs:
	  + soap.py: Interaction with debbugs through SOAP
	  + html.py: Interaction with debbugs through HTML

2007-05-12  Gustavo R. Montesino <grmontesino@gmail.com>
	
	* src/bugtaf/gtk/QueryBuilder.py:
	  + Created the query builder dialog.
	  + Added a list and a combo to select the main query condition.
	
	* src/bugtaf/gtk/MainWindow.py: Open the query builder when its button
	  is clicked.
	
	* README: Query builder requires pyGTK >= 2.4 (ComboBox).

2007-05-11  Gustavo R. Montesino <grmontesino@gmail.com>

	* Made the code hierarchy more friendly to other UI's
	  + src/bugtaf-gtk: Moved the bugtaf script to bugtaf-gtk
	  + src/gtk/: Renamed the GTK UI package from ui to gtk

	* src/bugtaf: Created a bugtaf package to keep our packages

	* src/bugtaf/gtk/: Moved the gtk package to a subpackage of bugtaf

	* setup.py, MANIFEST.in: Added a Distutils' setup script

	* COPYING, MANIFEST.in, setup.py: Added a copy of GPLv2.

	* README: Added System Requiriments, Installing and Contact
	  information.


2007-05-10  Gustavo R. Montesino <grmontesino@gmail.com>

	* src/bugtaf: Add the main script

	* src/ui/MainWindow.py: Added main window module
