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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26