/[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 2472 by bh, Thu Dec 16 15:18:57 2004 UTC revision 2631 by jan, Mon Jun 27 21:38:35 2005 UTC
# Line 1  Line 1 
1    2005-06-28  Jan-Oliver Wagner <[email protected]>
2    
3            * Extensions/importAPR/apr.py (APR_BShSym): Extend by 'Stripple'.
4            (APR_TClr.GetThubanColor): Fix bug in color interpretation.
5            Thanks to Frank Koormann who identified this problem.
6    
7            * Extensions/importAPR/importAPR.py (APR_VShSym): New. Just
8            another symbol identified.
9    
10    2005-06-27  Jan-Oliver Wagner <[email protected]>
11    
12            * Doc/manual/thuban-manual-de.xml: More translations.
13    
14    2005-05-12  Jonathan Coles <[email protected]>
15            
16            * Thuban/UI/projdialog.py: Add missing import, which led to an
17            exception when opening a layer's projection.
18    
19    2005-05-09  Bernhard Herzog  <[email protected]>
20    
21            * test/support.py (FileLoadTestCase.filename): Fix doc-string.
22    
23    2005-05-09  Bernhard Herzog  <[email protected]>
24    
25            * Thuban/Model/postgisdb.py (PostGISConnection.connect): Set the
26            connection to autoconnect.  Fixes RT#3148.
27    
28            * test/test_postgis_db.py
29            (TestPostGISSpecialCases.test_simple_error_handling): New test
30            that attempts to reproduce RT#3148.
31    
32    2005-05-06  Jonathan Coles <[email protected]>
33    
34            Add support for saving and loading the opacity and mask type
35            properties of RasterLayers. Also add support for proper use
36            of alpha information while drawing images not in 'RAW' format.
37            If transparency in an image format (e.g, PNG) is supported by
38            wxWidgets then the image would previously have been draw with
39            transparent regions, but the opaque regions would have been
40            unaffected by a change in the layer's opacity. This patch
41            corrects the problem.
42    
43            * Thuban/Model/layer.py (RasterLayer): Added opacity and
44            masktype parameters to the constructor, and set the
45            appropriate variables to those values.
46    
47            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Added
48            code to read the opacity and mask type of the layer and construct
49            a new layer with the additional parameters.
50    
51            * Thuban/Model/save.py (SessionSaver.write_layer): Added code
52            to save the opacity and mask type of a layer.
53    
54            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
55            the opacity of the layer to draw_raster_data rather than the layer.
56            (BaseRenderer.draw_raster_data): Remove the layer parameter because
57            the function doesn't need to know about the layer. Add the optional
58            opacity parameter whose default is 1.0. Add 'PNG' as a supported
59            graphics format.
60    
61            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Fixed
62            signature to match that in BaseRenderer. Use the new opacity argument
63            in place of calling layer.Opacity(). In the case where the
64            format is not 'RAW', alpha_data is None and the loaded image has
65            alpha information, use the file's alpha information. This is
66            still subject to the layer's opacity setting.
67    
68            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
69            Fixed signature to match that in BaseRenderer.
70    
71            * test/test_load.py (TestRasterLayer): Change file_contents to
72            include opacity and masktype variables.
73            (TestRasterLayer.test): Include tests for opacity and masktype
74            changes.
75    
76            * test/test_save.py (SaveSessionTest.testRasterLayer): Restructure
77            test to cover a variety of combinations of masktype and opacity
78            settings.
79    
80    2005-05-02  Jan-Oliver Wagner <[email protected]>
81    
82            * debian/rules: add --use-wx-python-swig-hack
83            to the build command.
84            Thanks to Moritz Lennert for pointing this out.
85    
86    2005-04-28  Jan-Oliver Wagner <[email protected]>
87    
88            Introduce OGRFileShapeStore in ogr extension.
89            This allows at least that loaded shapefile shape stores
90            can be saved correctly in the thuban session file
91            and reloaded again (reload is via core shapefile
92            routine, not OGR). For other types, .thuban files
93            can not be reloaded for the time being.
94    
95            * Extensions/ogr/ogrshapes.py (OGRFileShapeStore): New. This
96            class ist to be used for any file-based shape stores
97            accessed through OGR.
98    
99            * Extensions/ogr/ogrstart.py (open_with_ogr): Added
100            forgotten _ for i18n. Adapted call OpenFileShapestore
101            regarding new parameter.
102            (OpenFileShapestore): Use OGRFileShapeStore instead of
103            OGRShapeStore. Fix return value (None instead of null).
104            Add new parameter "mainwindow" to avoid accessing global
105            context.
106    
107    2005-04-27  Jan-Oliver Wagner <[email protected]>
108    
109            Introduce FileShapeStore as generalization for
110            file-based shape stores. In a first instance
111            this allows additional modules to handle shapefile
112            format as well, namely the OGR extension.
113    
114            * Thuban/Model/data.py: Various small fixes in doc-strings.
115            (FileShapeStore): New class.
116            (ShapefileStore): Derive from FileShapeStore.
117            (ShapefileStore.__init__): Call __init__ of FileShapeStore,
118            rename self.table to self._table, initialize self._bbox
119            (ShapefileStore._open_shapefile): Use self._bbox instead of self.bbox
120            and self.FileName() instead of self.filename.
121            (ShapefileStore.Table): Use self._table instead of self.table.
122            (ShapefileStore.FileName): Removed (moved to FileShapeStore).
123            (ShapefileStore.BoundingBox):  Use self._bbox instead of self.bbox.
124    
125            * Thuban/Model/save.py: Replace ShapefileStore by FileShapeStore.
126            (SessionSaver.write_data_containers): Only use methods of the
127            base class FileShapeStore.
128    
129    2005-04-26  Martin Schulze  <[email protected]>
130    
131            * Extensions/wms/wms.py (render_wms_layer): Adjusted the render
132            function to the modified render engine
133    
134    2005-04-25  Martin Schulze  <[email protected]>
135    
136            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
137            Added a description according to the CVS log message
138    
139    2005-04-23  Martin Schulze  <[email protected]>
140    
141            * Thuban/UI/renderer.py: Added a missing import
142    
143    2005-04-23  Russell Nelson  <[email protected]>
144    
145            * Thuban/UI/view.py (MapCanvas.OnMiddle{Up,Down}): Changed the
146            way the previous tool is remembered, so that middle-button
147            panning works even if you haven't selected a tool.
148    
149    2005-04-11  Bernhard Herzog  <[email protected]>
150    
151            * libraries/thuban/wxproj.cpp: Move the compatibility code that
152            deals with the wxPython 2.4 version of wxPython.h into the #ifdef
153            branch that includes wxPython.h because it's only needed when
154            wxPython.h is used.  Also, it won't compile when
155            USE_WX_PYTHON_SWIG_HACK is set otherwise.
156    
157    2005-04-07  Bernhard Herzog  <[email protected]>
158    
159            * Thuban/UI/classifier.py (ClassGrid.__init__): Use -1 as the ID.
160            (ID_CLASS_TABLE): Removed. It wasn't used anywhere except in
161            ClassGrid.__init__ and it's value is outside of the valid
162            range (must be < 32768).  wxPython 2.5 complains about it with an
163            exception.
164    
165    2005-04-05  Jan-Oliver Wagner <[email protected]>
166    
167            * Doc/manual/thuban-manual-de.xml: More translations.
168    
169    2005-04-05  Bernhard Herzog  <[email protected]>
170    
171            * libraries/thuban/wxproj.cpp: Make it work with a wxPython.h from
172            wxPython 2.4 as well.  Also, remove a now obsolete comment.
173    
174    2005-04-05  Bernhard Herzog  <[email protected]>
175    
176            Use wxPython.h by default but provide a workaround when it isn't
177            available.
178    
179            * setup.py (wxproj_extension): New variable.  Assign the Extension
180            instance for Lib.wxproj to this variable instead of putting it
181            directly into the listso that it can be accessed by other code
182            later.
183            (thuban_build_ext.user_options): Added boolean option
184            --use-wx-python-swig-hack.
185            (thuban_build_ext.initialize_options): Initialize the new option
186            to False.
187            (thuban_build_ext.finalize_options): If the new option was given,
188            define the preprocesser macro USE_WX_PYTHON_SWIG_HACK.
189            (thuban_build_ext): Update the doc-string
190    
191            * libraries/thuban/wxproj.cpp: Normally we use
192            wx/wxPython/wxPython.h now.  Only if USE_WX_PYTHON_SWIG_HACK is
193            defined, use swigPtrConvertHack.h instead.
194    
195            * libraries/thuban/swigPtrConvertHack.h: Remove the code that was
196            copied over from wxPython.h.
197            (decode_pointer_new): New.  Equivalent of decode_pointer for
198            wxPython 2.5.
199            (wxPyConvertSwigPtr): Modified to cope with wxPython 2.5 as well.
200    
201            * README: Add section on potential build problems which explains
202            how the work-around for a missing wxPython.h is activated.
203    
204    2005-03-29  Bernhard Herzog  <[email protected]>
205    
206            * test/postgissupport.py (find_postgis_sql): Added yet another
207            potential location for (lw)postgis.sql because the file has moved
208            again in postgis 1.0.0 rc4.
209    
210    2005-03-29  Bernhard Herzog  <[email protected]>
211    
212            * Thuban/UI/legend.py (BMP_SIZE_W, BMP_SIZE_H): Set both to 16 to
213            match the site of the legend_icon_layer icon.  Otherwise wxpython
214            2.5 complains when the legend is created with the error:
215    
216            PyAssertionError: C++ assertion "(bitmap.GetWidth() == m_width &&
217            bitmap.GetHeight() == m_height) || (m_width == 0 && m_height ==
218            0)" failed in ./src/generic/imaglist.cpp(81): invalid bitmap size
219            in wxImageList: this might work on this platform but definitely
220            won't under Windows.
221    
222    2005-03-23  Jonathan Coles <[email protected]>
223    
224            These changes add support for adjusting the opacity of a raster layer.
225    
226            * Thuban/Model/layer.py (RasterLayer.Opacity): Replaces AlphaOpacity.
227            (RasterLayer.SetOpacity): Replaces SetAlphaOpacity. Also triggers
228            a LAYER_CHANGED event if the opacity actually changes.
229    
230            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_data): Added
231            layer parameter needed in the implementation of this method in
232            renderer.py.
233    
234            * Thuban/UI/layerproperties.py (LayerProperties.dialog_layout): Fixed
235            typo 00 -> 0.
236    
237            * Thuban/UI/rasterlayerproperties.py (RasterLayerProperties): Added
238            control to adjust opacity.
239    
240            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Scale the
241            alpha data based on the opacity level of the layer.
242    
243            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Now
244            accepts a layer parameter.
245    
246            * test/test_layer.py (TestLayerModification.test_raster_layer):
247            Rename opacity method calls and add test for LAYER_CHANGED.
248    
249    2005-03-16  Bernhard Herzog  <[email protected]>
250    
251            * test/test_connector.py (DeletionTestMixin.check_deletions)
252            (DeletionTestMixin.check_deletetions): renamed to check_deletions.
253            update the callers.
254    
255    2005-03-14  Jan-Oliver Wagner <[email protected]>
256    
257            * Doc/manual/thuban-manual-de.xml: More translations.
258    
259    2005-03-10  Jan-Oliver Wagner <[email protected]>
260    
261            Introducing initialization callbacks for extensions.
262    
263            * Thuban/UI/extensionregistry.py (ExtensionDesc.__init__): Added
264            optional parameter init_callback.
265            (ExtensionDesc.init_ext): New. Executes the callback and sets
266            a status.
267    
268            * Thuban/UI/application.py (ThubanApplication.OnInit): Add the
269            initialization of the extensions.
270            (ThubanApplication.init_extensions): Init all extensions.
271    
272            * Thuban/UI/about.py (About.__init__): Added status of the extensions
273            to the about text.
274    
275            * Extensions/gns2shp/__init__.py: Added init method for Extension
276            description.
277            (init): New. Contains the initialization of the module.
278    
279    2005-03-04  Nina H�ffmeyer <[email protected]>
280    
281            * Extensions/ogr/ogrdialog.py: Added a dialog, which asks for
282            OGRConnection to open a datasource. Removed dialog to display all
283            available drivers. Added some doc strings.
284    
285            * Extensions/ogr/ogrstart.py: Added menu entry for opening an
286            OGRDatasource with a string. Added two opening methods which return an
287            OGRDatasource (either data from file or from DB).
288    
289            * Extensions/ogr/ogrshapes.py: Added class OGRGeometry, which
290            represents a geometry reference of an OGRFeature. OGRShape now has a
291            list of referenced geometry objects (important for geometry
292            collections).
293            For OGRShapeStores loaded from a DB an ID column can be specified now.
294    
295    2005-02-22  Jan-Oliver Wagner <[email protected]>
296    
297            * test/test_map.py (TestMapWithContents.test_tree_info):
298            Added label layer for comparison.
299    
300    2005-02-18  Jonathan Coles <[email protected]>
301    
302            * libraries/thuban/gdalwarp.cpp (GetImageData): Optimize the loop
303            which builds a mask. Handle the majority of an image in a loop,
304            creating 8 bits at a time. Later, handle the edge case where less
305            than 8 bits are packed.
306    
307    2005-02-18  Bernhard Herzog  <[email protected]>
308    
309            * test/test_baserenderer.py (TestBaseRenderer.setUp): Fix
310            doc-string
311    
312    2005-02-18  Jonathan Coles <[email protected]>
313    
314            * setup.py: Remove wx_cs_params from gdal compile options.
315    
316    2005-02-18  Jonathan Coles <[email protected]>
317    
318            Refactored baserenderer.py and renderer.py to remove baserenderer.py's
319            dependencies on wxPython. Added a new method projected_raster_layer()
320            that returns a raster layer image in projected space. This must be
321            implemented in classes derived from BaseRenderer. This also eliminates
322            the dependency on gdal in baserenderer.py.
323    
324            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Call
325            new projected_raster_layer() to get projected raster image instead
326            of directly calling ProjectRasterFile().
327            (BaseRenderer.projected_raster_layer): New. This must be implemented
328            by derived classes. It takes almost the same arguments as ProjectRasterFile
329            did and returns a projected image with mask and alpha data (if requested).
330            (BaseRenderer.render_map_incrementally): Remove the check for gdal since
331            that check will be done in MapRenderer.projected_raster_layer(). This
332            also allows other implementations to use different projection code.
333    
334            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
335            Implementation of BaseRenderer.projected_raster_layer. Checks for
336            gdal support and wxPython version. Also handles exceptions from
337            ProjectRasterFile.
338    
339            * libraries/thuban/gdalwarp.cpp: Removed checks for wxPython versions
340            and added a variable which can be set through the options argument
341            of ProjectRasterFile.
342    
343            * test/test_baserenderer.py (SimpleRenderer.projected_raster_layer): New.
344            Calls ProjectRasterFile and returns the result.
345            (TestBaseRenderer.test_projected_raster_layer): New. Tests the results
346            of calling projected_raster_layer() with different options.
347            (TestBaseRenderer.test_raster_no_projection): Removed tests based on
348            wxPython version and all tests of masks and alpha channels. These are
349            now in test_projected_raster_layer().
350    
351    2005-02-17  Jan-Oliver Wagner <[email protected]>
352    
353            * Thuban/Model/map.py, Thuban/Model/label.py: Fixed
354            doc-strings to comply with coding_guidelines.
355    
356    2005-02-17  Jan-Oliver Wagner <[email protected]>
357    
358            Docstring improvements and minor fixes for labellayer.
359    
360            * Thuban/Model/map.py:
361            (Map, Map.Destroy, Map.RemoveLayer, Map.ClearLayers,
362            Map.Layers, Map.HasLayers, Map.MoveLayerToTop,
363            Map.RaiseLayer, Map.LowerLayer, Map.MoveLayerToBottom,
364            Map.ProjectedBoundingBox, Map.GetProjection): Improved/added
365            doc string.
366            (Map.BoundingBox): Removed superfluous test for label_layer
367            and improved doc string.
368            (Map.TreeInfo): Added label_layer and improved sdo string.
369    
370            * Thuban/Model/label.py: Added import of _.
371            (Label, Label.__init__): Improved/added doc string.
372            (LabelLayer, LabelLayer.__init__, LabelLayer.Labels,
373            LabelLayer.RemoveLabel, LabelLayer.ClearLabels):
374            Improved/added doc string.
375            (LabelLayer.AddLabel): Use already defined names for
376            align strings and improved doc string.
377            (LabelLayer.TreeInfo): New. Return the object data for
378            the tree view.
379    
380    2005-02-16  Jonathan Coles <[email protected]>
381    
382            Further wxPython 2.5 changes using patches from Daniel Calvelo Aros
383            so that that wxproj doesn't crash. Added GUI support for selecting
384            alpha channel (opacity can't be selected yet).
385    
386            NOTE: If wxPython.h is including in future distribution packages
387            then it will not be necessary to have the files swigPtrConvertHack.h
388            and wxPython_int.h included with Thuban. This is hopefully
389            a temporary workaround.
390    
391            * setup.py (thuban_build_ext.finalize_options): gdalwarp needs
392            access to the macro wxCHECK_VERSION so that it will properly
393            generate a bit mask. There was a problem between wx2.4 and wx2.5
394            that this works around.
395    
396            * Thuban/Model/layer.py (RasterLayer.UseMask): Removed in favor
397            of RasterLayer.MaskType.
398            (RasterLayer.SetUseMask): Removed in favor of RasterLayer.SetMaskType
399            (RasterLayer.MaskType): New. Returns the type of mask to use. Can
400            specify none, a bitmap, or an alpha channel.
401            (RasterLayer.SetMaskType): New. Set what kind of mask to use.
402    
403            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
404            Set the raster warping options for the mask based on the value
405            of RasterLayer.MaskType.
406    
407            * Thuban/UI/legend.py (LegendTree.__FillTreeLayer): Remove
408            deprecated calls to SetItemSelectedImage in favor of SetItemImage
409            with wxTreeItemIcon_Selected.
410    
411            * Thuban/UI/rasterlayerproperties.py: Support selecting to use
412            an alpha channel for the mask.
413    
414            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Use alpha
415            data if it is available and an alpha channel is supported under
416            the current version of wxPython.
417    
418            * libraries/thuban/gdalwarp.cpp (GetImageData): Added compiler define
419            to select whether 1's or 0's select the desired portion of an image
420            in the bit mask. wx2.4 has a bug where the documentation is the opposite
421            from behavior.
422            (ProjectRasterFile): Only generate an alpha channel if the version
423            of wxPython is >= 2.5.3.
424    
425            * libraries/thuban/wxproj.cpp: Applied patches from Daniel Calvelo Aros.
426            When wxPython >= 2.5.3 use the special swig functions to decode an
427            object's address.
428    
429            * libraries/thuban/swigPtrConvertHack.h: Includes conditional code
430            based on the version of wxPython. If >= 2.5.3 use the special swig
431            functions from wxPython to decode wxPython objects, otherwise use
432            the old method of retrieving the address from the object __repr__ string.
433    
434            * libraries/thuban/wxPython_int.h: Copied from wxPython source.
435            Unnecessary code was removed to make it smaller.
436    
437            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
438            Add tests for returning an alpha channel.
439    
440            * test/test_layer.py (TestLayerModification.test_raster_layer): Fix
441            tests that used removed functions UseMask and SetUseMask
442    
443    
444    2005-02-08  Bernhard Herzog  <[email protected]>
445    
446            More wxPython 2.5 changes.  This time taken from a patch from
447            Daniel Calvelo Aros.
448    
449            * Thuban/UI/tableview.py (QueryTableFrame.__init__)
450            (QueryTableFrame.__init__): Pass the size of a spacer as a single
451            item.
452    
453            * Thuban/UI/projdialog.py (ProjFrame.build_dialog)
454            (ProjFrame.build_dialog): Pass the size of a spacer as a single
455            item.
456    
457            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Pass the
458            size of a spacer as a single item.
459    
460            * Thuban/UI/classifier.py (Classifier.dialog_layout): Pass the
461            size of a spacer as a single item.
462    
463    2005-02-08  Bernhard Herzog  <[email protected]>
464    
465            Compatibility with wxPython 2.5.  The changes should make it work
466            better with 2.5 while still keeping compatibility with 2.4.  There
467            are still problems with 2.5, though.
468    
469            * Thuban/UI/dock.py (DockableWindow.__CreateBorder): Pass the size
470            of a spacer as a single item.
471    
472            * Thuban/UI/classifier.py (ClassGroupPropertiesCtrl): Derive only
473            from wxControl
474    
475            * Thuban/UI/legend.py (LegendTree): When running with wxPython <
476            2.5, add an implementation of the GetFirstChild method that does
477            not require the second parameter.
478            (LegendTree.find_layer, LegendTree._OnMsgMapLayersAdded)
479            (LegendTree._OnMsgMapLayersRemoved, LegendTree.DeleteAllItems)
480            (LegendTree.DeleteChildren, LegendTree.__ShowHideLayer): Do not
481            pass the second parameter to GetFirstChild
482    
483    2005-02-08  Nina H�ffmeyer <[email protected]>
484    
485            * Extensions/ogr/ogrshapes.py: Removed some print commands.
486    
487            * Extensions/ogr/ogrstart.py: Changed the GUI. OGR is no longer an
488            additional menu but appears as a possibility in the menu Map.
489    
490    2005-02-07  Jonathan Coles <[email protected]>
491            * libraries/thuban/gdalwarp.cpp: Removed the macros PYTHON_ERR
492            and PYTHON_ERRF since they were no longer necessary.
493    
494    2005-02-07  Bernhard Reiter <[email protected]>
495            * Thuban/UI/classifier.py (ClassGrid.DeleteSelectedRows):
496            Enable translation for message string.
497    
498    2005-02-06  Martin Schulze  <[email protected]>
499    
500            * Extensions/wms/infodialog.py (wmsInfoDialog.__init__): Adjusted
501            the arguments of the contstructor to fit the global scheme
502    
503    2005-01-31  Nina H�ffmeyer <[email protected]>
504    
505            * Extensions/ogr/ogrdialog.py: Added class ogrdialog.py, which provides
506            some dialogs needed to start ogr.
507            
508            * Extensions/ogr/__init__.py: Changed comments to avoid encoding
509            warnings.
510    
511            * Extensions/ogr/test/test_OGRShapestore.py: Changed comments to avoid
512            encoding warnings.
513    
514    2005-01-28  Jonathan Coles <[email protected]>
515    
516            * libraries/thuban/gdalwarp.cpp (GetImageData): Recode how the
517            mask is packed into a bit array. It's now slightly faster.
518    
519    2005-01-28  Jonathan Coles <[email protected]>
520    
521            * Thuban/Model/layer.py (RasterLayer.__init__): Make use_mask
522            default to true.
523    
524            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Remove
525            code that loads the state of the layer's use_mask flag. Its
526            usefulness is still being debated.
527    
528            * Thuban/Model/save.py (SessionSaver.write_layer): Remove
529            code that saves the state of the layer's use_mask flag. Its
530            usefulness is still being debated.
531    
532            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
533            options to ProjectRasterFile based on the state of layer.UseMask().
534            Catch more exceptions from ProjectRasterFile so that Thuban doesn't
535            quit is there is a problem projecting.
536            (BaseRenderer.draw_raster_data): Change the documentation to
537            describe the new format (XBM) that the mask data will be in.
538    
539            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): The mask
540            data is in XBM format when format='RAW' which means it doesn't
541            need to be converted to a wxImage before being used as a mask
542            for a wxBitmap. Assume that if format != 'RAW' that the image
543            data and mask data are in the same format.
544    
545            * libraries/thuban/gdalwarp.cpp (GetImageData): If alpha is enabled
546            and a mask is requested, convert the alpha band to a bit array in
547            XBM format. if an alpha channel is requested, simply return the
548            data in the alpha band. Provide better error handling by returning
549            python error messages (also fixes RT #2947).
550            (ProjectRasterFile): Support multiple mask options, rather than simply
551            a flag indicating that a mask should or should not be used. Provide
552            better error handling by returning python error messages.
553    
554            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
555            Add mask data to test.
556    
557            * test/test_layer.py (TestLayer.test_raster_layer): Test that a layer
558            should use the mask by default.
559            (TestLayerModificaton.test_raster_layer): Test that a layer should use
560            the mask by default.
561    
562            * test/test_load.py (TestRasterLayer.test): Remove testing for
563            use_mask flag in file.
564    
565            * test/test_save.py (SaveSessionTest.testRasterLayer): Remove testing
566            for use_mask in file.
567    
568            * test/test_load_1_0_1.py: Removed. Shouldn't have been checked in.
569            
570    2005-01-26  Jonathan Coles <[email protected]>
571    
572            Add a new dialog box for raster layers. The dialog box allows
573            the user to toggle a mask that is generated by ProjectRasterFile
574            and is used to only draw the real parts of the projected image.
575    
576            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
577            Instruct the warping code to generate a mask if the raster layer
578            requests one.
579            (BaseRenderer.draw_raster_data): Removed obsolete optional mask argument.
580    
581            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Removed
582            obsolete optional mask argument.
583    
584            * Thuban/UI/classifier.py (Classifier): Change the parent class
585            to LayerProperties and rework the code to support layout calls
586            from the parent.
587            (Classifier.dialog_layout): New. Layout the dialog box.
588            (Classifier.map_layers_removed): Removed. Moved to parent class.
589            (Classifier.map_replaced): Removed. Moved to parent class.
590            (Classifier._OnTry): Renamed to OnTry to support parent class.
591            (Classifier.OnClose): Removed. Supplied in parent class.
592            (Classifier._OnCloseBtn): Removed. Supplied in parent class as OnCloseBtn.
593            (Classifier._OnOK): Renamed to OnOK to support parent class.
594            (Classifier._OnRevert): Renamed to OnRevert to support parent class.
595    
596            * Thuban/UI/layerproperties.py: New. Base class for layer properties
597            dialog boxes.
598    
599            * Thuban/UI/rasterlayerproperties.py: New. Class for displaying
600            raster layer properties.
601    
602            * libraries/thuban/gdalwarp.cpp: Replace the old gdalwarp.cpp code
603            with the non-simple version supplied with gdal. This allows added
604            features such as creating an alpha band.
605            (GetImageData): Generate a mask array from the alpha band that is
606            generated by gdal if the user has selected it. Try to support images
607            that have more than three bands, such as images with RGB plus an
608            alpha band.
609            (ProjectRasterFile): Convert python argument for mask and tell
610            gdal to enable or disable an alpha band.
611    
612            * Thuban/Model/layer.py (BaseLayer.Type): New. Returns a string
613            describing what kind of layer the class is. Defaults to "Unknown",
614            but should be overridden by subclasses.
615            (Layer.Type): New. Override base class method.
616            (RasterLayer.__init__): Create a flag for using a mask. Record extra
617            data from gdal for display in the properties dialog.
618            (RasterLayer.Type): New. Override base class method.
619            (RasterLayer.UseMask): New. Returns True if the mask should be used.
620            (RasterLayer.SetUseMask): New. Set if the mask should be used.
621            (RasterLayer.ImageInfo): New. Return extra information about the image.
622    
623            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Load
624            the mask information.
625    
626            * Thuban/Model/save.py (SessionSaver.write_layer): Save mask information.
627    
628            * Thuban/UI/mainwindow.py: Register the RasterLayerProperties and
629            Classifier classes as dialogs to use with the proper layer types.
630    
631            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
632            Fix test.
633    
634            * test/test_layer.py (TestLayer.test_raster_layer): Test new methods.
635            (TestLayerModification.build_path): New. Support function.
636            (TestLayerModification.test_raster_layer): New. Test new methods.
637    
638            * test/test_save.py (SaveSessionTest.testRasterLayer): Add tests for mask.
639    
640            * test/test_load.py (TestRasterLayer): Add tests for mask.
641    
642            * test/test_load_1_0_1.py: New. Copied from test_load.py.
643    
644            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Removed
645            obsolete optional mask argument.
646    
647    2005-01-26  Nina H�ffmeyer <[email protected]>
648    
649            * Extensions/ogr/ogrshapes.py: Added two dictionaries to ShapeStore
650            which maps the ids and the ordinals. Fixed RowIdToOrdinal(),
651            RowOrdinalToId() and ReadRowAsDict().
652    
653            * Extensions/ogr/ogrstart.py: Added menu item which opens database
654            layers for existing database connections.
655    
656            * Extensions/ogr/test/test_OGRShapestore.py: Fixed a message string.
657    
658    
659    2005-01-26  Jan-Oliver Wagner <[email protected]>
660    
661            * Doc/manual/thuban-manual-de.xml: More translations.
662    
663    2005-01-24  Bernhard Herzog  <[email protected]>
664    
665            Rework the status bar updates a bit to make sure the message about
666            the projections is produced at the right times.
667    
668            * Thuban/UI/mainwindow.py (MainWindow.update_status_bar_messages):
669            New class variable with messages that may require a status bar
670            update.
671            (MainWindow.view_position_changed)
672            (MainWindow.update_status_bar): Rename from view_position_changed
673            to update_status_bar.  It's meaning has changed now that it may
674            also generate messages about problems with projection settings.
675            (MainWindow.__init__): Use the new update_status_bar_messages
676            class variable to subscribe update_status_bar
677            (MainWindow.set_position_text): Update doc-string.  This method
678            has to be renamed at some point.  See doc-string and comments.
679            (MainWindow.OnClose): Unsubscribe update_status_bar from all
680            messages in update_status_bar_messages
681    
682            * Thuban/UI/viewport.py (ViewPort.forwarded_map_messages): New
683            class attribute.  map messages to be forwarded by the viewport.
684            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): (un)subscribe
685            the messages in forwarded_map_messages
686    
687    2005-01-21  Bernhard Herzog  <[email protected]>
688    
689            * test/postgissupport.py (PostGISDatabase.__init__): Tweak
690            doc-string
691            (find_postgis_sql): Update for postgis-1.0.0-rc1, which uses a
692            different name for the initialization SQL file.
693    
694    2005-01-21  Jonathan Coles <[email protected]>
695    
696            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
697            a projection and returns a formatted string representing the
698            parameters to feed to gdalwarp. This function eliminates
699            redundancy in draw_raster_layer().
700            (BaseRenderer.render_map_incrementally): Removed the optimization which
701            drew the top most raster layer first and then only those vector-
702            based layers that are above it. With the support for transparency
703            this optimization breaks correct behaviour.
704            (BaseRenderer.draw_raster_layer): Reorganize code to support possible
705            future enhancements to raster layer bounding box. The old behaviour has
706            not changed. Also, change calling parameters to draw_raster_data()
707            to specify new RAW data format and mask.
708            (BaseRenderer.draw_raster_data): Change signature to include an optional
709            parameter for mask information. Change documentation to mention
710            support for new parameter and added option for RAW data format.
711            The data argument is now a list of [width, height, data].
712    
713            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Add new optional
714            mask parameter. Add new condition for RAW format, which
715            significantly reduces rendering time. Add condition for
716            mask parameter.
717    
718            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
719            data array of RGB values from the projected image returned from
720            the gdal warping functions. In the case of palette based images, it
721            converts the NO_DATA index to the mask color.
722            (ProjectRasterFile): Removed all custom memory driver references
723            and replaced it with the standard in-memory dataset provided
724            by gdal. The return data is no longer a BMP file, but an array
725            of RGB values, one set triple per pixel.
726    
727            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
728            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
729            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
730    
731            * setup.py (thuban_build_ext.finalize_options): Removed mention
732            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
733            files. These are obsolete with the new version of gdalwarp.cpp
734    
735            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
736            Updated signature.
737            (TestBaseRenderer.test_raster_no_projection): Changed the test
738            data to be data in the uncompressed RAW format returned from
739            ProjectRasterFile.
740    
741    2005-01-21  Jan-Oliver Wagner <[email protected]>
742    
743            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Made
744            string available for i18n.
745    
746    2005-01-20  Russell Nelson  <[email protected]>
747    
748            * Resources/Projections/defaults.proj: Ruin the speling of the
749            Lambert-93 projection so it doesn't run into the wx UTF-8 bug.
750            It's the wrong thing to do in the long run, but it's necessary for
751            those users until that bug is fixed.  Otherwise the projection
752            dialog segfaults.  Better to annoy some Lambert-93 users with a
753            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
754    
755    2005-01-20  Bernhard Reiter <[email protected]>
756    
757            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Added
758            docstring and comment that the warning code here is a hack.
759    
760    2005-01-20  Russell Nelson  <[email protected]>
761    
762            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Warn
763            user about misprojected layers when their lat/lon bounding
764            box exceeds rational lat/lon values.
765    
766    2005-01-20  Bernhard Reiter <[email protected]>
767    
768            * Thuban/UI/about.py (unicodeToLocale): Improved:
769            Use 'ascii' and then 'replace' for other characters
770            when getdefaultlocale returns None. Thanks to Bernhard H. .
771    
772    2005-01-20  Bernhard Reiter <[email protected]>
773    
774            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Added a comment
775            that OnRangeText might be called twice and using None as argument.
776    
777    2005-01-20  Bernhard Reiter <[email protected]>
778    
779            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Add a
780            OnRangeText(0) to work around a different in wx Behaviour noticed
781            on MacOSX, thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
782    
783    2005-01-20  Bernhard Reiter <[email protected]>
784    
785            * Thuban/UI/about.py: take iso-8859-15 when getdefaultlocale returns
786            None. (Fixes rt#2910.)
787            
788    2005-01-18  Frank Koormann <[email protected]>
789    
790            New Extension: mouseposition
791            Tool to collect mouse click positions (map coordinates) in a dialog.
792    
793            * Extensions/mouseposition/__init__.py: New, extension registration
794    
795            * Extensions/mouseposition/mouseposition.py: New, implements the
796            dialog and adds a tool to Thuban mainwindow.
797    
798            * Extensions/mouseposition/position.xpm: New, icon for tool.
799    
800    2005-01-14  Jan-Oliver Wagner <[email protected]>
801    
802            * Doc/manual/thuban-manual-de.xml: More translations.
803    
804    2005-01-11  Frank Koormann <[email protected]>
805    
806            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
807            Fix indention bug.
808    
809    2005-01-09  Frank Koormann <[email protected]>
810    
811            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
812            BugFix 2901: Explicitly copy layers ClassificationColumn since it
813            is not part of the layers Classification.
814    
815    2005-01-03  Frank Koormann <[email protected]>
816    
817            * Thuban/UI/renderer.py (ScreenRendererdraw_selection_incrementally):
818            BugFix 2883: Former implementation only worked on classified point
819            layers: KeyError was raised, now use the default size if field is None.
820    
821    2004-12-27  Bernhard Reiter <[email protected]>
822    
823            svgexport 1.0.0cvs: Fixed label export.
824    
825            * Extensions/svgexport/test/test_svgmapwriter.py:
826            class TestSVGRenderer(): New class; new test test_label_font().
827    
828            * Extensions/svgexport/svgmapwriter.py
829            (SVGRenderer.label_font()): initialised Font size with self.factor now,
830            makes test_label_font happy.
831    
832            * Extensions/svgexport/TODO: crossed out fixed label export item.
833            Added item for options.
834    
835            * Extensions/svgexport/__init__.py: Bumped version to 1.0.0cvs.
836    
837    2004-12-27  Russell Nelson  <[email protected]>
838    
839            Middle mouse button pans.
840    
841            * Thuban/UI/view.py (MapCanvas.__init__): Subscribe also
842            OnMiddleDown and OnMiddleUp events.
843            (MapCanvas.OnMiddleDown): New. Activate the pan tool and remember the
844            previously used tool.
845            (MapCanvas.OnMiddleUp): New. Reactivate the remebered tool used before
846            pressing the middle mouse button.
847    
848    2004-12-27  Jan-Oliver Wagner <[email protected]>
849    
850            * Doc/manual/thuban-manual-de.xml: More translations.
851    
852    2004-12-23  Jan-Oliver Wagner <[email protected]>
853    
854            * Thuban/UI/projdialog.py (ProjFrame.load_user_proj): Added a
855            \n to stderr after the warnings. Thanks to Russell Nelson.
856    
857    2004-12-20  Nina Hueffmeyer <[email protected]>
858    
859            * Extensions/ogr/ogrshapes.py: Fixed some issues from
860            Bernhard (coding guidelines etc.). Additionally it is now possible to
861            display shapefiles containing feature collections (e.g.polygons
862            with holes). Works with gdal 1.2.1 now.
863    
864            * Extensions/ogr/test/test_OGRShapestore.py: Fixed some issues
865            from Bernhard (coding guidelines etc.). If ogr can't be imported,
866            tests are skipped now.
867    
868            * Extensions/ogr/ogrstart.py: Fixed some typings.
869    
870    2004-12-20  Bernhard Reiter <[email protected]>
871    
872            * Extensions/svgexport/TODO: updated to add support for
873            raster layers and labels for 1.0.1.
874    
875            * Extensions/svgexport/svgmapwriter.py (draw_raster_layer):
876            Issue a warning now.
877    
878    2004-12-19  Bernhard Reiter <[email protected]>
879    
880            * Extensions/svgexport/TODO: Added idea to support triggering
881            the application down the pipe.
882    
883    2004-12-19  Bernhard Reiter <[email protected]>
884    
885            svgexport: Improved code quality, mainly by better naming.
886    
887            * Extensions/svgexport/svgmapwriter.py:
888            DrawPath() renamed to DrawPolygonPath(),
889            added documentation, improved comments and variable names.
890            
891            * Extensions/svgexport/svgmapwriter.py,
892              Extensions/svgexport/test/test_svgmapwriter.py:
893            All using DrawPolygonPath() now, the default parameter closed=True
894            omitted.
895    
896            * Extensions/svgexport/test/test_svgmapwriter.py:
897            renamed test_polygon_opened() to test_polyline()
898            renamed test_transparent_polygon() to test_transparent_polyline()
899    
900    2004-12-18  Jan-Oliver Wagner <[email protected]>
901    
902            Some fixes of gns2shp extension.
903    
904            * Extensions/gns2shp/test/__init__.py: New. Make this directory a
905            package.
906    
907            * Extensions/gns2shp/test/test_gns2shp.py: Add some import paths
908            dynamically.
909    
910            * Extensions/gns2shp/test/README: Simplified description how to test.
911    
912            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed doc-string,
913            fixed some dimensions of fields according to the GNS documentation
914            which seems to change undocumented.
915            Now killing trailing \n and/or \r from MODIFY_DATE.
916            This fixes RT#2453.
917    
918    2004-12-18  Bernhard Reiter <[email protected]>
919    
920            svgexport 1.0.0: Treats holes and islands nicely. Documentation added.
921    
922            * Extensions/svgexport/test/test_svgmapwriter.py:
923            Added new tests: test_export_polygon_with_hole()
924            and test_polygon_with_hole().
925    
926            * Extensions/svgexport/svgmapwriter.py
927            (draw_polygon_shape()): Uses DrawPath correctly now.
928    
929            * Doc/manual/thuban-manual.xml: Added documentation for stable
930            extention svgexport.    
931            * Doc/manual/thuban-manual-de.xml: Copied English section about
932            svexport over.
933    
934            * Extensions/svgexport/__init__.py: Bumped version number to 1.0.0.
935    
936            * Extensions/svgexport/svgsaver.py,maplegend.py:
937            Moved from experimental to stable extension menu.
938    
939            * Extensions/svgexport/TODO: updated.
940    
941    
942    2004-12-18  Bernhard Reiter <[email protected]>
943    
944            Added Extensions/svgexport/TODO
945    
946    2004-12-18  Bernhard Reiter <[email protected]>
947    
948            Refactored in svgexport:
949            DrawPath replaces DrawPolygon; added newline in front of "M" in paths.
950    
951            * Extensions/svgexport/svgmapwriter.py
952            Added verbosity level 3 to print out polygon points.
953            (class Point): added __repr__
954            (class Brush, __str__()): Added space after ,.
955            (DrawPolygon): Renamed to DrawPath()
956            (DrawPath): Takes list of polygons as input now, adds \n before "M"s.
957            (DrawLines): Using DrawPath now.
958    
959            * Extensions/svgexport/test/test_svgmapwriter.py:
960            Replaced DrawPolygon() calls with DrawPath() and put the first argument
961            inside another list. Adapted test data with a newline before "M".
962    
963    2004-12-18  Bernhard Reiter <[email protected]>
964            
965            Refactored svgexport tests: 9 double tests runs eliminated;
966            code size reduced by 8 lines.
967    
968            * Extensions/svgexport/test/test_svgmapwriter.py:
969            (class TestWithDC): Renamed to BaseTestWithDC, moved to top.
970            (class BaseWithDCtools): New, subclass from BaseTestWithDC.
971            (class TestDrawSplines): now subclass from BaseTestWithDCtools,
972            this fixed the double running of the nine tests of TestVirtualDC.
973            (class TestVirtualDC): Using self.dc and self.file from setUp().
974    
975    2004-12-17  Bernhard Herzog  <[email protected]>
976    
977            Two windows specific fixes ported from thuban-1�0-branch:
978    
979            * Thuban/UI/about.py (unicodeToLocale): Use getdefaultlocale
980            instead of getlocale because getlocale doesn't return a usable
981            encoding name on a german windows 2000
982    
983            * setup.py: windows build: Removed the absolute path names and
984            made all prfixes relative to the directory containing setup.py.
985            Makes it a little easier to adapt to a different system.
986    
987  2004-12-16  Bernhard Herzog  <[email protected]>  2004-12-16  Bernhard Herzog  <[email protected]>
988    
989          Add support for PostGIS tables with LINESTRING geomentries.          Add support for PostGIS tables with LINESTRING geometries.
990          Fixes RT#2299          Fixes RT#2299
991    
992          * Thuban/Model/postgisdb.py (shapetype_map): Add LINESTRING          * Thuban/Model/postgisdb.py (shapetype_map): Add LINESTRING

Legend:
Removed from v.2472  
changed lines
  Added in v.2631

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26