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

Legend:
Removed from v.1657  
changed lines
  Added in v.1897

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26