/[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 1289 by jonathan, Mon Jun 23 10:47:58 2003 UTC revision 1561 by bh, Thu Aug 7 17:45:58 2003 UTC
# Line 1  Line 1 
1    2003-08-07  Bernhard Herzog  <[email protected]>
2    
3            Add raw data interface to shape objects.
4    
5            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
6            class to ShapefileShape which now holds shapefile specific
7            information.
8            (ShapefileShape.compute_bbox): Simplified to not cache any
9            information. The way this method is used that shouldn't matter
10            performance wise.
11            (ShapefileShape.RawData): New. Return the shapeid which is the raw
12            data format for shapes from shapefiles.
13            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
14            in the shape objects returned by a shapestore. For a
15            ShapefileStore this is always RAW_SHAPEFILE.
16            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
17            method.
18    
19            * test/test_shapefilestore.py
20            (TestShapefileStore.test_raw_format): New test to test the raw
21            format feature of shapes.
22    
23            * Thuban/Model/layer.py: Remove the unused import of Shape from
24            data. It was only there for interface compatibility but it's not
25            used inside of Thuban and the generic Shape class has gone away.
26    
27    2003-08-07  Bernhard Herzog  <[email protected]>
28    
29            * test/test_baserenderer.py (SimpleShape): Shape class for the
30            tests.
31            (SimpleShapeStore.Shape): Use SimpleShape instead of
32            Thuban.Model.data.Shape to make the tests independed of the coming
33            changes.
34    
35    2003-08-07  Bernhard Herzog  <[email protected]>
36    
37            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
38            (ThubanTestProgram): New classes that extend the respective
39            classes from unittest. These new version support skipping tests
40            under certain expected conditions. In the Thuban test suite we
41            uses this for tests that require the optional gdal support.
42            (run_tests): Use ThubanTestProgram instead of the unittest.main()
43    
44            * test/runtests.py (main): Use the new ThubanTestRunner instead of
45            the normal one from unittest
46    
47            * test/test_layer.py (TestLayer.test_raster_layer): If this test
48            is not run because gdal support isn't available report this to the
49            runner.
50    
51            * test/test_baserenderer.py
52            (TestBaseRenderer.test_raster_no_projection): Do not run this test
53            if gdal support isn't available and report this to the runner.
54    
55    2003-08-06  Bernhard Herzog  <[email protected]>
56    
57            Rearrange the renderers a bit, partly in preparation for changes
58            required for the postgis merge, partly to make it more testable.
59            Also make the representation of coordinates in Shapes more
60            consistent.
61    
62            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
63            this class is now in BaseRenderer. This class is now practically
64            only a specialization of BaseRenderer for rendering to an actual
65            wx DC.
66            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
67            to get the shapetype specific rendering functions.
68    
69            * Thuban/UI/baserenderer.py: New file with the basic rendering
70            logic. The code in this file is completely independend of wx.
71            (BaseRenderer): Class with the basic rendering logic
72    
73            * test/test_baserenderer.py: New. Test cases for BaseRenderer
74    
75            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
76            error_on_redraw to guard agains endless loops and stack overflows
77            when there's a bug in the rendering code that raises exceptions.
78            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
79            rendering into a separate method _do_redraw so that error handling
80            is a bit easier. When an exception occurs, set error_on_redraw to
81            true. When it's true on entry to OnIdle do nothing and return
82            immediately.
83    
84            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
85            Shape object will always have the coordinates as a list of list of
86            coordinate pairs (tuples).
87            (Shape.compute_bbox): Adapt to new representation.
88    
89            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
90            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
91            Shape objects.
92    
93            * test/test_shapefilestore.py
94            (ShapefileStoreTests.assertFloatTuplesEqual)
95            (ShapefileStoreTests.assertPointListEquals): Rename to
96            assertPointListEquals and change purpose to checking equality of
97            the lists returned by Shape.Points().
98            (TestShapefileStoreArc.test_shape)
99            (TestShapefileStorePolygon.test_shape)
100            (TestShapefileStorePoint.test_shape): Use the new
101            assertPointListEquals instead of assertFloatTuplesEqual
102    
103            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
104            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
105            and change purpose to checking equality of the lists returned by
106            Shape.Points().
107            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
108            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
109            (TestLayer.test_derived_store): Use the new assertPointListEquals
110            instead of assertFloatTuplesEqual
111    
112            * test/test_derivedshapestore.py
113            (TestDerivedShapeStore.assertFloatTuplesEqual)
114            (TestDerivedShapeStore.assertPointListEquals): Rename to
115            assertPointListEquals and change purpose to checking equality of
116            the lists returned by Shape.Points().
117            (TestDerivedShapeStore.test_shape): Use the new
118            assertPointListEquals instead of assertFloatTuplesEqual
119    
120    2003-08-06  Jan-Oliver Wagner <[email protected]>
121    
122            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
123            a bounding box. A dialog is raised in case, no bounding box
124            is found. This fixes bug #2043:
125            https://intevation.de/rt/webrt?serial_num=2043
126    
127    2003-08-05  Bernhard Herzog  <[email protected]>
128    
129            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
130            object look like a Color instantiation. Formerly it looked like a
131            tuple.
132    
133            * test/test_color.py (TestColor.test_repr)
134            (TestColor.test_equality, TestColor.test_inequality): New. test
135            some more apects of the Color class
136            (TestTransparent.test_repr, TestTransparent.test_hex)
137            (TestTransparent.test_equality): New. Test cases for the
138            Transparent object.
139    
140    2003-08-04  Jan-Oliver Wagner <[email protected]>
141    
142            * Doc/manual/thuban-manual.xml: a number of small improvements.
143            The resulting file is the version submitted for GREAT-ER II.
144    
145    2003-08-01  Bernhard Herzog  <[email protected]>
146    
147            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
148            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
149            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
150    
151            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
152            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
153            (ThubanEndBusyCursor): Add doc-strings
154    
155    2003-08-01  Bernhard Herzog  <[email protected]>
156    
157            First step towards PostGIS integration. More abstraction by movin
158            more code from the layer to the shapestore. More methods of the
159            layer are now simply delegated to the equivalent method of the
160            shapestore. The SHAPETYPE_* constants are now in data not in
161            layer.
162    
163            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
164            (SHAPETYPE_POINT, Shape): Move these constants and classes from
165            layer.py to data.py
166            (ShapefileStore.__init__): More Initialization for the new methods
167            and functionality.
168            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
169            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
170            (ShapefileStore.Shape): New methods that were formerly implemented
171            in the layer.
172            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
173            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
174            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
175            equivalents of the new shape methods. These versions are simply
176            delegated to the original shapstore.
177    
178            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
179            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
180            (Layer.SetShapeStore): Removed the initializatin of instance
181            variables that were needed for the stuff that's now in
182            ShapefileStore
183            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
184            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
185            shapestore.
186    
187            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
188            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
189            instead of layer.
190    
191            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
192    
193            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
194    
195            * test/test_layer.py: Import the SHAPETYPE_* constants from data
196            instead of layer.
197            (TestLayer.test_derived_store): Remove the test for the exception
198            when instantiating the DerivedShapeStore with an incompatible
199            table which is now in test_derivedshapestore.py. Add some more
200            tests of the layer methods to determine whether they work for a
201            DerivedShapeStore as well.
202    
203    2003-07-31  Jonathan Coles   <[email protected]>
204    
205            * Doc/manual/thuban-manual.xml: Fix the list of required packages
206            by just listing the name and where they can be found.
207    
208    2003-07-31  Frank Koormann   <[email protected]>
209    
210            * Doc/manual/thuban-manual.xml:
211            Changed the screenshot elements to figure.
212            Changed some variablelist elements to itemizedlist.
213            Added section on GDAL formats.
214    
215    2003-07-31  Jonathan Coles   <[email protected]>
216    
217            * Doc/manual/thuban-manual.xml: Added a few sentences about
218            the Fix Border Color option when generating classes.
219    
220    2003-07-30  Jonathan Coles   <[email protected]>
221    
222            * Thuban/Model/classgen.py: Add docstrings. Rename specific
223            Ramp instances to use lower_case_style.
224    
225            * Thuban/UI/classgen.py: Use renamed Ramp instances.
226            
227            * Thuban/UI/classifier.py: Add docstrings.
228    
229            * Thuban/UI/dock.py: Add docstrings.
230    
231            * test/test_classgen.py: Use renamed Ramp instances.
232    
233    2003-07-30  Bernhard Herzog  <[email protected]>
234    
235            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
236            was never used in Thuban.
237    
238    2003-07-30  Bernhard Herzog  <[email protected]>
239    
240            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
241            method directly instead of going through the transient_table
242            method. This faster because transient_table may force the copy of
243            a DBF file into the transient database and setting a table's title
244            doesnm't affect the title of the associated transient table, so
245            this fixes RT #2042
246    
247            * Thuban/UI/main.py (__version__): Don't import the already
248            removed show_exception_dialog.
249    
250    2003-07-29  Jonathan Coles   <[email protected]>
251    
252            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
253            Put back this method and remove the equivalent function since we
254            are setting the exception hook from within this class (OnInit).
255    
256    2003-07-29  Jonathan Coles   <[email protected]>
257    
258            * Doc/manual/images/5_2_custom_ramp.png,
259            Doc/manual/images/5_2_quantiles.png,
260            Doc/manual/images/5_2_uniform_dist.png,
261            Doc/manual/images/5_2_unique_values.png,
262            Doc/manual/images/8_int_error.png: New screen shots.
263    
264            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
265            some points, and added more screen shots.
266    
267    2003-07-29  Bernhard Herzog  <[email protected]>
268    
269            * Thuban/Model/data.py: Remove the now unused import of warnings
270    
271    2003-07-29  Bernhard Herzog  <[email protected]>
272    
273            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
274            deprecated since before the 0.8 release and isn't used in Thuban
275            itself anymore.
276    
277            * Thuban/Model/transientdb.py: Remove some unnecessary imports
278    
279    2003-07-29  Jonathan Coles   <[email protected]>
280    
281            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
282            python exception hook here so that we are sure to catch any
283            Thuban exception that happen during initialization.
284    
285            * Thuban/UI/main.py (main): Don't set the exception hook here,
286            it will get set in ThubanApplication.OnInit.
287    
288    2003-07-29  Jonathan Coles   <[email protected]>
289                                                                                
290            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
291            Removed and called it show_exception_dialog() so that the exception
292            handler can be set before the class is created.
293                                                                                
294            * Thuban/UI/main.py (main): Install the exception handler before
295            a ThubanApplication is created.
296                                                                                    
297    2003-07-29  Bernhard Herzog  <[email protected]>
298    
299            * po/it.po: New. Italian translation by Maurizio Napolitano
300    
301            * po/ru.po: New. Russian translation by Alex Shevlakov
302    
303    2003-07-29  Frank Koormann   <[email protected]>
304    
305            * Doc/manual/thuban-manual.xml: Extended section on supported
306            projections.
307            
308    2003-07-29  Frank Koormann   <[email protected]>
309    
310            * Doc/manual/thuban-manual.xml: gaspell-checked.
311    
312    2003-07-29  Jonathan Coles   <[email protected]>
313    
314            * Doc/manual/images/3_5_legend.png: Added border to improve look
315            on white background.
316    
317    2003-07-29  Jonathan Coles   <[email protected]>
318    
319            * Doc/manual/thuban-manual.xml: Fixed grammar and typos. Added
320            descriptions for the legend toolbar.
321    
322            * Doc/manual/images/4_2_raster_layer_properties.png: Removed
323            cursor from dialog box.
324    
325    2003-07-28  Jonathan Coles   <[email protected]>
326    
327            * Doc/manual/thuban-manual.xml: More screenshots and more chapters.
328    
329            * Doc/manual/images/2_4_session_tree.png,
330            Doc/manual/images/3_5_legend.png, Doc/manual/images/3_rename_map.png,
331            Doc/manual/images/4_2_layer_properties.png,
332            Doc/manual/images/4_2_raster_layer_properties.png,
333            Doc/manual/images/5_3_genclass.png,
334            Doc/manual/images/5_classification.png,
335            Doc/manual/images/6_projection.png,
336            Doc/manual/images/7_1_table_view.png,
337            Doc/manual/images/7_2_5_join.png: New screenshots.
338    
339    2003-07-24  Jonathan Coles   <[email protected]>
340    
341            * Doc/manual/thuban-manual.xml: Chapter on Projection Management.
342    
343    2003-07-24  Jonathan Coles   <[email protected]>
344    
345            * Doc/manual/thuban-manual.xml: Added EPS images and wrote
346            chapter on Layer Management.
347    
348            * Doc/manual/Makefile: New. Makefile to generate all formats for the
349            manual and images.
350    
351    2003-07-24  Bernhard Herzog  <[email protected]>
352    
353            * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
354            it annoys lintian which warns about these files not being
355            executable. The #1 isn't necessary here since if you absolutely
356            must execute them you can always say "python <filename>".
357    
358            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove
359            superfluous code to set brush and pen for point shapes
360    
361            * Thuban/UI/viewport.py: Remove commented out code that wouldn't
362            belong in viewport anyway
363    
364    2003-07-24  Frank Koormann   <[email protected]>
365    
366            * Doc/manual/thuban-manual.xml: Added section on table management.
367    
368    2003-07-24  Bernhard Herzog  <[email protected]>
369    
370            * test/runtests.py (main): Recognize the long "verbose" option
371            correctly.
372    
373    2003-07-22  Jonathan Coles   <[email protected]>
374    
375            * Doc/manual/thuban-manual.xml: Continue to write first revision
376            of the manual.
377    
378            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
379            with Begin/EndDrawing() calls to ensure we aren't doing to
380            many updates to the dc during rendering.
381            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
382            a pen and brush argument so they need to be passed to the function.
383    
384            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
385            Calculates the minimum and maximum scale values. Factored out
386            of set_view_transform so that it could be used to zoom all the
387            way into a single point.
388            (ViewPort.set_view_transform): Call calc_min_max_scales().
389            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
390            if only a single point is selected.
391    
392            * Doc/manual/images/1_2_legend_close.png,
393            Doc/manual/images/1_2_legend_dock.png,
394            Doc/manual/images/1_2_mainwindow.png,
395            Doc/manual/images/1_2_mainwindow.ps,
396            Doc/manual/images/1_2_mainwindow.sk,
397            Doc/manual/images/3_2_fullextent.png,
398            Doc/manual/images/3_2_fulllayerextent.png,
399            Doc/manual/images/3_2_fullshapeextent.png,
400            Doc/manual/images/3_2_pan.png,
401            Doc/manual/images/3_2_zoomin.png,
402            Doc/manual/images/3_2_zoomout.png,
403            Doc/manual/images/3_3_identify.png,
404            Doc/manual/images/3_3_label.png,
405            Doc/manual/images/3_5_invisible.png,
406            Doc/manual/images/3_5_movedown.png,
407            Doc/manual/images/3_5_moveup.png,
408            Doc/manual/images/3_5_props.png,
409            Doc/manual/images/3_5_tobottom.png,
410            Doc/manual/images/3_5_totop.png,
411            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
412    
413    2003-07-18  Bernhard Herzog  <[email protected]>
414    
415            * Thuban/UI/messages.py (MAP_REPLACED): New message.
416    
417            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
418            after the new map has been assigned
419    
420            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
421            Delegate MAP_REPLACED to the canvas too
422            (MainWindow.prepare_new_session): Removed. Thanks to the new
423            MAP_REPLACED message it's no longer needed
424            (MainWindow.OpenSession, MainWindow.NewSession):
425            prepare_new_session has been removed.
426    
427            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
428            MAP_REPLACED so that we can close the dialog if a new map is set.
429            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
430            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
431            dialog
432    
433            * test/test_viewport.py (SimpleViewPortTest)
434            (SimpleViewPortTest.test_default_size): Add doc-strings
435            (ViewPortTest.setUp): Bind map to self.map so we can use it in
436            tests. Subscribe to MAP_REPLACED messages too.
437            (ViewPortTest.tearDown): No need to explicitly unsubscribe
438            (ViewPortTest.test_set_map): New test for the SetMap method.
439    
440    2003-07-18  Bernhard Herzog  <[email protected]>
441    
442            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
443            Move this test from ViewPortTest.setUp to this new separate test
444            case. setUp is not the place for the actual tests.
445            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
446            more of the test from setUp to the new test test_inital_settings.
447            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
448            (ViewPortTest.test_proj_conv): Split test_proj_conv into
449            test_win_to_proj and test_proj_to_win and make the tests easier to
450            understand
451            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
452            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
453            (ViewPortTest.test_unprojected_rect_around_point)
454            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
455            Reformat to increase readability.
456    
457    2003-07-18  Bernhard Herzog  <[email protected]>
458    
459            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
460    
461    2003-07-18  Bernhard Herzog  <[email protected]>
462    
463            * test/runtests.py: The test suite can now be run without an X
464            connection. To make sure this remains true, remove the DISPLAY
465            environment variable so that an error occurs if the wxGTK is
466            imported accidentally
467    
468    2003-07-18  Bernhard Herzog  <[email protected]>
469    
470            * Thuban/UI/viewport.py: Remove unused imports
471    
472            * Thuban/UI/view.py: Remove unused imports
473    
474    2003-07-18  Bernhard Herzog  <[email protected]>
475    
476            * test/test_export.py Remove unused imports. The OutputTransform
477            function is now in viewport.py and is called output_transform
478            (TestScalebar.test_output_transform)
479            (TestScalebar.test_OutputTransform): Renamed to
480            test_output_transform and updated to use output_transform instead
481            of OutputTransform
482    
483            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
484            renamed.
485            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
486            renamed to output_transform
487    
488            * Thuban/UI/viewport.py (OutputTransform, output_transform):
489            Rename to output_transform
490    
491    2003-07-18  Bernhard Herzog  <[email protected]>
492    
493            * Thuban/Model/layer.py (Layer.__init__): Rename
494            classificationField to classificatin_column and init it here so
495            that it can be used in SetClassificationColumn
496            (Layer.GetClassificationColumn, Layer.GetClassificationField):
497            Rename to GetClassificationColumn.
498            (Layer.SetClassificationColumn, Layer.SetClassificationField):
499            Rename to SetClassificationColumn and issue a LAYER_CHANGED
500            message if the column changes.
501            (Layer._classification_changed, Layer.ClassChanged): Rename to
502            _classification_changed. Update the callers.
503            (Layer.SetShapeStore): Further field->column renames.
504    
505            * Thuban/Model/load.py (SessionLoader.start_classification)
506            (SessionLoader.start_clpoint): Updates because of
507            field->column method name changes in the Layer class
508    
509            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
510            because of field->column method name changes in the Layer class
511    
512            * Thuban/UI/classifier.py (Classifier.__init__)
513            (Classifier._OnTry, Classifier._OnRevert): Updates because of
514            field->column method name changes in the Layer class
515    
516            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
517            because of field->column method name changes in the Layer class
518    
519            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
520            of field->column method name changes in the Layer class
521    
522            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
523            (SaveSessionTest.testClassifiedLayer): Update because of
524            field->column method name changes in the Layer class
525    
526            * test/test_layer.py (SetShapeStoreTests.setUp)
527            (SetShapeStoreTests.test_sanity): Update because of field->column
528            method name changes in the Layer class
529            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
530            (TestLayerModification.test_sanity)
531            (TestLayerModification.test_initial_settings): remove unsued code
532            and rename to test_sanity.
533            (TestLayerModification.test_set_classification): New test for
534            SetClassification and SetClassificationField.
535    
536    2003-07-18  Bernhard Herzog  <[email protected]>
537    
538            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
539            the non-fixed values as well. The old test would have accepted a
540            fixed ramp that only returnes the fixed properties
541    
542    2003-07-17  Jonathan Coles   <[email protected]>
543    
544            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
545            shots for the manual. The XCF file is the source image and
546            has additional layers to support changes.
547    
548            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
549    
550            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
551            Return both the new class and the field name.
552    
553            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
554            fit the map to the window as this changes any zoom level that
555            the user may have set.
556    
557    2003-07-16  Jonathan Coles   <[email protected]>
558    
559            * Thuban/Model/classgen.py (generate_singletons,
560            generate_uniform_distribution, generate_quantiles): Remove
561            fixes parameter, but maintain the same functionality by having
562            the calling function pass a FixedRamp object for the ramp.
563            (FixedRamp): New. Adapts a ramp to have fixed property values.
564    
565            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
566            (Classification): Inherit from Publisher.
567            (Classification.__init__): Remove the layer parameter.
568            Classifications no longer need to have a parent layer.
569            (Classification.GetField, Classification.GetFieldType,
570            Classification.SetFieldInfo): Removed. The field name is stored
571            in the layer, and the type can be retreived by calling
572            Layer.GetFieldType().
573            (Classification._set_layer, Classification.GetLayer): Removed.
574            Classifications no longer have a parent layer.
575    
576            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
577            classification.
578            (Layer.SetShapeStore): Reset the classification first while
579            we still have the old shape store to work with.
580            (Layer.GetClassificationField, Layer.SetClassificationField):
581            New. Method for getting/setting the field to classify on.
582            (Layer.SetClassification): Simplified now that the layer
583            simply has to hold a reference to the classification and not
584            tell the classification who owns it.
585            Fixes RTbug #2023.
586    
587            * Thuban/Model/load.py (SessionLoader.start_classification):
588            Set the field name on the layer, not the classification.
589    
590            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
591            classification is modified.
592    
593            * Thuban/Model/save.py (SessionSaver.write_classification):
594            Get the field name and type from the layer.
595    
596            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
597            parameter records to rows and add docstring. Fixes RTbug #1997.
598    
599            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
600            ramp when we need to fix certain values of a ramp rather than
601            using the old fixes parameter. Fixes RTbug #2024.
602    
603            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
604            parameter.
605            (ClassTable.Reset): Add fieldType parameter and use it, rather
606            than asking the classification.
607            (Classifier.__init__): Remember the original class's field
608            and ask the layer for the field type, rather than the classification.
609            (Classifier.__SetGridTable): Retrieve the field and field type
610            for the table because they are not in the classification.
611            (Classifier._OnTry, Classifier._OnRevert): Set the classification
612            field on the layer in addition to the classification itself.
613    
614            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
615            classification field from layer.
616    
617            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
618            classification field from layer. Split up tests and remove
619            *-imports. Fixes RTbug #1992.
620    
621            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
622    
623            * test/test_classification.py
624            (TestClassification.test_classification): Remove tests for methods
625            that no longer exist.
626    
627            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
628            __init__ no longer has a field parameter, use SetClassificationField.
629            (SetShapeStoreTests.test_sanity): Use layer object to get class
630            field info.
631    
632            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
633            SetClassificationField on layer to set class field info.
634    
635            * test/test_viewport.py: Renamed from test/test_view.py.
636    
637    2003-07-16  Jan-Oliver Wagner <[email protected]>
638    
639            * Doc/manual/thuban-manual.xml: Added authors and an initial
640            coarse structure.
641    
642    2003-07-15  Bernhard Herzog  <[email protected]>
643    
644            * test/support.py (FloatComparisonMixin): This is a mix-in class
645            and therefore should not be derived from any other class.
646    
647            * test/test_range.py (RangeTest): FloatComparisonMixin is a
648            mix-in, so derive from TestCase as well.
649    
650    2003-07-15  Bernhard Herzog  <[email protected]>
651    
652            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
653            draw_func handling a bit to remove one layer of indirection. This
654            makes the renderer about 10% faster in the non-classifying case
655            and the code a bit cleaner
656            (MapRenderer.draw_point_shape): Add the pen and brush parameters
657            and set them in the dc. Now the draw_point_shape method and
658            wxproj's draw_polygon_shape function have basically the same
659            signature so that both can be directly used as draw_func
660    
661    2003-07-15  Bernhard Herzog  <[email protected]>
662    
663            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
664            string values (in addition to the labels) as UTF 8
665    
666            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
667            values if the field type is string
668    
669            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
670            saving a session with non-ascii string classification values.
671    
672            * test/test_load.py (TestClassification.file_contents)
673            (TestClassification.test): Check for non-ascii values in string
674            classifications
675    
676    2003-07-14  Jonathan Coles   <[email protected]>
677    
678            * test/test_view.py: New. Tests for ViewPort.
679    
680    2003-07-14  Frank Koormann   <[email protected]>
681    
682            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
683            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
684    
685            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
686            unicode strings from session file: session title, map title and
687            projection name.
688            
689    2003-07-10  Jonathan Coles   <[email protected]>
690    
691            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
692            drag_stop, not drag_move when the mouse is released.
693    
694    2003-07-10  Jonathan Coles   <[email protected]>
695    
696            The most important part of this is the seperation of view.py into
697            two pieces. viewport.py now has a class called ViewPort which
698            contains all the non-wx parts of view.py and can therefore be
699            tested. view.py contains only the wx-specific parts and is fairly
700            simple.
701    
702            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
703            RTTbug #1992.
704            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
705            RTTbug #1992.
706    
707            * Thuban/Model/classgen.py (generate_singletons,
708            generate_uniform_distribution, generate_quantiles):
709            Added 'fixes' parameter so that property attributes can
710            be held constant over the generated classification groups.
711            (CustomRamp.GetProperties): Remove unused variables.
712    
713            * Thuban/Model/map.py (Map.SetProjection): Send the old
714            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
715            event.
716    
717            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
718            parameter which is a list of records that restricts which
719            records are saved. Fixes RTbug #1997.
720    
721            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
722            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
723    
724            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
725            to allow the user to fix line color/width on generated groups.
726            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
727            functions to optionally fix group properties.
728    
729            * Thuban/UI/main.py (main): Set exception hook to the
730            ShowExceptionDialog. Fixes RTbug #1993.
731    
732            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
733            the table window when it is selectd to be shown.
734    
735            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
736            Export Selection button and move the export buttons underneath
737            the table.
738            (QueryTableFrame.UpdateStatusText): Added event argument so
739            that it can respond to grid selection events. The status text
740            is now updated even when the table is not associated with a
741            layer as was previously assumed.
742            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
743            UpdateStatusText responds to these events.
744            (QueryTableFrame.OnSaveAs): Renamed to doExport.
745            (QueryTableFrame.doExport): Helper function that saves the
746            entire table, or selected rows, to a file.
747            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
748            Respond to export button events and call doExport.
749    
750            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
751            the function doesn't return NULL without first setting a Python
752            Error.
753    
754            * test/runtests.py (main): Only print "Unknown option" for
755            unsupported options.
756    
757            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
758            optional epsilon argument to specify floating point accuracy.
759            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
760            for each item test.
761    
762            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
763            tests for saving selected records.
764    
765            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
766            tests for saving selected records.
767    
768            * test/test_map.py (TestMapWithContents.test_set_projection):
769            MAP_PROJECTION_CHANGED events send the old projection.
770    
771            * test/test_session.py
772            (TestSessionWithContent.test_forward_map_projection):
773            MAP_PROJECTION_CHANGED events send the old projection.
774    
775            * test/test_table.py (TableTest): Update tests to use non-deprecated
776            functions.
777    
778    2003-07-08  Bernhard Herzog  <[email protected]>
779    
780            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
781            constants in the column objects are the standard ones defined in
782            the table module.
783    
784            * test/test_transientdb.py
785            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
786            exporting transient tables as DBF works. This should catch the bug
787            just fixed in TransientTableBase.Width.
788    
789    2003-07-08  Bernhard Herzog  <[email protected]>
790    
791            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
792            interpolated colors correctly.
793    
794            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
795            New. Test case for the fix in classgen.py
796    
797    2003-07-08  Bernhard Herzog  <[email protected]>
798    
799            * test/runtests.py (main): Make the default output less verbose
800            and add a verbosity option (-v) to get the old output
801    
802    2003-07-08  Bernhard Herzog  <[email protected]>
803    
804            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
805            0.9.
806    
807            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
808            New. Return the join type
809    
810            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
811            DTD
812            (SessionSaver.write_data_containers): Save the join type for
813            joined tables
814    
815            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
816            namespace
817            (SessionLoader.start_jointable): Handle the jointype attribute
818    
819            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
820            as of Thuban 0.8. These are now tests to determine whether Thuban
821            can still read files generated by Thuban 0.8
822    
823            * test/test_load.py (LoadSessionTest.dtd)
824            (TestSingleLayer.file_contents)
825            (TestLayerVisibility.file_contents, TestLabels.file_contents)
826            (TestLayerProjection.file_contents)
827            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
828            (TestJoinedTable.file_contents)
829            (TestLoadError.file_contents): Update for new DTD
830            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
831            for new join type attribute
832    
833            * test/test_save.py (SaveSessionTest.dtd)
834            (SaveSessionTest.testEmptySession)
835            (SaveSessionTest.testSingleLayer)
836            (SaveSessionTest.testLayerProjection)
837            (SaveSessionTest.testRasterLayer)
838            (SaveSessionTest.testClassifiedLayer)
839            (SaveSessionTest.test_dbf_table)
840            (SaveSessionTest.test_joined_table): Update for new DTD
841            (SaveSessionTest.test_joined_table): Add test for new join type
842            attribute
843    
844    2003-07-04  Bernhard Herzog  <[email protected]>
845    
846            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
847            function for table_to_dbf
848            (table_to_dbf): Deal with names longer than the 10 character limit
849    
850            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
851            doc-string
852            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
853            long column names
854    
855    2003-07-03  Bernhard Herzog  <[email protected]>
856    
857            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
858    
859    2003-07-03  Bernhard Herzog  <[email protected]>
860    
861            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
862            for the Thuban manual and README with some basic information about
863            the manual
864    
865    2003-07-03  Bernhard Herzog  <[email protected]>
866    
867            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
868            Update doc-string
869            (TransientJoinedTable.create): Do not modify the column objects of
870            the input tables in place and copy all columns of the input tables
871            into the joined table after all.
872    
873            * test/test_transientdb.py
874            (TestTransientTable.test_transient_joined_table_same_column_name):
875            Update to reflect the new behavior
876            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
877            Update to reflect the new behavior
878            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
879            New test case for a bug which modified the column objects in place
880    
881    2003-07-02  Jonathan Coles   <[email protected]>
882    
883            * Thuban/Model/classgen.py (generate_singletons,
884            generate_uniform_distribution, generate_quantiles,
885            GenQuantiles0): Make sure maxValue isn't less than
886            one, otherwise we could divide by zero.
887    
888            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
889            ClassGenTest.doClassSingleTest): Call doBoundsTest to
890            check the end classification groups against the
891            proper property values.
892            (ClassGenTest.doBoundsTest): New. Checks the first and
893            last classification groups to make sure their properties
894            are the correct upper and lower bounds for a color ramp.
895    
896    2003-07-02  Jonathan Coles   <[email protected]>
897    
898            * Thuban/Model/classgen.py (generate_singletons,
899            generate_uniform_distribution, generate_quantiles,
900            GenQuantiles0): The denominator was one to high when
901            calculating the index for the ramp causing the index
902            to never to reach one.
903    
904    2003-07-02  Jonathan Coles   <[email protected]>
905    
906            Changed the singature of ClassGroupRange.__init__ and
907            ClassGroupRange.SetRange() so that the min/max values are
908            passed as a tuple. This makes a better calling scheme for
909            when a Range object is passed instead.
910    
911            * Thuban/Model/classgen.py: Fixed parameters to
912            ClassGroupRange constructor.
913    
914            * Thuban/Model/classification.py (ClassGroupRange.__init__):
915            Consolidate the min/max parameters into a single _range which
916            can either be a tuple or a Range object.
917            (ClassGroupRange.SetRange): Consolidate the min/max parameters
918            into a single _range which can either be a tuple or a Range object.
919    
920            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
921            call to ClassGroupRange constructor to use a tuple.
922    
923            * Thuban/Model/layer.py (Layer.SetClassification): Switch
924            the classification instance variable to the new class
925            before calling _set_layer otherwise subscribers to a
926            LAYER_CHANGED event will not see any difference.
927    
928            * test/test_classification.py: Fix tests of ClassGroupRange
929            so that they use the new signature.
930    
931            * test/test_load.py: Fix use of ClassGroupRange so that it
932            uses the new signature.
933    
934            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
935            uses the new signature.
936    
937            * test/test_save.py: Fix use of ClassGroupRange so that it
938            uses the new signature.
939    
940    
941    2003-07-01  Jonathan Coles   <[email protected]>
942    
943            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
944            Import used objects/class from color.
945            (generate_singletons): We don't
946            need the numGroups parameter anymore because we are using
947            the new ramps with GetProperties().
948            (generate_uniform_distribution): Use new ramp method
949            GetProperties().
950            (generate_quantiles, GenQuantiles0): Use new ramp method
951            GetProperties().
952            (CustomRamp.SetNumGroups): Removed. The ramps now map
953            a value from 0 to 1 to class properties so the number
954            of groups is not needed ahead of time.
955            (CustomRamp.next): Removed. CustomRamp does not support
956            interation anymore.
957            (CustomRamp.GetProperties): Returns a ClassGroupProperties
958            object based on the index value from 0 to 1 that is
959            passed to it.
960            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
961            Made into instances of Monochromatic class instread of
962            deriving from it.
963            (HotToCold.SetNumGroups): Removed. See CustomRamp.
964            (HotToCold.next): Removed. See CustomRamp.
965    
966            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
967            (Classification.SetField, Classification.SetFieldType):
968            Replaced with SetFieldInfo.
969            (Classification.SetFieldInfo): New. Does a better job of
970            what SetField and SetFieldType used to do by combining
971            their function since they should really always be done
972            at the same time.
973            (Classification.SetLayer): Renamed to _set_layer.
974            (Classification._set_layer): Should only be called from
975            Layer's SetClassification. This does not cause a recursive
976            call as SetLayer did because we know that Layer knows about
977            the classification.
978    
979            * Thuban/Model/color.py: Fixes RTbug #1971.
980            (_Transparent): Renamed from Transparent so it doesn't
981            conflict with the module variable.
982            (Transparent, Black): Renamed from Color.Transparent,
983            Color.Black so they are not class variables.
984    
985            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
986            (Layer.Destroy): We don't need to call SetClassification
987            anymore to clear out the back reference in the classifcation
988            to the layer. It's better to set it to None using _set_layer,
989            and we won't be creating another clas object too.
990            (Layer.SetClassification): Classification._set_layer is not
991            recursive so remove all the locking variables. Also clean
992            up the code so that it remains unchanged if something fails.
993    
994            * Thuban/Model/load.py: Fixes RTbug #1971.
995            (SessionLoader.start_classification): Call
996            Classification.SetFieldInfo().
997    
998            * Thuban/Model/save.py: Removed import of Color which wasn't
999            being used.
1000    
1001            * Thuban/UI/classgen.py: Fixes RTbug #1972.
1002            (ClassGenDialog.__init__): Color ramps are now instances
1003            already so we don't need to create any new objects.
1004            (ClassGenDialog.OnOK): Check for numGroups is no longer
1005            necessary because we never use it.
1006    
1007            * Thuban/UI/classifier.py: Fixes RTbug #1971.
1008            (Classifier.__BuildClassification, Classifier.__SetGridTable):
1009            Call Classification.SetFieldInfo() instead of SetFieldType.
1010    
1011            * Thuban/UI/renderer.py: Fixes RTbug #1971.
1012    
1013            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
1014            (MapCanvas.__init__): Subscribe to the idle time event. Set
1015            background color to white.
1016            (MapCanvas.OnPaint): Set a flag indicating that we should
1017            render the map during idle time. If we already have a bitmap
1018            just draw it now.
1019            (MapCanvas.OnIdle): New. Render the map only during idle time.
1020            This also fixes a problem with the busy cursor under gtk.
1021    
1022            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
1023            Fix calls to generate_singletons because the signature changed.
1024    
1025            * test/test_classification.py: Fix color references and
1026            change calls to Classification.[SetField|SetFieldType] to
1027            SetFieldInfo.
1028    
1029            * test/test_load.py: Fix color references.
1030    
1031            * test/test_load_0_2.py: Fix color references.
1032    
1033            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
1034            Change calls to Classification.[SetField|SetFieldType] to
1035            SetFieldInfo.
1036    
1037    2003-07-01  Frank Koormann   <[email protected]>
1038    
1039            MERGE from the greater-ms3 branch.
1040    
1041            * test/test_transientdb.py
1042            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
1043            New. Test join of two tables with partly equal column names.
1044    
1045            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
1046            If duplicates in left and right tables column names are found,
1047            append '_' (underscores) to the name until it is unique.
1048            Create always new internal names for the resulting table and reference
1049            columns in the join statement with <table>.<column>
1050    
1051    2003-07-01  Bernhard Herzog  <[email protected]>
1052    
1053            * test/test_transientdb.py
1054            (TestTransientTable.test_transient_joined_table_same_column_name):
1055            New. Test whether joining on columns with the same names in both
1056            tables works.
1057            
1058            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
1059            sure to use the right internal names even when joining on field
1060            with the same names in both tables. Also, detect duplicate names
1061            in the joined table correctly.
1062    
1063    2003-07-01  Frank Koormann   <[email protected]>
1064    
1065            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
1066            Reverse List of layers to render in same order as in desktop legend.
1067    
1068    2003-06-30  Jonathan Coles   <[email protected]>
1069    
1070            * Thuban/version.py (make_tuple): Takes a version string
1071            and splits it into a tuple of at most three integers.
1072            Used make_tuple() to make tuple versions of the version
1073            numbers.
1074    
1075            * Thuban/UI/about.py: Add Thuban email addresses.
1076    
1077    2003-06-30  Jonathan Coles   <[email protected]>
1078    
1079            * Thuban/version.py: SQLite/PySQLite version dependencies
1080            were too high.
1081    
1082    2003-06-30  Jonathan Coles   <[email protected]>
1083    
1084            * Thuban/version.py: Update version to 0.8.1
1085            
1086            * MANIFEST.in: Added Projections so that default.proj is
1087            included.
1088    
1089    2003-06-26  Jonathan Coles   <[email protected]>
1090    
1091            New About box with lots more information including library
1092            versions and credits. More/better version checking before
1093            Thuban starts.
1094    
1095            * Thuban/UI/about.py: New. New About box that displays
1096            library version information and credits.
1097    
1098            * Thuban/version.py: Added new 'versions' dictionary which
1099            contains the verions of various libraries which are checked
1100            when the module loads.
1101            (verify_versions): Check all version numbers and returns
1102            a list of errors.
1103    
1104            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
1105            Reset the status of the buttons as the situation warrants,
1106            but in a better more reliable way by not relying on the
1107            current status to determine what needs to change.
1108    
1109            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
1110            (verify_versions): Remove most of the code since it is
1111            now in Thuban.version.verify_versions.o
1112    
1113            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
1114            About box in Thuban.UI.about.
1115    
1116            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
1117            Returns the version of gdal library being used as a string.
1118    
1119            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
1120            Removed.
1121            (get_proj_version): Return the version of PROJ that the file
1122            was compiled with.
1123            (get_gtk_version): Return th version of GTK that the file
1124            was compiled with.
1125    
1126    2003-06-25  Jonathan Coles   <[email protected]>
1127    
1128            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
1129            of the SelectPropertiesDialog should be self so the window
1130            appears on top.
1131            (ClassGroupPropertiesCtrl.DoEdit): The parent
1132            of the SelectPropertiesDialog should be self so the window
1133            appears on top.
1134    
1135            * Thuban/UI/resource.py: Cleaned up how we determine file
1136            extensions.
1137            (GetImageResource): Return an wxImage from our Resources.
1138    
1139    2003-06-24  Jonathan Coles   <[email protected]>
1140    
1141            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
1142            Check that a layer has a classification before trying
1143            to get it. Raster layers don't have classifications.
1144    
1145    2003-06-23  Jonathan Coles   <[email protected]>
1146            
1147            * setup.py: Add Resources/XML to resource list.
1148        
1149    2003-06-23  Jonathan Coles   <[email protected]>
1150    
1151            * setup.cfg: Fix copyright dates
1152        
1153    2003-06-23  Jonathan Coles   <[email protected]>
1154    
1155            * MANIFEST.in: Update with Resources/XML
1156    
1157            * setup.py: Don't include Locale resources yet as we don't
1158            have any and it causes problems building the distribution
1159            for Windows. Update version to 0.8.0.
1160    
1161            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
1162    
1163            * Thuban/UI/mainwindow.py: Add blank line at the end because
1164            file was not being read correctly building the Windows
1165            distribution.
1166    
1167  2003-06-23  Jonathan Coles   <[email protected]>  2003-06-23  Jonathan Coles   <[email protected]>
1168    
1169          * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.          * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.

Legend:
Removed from v.1289  
changed lines
  Added in v.1561

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26