/[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 1906 by bh, Fri Oct 31 17:10:14 2003 UTC revision 2067 by bh, Mon Feb 16 19:39:48 2004 UTC
# Line 1  Line 1 
1    2004-02-16  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
4    
5    2004-02-15  Markus Rechtien  <[email protected]>
6            
7            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
8            to write a session to a file in SVG format.
9            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
10            to write a SVG map of a session.
11            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
12            in SVG format for the current session.
13    
14    2004-02-13  Bernhard Herzog  <[email protected]>
15    
16            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
17            can't be created, return immediately after displaying the error
18            message.
19    
20    2004-02-11  Bernhard Herzog  <[email protected]>
21    
22            Handle postgis tables with more than one geometry column.
23    
24            * Thuban/Model/postgisdb.py
25            (PostGISTable._fetch_table_information): Delegate the creation of
26            column objects to a different method so that we can extend that in
27            derived classes
28            (PostGISTable._create_col_from_description): New. Column object
29            creation part of _fetch_table_information
30            (PostGISShapeStore._create_col_from_description): New. Extend
31            inherited method to handle geometry columns
32            (PostGISShapeStore.__init__): New parameter geometry_column to
33            specify which geometry column to use.  Optional but mandatory for
34            tables with more than one geometry column
35            (PostGISShapeStore._fetch_table_information): Also use the name of
36            the geometry column when looking for the srid
37            (PostGISShapeStore.ShapeType): Also use the name of the geometry
38            column when looking for the shape type
39    
40            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
41            NonConnectionStore to changes in the PostGISShapeStore
42    
43            * test/test_postgis_db.py
44            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
45            PostGISShapeStore with tables having two geometry columns.
46    
47    2004-02-10  Bernhard Herzog  <[email protected]>
48    
49            Fix some postgis problems.  What remains to be done is real
50            handling of SRIDs as they affect how reprojection is done
51    
52            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
53            doc-string
54            (PostGISShapeStore._fetch_table_information): New. Extend
55            inherited method to retrieve srid
56            (PostGISShapeStore.BoundingBox): Handle tables without data.
57            extent yields NULL for those
58            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
59    
60            * test/test_postgis_db.py
61            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
62            for the special case of a table without any data
63            (TestPostGISShapestorePointSRID): New class with tests for a table
64            that uses srids
65            (PolygonTests): Fix a doc-string typo
66    
67            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
68            reference_systems with a specification of spacial reference
69            systems to create in the new db.
70            (PostgreSQLServer.new_postgis_db)
71            (PostgreSQLServer.get_static_data_db): New parameter
72            reference_systems to be passed through ultimately to
73            PostGISDatabase.  In new_postgis_db also check whether an existing
74            db already has the right srids
75            (PostgreSQLServer.get_default_static_data_db): Add srids and a
76            table that uses srids
77            (PostGISDatabase.initdb): Create the entries for the reference
78            systems
79            (PostGISDatabase.has_data): Add reference_systems parameter to
80            check for those too
81            (upload_shapefile): New parameter srid to create tables with a
82            specific srid
83    
84    2004-02-06  Frank Koormann  <[email protected]>
85    
86            * po/pt_BR.po: Fixed charset
87    
88    2004-02-05  Frank Koormann  <[email protected]>
89    
90            * po/pt_BR.po: Fixed format string for error message, missing %s
91            added (Thuban/UI/application.py:273)
92    
93    2004-02-03  Frank Koormann  <[email protected]>
94            
95            First version of Portuguese (Brazilian) translation
96    
97            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
98            Brazilian Portuguese by Eduardo Patto Kanegae.
99    
100            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
101            translators.
102    
103    
104    2004-01-22  Frank Koormann  <[email protected]>
105    
106            * Doc/manual/thuban-manual.xml: Added section on installation of
107            Thuban under Win32 systems. Fixed image path references in the postgis
108            section. Some minor source formattings.
109    
110    2004-01-21  Frank Koormann  <[email protected]>
111    
112            Make Thuban remember path selections (at least for one application run).
113    
114            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
115            attribute of application object. Path is a dictionary of
116            strings, currently with the items "data" and "projection".  
117            (Application.SetPath): New, stores path for the specified item.
118            (Application.Path): New, return path for the specified item.
119    
120            * Thuban/UI/mainwindow.py
121            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
122            MainWindow.AddLayer, MainWindow.AddRasterLayer,
123            MainWindow.TableOpen): Access "data" path information of the
124            application.
125            
126            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
127            Access "projection" path information of the application.
128    
129    2004-01-05  Bernhard Herzog  <[email protected]>
130    
131            * po/ru.po: Updated translations from Alex Shevlakov
132    
133    2004-01-05  Bernhard Herzog  <[email protected]>
134    
135            * po/Makefile, po/README: Move the description of how to generate
136            the translation statistics to the README.
137    
138    2003-12-23  Bernhard Herzog  <[email protected]>
139    
140            * NEWS: Update for 1.0.0
141    
142            * po/it.po: Another update from Maurizio Napolitano
143    
144    2003-12-23  Bernhard Herzog  <[email protected]>
145    
146            * po/it.po: Updated translation from Maurizio Napolitano
147    
148    2003-12-23  Bernhard Herzog  <[email protected]>
149    
150            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
151            for translation
152    
153            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
154            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
155            strings for translation
156    
157            * po/de.po: Update with the newly marked strings.
158    
159    2003-12-22  Bernhard Herzog  <[email protected]>
160    
161            * HOWTO-Release: Fix the places where version numbers have to be
162            updated
163    
164    2003-12-22  Bernhard Herzog  <[email protected]>
165    
166            * setup.py (setup call): 1.0.0, yeah!
167    
168            * Thuban/version.py (longversion): 1.0.0, yeah!
169    
170            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
171            1.0.0 namespace too
172    
173            * Thuban/Model/save.py (SessionSaver.write_session): Save with
174            1.0.0 namespace
175    
176            * test/test_load.py (LoadSessionTest.dtd)
177            (TestSingleLayer.file_contents)
178            (TestNonAsciiColumnName.file_contents)
179            (TestLayerVisibility.file_contents)
180            (TestClassification.file_contents, TestLabels.file_contents)
181            (TestLayerProjection.file_contents)
182            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
183            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
184            (TestPostGISLayerPassword.file_contents)
185            (TestLoadError.file_contents, TestLoadError.test): Update for
186            1.0.0 namespace
187    
188            * test/test_save.py (SaveSessionTest.dtd)
189            (SaveSessionTest.testEmptySession)
190            (SaveSessionTest.testSingleLayer)
191            (SaveSessionTest.testLayerProjection)
192            (SaveSessionTest.testRasterLayer)
193            (SaveSessionTest.testClassifiedLayer)
194            (SaveSessionTest.test_dbf_table)
195            (SaveSessionTest.test_joined_table)
196            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
197    
198    2003-12-22  Bernhard Herzog  <[email protected]>
199    
200            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
201            alignment flags are byte strings not unicode and that they have
202            valid values
203    
204            * test/test_load.py (TestLabelLayer): New. Test loading (and
205            indirectly saving) of maps with labels.
206    
207    2003-12-22  Bernhard Herzog  <[email protected]>
208    
209            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
210            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
211            unsubscribe all subscribers.
212            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
213            self.grid since it may already have been destroyed.
214            Fixes RT #2256
215    
216    2003-12-19  Bernhard Herzog  <[email protected]>
217    
218            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
219    
220    2003-12-16  Bernhard Herzog  <[email protected]>
221            
222            * debian/bitmappath.patch, debian/setup.py.patch:
223                    added to ensure compliance with FHS for debian
224            * debian/rules, debian/changelog:
225                added patches in rules to ensure compliance with FHS for debian
226    
227    2003-12-16  Bernhard Herzog  <[email protected]>
228    
229            * po/Makefile (mo): Make the output a bit nicer so that it prints
230            statistics about the translations. Add a comment how produce even
231            nicer statistics with sed.
232    
233    2003-12-09  Frank Koormann   <[email protected]>
234    
235            * Resources/Projections/defaults.proj:
236            French projection sample with correct accents (UNICODE).
237    
238    2003-12-05  Bernhard Herzog  <[email protected]>
239    
240            * MANIFEST.in: Add the devtools directory
241    
242            * setup.py (setup call): Use license instead of licence. This
243            silences a deprecation warning on Python 2.3
244    
245    2003-12-05  Frank Koormann   <[email protected]>
246    
247            Documentation synced with 1.0rc1
248    
249            * Doc/manual/thuban-manual.xml:
250            Minor formatting changes and references to database layers .
251            Introduction.Internationalization: New section on i18n.
252            MapManagement.AddingandRemovingLayers: Added item on database layers.  
253            MapManagement.TheLegend: Added section and screenshot on popup menu.
254            ProjectionManagement: Updated screenshot and sentence on EPSG.
255            Appendix.SupportedDataSources: Added PostGIS.
256            Appendix.WorkingwithPostGIS: New section.
257    
258            * Doc/manual/images/6_projection.png: Updated screenshot including
259            EPSG checkboxes.
260    
261            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
262    
263            * Doc/manual/images/app_postgis_add_layer.png,
264            Doc/manual/images/app_postgis_db_add.png,
265            Doc/manual/images/app_postgis_db_management.png:
266            New screenshots focussing on database layers
267    
268    2003-12-05  Frank Koormann   <[email protected]>
269    
270            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
271            write warning to stderr instead of rising a warning dialog
272    
273    2003-12-03  Bernhard Herzog  <[email protected]>
274    
275            Fix for RT #2243
276    
277            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
278            New. Like has_selected_layer but for shape layers only
279            (_has_selected_shape_layer): New. Like _has_selected_layer but for
280            shape layers only
281            (layer_show_table command, layer_jointable command): Use these
282            commands should only be available for shape layers
283    
284    2003-12-03  Bernhard Herzog  <[email protected]>
285    
286            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
287            publishers that are wx objects and may have been destroyed by wx
288            already. Fixes RT #2242.
289    
290    2003-12-03  Bernhard Herzog  <[email protected]>
291    
292            * po/ru.po: Updates from Alex Shevlakov
293    
294    2003-12-03  Silke Reimer <silkeintevation.de>
295    
296            * debian/control, debian/changelog: Added gdal-support to
297                    debian package, updated to new thuban version
298    
299    
300    2003-12-03  Bernhard Herzog  <[email protected]>
301    
302            * Thuban/Lib/version.py: New. Module for version number
303            manipulations. The version of make_tuple here also deals better
304            with more unusual version number strings, such as e.g.
305            "1.2+cvs20031111"
306    
307            * Thuban/version.py (make_tuple): Removed. It's now in
308            Thuban.Lib.version. Use that implementation instead.
309    
310            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
311    
312    2003-12-02  Bernhard Herzog  <[email protected]>
313    
314            * MANIFEST.in: Add debian files
315    
316            * setup.py (setup call): Add packages for the Extensions so that
317            they're installed too
318            (data_files): Add READMEs and sample data from some Extensions
319    
320            * NEWS: Add note about the extensions in binary packages
321    
322    2003-12-02  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/Model/save.py (SessionSaver.write_session): Save files
325            with the thuban-1.0rc1
326    
327            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
328            thuban-1.0rc1 namespace too
329    
330            * test/test_save.py (SaveSessionTest.dtd)
331            (SaveSessionTest.testEmptySession)
332            (SaveSessionTest.testSingleLayer)
333            (SaveSessionTest.testLayerProjection)
334            (SaveSessionTest.testRasterLayer)
335            (SaveSessionTest.testClassifiedLayer)
336            (SaveSessionTest.test_dbf_table)
337            (SaveSessionTest.test_joined_table)
338            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
339            namespace
340    
341            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
342            namespace
343            (TestSingleLayer.file_contents)
344            (TestNonAsciiColumnName.file_contents)
345            (TestLayerVisibility.file_contents)
346            (TestClassification.file_contents, TestLabels.file_contents)
347            (TestLayerProjection.file_contents)
348            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
349            (TestPostGISLayer.file_contents)
350            (TestPostGISLayerPassword.file_contents)
351            (TestLoadError.file_contents, TestLoadError.test): Update to
352            thuban-1.0rc1 namespace
353    
354    2003-12-01  Bernhard Herzog  <[email protected]>
355    
356            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
357            nt to better match Intevation's current w32 setup
358    
359            * HOWTO-Release: Add note about updating MANIFEST.in
360    
361            * MANIFEST.in: Add the Extensions
362    
363            * NEWS: Update for 1.0rc1
364    
365    2003-12-01  Bernhard Herzog  <[email protected]>
366    
367            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
368            cards for the dialog so that shapefiles ending in all uppercase
369            SHP are listed too
370    
371    2003-11-28  Bernhard Herzog  <[email protected]>
372    
373            * Thuban/version.py (longversion): Update to 1.0rc1
374    
375            * setup.py (setup call): Update version to 1.0rc1. Use the
376            [email protected] email address as author email instead of my
377            personal one.
378    
379    2003-11-28  Bernhard Herzog  <[email protected]>
380    
381            * po/de.po: Update german translation.
382    
383    2003-11-28  Bernhard Herzog  <[email protected]>
384    
385            Unify the filenames stored in .thuban files so that the .thuban
386            files are more platform independend
387    
388            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
389            that they can be used on both windows and unix
390            (SessionSaver.prepare_filename): New. Handle all filename
391            transformations for filenames stored in the thuban file
392            (SessionSaver.write_data_containers, SessionSaver.write_layer):
393            Use prepare_filename
394    
395            * test/test_save.py (SaveSessionTest.testSingleLayer)
396            (SaveSessionTest.testLayerProjection)
397            (SaveSessionTest.testRasterLayer)
398            (SaveSessionTest.testClassifiedLayer)
399            (SaveSessionTest.test_dbf_table)
400            (SaveSessionTest.test_joined_table): Filenames are always stored
401            with slashes on all currently supported platforms so adapt all
402            tests to this
403    
404            * test/test_load.py (LoadSessionTest.filenames): With the new
405            filename scheme the filenames in the tests should be
406            understandable on all currently supported platforms so we turn
407            this into an empty list because we don't have to normalize them
408            anymore
409    
410    2003-11-28  Bernhard Herzog  <[email protected]>
411    
412            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
413            Add the ellipsoid to the projection since some Proj versions
414            complain if it's missing.
415    
416    2003-11-27  Bernhard Herzog  <[email protected]>
417    
418            Corect some bounding box projection problems
419    
420            * Thuban/Model/proj.py (Projection.InverseBBox): New. Inverse
421            version of ForwardBBox
422            (Projection._transform_bbox): New. common implementation of
423            ForwardBBox and InverseBBox
424            (Projection.ForwardBBox): Use _transform_bbox.
425    
426            * test/test_proj.py (TestProjection.test): Add test for
427            InverseBBox
428    
429            * Thuban/Model/layer.py (Layer.LatLongBoundingBox)
430            (Layer.ShapesBoundingBox, RasterLayer.LatLongBoundingBox): Use the
431            new InverseBBox method to determine the unprojected bounding box
432            (Layer.ShapesInRegion): Use the ForwardBBox method to project the
433            bbox.
434    
435            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
436            Removed.
437            (TestLayer.test_arc_layer_with_projection): New. This test is
438            better able to test whether bounding boxes are projected correctly
439            than test_point_layer_with_projection
440    
441            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Use
442            InverseBBox to unproject bboxes
443    
444    2003-11-25  Bernhard Herzog  <[email protected]>
445    
446            * Thuban/UI/about.py (About.__init__): Make sure we have ASCII
447            source code.
448    
449    2003-11-25  Bernhard Herzog  <[email protected]>
450    
451            * Thuban/Model/layer.py (Layer.__getattr__): Removed. It was only
452            there for backwards compatibility and all code relying on that
453            should have been updated by now.
454    
455    2003-11-25  Bernhard Herzog  <[email protected]>
456    
457            * test/test_load.py (TestClassification.test): Add the missing
458            round trip test.
459            (TestClassification.file_contents): Update to the newest file
460            format
461    
462    2003-11-25  Bernhard Herzog  <[email protected]>
463    
464            Add very experimental (and possibly dangerous) extension to draw
465            polygons:
466    
467            * Extensions/drawshape/README: New. Brief installation
468            instructions
469    
470            * Extensions/drawshape/drawshape.py: New. Implementation of the
471            drawshape extensions
472    
473            * Extensions/drawshape/patch.diff: Patch to apply before the
474            extension can be used.
475    
476    2003-11-24  Bernhard Herzog  <[email protected]>
477    
478            * Thuban/Model/data.py (ShapefileStore._open_shapefile)
479            (ShapefileStore.__init__): Factor opening the shapefile into a
480            separate method (the new _open_shapefile). This makes the code a
481            bit more readable but the real reason is that it makes some evil
482            hacks easier. :-)
483    
484    2003-11-24  Bernhard Herzog  <[email protected]>
485    
486            * Thuban/Model/load.py (SessionLoader.check_attrs): If no
487            converter is specified for an attribute assume it's a string
488            containing only Latin1 characters. Update doc-string accordingly.
489            This change should fix many places where unicode objects might
490            accidentally enter Thuban.
491    
492            * test/test_load.py (TestNonAsciiColumnName): New test to check
493            what happens with column names in DBF files that contain non-ascii
494            characters
495    
496    2003-11-21  Bernhard Herzog  <[email protected]>
497    
498            Enable the experimental attribute editing again and introduce a
499            command line switch to actually activate it
500    
501            * Thuban/UI/main.py (options): New. Container for options set on
502            the commmand line
503            (main): Add the --enable-attribute-editing flag.
504    
505            * Thuban/UI/identifyview.py (IdentifyView.__init__): If attribute
506            editing is enabled use the grid ctrl which allows editing of the
507            values
508    
509            * Thuban/Model/transientdb.py (AutoTransientTable.write_record):
510            New. Just delegate this to the underlying table.
511    
512    2003-11-20  Bernhard Herzog  <[email protected]>
513    
514            * test/test_proj.py (ProjFileReadTests.test_read_unreadable_file):
515            Skip this test if run under non-posix systems since it only works
516            there
517    
518    2003-11-19  Bernhard Herzog  <[email protected]>
519    
520            * Thuban/Model/resource.py: Rework the way gdal support is
521            determined so that we can give a reason in the about why gdal is
522            not supported.
523            (gdal_support_status): New. Variable holding a string with the
524            reason for no gdal support
525    
526            * Thuban/UI/about.py (About.__init__): Add the reason why gdal is
527            not supported to the message
528    
529    2003-11-19  Bernhard Herzog  <[email protected]>
530    
531            Remove the old table interface and its test cases
532    
533            * Thuban/Model/table.py (OldTableInterfaceMixin): Removed.
534            (DBFTable, MemoryTable): Do not derive from OldTableInterfaceMixin
535            anymore
536    
537            * Thuban/Model/transientdb.py (TransientTableBase)
538            (AutoTransientTable): Do not derive from OldTableInterfaceMixin
539            anymore
540    
541            * test/test_table.py: Removed since the old interface it tests is
542            gone.
543    
544            * test/runtests.py (main): The old table interface is gone and
545            with it the deprecation warnings so remove the code that turns
546            these warnings into errors
547    
548    2003-11-19  Bernhard Herzog  <[email protected]>
549    
550            * test/test_table.py: Revert to revision 1.5 again. Changing the
551            tests to use the new table interface is completely wrong since the
552            whole purpose of the tests in this module is to test the old
553            interface.
554    
555    2003-11-18  Bernhard Herzog  <[email protected]>
556    
557            * Thuban/Model/postgisdb.py (PostGISConnection.MatchesParameters):
558            New. Test whether the connection matches a set of connection
559            parameters
560    
561            * Thuban/UI/dbdialog.py (DBFrame.conns_changed): Fix doc-string
562            (DBFrame.OnAdd): Use the new MatchesParameters method when looking
563            for existing connections with the same parameters and break out of
564            the loop correctly.
565    
566            * test/test_postgis_db.py (TestBriefDescription)
567            (TestPostGISSimple.test_brief_description): Rename
568            TestBriefDescription to TestPostGISSimple and the test method to
569            test_brief_description so that we can add more test methods.
570            (TestPostGISSimple.test_matches_parameters): New. Test the new
571            MatchesParameters method
572    
573    2003-11-18  Bernhard Herzog  <[email protected]>
574    
575            * Thuban/Lib/connector.py (Publisher): Introduce a new flag,
576            _was_destroyed, to indicate whether an publisher instance has
577            already been destroyed.
578            (Publisher.Unsubscribe): Only disconnect if the publisher has not
579            been destroyed yet.
580            (Publisher.Destroy): Set the _was_destroyed flag to true.
581    
582            * test/test_connector.py
583            (TestPublisher.test_unsubscribe_after_destroy): New. Test that
584            calling Unsubscribe after Destroy doesn't raise an exception
585    
586    2003-11-14  Bernhard Herzog  <[email protected]>
587    
588            * Thuban/UI/identifyview.py (IdentifyView.selected_shape): Fix
589            typo in doc-string
590    
591    2003-11-13  Bernhard Herzog  <[email protected]>
592    
593            Quote table and column names properly for postgis.
594    
595            * Thuban/Model/postgisdb.py (quote_identifier): New. Function to
596            quote an identifier for use in an sql statement
597            (PostGISColumn.__init__): Add the quoted_name attribute
598            (PostGISTable.__init__): New instance variable quoted_tablename
599            (PostGISTable._fetch_table_information): Use the quoted table
600            name. New isntance variable quoted_geo_col with a quoted version
601            of geometry_column
602            (PostGISTable.NumRows, PostGISTable.RowIdToOrdinal)
603            (PostGISTable.RowOrdinalToId): Use the quoted table name
604            (PostGISTable.ReadValue, PostGISTable.ValueRange)
605            (PostGISTable.UniqueValues, PostGISTable.SimpleQuery)
606            (PostGISShapeStore.BoundingBox, PostGISShapeStore.Shape)
607            (PostGISShapeStore.AllShapes, PostGISShapeStore.ShapesInRegion):
608            Use quoted table and column names
609    
610            * test/test_postgis_db.py (TestPostGISSpecialCases)
611            (TestPostGISIgnoredColumns): Rename the class to
612            TestPostGISSpecialCases because that better describes the new
613            cases
614            (TestPostGISSpecialCases.test_unsupported_types)
615            (TestPostGISSpecialCases.test): Rename the method to
616            test_unsupported_types because we need a more descriptive name now
617            that there are more methods
618            (TestPostGISSpecialCases.test_table_name_quoting)
619            (TestPostGISSpecialCases.test_column_name_quoting)
620            (TestPostGISSpecialCases.test_shapestore_name_quoting): New test
621            cases to test quoting of table and column names in PostGISTable
622            and PostGISShapeStore
623    
624            * test/postgissupport.py
625            (skip_if_addgeometrycolumn_does_not_use_quote_ident): New. Skip if
626            AddGeometryColumn desn't support table or column names with sapces
627            or double quotes
628    
629    2003-11-12  Jan-Oliver Wagner <[email protected]>
630    
631            * Extensions/wms/__init__.py: New: Init to make this
632            directory a package.
633    
634            * Extensions/wms/wms.py: New: Provide layers via OGC WMS.
635    
636    2003-11-11  Bernhard Herzog  <[email protected]>
637    
638            * Thuban/Model/resource.py (EPSG_DEPRECATED_PROJ_FILE): New.
639            Constant for the file woth deprecated epsg projections
640            (get_system_proj_file): Update doc-string
641    
642            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Add a space
643            above the EPS widgets, introduce a check box for the deprecated
644            eps projections and a label for the epsg widgets
645            (ProjFrame._OnShowEPSG): Handle the deprecated EPSG projections
646            too
647    
648    2003-11-11  Bernhard Herzog  <[email protected]>
649    
650            Avoid warnings when run under Python 2.3
651    
652            * Thuban/UI/baserenderer.py (BaseRenderer.draw_point_shape)
653            (BaseRenderer.draw_label_layer): Coordinates must be ints.
654    
655            * Thuban/UI/renderer.py (MapRenderer.make_point): Turn this into a
656            real method so that we can convert to int.
657            (MapRenderer.label_font): The font size mist be an int.
658    
659            * Thuban/UI/common.py (Color2wxColour): The color values must be
660            ints. Also, remove the unnecessary asserts.
661    
662            * test/test_load_0_8.py (TestUnicodeStrings.file_contents)
663            (TestUnicodeStrings.test): Python source code should not contain
664            non-ascii characters unless an encoding is specified in the file.
665            Therefore use \x escapes in the string literals for non-ascii
666            characters.
667    
668    2003-11-11  Bernhard Herzog  <[email protected]>
669    
670            * Thuban/Model/resource.py (get_system_proj_file): Add a filename
671            parameter so that this function can be used for all proj files in
672            Resource/Projections
673            (DEFAULT_PROJ_FILE, EPSG_PROJ_FILE): New. Predefined filenames for
674            get_system_proj_file
675    
676            * Thuban/UI/projdialog.py (ProjFrame.__init__): Instead of one
677            ProjFile self.__sysProjFile use a dictionary of system ProjFile
678            objects self._sys_proj_files
679            (ProjFrame.build_dialog): Adapt to the new changes in the
680            ProjectionList constructor. Add a check button to toggle whether
681            EPSG projections are shown
682            (ProjFrame._OnShowEPSG): New. Handler for the epsg check button
683            events.
684            (ProjFrame.load_user_proj, ProjFrame.load_system_proj): Only show
685            the busy cursor if the files have not yet been loaded by the
686            dialog.
687            (ProjFrame.load_system_proj): Add a parameter for the name of the
688            proj file. Maintain the dictionary of system projections
689            self._sys_proj_files
690    
691            * Thuban/UI/projlist.py (ProjectionList): Merge the system_projs,
692            user_projs parameters into one parameter proj_files which is a
693            list of proj files.
694            (ProjectionList._subscribe_proj_files)
695            (ProjectionList._unsubscribe_proj_files): New. Move
696            subscription/unsubscription of projfile messages to separate
697            methods
698            (ProjectionList.Destroy): The unsubscribe is now done in
699            _unsubscribe_proj_files
700            (ProjectionList.update_projections): We now have a list of proj
701            file objects
702            (ProjectionList.SetProjFiles): New method to set a new list of
703            proj file objects
704    
705            * test/test_proj.py (ProjFileReadTests.test_get_system_proj_file):
706            Specify explicitly which system proj file to load.
707    
708    2003-11-11  Bernhard Herzog  <[email protected]>
709    
710            * Thuban/Model/load.py (SessionLoader.Destroy): New. Clear all
711            instance variables to cut cyclic references. The GC would have
712            collected the loader eventually but it can happen that it doesn't
713            run at all until thuban is closed (2.3 but not 2.2 tries a bit
714            harder and forces a collection when the interpreter terminates)
715            (load_session): Call the handler's Destroy method to make sure
716            that it gets garbage collected early. Otherwise it will be
717            collected very late if at all and it holds some references to e.g.
718            shapestores and the session which can lead to leaks (of e.g. the
719            temporary files)
720    
721            * test/test_load.py (TestSingleLayer.test_leak): New. test for the
722            resource leak in load_session
723    
724    2003-11-10  Bernhard Herzog  <[email protected]>
725    
726            * Thuban/UI/baserenderer.py: Add a way to specify how layers in
727            extensions are to be rendered.
728            (_renderer_extensions): New. List with renderer for layers in
729            extensions
730            (add_renderer_extension): New. Add a renderer extension
731            (init_renderer_extensions): New. Init the renderer extensions
732            (BaseRenderer.render_map_incrementally): Search
733            _renderer_extensions for how to draw unknown layer types
734            (BaseRenderer.draw_raster_data): Add format parameter so that
735            formats other than BMP can be drawn
736            (BaseRenderer.draw_raster_layer): Pass an explicit format to
737            draw_raster_data
738    
739            * Thuban/UI/renderer.py (raster_format_map): New. Mapping form the
740            strings of the format parameter of draw_raster_data method to wx
741            constants
742            (MapRenderer.draw_raster_data): Add the format parameter and use
743            raster_format_map to map it to the right wxwindows constant for
744            wxImageFromStream
745    
746            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Add
747            the format parameter and record it
748            (TestBaseRenderer.test_raster_no_projection): check the format
749            paramter of the draw_raster_data method
750            (TestBaseRenderer.test_renderer_extension): New. Test the renderer
751            extension facility
752    
753    2003-11-07  Bernhard Herzog  <[email protected]>
754    
755            Tweak the usage of the sqlite database to make common use cases
756            more responsive. In most cases copying the data to the sqlite
757            database takes so long that using sqlite doesn't have enough
758            advantages.
759    
760            * Thuban/Model/transientdb.py (TransientTableBase.ValueRange): Add
761            comments about performance and query the min and max in separate
762            statements because only that way will indexes be used.
763            (TransientTableBase.UniqueValues): Add some comments about
764            performance.
765            (AutoTransientTable.ValueRange, AutoTransientTable.UniqueValues):
766            Do not copy the data to the transient DB but use the transient
767            copy if it exists. See the new comments for the performance trade
768            offs
769    
770            * test/test_transientdb.py
771            (TestTransientTable.test_auto_transient_table): Make sure that the
772            data is copied to the transient database at some point.
773    
774    2003-11-03  Bernhard Herzog  <[email protected]>
775    
776            * Thuban/Model/data.py (ShapefileStore.ShapesInRegion): Bind some
777            globals to locals so that it's a bit faster
778    
779    2003-11-03  Bernhard Herzog  <[email protected]>
780    
781            * Thuban/UI/baserenderer.py
782            (BaseRenderer.draw_shape_layer_incrementally): Use the ReadValue
783            method. ReadValue is faster than ReadRowAsDict since it only reads
784            one cell especially now that the dbf file objects actually
785            implement it.
786    
787            * Thuban/Model/table.py (DBFTable.ReadValue): Use the new
788            read_attribute method of the dbf objects
789    
790    2003-11-03  Bernhard Herzog  <[email protected]>
791    
792            * Extensions/profiling/profiling.py (popup_dialog_box): New config
793            variable to indicate whether the result should be shown in a
794            dialog box
795            (profile_screen_renderer, time_screen_renderer): Only show a
796            dialog box if popup_dialog_box is true.
797            (profile_screen_renderer): Flush stdout after the printing the
798            first part of the "profiling..." message
799    
800            * Thuban/UI/baserenderer.py
801            (BaseRenderer.draw_shape_layer_incrementally): Cache the pens and
802            brushes for the groups so that they're not created over and over
803            again
804    
805            * Thuban/Model/classification.py (Classification.__getattr__)
806            (Classification._compile_classification)
807            (Classification._clear_compiled_classification): New. Methods to
808            manage a 'compiled' representation of the classification groups
809            which is created on demand
810            (Classification.InsertGroup, Classification.RemoveGroup)
811            (Classification.ReplaceGroup): reset the compiled representation
812            (Classification.FindGroup): Use the compiled representation to
813            find the matching group
814            (ClassGroupRange.GetRangeTuple): New. Return the range as a tuple
815    
816    2003-10-31  Bernhard Herzog  <[email protected]>
817    
818            * Thuban/Model/classification.py (Classification.SetDefaultGroup):
819            Send a CLASS_CHANGED message
820            (Classification.RemoveGroup): Send a CLASS_CHANGED message and do
821            not return the removed group since it wasn't used.
822    
823            * test/test_classification.py
824            (TestClassification.test_set_default_group): New. Test the
825            SetDefaultGroup method
826            (TestClassification.test_insert_group): New. Test the InsertGroup
827            method
828            (TestClassification.test_remove_group): New. Test the RemoveGroup
829            method
830            (TestClassification.test_replace_group): New. Test the
831            ReplaceGroup method
832    
833    2003-10-31  Bernhard Herzog  <[email protected]>
834    
835            * test/test_classification.py (TestClassification.setUp):
836            Subscribe to the CLASS_CHANGED messages
837            (TestClassification.tearDown): New. Destroy the classification
838            properly
839            (TestClassification.test_defaults): Add tests for the default line
840            width and whether no messages were sent yet
841            (TestClassification.test_set_default_properties): Add tests for
842            messages and setting the default line width
843            (TestClassification.test_add_singleton)
844            (TestClassification.test_add_range)
845            (TestClassification.test_multiple_groups): Add tests for messages
846    
847  2003-10-31  Bernhard Herzog  <[email protected]>  2003-10-31  Bernhard Herzog  <[email protected]>
848    
849          Some more refactoring in preparation for new tests:          Some more refactoring in preparation for new tests:

Legend:
Removed from v.1906  
changed lines
  Added in v.2067

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26