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

Legend:
Removed from v.1286  
changed lines
  Added in v.1516

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26