/[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 1312 by jonathan, Thu Jun 26 17:01:28 2003 UTC
# Line 1  Line 1 
1    2003-06-26  Jonathan Coles   <[email protected]>
2    
3            New About box with lots more information including library
4            versions and credits. More/better version checking before
5            Thuban starts.
6    
7            * Thuban/UI/about.py: New. New About box that displays
8            library version information and credits.
9    
10            * Thuban/version.py: Added new 'versions' dictionary which
11            contains the verions of various libraries which are checked
12            when the module loads.
13            (verify_versions): Check all version numbers and returns
14            a list of errors.
15    
16            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
17            Reset the status of the buttons as the situation warrants,
18            but in a better more reliable way by not relying on the
19            current status to determine what needs to change.
20    
21            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
22            (verify_versions): Remove most of the code since it is
23            now in Thuban.version.verify_versions.o
24    
25            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
26            About box in Thuban.UI.about.
27    
28            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
29            Returns the version of gdal library being used as a string.
30    
31            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
32            Removed.
33            (get_proj_version): Return the version of PROJ that the file
34            was compiled with.
35            (get_gtk_version): Return th version of GTK that the file
36            was compiled with.
37    
38    2003-06-25  Jonathan Coles   <[email protected]>
39    
40            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
41            of the SelectPropertiesDialog should be self so the window
42            appears on top.
43            (ClassGroupPropertiesCtrl.DoEdit): The parent
44            of the SelectPropertiesDialog should be self so the window
45            appears on top.
46    
47            * Thuban/UI/resource.py: Cleaned up how we determine file
48            extensions.
49            (GetImageResource): Return an wxImage from our Resources.
50    
51    2003-06-24  Jonathan Coles   <[email protected]>
52    
53            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
54            Check that a layer has a classification before trying
55            to get it. Raster layers don't have classifications.
56    
57    2003-06-23  Jonathan Coles   <[email protected]>
58            
59            * setup.py: Add Resources/XML to resource list.
60        
61    2003-06-23  Jonathan Coles   <[email protected]>
62    
63            * setup.cfg: Fix copyright dates
64        
65    2003-06-23  Jonathan Coles   <[email protected]>
66    
67            * MANIFEST.in: Update with Resources/XML
68    
69            * setup.py: Don't include Locale resources yet as we don't
70            have any and it causes problems building the distribution
71            for Windows. Update version to 0.8.0.
72    
73            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
74    
75            * Thuban/UI/mainwindow.py: Add blank line at the end because
76            file was not being read correctly building the Windows
77            distribution.
78    
79    2003-06-23  Jonathan Coles   <[email protected]>
80    
81            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
82    
83            * Thuban/version.py: Temporarily update longversion for
84            the 0.8 release so that it doesn't have the cvs revision.
85    
86    2003-06-23  Jonathan Coles   <[email protected]>
87    
88            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
89            to make sure that we don't create reentrant possibilities with
90            wxYield.
91    
92            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
93            directly to avoid the wxSafeYield() call which generates an
94            OnPaint event causing infinite recursion. Don't try to catch
95            exception anymore. This was for before there were limits on map
96            scaling.
97    
98    2003-06-23  Bernhard Herzog  <[email protected]>
99    
100            Bug fix for RT #1961:
101    
102            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
103            Register DerivedShapestores with the session
104    
105            * Thuban/Model/session.py (Session.Tables): Make sure each table
106            is only listed once.
107    
108            * test/test_load.py (TestJoinedTable.test): Add check_format call.
109            Update file contents to match the one written out.
110    
111    2003-06-20  Bernhard Herzog  <[email protected]>
112    
113            * test/xmlsupport.py (SaxEventLister.startElementNS)
114            (SaxEventLister.endElementNS): Do not include the qname. Python
115            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
116            is (presumably incorrectly) None, whereas it's a string with the
117            element name in the later versions.
118    
119            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
120            (TestEventList.test_even_list_namespace): Update tests to reflect
121            the new behaviour
122            (TestEventList.test_even_list_id_normalization): Fix doc-string
123    
124    2003-06-20  Jonathan Coles   <[email protected]>
125    
126            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
127            by deriving classes to determine if that layer supports shapes.
128            (Layer): Override HasShapes and return true.
129    
130            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
131            instead of a direct call to wx[Begin|End]CusyCursor().
132            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
133            table data.
134    
135            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
136            New. Wrappers around the wxWindows functions that allow us to
137            make additional calls such as wxYield which gives the native
138            system a chance to update the cursor correctly.
139    
140            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
141            instead of a direct call to wx[Begin|End]CusyCursor().
142    
143            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
144            instead of a direct call to wx[Begin|End]CusyCursor().
145            (MapCanvas.find_shape_at): Check if the current search layer
146            support shapes, otherwise go on to the next layer.
147    
148            * test/test_layer.py: Add tests in each type of layer for
149            HasClassification() and HasShapes()
150    
151    2003-06-20  Jonathan Coles   <[email protected]>
152    
153            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
154            turning on the busy cursor to allow the system to change the
155            cursor before we begin painting. This fixes a problem that
156            was occuring only under GTK. Fixes RTbug #1840.
157    
158    2003-06-20  Bernhard Herzog  <[email protected]>
159    
160            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
161            version.
162    
163            * Thuban/Model/save.py (sort_data_stores): New. Make topological
164            sort of the data sources so they can be written with sources that
165            data sources that depend on other data sources come after the
166            sources they depend on.
167            (SessionSaver.__init__): Add idmap instance variable to map from
168            objects to the ids used in the file.
169            (SessionSaver.get_id, SessionSaver.define_id)
170            (SessionSaver.has_id): New. Methods to manage the idmap
171            (SessionSaver.write): Use thuban-0.8.dtd
172            (SessionSaver.write_session): Add a namespace on the session and
173            write out the data sources before the maps.
174            (SessionSaver.write_data_containers): New. Write the data
175            containers.
176            (SessionSaver.write_layer): Layer elements now refer to a
177            shapestore and don't contain filenames anymore.
178    
179            * Thuban/Model/load.py (LoadError): Exception class to raise when
180            errors in the files are discovered
181            (SessionLoader.__init__): Define dispatchers for elements with a
182            thuban-0.8 namespace too.
183            (SessionLoader.check_attrs): New helper method to check and
184            convert attributes
185            (AttrDesc): New. Helper class for SessionLoader.check_attrs
186            (SessionLoader.start_fileshapesource)
187            (SessionLoader.start_derivedshapesource)
188            (SessionLoader.start_filetable, SessionLoader.start_jointable):
189            Handlers for the new elements in the new fileformat
190            (SessionLoader.start_layer): Handle the shapestore attribute in
191            addition to filename.
192            (SessionLoader.start_table, SessionLoader.end_table): Removed.
193            They were never used in the old formats and aren't needed for the
194            new.
195    
196            * Thuban/Model/session.py (Session.DataContainers): New method to
197            return all "data containers", i.e. shapestores and tables
198    
199            * test/xmlsupport.py (SaxEventLister.__init__)
200            (SaxEventLister.startElementNS, sax_eventlist): Add support to
201            normalize IDs.
202    
203            * test/test_xmlsupport.py
204            (TestEventList.test_even_list_id_normalization): New test case for
205            id normalization
206    
207            * test/test_load.py (LoadSessionTest.check_format): Use ID
208            normalization
209            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
210            class atrributes used for ID normalization
211            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
212            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
213            file format
214            (TestJoinedTable): New test for loading sessions with joined
215            tables.
216            (TestLoadError): New. Test whether missing required attributes
217            cause a LoadError.
218    
219            * test/test_save.py (SaveSessionTest.thubanids)
220            (SaveSessionTest.thubanidrefs): New class attributes for ID
221            normalization in .thuban files.
222            (SaveSessionTest.compare_xml): Use id-normalization.
223            (SaveSessionTest.testEmptySession)
224            (SaveSessionTest.testLayerProjection)
225            (SaveSessionTest.testRasterLayer)
226            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
227            (SaveSessionTest.testLayerProjection): The filename used was the
228            same as for testSingleLayer. Use a different one.
229            (SaveSessionTest.test_dbf_table)
230            (SaveSessionTest.test_joined_table): New test cases for saving the
231            new data sources structures.
232            (TestStoreSort, MockDataStore): Classes to test the sorting of the
233            data stores for writing.
234    
235            * test/runtests.py: Add CVS keywords
236    
237    2003-06-20  Jonathan Coles   <[email protected]>
238    
239            * test/test_session.py
240            (UnreferencedTablesTests.test_unreferenced_tables_with_joins):
241            Use the cultural_landmark-point.dbf file for the store so that
242            the table rows and shape count match.
243    
244    2003-06-20  Jonathan Coles   <[email protected]>
245    
246            * Thuban/Model/data.py (DerivedShapeStore.__init__): Raise
247            an exception if the number of shapes is different from the
248            number of rows in the table. Address RTbug #1933.
249    
250            * test/test_layer.py (TestLayer.test_derived_store): Add
251            a test for the new exception in DerivedShapeStore.__init__.
252    
253            * test/support.py (FloatTestCase): Removed since there is
254            already FloatComparisonMixin. Fixes RTbug #1954.
255            (FloatComparisonMixin.assertFloatEqual): Include test for
256            infinity that was part of FloatTestCase.
257    
258            * test/test_range.py (RangeTest): Inherit from
259            support.FloatComparisonMixin now that we don't have
260            support.FloatTestCase.
261    
262    2003-06-20  Bernhard Herzog  <[email protected]>
263    
264            * test/test_save.py (SaxEventLister, sax_eventlist): Removed. Use
265            the implementation in xmlsupport instead.
266            (SaveSessionTest.compare_xml): sax_eventlist is now in xmlsupport
267    
268            * test/test_proj.py: Import sax_eventlist from xmlsupport instead
269            of test_save
270    
271    2003-06-20  Bernhard Herzog  <[email protected]>
272    
273            * test/test_load.py (LoadSessionTest.check_format): New helper
274            method to make sure the test files we load might have been written
275            by the current thuban version.
276            (ClassificationTest.TestLayers, TestSingleLayer.test)
277            (TestLayerVisibility.test, TestClassification.test)
278            (TestLabels.test, TestLayerProjection.test, TestRasterLayer.test):
279            Add check_format() calls and fix the thuban data to match the data
280            that would be written by saving the session loaded from it.
281    
282            * test/xmlsupport.py (SaxEventLister, sax_eventlist): Copies of
283            the same class and function in test_save.
284    
285            * test/test_xmlsupport.py (TestEventList): New. test cases for
286            sax_eventlist
287    
288    2003-06-20  Bernhard Herzog  <[email protected]>
289    
290            * Resources/XML/thuban.dtd: Add comment about which versions of
291            Thuban are covered by this DTD
292            (map): Fix content model for layers and raster layers. There can
293            be any number or layers and raster layers in any order.
294    
295    2003-06-20  Jonathan Coles   <[email protected]>
296    
297            This is mainly about fixing RTbug #1949.
298    
299            * Thuban/Model/classification.py: Remove "from __future__"
300            import statement since python 2.2 is the earliest supported
301            version.
302    
303            * Thuban/Model/proj.py (Projection.GetProjectedUnits): New.
304            Currently returns PROJ_UNITS_METERS or PROJ_UNITS_DEGREES
305            depending on the units this projection *forwards* into.
306    
307            * Thuban/Model/save.py (SessionSaver.write_classification):
308            Remove unnecessary use of lambdas and nested functions.
309    
310            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Do scale
311            adjustment here if the map projection uses degrees.
312    
313            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Remove
314            scale adjust code since it is now done before calling
315            this method. Don't do anything if the map projection
316            is None.
317    
318    2003-06-19  Bernhard Herzog  <[email protected]>
319    
320            Move version specific load tests to their own file.
321    
322            * test/test_load.py: Expand the doc-string to explain a bit how to
323            handle file format changes.
324            (TestClassification.test): Update the docstring as this test is
325            not about Thuban 0.2 anymore.
326    
327            * test/test_load_0_2.py: New file with the load tests for thuban
328            files created with Thuban 0.2 and earlier.
329    
330    2003-06-19  Bernhard Herzog  <[email protected]>
331    
332            Add XML validation to some of the tests. Validation will only be
333            done if pyRXP is installed (http://reportlab.com/xml/pyrxp.html).
334            To make the DTD available to the test cases it's moved into
335            Resources/XML
336    
337            * Resources/XML/thuban.dtd: New. This is now the real Thuban DTD
338            for versions up to and including 0.2. Two slight changes: added an
339            encoding specification and fixed the comment which refered to
340            GRASS, not Thuban
341    
342            * test/xmlsupport.py: New support module for tests involving XML.
343            Currently there's a mix-in class for XML validation.
344    
345            * test/test_xmlsupport.py: New. Tests for the xmlsupport module
346    
347            * test/test_save.py (SaveSessionTest): Derive from ValidationTest
348            so that we can validate the
349            (SaveSessionTest.testEmptySession)
350            (SaveSessionTest.testSingleLayer)
351            (SaveSessionTest.testSingleLayer)
352            (SaveSessionTest.testLayerProjection)
353            (SaveSessionTest.testRasterLayer)
354            (SaveSessionTest.testClassifiedLayer): Validate the generated XML
355    
356            * test/runtests.py (main): Call print_additional_summary instead
357            of print_garbage_information
358    
359            * test/support.py (resource_dir): New function to return the
360            "Resource" subdirectory
361            (print_additional_summary): New function to combine several
362            summary functions
363            (run_tests): Use print_additional_summary instead of calling
364            print_garbage_information directly
365    
366    2003-06-19  Bernhard Herzog  <[email protected]>
367    
368            * Doc/thuban.dtd (classification): Correct the content model of
369            the classification element.
370            (projection): Add the "name" attribute
371    
372    2003-06-19  Frank Koormann   <[email protected]>
373    
374            MERGE from the greater-ms3 branch.
375    
376            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
377            scale if projection is latlong to get better estimate.
378    
379            Fix problem of hidden properties dialog under windows after double
380            click on layer tree:
381            The tree control always gets an Expanded / Collapsed event after
382            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
383            raises the already displayed window.
384    
385            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
386            raiseProperties initialized to prevent endless loops
387            (LegendTree._OnItemActivated): Depending on self.raiseProperties
388            simply raise the properties or open the dialog and issue a second
389            event.
390    
391  2003-06-18  Jonathan Coles   <[email protected]>  2003-06-18  Jonathan Coles   <[email protected]>
392    
393          * 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.1312

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26