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

Legend:
Removed from v.1270  
changed lines
  Added in v.1416

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26