/[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 1403 by jonathan, Thu Jul 10 14:56:46 2003 UTC revision 1584 by jan, Tue Aug 12 16:13:59 2003 UTC
# Line 1  Line 1 
1    2003-08-12  Jan-Oliver Wagner <[email protected]>
2    
3            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
4    
5    2003-08-12  Bernhard Herzog  <[email protected]>
6    
7            * po/de.po: New. German translations by Bjoern Broscheit
8    
9    2003-08-12  Bernhard Herzog  <[email protected]>
10    
11            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
12            strings have to be one string literal.
13    
14    2003-08-11  Bernhard Herzog  <[email protected]>
15    
16            * test/support.py (FloatComparisonMixin.assertPointListEquals):
17            New. This method was used in various derived classes, but it's
18            better to have it here.
19    
20            * test/test_shapefilestore.py
21            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
22            FloatComparisonMixin
23    
24            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
25            It's now in FloatComparisonMixin
26    
27            * test/test_derivedshapestore.py
28            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
29            in FloatComparisonMixin
30    
31    2003-08-11  Bernhard Herzog  <[email protected]>
32    
33            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
34            error message
35    
36    2003-08-08  Jan-Oliver Wagner <[email protected]>
37    
38            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
39            with version number.
40            Changed title to reflect version number of Thuban.
41    
42    2003-08-08  Jan-Oliver Wagner <[email protected]>
43    
44            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
45            the list corresponds to the "About" web page.
46    
47    2003-08-08  Bernhard Herzog  <[email protected]>
48    
49            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
50            Make sure translated strings are recognized as one string literal.
51    
52            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
53            Make sure translated strings are recognized as one string literal.
54    
55            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
56            translated strings are recognized as one string literal.
57    
58            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
59            sure translated strings are recognized as one string literal.
60    
61    2003-08-07  Bernhard Herzog  <[email protected]>
62    
63            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
64            Simply delegates to the original shapestore.
65    
66            * test/test_derivedshapestore.py
67            (TestDerivedShapeStore.test_raw_format): New. Test case for
68            DerivedShapeStore.RawShapeFormat
69    
70    2003-08-07  Bernhard Herzog  <[email protected]>
71    
72            Add raw data interface to shape objects.
73    
74            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
75            class to ShapefileShape which now holds shapefile specific
76            information.
77            (ShapefileShape.compute_bbox): Simplified to not cache any
78            information. The way this method is used that shouldn't matter
79            performance wise.
80            (ShapefileShape.RawData): New. Return the shapeid which is the raw
81            data format for shapes from shapefiles.
82            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
83            in the shape objects returned by a shapestore. For a
84            ShapefileStore this is always RAW_SHAPEFILE.
85            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
86            method.
87    
88            * test/test_shapefilestore.py
89            (TestShapefileStore.test_raw_format): New test to test the raw
90            format feature of shapes.
91    
92            * Thuban/Model/layer.py: Remove the unused import of Shape from
93            data. It was only there for interface compatibility but it's not
94            used inside of Thuban and the generic Shape class has gone away.
95    
96            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
97            the raw data format and only use an optimized version of its a
98            shapefile.
99    
100    2003-08-07  Bernhard Herzog  <[email protected]>
101    
102            * test/test_baserenderer.py (SimpleShape): Shape class for the
103            tests.
104            (SimpleShapeStore.Shape): Use SimpleShape instead of
105            Thuban.Model.data.Shape to make the tests independed of the coming
106            changes.
107    
108    2003-08-07  Bernhard Herzog  <[email protected]>
109    
110            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
111            (ThubanTestProgram): New classes that extend the respective
112            classes from unittest. These new version support skipping tests
113            under certain expected conditions. In the Thuban test suite we
114            uses this for tests that require the optional gdal support.
115            (run_tests): Use ThubanTestProgram instead of the unittest.main()
116    
117            * test/runtests.py (main): Use the new ThubanTestRunner instead of
118            the normal one from unittest
119    
120            * test/test_layer.py (TestLayer.test_raster_layer): If this test
121            is not run because gdal support isn't available report this to the
122            runner.
123    
124            * test/test_baserenderer.py
125            (TestBaseRenderer.test_raster_no_projection): Do not run this test
126            if gdal support isn't available and report this to the runner.
127    
128    2003-08-06  Bernhard Herzog  <[email protected]>
129    
130            Rearrange the renderers a bit, partly in preparation for changes
131            required for the postgis merge, partly to make it more testable.
132            Also make the representation of coordinates in Shapes more
133            consistent.
134    
135            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
136            this class is now in BaseRenderer. This class is now practically
137            only a specialization of BaseRenderer for rendering to an actual
138            wx DC.
139            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
140            to get the shapetype specific rendering functions.
141    
142            * Thuban/UI/baserenderer.py: New file with the basic rendering
143            logic. The code in this file is completely independend of wx.
144            (BaseRenderer): Class with the basic rendering logic
145    
146            * test/test_baserenderer.py: New. Test cases for BaseRenderer
147    
148            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
149            error_on_redraw to guard agains endless loops and stack overflows
150            when there's a bug in the rendering code that raises exceptions.
151            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
152            rendering into a separate method _do_redraw so that error handling
153            is a bit easier. When an exception occurs, set error_on_redraw to
154            true. When it's true on entry to OnIdle do nothing and return
155            immediately.
156    
157            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
158            Shape object will always have the coordinates as a list of list of
159            coordinate pairs (tuples).
160            (Shape.compute_bbox): Adapt to new representation.
161    
162            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
163            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
164            Shape objects.
165    
166            * test/test_shapefilestore.py
167            (ShapefileStoreTests.assertFloatTuplesEqual)
168            (ShapefileStoreTests.assertPointListEquals): Rename to
169            assertPointListEquals and change purpose to checking equality of
170            the lists returned by Shape.Points().
171            (TestShapefileStoreArc.test_shape)
172            (TestShapefileStorePolygon.test_shape)
173            (TestShapefileStorePoint.test_shape): Use the new
174            assertPointListEquals instead of assertFloatTuplesEqual
175    
176            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
177            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
178            and change purpose to checking equality of the lists returned by
179            Shape.Points().
180            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
181            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
182            (TestLayer.test_derived_store): Use the new assertPointListEquals
183            instead of assertFloatTuplesEqual
184    
185            * test/test_derivedshapestore.py
186            (TestDerivedShapeStore.assertFloatTuplesEqual)
187            (TestDerivedShapeStore.assertPointListEquals): Rename to
188            assertPointListEquals and change purpose to checking equality of
189            the lists returned by Shape.Points().
190            (TestDerivedShapeStore.test_shape): Use the new
191            assertPointListEquals instead of assertFloatTuplesEqual
192    
193    2003-08-06  Jan-Oliver Wagner <[email protected]>
194    
195            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
196            a bounding box. A dialog is raised in case, no bounding box
197            is found. This fixes bug #2043:
198            https://intevation.de/rt/webrt?serial_num=2043
199    
200    2003-08-05  Bernhard Herzog  <[email protected]>
201    
202            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
203            object look like a Color instantiation. Formerly it looked like a
204            tuple.
205    
206            * test/test_color.py (TestColor.test_repr)
207            (TestColor.test_equality, TestColor.test_inequality): New. test
208            some more apects of the Color class
209            (TestTransparent.test_repr, TestTransparent.test_hex)
210            (TestTransparent.test_equality): New. Test cases for the
211            Transparent object.
212    
213    2003-08-04  Jan-Oliver Wagner <[email protected]>
214    
215            * Doc/manual/thuban-manual.xml: a number of small improvements.
216            The resulting file is the version submitted for GREAT-ER II.
217    
218    2003-08-01  Bernhard Herzog  <[email protected]>
219    
220            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
221            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
222            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
223    
224            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
225            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
226            (ThubanEndBusyCursor): Add doc-strings
227    
228    2003-08-01  Bernhard Herzog  <[email protected]>
229    
230            First step towards PostGIS integration. More abstraction by movin
231            more code from the layer to the shapestore. More methods of the
232            layer are now simply delegated to the equivalent method of the
233            shapestore. The SHAPETYPE_* constants are now in data not in
234            layer.
235    
236            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
237            (SHAPETYPE_POINT, Shape): Move these constants and classes from
238            layer.py to data.py
239            (ShapefileStore.__init__): More Initialization for the new methods
240            and functionality.
241            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
242            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
243            (ShapefileStore.Shape): New methods that were formerly implemented
244            in the layer.
245            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
246            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
247            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
248            equivalents of the new shape methods. These versions are simply
249            delegated to the original shapstore.
250    
251            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
252            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
253            (Layer.SetShapeStore): Removed the initializatin of instance
254            variables that were needed for the stuff that's now in
255            ShapefileStore
256            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
257            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
258            shapestore.
259    
260            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
261            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
262            instead of layer.
263    
264            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
265    
266            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
267    
268            * test/test_layer.py: Import the SHAPETYPE_* constants from data
269            instead of layer.
270            (TestLayer.test_derived_store): Remove the test for the exception
271            when instantiating the DerivedShapeStore with an incompatible
272            table which is now in test_derivedshapestore.py. Add some more
273            tests of the layer methods to determine whether they work for a
274            DerivedShapeStore as well.
275    
276    2003-07-31  Jonathan Coles   <[email protected]>
277    
278            * Doc/manual/thuban-manual.xml: Fix the list of required packages
279            by just listing the name and where they can be found.
280    
281    2003-07-31  Frank Koormann   <[email protected]>
282    
283            * Doc/manual/thuban-manual.xml:
284            Changed the screenshot elements to figure.
285            Changed some variablelist elements to itemizedlist.
286            Added section on GDAL formats.
287    
288    2003-07-31  Jonathan Coles   <[email protected]>
289    
290            * Doc/manual/thuban-manual.xml: Added a few sentences about
291            the Fix Border Color option when generating classes.
292    
293    2003-07-30  Jonathan Coles   <[email protected]>
294    
295            * Thuban/Model/classgen.py: Add docstrings. Rename specific
296            Ramp instances to use lower_case_style.
297    
298            * Thuban/UI/classgen.py: Use renamed Ramp instances.
299            
300            * Thuban/UI/classifier.py: Add docstrings.
301    
302            * Thuban/UI/dock.py: Add docstrings.
303    
304            * test/test_classgen.py: Use renamed Ramp instances.
305    
306    2003-07-30  Bernhard Herzog  <[email protected]>
307    
308            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
309            was never used in Thuban.
310    
311    2003-07-30  Bernhard Herzog  <[email protected]>
312    
313            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
314            method directly instead of going through the transient_table
315            method. This faster because transient_table may force the copy of
316            a DBF file into the transient database and setting a table's title
317            doesnm't affect the title of the associated transient table, so
318            this fixes RT #2042
319    
320            * Thuban/UI/main.py (__version__): Don't import the already
321            removed show_exception_dialog.
322    
323    2003-07-29  Jonathan Coles   <[email protected]>
324    
325            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
326            Put back this method and remove the equivalent function since we
327            are setting the exception hook from within this class (OnInit).
328    
329    2003-07-29  Jonathan Coles   <[email protected]>
330    
331            * Doc/manual/images/5_2_custom_ramp.png,
332            Doc/manual/images/5_2_quantiles.png,
333            Doc/manual/images/5_2_uniform_dist.png,
334            Doc/manual/images/5_2_unique_values.png,
335            Doc/manual/images/8_int_error.png: New screen shots.
336    
337            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
338            some points, and added more screen shots.
339    
340    2003-07-29  Bernhard Herzog  <[email protected]>
341    
342            * Thuban/Model/data.py: Remove the now unused import of warnings
343    
344    2003-07-29  Bernhard Herzog  <[email protected]>
345    
346            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
347            deprecated since before the 0.8 release and isn't used in Thuban
348            itself anymore.
349    
350            * Thuban/Model/transientdb.py: Remove some unnecessary imports
351    
352    2003-07-29  Jonathan Coles   <[email protected]>
353    
354            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
355            python exception hook here so that we are sure to catch any
356            Thuban exception that happen during initialization.
357    
358            * Thuban/UI/main.py (main): Don't set the exception hook here,
359            it will get set in ThubanApplication.OnInit.
360    
361    2003-07-29  Jonathan Coles   <[email protected]>
362                                                                                
363            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
364            Removed and called it show_exception_dialog() so that the exception
365            handler can be set before the class is created.
366                                                                                
367            * Thuban/UI/main.py (main): Install the exception handler before
368            a ThubanApplication is created.
369                                                                                    
370    2003-07-29  Bernhard Herzog  <[email protected]>
371    
372            * po/it.po: New. Italian translation by Maurizio Napolitano
373    
374            * po/ru.po: New. Russian translation by Alex Shevlakov
375    
376    2003-07-29  Frank Koormann   <[email protected]>
377    
378            * Doc/manual/thuban-manual.xml: Extended section on supported
379            projections.
380            
381    2003-07-29  Frank Koormann   <[email protected]>
382    
383            * Doc/manual/thuban-manual.xml: gaspell-checked.
384    
385    2003-07-29  Jonathan Coles   <[email protected]>
386    
387            * Doc/manual/images/3_5_legend.png: Added border to improve look
388            on white background.
389    
390    2003-07-29  Jonathan Coles   <[email protected]>
391    
392            * Doc/manual/thuban-manual.xml: Fixed grammar and typos. Added
393            descriptions for the legend toolbar.
394    
395            * Doc/manual/images/4_2_raster_layer_properties.png: Removed
396            cursor from dialog box.
397    
398    2003-07-28  Jonathan Coles   <[email protected]>
399    
400            * Doc/manual/thuban-manual.xml: More screenshots and more chapters.
401    
402            * Doc/manual/images/2_4_session_tree.png,
403            Doc/manual/images/3_5_legend.png, Doc/manual/images/3_rename_map.png,
404            Doc/manual/images/4_2_layer_properties.png,
405            Doc/manual/images/4_2_raster_layer_properties.png,
406            Doc/manual/images/5_3_genclass.png,
407            Doc/manual/images/5_classification.png,
408            Doc/manual/images/6_projection.png,
409            Doc/manual/images/7_1_table_view.png,
410            Doc/manual/images/7_2_5_join.png: New screenshots.
411    
412    2003-07-24  Jonathan Coles   <[email protected]>
413    
414            * Doc/manual/thuban-manual.xml: Chapter on Projection Management.
415    
416    2003-07-24  Jonathan Coles   <[email protected]>
417    
418            * Doc/manual/thuban-manual.xml: Added EPS images and wrote
419            chapter on Layer Management.
420    
421            * Doc/manual/Makefile: New. Makefile to generate all formats for the
422            manual and images.
423    
424    2003-07-24  Bernhard Herzog  <[email protected]>
425    
426            * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
427            it annoys lintian which warns about these files not being
428            executable. The #1 isn't necessary here since if you absolutely
429            must execute them you can always say "python <filename>".
430    
431            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove
432            superfluous code to set brush and pen for point shapes
433    
434            * Thuban/UI/viewport.py: Remove commented out code that wouldn't
435            belong in viewport anyway
436    
437    2003-07-24  Frank Koormann   <[email protected]>
438    
439            * Doc/manual/thuban-manual.xml: Added section on table management.
440    
441    2003-07-24  Bernhard Herzog  <[email protected]>
442    
443            * test/runtests.py (main): Recognize the long "verbose" option
444            correctly.
445    
446    2003-07-22  Jonathan Coles   <[email protected]>
447    
448            * Doc/manual/thuban-manual.xml: Continue to write first revision
449            of the manual.
450    
451            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
452            with Begin/EndDrawing() calls to ensure we aren't doing to
453            many updates to the dc during rendering.
454            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
455            a pen and brush argument so they need to be passed to the function.
456    
457            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
458            Calculates the minimum and maximum scale values. Factored out
459            of set_view_transform so that it could be used to zoom all the
460            way into a single point.
461            (ViewPort.set_view_transform): Call calc_min_max_scales().
462            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
463            if only a single point is selected.
464    
465            * Doc/manual/images/1_2_legend_close.png,
466            Doc/manual/images/1_2_legend_dock.png,
467            Doc/manual/images/1_2_mainwindow.png,
468            Doc/manual/images/1_2_mainwindow.ps,
469            Doc/manual/images/1_2_mainwindow.sk,
470            Doc/manual/images/3_2_fullextent.png,
471            Doc/manual/images/3_2_fulllayerextent.png,
472            Doc/manual/images/3_2_fullshapeextent.png,
473            Doc/manual/images/3_2_pan.png,
474            Doc/manual/images/3_2_zoomin.png,
475            Doc/manual/images/3_2_zoomout.png,
476            Doc/manual/images/3_3_identify.png,
477            Doc/manual/images/3_3_label.png,
478            Doc/manual/images/3_5_invisible.png,
479            Doc/manual/images/3_5_movedown.png,
480            Doc/manual/images/3_5_moveup.png,
481            Doc/manual/images/3_5_props.png,
482            Doc/manual/images/3_5_tobottom.png,
483            Doc/manual/images/3_5_totop.png,
484            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
485    
486    2003-07-18  Bernhard Herzog  <[email protected]>
487    
488            * Thuban/UI/messages.py (MAP_REPLACED): New message.
489    
490            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
491            after the new map has been assigned
492    
493            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
494            Delegate MAP_REPLACED to the canvas too
495            (MainWindow.prepare_new_session): Removed. Thanks to the new
496            MAP_REPLACED message it's no longer needed
497            (MainWindow.OpenSession, MainWindow.NewSession):
498            prepare_new_session has been removed.
499    
500            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
501            MAP_REPLACED so that we can close the dialog if a new map is set.
502            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
503            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
504            dialog
505    
506            * test/test_viewport.py (SimpleViewPortTest)
507            (SimpleViewPortTest.test_default_size): Add doc-strings
508            (ViewPortTest.setUp): Bind map to self.map so we can use it in
509            tests. Subscribe to MAP_REPLACED messages too.
510            (ViewPortTest.tearDown): No need to explicitly unsubscribe
511            (ViewPortTest.test_set_map): New test for the SetMap method.
512    
513    2003-07-18  Bernhard Herzog  <[email protected]>
514    
515            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
516            Move this test from ViewPortTest.setUp to this new separate test
517            case. setUp is not the place for the actual tests.
518            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
519            more of the test from setUp to the new test test_inital_settings.
520            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
521            (ViewPortTest.test_proj_conv): Split test_proj_conv into
522            test_win_to_proj and test_proj_to_win and make the tests easier to
523            understand
524            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
525            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
526            (ViewPortTest.test_unprojected_rect_around_point)
527            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
528            Reformat to increase readability.
529    
530    2003-07-18  Bernhard Herzog  <[email protected]>
531    
532            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
533    
534    2003-07-18  Bernhard Herzog  <[email protected]>
535    
536            * test/runtests.py: The test suite can now be run without an X
537            connection. To make sure this remains true, remove the DISPLAY
538            environment variable so that an error occurs if the wxGTK is
539            imported accidentally
540    
541    2003-07-18  Bernhard Herzog  <[email protected]>
542    
543            * Thuban/UI/viewport.py: Remove unused imports
544    
545            * Thuban/UI/view.py: Remove unused imports
546    
547    2003-07-18  Bernhard Herzog  <[email protected]>
548    
549            * test/test_export.py Remove unused imports. The OutputTransform
550            function is now in viewport.py and is called output_transform
551            (TestScalebar.test_output_transform)
552            (TestScalebar.test_OutputTransform): Renamed to
553            test_output_transform and updated to use output_transform instead
554            of OutputTransform
555    
556            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
557            renamed.
558            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
559            renamed to output_transform
560    
561            * Thuban/UI/viewport.py (OutputTransform, output_transform):
562            Rename to output_transform
563    
564    2003-07-18  Bernhard Herzog  <[email protected]>
565    
566            * Thuban/Model/layer.py (Layer.__init__): Rename
567            classificationField to classificatin_column and init it here so
568            that it can be used in SetClassificationColumn
569            (Layer.GetClassificationColumn, Layer.GetClassificationField):
570            Rename to GetClassificationColumn.
571            (Layer.SetClassificationColumn, Layer.SetClassificationField):
572            Rename to SetClassificationColumn and issue a LAYER_CHANGED
573            message if the column changes.
574            (Layer._classification_changed, Layer.ClassChanged): Rename to
575            _classification_changed. Update the callers.
576            (Layer.SetShapeStore): Further field->column renames.
577    
578            * Thuban/Model/load.py (SessionLoader.start_classification)
579            (SessionLoader.start_clpoint): Updates because of
580            field->column method name changes in the Layer class
581    
582            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
583            because of field->column method name changes in the Layer class
584    
585            * Thuban/UI/classifier.py (Classifier.__init__)
586            (Classifier._OnTry, Classifier._OnRevert): Updates because of
587            field->column method name changes in the Layer class
588    
589            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
590            because of field->column method name changes in the Layer class
591    
592            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
593            of field->column method name changes in the Layer class
594    
595            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
596            (SaveSessionTest.testClassifiedLayer): Update because of
597            field->column method name changes in the Layer class
598    
599            * test/test_layer.py (SetShapeStoreTests.setUp)
600            (SetShapeStoreTests.test_sanity): Update because of field->column
601            method name changes in the Layer class
602            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
603            (TestLayerModification.test_sanity)
604            (TestLayerModification.test_initial_settings): remove unsued code
605            and rename to test_sanity.
606            (TestLayerModification.test_set_classification): New test for
607            SetClassification and SetClassificationField.
608    
609    2003-07-18  Bernhard Herzog  <[email protected]>
610    
611            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
612            the non-fixed values as well. The old test would have accepted a
613            fixed ramp that only returnes the fixed properties
614    
615    2003-07-17  Jonathan Coles   <[email protected]>
616    
617            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
618            shots for the manual. The XCF file is the source image and
619            has additional layers to support changes.
620    
621            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
622    
623            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
624            Return both the new class and the field name.
625    
626            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
627            fit the map to the window as this changes any zoom level that
628            the user may have set.
629    
630    2003-07-16  Jonathan Coles   <[email protected]>
631    
632            * Thuban/Model/classgen.py (generate_singletons,
633            generate_uniform_distribution, generate_quantiles): Remove
634            fixes parameter, but maintain the same functionality by having
635            the calling function pass a FixedRamp object for the ramp.
636            (FixedRamp): New. Adapts a ramp to have fixed property values.
637    
638            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
639            (Classification): Inherit from Publisher.
640            (Classification.__init__): Remove the layer parameter.
641            Classifications no longer need to have a parent layer.
642            (Classification.GetField, Classification.GetFieldType,
643            Classification.SetFieldInfo): Removed. The field name is stored
644            in the layer, and the type can be retreived by calling
645            Layer.GetFieldType().
646            (Classification._set_layer, Classification.GetLayer): Removed.
647            Classifications no longer have a parent layer.
648    
649            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
650            classification.
651            (Layer.SetShapeStore): Reset the classification first while
652            we still have the old shape store to work with.
653            (Layer.GetClassificationField, Layer.SetClassificationField):
654            New. Method for getting/setting the field to classify on.
655            (Layer.SetClassification): Simplified now that the layer
656            simply has to hold a reference to the classification and not
657            tell the classification who owns it.
658            Fixes RTbug #2023.
659    
660            * Thuban/Model/load.py (SessionLoader.start_classification):
661            Set the field name on the layer, not the classification.
662    
663            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
664            classification is modified.
665    
666            * Thuban/Model/save.py (SessionSaver.write_classification):
667            Get the field name and type from the layer.
668    
669            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
670            parameter records to rows and add docstring. Fixes RTbug #1997.
671    
672            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
673            ramp when we need to fix certain values of a ramp rather than
674            using the old fixes parameter. Fixes RTbug #2024.
675    
676            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
677            parameter.
678            (ClassTable.Reset): Add fieldType parameter and use it, rather
679            than asking the classification.
680            (Classifier.__init__): Remember the original class's field
681            and ask the layer for the field type, rather than the classification.
682            (Classifier.__SetGridTable): Retrieve the field and field type
683            for the table because they are not in the classification.
684            (Classifier._OnTry, Classifier._OnRevert): Set the classification
685            field on the layer in addition to the classification itself.
686    
687            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
688            classification field from layer.
689    
690            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
691            classification field from layer. Split up tests and remove
692            *-imports. Fixes RTbug #1992.
693    
694            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
695    
696            * test/test_classification.py
697            (TestClassification.test_classification): Remove tests for methods
698            that no longer exist.
699    
700            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
701            __init__ no longer has a field parameter, use SetClassificationField.
702            (SetShapeStoreTests.test_sanity): Use layer object to get class
703            field info.
704    
705            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
706            SetClassificationField on layer to set class field info.
707    
708            * test/test_viewport.py: Renamed from test/test_view.py.
709    
710    2003-07-16  Jan-Oliver Wagner <[email protected]>
711    
712            * Doc/manual/thuban-manual.xml: Added authors and an initial
713            coarse structure.
714    
715    2003-07-15  Bernhard Herzog  <[email protected]>
716    
717            * test/support.py (FloatComparisonMixin): This is a mix-in class
718            and therefore should not be derived from any other class.
719    
720            * test/test_range.py (RangeTest): FloatComparisonMixin is a
721            mix-in, so derive from TestCase as well.
722    
723    2003-07-15  Bernhard Herzog  <[email protected]>
724    
725            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
726            draw_func handling a bit to remove one layer of indirection. This
727            makes the renderer about 10% faster in the non-classifying case
728            and the code a bit cleaner
729            (MapRenderer.draw_point_shape): Add the pen and brush parameters
730            and set them in the dc. Now the draw_point_shape method and
731            wxproj's draw_polygon_shape function have basically the same
732            signature so that both can be directly used as draw_func
733    
734    2003-07-15  Bernhard Herzog  <[email protected]>
735    
736            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
737            string values (in addition to the labels) as UTF 8
738    
739            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
740            values if the field type is string
741    
742            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
743            saving a session with non-ascii string classification values.
744    
745            * test/test_load.py (TestClassification.file_contents)
746            (TestClassification.test): Check for non-ascii values in string
747            classifications
748    
749    2003-07-14  Jonathan Coles   <[email protected]>
750    
751            * test/test_view.py: New. Tests for ViewPort.
752    
753    2003-07-14  Frank Koormann   <[email protected]>
754    
755            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
756            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
757    
758            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
759            unicode strings from session file: session title, map title and
760            projection name.
761            
762    2003-07-10  Jonathan Coles   <[email protected]>
763    
764            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
765            drag_stop, not drag_move when the mouse is released.
766    
767  2003-07-10  Jonathan Coles   <[email protected]>  2003-07-10  Jonathan Coles   <[email protected]>
768    
769          The most important part of this is the seperation of view.py into          The most important part of this is the seperation of view.py into

Legend:
Removed from v.1403  
changed lines
  Added in v.1584

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26