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

Legend:
Removed from v.1894  
changed lines
  Added in v.2089

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26