/[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 1655 by bh, Mon Aug 25 16:05:33 2003 UTC revision 1899 by bh, Fri Oct 31 14:38:30 2003 UTC
# Line 1  Line 1 
1    2003-10-31  Bernhard Herzog  <[email protected]>
2    
3            * test/test_classification.py (TestClassGroupProperties)
4            (TestClassGroup, TestClassGroupDefault, TestClassGroupRange)
5            (TestClassGroupSingleton, TestClassIterator, TestClassification):
6            Split TestClassification into several classes, one for each class
7            being tested. TestClassification itself now only tests
8            Classification. This split makes changes to the tests a bit easier
9    
10    2003-10-31  Bernhard Herzog  <[email protected]>
11    
12            * Extensions/profiling/profiling.py: New. Extension to measure
13            Thuban performance
14    
15    2003-10-31  Frank Koormann <[email protected]>
16    
17            Added two items to legend popup menu: Remove Layer and Show Layer Table
18    
19            * Thuban/UI/legend.py (LegendPanel._OnRemoveLayer,
20            LegendPanel._OnShowTable): New event handlers, call the corresponding
21            mainwindow methods.
22            (LegendTree._OnRightClick): Added items to popup menu.
23    
24    2003-10-30  Bernhard Herzog  <[email protected]>
25    
26            * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle
27            EVT_WINDOW_DESTROY
28            (ThubanFrame.OnDestroy): New. Handler for EVT_WINDOW_DESTROY. Does
29            nothing but is convenient for the derived classes.
30    
31            * Thuban/UI/tableview.py
32            (TableFrame.OnDestroy, LayerTableFrame.OnDestroy): New.
33            Unsubscribe the messages here not in OnClose because that might
34            get called multiple times. Fixes RT #2196
35            (TableFrame.OnClose, LayerTableFrame.OnClose): Removed. Not needed
36            anymore.
37    
38            * README: Update the minimum requirement for wxPython. Since we
39            now use the EVT_WINDOW_DESTROY event, we need at least 2.4.0.4,
40            the version in which that was introduced for all platforms
41    
42    2003-10-30  Frank Koormann <[email protected]>
43    
44            * Thuban/UI/join.py (JoinDialog.OnJoin): Wrapped the major parts of
45            the join process in a ThubanBeginBusyCursor, ThubanEndBusyCursor
46            frame.
47    
48    2003-10-30  Jan-Oliver Wagner <[email protected]>
49    
50            Improved APR import extension, added further EPSG definitions
51            and some cleanup regarding string class.
52    
53            * test/test_proj.py (TestProjection.test_get_projection_units_geo):
54            Added test for alias 'longlat'.
55    
56            * Resources/Projections/epsg-deprecated.proj: New. Contains
57            deprecated EPSG definitions.
58    
59            * Extensions/importAPR/odb.py (ODBBaseObject.TreeInfo): Added
60            the variable names for objects.
61    
62            * Extensions/importAPR/apr.py (APR_BLnSym, APR_BMkSym, APR_BShSym): New.
63            Copied from importAPR and provided with documentation.
64    
65            * Extensions/importAPR/importAPR.py (APR_BLnSym, APR_BMkSym, APR_BShSym):
66            Moved to apr.py.
67            (APR_View): Added object ref 'ITheme'.
68    
69            * Thuban/Lib/fileutil.py, Thuban/UI/proj4dialog.py: Replaced string
70            split function by corresponding use of the string class method.
71    
72            * Thuban/Model/xmlwriter.py: Replaced string replace function by
73            corresponding string method.
74    
75    2003-10-29  Bernhard Herzog  <[email protected]>
76    
77            * Thuban/UI/baserenderer.py
78            (BaseRenderer.draw_shape_layer_incrementally): Speed up the
79            special case of a classification that only has the default group
80    
81    2003-10-27  Bernhard Herzog  <[email protected]>
82    
83            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
84    
85            * po/de.po: Update.
86    
87            * Thuban/UI/application.py
88            (ThubanApplication.ShowExceptionDialog): Handle translation of the
89            dialog message properly
90    
91    2003-10-27  Bernhard Herzog  <[email protected]>
92    
93            Rework how localization works so that we use wx's translation
94            functions when running Thuban as a normal application but not when
95            we don't need any UI, such as in the test suite. See the comment
96            in Thuban/__init__.py for details
97    
98            * Thuban/__init__.py (_): Add one level of indirection to make the
99            translation handling more flexible and to make it possible to use
100            either wx's translation services or not.
101            (gettext_identity, translation_function_installed)
102            (install_translation_function): New function to help with this
103    
104            * Thuban/UI/__init__.py: Install the wx specific translation
105            function if it's OK to do that
106    
107            * test/support.py (initthuban): Install a dummy translation
108            function so that importing Thuban.UI doesn't install a wx specific
109            one for which would need to import wxPython
110    
111    2003-10-27  Bernhard Herzog  <[email protected]>
112    
113            * HOWTO-Release: Source archives should be created first and the
114            binary packages should be created from the source archives.
115            There's an official debian package now so there's no need to test
116            the rpm on debian anymore
117    
118    2003-10-27  Bernhard Herzog  <[email protected]>
119    
120            Several rendering changes:
121    
122             - Render the selection into a separate bitmap so that only that
123               bitmap needs to be redrawn when the selection changes
124    
125             - Render incrementally showing previews and allowing interaction
126               before rendering is complete
127    
128             - Update the renderer interface a bit. Most parameters of
129               RenderMap are now parameters of the constructor
130    
131            * Thuban/UI/baserenderer.py (BaseRenderer.__init__): Add the map
132            and the update region as parameters. Update the doc-string
133            (BaseRenderer.render_map_incrementally): New. Generator function
134            to renders the map incrementally
135            (BaseRenderer.render_map): Remove the map argument (it's now in
136            the constructor) and simply iterate over the
137            render_map_incrementally generator to draw the map.
138            (BaseRenderer.draw_shape_layer_incrementally)
139            (BaseRenderer.draw_shape_layer): Renamed to
140            draw_shape_layer_incrementally and changed into a generator that
141            yields True every 500 shapes. Used by render_map_incrementally to
142            render shape layers incrementally
143    
144            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Removed the
145            map and region parameters which are now in the constructor
146            (ScreenRenderer.RenderMapIncrementally): New. Public frontend for
147            the inherited render_map_incrementally.
148            (BaseRenderer.draw_shape_layer): Removed.
149            (ScreenRenderer.draw_selection_incrementally): New. The selection
150            drawing part of the removed draw_shape_layer as a generator
151            (ScreenRenderer.layer_shapes): Update because of the region
152            parameter change
153            (ExportRenderer.__init__): New. Extend the inherited constructor
154            with the destination region for the drawing
155            (ExportRenderer.RenderMap): Removed the map and region parameters
156            which are now in the constructor
157    
158            * Thuban/UI/view.py (MapCanvas.PreviewBitmap): New. Return a
159            bitmap suitable for a preview in a tool
160            (CanvasPanTool.MouseMove): Use the PreviewBitmap method to get the
161            bitmap
162            (MapPrintout.draw_on_dc): Adapt to new renderer interface
163            (MapCanvas.OnPaint): Handle drawing the selection bitmap if it
164            exists
165            (MapCanvas.OnIdle): Update the logic to deal with incremental
166            rendering and the selection bitmap
167            (MapCanvas._do_redraw): Handle the instantiation of the render
168            iterator and the redraws during rendering
169            (MapCanvas._render_iterator): New. Generator to incrementally
170            redraw both bitmaps
171            (MapCanvas.Export): Adapt to new renderer interface.
172            (MapCanvas.full_redraw): Reset the selection bitmap and the
173            renderer iterator too
174            (MapCanvas.redraw_selection): New. Force a redraw of the selection
175            bitmap
176            (MapCanvas.shape_selected): Only redraw the selection bitmap
177    
178            * test/test_baserenderer.py
179            (TestBaseRenderer.test_polygon_no_projection)
180            (TestBaseRenderer.test_raster_no_projection)
181            (TestBaseRenderer.test_point_map_projection)
182            (TestBaseRenderer.test_point_layer_and_map_projection)
183            (TestBaseRenderer.test_point_layer_projection)
184            (TestBaseRenderer.test_point_with_classification): Adapt to new
185            renderer interface
186    
187    2003-10-24  Bernhard Herzog  <[email protected]>
188    
189            * libraries/thuban/wxproj.cpp (draw_polygon_shape)
190            (point_in_polygon_shape, shape_centroid): Raise an exception if
191            the shape can't be read. Previously invalid shape ids would lead
192            to a segfault.
193    
194            * test/test_wxproj.py (TestShapeCentroid.test_invalid_shape_id):
195            New. test whether an exception is raised for invalid shape ids
196    
197    2003-10-24  Jan-Oliver Wagner <[email protected]>
198    
199            * Thuban/Model/proj.py (Projection.GetProjectedUnits): Added 'longlat'
200            as alias for 'latlong'.
201    
202            * Thuban/UI/projdialog.py (ProjFrame.__init__): Added 'longlat'
203            as alias for 'latlong'.
204    
205    2003-10-24  Jan-Oliver Wagner <[email protected]>
206    
207            * Thuban/UI/projdialog.py (ProjFrame.proj_selection_changed): Set
208            the projection even for the UnknownPanel.
209            (UnknownProjPanel.__init__): Define the text and create the textctrl
210            widget.
211            (UnknownProjPanel._DoLayout): Replaced static text widget by the
212            textctrl created in __init__.
213            (UnknownProjPanel.SetProjection): Set the text for the text ctrl
214            including the parameters of the projection.
215            
216    2003-10-24  Jan-Oliver Wagner <[email protected]>
217    
218            * Resources/Projections/epsg.proj: New. This is a list of
219            EPSG codes with parameters for proj. The list has been
220            generated using devtools/create_epsg.py based on the
221            file nad/epsg of the proj 4.4.7 package. Four projection
222            definitions have been deleted as they are not accepted by proj:
223            "CH1903+ / LV95", "Bern 1898 (Bern) / LV03C", "CH1903 / LV03"
224            and "HD72 / EOV".
225    
226    2003-10-22  Bernhard Herzog  <[email protected]>
227    
228            Some more tweaks to the projection dialog which should fix RT
229            #1886.
230    
231            * Thuban/UI/projlist.py (ProjectionList.Destroy): Unsubscribe from
232            the ProjFile's messages and call the base class methods correctly
233            (ProjectionList.SelectProjection): Set the wxLIST_STATE_FOCUSED
234            flag on the newly selected item too. Otherwise some other item is
235            focused and the first time the focus is moved with the keyboard
236            the selection moves in unexpected ways.
237    
238            * Thuban/UI/projdialog.py (ProjFrame.__init__): Do not set the
239            focus on the OK button, only on the projection list. That way the
240            list really has the focus initially
241            (ProjFrame.OnClose): Call the projection list's Destroy method to
242            make it unsubscribe all messages
243    
244    2003-10-21  Bernhard Herzog  <[email protected]>
245    
246            Rework the projection dialog to fix a few bugs, including RT 2166
247            and most of 2168
248    
249            * Thuban/UI/projlist.py: New. The class ProjectionList is a
250            special wxListCtrl to show a list of projections in a more MVC
251            fashion
252    
253            * Thuban/UI/projdialog.py (ProjFrame): Substantial changes
254            throughout the class. The main change is to use the ProjectionList
255            class instead of a normal wxListBox. Also, add an explicit
256            "Unknown" projection to the projection choice control.
257            (ProjPanel.__init__): Add an "unknown" ellipsoid
258            (TMPanel.__init__, LCCPanel.__init__): Tweak the order of
259            instantiation of the panel's controls to make the tab-order more
260            natural
261    
262    2003-10-21  Bernhard Herzog  <[email protected]>
263    
264            * test/test_load.py (TestSingleLayer.file_contents)
265            (TestSingleLayer.test): Add non-ascii characters to the titles of
266            session, map and layer. This is effectively a port of the
267            TestUnicodeStrings test in test_load_0_8.py which for some reason
268            was only added there.
269    
270            * test/test_load_0_9.py (TestSingleLayer.file_contents)
271            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
272            characters to the titles of session, map and layer,.
273    
274    2003-10-21  Bernhard Herzog  <[email protected]>
275    
276            Add EPSG projection handling to .thuban files
277    
278            * test/test_save.py (SaveSessionTest.dtd)
279            (SaveSessionTest.testEmptySession)
280            (SaveSessionTest.testLayerProjection)
281            (SaveSessionTest.testRasterLayer)
282            (SaveSessionTest.testClassifiedLayer)
283            (SaveSessionTest.test_dbf_table)
284            (SaveSessionTest.test_joined_table)
285            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
286            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
287            use a and epsg projection to test saving them
288    
289            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
290            namespace
291            (TestLayerVisibility.file_contents, TestLabels.file_contents)
292            (TestLayerProjection.file_contents)
293            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
294            (TestPostGISLayer.file_contents)
295            (TestPostGISLayerPassword.file_contents)
296            (TestLoadError.file_contents, TestLoadError.test): Update to use
297            1.0-dev namespace
298            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
299            use 1.0-dev namespace and use an EPSG projection to test whether
300            loading it works
301    
302            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
303            as of Thuban 0.9. These are now tests to determine whether Thuban
304            can still read files generated by Thuban 0.9
305    
306            * Thuban/Model/save.py (SessionSaver.write)
307            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
308            namespace
309            (SessionSaver.write_projection): Write the projection's epsg
310            attribute
311    
312            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
313            thuban-1.0-dev.dtd namespace
314            (SessionLoader.check_attrs): Allow a callable object as conversion
315            too
316            (SessionLoader.start_projection, SessionLoader.end_projection)
317            (SessionLoader.start_parameter): Handle the epsg attribute and
318            rename a few instance variables to lower case
319    
320            * Resources/XML/thuban-1.0.dtd: New. Only difference to
321            thuban-0.9.dtd is the epsg attribute for projections.
322    
323    2003-10-21  Bernhard Herzog  <[email protected]>
324    
325            * test/runtests.py (main): Let the user specify which tests to run
326            on the command line
327    
328            * test/support.py (ThubanTestResult.getDescription): Override to
329            give a better short description. The description can be used as a
330            parameter to run_tests to run that particular test in isolation.
331    
332    2003-10-21  Frank Koormann   <[email protected]>
333    
334            Popup menu for legend. Scheduled for the 1.2 release this was too
335            simple to implement: The popup menu is bound to the legend tree, while
336            the events are hanlded by its anchestor, the legend panel. This
337            allows reuse of all the event handlers already implemented for the
338            legend toolbar buttons.
339    
340            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
341            to add handlers for the events issued by the popup menu.
342            (LegendPanel._OnToggleVisibility): Handler for toggling layer
343            visibility event
344            (LegendPanel._OnProjection): Handler for layer projection event.
345            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
346            (LegendTree._OnRightClick): Event handler for right click, select item
347            and pop up menu.
348            (LegendTree.ToggleVisibility): Toggle layer visibility
349            (LegendTree.LayerProjection): Raise layer projection dialog for
350            current layer.
351    
352    2003-10-21  Bernhard Herzog  <[email protected]>
353    
354            * Resources/Projections/defaults.proj: Use correct DOCTYPE
355            declaration. The top-level element is projectionlist not projfile
356    
357    2003-10-20  Bernhard Herzog  <[email protected]>
358    
359            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
360            method to write a projfile and display a busy cursor and error
361            dialogs.
362            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
363            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
364            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
365            busy cursor while loading the user and system prj files.
366    
367    2003-10-16  Bernhard Herzog  <[email protected]>
368    
369            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
370            ProjFile objects
371            (clear_proj_file_cache): New function to clear the cache. Mainly
372            useful for use by the test suite
373            (read_proj_file): Use the cache.
374    
375            * test/test_proj.py (TestProjFile): Clarify the doc-string
376            (ProjFileReadTests): Update doc-string
377            (ProjFileReadTests.test_get_system_proj_file): Check whether the
378            system proj files is cached.
379            (ProjFileLoadTestCase): New base class for the proj file tests
380            derived from support.FileLoadTestCase to provide some common
381            behavior.
382            (TestLoadingProjFile)
383            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
384            (TestProjFileWithInvalidParameters.file_contents): Derive from
385            ProjFileLoadTestCase
386            (TestLoadingProjFile.test_caching): New. Test whether the cache
387            works
388    
389    2003-10-16      Silke Reimer    <[email protected]>
390    
391            * debian/*: New directory with configuration files for building a thuban
392              deb-package.
393    
394    2003-10-14  Bernhard Herzog  <[email protected]>
395    
396            * test/test_proj.py: Execute support.run_tests when run as
397            __main__ so that missing unsubscribes are detected
398            (TestProjFile.tearDown): Destroy the proj_file properly
399    
400    2003-10-14  Bernhard Herzog  <[email protected]>
401    
402            * Thuban/Model/messages.py (PROJECTION_ADDED)
403            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
404            the ProjFile objects
405    
406            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
407            easily send messages when the projections change
408            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
409            when the change was successful
410    
411            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
412            proj file messages
413            (TestProjFile.test_add_remove)
414            (TestProjFile.test_remove_non_existing)
415            (TestProjFile.test_replace)
416            (TestProjFile.test_replace_non_existing): Test whether the right
417            messages are sent
418    
419    2003-10-14  Bernhard Herzog  <[email protected]>
420    
421            * test/test_proj.py (TestProjFile.test): Refactor into several
422            tests
423            (TestProjFile.test_add_remove)
424            (TestProjFile.test_remove_non_existing)
425            (TestProjFile.test_replace)
426            (TestProjFile.test_replace_non_existing): Some of the new
427            individual test cases
428            (TestProjFileSimple): New class for the rest of the test cases
429            that came out of the refactoring
430            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
431            derived classes don't have to
432    
433    2003-10-13  Bernhard Herzog  <[email protected]>
434    
435            Add an optional EPSG code to the projection objects and extend the
436            .proj file format accordingly.
437    
438            * Resources/XML/projfile.dtd (element projection): Add epsg
439            attribute
440    
441            * Thuban/Model/proj.py (Projection.__init__): New parameter and
442            instance variable epsg. Update doc-string
443            (Projection.EPSGCode, Projection.Label): New methods to provide
444            access to EPSG code and a label for use in dialogs
445    
446            * Thuban/Model/resource.py (ProjFileReader.start_projection)
447            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
448            Handle the epsg code attribute when reading or writing proj files
449    
450            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
451            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
452            (ProjFrame.__FillAvailList): Use the projection's Label method to
453            get the string for the list box
454    
455            * test/test_proj.py (TestProjection.test_label)
456            (TestProjection.test_label_epsg)
457            (TestProjection.test_epsgcode_for_non_epsg_projection)
458            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
459            for the label and EPSGCode methods
460            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
461            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
462            objects in the test cases and put the expected contents into the
463            test case methods too. Update doTestWrite accordingly
464            (TestLoadingProjFile)
465            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
466            read tests from TestProjFile.
467            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
468            tests are now in the new classes.
469            (sample_projfile, sample_projfile_data)
470            (sample_projfile2, sample_projfile_data2): Removed. Not used
471            anymore.
472            (TestProjFile.test_read_unreadable_file): No need to reset the
473            permissions at the end anymore since we use a unique filename
474    
475    2003-10-13  Bernhard Herzog  <[email protected]>
476    
477            * test/test_proj.py: Some more refactoring of the test cases
478            (ProjFileTest): New base class for the proj file tests.
479            (TestProjFile): Derive from ProjFileTest
480            (TestProjFile.test_read_unreadable_file)
481            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
482            the new filename method to get a unique filename
483            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
484            (WriteProjFileTests): New class for proj file write tests.
485            Contains the write test that were in TestProjFile originally.
486    
487    2003-10-13  Bernhard Herzog  <[email protected]>
488    
489            * test/test_proj.py (TestProjFile.testRead)
490            (TestProjFile.test_read_non_existing_file)
491            (TestProjFile.test_read_unreadable_file)
492            (TestProjFile.test_read_empty_file): Split into several methods.
493    
494    2003-10-10  Bernhard Herzog  <[email protected]>
495    
496            * Thuban/UI/sizers.py: New file with custom sizers.
497    
498            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
499            all projection type specific panels and put them into a
500            NotebookLikeSizer. This way the dialog doesn't change its size
501            when a different projection is selected
502            (ProjFrame.__init__): Rename projection_panels
503            projection_panel_defs and reuse projection_panels for a list of
504            the instantiated panels.
505            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
506            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
507            the panels
508            (UnknownProjPanel._DoLayout): Place the newlines in the message
509            differently to make the panel narrower.
510            (TMPanel._DoLayout): Layout the parameters in one column.
511    
512    2003-10-10  Bernhard Herzog  <[email protected]>
513    
514            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
515            that contains all the setup for the dialog's widgets, layout and
516            event handling.
517            (__): Call build_dialog to build the dialog.
518            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
519            Their functionality is now in build_dialog
520            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
521            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
522            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
523            different widget names and hierarchy introduced with build_dialog.
524    
525    2003-10-10  Bernhard Herzog  <[email protected]>
526    
527            * README: Fix typo.
528    
529    2003-10-09  Bernhard Herzog  <[email protected]>
530    
531            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
532            projection is already in the list. This is *a lot* faster when
533            loading files with hundreds of projections since it saves a linear
534            search. OTOH this will allow adding the same projection to the
535            user.proj file multiple times in the projection dialog but we'll
536            deal with that later
537    
538    2003-10-09  Jan-Oliver Wagner <[email protected]>
539    
540            * devtools: New. Directory for developer tools that are not intended
541            for the regular user.
542    
543            * devtools/create_epsg.py: New. Convert the epsg file of proj into
544            a python .proj file.
545    
546    2003-10-09  Bernhard Herzog  <[email protected]>
547    
548            * test/test_proj.py
549            (TestProjection.test_get_parameter_without_equals_sign): New. Test
550            whether GetParameter handles parameters without "=" sign correctly
551    
552            * Thuban/Model/proj.py (Projection.GetParameter): Handle
553            parameters that do not contain a "=". Update the doc-string
554    
555    2003-10-08  Bernhard Herzog  <[email protected]>
556    
557            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
558            length limit on the projname text control
559    
560    2003-10-08  Bernhard Herzog  <[email protected]>
561    
562            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
563            (TestProjection.test_get_projection_units_normal): New. Tests for
564            the Projection.GetProjectedUnits method
565    
566    2003-10-08  Jan-Oliver Wagner <[email protected]>
567    
568            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
569            Added missing 'val' parameter.
570    
571    2003-10-08  Bernhard Herzog  <[email protected]>
572    
573            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
574            projection type of the currently selected projection is not known,
575            i.e. there's no panel for it, use the UnknownProjPanel
576            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
577            the actual replacing of the proj panel into the new method
578            _show_proj_panel.
579            (UnknownProjPanel): Add doc-string.
580            (UnknownProjPanel._DoLayout): Insert a newline into the text so
581            that the panel is not so wide.
582    
583    2003-10-08  Bernhard Herzog  <[email protected]>
584    
585            * Thuban/Model/resource.py (read_proj_file): Return the warnings
586            too. Update the doc-string
587            (get_proj_files): Removed. It wasn't used anywhere
588            (get_system_proj_files, get_system_proj_file): Rename to
589            get_system_proj_file and return the ProjFile object and not a list
590            of ProjFile objects. Update the callers.
591            (get_user_proj_files, get_user_proj_file): Rename to
592            get_user_proj_file return the ProjFile object and not a list of
593            ProjFile objects. Update the callers.
594            (ProjFileReader.__init__): New instance variable for the warnings.
595            Rename the __pf ivar to projfile. Update the methods referring to
596            __pf
597            (ProjFileReader.end_projection): Catch any errors raised when
598            instantiating the projection and record that as an error. The
599            projection will not be in the final ProjFile object.
600            (ProjFileReader.GetWarnings): New method to return the warnings.
601    
602            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
603            show the warnings from the projfile reader
604            (ProjFrame._OnImport): Deal with any warnings returned by
605            read_proj_file
606            (ProjFrame.__FillAvailList): Deal with any warnings returned by
607            get_system_proj_file or get_user_proj_file.
608    
609            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
610            (TestProjFileWithInvalidParameters.file_contents): New test cases
611            to test whether read_proj_file handles invalid projection
612            parameters correctly
613            (TestProjFile.test_get_system_proj_file): New. Simple test for
614            resource.get_system_proj_file
615    
616    2003-10-07  Bernhard Herzog  <[email protected]>
617    
618            * test/test_derivedshapestore.py
619            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
620            properly so that the temporary directories get deleted correctly
621    
622    2003-10-06  Bernhard Herzog  <[email protected]>
623    
624            Handle the title changes in a proper MVC way.
625    
626            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
627            canvas' TITLE_CHANGED messages
628            (MainWindow.update_title): New. Update the main window's title
629            (MainWindow.__SetTitle): Removed. Use update_title instead.
630            (MainWindow.SetMap): Use update_title instead of __SetTitle
631            (MainWindow.RenameMap): Do change the window title explicitly
632            here. That's handled in a proper MVC way now.
633            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
634            messages
635    
636            * Thuban/Lib/connector.py (Conduit): New class to help classes
637            that forward messages
638    
639            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
640            (ViewPort): Derive from Conduit instead of Publisher
641            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
642            when calling the inherited versions
643            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
644            methods to subscribe and unsubscribe map messages
645            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
646            handle the map subscriptions
647            (ViewPort.Map, ViewPort.map_projection_changed)
648            (ViewPort.layer_projection_changed): Add or update doc-strings
649    
650            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
651            typo
652            (MyConduit): Helper class for the Conduit test.
653            (TestConduit): Test cases for Conduit
654    
655            * test/test_connector.py: Use support.run_tests as main.
656    
657            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
658            the TITLE_CHANGED messages
659            (ViewPortTest.test_forwarding_title_changed): New test to check
660            whether the viewport forwards the map's TITLE_CHANGED messages
661            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
662            after the port's because the latter may require a still functional
663            map.
664    
665    2003-10-06  Bernhard Herzog  <[email protected]>
666    
667            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
668            doc-string
669    
670    2003-10-06  Bernhard Herzog  <[email protected]>
671    
672            * test/test_viewport.py (ViewPortTest.setUp)
673            (SimpleViewPortTest.test_init_with_size): Move the test for the
674            initial size as a constructor parameter from ViewPortTest.setUp
675            method to a new separate test in SimpleViewPortTest.
676    
677    2003-10-06  Bernhard Herzog  <[email protected]>
678    
679            * test/test_viewport.py (MockView): New class derived from
680            ViewPort with a mock implementation of GetTextExtent to be used in
681            the test cases
682            (ViewPortTest.setUp): Use MockView instead of ViewPort
683    
684            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
685            into what would be a "pure virtual function" in C++: always raise
686            NotImplementedError. Mock implementations for test cases don't
687            belong into the real code
688    
689    2003-10-02  Bernhard Herzog  <[email protected]>
690    
691            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
692            close the dbf file we create so that it's contents have been
693            written properly.
694    
695            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
696            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
697            Update to shapelib 1.2.10
698    
699    2003-10-01  Jan-Oliver Wagner <[email protected]>
700    
701            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
702            it annoys lintian which warns about these files not being
703            executable. The #! isn't necessary here since if you absolutely
704            must execute them you can always say "python <filename>".
705    
706    2003-09-26  Bernhard Herzog  <[email protected]>
707    
708            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
709            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
710            is ported to a newer the import will fail, so it should be noticed
711            immediately that this function is gone.
712            Fixes RT#1919
713    
714    2003-09-26  Bernhard Herzog  <[email protected]>
715    
716            Add a DTD for the projection files and make thuban write valid
717            projection files
718    
719            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
720            files
721    
722            * Thuban/Model/resource.py (ProjFileSaver.write): Use
723            'projectionlist' as the name in the document type declaration so
724            that it matches the element type of the root element.
725    
726            * test/test_proj.py (sample_projfile, sample_projfile2): Use
727            'projectionlist' as the name in the document type declaration just
728            as it is done now in the files thuban would write
729            (sample_projfile, sample_projfile_data): Fix spelling of
730            "Mercator"
731            (TestProjFile.doTestWrite): Validate the written and the expected
732            XML data
733            (TestProjFile): Derive from ValidationTest so that we can run xml
734            validation tests
735    
736    2003-09-24  Bernhard Herzog  <[email protected]>
737    
738            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
739            modify the list returned by map.Layers() in place since it is the
740            actual list of layers used by the map.
741    
742    2003-09-23  Jan-Oliver Wagner <[email protected]>
743    
744            * Doc/manual/thuban-manual.xml: Added subsection to chapter
745            Extensions to describe the extensions coming with the Thuban
746            standard package (gns2shp and importAPR).
747    
748    2003-09-23  Bernhard Herzog  <[email protected]>
749    
750            * libraries/thuban/wxproj.cpp (project_point): if there's an
751            inverse but no forward projection, convert to degrees after
752            applying the inverse projection. Fixes RT#2096
753    
754            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
755            implicitly tests for the fix to RT#2096
756    
757            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
758            Check that the sequences have the same lengths
759    
760            * Resources/Projections/defaults.proj (Geographic projection): Use
761            a much more precise value for the to_meter attribute.
762    
763    2003-09-22  Bernhard Herzog  <[email protected]>
764    
765            * test/support.py (initthuban): Make sure to unset the LANG env.
766            var. so that tests that compare translated strings work. Solves RT
767            #2094
768    
769    2003-09-22  Jan-Oliver Wagner <[email protected]>
770    
771            Small improvement of APR import.
772    
773            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
774            Added tests for text-ranges.
775    
776            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
777            returns a string object if the range is based on text.
778    
779            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
780            range retrieval.
781    
782    2003-09-22  Jan-Oliver Wagner <[email protected]>
783    
784            Initial version of the importAPR extension which is in
785            experimental state.
786    
787            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
788            /Extensions/importAPR/test/: New directories.
789    
790            * /Extensions/importAPR/samples/README: New: Howto load the samples.
791    
792            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
793            file which refers to the Thuban Iceland demo data.
794    
795            * /Extensions/importAPR/test/README: New: Howto execute the tests.
796    
797            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
798    
799            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
800            as in '.apr'-files.
801    
802            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
803            ODB Objects as in '.apr', '.avl' and other files.
804    
805            * /Extensions/importAPR/__init__.py: New: Init to make this
806            directory a package.
807    
808            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
809            project file (.apr) and convert it to Thuban.
810    
811    2003-09-22  Jan-Oliver Wagner <[email protected]>
812    
813            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
814    
815    2003-09-19  Jan-Oliver Wagner <[email protected]>
816    
817            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
818            with description on RPM installation and RPM binary package
819            creation.
820    
821    2003-09-18  Bernhard Herzog  <[email protected]>
822    
823            * setup.py (data_files): Only add the mo files if the Locales
824            directory actually exists, so that setup.py works with a fresh CVS
825            checkout
826    
827    2003-09-12  Jan-Oliver Wagner <[email protected]>
828    
829            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
830            in viewport, not anymore in view
831    
832    2003-09-04  Jan-Oliver Wagner <[email protected]>
833    
834            Introducing first Extension (gns2shp).
835    
836            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
837    
838            * Extensions/__init__.py: New. init to make this dir a package.
839    
840            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
841    
842            * Extensions/gns2shp/test/README: New. some info on this test directory.
843    
844            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
845    
846            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
847            of Shapefile from GNS text file format
848    
849    2003-09-03  Jan-Oliver Wagner <[email protected]>
850    
851            Fix/workaround for bug #2019:
852            https://intevation.de/rt/webrt?serial_num=2019
853    
854            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
855            (IdentifyView.__init__): Added another button that allows to
856            stop the identify mode.
857            (IdentifyView.OnStop): New. Stops the identify mode.
858    
859    2003-09-03  Jan-Oliver Wagner <[email protected]>
860    
861            Introducing a new exception dialog that allows to exit the
862            application immediately.
863            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
864    
865            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
866    
867            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
868            Made strings available to translations. Exchanged the simple
869            ScrolledMessageDialog by the new ExceptionDialog.
870    
871    2003-09-01  Bernhard Herzog  <[email protected]>
872    
873            * NEWS: New. Summary of changes and release notes.
874    
875            * MANIFEST.in: Add NEWS
876    
877    2003-09-01  Bernhard Herzog  <[email protected]>
878    
879            * MANIFEST.in: Correct the include statement for the mo-files and
880            include the documentation too.
881    
882            * setup.py (data_files): Add the .mo files
883            (setup call): Up to version 0.9.0
884    
885    2003-09-01  Bernhard Herzog  <[email protected]>
886    
887            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
888            parameter list to just parent and session
889            (ChooseDBTableDialog.__set_properties): Removed. Setting the
890            selection of empty list boxes is not allowed (and produces C++
891            assertion errors) and the rest of the setup is better done in
892            __init__ anyway.
893            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
894            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
895            builtins True/False for booleans to avoid warnings from wxPython
896    
897            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
898            ChooseDBTableDialog constructor parameters.
899    
900    2003-09-01  Bernhard Herzog  <[email protected]>
901    
902            * Thuban/Model/postgisdb.py
903            (PostGISTable): Extend doc-string
904            (PostGISTable._fetch_table_information): Set the column index
905            correctly, pretending ignored columns don't exist.
906    
907            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
908            for postgis tables with data types not yet supported by thuban.
909    
910    2003-08-29  Bernhard Herzog  <[email protected]>
911    
912            * HOWTO-Release: Tweak item about running the tests.
913    
914    2003-08-29  Jan-Oliver Wagner <[email protected]>
915    
916            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
917    
918    2003-08-29  Bernhard Herzog  <[email protected]>
919    
920            Add some missing parameters to projections. Proj complains about
921            them on windows but for some reason not on Linux.
922    
923            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
924            missing required projection parameters
925    
926            * test/test_proj.py (TestProjFile.test): Add missing required
927            projection parameters
928    
929            * test/test_load_0_8.py (TestLayerProjection.file_contents)
930            (TestLayerProjection.test): Add missing required projection
931            parameters and tests for them
932    
933            * test/test_load.py (TestLayerProjection.file_contents)
934            (TestLayerProjection.test): Add missing required projection
935            parameters and tests for them
936    
937            * test/test_layer.py (TestLayer.test_base_layer): Add missing
938            required projection parameters
939    
940    2003-08-29  Bernhard Herzog  <[email protected]>
941    
942            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
943            access the pj_errno because directly accessing pj_errno doesn't
944            work on windows if the proj library is in a DLL
945    
946            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
947    
948    2003-08-28  Bernhard Herzog  <[email protected]>
949    
950            * test/test_proj.py: Import things from Thuban after calling
951            initthuban
952    
953            * test/test_load.py (LoadSessionTest.filenames): New class
954            variable with the filename attributes to normalize
955            (LoadSessionTest.check_format): Pass self.filenames to
956            sax_eventlist to normalize the filename attributes
957    
958            * test/xmlsupport.py: Add cvs keywords
959            (SaxEventLister.__init__): New parameter filenames which indicates
960            attributes that contain filenames
961            (SaxEventLister.startElementNS): Normalize the filename attributes
962            with os.path.normpath
963            (sax_eventlist): New parameter filenames to pass through to
964            SaxEventLister
965    
966            * test/test_derivedshapestore.py: Make this file callable as a
967            program to execute the tests
968            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
969            the session to self.session so that it gets destroyed properly
970    
971            * test/test_layer.py (TestLayer.tearDown): Call the session's
972            Destroy method
973    
974            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
975            too if it exists
976            (TestMapAddLayer.test_add_layer): Bind the session to self.session
977            so that it gets destroyed properly
978    
979            * test/postgissupport.py (reason_for_not_running_tests): Add a
980            test for the existence of popen2.Popen4.
981    
982            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
983            reliable way to destroy the sessions created in the test cases
984            (SaveSessionTest.test_dbf_table): Bind the session to self.session
985            so that it gets destroyed properly
986            (SaveSessionTest.testLayerProjection): Bind the session to
987            self.session so that it gets destroyed properly
988    
989            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
990            sure that the session is destroyed properly
991    
992            * test/test_shapefilestore.py: Make this callable as a program to
993            execute the tests
994    
995            * test/test_scalebar.py: Remove unnecessary import of _ from
996            Thuban
997    
998            * test/support.py (print_garbage_information): Call initthuban
999            here because it may be called indirectly from test cases that test
1000            test support modules which do not use anything from thuban itself
1001            (ThubanTestProgram.runTests): Remove unnecessary debug print
1002    
1003    2003-08-28  Bernhard Herzog  <[email protected]>
1004    
1005            * Thuban/version.py (longversion): Update to 0.9
1006    
1007            * Thuban/UI/mainwindow.py: Remove some unused imports
1008    
1009            * README: Add section about required additional software. Add date
1010            and revision CVS keywords
1011    
1012            * HOWTO-Release: Add item about the translations. Add date and
1013            revision CVs keywords and change formatting to match README a bit
1014            better
1015    
1016            * po/de.po: Update for 0.9
1017    
1018            * test/README: Tweak the wording a little because many tests are
1019            not really unittest.
1020    
1021    2003-08-27  Bernhard Herzog  <[email protected]>
1022    
1023            As preparation for the 0.9 release, switch thuban files to a
1024            non-dev namespace
1025    
1026            * Thuban/Model/save.py (SessionSaver.write_session): Write files
1027            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
1028            namespace
1029    
1030            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
1031            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
1032    
1033            * test/test_save.py (SaveSessionTest.dtd)
1034            (SaveSessionTest.testEmptySession)
1035            (SaveSessionTest.testSingleLayer)
1036            (SaveSessionTest.testLayerProjection)
1037            (SaveSessionTest.testRasterLayer)
1038            (SaveSessionTest.testClassifiedLayer)
1039            (SaveSessionTest.test_dbf_table)
1040            (SaveSessionTest.test_joined_table)
1041            (SaveSessionTest.test_save_postgis): Update for new namespace
1042    
1043            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
1044            (TestLayerVisibility.file_contents, TestLabels.file_contents)
1045            (TestLayerProjection.file_contents)
1046            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1047            (TestPostGISLayer.file_contents)
1048            (TestPostGISLayerPassword.file_contents)
1049            (TestLoadError.file_contents, TestLoadError.test): Update for new
1050            namespace
1051    
1052    2003-08-27  Bernhard Herzog  <[email protected]>
1053    
1054            Make the table interface distinguish between row ids (an integer
1055            that uniquely identifies a row) and row ordinals (a simple row
1056            count from 0 to NumRows() - 1)
1057    
1058            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
1059            (PostGISTable.RowOrdinalToId): New methods to conver between row
1060            ids and row ordinals
1061            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
1062            parameter row_is_ordinal to indicate whether the row parameter is
1063            the row id or the ordinal
1064    
1065            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
1066            (TransientTableBase.RowOrdinalToId)
1067            (AutoTransientTable.RowIdToOrdinal)
1068            (AutoTransientTable.RowOrdinalToId): Same new methods as in
1069            PostGISTable.
1070            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
1071            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
1072            Same new parameter as in PostGISTable.
1073    
1074            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
1075            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
1076            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
1077            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
1078            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
1079            parameter as in PostGISTable.
1080    
1081            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
1082            (DataTable.RowOrdinalToId): New methods to convert between row ids
1083            and row ordinals.
1084            (TableGrid.SelectRowById): New method to select a row based on its
1085            ID as opposed to its ordinal
1086            (DataTable.GetValue, TableGrid.OnRangeSelect)
1087            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
1088            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
1089            (LayerTableFrame.__init__): Convert between row ids and row
1090            ordinals as appropriate
1091    
1092            * test/postgissupport.py (PostGISDatabase.__init__): Add
1093            doc-string.
1094            (PostGISDatabase.initdb): The optional third item in a tuple in
1095            tables is now a (key, value) list with additional arguments to
1096            pass to upload_shapefile
1097            (upload_shapefile): New parameter gid_offset to allow gids that
1098            are not the same as the shapeids in the shapefile
1099            (PostgreSQLServer.get_default_static_data_db): Use the new
1100            gid_offset to make the gids in landmarks 1000 higher than the
1101            shapeids in the shapefile
1102    
1103            * test/test_viewport.py
1104            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
1105            new shapeids in the landmarks table
1106    
1107            * test/test_transientdb.py
1108            (TestTransientTable.run_iceland_political_tests)
1109            (TestTransientTable.test_transient_joined_table): Add tests for
1110            the new table methods and new keywords arguments.
1111    
1112            * test/test_postgis_db.py
1113            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
1114            (TestPostGISTable.test_read_value_row_count_mode)
1115            (TestPostGISTable.test_row_id_to_ordinal)
1116            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
1117            table methods and the new arguments
1118            (TestPostGISShapestorePoint.test_shapes_in_region)
1119            (TestPostGISShapestorePoint.test_shape_raw_data)
1120            (TestPostGISShapestorePoint.test_shape_points)
1121            (TestPostGISShapestorePoint.test_shape_shapeid)
1122            (TestPostGISShapestorePoint.test_all_shapes)
1123            (TestPostGISTable.test_simple_query)
1124            (TestPostGISTable.test_simple_query)
1125            (TestPostGISTable.test_simple_query)
1126            (TestPostGISTable.test_read_value)
1127            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
1128            shapeids in the landmarks table
1129    
1130            * test/test_memory_table.py
1131            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
1132            (TestMemoryTable.test_read_value_row_count_mode)
1133            (TestMemoryTable.test_row_id_to_ordinal)
1134            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
1135            table methods and the new arguments
1136    
1137            * test/test_dbf_table.py
1138            (TestDBFTable.test_read_row_as_dict_row_count_mode)
1139            (TestDBFTable.test_read_value_row_count_mode)
1140            (TestDBFTable.test_row_id_to_ordinal)
1141            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
1142            methods and the new arguments
1143    
1144    2003-08-26  Bernhard Herzog  <[email protected]>
1145    
1146            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
1147            more postgis specific but much faster method to get the bounding
1148            box
1149    
1150    2003-08-26  Bernhard Herzog  <[email protected]>
1151    
1152            * Thuban/Model/postgisdb.py (PostGISTable.Title)
1153            (PostGISShapeStore.AllShapes): Add these missing methods.
1154            (PostGISShapeStore.ShapesInRegion): No need to raise
1155            StopIteration. We can simply return
1156    
1157            * test/test_postgis_db.py (TestPostGISTable.test_title)
1158            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
1159            new methods
1160    
1161    2003-08-25  Bernhard Herzog  <[email protected]>
1162    
1163            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
1164    
1165            * test/test_postgis_db.py (PolygonTests): New class containing
1166            those tests from TestPostGISShapestorePolygon that can also be
1167            used to test MUTLIPOLYGON tables
1168            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
1169            so derive from that
1170            (TestPostGISShapestoreMultiPolygon): New class with tests for
1171            MUTLIPOLYGON tables
1172    
1173            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
1174            tables argument to have tuples with three items to override the
1175            WKT type used.
1176            (PostgreSQLServer.get_default_static_data_db): Use the above to
1177            create a polygon table with MUTLIPOLYGONs
1178            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
1179            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
1180            coords_to*
1181            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
1182            (wkt_converter): New. Map WKT types to converters
1183            (upload_shapefile): New parameter force_wkt_type to use a
1184            different WKT type than the default
1185    
1186  2003-08-25  Bernhard Herzog  <[email protected]>  2003-08-25  Bernhard Herzog  <[email protected]>
1187    
1188          * Thuban/UI/application.py          * Thuban/UI/application.py
# Line 941  Line 2126 
2126    
2127          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
2128          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
2129          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
2130          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
2131    
2132          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1655  
changed lines
  Added in v.1899

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26