/[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 1294 by jonathan, Mon Jun 23 13:06:13 2003 UTC revision 1424 by jan, Wed Jul 16 09:52:49 2003 UTC
# Line 1  Line 1 
1    2003-07-16  Jan-Oliver Wagner <[email protected]>
2    
3            * Doc/manual/thuban-manual.xml: Added authors and an initial
4            coarse structure.
5    
6    2003-07-15  Bernhard Herzog  <[email protected]>
7    
8            * test/support.py (FloatComparisonMixin): This is a mix-in class
9            and therefore should not be derived from any other class.
10    
11            * test/test_range.py (RangeTest): FloatComparisonMixin is a
12            mix-in, so derive from TestCase as well.
13    
14    2003-07-15  Bernhard Herzog  <[email protected]>
15    
16            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
17            draw_func handling a bit to remove one layer of indirection. This
18            makes the renderer about 10% faster in the non-classifying case
19            and the code a bit cleaner
20            (MapRenderer.draw_point_shape): Add the pen and brush parameters
21            and set them in the dc. Now the draw_point_shape method and
22            wxproj's draw_polygon_shape function have basically the same
23            signature so that both can be directly used as draw_func
24    
25    2003-07-15  Bernhard Herzog  <[email protected]>
26    
27            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
28            string values (in addition to the labels) as UTF 8
29    
30            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
31            values if the field type is string
32    
33            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
34            saving a session with non-ascii string classification values.
35    
36            * test/test_load.py (TestClassification.file_contents)
37            (TestClassification.test): Check for non-ascii values in string
38            classifications
39    
40    2003-07-14  Jonathan Coles   <[email protected]>
41    
42            * test/test_view.py: New. Tests for ViewPort.
43    
44    2003-07-14  Frank Koormann   <[email protected]>
45    
46            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
47            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
48    
49            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
50            unicode strings from session file: session title, map title and
51            projection name.
52            
53    2003-07-10  Jonathan Coles   <[email protected]>
54    
55            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
56            drag_stop, not drag_move when the mouse is released.
57    
58    2003-07-10  Jonathan Coles   <[email protected]>
59    
60            The most important part of this is the seperation of view.py into
61            two pieces. viewport.py now has a class called ViewPort which
62            contains all the non-wx parts of view.py and can therefore be
63            tested. view.py contains only the wx-specific parts and is fairly
64            simple.
65    
66            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
67            RTTbug #1992.
68            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
69            RTTbug #1992.
70    
71            * Thuban/Model/classgen.py (generate_singletons,
72            generate_uniform_distribution, generate_quantiles):
73            Added 'fixes' parameter so that property attributes can
74            be held constant over the generated classification groups.
75            (CustomRamp.GetProperties): Remove unused variables.
76    
77            * Thuban/Model/map.py (Map.SetProjection): Send the old
78            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
79            event.
80    
81            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
82            parameter which is a list of records that restricts which
83            records are saved. Fixes RTbug #1997.
84    
85            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
86            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
87    
88            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
89            to allow the user to fix line color/width on generated groups.
90            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
91            functions to optionally fix group properties.
92    
93            * Thuban/UI/main.py (main): Set exception hook to the
94            ShowExceptionDialog. Fixes RTbug #1993.
95    
96            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
97            the table window when it is selectd to be shown.
98    
99            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
100            Export Selection button and move the export buttons underneath
101            the table.
102            (QueryTableFrame.UpdateStatusText): Added event argument so
103            that it can respond to grid selection events. The status text
104            is now updated even when the table is not associated with a
105            layer as was previously assumed.
106            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
107            UpdateStatusText responds to these events.
108            (QueryTableFrame.OnSaveAs): Renamed to doExport.
109            (QueryTableFrame.doExport): Helper function that saves the
110            entire table, or selected rows, to a file.
111            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
112            Respond to export button events and call doExport.
113    
114            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
115            the function doesn't return NULL without first setting a Python
116            Error.
117    
118            * test/runtests.py (main): Only print "Unknown option" for
119            unsupported options.
120    
121            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
122            optional epsilon argument to specify floating point accuracy.
123            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
124            for each item test.
125    
126            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
127            tests for saving selected records.
128    
129            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
130            tests for saving selected records.
131    
132            * test/test_map.py (TestMapWithContents.test_set_projection):
133            MAP_PROJECTION_CHANGED events send the old projection.
134    
135            * test/test_session.py
136            (TestSessionWithContent.test_forward_map_projection):
137            MAP_PROJECTION_CHANGED events send the old projection.
138    
139            * test/test_table.py (TableTest): Update tests to use non-deprecated
140            functions.
141    
142    2003-07-08  Bernhard Herzog  <[email protected]>
143    
144            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
145            constants in the column objects are the standard ones defined in
146            the table module.
147    
148            * test/test_transientdb.py
149            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
150            exporting transient tables as DBF works. This should catch the bug
151            just fixed in TransientTableBase.Width.
152    
153    2003-07-08  Bernhard Herzog  <[email protected]>
154    
155            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
156            interpolated colors correctly.
157    
158            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
159            New. Test case for the fix in classgen.py
160    
161    2003-07-08  Bernhard Herzog  <[email protected]>
162    
163            * test/runtests.py (main): Make the default output less verbose
164            and add a verbosity option (-v) to get the old output
165    
166    2003-07-08  Bernhard Herzog  <[email protected]>
167    
168            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
169            0.9.
170    
171            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
172            New. Return the join type
173    
174            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
175            DTD
176            (SessionSaver.write_data_containers): Save the join type for
177            joined tables
178    
179            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
180            namespace
181            (SessionLoader.start_jointable): Handle the jointype attribute
182    
183            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
184            as of Thuban 0.8. These are now tests to determine whether Thuban
185            can still read files generated by Thuban 0.8
186    
187            * test/test_load.py (LoadSessionTest.dtd)
188            (TestSingleLayer.file_contents)
189            (TestLayerVisibility.file_contents, TestLabels.file_contents)
190            (TestLayerProjection.file_contents)
191            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
192            (TestJoinedTable.file_contents)
193            (TestLoadError.file_contents): Update for new DTD
194            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
195            for new join type attribute
196    
197            * test/test_save.py (SaveSessionTest.dtd)
198            (SaveSessionTest.testEmptySession)
199            (SaveSessionTest.testSingleLayer)
200            (SaveSessionTest.testLayerProjection)
201            (SaveSessionTest.testRasterLayer)
202            (SaveSessionTest.testClassifiedLayer)
203            (SaveSessionTest.test_dbf_table)
204            (SaveSessionTest.test_joined_table): Update for new DTD
205            (SaveSessionTest.test_joined_table): Add test for new join type
206            attribute
207    
208    2003-07-04  Bernhard Herzog  <[email protected]>
209    
210            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
211            function for table_to_dbf
212            (table_to_dbf): Deal with names longer than the 10 character limit
213    
214            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
215            doc-string
216            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
217            long column names
218    
219    2003-07-03  Bernhard Herzog  <[email protected]>
220    
221            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
222    
223    2003-07-03  Bernhard Herzog  <[email protected]>
224    
225            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
226            for the Thuban manual and README with some basic information about
227            the manual
228    
229    2003-07-03  Bernhard Herzog  <[email protected]>
230    
231            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
232            Update doc-string
233            (TransientJoinedTable.create): Do not modify the column objects of
234            the input tables in place and copy all columns of the input tables
235            into the joined table after all.
236    
237            * test/test_transientdb.py
238            (TestTransientTable.test_transient_joined_table_same_column_name):
239            Update to reflect the new behavior
240            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
241            Update to reflect the new behavior
242            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
243            New test case for a bug which modified the column objects in place
244    
245    2003-07-02  Jonathan Coles   <[email protected]>
246    
247            * Thuban/Model/classgen.py (generate_singletons,
248            generate_uniform_distribution, generate_quantiles,
249            GenQuantiles0): Make sure maxValue isn't less than
250            one, otherwise we could divide by zero.
251    
252            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
253            ClassGenTest.doClassSingleTest): Call doBoundsTest to
254            check the end classification groups against the
255            proper property values.
256            (ClassGenTest.doBoundsTest): New. Checks the first and
257            last classification groups to make sure their properties
258            are the correct upper and lower bounds for a color ramp.
259    
260    2003-07-02  Jonathan Coles   <[email protected]>
261    
262            * Thuban/Model/classgen.py (generate_singletons,
263            generate_uniform_distribution, generate_quantiles,
264            GenQuantiles0): The denominator was one to high when
265            calculating the index for the ramp causing the index
266            to never to reach one.
267    
268    2003-07-02  Jonathan Coles   <[email protected]>
269    
270            Changed the singature of ClassGroupRange.__init__ and
271            ClassGroupRange.SetRange() so that the min/max values are
272            passed as a tuple. This makes a better calling scheme for
273            when a Range object is passed instead.
274    
275            * Thuban/Model/classgen.py: Fixed parameters to
276            ClassGroupRange constructor.
277    
278            * Thuban/Model/classification.py (ClassGroupRange.__init__):
279            Consolidate the min/max parameters into a single _range which
280            can either be a tuple or a Range object.
281            (ClassGroupRange.SetRange): Consolidate the min/max parameters
282            into a single _range which can either be a tuple or a Range object.
283    
284            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
285            call to ClassGroupRange constructor to use a tuple.
286    
287            * Thuban/Model/layer.py (Layer.SetClassification): Switch
288            the classification instance variable to the new class
289            before calling _set_layer otherwise subscribers to a
290            LAYER_CHANGED event will not see any difference.
291    
292            * test/test_classification.py: Fix tests of ClassGroupRange
293            so that they use the new signature.
294    
295            * test/test_load.py: Fix use of ClassGroupRange so that it
296            uses the new signature.
297    
298            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
299            uses the new signature.
300    
301            * test/test_save.py: Fix use of ClassGroupRange so that it
302            uses the new signature.
303    
304    
305    2003-07-01  Jonathan Coles   <[email protected]>
306    
307            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
308            Import used objects/class from color.
309            (generate_singletons): We don't
310            need the numGroups parameter anymore because we are using
311            the new ramps with GetProperties().
312            (generate_uniform_distribution): Use new ramp method
313            GetProperties().
314            (generate_quantiles, GenQuantiles0): Use new ramp method
315            GetProperties().
316            (CustomRamp.SetNumGroups): Removed. The ramps now map
317            a value from 0 to 1 to class properties so the number
318            of groups is not needed ahead of time.
319            (CustomRamp.next): Removed. CustomRamp does not support
320            interation anymore.
321            (CustomRamp.GetProperties): Returns a ClassGroupProperties
322            object based on the index value from 0 to 1 that is
323            passed to it.
324            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
325            Made into instances of Monochromatic class instread of
326            deriving from it.
327            (HotToCold.SetNumGroups): Removed. See CustomRamp.
328            (HotToCold.next): Removed. See CustomRamp.
329    
330            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
331            (Classification.SetField, Classification.SetFieldType):
332            Replaced with SetFieldInfo.
333            (Classification.SetFieldInfo): New. Does a better job of
334            what SetField and SetFieldType used to do by combining
335            their function since they should really always be done
336            at the same time.
337            (Classification.SetLayer): Renamed to _set_layer.
338            (Classification._set_layer): Should only be called from
339            Layer's SetClassification. This does not cause a recursive
340            call as SetLayer did because we know that Layer knows about
341            the classification.
342    
343            * Thuban/Model/color.py: Fixes RTbug #1971.
344            (_Transparent): Renamed from Transparent so it doesn't
345            conflict with the module variable.
346            (Transparent, Black): Renamed from Color.Transparent,
347            Color.Black so they are not class variables.
348    
349            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
350            (Layer.Destroy): We don't need to call SetClassification
351            anymore to clear out the back reference in the classifcation
352            to the layer. It's better to set it to None using _set_layer,
353            and we won't be creating another clas object too.
354            (Layer.SetClassification): Classification._set_layer is not
355            recursive so remove all the locking variables. Also clean
356            up the code so that it remains unchanged if something fails.
357    
358            * Thuban/Model/load.py: Fixes RTbug #1971.
359            (SessionLoader.start_classification): Call
360            Classification.SetFieldInfo().
361    
362            * Thuban/Model/save.py: Removed import of Color which wasn't
363            being used.
364    
365            * Thuban/UI/classgen.py: Fixes RTbug #1972.
366            (ClassGenDialog.__init__): Color ramps are now instances
367            already so we don't need to create any new objects.
368            (ClassGenDialog.OnOK): Check for numGroups is no longer
369            necessary because we never use it.
370    
371            * Thuban/UI/classifier.py: Fixes RTbug #1971.
372            (Classifier.__BuildClassification, Classifier.__SetGridTable):
373            Call Classification.SetFieldInfo() instead of SetFieldType.
374    
375            * Thuban/UI/renderer.py: Fixes RTbug #1971.
376    
377            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
378            (MapCanvas.__init__): Subscribe to the idle time event. Set
379            background color to white.
380            (MapCanvas.OnPaint): Set a flag indicating that we should
381            render the map during idle time. If we already have a bitmap
382            just draw it now.
383            (MapCanvas.OnIdle): New. Render the map only during idle time.
384            This also fixes a problem with the busy cursor under gtk.
385    
386            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
387            Fix calls to generate_singletons because the signature changed.
388    
389            * test/test_classification.py: Fix color references and
390            change calls to Classification.[SetField|SetFieldType] to
391            SetFieldInfo.
392    
393            * test/test_load.py: Fix color references.
394    
395            * test/test_load_0_2.py: Fix color references.
396    
397            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
398            Change calls to Classification.[SetField|SetFieldType] to
399            SetFieldInfo.
400    
401    2003-07-01  Frank Koormann   <[email protected]>
402    
403            MERGE from the greater-ms3 branch.
404    
405            * test/test_transientdb.py
406            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
407            New. Test join of two tables with partly equal column names.
408    
409            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
410            If duplicates in left and right tables column names are found,
411            append '_' (underscores) to the name until it is unique.
412            Create always new internal names for the resulting table and reference
413            columns in the join statement with <table>.<column>
414    
415    2003-07-01  Bernhard Herzog  <[email protected]>
416    
417            * test/test_transientdb.py
418            (TestTransientTable.test_transient_joined_table_same_column_name):
419            New. Test whether joining on columns with the same names in both
420            tables works.
421            
422            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
423            sure to use the right internal names even when joining on field
424            with the same names in both tables. Also, detect duplicate names
425            in the joined table correctly.
426    
427    2003-07-01  Frank Koormann   <[email protected]>
428    
429            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
430            Reverse List of layers to render in same order as in desktop legend.
431    
432    2003-06-30  Jonathan Coles   <[email protected]>
433    
434            * Thuban/version.py (make_tuple): Takes a version string
435            and splits it into a tuple of at most three integers.
436            Used make_tuple() to make tuple versions of the version
437            numbers.
438    
439            * Thuban/UI/about.py: Add Thuban email addresses.
440    
441    2003-06-30  Jonathan Coles   <[email protected]>
442    
443            * Thuban/version.py: SQLite/PySQLite version dependencies
444            were too high.
445    
446    2003-06-30  Jonathan Coles   <[email protected]>
447    
448            * Thuban/version.py: Update version to 0.8.1
449            
450            * MANIFEST.in: Added Projections so that default.proj is
451            included.
452    
453    2003-06-26  Jonathan Coles   <[email protected]>
454    
455            New About box with lots more information including library
456            versions and credits. More/better version checking before
457            Thuban starts.
458    
459            * Thuban/UI/about.py: New. New About box that displays
460            library version information and credits.
461    
462            * Thuban/version.py: Added new 'versions' dictionary which
463            contains the verions of various libraries which are checked
464            when the module loads.
465            (verify_versions): Check all version numbers and returns
466            a list of errors.
467    
468            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
469            Reset the status of the buttons as the situation warrants,
470            but in a better more reliable way by not relying on the
471            current status to determine what needs to change.
472    
473            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
474            (verify_versions): Remove most of the code since it is
475            now in Thuban.version.verify_versions.o
476    
477            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
478            About box in Thuban.UI.about.
479    
480            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
481            Returns the version of gdal library being used as a string.
482    
483            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
484            Removed.
485            (get_proj_version): Return the version of PROJ that the file
486            was compiled with.
487            (get_gtk_version): Return th version of GTK that the file
488            was compiled with.
489    
490    2003-06-25  Jonathan Coles   <[email protected]>
491    
492            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
493            of the SelectPropertiesDialog should be self so the window
494            appears on top.
495            (ClassGroupPropertiesCtrl.DoEdit): The parent
496            of the SelectPropertiesDialog should be self so the window
497            appears on top.
498    
499            * Thuban/UI/resource.py: Cleaned up how we determine file
500            extensions.
501            (GetImageResource): Return an wxImage from our Resources.
502    
503    2003-06-24  Jonathan Coles   <[email protected]>
504    
505            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
506            Check that a layer has a classification before trying
507            to get it. Raster layers don't have classifications.
508    
509    2003-06-23  Jonathan Coles   <[email protected]>
510            
511            * setup.py: Add Resources/XML to resource list.
512        
513    2003-06-23  Jonathan Coles   <[email protected]>
514    
515            * setup.cfg: Fix copyright dates
516        
517  2003-06-23  Jonathan Coles   <[email protected]>  2003-06-23  Jonathan Coles   <[email protected]>
518    
519          * MANIFEST.in: Update with Resources/XML          * MANIFEST.in: Update with Resources/XML

Legend:
Removed from v.1294  
changed lines
  Added in v.1424

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26