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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26