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

Legend:
Removed from v.1876  
changed lines
  Added in v.2075

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26