2008-02-01  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: gui-compare is generated by autotools

2008-01-16  Chris Toshok <toshok@ximian.com> 

	* configure: pointless update from generating makefiles...
	* Metadata.cs: assemblies are attribute containers.
	* MasterMetadata.cs: create the list of assembly attributes.
	* CecilMetadata.cs: get the list of assembly attributes.
	* CompareContext.cs: compare the attributes on reference/target assemblies.
	* Masterinfo.cs: make attributes on assemblies public.

2008-01-15  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: add a history entry for the current CompareDefinition, if
	  the counts are different than the previous one.
	* InfoManager.cs: when doing a preset compare, set the title to be the
	  assemblyname.
	* MasterMetadata.cs: Skip over MS's CodeAnalysis attributes.
	* CecilMetadata.cs: skip over MS's CodeAnalysis attributes.
	* CompareContext.cs: add Constructors as missing
	* Config.cs: Add CompareHistory class, which is just a timestamped class
	  containing all the counts from a comparison run.  Add an array of them
	  to CompareDefinition.
	
	  
	
	  Also, fix AddRecent to look for an existing entry in the Recent array
	  (by using the new CompareDefinition.GetKey), moving it to the top.  This
	  pretty much removes the need for MoveToTop, as it could be folded in
	  here, but leave it for now.

2008-01-14  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: hide the progress bar when we're done, and implement the
	  OnShowNotImplementedToggled method
	* InfoManager.cs: fix the remote file downloading.  can't believe the bugs
	  this thing has had...
	* gtk-gui/MainWindow.cs: add Show Notimplemented menu item and signal
	  handler
	* gtk-gui/gui.stetic: add ShowNotImplemented action
	* Config.cs: add ShowNotImplemented

2008-01-14  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: add the niex counts to the counts column
	* gui-compare.mdp: add the mn.png resource
	* cm/mn.png: steal jpobst's NIEX icon
	* CompareContext.cs: set throws_niex instead of adding an error.
	* gtk-gui/MainWindow.cs: add the ShowNotImplemented action
	* Comparison.cs: count NIEX's

2008-01-14  Chris Toshok <toshok@ximian.com> 

	* Metadata.cs: add GetLiteralValue() abstract method to CompField.
	* InfoManager.cs: wex might be null here since we're in the else branch, so
	  don't look in it.
	* MasterMetadata.cs: implement MasterField.GetLiteralField.
	* CecilMetadata.cs: Implement CecilField.GetLiteralValue.
	* CompareContext.cs: check literal field values (fixes enum comparing)

2008-01-13  Chris Toshok <toshok@ximian.com> 

	* InfoManager.cs: fix this obvious brokenness.

2008-01-13  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: only include the generic parameters of the method in the
	  beautified version of the method name.

2008-01-11  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: Fix explicit interface definitions of events.

2008-01-11  Chris Toshok <toshok@ximian.com> 

	* InfoManager.cs: add support for IfModifiedSince to the download logic, so
	  we'll redownload a masterinfo .tar.gz file automatically if there's a
	  newer one on the server.

2008-01-11  Chris Toshok <toshok@ximian.com> 

	* MasterMetadata.cs: deal with a null masterinfo.
	* Masterinfo.cs: deal with empty masterinfo files (with no assemblies)
	  correctly.

2008-01-03  Miguel de Icaza  <miguel@novell.com>

	* InfoManager.cs: For people that are abusing XDG_DATA_HOME,
	ignore their setting.

2008-01-09  Chris Toshok <toshok@ximian.com> 

	* Metadata.cs: add abstract bool ThrowsNotImplementedException method to
	  CompMethod.
	* MasterMetadata.cs: always return false from ThrowsNotImplementedException,
	  since we have no idea (but can assume it doesn't, since most of our
	  masterinfos are generated from MS source).
	* CecilMetadata.cs: Copy MoMA's implementation of
	  ThrowsNotImplementedException
	* CompareContext.cs: for two methods, check to see if the target throws
	  NotImplementedException when the reference doesn't.

2008-01-03  Miguel de Icaza <miguel@novell.com> 

	* CecilMetadata.cs: Ignore internal attributes applies to public classes;  
	  Fixes the warnings in System.Drawing

2008-01-03  Miguel de Icaza <miguel@novell.com> 

	* MainWindow.cs: SetComparedefinition allow setting target/reference on a
	  single call fro mthe CompareDefinition
	* CustomCompare.cs: New dialog box for custom compares.
	* InfoManager.cs: Refactor code, move body to MainWindow
	* ProviderSelector.cs: Spice this up.
	* gtk-gui/gui.stetic: Widget to pick XML files or assemblies.
	* Config.cs: Add new ToString override that formats the comparison for
	  consistent titles

2008-01-02  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: move the "summary.Visible = false" to StartCompare() so
	  that regardless of how we start a new run, the summary goes away.
	* CompareContext.cs: rename master -> reference and assembly -> target.

2008-01-02  Chris Toshok <toshok@ximian.com> 

	* Metadata.cs: make the class, interface, delegate, and enum classes
	  implement ICompHasBaseType, and add DisplayName to CompNamed, which
	  we'll use instead of Name to populate the tree.
	* CecilMetadata.cs: Add type prettification to set the DisplayName on the
	  comparison nodes (show the actual operator, type name replacement for
	  system types, etc).  Also, implement the GetBaseType stuff.
	* CompareContext.cs: compare base types.  use ComparisonNode.AddError
	* MasterMetadata.cs: implement all the GetBaseType methods.
	* Masterinfo.cs: remove tons of stuff from corcompare that we no longer
	  need.
	* Comparison.cs: add ComparisonNode.AddError which sets the status and adds
	  the message.

2008-01-02  Miguel de Icaza <miguel@novell.com> 

	* MainWindow.cs: Load defauls from the configuration file
	* InfoManager.cs: Track recently used comparisons
	* Config.cs: Add new API to manage our recently used list

2008-01-02  Miguel de Icaza <miguel@novell.com> 

	

2008-01-02  Miguel de Icaza <miguel@novell.com> 

	* CompareContext.cs: Provide some hints, not a great way of doing it.

2008-01-02  Miguel de Icaza <miguel@novell.com> 

	

2008-01-02  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: hide the summary when we start refreshing
	* CecilMetadata.cs: add generic parameters to the method name, and remove
	  all those Replace('/','+')'s from everywhere and stick them in
	  CecilUtils.FormatTypeLikeCorCompare.
	* gtk-gui/MainWindow.cs: add a separator to the file menu

2008-01-01  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: Remove the checks of the Show* actions in our populate
	  code.  limitting display is done via the filter logic, not when
	  populating the tree.  Also, fill in and show/hide the summary label when
	  we need to.
	* CecilMetadata.cs: Fix the interface comparisons - walk the hierarchy,
	  collecting a list.  just for kicks, due it in the least efficient way
	  possible.  also find the TODO attributes and remember their messages. 
	  Make sure to grab the list of attributes in the appropriate constructor,
	  instead of in GetAttributes, because if we do it there, it's already too
	  late to register the counts with the proper comparison nodes.  Also,
	  only check certain field/property/method attributes.  mask them to what
	  corcompare seems to generate.
	* Metadata.cs: add a todo list that we can fill in via the CecilMetadata
	  code.  also, add abstract GetMemberAccess method.
	* CompareContext.cs: Make sure to GetComparisonNode from the assembly_list
	  if we can help it, since that node will contain all the MonoTODO's. 
	  Also, compare constructors.
	* MasterMetadata.cs: fill in our attributes and method/field/property
	  access.
	* AssemblyResolver.cs: steal this code from the linker
	* gtk-gui/gui.stetic: add in a summary label that we auto show/hide, and get
	  rid of that toolbar.  move Refresh under the File menu.
	* Masterinfo.cs: make the various ConvertToString methods public instead of
	  protected.
	* Comparison.cs: keep track of a list of error messages and todo's, and
	  propagate the todo count properly.

2007-12-28  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: change the line foreground based on the node's status. 
	  also, add Todo stats.
	* CecilMetadata.cs: lot of changes.  copy some code from the linker, and use
	  it to walk up the hierarchy adding interfaces so we match corcompare. 
	  Don't ignore the "op_" methods.  Also, make sure we flag System.Delegate
	  and System.MulticastDelegate as delegates.  Do a similar fudging for
	  System.Enum.  Also, if we initialize a CecilInterface from a
	  TypeReference, don't include the attributes on it.  Lastly, include the
	  return type of methods in their name so we can correctly sort them.
	* Metadata.cs: add GetMemberType() to CompMember.
	* CompareContext.cs: start listing errors.  if the types of the members
	  differ, it's an error.  also, add missing attributes in AddMissing.
	* MasterMetadata.cs: lot of changes. add return types to MasterMethod, and
	  add that to the name.  handle nested types, and duplicate the
	  CecilMetadata PopulateTypeLists.
	* gtk-gui/MainWindow.cs, gtk-gui/gui.stetic: add "Show Todo" action
	* Masterinfo.cs: make the field stuff public.
	* Comparison.cs: tally up the errors properly.

2007-12-28  Miguel de Icaza <miguel@novell.com> 

	* CompareWindow.cs: Add the 3.5 assemblies to the list;   With 3.5 replacing
	  2.0 assemblies to effectively be an SP1, should we deprecate 2.0?

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: rework the "Show {present, missing, extra, etc}" stuff
	  using a gtk treemodelfilter.  It's slower than recreating the tree, but
	  it maintains expanded state and selection across changes, which is nice.
	* CompareContext.cs: add more missing elements to the tree, and also keep
	  track of the counts from the reference assembly so we can give *some*
	  indication of progress,

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* cm/*.gif: make all these transparent as a
	  first pass at making them not look like ass.

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: rename Utils to CecilUtils. Also, fix the broken logic
	  that was resulting in private properties being included in the list of
	  properties (and therefore showing up as extras).
	* MasterMetadata.cs: abstract out a lot of the list creation stuff into a
	  Utils class, like we do in CecilMetadata.cs  Call it MasterUtils.

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: add a ctor for CecilMetadata that takes a TypeDefinition
	  (along with one that takes a TypeReference).  in the type_def case, we
	  populate the member lists just as we would for a class, so we can check
	  them.  currently they all show up as extra, since the MasterMetadata
	  doesn't populate its interfaces properly yet.

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: factor out all the duplicate attribute list handling
	  code.  also, make it deal with MonoTODO attributes.
	* CompareContext.cs: fix progress message

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: add handling for the refresh button.  also, remove the
	  counts of various things if the View menu has them disabled.
	* gtk-gui/MainWindow.cs, gtk-gui/gui.stetic: add a refresh button to re-run
	  the current comparison.  this is a stopgap for the planned
	  inotify/fam/whatever based code that will notice when the assembly
	  changes and will automatically refresh.

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* MainWindow.cs: repopulate the model if any of the View actions change. 
	  also, take into account the view actions when populating the tree model.
	* gtk-gui/MainWindow.cs, gtk-gui/gui.stetic: add a View menu for showing
	  errors/missing/extra/present items

2007-12-27  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: skip special named fields, and start dealing with
	  attributes.
	* Metadata.cs: kinda gross, but make CompProperty subclass from
	  ICompMemberContainer so that we can reuse all the code to check if the
	  methods (set_*/get_*) match.  Also, add CompAttribute
	* CompareContext.cs: duplicate some code to deal with attribute comparisons
	  (need to factor this out somehow).
	* MasterMetadata.cs: start dealing with attributes
	* Masterinfo.cs: make more stuff public.

2007-12-26  Chris Toshok <toshok@ximian.com> 

	* CecilMetadata.cs: populate the property/event lists, and add
	  CecilProperty/CecilEvent.  return the enum list properly.
	* MasterMetadata.cs: more stuff added
	* Masterinfo.cs: make more things public

2007-12-26  Miguel de Icaza <miguel@novell.com>

	* CecilMetadata.cs: Do not crash on empty type_def.BaseType (happens 
	for System.Object).
	
	(CecilAssembly): skip over nested types, and ignore NotPublic types 
	as well.
	
	(PopulateTypeLists): Do not insert NestedPrivate and NestedAssembly as
	public APIs either.

2007-12-18  Miguel de Icaza <miguel@novell.com>

	* InfoManager.cs: 

2007-12-18  Miguel de Icaza <miguel@novell.com> 

	* MainWindow.cs: New file, from MonoDevelop, copy mot of the code from
	  CompareWindow here.
	* Main.cs: new file, generated by MonoDevelop
	* InfoManager.cs: New file, this tracks and downloads new masterinfos if
	  required on demand.
	* CompareContext.cs: Now the CompareContext uses two delegates of type
	  LoadCompAssembly to do the comparison. 

2007-12-07  Chris Toshok  <toshok@ximian.com>

	* Metadata.cs (CompClass): add GetNestedClass() method.

	* Masterinfo.cs (XMLClass): make nested public.

	* CompareWindow.cs (PerformCompare): abstract out what was in the
	body of SetAssemblyPath, so we can restart a comparison whenever
	we want -- when a new masterinfo is available, when the .dll has
	changed, etc.

	* CompareContext.cs (CompareThread): comment out call to
	DumpComparison.
	(CompareClassLists): abstract out the body of CompareClasses so it
	can be reused for nested classes as well as toplevel.  Call
	CompareClassLists recursively to handle nested classes.  Also, fix
	an &&/|| thinko.
	(CompareTypes): just call CompareClassLists.
	(CompareMethods): start implementation.
	(AddExtraMethod, AddMissingMethod): implement.

	* MasterMetadata.cs (MasterClass.GetMethods,
	MasterClass.GetConstructors): don't throw NIE.  instead return an
	empty list.  this causes all methods to show up as extra, but it
	keeps us from crashing.
	(MasterClass.GetNestedClasses): implement.

	* CecilMetadata.cs (CecilClass.GetConstructors): return empty
	list, don't throw NIE.
	(CecilClass.GetNestedClasses): implement.
