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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26