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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26