/[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 1849 by bh, Tue Oct 21 11:07:09 2003 UTC
# Line 1  Line 1 
1    2003-10-21  Bernhard Herzog  <[email protected]>
2    
3            * test/test_load.py (TestSingleLayer.file_contents)
4            (TestSingleLayer.test): Add non-ascii characters to the titles of
5            session, map and layer. This is effectively a port of the
6            TestUnicodeStrings test in test_load_0_8.py which for some reason
7            was only added there.
8    
9            * test/test_load_0_9.py (TestSingleLayer.file_contents)
10            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
11            characters to the titles of session, map and layer,.
12    
13    2003-10-21  Bernhard Herzog  <[email protected]>
14    
15            Add EPSG projection handling to .thuban files
16    
17            * test/test_save.py (SaveSessionTest.dtd)
18            (SaveSessionTest.testEmptySession)
19            (SaveSessionTest.testLayerProjection)
20            (SaveSessionTest.testRasterLayer)
21            (SaveSessionTest.testClassifiedLayer)
22            (SaveSessionTest.test_dbf_table)
23            (SaveSessionTest.test_joined_table)
24            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
25            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
26            use a and epsg projection to test saving them
27    
28            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
29            namespace
30            (TestLayerVisibility.file_contents, TestLabels.file_contents)
31            (TestLayerProjection.file_contents)
32            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
33            (TestPostGISLayer.file_contents)
34            (TestPostGISLayerPassword.file_contents)
35            (TestLoadError.file_contents, TestLoadError.test): Update to use
36            1.0-dev namespace
37            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
38            use 1.0-dev namespace and use an EPSG projection to test whether
39            loading it works
40    
41            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
42            as of Thuban 0.9. These are now tests to determine whether Thuban
43            can still read files generated by Thuban 0.9
44    
45            * Thuban/Model/save.py (SessionSaver.write)
46            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
47            namespace
48            (SessionSaver.write_projection): Write the projection's epsg
49            attribute
50    
51            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
52            thuban-1.0-dev.dtd namespace
53            (SessionLoader.check_attrs): Allow a callable object as conversion
54            too
55            (SessionLoader.start_projection, SessionLoader.end_projection)
56            (SessionLoader.start_parameter): Handle the epsg attribute and
57            rename a few instance variables to lower case
58    
59            * Resources/XML/thuban-1.0.dtd: New. Only difference to
60            thuban-0.9.dtd is the epsg attribute for projections.
61    
62    2003-10-21  Bernhard Herzog  <[email protected]>
63    
64            * test/runtests.py (main): Let the user specify which tests to run
65            on the command line
66    
67            * test/support.py (ThubanTestResult.getDescription): Override to
68            give a better short description. The description can be used as a
69            parameter to run_tests to run that particular test in isolation.
70    
71    2003-10-21  Frank Koormann   <[email protected]>
72    
73            Popup menu for legend. Scheduled for the 1.2 release this was too
74            simple to implement: The popup menu is bound to the legend tree, while
75            the events are hanlded by its anchestor, the legend panel. This
76            allows reuse of all the event handlers already implemented for the
77            legend toolbar buttons.
78    
79            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
80            to add handlers for the events issued by the popup menu.
81            (LegendPanel._OnToggleVisibility): Handler for toggling layer
82            visibility event
83            (LegendPanel._OnProjection): Handler for layer projection event.
84            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
85            (LegendTree._OnRightClick): Event handler for right click, select item
86            and pop up menu.
87            (LegendTree.ToggleVisibility): Toggle layer visibility
88            (LegendTree.LayerProjection): Raise layer projection dialog for
89            current layer.
90    
91    2003-10-21  Bernhard Herzog  <[email protected]>
92    
93            * Resources/Projections/defaults.proj: Use correct DOCTYPE
94            declaration. The top-level element is projectionlist not projfile
95    
96    2003-10-20  Bernhard Herzog  <[email protected]>
97    
98            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
99            method to write a projfile and display a busy cursor and error
100            dialogs.
101            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
102            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
103            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
104            busy cursor while loading the user and system prj files.
105    
106    2003-10-16  Bernhard Herzog  <[email protected]>
107    
108            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
109            ProjFile objects
110            (clear_proj_file_cache): New function to clear the cache. Mainly
111            useful for use by the test suite
112            (read_proj_file): Use the cache.
113    
114            * test/test_proj.py (TestProjFile): Clarify the doc-string
115            (ProjFileReadTests): Update doc-string
116            (ProjFileReadTests.test_get_system_proj_file): Check whether the
117            system proj files is cached.
118            (ProjFileLoadTestCase): New base class for the proj file tests
119            derived from support.FileLoadTestCase to provide some common
120            behavior.
121            (TestLoadingProjFile)
122            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
123            (TestProjFileWithInvalidParameters.file_contents): Derive from
124            ProjFileLoadTestCase
125            (TestLoadingProjFile.test_caching): New. Test whether the cache
126            works
127    
128    2003-10-16      Silke Reimer    <[email protected]>
129    
130            * debian/*: New directory with configuration files for building a thuban
131              deb-package.
132    
133    2003-10-14  Bernhard Herzog  <[email protected]>
134    
135            * test/test_proj.py: Execute support.run_tests when run as
136            __main__ so that missing unsubscribes are detected
137            (TestProjFile.tearDown): Destroy the proj_file properly
138    
139    2003-10-14  Bernhard Herzog  <[email protected]>
140    
141            * Thuban/Model/messages.py (PROJECTION_ADDED)
142            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
143            the ProjFile objects
144    
145            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
146            easily send messages when the projections change
147            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
148            when the change was successful
149    
150            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
151            proj file messages
152            (TestProjFile.test_add_remove)
153            (TestProjFile.test_remove_non_existing)
154            (TestProjFile.test_replace)
155            (TestProjFile.test_replace_non_existing): Test whether the right
156            messages are sent
157    
158    2003-10-14  Bernhard Herzog  <[email protected]>
159    
160            * test/test_proj.py (TestProjFile.test): Refactor into several
161            tests
162            (TestProjFile.test_add_remove)
163            (TestProjFile.test_remove_non_existing)
164            (TestProjFile.test_replace)
165            (TestProjFile.test_replace_non_existing): Some of the new
166            individual test cases
167            (TestProjFileSimple): New class for the rest of the test cases
168            that came out of the refactoring
169            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
170            derived classes don't have to
171    
172    2003-10-13  Bernhard Herzog  <[email protected]>
173    
174            Add an optional EPSG code to the projection objects and extend the
175            .proj file format accordingly.
176    
177            * Resources/XML/projfile.dtd (element projection): Add epsg
178            attribute
179    
180            * Thuban/Model/proj.py (Projection.__init__): New parameter and
181            instance variable epsg. Update doc-string
182            (Projection.EPSGCode, Projection.Label): New methods to provide
183            access to EPSG code and a label for use in dialogs
184    
185            * Thuban/Model/resource.py (ProjFileReader.start_projection)
186            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
187            Handle the epsg code attribute when reading or writing proj files
188    
189            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
190            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
191            (ProjFrame.__FillAvailList): Use the projection's Label method to
192            get the string for the list box
193    
194            * test/test_proj.py (TestProjection.test_label)
195            (TestProjection.test_label_epsg)
196            (TestProjection.test_epsgcode_for_non_epsg_projection)
197            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
198            for the label and EPSGCode methods
199            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
200            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
201            objects in the test cases and put the expected contents into the
202            test case methods too. Update doTestWrite accordingly
203            (TestLoadingProjFile)
204            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
205            read tests from TestProjFile.
206            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
207            tests are now in the new classes.
208            (sample_projfile, sample_projfile_data)
209            (sample_projfile2, sample_projfile_data2): Removed. Not used
210            anymore.
211            (TestProjFile.test_read_unreadable_file): No need to reset the
212            permissions at the end anymore since we use a unique filename
213    
214    2003-10-13  Bernhard Herzog  <[email protected]>
215    
216            * test/test_proj.py: Some more refactoring of the test cases
217            (ProjFileTest): New base class for the proj file tests.
218            (TestProjFile): Derive from ProjFileTest
219            (TestProjFile.test_read_unreadable_file)
220            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
221            the new filename method to get a unique filename
222            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
223            (WriteProjFileTests): New class for proj file write tests.
224            Contains the write test that were in TestProjFile originally.
225    
226    2003-10-13  Bernhard Herzog  <[email protected]>
227    
228            * test/test_proj.py (TestProjFile.testRead)
229            (TestProjFile.test_read_non_existing_file)
230            (TestProjFile.test_read_unreadable_file)
231            (TestProjFile.test_read_empty_file): Split into several methods.
232    
233    2003-10-10  Bernhard Herzog  <[email protected]>
234    
235            * Thuban/UI/sizers.py: New file with custom sizers.
236    
237            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
238            all projection type specific panels and put them into a
239            NotebookLikeSizer. This way the dialog doesn't change its size
240            when a different projection is selected
241            (ProjFrame.__init__): Rename projection_panels
242            projection_panel_defs and reuse projection_panels for a list of
243            the instantiated panels.
244            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
245            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
246            the panels
247            (UnknownProjPanel._DoLayout): Place the newlines in the message
248            differently to make the panel narrower.
249            (TMPanel._DoLayout): Layout the parameters in one column.
250    
251    2003-10-10  Bernhard Herzog  <[email protected]>
252    
253            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
254            that contains all the setup for the dialog's widgets, layout and
255            event handling.
256            (__): Call build_dialog to build the dialog.
257            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
258            Their functionality is now in build_dialog
259            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
260            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
261            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
262            different widget names and hierarchy introduced with build_dialog.
263    
264    2003-10-10  Bernhard Herzog  <[email protected]>
265    
266            * README: Fix typo.
267    
268    2003-10-09  Bernhard Herzog  <[email protected]>
269    
270            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
271            projection is already in the list. This is *a lot* faster when
272            loading files with hundreds of projections since it saves a linear
273            search. OTOH this will allow adding the same projection to the
274            user.proj file multiple times in the projection dialog but we'll
275            deal with that later
276    
277    2003-10-09  Jan-Oliver Wagner <[email protected]>
278    
279            * devtools: New. Directory for developer tools that are not intended
280            for the regular user.
281    
282            * devtools/create_epsg.py: New. Convert the epsg file of proj into
283            a python .proj file.
284    
285    2003-10-09  Bernhard Herzog  <[email protected]>
286    
287            * test/test_proj.py
288            (TestProjection.test_get_parameter_without_equals_sign): New. Test
289            whether GetParameter handles parameters without "=" sign correctly
290    
291            * Thuban/Model/proj.py (Projection.GetParameter): Handle
292            parameters that do not contain a "=". Update the doc-string
293    
294    2003-10-08  Bernhard Herzog  <[email protected]>
295    
296            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
297            length limit on the projname text control
298    
299    2003-10-08  Bernhard Herzog  <[email protected]>
300    
301            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
302            (TestProjection.test_get_projection_units_normal): New. Tests for
303            the Projection.GetProjectedUnits method
304    
305    2003-10-08  Jan-Oliver Wagner <[email protected]>
306    
307            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
308            Added missing 'val' parameter.
309    
310    2003-10-08  Bernhard Herzog  <[email protected]>
311    
312            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
313            projection type of the currently selected projection is not known,
314            i.e. there's no panel for it, use the UnknownProjPanel
315            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
316            the actual replacing of the proj panel into the new method
317            _show_proj_panel.
318            (UnknownProjPanel): Add doc-string.
319            (UnknownProjPanel._DoLayout): Insert a newline into the text so
320            that the panel is not so wide.
321    
322    2003-10-08  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/Model/resource.py (read_proj_file): Return the warnings
325            too. Update the doc-string
326            (get_proj_files): Removed. It wasn't used anywhere
327            (get_system_proj_files, get_system_proj_file): Rename to
328            get_system_proj_file and return the ProjFile object and not a list
329            of ProjFile objects. Update the callers.
330            (get_user_proj_files, get_user_proj_file): Rename to
331            get_user_proj_file return the ProjFile object and not a list of
332            ProjFile objects. Update the callers.
333            (ProjFileReader.__init__): New instance variable for the warnings.
334            Rename the __pf ivar to projfile. Update the methods referring to
335            __pf
336            (ProjFileReader.end_projection): Catch any errors raised when
337            instantiating the projection and record that as an error. The
338            projection will not be in the final ProjFile object.
339            (ProjFileReader.GetWarnings): New method to return the warnings.
340    
341            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
342            show the warnings from the projfile reader
343            (ProjFrame._OnImport): Deal with any warnings returned by
344            read_proj_file
345            (ProjFrame.__FillAvailList): Deal with any warnings returned by
346            get_system_proj_file or get_user_proj_file.
347    
348            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
349            (TestProjFileWithInvalidParameters.file_contents): New test cases
350            to test whether read_proj_file handles invalid projection
351            parameters correctly
352            (TestProjFile.test_get_system_proj_file): New. Simple test for
353            resource.get_system_proj_file
354    
355    2003-10-07  Bernhard Herzog  <[email protected]>
356    
357            * test/test_derivedshapestore.py
358            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
359            properly so that the temporary directories get deleted correctly
360    
361    2003-10-06  Bernhard Herzog  <[email protected]>
362    
363            Handle the title changes in a proper MVC way.
364    
365            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
366            canvas' TITLE_CHANGED messages
367            (MainWindow.update_title): New. Update the main window's title
368            (MainWindow.__SetTitle): Removed. Use update_title instead.
369            (MainWindow.SetMap): Use update_title instead of __SetTitle
370            (MainWindow.RenameMap): Do change the window title explicitly
371            here. That's handled in a proper MVC way now.
372            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
373            messages
374    
375            * Thuban/Lib/connector.py (Conduit): New class to help classes
376            that forward messages
377    
378            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
379            (ViewPort): Derive from Conduit instead of Publisher
380            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
381            when calling the inherited versions
382            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
383            methods to subscribe and unsubscribe map messages
384            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
385            handle the map subscriptions
386            (ViewPort.Map, ViewPort.map_projection_changed)
387            (ViewPort.layer_projection_changed): Add or update doc-strings
388    
389            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
390            typo
391            (MyConduit): Helper class for the Conduit test.
392            (TestConduit): Test cases for Conduit
393    
394            * test/test_connector.py: Use support.run_tests as main.
395    
396            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
397            the TITLE_CHANGED messages
398            (ViewPortTest.test_forwarding_title_changed): New test to check
399            whether the viewport forwards the map's TITLE_CHANGED messages
400            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
401            after the port's because the latter may require a still functional
402            map.
403    
404    2003-10-06  Bernhard Herzog  <[email protected]>
405    
406            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
407            doc-string
408    
409    2003-10-06  Bernhard Herzog  <[email protected]>
410    
411            * test/test_viewport.py (ViewPortTest.setUp)
412            (SimpleViewPortTest.test_init_with_size): Move the test for the
413            initial size as a constructor parameter from ViewPortTest.setUp
414            method to a new separate test in SimpleViewPortTest.
415    
416    2003-10-06  Bernhard Herzog  <[email protected]>
417    
418            * test/test_viewport.py (MockView): New class derived from
419            ViewPort with a mock implementation of GetTextExtent to be used in
420            the test cases
421            (ViewPortTest.setUp): Use MockView instead of ViewPort
422    
423            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
424            into what would be a "pure virtual function" in C++: always raise
425            NotImplementedError. Mock implementations for test cases don't
426            belong into the real code
427    
428    2003-10-02  Bernhard Herzog  <[email protected]>
429    
430            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
431            close the dbf file we create so that it's contents have been
432            written properly.
433    
434            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
435            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
436            Update to shapelib 1.2.10
437    
438    2003-10-01  Jan-Oliver Wagner <[email protected]>
439    
440            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
441            it annoys lintian which warns about these files not being
442            executable. The #! isn't necessary here since if you absolutely
443            must execute them you can always say "python <filename>".
444    
445    2003-09-26  Bernhard Herzog  <[email protected]>
446    
447            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
448            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
449            is ported to a newer the import will fail, so it should be noticed
450            immediately that this function is gone.
451            Fixes RT#1919
452    
453    2003-09-26  Bernhard Herzog  <[email protected]>
454    
455            Add a DTD for the projection files and make thuban write valid
456            projection files
457    
458            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
459            files
460    
461            * Thuban/Model/resource.py (ProjFileSaver.write): Use
462            'projectionlist' as the name in the document type declaration so
463            that it matches the element type of the root element.
464    
465            * test/test_proj.py (sample_projfile, sample_projfile2): Use
466            'projectionlist' as the name in the document type declaration just
467            as it is done now in the files thuban would write
468            (sample_projfile, sample_projfile_data): Fix spelling of
469            "Mercator"
470            (TestProjFile.doTestWrite): Validate the written and the expected
471            XML data
472            (TestProjFile): Derive from ValidationTest so that we can run xml
473            validation tests
474    
475    2003-09-24  Bernhard Herzog  <[email protected]>
476    
477            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
478            modify the list returned by map.Layers() in place since it is the
479            actual list of layers used by the map.
480    
481    2003-09-23  Jan-Oliver Wagner <[email protected]>
482    
483            * Doc/manual/thuban-manual.xml: Added subsection to chapter
484            Extensions to describe the extensions coming with the Thuban
485            standard package (gns2shp and importAPR).
486    
487    2003-09-23  Bernhard Herzog  <[email protected]>
488    
489            * libraries/thuban/wxproj.cpp (project_point): if there's an
490            inverse but no forward projection, convert to degrees after
491            applying the inverse projection. Fixes RT#2096
492    
493            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
494            implicitly tests for the fix to RT#2096
495    
496            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
497            Check that the sequences have the same lengths
498    
499            * Resources/Projections/defaults.proj (Geographic projection): Use
500            a much more precise value for the to_meter attribute.
501    
502    2003-09-22  Bernhard Herzog  <[email protected]>
503    
504            * test/support.py (initthuban): Make sure to unset the LANG env.
505            var. so that tests that compare translated strings work. Solves RT
506            #2094
507    
508    2003-09-22  Jan-Oliver Wagner <[email protected]>
509    
510            Small improvement of APR import.
511    
512            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
513            Added tests for text-ranges.
514    
515            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
516            returns a string object if the range is based on text.
517    
518            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
519            range retrieval.
520    
521    2003-09-22  Jan-Oliver Wagner <[email protected]>
522    
523            Initial version of the importAPR extension which is in
524            experimental state.
525    
526            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
527            /Extensions/importAPR/test/: New directories.
528    
529            * /Extensions/importAPR/samples/README: New: Howto load the samples.
530    
531            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
532            file which refers to the Thuban Iceland demo data.
533    
534            * /Extensions/importAPR/test/README: New: Howto execute the tests.
535    
536            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
537    
538            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
539            as in '.apr'-files.
540    
541            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
542            ODB Objects as in '.apr', '.avl' and other files.
543    
544            * /Extensions/importAPR/__init__.py: New: Init to make this
545            directory a package.
546    
547            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
548            project file (.apr) and convert it to Thuban.
549    
550    2003-09-22  Jan-Oliver Wagner <[email protected]>
551    
552            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
553    
554    2003-09-19  Jan-Oliver Wagner <[email protected]>
555    
556            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
557            with description on RPM installation and RPM binary package
558            creation.
559    
560    2003-09-18  Bernhard Herzog  <[email protected]>
561    
562            * setup.py (data_files): Only add the mo files if the Locales
563            directory actually exists, so that setup.py works with a fresh CVS
564            checkout
565    
566    2003-09-12  Jan-Oliver Wagner <[email protected]>
567    
568            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
569            in viewport, not anymore in view
570    
571    2003-09-04  Jan-Oliver Wagner <[email protected]>
572    
573            Introducing first Extension (gns2shp).
574    
575            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
576    
577            * Extensions/__init__.py: New. init to make this dir a package.
578    
579            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
580    
581            * Extensions/gns2shp/test/README: New. some info on this test directory.
582    
583            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
584    
585            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
586            of Shapefile from GNS text file format
587    
588    2003-09-03  Jan-Oliver Wagner <[email protected]>
589    
590            Fix/workaround for bug #2019:
591            https://intevation.de/rt/webrt?serial_num=2019
592    
593            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
594            (IdentifyView.__init__): Added another button that allows to
595            stop the identify mode.
596            (IdentifyView.OnStop): New. Stops the identify mode.
597    
598    2003-09-03  Jan-Oliver Wagner <[email protected]>
599    
600            Introducing a new exception dialog that allows to exit the
601            application immediately.
602            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
603    
604            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
605    
606            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
607            Made strings available to translations. Exchanged the simple
608            ScrolledMessageDialog by the new ExceptionDialog.
609    
610    2003-09-01  Bernhard Herzog  <[email protected]>
611    
612            * NEWS: New. Summary of changes and release notes.
613    
614            * MANIFEST.in: Add NEWS
615    
616    2003-09-01  Bernhard Herzog  <[email protected]>
617    
618            * MANIFEST.in: Correct the include statement for the mo-files and
619            include the documentation too.
620    
621            * setup.py (data_files): Add the .mo files
622            (setup call): Up to version 0.9.0
623    
624    2003-09-01  Bernhard Herzog  <[email protected]>
625    
626            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
627            parameter list to just parent and session
628            (ChooseDBTableDialog.__set_properties): Removed. Setting the
629            selection of empty list boxes is not allowed (and produces C++
630            assertion errors) and the rest of the setup is better done in
631            __init__ anyway.
632            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
633            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
634            builtins True/False for booleans to avoid warnings from wxPython
635    
636            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
637            ChooseDBTableDialog constructor parameters.
638    
639    2003-09-01  Bernhard Herzog  <[email protected]>
640    
641            * Thuban/Model/postgisdb.py
642            (PostGISTable): Extend doc-string
643            (PostGISTable._fetch_table_information): Set the column index
644            correctly, pretending ignored columns don't exist.
645    
646            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
647            for postgis tables with data types not yet supported by thuban.
648    
649    2003-08-29  Bernhard Herzog  <[email protected]>
650    
651            * HOWTO-Release: Tweak item about running the tests.
652    
653    2003-08-29  Jan-Oliver Wagner <[email protected]>
654    
655            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
656    
657    2003-08-29  Bernhard Herzog  <[email protected]>
658    
659            Add some missing parameters to projections. Proj complains about
660            them on windows but for some reason not on Linux.
661    
662            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
663            missing required projection parameters
664    
665            * test/test_proj.py (TestProjFile.test): Add missing required
666            projection parameters
667    
668            * test/test_load_0_8.py (TestLayerProjection.file_contents)
669            (TestLayerProjection.test): Add missing required projection
670            parameters and tests for them
671    
672            * test/test_load.py (TestLayerProjection.file_contents)
673            (TestLayerProjection.test): Add missing required projection
674            parameters and tests for them
675    
676            * test/test_layer.py (TestLayer.test_base_layer): Add missing
677            required projection parameters
678    
679    2003-08-29  Bernhard Herzog  <[email protected]>
680    
681            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
682            access the pj_errno because directly accessing pj_errno doesn't
683            work on windows if the proj library is in a DLL
684    
685            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
686    
687    2003-08-28  Bernhard Herzog  <[email protected]>
688    
689            * test/test_proj.py: Import things from Thuban after calling
690            initthuban
691    
692            * test/test_load.py (LoadSessionTest.filenames): New class
693            variable with the filename attributes to normalize
694            (LoadSessionTest.check_format): Pass self.filenames to
695            sax_eventlist to normalize the filename attributes
696    
697            * test/xmlsupport.py: Add cvs keywords
698            (SaxEventLister.__init__): New parameter filenames which indicates
699            attributes that contain filenames
700            (SaxEventLister.startElementNS): Normalize the filename attributes
701            with os.path.normpath
702            (sax_eventlist): New parameter filenames to pass through to
703            SaxEventLister
704    
705            * test/test_derivedshapestore.py: Make this file callable as a
706            program to execute the tests
707            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
708            the session to self.session so that it gets destroyed properly
709    
710            * test/test_layer.py (TestLayer.tearDown): Call the session's
711            Destroy method
712    
713            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
714            too if it exists
715            (TestMapAddLayer.test_add_layer): Bind the session to self.session
716            so that it gets destroyed properly
717    
718            * test/postgissupport.py (reason_for_not_running_tests): Add a
719            test for the existence of popen2.Popen4.
720    
721            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
722            reliable way to destroy the sessions created in the test cases
723            (SaveSessionTest.test_dbf_table): Bind the session to self.session
724            so that it gets destroyed properly
725            (SaveSessionTest.testLayerProjection): Bind the session to
726            self.session so that it gets destroyed properly
727    
728            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
729            sure that the session is destroyed properly
730    
731            * test/test_shapefilestore.py: Make this callable as a program to
732            execute the tests
733    
734            * test/test_scalebar.py: Remove unnecessary import of _ from
735            Thuban
736    
737            * test/support.py (print_garbage_information): Call initthuban
738            here because it may be called indirectly from test cases that test
739            test support modules which do not use anything from thuban itself
740            (ThubanTestProgram.runTests): Remove unnecessary debug print
741    
742    2003-08-28  Bernhard Herzog  <[email protected]>
743    
744            * Thuban/version.py (longversion): Update to 0.9
745    
746            * Thuban/UI/mainwindow.py: Remove some unused imports
747    
748            * README: Add section about required additional software. Add date
749            and revision CVS keywords
750    
751            * HOWTO-Release: Add item about the translations. Add date and
752            revision CVs keywords and change formatting to match README a bit
753            better
754    
755            * po/de.po: Update for 0.9
756    
757            * test/README: Tweak the wording a little because many tests are
758            not really unittest.
759    
760    2003-08-27  Bernhard Herzog  <[email protected]>
761    
762            As preparation for the 0.9 release, switch thuban files to a
763            non-dev namespace
764    
765            * Thuban/Model/save.py (SessionSaver.write_session): Write files
766            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
767            namespace
768    
769            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
770            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
771    
772            * test/test_save.py (SaveSessionTest.dtd)
773            (SaveSessionTest.testEmptySession)
774            (SaveSessionTest.testSingleLayer)
775            (SaveSessionTest.testLayerProjection)
776            (SaveSessionTest.testRasterLayer)
777            (SaveSessionTest.testClassifiedLayer)
778            (SaveSessionTest.test_dbf_table)
779            (SaveSessionTest.test_joined_table)
780            (SaveSessionTest.test_save_postgis): Update for new namespace
781    
782            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
783            (TestLayerVisibility.file_contents, TestLabels.file_contents)
784            (TestLayerProjection.file_contents)
785            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
786            (TestPostGISLayer.file_contents)
787            (TestPostGISLayerPassword.file_contents)
788            (TestLoadError.file_contents, TestLoadError.test): Update for new
789            namespace
790    
791    2003-08-27  Bernhard Herzog  <[email protected]>
792    
793            Make the table interface distinguish between row ids (an integer
794            that uniquely identifies a row) and row ordinals (a simple row
795            count from 0 to NumRows() - 1)
796    
797            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
798            (PostGISTable.RowOrdinalToId): New methods to conver between row
799            ids and row ordinals
800            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
801            parameter row_is_ordinal to indicate whether the row parameter is
802            the row id or the ordinal
803    
804            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
805            (TransientTableBase.RowOrdinalToId)
806            (AutoTransientTable.RowIdToOrdinal)
807            (AutoTransientTable.RowOrdinalToId): Same new methods as in
808            PostGISTable.
809            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
810            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
811            Same new parameter as in PostGISTable.
812    
813            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
814            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
815            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
816            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
817            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
818            parameter as in PostGISTable.
819    
820            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
821            (DataTable.RowOrdinalToId): New methods to convert between row ids
822            and row ordinals.
823            (TableGrid.SelectRowById): New method to select a row based on its
824            ID as opposed to its ordinal
825            (DataTable.GetValue, TableGrid.OnRangeSelect)
826            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
827            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
828            (LayerTableFrame.__init__): Convert between row ids and row
829            ordinals as appropriate
830    
831            * test/postgissupport.py (PostGISDatabase.__init__): Add
832            doc-string.
833            (PostGISDatabase.initdb): The optional third item in a tuple in
834            tables is now a (key, value) list with additional arguments to
835            pass to upload_shapefile
836            (upload_shapefile): New parameter gid_offset to allow gids that
837            are not the same as the shapeids in the shapefile
838            (PostgreSQLServer.get_default_static_data_db): Use the new
839            gid_offset to make the gids in landmarks 1000 higher than the
840            shapeids in the shapefile
841    
842            * test/test_viewport.py
843            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
844            new shapeids in the landmarks table
845    
846            * test/test_transientdb.py
847            (TestTransientTable.run_iceland_political_tests)
848            (TestTransientTable.test_transient_joined_table): Add tests for
849            the new table methods and new keywords arguments.
850    
851            * test/test_postgis_db.py
852            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
853            (TestPostGISTable.test_read_value_row_count_mode)
854            (TestPostGISTable.test_row_id_to_ordinal)
855            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
856            table methods and the new arguments
857            (TestPostGISShapestorePoint.test_shapes_in_region)
858            (TestPostGISShapestorePoint.test_shape_raw_data)
859            (TestPostGISShapestorePoint.test_shape_points)
860            (TestPostGISShapestorePoint.test_shape_shapeid)
861            (TestPostGISShapestorePoint.test_all_shapes)
862            (TestPostGISTable.test_simple_query)
863            (TestPostGISTable.test_simple_query)
864            (TestPostGISTable.test_simple_query)
865            (TestPostGISTable.test_read_value)
866            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
867            shapeids in the landmarks table
868    
869            * test/test_memory_table.py
870            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
871            (TestMemoryTable.test_read_value_row_count_mode)
872            (TestMemoryTable.test_row_id_to_ordinal)
873            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
874            table methods and the new arguments
875    
876            * test/test_dbf_table.py
877            (TestDBFTable.test_read_row_as_dict_row_count_mode)
878            (TestDBFTable.test_read_value_row_count_mode)
879            (TestDBFTable.test_row_id_to_ordinal)
880            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
881            methods and the new arguments
882    
883    2003-08-26  Bernhard Herzog  <[email protected]>
884    
885            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
886            more postgis specific but much faster method to get the bounding
887            box
888    
889    2003-08-26  Bernhard Herzog  <[email protected]>
890    
891            * Thuban/Model/postgisdb.py (PostGISTable.Title)
892            (PostGISShapeStore.AllShapes): Add these missing methods.
893            (PostGISShapeStore.ShapesInRegion): No need to raise
894            StopIteration. We can simply return
895    
896            * test/test_postgis_db.py (TestPostGISTable.test_title)
897            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
898            new methods
899    
900    2003-08-25  Bernhard Herzog  <[email protected]>
901    
902            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
903    
904            * test/test_postgis_db.py (PolygonTests): New class containing
905            those tests from TestPostGISShapestorePolygon that can also be
906            used to test MUTLIPOLYGON tables
907            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
908            so derive from that
909            (TestPostGISShapestoreMultiPolygon): New class with tests for
910            MUTLIPOLYGON tables
911    
912            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
913            tables argument to have tuples with three items to override the
914            WKT type used.
915            (PostgreSQLServer.get_default_static_data_db): Use the above to
916            create a polygon table with MUTLIPOLYGONs
917            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
918            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
919            coords_to*
920            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
921            (wkt_converter): New. Map WKT types to converters
922            (upload_shapefile): New parameter force_wkt_type to use a
923            different WKT type than the default
924    
925  2003-08-25  Bernhard Herzog  <[email protected]>  2003-08-25  Bernhard Herzog  <[email protected]>
926    
927          * Thuban/UI/application.py          * Thuban/UI/application.py
# Line 941  Line 1865 
1865    
1866          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1867          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1868          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1869          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1870    
1871          * 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.1849

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26