/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1239 by jonathan, Wed Jun 18 15:41:11 2003 UTC revision 1372 by bh, Fri Jul 4 18:19:33 2003 UTC
# Line 1  Line 1 
1    2003-07-04  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
4            function for table_to_dbf
5            (table_to_dbf): Deal with names longer than the 10 character limit
6    
7            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
8            doc-string
9            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
10            long column names
11    
12    2003-07-03  Bernhard Herzog  <[email protected]>
13    
14            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
15    
16    2003-07-03  Bernhard Herzog  <[email protected]>
17    
18            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
19            for the Thuban manual and README with some basic information about
20            the manual
21    
22    2003-07-03  Bernhard Herzog  <[email protected]>
23    
24            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
25            Update doc-string
26            (TransientJoinedTable.create): Do not modify the column objects of
27            the input tables in place and copy all columns of the input tables
28            into the joined table after all.
29    
30            * test/test_transientdb.py
31            (TestTransientTable.test_transient_joined_table_same_column_name):
32            Update to reflect the new behavior
33            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
34            Update to reflect the new behavior
35            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
36            New test case for a bug which modified the column objects in place
37    
38    2003-07-02  Jonathan Coles   <[email protected]>
39    
40            * Thuban/Model/classgen.py (generate_singletons,
41            generate_uniform_distribution, generate_quantiles,
42            GenQuantiles0): Make sure maxValue isn't less than
43            one, otherwise we could divide by zero.
44    
45            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
46            ClassGenTest.doClassSingleTest): Call doBoundsTest to
47            check the end classification groups against the
48            proper property values.
49            (ClassGenTest.doBoundsTest): New. Checks the first and
50            last classification groups to make sure their properties
51            are the correct upper and lower bounds for a color ramp.
52    
53    2003-07-02  Jonathan Coles   <[email protected]>
54    
55            * Thuban/Model/classgen.py (generate_singletons,
56            generate_uniform_distribution, generate_quantiles,
57            GenQuantiles0): The denominator was one to high when
58            calculating the index for the ramp causing the index
59            to never to reach one.
60    
61    2003-07-02  Jonathan Coles   <[email protected]>
62    
63            Changed the singature of ClassGroupRange.__init__ and
64            ClassGroupRange.SetRange() so that the min/max values are
65            passed as a tuple. This makes a better calling scheme for
66            when a Range object is passed instead.
67    
68            * Thuban/Model/classgen.py: Fixed parameters to
69            ClassGroupRange constructor.
70    
71            * Thuban/Model/classification.py (ClassGroupRange.__init__):
72            Consolidate the min/max parameters into a single _range which
73            can either be a tuple or a Range object.
74            (ClassGroupRange.SetRange): Consolidate the min/max parameters
75            into a single _range which can either be a tuple or a Range object.
76    
77            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
78            call to ClassGroupRange constructor to use a tuple.
79    
80            * Thuban/Model/layer.py (Layer.SetClassification): Switch
81            the classification instance variable to the new class
82            before calling _set_layer otherwise subscribers to a
83            LAYER_CHANGED event will not see any difference.
84    
85            * test/test_classification.py: Fix tests of ClassGroupRange
86            so that they use the new signature.
87    
88            * test/test_load.py: Fix use of ClassGroupRange so that it
89            uses the new signature.
90    
91            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
92            uses the new signature.
93    
94            * test/test_save.py: Fix use of ClassGroupRange so that it
95            uses the new signature.
96    
97    
98    2003-07-01  Jonathan Coles   <[email protected]>
99    
100            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
101            Import used objects/class from color.
102            (generate_singletons): We don't
103            need the numGroups parameter anymore because we are using
104            the new ramps with GetProperties().
105            (generate_uniform_distribution): Use new ramp method
106            GetProperties().
107            (generate_quantiles, GenQuantiles0): Use new ramp method
108            GetProperties().
109            (CustomRamp.SetNumGroups): Removed. The ramps now map
110            a value from 0 to 1 to class properties so the number
111            of groups is not needed ahead of time.
112            (CustomRamp.next): Removed. CustomRamp does not support
113            interation anymore.
114            (CustomRamp.GetProperties): Returns a ClassGroupProperties
115            object based on the index value from 0 to 1 that is
116            passed to it.
117            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
118            Made into instances of Monochromatic class instread of
119            deriving from it.
120            (HotToCold.SetNumGroups): Removed. See CustomRamp.
121            (HotToCold.next): Removed. See CustomRamp.
122    
123            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
124            (Classification.SetField, Classification.SetFieldType):
125            Replaced with SetFieldInfo.
126            (Classification.SetFieldInfo): New. Does a better job of
127            what SetField and SetFieldType used to do by combining
128            their function since they should really always be done
129            at the same time.
130            (Classification.SetLayer): Renamed to _set_layer.
131            (Classification._set_layer): Should only be called from
132            Layer's SetClassification. This does not cause a recursive
133            call as SetLayer did because we know that Layer knows about
134            the classification.
135    
136            * Thuban/Model/color.py: Fixes RTbug #1971.
137            (_Transparent): Renamed from Transparent so it doesn't
138            conflict with the module variable.
139            (Transparent, Black): Renamed from Color.Transparent,
140            Color.Black so they are not class variables.
141    
142            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
143            (Layer.Destroy): We don't need to call SetClassification
144            anymore to clear out the back reference in the classifcation
145            to the layer. It's better to set it to None using _set_layer,
146            and we won't be creating another clas object too.
147            (Layer.SetClassification): Classification._set_layer is not
148            recursive so remove all the locking variables. Also clean
149            up the code so that it remains unchanged if something fails.
150    
151            * Thuban/Model/load.py: Fixes RTbug #1971.
152            (SessionLoader.start_classification): Call
153            Classification.SetFieldInfo().
154    
155            * Thuban/Model/save.py: Removed import of Color which wasn't
156            being used.
157    
158            * Thuban/UI/classgen.py: Fixes RTbug #1972.
159            (ClassGenDialog.__init__): Color ramps are now instances
160            already so we don't need to create any new objects.
161            (ClassGenDialog.OnOK): Check for numGroups is no longer
162            necessary because we never use it.
163    
164            * Thuban/UI/classifier.py: Fixes RTbug #1971.
165            (Classifier.__BuildClassification, Classifier.__SetGridTable):
166            Call Classification.SetFieldInfo() instead of SetFieldType.
167    
168            * Thuban/UI/renderer.py: Fixes RTbug #1971.
169    
170            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
171            (MapCanvas.__init__): Subscribe to the idle time event. Set
172            background color to white.
173            (MapCanvas.OnPaint): Set a flag indicating that we should
174            render the map during idle time. If we already have a bitmap
175            just draw it now.
176            (MapCanvas.OnIdle): New. Render the map only during idle time.
177            This also fixes a problem with the busy cursor under gtk.
178    
179            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
180            Fix calls to generate_singletons because the signature changed.
181    
182            * test/test_classification.py: Fix color references and
183            change calls to Classification.[SetField|SetFieldType] to
184            SetFieldInfo.
185    
186            * test/test_load.py: Fix color references.
187    
188            * test/test_load_0_2.py: Fix color references.
189    
190            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
191            Change calls to Classification.[SetField|SetFieldType] to
192            SetFieldInfo.
193    
194    2003-07-01  Frank Koormann   <[email protected]>
195    
196            MERGE from the greater-ms3 branch.
197    
198            * test/test_transientdb.py
199            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
200            New. Test join of two tables with partly equal column names.
201    
202            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
203            If duplicates in left and right tables column names are found,
204            append '_' (underscores) to the name until it is unique.
205            Create always new internal names for the resulting table and reference
206            columns in the join statement with <table>.<column>
207    
208    2003-07-01  Bernhard Herzog  <[email protected]>
209    
210            * test/test_transientdb.py
211            (TestTransientTable.test_transient_joined_table_same_column_name):
212            New. Test whether joining on columns with the same names in both
213            tables works.
214            
215            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
216            sure to use the right internal names even when joining on field
217            with the same names in both tables. Also, detect duplicate names
218            in the joined table correctly.
219    
220    2003-07-01  Frank Koormann   <[email protected]>
221    
222            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
223            Reverse List of layers to render in same order as in desktop legend.
224    
225    2003-06-30  Jonathan Coles   <[email protected]>
226    
227            * Thuban/version.py (make_tuple): Takes a version string
228            and splits it into a tuple of at most three integers.
229            Used make_tuple() to make tuple versions of the version
230            numbers.
231    
232            * Thuban/UI/about.py: Add Thuban email addresses.
233    
234    2003-06-30  Jonathan Coles   <[email protected]>
235    
236            * Thuban/version.py: SQLite/PySQLite version dependencies
237            were too high.
238    
239    2003-06-30  Jonathan Coles   <[email protected]>
240    
241            * Thuban/version.py: Update version to 0.8.1
242            
243            * MANIFEST.in: Added Projections so that default.proj is
244            included.
245    
246    2003-06-26  Jonathan Coles   <[email protected]>
247    
248            New About box with lots more information including library
249            versions and credits. More/better version checking before
250            Thuban starts.
251    
252            * Thuban/UI/about.py: New. New About box that displays
253            library version information and credits.
254    
255            * Thuban/version.py: Added new 'versions' dictionary which
256            contains the verions of various libraries which are checked
257            when the module loads.
258            (verify_versions): Check all version numbers and returns
259            a list of errors.
260    
261            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
262            Reset the status of the buttons as the situation warrants,
263            but in a better more reliable way by not relying on the
264            current status to determine what needs to change.
265    
266            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
267            (verify_versions): Remove most of the code since it is
268            now in Thuban.version.verify_versions.o
269    
270            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
271            About box in Thuban.UI.about.
272    
273            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
274            Returns the version of gdal library being used as a string.
275    
276            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
277            Removed.
278            (get_proj_version): Return the version of PROJ that the file
279            was compiled with.
280            (get_gtk_version): Return th version of GTK that the file
281            was compiled with.
282    
283    2003-06-25  Jonathan Coles   <[email protected]>
284    
285            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
286            of the SelectPropertiesDialog should be self so the window
287            appears on top.
288            (ClassGroupPropertiesCtrl.DoEdit): The parent
289            of the SelectPropertiesDialog should be self so the window
290            appears on top.
291    
292            * Thuban/UI/resource.py: Cleaned up how we determine file
293            extensions.
294            (GetImageResource): Return an wxImage from our Resources.
295    
296    2003-06-24  Jonathan Coles   <[email protected]>
297    
298            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
299            Check that a layer has a classification before trying
300            to get it. Raster layers don't have classifications.
301    
302    2003-06-23  Jonathan Coles   <[email protected]>
303            
304            * setup.py: Add Resources/XML to resource list.
305        
306    2003-06-23  Jonathan Coles   <[email protected]>
307    
308            * setup.cfg: Fix copyright dates
309        
310    2003-06-23  Jonathan Coles   <[email protected]>
311    
312            * MANIFEST.in: Update with Resources/XML
313    
314            * setup.py: Don't include Locale resources yet as we don't
315            have any and it causes problems building the distribution
316            for Windows. Update version to 0.8.0.
317    
318            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
319    
320            * Thuban/UI/mainwindow.py: Add blank line at the end because
321            file was not being read correctly building the Windows
322            distribution.
323    
324    2003-06-23  Jonathan Coles   <[email protected]>
325    
326            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
327    
328            * Thuban/version.py: Temporarily update longversion for
329            the 0.8 release so that it doesn't have the cvs revision.
330    
331    2003-06-23  Jonathan Coles   <[email protected]>
332    
333            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
334            to make sure that we don't create reentrant possibilities with
335            wxYield.
336    
337            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
338            directly to avoid the wxSafeYield() call which generates an
339            OnPaint event causing infinite recursion. Don't try to catch
340            exception anymore. This was for before there were limits on map
341            scaling.
342    
343    2003-06-23  Bernhard Herzog  <[email protected]>
344    
345            Bug fix for RT #1961:
346    
347            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
348            Register DerivedShapestores with the session
349    
350            * Thuban/Model/session.py (Session.Tables): Make sure each table
351            is only listed once.
352    
353            * test/test_load.py (TestJoinedTable.test): Add check_format call.
354            Update file contents to match the one written out.
355    
356    2003-06-20  Bernhard Herzog  <[email protected]>
357    
358            * test/xmlsupport.py (SaxEventLister.startElementNS)
359            (SaxEventLister.endElementNS): Do not include the qname. Python
360            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
361            is (presumably incorrectly) None, whereas it's a string with the
362            element name in the later versions.
363    
364            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
365            (TestEventList.test_even_list_namespace): Update tests to reflect
366            the new behaviour
367            (TestEventList.test_even_list_id_normalization): Fix doc-string
368    
369    2003-06-20  Jonathan Coles   <[email protected]>
370    
371            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
372            by deriving classes to determine if that layer supports shapes.
373            (Layer): Override HasShapes and return true.
374    
375            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
376            instead of a direct call to wx[Begin|End]CusyCursor().
377            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
378            table data.
379    
380            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
381            New. Wrappers around the wxWindows functions that allow us to
382            make additional calls such as wxYield which gives the native
383            system a chance to update the cursor correctly.
384    
385            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
386            instead of a direct call to wx[Begin|End]CusyCursor().
387    
388            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
389            instead of a direct call to wx[Begin|End]CusyCursor().
390            (MapCanvas.find_shape_at): Check if the current search layer
391            support shapes, otherwise go on to the next layer.
392    
393            * test/test_layer.py: Add tests in each type of layer for
394            HasClassification() and HasShapes()
395    
396    2003-06-20  Jonathan Coles   <[email protected]>
397    
398            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
399            turning on the busy cursor to allow the system to change the
400            cursor before we begin painting. This fixes a problem that
401            was occuring only under GTK. Fixes RTbug #1840.
402    
403    2003-06-20  Bernhard Herzog  <[email protected]>
404    
405            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
406            version.
407    
408            * Thuban/Model/save.py (sort_data_stores): New. Make topological
409            sort of the data sources so they can be written with sources that
410            data sources that depend on other data sources come after the
411            sources they depend on.
412            (SessionSaver.__init__): Add idmap instance variable to map from
413            objects to the ids used in the file.
414            (SessionSaver.get_id, SessionSaver.define_id)
415            (SessionSaver.has_id): New. Methods to manage the idmap
416            (SessionSaver.write): Use thuban-0.8.dtd
417            (SessionSaver.write_session): Add a namespace on the session and
418            write out the data sources before the maps.
419            (SessionSaver.write_data_containers): New. Write the data
420            containers.
421            (SessionSaver.write_layer): Layer elements now refer to a
422            shapestore and don't contain filenames anymore.
423    
424            * Thuban/Model/load.py (LoadError): Exception class to raise when
425            errors in the files are discovered
426            (SessionLoader.__init__): Define dispatchers for elements with a
427            thuban-0.8 namespace too.
428            (SessionLoader.check_attrs): New helper method to check and
429            convert attributes
430            (AttrDesc): New. Helper class for SessionLoader.check_attrs
431            (SessionLoader.start_fileshapesource)
432            (SessionLoader.start_derivedshapesource)
433            (SessionLoader.start_filetable, SessionLoader.start_jointable):
434            Handlers for the new elements in the new fileformat
435            (SessionLoader.start_layer): Handle the shapestore attribute in
436            addition to filename.
437            (SessionLoader.start_table, SessionLoader.end_table): Removed.
438            They were never used in the old formats and aren't needed for the
439            new.
440    
441            * Thuban/Model/session.py (Session.DataContainers): New method to
442            return all "data containers", i.e. shapestores and tables
443    
444            * test/xmlsupport.py (SaxEventLister.__init__)
445            (SaxEventLister.startElementNS, sax_eventlist): Add support to
446            normalize IDs.
447    
448            * test/test_xmlsupport.py
449            (TestEventList.test_even_list_id_normalization): New test case for
450            id normalization
451    
452            * test/test_load.py (LoadSessionTest.check_format): Use ID
453            normalization
454            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
455            class atrributes used for ID normalization
456            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
457            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
458            file format
459            (TestJoinedTable): New test for loading sessions with joined
460            tables.
461            (TestLoadError): New. Test whether missing required attributes
462            cause a LoadError.
463    
464            * test/test_save.py (SaveSessionTest.thubanids)
465            (SaveSessionTest.thubanidrefs): New class attributes for ID
466            normalization in .thuban files.
467            (SaveSessionTest.compare_xml): Use id-normalization.
468            (SaveSessionTest.testEmptySession)
469            (SaveSessionTest.testLayerProjection)
470            (SaveSessionTest.testRasterLayer)
471            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
472            (SaveSessionTest.testLayerProjection): The filename used was the
473            same as for testSingleLayer. Use a different one.
474            (SaveSessionTest.test_dbf_table)
475            (SaveSessionTest.test_joined_table): New test cases for saving the
476            new data sources structures.
477            (TestStoreSort, MockDataStore): Classes to test the sorting of the
478            data stores for writing.
479    
480            * test/runtests.py: Add CVS keywords
481    
482    2003-06-20  Jonathan Coles   <[email protected]>
483    
484            * test/test_session.py
485            (UnreferencedTablesTests.test_unreferenced_tables_with_joins):
486            Use the cultural_landmark-point.dbf file for the store so that
487            the table rows and shape count match.
488    
489    2003-06-20  Jonathan Coles   <[email protected]>
490    
491            * Thuban/Model/data.py (DerivedShapeStore.__init__): Raise
492            an exception if the number of shapes is different from the
493            number of rows in the table. Address RTbug #1933.
494    
495            * test/test_layer.py (TestLayer.test_derived_store): Add
496            a test for the new exception in DerivedShapeStore.__init__.
497    
498            * test/support.py (FloatTestCase): Removed since there is
499            already FloatComparisonMixin. Fixes RTbug #1954.
500            (FloatComparisonMixin.assertFloatEqual): Include test for
501            infinity that was part of FloatTestCase.
502    
503            * test/test_range.py (RangeTest): Inherit from
504            support.FloatComparisonMixin now that we don't have
505            support.FloatTestCase.
506    
507    2003-06-20  Bernhard Herzog  <[email protected]>
508    
509            * test/test_save.py (SaxEventLister, sax_eventlist): Removed. Use
510            the implementation in xmlsupport instead.
511            (SaveSessionTest.compare_xml): sax_eventlist is now in xmlsupport
512    
513            * test/test_proj.py: Import sax_eventlist from xmlsupport instead
514            of test_save
515    
516    2003-06-20  Bernhard Herzog  <[email protected]>
517    
518            * test/test_load.py (LoadSessionTest.check_format): New helper
519            method to make sure the test files we load might have been written
520            by the current thuban version.
521            (ClassificationTest.TestLayers, TestSingleLayer.test)
522            (TestLayerVisibility.test, TestClassification.test)
523            (TestLabels.test, TestLayerProjection.test, TestRasterLayer.test):
524            Add check_format() calls and fix the thuban data to match the data
525            that would be written by saving the session loaded from it.
526    
527            * test/xmlsupport.py (SaxEventLister, sax_eventlist): Copies of
528            the same class and function in test_save.
529    
530            * test/test_xmlsupport.py (TestEventList): New. test cases for
531            sax_eventlist
532    
533    2003-06-20  Bernhard Herzog  <[email protected]>
534    
535            * Resources/XML/thuban.dtd: Add comment about which versions of
536            Thuban are covered by this DTD
537            (map): Fix content model for layers and raster layers. There can
538            be any number or layers and raster layers in any order.
539    
540    2003-06-20  Jonathan Coles   <[email protected]>
541    
542            This is mainly about fixing RTbug #1949.
543    
544            * Thuban/Model/classification.py: Remove "from __future__"
545            import statement since python 2.2 is the earliest supported
546            version.
547    
548            * Thuban/Model/proj.py (Projection.GetProjectedUnits): New.
549            Currently returns PROJ_UNITS_METERS or PROJ_UNITS_DEGREES
550            depending on the units this projection *forwards* into.
551    
552            * Thuban/Model/save.py (SessionSaver.write_classification):
553            Remove unnecessary use of lambdas and nested functions.
554    
555            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Do scale
556            adjustment here if the map projection uses degrees.
557    
558            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Remove
559            scale adjust code since it is now done before calling
560            this method. Don't do anything if the map projection
561            is None.
562    
563    2003-06-19  Bernhard Herzog  <[email protected]>
564    
565            Move version specific load tests to their own file.
566    
567            * test/test_load.py: Expand the doc-string to explain a bit how to
568            handle file format changes.
569            (TestClassification.test): Update the docstring as this test is
570            not about Thuban 0.2 anymore.
571    
572            * test/test_load_0_2.py: New file with the load tests for thuban
573            files created with Thuban 0.2 and earlier.
574    
575    2003-06-19  Bernhard Herzog  <[email protected]>
576    
577            Add XML validation to some of the tests. Validation will only be
578            done if pyRXP is installed (http://reportlab.com/xml/pyrxp.html).
579            To make the DTD available to the test cases it's moved into
580            Resources/XML
581    
582            * Resources/XML/thuban.dtd: New. This is now the real Thuban DTD
583            for versions up to and including 0.2. Two slight changes: added an
584            encoding specification and fixed the comment which refered to
585            GRASS, not Thuban
586    
587            * test/xmlsupport.py: New support module for tests involving XML.
588            Currently there's a mix-in class for XML validation.
589    
590            * test/test_xmlsupport.py: New. Tests for the xmlsupport module
591    
592            * test/test_save.py (SaveSessionTest): Derive from ValidationTest
593            so that we can validate the
594            (SaveSessionTest.testEmptySession)
595            (SaveSessionTest.testSingleLayer)
596            (SaveSessionTest.testSingleLayer)
597            (SaveSessionTest.testLayerProjection)
598            (SaveSessionTest.testRasterLayer)
599            (SaveSessionTest.testClassifiedLayer): Validate the generated XML
600    
601            * test/runtests.py (main): Call print_additional_summary instead
602            of print_garbage_information
603    
604            * test/support.py (resource_dir): New function to return the
605            "Resource" subdirectory
606            (print_additional_summary): New function to combine several
607            summary functions
608            (run_tests): Use print_additional_summary instead of calling
609            print_garbage_information directly
610    
611    2003-06-19  Bernhard Herzog  <[email protected]>
612    
613            * Doc/thuban.dtd (classification): Correct the content model of
614            the classification element.
615            (projection): Add the "name" attribute
616    
617    2003-06-19  Frank Koormann   <[email protected]>
618    
619            MERGE from the greater-ms3 branch.
620    
621            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
622            scale if projection is latlong to get better estimate.
623    
624            Fix problem of hidden properties dialog under windows after double
625            click on layer tree:
626            The tree control always gets an Expanded / Collapsed event after
627            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
628            raises the already displayed window.
629    
630            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
631            raiseProperties initialized to prevent endless loops
632            (LegendTree._OnItemActivated): Depending on self.raiseProperties
633            simply raise the properties or open the dialog and issue a second
634            event.
635    
636  2003-06-18  Jonathan Coles   <[email protected]>  2003-06-18  Jonathan Coles   <[email protected]>
637    
638          * setup.py: Fix a few problems that occured under Windows.          * setup.py: Fix a few problems that occured under Windows.

Legend:
Removed from v.1239  
changed lines
  Added in v.1372

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26