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

Legend:
Removed from v.2532  
changed lines
  Added in v.2638

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26