/[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 1582 by bh, Tue Aug 12 15:08:40 2003 UTC revision 1799 by bh, Thu Oct 9 10:17:59 2003 UTC
# Line 1  Line 1 
1    2003-10-09  Bernhard Herzog  <[email protected]>
2    
3            * test/test_proj.py
4            (TestProjection.test_get_parameter_without_equals_sign): New. Test
5            whether GetParameter handles parameters without "=" sign correctly
6    
7            * Thuban/Model/proj.py (Projection.GetParameter): Handle
8            parameters that do not contain a "=". Update the doc-string
9    
10    2003-10-08  Bernhard Herzog  <[email protected]>
11    
12            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
13            length limit on the projname text control
14    
15    2003-10-08  Bernhard Herzog  <[email protected]>
16    
17            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
18            (TestProjection.test_get_projection_units_normal): New. Tests for
19            the Projection.GetProjectedUnits method
20    
21    2003-10-08  Jan-Oliver Wagner <[email protected]>
22    
23            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
24            Added missing 'val' parameter.
25    
26    2003-10-08  Bernhard Herzog  <[email protected]>
27    
28            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
29            projection type of the currently selected projection is not known,
30            i.e. there's no panel for it, use the UnknownProjPanel
31            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
32            the actual replacing of the proj panel into the new method
33            _show_proj_panel.
34            (UnknownProjPanel): Add doc-string.
35            (UnknownProjPanel._DoLayout): Insert a newline into the text so
36            that the panel is not so wide.
37    
38    2003-10-08  Bernhard Herzog  <[email protected]>
39    
40            * Thuban/Model/resource.py (read_proj_file): Return the warnings
41            too. Update the doc-string
42            (get_proj_files): Removed. It wasn't used anywhere
43            (get_system_proj_files, get_system_proj_file): Rename to
44            get_system_proj_file and return the ProjFile object and not a list
45            of ProjFile objects. Update the callers.
46            (get_user_proj_files, get_user_proj_file): Rename to
47            get_user_proj_file return the ProjFile object and not a list of
48            ProjFile objects. Update the callers.
49            (ProjFileReader.__init__): New instance variable for the warnings.
50            Rename the __pf ivar to projfile. Update the methods referring to
51            __pf
52            (ProjFileReader.end_projection): Catch any errors raised when
53            instantiating the projection and record that as an error. The
54            projection will not be in the final ProjFile object.
55            (ProjFileReader.GetWarnings): New method to return the warnings.
56    
57            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
58            show the warnings from the projfile reader
59            (ProjFrame._OnImport): Deal with any warnings returned by
60            read_proj_file
61            (ProjFrame.__FillAvailList): Deal with any warnings returned by
62            get_system_proj_file or get_user_proj_file.
63    
64            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
65            (TestProjFileWithInvalidParameters.file_contents): New test cases
66            to test whether read_proj_file handles invalid projection
67            parameters correctly
68            (TestProjFile.test_get_system_proj_file): New. Simple test for
69            resource.get_system_proj_file
70    
71    2003-10-07  Bernhard Herzog  <[email protected]>
72    
73            * test/test_derivedshapestore.py
74            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
75            properly so that the temporary directories get deleted correctly
76    
77    2003-10-06  Bernhard Herzog  <[email protected]>
78    
79            Handle the title changes in a proper MVC way.
80    
81            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
82            canvas' TITLE_CHANGED messages
83            (MainWindow.update_title): New. Update the main window's title
84            (MainWindow.__SetTitle): Removed. Use update_title instead.
85            (MainWindow.SetMap): Use update_title instead of __SetTitle
86            (MainWindow.RenameMap): Do change the window title explicitly
87            here. That's handled in a proper MVC way now.
88            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
89            messages
90    
91            * Thuban/Lib/connector.py (Conduit): New class to help classes
92            that forward messages
93    
94            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
95            (ViewPort): Derive from Conduit instead of Publisher
96            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
97            when calling the inherited versions
98            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
99            methods to subscribe and unsubscribe map messages
100            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
101            handle the map subscriptions
102            (ViewPort.Map, ViewPort.map_projection_changed)
103            (ViewPort.layer_projection_changed): Add or update doc-strings
104    
105            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
106            typo
107            (MyConduit): Helper class for the Conduit test.
108            (TestConduit): Test cases for Conduit
109    
110            * test/test_connector.py: Use support.run_tests as main.
111    
112            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
113            the TITLE_CHANGED messages
114            (ViewPortTest.test_forwarding_title_changed): New test to check
115            whether the viewport forwards the map's TITLE_CHANGED messages
116            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
117            after the port's because the latter may require a still functional
118            map.
119    
120    2003-10-06  Bernhard Herzog  <[email protected]>
121    
122            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
123            doc-string
124    
125    2003-10-06  Bernhard Herzog  <[email protected]>
126    
127            * test/test_viewport.py (ViewPortTest.setUp)
128            (SimpleViewPortTest.test_init_with_size): Move the test for the
129            initial size as a constructor parameter from ViewPortTest.setUp
130            method to a new separate test in SimpleViewPortTest.
131    
132    2003-10-06  Bernhard Herzog  <[email protected]>
133    
134            * test/test_viewport.py (MockView): New class derived from
135            ViewPort with a mock implementation of GetTextExtent to be used in
136            the test cases
137            (ViewPortTest.setUp): Use MockView instead of ViewPort
138    
139            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
140            into what would be a "pure virtual function" in C++: always raise
141            NotImplementedError. Mock implementations for test cases don't
142            belong into the real code
143    
144    2003-10-02  Bernhard Herzog  <[email protected]>
145    
146            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
147            close the dbf file we create so that it's contents have been
148            written properly.
149    
150            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
151            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
152            Update to shapelib 1.2.10
153    
154    2003-10-01  Jan-Oliver Wagner <[email protected]>
155    
156            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
157            it annoys lintian which warns about these files not being
158            executable. The #! isn't necessary here since if you absolutely
159            must execute them you can always say "python <filename>".
160    
161    2003-09-26  Bernhard Herzog  <[email protected]>
162    
163            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
164            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
165            is ported to a newer the import will fail, so it should be noticed
166            immediately that this function is gone.
167            Fixes RT#1919
168    
169    2003-09-26  Bernhard Herzog  <[email protected]>
170    
171            Add a DTD for the projection files and make thuban write valid
172            projection files
173    
174            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
175            files
176    
177            * Thuban/Model/resource.py (ProjFileSaver.write): Use
178            'projectionlist' as the name in the document type declaration so
179            that it matches the element type of the root element.
180    
181            * test/test_proj.py (sample_projfile, sample_projfile2): Use
182            'projectionlist' as the name in the document type declaration just
183            as it is done now in the files thuban would write
184            (sample_projfile, sample_projfile_data): Fix spelling of
185            "Mercator"
186            (TestProjFile.doTestWrite): Validate the written and the expected
187            XML data
188            (TestProjFile): Derive from ValidationTest so that we can run xml
189            validation tests
190    
191    2003-09-24  Bernhard Herzog  <[email protected]>
192    
193            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
194            modify the list returned by map.Layers() in place since it is the
195            actual list of layers used by the map.
196    
197    2003-09-23  Jan-Oliver Wagner <[email protected]>
198    
199            * Doc/manual/thuban-manual.xml: Added subsection to chapter
200            Extensions to describe the extensions coming with the Thuban
201            standard package (gns2shp and importAPR).
202    
203    2003-09-23  Bernhard Herzog  <[email protected]>
204    
205            * libraries/thuban/wxproj.cpp (project_point): if there's an
206            inverse but no forward projection, convert to degrees after
207            applying the inverse projection. Fixes RT#2096
208    
209            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
210            implicitly tests for the fix to RT#2096
211    
212            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
213            Check that the sequences have the same lengths
214    
215            * Resources/Projections/defaults.proj (Geographic projection): Use
216            a much more precise value for the to_meter attribute.
217    
218    2003-09-22  Bernhard Herzog  <[email protected]>
219    
220            * test/support.py (initthuban): Make sure to unset the LANG env.
221            var. so that tests that compare translated strings work. Solves RT
222            #2094
223    
224    2003-09-22  Jan-Oliver Wagner <[email protected]>
225    
226            Small improvement of APR import.
227    
228            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
229            Added tests for text-ranges.
230    
231            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
232            returns a string object if the range is based on text.
233    
234            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
235            range retrieval.
236    
237    2003-09-22  Jan-Oliver Wagner <[email protected]>
238    
239            Initial version of the importAPR extension which is in
240            experimental state.
241    
242            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
243            /Extensions/importAPR/test/: New directories.
244    
245            * /Extensions/importAPR/samples/README: New: Howto load the samples.
246    
247            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
248            file which refers to the Thuban Iceland demo data.
249    
250            * /Extensions/importAPR/test/README: New: Howto execute the tests.
251    
252            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
253    
254            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
255            as in '.apr'-files.
256    
257            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
258            ODB Objects as in '.apr', '.avl' and other files.
259    
260            * /Extensions/importAPR/__init__.py: New: Init to make this
261            directory a package.
262    
263            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
264            project file (.apr) and convert it to Thuban.
265    
266    2003-09-22  Jan-Oliver Wagner <[email protected]>
267    
268            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
269    
270    2003-09-19  Jan-Oliver Wagner <[email protected]>
271    
272            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
273            with description on RPM installation and RPM binary package
274            creation.
275    
276    2003-09-18  Bernhard Herzog  <[email protected]>
277    
278            * setup.py (data_files): Only add the mo files if the Locales
279            directory actually exists, so that setup.py works with a fresh CVS
280            checkout
281    
282    2003-09-12  Jan-Oliver Wagner <[email protected]>
283    
284            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
285            in viewport, not anymore in view
286    
287    2003-09-04  Jan-Oliver Wagner <[email protected]>
288    
289            Introducing first Extension (gns2shp).
290    
291            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
292    
293            * Extensions/__init__.py: New. init to make this dir a package.
294    
295            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
296    
297            * Extensions/gns2shp/test/README: New. some info on this test directory.
298    
299            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
300    
301            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
302            of Shapefile from GNS text file format
303    
304    2003-09-03  Jan-Oliver Wagner <[email protected]>
305    
306            Fix/workaround for bug #2019:
307            https://intevation.de/rt/webrt?serial_num=2019
308    
309            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
310            (IdentifyView.__init__): Added another button that allows to
311            stop the identify mode.
312            (IdentifyView.OnStop): New. Stops the identify mode.
313    
314    2003-09-03  Jan-Oliver Wagner <[email protected]>
315    
316            Introducing a new exception dialog that allows to exit the
317            application immediately.
318            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
319    
320            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
321    
322            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
323            Made strings available to translations. Exchanged the simple
324            ScrolledMessageDialog by the new ExceptionDialog.
325    
326    2003-09-01  Bernhard Herzog  <[email protected]>
327    
328            * NEWS: New. Summary of changes and release notes.
329    
330            * MANIFEST.in: Add NEWS
331    
332    2003-09-01  Bernhard Herzog  <[email protected]>
333    
334            * MANIFEST.in: Correct the include statement for the mo-files and
335            include the documentation too.
336    
337            * setup.py (data_files): Add the .mo files
338            (setup call): Up to version 0.9.0
339    
340    2003-09-01  Bernhard Herzog  <[email protected]>
341    
342            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
343            parameter list to just parent and session
344            (ChooseDBTableDialog.__set_properties): Removed. Setting the
345            selection of empty list boxes is not allowed (and produces C++
346            assertion errors) and the rest of the setup is better done in
347            __init__ anyway.
348            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
349            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
350            builtins True/False for booleans to avoid warnings from wxPython
351    
352            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
353            ChooseDBTableDialog constructor parameters.
354    
355    2003-09-01  Bernhard Herzog  <[email protected]>
356    
357            * Thuban/Model/postgisdb.py
358            (PostGISTable): Extend doc-string
359            (PostGISTable._fetch_table_information): Set the column index
360            correctly, pretending ignored columns don't exist.
361    
362            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
363            for postgis tables with data types not yet supported by thuban.
364    
365    2003-08-29  Bernhard Herzog  <[email protected]>
366    
367            * HOWTO-Release: Tweak item about running the tests.
368    
369    2003-08-29  Jan-Oliver Wagner <[email protected]>
370    
371            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
372    
373    2003-08-29  Bernhard Herzog  <[email protected]>
374    
375            Add some missing parameters to projections. Proj complains about
376            them on windows but for some reason not on Linux.
377    
378            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
379            missing required projection parameters
380    
381            * test/test_proj.py (TestProjFile.test): Add missing required
382            projection parameters
383    
384            * test/test_load_0_8.py (TestLayerProjection.file_contents)
385            (TestLayerProjection.test): Add missing required projection
386            parameters and tests for them
387    
388            * test/test_load.py (TestLayerProjection.file_contents)
389            (TestLayerProjection.test): Add missing required projection
390            parameters and tests for them
391    
392            * test/test_layer.py (TestLayer.test_base_layer): Add missing
393            required projection parameters
394    
395    2003-08-29  Bernhard Herzog  <[email protected]>
396    
397            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
398            access the pj_errno because directly accessing pj_errno doesn't
399            work on windows if the proj library is in a DLL
400    
401            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
402    
403    2003-08-28  Bernhard Herzog  <[email protected]>
404    
405            * test/test_proj.py: Import things from Thuban after calling
406            initthuban
407    
408            * test/test_load.py (LoadSessionTest.filenames): New class
409            variable with the filename attributes to normalize
410            (LoadSessionTest.check_format): Pass self.filenames to
411            sax_eventlist to normalize the filename attributes
412    
413            * test/xmlsupport.py: Add cvs keywords
414            (SaxEventLister.__init__): New parameter filenames which indicates
415            attributes that contain filenames
416            (SaxEventLister.startElementNS): Normalize the filename attributes
417            with os.path.normpath
418            (sax_eventlist): New parameter filenames to pass through to
419            SaxEventLister
420    
421            * test/test_derivedshapestore.py: Make this file callable as a
422            program to execute the tests
423            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
424            the session to self.session so that it gets destroyed properly
425    
426            * test/test_layer.py (TestLayer.tearDown): Call the session's
427            Destroy method
428    
429            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
430            too if it exists
431            (TestMapAddLayer.test_add_layer): Bind the session to self.session
432            so that it gets destroyed properly
433    
434            * test/postgissupport.py (reason_for_not_running_tests): Add a
435            test for the existence of popen2.Popen4.
436    
437            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
438            reliable way to destroy the sessions created in the test cases
439            (SaveSessionTest.test_dbf_table): Bind the session to self.session
440            so that it gets destroyed properly
441            (SaveSessionTest.testLayerProjection): Bind the session to
442            self.session so that it gets destroyed properly
443    
444            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
445            sure that the session is destroyed properly
446    
447            * test/test_shapefilestore.py: Make this callable as a program to
448            execute the tests
449    
450            * test/test_scalebar.py: Remove unnecessary import of _ from
451            Thuban
452    
453            * test/support.py (print_garbage_information): Call initthuban
454            here because it may be called indirectly from test cases that test
455            test support modules which do not use anything from thuban itself
456            (ThubanTestProgram.runTests): Remove unnecessary debug print
457    
458    2003-08-28  Bernhard Herzog  <[email protected]>
459    
460            * Thuban/version.py (longversion): Update to 0.9
461    
462            * Thuban/UI/mainwindow.py: Remove some unused imports
463    
464            * README: Add section about required additional software. Add date
465            and revision CVS keywords
466    
467            * HOWTO-Release: Add item about the translations. Add date and
468            revision CVs keywords and change formatting to match README a bit
469            better
470    
471            * po/de.po: Update for 0.9
472    
473            * test/README: Tweak the wording a little because many tests are
474            not really unittest.
475    
476    2003-08-27  Bernhard Herzog  <[email protected]>
477    
478            As preparation for the 0.9 release, switch thuban files to a
479            non-dev namespace
480    
481            * Thuban/Model/save.py (SessionSaver.write_session): Write files
482            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
483            namespace
484    
485            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
486            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
487    
488            * test/test_save.py (SaveSessionTest.dtd)
489            (SaveSessionTest.testEmptySession)
490            (SaveSessionTest.testSingleLayer)
491            (SaveSessionTest.testLayerProjection)
492            (SaveSessionTest.testRasterLayer)
493            (SaveSessionTest.testClassifiedLayer)
494            (SaveSessionTest.test_dbf_table)
495            (SaveSessionTest.test_joined_table)
496            (SaveSessionTest.test_save_postgis): Update for new namespace
497    
498            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
499            (TestLayerVisibility.file_contents, TestLabels.file_contents)
500            (TestLayerProjection.file_contents)
501            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
502            (TestPostGISLayer.file_contents)
503            (TestPostGISLayerPassword.file_contents)
504            (TestLoadError.file_contents, TestLoadError.test): Update for new
505            namespace
506    
507    2003-08-27  Bernhard Herzog  <[email protected]>
508    
509            Make the table interface distinguish between row ids (an integer
510            that uniquely identifies a row) and row ordinals (a simple row
511            count from 0 to NumRows() - 1)
512    
513            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
514            (PostGISTable.RowOrdinalToId): New methods to conver between row
515            ids and row ordinals
516            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
517            parameter row_is_ordinal to indicate whether the row parameter is
518            the row id or the ordinal
519    
520            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
521            (TransientTableBase.RowOrdinalToId)
522            (AutoTransientTable.RowIdToOrdinal)
523            (AutoTransientTable.RowOrdinalToId): Same new methods as in
524            PostGISTable.
525            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
526            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
527            Same new parameter as in PostGISTable.
528    
529            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
530            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
531            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
532            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
533            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
534            parameter as in PostGISTable.
535    
536            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
537            (DataTable.RowOrdinalToId): New methods to convert between row ids
538            and row ordinals.
539            (TableGrid.SelectRowById): New method to select a row based on its
540            ID as opposed to its ordinal
541            (DataTable.GetValue, TableGrid.OnRangeSelect)
542            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
543            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
544            (LayerTableFrame.__init__): Convert between row ids and row
545            ordinals as appropriate
546    
547            * test/postgissupport.py (PostGISDatabase.__init__): Add
548            doc-string.
549            (PostGISDatabase.initdb): The optional third item in a tuple in
550            tables is now a (key, value) list with additional arguments to
551            pass to upload_shapefile
552            (upload_shapefile): New parameter gid_offset to allow gids that
553            are not the same as the shapeids in the shapefile
554            (PostgreSQLServer.get_default_static_data_db): Use the new
555            gid_offset to make the gids in landmarks 1000 higher than the
556            shapeids in the shapefile
557    
558            * test/test_viewport.py
559            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
560            new shapeids in the landmarks table
561    
562            * test/test_transientdb.py
563            (TestTransientTable.run_iceland_political_tests)
564            (TestTransientTable.test_transient_joined_table): Add tests for
565            the new table methods and new keywords arguments.
566    
567            * test/test_postgis_db.py
568            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
569            (TestPostGISTable.test_read_value_row_count_mode)
570            (TestPostGISTable.test_row_id_to_ordinal)
571            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
572            table methods and the new arguments
573            (TestPostGISShapestorePoint.test_shapes_in_region)
574            (TestPostGISShapestorePoint.test_shape_raw_data)
575            (TestPostGISShapestorePoint.test_shape_points)
576            (TestPostGISShapestorePoint.test_shape_shapeid)
577            (TestPostGISShapestorePoint.test_all_shapes)
578            (TestPostGISTable.test_simple_query)
579            (TestPostGISTable.test_simple_query)
580            (TestPostGISTable.test_simple_query)
581            (TestPostGISTable.test_read_value)
582            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
583            shapeids in the landmarks table
584    
585            * test/test_memory_table.py
586            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
587            (TestMemoryTable.test_read_value_row_count_mode)
588            (TestMemoryTable.test_row_id_to_ordinal)
589            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
590            table methods and the new arguments
591    
592            * test/test_dbf_table.py
593            (TestDBFTable.test_read_row_as_dict_row_count_mode)
594            (TestDBFTable.test_read_value_row_count_mode)
595            (TestDBFTable.test_row_id_to_ordinal)
596            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
597            methods and the new arguments
598    
599    2003-08-26  Bernhard Herzog  <[email protected]>
600    
601            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
602            more postgis specific but much faster method to get the bounding
603            box
604    
605    2003-08-26  Bernhard Herzog  <[email protected]>
606    
607            * Thuban/Model/postgisdb.py (PostGISTable.Title)
608            (PostGISShapeStore.AllShapes): Add these missing methods.
609            (PostGISShapeStore.ShapesInRegion): No need to raise
610            StopIteration. We can simply return
611    
612            * test/test_postgis_db.py (TestPostGISTable.test_title)
613            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
614            new methods
615    
616    2003-08-25  Bernhard Herzog  <[email protected]>
617    
618            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
619    
620            * test/test_postgis_db.py (PolygonTests): New class containing
621            those tests from TestPostGISShapestorePolygon that can also be
622            used to test MUTLIPOLYGON tables
623            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
624            so derive from that
625            (TestPostGISShapestoreMultiPolygon): New class with tests for
626            MUTLIPOLYGON tables
627    
628            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
629            tables argument to have tuples with three items to override the
630            WKT type used.
631            (PostgreSQLServer.get_default_static_data_db): Use the above to
632            create a polygon table with MUTLIPOLYGONs
633            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
634            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
635            coords_to*
636            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
637            (wkt_converter): New. Map WKT types to converters
638            (upload_shapefile): New parameter force_wkt_type to use a
639            different WKT type than the default
640    
641    2003-08-25  Bernhard Herzog  <[email protected]>
642    
643            * Thuban/UI/application.py
644            (ThubanApplication.run_db_param_dialog): New. Suitable as a
645            db_connection_callback. Main difference is that the dialog run
646            from this method doesn't have a parent so it can be used even when
647            there is no main window
648            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
649            no db_connection_callback was given. This way the dialog pops up
650            even when the .thuban file was given as a command line parameter.
651    
652    2003-08-25  Bernhard Herzog  <[email protected]>
653    
654            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
655            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
656            which leads to an effectively frozen X session because the user
657            can only interact with the dialog but the mouse is still grabbed
658            by the canvas.
659            Also, call the tool's Hide method before MouseLeftUp because
660            MouseLeftUp may change the tool's coordinates.
661    
662    2003-08-25  Bernhard Herzog  <[email protected]>
663    
664            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
665            LoadCancelled exceptions and handle them by returning immediately.
666    
667    2003-08-25  Bernhard Herzog  <[email protected]>
668    
669            GUI part of loading sessions with postgis connections which may
670            require user interaction to get passwords or updated parameters
671    
672            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
673            bit nucer and be more generic.
674            (DBFrame.OnAdd): Adapt to new DBDialog interface
675    
676            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
677            optional parameter db_connection_callback which is passed to
678            load_session.
679    
680            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
681            Suitable as a db_connection_callback
682            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
683            db_connection_callback of the application's OpenSession method
684    
685    
686    2003-08-25  Bernhard Herzog  <[email protected]>
687    
688            Basic loading of sessions containing postgis connections:
689    
690            * Thuban/Model/load.py (LoadError): Add doc-string
691            (LoadCancelled): New exception class to indicate a cancelled load
692            (SessionLoader.__init__): Add the db_connection_callback parameter
693            which will be used by the loader to get updated parameters and a
694            password for a database connection
695            (SessionLoader.__init__): Add the new XML elements to the
696            dispatchers dictionary
697            (SessionLoader.check_attrs): Two new conversions, ascii to convert
698            to a byte-string object and idref as a generic id reference
699            (SessionLoader.start_dbconnection)
700            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
701            elements
702            (load_session): Add the db_connection_callback to pass through the
703            SessionLoader
704    
705            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
706            New classes to test loading of sessions with postgis database
707            connections.
708    
709    2003-08-25  Bernhard Herzog  <[email protected]>
710    
711            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
712            replace it and the comment with __BuildDate__ by the Source: and
713            Id: cvs keywords as used in the other files.
714    
715    2003-08-25  Bernhard Herzog  <[email protected]>
716    
717            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
718            LoadError when a required attribute is missing. The code used to
719            be commented out for some reason, but probably should have been
720            active.
721    
722            * test/test_load.py (TestLoadError.test): Test the message in the
723            LoadError too to make sure it really is about the missing
724            attribute
725    
726    2003-08-22  Bernhard Herzog  <[email protected]>
727    
728            * test/test_save.py (SaveSessionTest.test_dbf_table)
729            (SaveSessionTest.test_joined_table): Add XML validation tests.
730    
731    2003-08-22  Bernhard Herzog  <[email protected]>
732    
733            Implement saving a session with a postgis connection
734    
735            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
736            elements for database connections and shapestores using db
737            connections
738            (session): Add the dbconnections to the content model
739    
740            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
741            Write the db connections
742            (SessionSaver.write_session): Call write_db_connections to write
743            the connection before the data sources
744            (SessionSaver.write_data_containers): Handle postgis shapestores
745    
746            * test/test_save.py (SaveSessionTest.thubanids)
747            (SaveSessionTest.thubanidrefs): Update for new DTD
748            (SaveSessionTest.test_save_postgis): New. Test saving a session
749            with postgis connections
750    
751            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
752            (PostGISTable.TableName): New accessor methods for the connection
753            and table name
754    
755            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
756            (TestPostGISTable.test_dbname): New methods to test the new
757            PostGISConnection methods
758    
759    2003-08-22  Bernhard Herzog  <[email protected]>
760    
761            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
762            for exceptions occurring when establishing a Database connection
763            (PostGISConnection.connect): Catch psycopg.OperationalError during
764            connects and raise ConnectionError.
765    
766            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
767            tests for database exceptions
768    
769    2003-08-22  Bernhard Herzog  <[email protected]>
770    
771            Prepare the test suite for tests with required authentication
772    
773            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
774            variables with two predefined users/passwords, one for the admin
775            and one for a non-privileged user.
776            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
777            the non-privileged user to the database and set the admin password
778            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
779            Better error reporting
780            (PostgreSQLServer.connection_params)
781            (PostgreSQLServer.connection_string): New methods to return
782            information about how to connect to the server
783            (PostgreSQLServer.execute_sql): New. Convenience method to execute
784            SQL statements
785            (PostgreSQLServer.require_authentication): Toggle whether the
786            server requires authentication
787            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
788            Add or alter users
789            (PostGISDatabase.initdb): Pass the admin name one the
790            subprocesses' command lines. Grant select rights on
791            geometry_columns to everybody.
792            (upload_shapefile): Use the admin name and password when
793            connecting. Grant select rights on the new table to everybody.
794    
795            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
796            server's new methods to get the connection parameters.
797    
798            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
799            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
800            server's new methods to get the connection parameters.
801    
802            * test/test_postgis_db.py
803            (TestPostGISConnection.test_gis_tables_empty)
804            (TestPostGISConnection.test_gis_tables_non_empty)
805            (PostGISStaticTests.setUp): Use the server's new methods to get
806            the connection parameters.
807    
808    2003-08-22  Bernhard Herzog  <[email protected]>
809    
810            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
811    
812            * Thuban/version.py: Add psycopg version
813    
814            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
815            version of the psycopg module
816    
817    2003-08-22  Bernhard Herzog  <[email protected]>
818    
819            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
820            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
821            at the moment. The functionality should probably be implemented
822            some time, though.
823            (DBFrame.OnRemove): Display a message if the connection can't be
824            removed because it's still in use.
825    
826    2003-08-22  Jan-Oliver Wagner <[email protected]>
827    
828            * Thuban/UI/about.py (About.__init__): split up the huge about
829            text into elements/lists for easier translation. This fixes bug
830            https://intevation.de/rt/webrt?serial_num=2058
831            Also, made some forgotten string available for the i18n.
832    
833    2003-08-21  Bernhard Herzog  <[email protected]>
834    
835            Make postgis support really optional including insensitive menu
836            items.
837    
838            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
839            whether the postgis is supported.
840    
841            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
842            to make postgis support optional
843    
844            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
845            version of Thuban.Model.postgisdb.has_postgis_support
846            (database_management command): Make it only sensitive if postgis
847            is supported.
848    
849    2003-08-21  Jan-Oliver Wagner <[email protected]>
850    
851            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
852            (section Adding and Removing Layers): Added text and described
853            multi-selection.
854            (chapter Extensions): New.
855    
856    2003-08-21  Jan-Oliver Wagner <[email protected]>
857    
858            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
859            settings to allow multiple files to load into the map.
860            Also reduced selection to *.shp as a default.
861    
862    2003-08-20  Bernhard Herzog  <[email protected]>
863    
864            Add dialogs and commands to open database connections and add
865            database layers.
866    
867            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
868            method to open the database connection management dialog
869            (MainWindow.AddDBLayer): New method to add a layer from a database
870            (_has_dbconnections): New helper function to use for sensitivity
871            (database_management command, layer_add_db command): New commands
872            that call the above new methods.
873            (main_menu): Add the new commands to the menu.
874    
875            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
876            (PostGISConnection.connect): Establish the actual connection in a
877            separate method and call it in __init__. This makes it easier to
878            override the behavior in test cases
879            (PostGISConnection.BriefDescription): New method to return a brief
880            description for use in dialogs.
881    
882            * test/test_postgis_db.py (NonConnection): DB connection that
883            doesn't actually connect
884            (TestBriefDescription): New class with tests for the new
885            BriefDescription method
886    
887    2003-08-19  Jan-Oliver Wagner <[email protected]>
888    
889            Moved anything from extensions to libraries.
890    
891            * libraries: New.
892    
893            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
894    
895            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
896            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
897            been moved here from thuban/extensions/pyprojection/
898            See there in the Attic for the older history.
899    
900            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
901            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
902            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
903            have been moved here from thuban/extensions/pyshapelib/
904            See there in the Attic for the older history.
905    
906            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
907            files have been moved here from thuban/extensions/shapelib/
908            See there in the Attic for the older history.
909    
910            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
911            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
912            thuban/extensions/thuban/
913            See there in the Attic for the older history.
914    
915            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
916    
917            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
918            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
919    
920            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
921            Moved to libraries/shapelib.
922    
923            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
924            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
925            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
926            Moved to libraries/pyshapelib.
927    
928            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
929            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
930            Moved to libraries/pyprojection.
931    
932            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
933    
934            * extensions: Removed.
935    
936    2003-08-19  Bernhard Herzog  <[email protected]>
937    
938            * test/test_viewport.py (ViewPortTest): We don't use the
939            facilities of FileTestMixin so don't derive from it.
940            (TestViewportWithPostGIS): New class with tests for using a
941            viewport on a map with postgis layers.
942    
943    2003-08-19  Bernhard Herzog  <[email protected]>
944    
945            Add the db connection management to the session.
946    
947            * Thuban/Model/session.py (Session.__init__): New instance
948            variable db_connections
949            (Session.AddDBConnection, Session.DBConnections)
950            (Session.HasDBConnections, Session.CanRemoveDBConnection)
951            (Session.RemoveDBConnection): New methods to manage and query the
952            db connections managed by the session
953            (Session.OpenDBShapeStore): New method to open a shapestore from a
954            db connection
955    
956            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
957            messages for the db connection handling in the session
958    
959            * test/test_postgis_session.py: New. test cases for the session's
960            db connection handling with postgis connections
961    
962    2003-08-19  Bernhard Herzog  <[email protected]>
963    
964            Add very basic postgis database support and the corresponding test
965            cases. The test cases require a PostgreSQL + postgis installation
966            but no existing database. The database will be created
967            automatically by the test cases
968    
969            * test/README: Add note about skipped tests and the requirements
970            of the postgis tests.
971    
972            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
973    
974            * test/test_postgis_db.py: New. Test cases for the postgis
975            support.
976    
977            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
978            format
979    
980            * test/test_wellknowntext.py: New. Test cases for the
981            wellknowntext parser
982    
983            * test/postgissupport.py: New. Support module for tests involving
984            a postgis database.
985    
986            * test/support.py (execute_as_testsuite): Shut down the postmaster
987            if it's still running after the tests
988    
989            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
990            well known text format
991    
992    2003-08-19  Jan-Oliver Wagner <[email protected]>
993    
994            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
995            message dialog.
996    
997    2003-08-18  Bernhard Herzog  <[email protected]>
998    
999            * test/support.py (ThubanTestResult.printErrors): Indent the
1000            reason for the skips in the output to make it a bit more readable.
1001            (execute_as_testsuite): New helper function to run a test suite
1002            and print some more information.
1003            (run_tests): Use execute_as_testsuite to run the tests
1004    
1005            * test/runtests.py (main): Use execute_as_testsuite to run the
1006            tests
1007    
1008    2003-08-18  Bernhard Herzog  <[email protected]>
1009    
1010            Fix some bugs in Thuban and the test suite that were uncovered by
1011            changes introduced in Python 2.3:
1012    
1013            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
1014            filename is an absolute name
1015    
1016            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
1017            filename is an absolute name
1018    
1019            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
1020            unique filename to save to and use the correct relative filename
1021            in the expected output.
1022            (SaveSessionTest.test_dbf_table): Use the correct relative
1023            filename in the expected output.
1024    
1025            * test/test_layer.py (TestLayer.test_raster_layer): Update the
1026            test to check whether the filename is absolute.
1027    
1028    2003-08-18  Jan-Oliver Wagner <[email protected]>
1029    
1030            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
1031    
1032    2003-08-15  Bernhard Herzog  <[email protected]>
1033    
1034            Change the way shapes are returned by a shape store. The
1035            ShapesInRegion method returns an iterator over actual shape
1036            objects instead of a list of shape ids.
1037    
1038            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
1039            id.
1040            (ShapefileStore.ShapesInRegion): Return an iterator over the
1041            shapes which yields shape objects instead of returning a list of
1042            shape ids
1043            (ShapefileStore.AllShapes): New. Return an iterator over all
1044            shapes in the shape store
1045            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
1046    
1047            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
1048            doc-string.
1049    
1050            * Thuban/UI/baserenderer.py
1051            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
1052            layer_shapes and make it return an iterator containg shapes
1053            instead of a list of ids.
1054            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
1055            layer_shapes() change
1056    
1057            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
1058            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
1059    
1060            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
1061            changes in the ShapesInRegion return value.
1062            (ViewPort._get_hit_tester): Remove commented out code
1063    
1064            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
1065            new return value.
1066            (SimpleShapeStore.AllShapes): New. Implement this method too.
1067    
1068            * test/test_layer.py (TestLayer.test_arc_layer)
1069            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
1070            (TestLayer.test_point_layer_with_projection)
1071            (TestLayer.test_derived_store): Adapt to changes in the
1072            ShapesInRegion return value.
1073    
1074            * test/test_shapefilestore.py
1075            (TestShapefileStoreArc.test_shapes_in_region)
1076            (TestShapefileStorePolygon.test_shapes_in_region)
1077            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
1078            in the ShapesInRegion return value.
1079            (TestShapefileStorePoint.test_all_shapes)
1080            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
1081            methods
1082    
1083            * test/test_derivedshapestore.py
1084            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
1085            the ShapesInRegion return value.
1086            (TestDerivedShapeStore.test_all_shapes)
1087            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
1088            methods
1089    
1090    2003-08-15  Bernhard Herzog  <[email protected]>
1091    
1092            Make the renderers deal correctly with raw vs. python level
1093            representation of shape geometries
1094    
1095            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
1096            Return a flag useraw in addition to the callable and the parameter
1097            to indicate whether the callable can deal with the raw shape data
1098            or uses the higher level python lists of coordinates. The callable
1099            now should accept either the raw data or the return value of the
1100            shape's Points() method.
1101            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
1102            change
1103            (BaseRenderer.projected_points): Instead of the shape id use the
1104            points list as parameter.
1105            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
1106            (BaseRenderer.draw_point_shape): Adapt to projected_points()
1107            change and accept the points list as parameter instead of the
1108            shape id.
1109    
1110            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
1111            the useraw flag as required by the BaseRenderer
1112            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
1113            changes.
1114    
1115            * test/test_baserenderer.py
1116            (TestBaseRenderer.test_point_with_classification): New test for
1117            rendering a map with classifications.
1118    
1119    2003-08-15  Bernhard Herzog  <[email protected]>
1120    
1121            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
1122            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
1123            (ViewPort._get_hit_tester, ViewPort.projected_points)
1124            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
1125            (ViewPort._find_label_at): Split the find_shape_at method into
1126            several new methods and use the functions in the hit-test module.
1127    
1128            * Thuban/UI/hittest.py: New module with Python-level hit-testing
1129            functions
1130    
1131            * test/test_hittest.py: New. Test for the new hittest module
1132    
1133    2003-08-15  Bernhard Herzog  <[email protected]>
1134    
1135            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
1136            projection to all corners of the bounding box to get a better
1137            approximation of the projected bounding box
1138    
1139            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1140            New. Test coordinate handling of a layer with a projection.
1141            Catches the bug fixed in Layer.ShapesInRegion
1142    
1143    2003-08-15  Bernhard Herzog  <[email protected]>
1144    
1145            Move some of the mock objects in test_baserenderer into their own
1146            module so they can easily be used from other tests
1147    
1148            * test/mockgeo.py: New test helper module with some mock objects
1149            for geometry related things like shapes, shapestores and
1150            projections.
1151    
1152            * test/test_mockgeo.py: New. Tests for the new helper module
1153    
1154            * test/test_baserenderer.py: Some of the mock-objects are in
1155            mockgeo now.
1156    
1157    2003-08-12  Jan-Oliver Wagner <[email protected]>
1158    
1159            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
1160    
1161  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
1162    
1163          * po/de.po: New. German translations by Bjoern Broscheit          * po/de.po: New. German translations by Bjoern Broscheit
# Line 421  Line 1581 
1581    
1582          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1583          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1584          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1585          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1586    
1587          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1582  
changed lines
  Added in v.1799

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26