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

Legend:
Removed from v.1870  
changed lines
  Added in v.2048

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26