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

Legend:
Removed from v.1283  
changed lines
  Added in v.1534

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26