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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26