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

Legend:
Removed from v.1890  
changed lines
  Added in v.2039

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26