/[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 1376 by bh, Tue Jul 8 10:53:26 2003 UTC revision 1479 by frank, Thu Jul 24 17:01:43 2003 UTC
# Line 1  Line 1 
1    2003-07-24  Frank Koormann   <[email protected]>
2    
3            * Doc/manual/thuban-manual.xml: Added section on table management.
4    
5    2003-07-24  Bernhard Herzog  <[email protected]>
6    
7            * test/runtests.py (main): Recognize the long "verbose" option
8            correctly.
9    
10    2003-07-22  Jonathan Coles   <[email protected]>
11    
12            * Doc/manual/thuban-manual.xml: Continue to write first revision
13            of the manual.
14    
15            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
16            with Begin/EndDrawing() calls to ensure we aren't doing to
17            many updates to the dc during rendering.
18            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
19            a pen and brush argument so they need to be passed to the function.
20    
21            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
22            Calculates the minimum and maximum scale values. Factored out
23            of set_view_transform so that it could be used to zoom all the
24            way into a single point.
25            (ViewPort.set_view_transform): Call calc_min_max_scales().
26            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
27            if only a single point is selected.
28    
29            * Doc/manual/images/1_2_legend_close.png,
30            Doc/manual/images/1_2_legend_dock.png,
31            Doc/manual/images/1_2_mainwindow.png,
32            Doc/manual/images/1_2_mainwindow.ps,
33            Doc/manual/images/1_2_mainwindow.sk,
34            Doc/manual/images/3_2_fullextent.png,
35            Doc/manual/images/3_2_fulllayerextent.png,
36            Doc/manual/images/3_2_fullshapeextent.png,
37            Doc/manual/images/3_2_pan.png,
38            Doc/manual/images/3_2_zoomin.png,
39            Doc/manual/images/3_2_zoomout.png,
40            Doc/manual/images/3_3_identify.png,
41            Doc/manual/images/3_3_label.png,
42            Doc/manual/images/3_5_invisible.png,
43            Doc/manual/images/3_5_movedown.png,
44            Doc/manual/images/3_5_moveup.png,
45            Doc/manual/images/3_5_props.png,
46            Doc/manual/images/3_5_tobottom.png,
47            Doc/manual/images/3_5_totop.png,
48            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
49    
50    2003-07-18  Bernhard Herzog  <[email protected]>
51    
52            * Thuban/UI/messages.py (MAP_REPLACED): New message.
53    
54            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
55            after the new map has been assigned
56    
57            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
58            Delegate MAP_REPLACED to the canvas too
59            (MainWindow.prepare_new_session): Removed. Thanks to the new
60            MAP_REPLACED message it's no longer needed
61            (MainWindow.OpenSession, MainWindow.NewSession):
62            prepare_new_session has been removed.
63    
64            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
65            MAP_REPLACED so that we can close the dialog if a new map is set.
66            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
67            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
68            dialog
69    
70            * test/test_viewport.py (SimpleViewPortTest)
71            (SimpleViewPortTest.test_default_size): Add doc-strings
72            (ViewPortTest.setUp): Bind map to self.map so we can use it in
73            tests. Subscribe to MAP_REPLACED messages too.
74            (ViewPortTest.tearDown): No need to explicitly unsubscribe
75            (ViewPortTest.test_set_map): New test for the SetMap method.
76    
77    2003-07-18  Bernhard Herzog  <[email protected]>
78    
79            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
80            Move this test from ViewPortTest.setUp to this new separate test
81            case. setUp is not the place for the actual tests.
82            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
83            more of the test from setUp to the new test test_inital_settings.
84            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
85            (ViewPortTest.test_proj_conv): Split test_proj_conv into
86            test_win_to_proj and test_proj_to_win and make the tests easier to
87            understand
88            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
89            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
90            (ViewPortTest.test_unprojected_rect_around_point)
91            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
92            Reformat to increase readability.
93    
94    2003-07-18  Bernhard Herzog  <[email protected]>
95    
96            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
97    
98    2003-07-18  Bernhard Herzog  <[email protected]>
99    
100            * test/runtests.py: The test suite can now be run without an X
101            connection. To make sure this remains true, remove the DISPLAY
102            environment variable so that an error occurs if the wxGTK is
103            imported accidentally
104    
105    2003-07-18  Bernhard Herzog  <[email protected]>
106    
107            * Thuban/UI/viewport.py: Remove unused imports
108    
109            * Thuban/UI/view.py: Remove unused imports
110    
111    2003-07-18  Bernhard Herzog  <[email protected]>
112    
113            * test/test_export.py Remove unused imports. The OutputTransform
114            function is now in viewport.py and is called output_transform
115            (TestScalebar.test_output_transform)
116            (TestScalebar.test_OutputTransform): Renamed to
117            test_output_transform and updated to use output_transform instead
118            of OutputTransform
119    
120            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
121            renamed.
122            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
123            renamed to output_transform
124    
125            * Thuban/UI/viewport.py (OutputTransform, output_transform):
126            Rename to output_transform
127    
128    2003-07-18  Bernhard Herzog  <[email protected]>
129    
130            * Thuban/Model/layer.py (Layer.__init__): Rename
131            classificationField to classificatin_column and init it here so
132            that it can be used in SetClassificationColumn
133            (Layer.GetClassificationColumn, Layer.GetClassificationField):
134            Rename to GetClassificationColumn.
135            (Layer.SetClassificationColumn, Layer.SetClassificationField):
136            Rename to SetClassificationColumn and issue a LAYER_CHANGED
137            message if the column changes.
138            (Layer._classification_changed, Layer.ClassChanged): Rename to
139            _classification_changed. Update the callers.
140            (Layer.SetShapeStore): Further field->column renames.
141    
142            * Thuban/Model/load.py (SessionLoader.start_classification)
143            (SessionLoader.start_clpoint): Updates because of
144            field->column method name changes in the Layer class
145    
146            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
147            because of field->column method name changes in the Layer class
148    
149            * Thuban/UI/classifier.py (Classifier.__init__)
150            (Classifier._OnTry, Classifier._OnRevert): Updates because of
151            field->column method name changes in the Layer class
152    
153            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
154            because of field->column method name changes in the Layer class
155    
156            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
157            of field->column method name changes in the Layer class
158    
159            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
160            (SaveSessionTest.testClassifiedLayer): Update because of
161            field->column method name changes in the Layer class
162    
163            * test/test_layer.py (SetShapeStoreTests.setUp)
164            (SetShapeStoreTests.test_sanity): Update because of field->column
165            method name changes in the Layer class
166            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
167            (TestLayerModification.test_sanity)
168            (TestLayerModification.test_initial_settings): remove unsued code
169            and rename to test_sanity.
170            (TestLayerModification.test_set_classification): New test for
171            SetClassification and SetClassificationField.
172    
173    2003-07-18  Bernhard Herzog  <[email protected]>
174    
175            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
176            the non-fixed values as well. The old test would have accepted a
177            fixed ramp that only returnes the fixed properties
178    
179    2003-07-17  Jonathan Coles   <[email protected]>
180    
181            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
182            shots for the manual. The XCF file is the source image and
183            has additional layers to support changes.
184    
185            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
186    
187            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
188            Return both the new class and the field name.
189    
190            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
191            fit the map to the window as this changes any zoom level that
192            the user may have set.
193    
194    2003-07-16  Jonathan Coles   <[email protected]>
195    
196            * Thuban/Model/classgen.py (generate_singletons,
197            generate_uniform_distribution, generate_quantiles): Remove
198            fixes parameter, but maintain the same functionality by having
199            the calling function pass a FixedRamp object for the ramp.
200            (FixedRamp): New. Adapts a ramp to have fixed property values.
201    
202            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
203            (Classification): Inherit from Publisher.
204            (Classification.__init__): Remove the layer parameter.
205            Classifications no longer need to have a parent layer.
206            (Classification.GetField, Classification.GetFieldType,
207            Classification.SetFieldInfo): Removed. The field name is stored
208            in the layer, and the type can be retreived by calling
209            Layer.GetFieldType().
210            (Classification._set_layer, Classification.GetLayer): Removed.
211            Classifications no longer have a parent layer.
212    
213            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
214            classification.
215            (Layer.SetShapeStore): Reset the classification first while
216            we still have the old shape store to work with.
217            (Layer.GetClassificationField, Layer.SetClassificationField):
218            New. Method for getting/setting the field to classify on.
219            (Layer.SetClassification): Simplified now that the layer
220            simply has to hold a reference to the classification and not
221            tell the classification who owns it.
222            Fixes RTbug #2023.
223    
224            * Thuban/Model/load.py (SessionLoader.start_classification):
225            Set the field name on the layer, not the classification.
226    
227            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
228            classification is modified.
229    
230            * Thuban/Model/save.py (SessionSaver.write_classification):
231            Get the field name and type from the layer.
232    
233            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
234            parameter records to rows and add docstring. Fixes RTbug #1997.
235    
236            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
237            ramp when we need to fix certain values of a ramp rather than
238            using the old fixes parameter. Fixes RTbug #2024.
239    
240            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
241            parameter.
242            (ClassTable.Reset): Add fieldType parameter and use it, rather
243            than asking the classification.
244            (Classifier.__init__): Remember the original class's field
245            and ask the layer for the field type, rather than the classification.
246            (Classifier.__SetGridTable): Retrieve the field and field type
247            for the table because they are not in the classification.
248            (Classifier._OnTry, Classifier._OnRevert): Set the classification
249            field on the layer in addition to the classification itself.
250    
251            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
252            classification field from layer.
253    
254            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
255            classification field from layer. Split up tests and remove
256            *-imports. Fixes RTbug #1992.
257    
258            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
259    
260            * test/test_classification.py
261            (TestClassification.test_classification): Remove tests for methods
262            that no longer exist.
263    
264            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
265            __init__ no longer has a field parameter, use SetClassificationField.
266            (SetShapeStoreTests.test_sanity): Use layer object to get class
267            field info.
268    
269            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
270            SetClassificationField on layer to set class field info.
271    
272            * test/test_viewport.py: Renamed from test/test_view.py.
273    
274    2003-07-16  Jan-Oliver Wagner <[email protected]>
275    
276            * Doc/manual/thuban-manual.xml: Added authors and an initial
277            coarse structure.
278    
279    2003-07-15  Bernhard Herzog  <[email protected]>
280    
281            * test/support.py (FloatComparisonMixin): This is a mix-in class
282            and therefore should not be derived from any other class.
283    
284            * test/test_range.py (RangeTest): FloatComparisonMixin is a
285            mix-in, so derive from TestCase as well.
286    
287    2003-07-15  Bernhard Herzog  <[email protected]>
288    
289            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
290            draw_func handling a bit to remove one layer of indirection. This
291            makes the renderer about 10% faster in the non-classifying case
292            and the code a bit cleaner
293            (MapRenderer.draw_point_shape): Add the pen and brush parameters
294            and set them in the dc. Now the draw_point_shape method and
295            wxproj's draw_polygon_shape function have basically the same
296            signature so that both can be directly used as draw_func
297    
298    2003-07-15  Bernhard Herzog  <[email protected]>
299    
300            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
301            string values (in addition to the labels) as UTF 8
302    
303            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
304            values if the field type is string
305    
306            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
307            saving a session with non-ascii string classification values.
308    
309            * test/test_load.py (TestClassification.file_contents)
310            (TestClassification.test): Check for non-ascii values in string
311            classifications
312    
313    2003-07-14  Jonathan Coles   <[email protected]>
314    
315            * test/test_view.py: New. Tests for ViewPort.
316    
317    2003-07-14  Frank Koormann   <[email protected]>
318    
319            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
320            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
321    
322            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
323            unicode strings from session file: session title, map title and
324            projection name.
325            
326    2003-07-10  Jonathan Coles   <[email protected]>
327    
328            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
329            drag_stop, not drag_move when the mouse is released.
330    
331    2003-07-10  Jonathan Coles   <[email protected]>
332    
333            The most important part of this is the seperation of view.py into
334            two pieces. viewport.py now has a class called ViewPort which
335            contains all the non-wx parts of view.py and can therefore be
336            tested. view.py contains only the wx-specific parts and is fairly
337            simple.
338    
339            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
340            RTTbug #1992.
341            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
342            RTTbug #1992.
343    
344            * Thuban/Model/classgen.py (generate_singletons,
345            generate_uniform_distribution, generate_quantiles):
346            Added 'fixes' parameter so that property attributes can
347            be held constant over the generated classification groups.
348            (CustomRamp.GetProperties): Remove unused variables.
349    
350            * Thuban/Model/map.py (Map.SetProjection): Send the old
351            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
352            event.
353    
354            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
355            parameter which is a list of records that restricts which
356            records are saved. Fixes RTbug #1997.
357    
358            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
359            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
360    
361            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
362            to allow the user to fix line color/width on generated groups.
363            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
364            functions to optionally fix group properties.
365    
366            * Thuban/UI/main.py (main): Set exception hook to the
367            ShowExceptionDialog. Fixes RTbug #1993.
368    
369            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
370            the table window when it is selectd to be shown.
371    
372            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
373            Export Selection button and move the export buttons underneath
374            the table.
375            (QueryTableFrame.UpdateStatusText): Added event argument so
376            that it can respond to grid selection events. The status text
377            is now updated even when the table is not associated with a
378            layer as was previously assumed.
379            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
380            UpdateStatusText responds to these events.
381            (QueryTableFrame.OnSaveAs): Renamed to doExport.
382            (QueryTableFrame.doExport): Helper function that saves the
383            entire table, or selected rows, to a file.
384            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
385            Respond to export button events and call doExport.
386    
387            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
388            the function doesn't return NULL without first setting a Python
389            Error.
390    
391            * test/runtests.py (main): Only print "Unknown option" for
392            unsupported options.
393    
394            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
395            optional epsilon argument to specify floating point accuracy.
396            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
397            for each item test.
398    
399            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
400            tests for saving selected records.
401    
402            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
403            tests for saving selected records.
404    
405            * test/test_map.py (TestMapWithContents.test_set_projection):
406            MAP_PROJECTION_CHANGED events send the old projection.
407    
408            * test/test_session.py
409            (TestSessionWithContent.test_forward_map_projection):
410            MAP_PROJECTION_CHANGED events send the old projection.
411    
412            * test/test_table.py (TableTest): Update tests to use non-deprecated
413            functions.
414    
415    2003-07-08  Bernhard Herzog  <[email protected]>
416    
417            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
418            constants in the column objects are the standard ones defined in
419            the table module.
420    
421            * test/test_transientdb.py
422            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
423            exporting transient tables as DBF works. This should catch the bug
424            just fixed in TransientTableBase.Width.
425    
426    2003-07-08  Bernhard Herzog  <[email protected]>
427    
428            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
429            interpolated colors correctly.
430    
431            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
432            New. Test case for the fix in classgen.py
433    
434    2003-07-08  Bernhard Herzog  <[email protected]>
435    
436            * test/runtests.py (main): Make the default output less verbose
437            and add a verbosity option (-v) to get the old output
438    
439  2003-07-08  Bernhard Herzog  <[email protected]>  2003-07-08  Bernhard Herzog  <[email protected]>
440    
441          * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for          * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for

Legend:
Removed from v.1376  
changed lines
  Added in v.1479

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26