/[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 2565 by jan, Wed Feb 16 23:16:14 2005 UTC
# Line 1  Line 1 
1    2005-02-17  Jan-Oliver Wagner <[email protected]>
2    
3            Docstring improvements and minor fixes for labellayer.
4    
5            * Thuban/Model/map.py:
6            (Map, Map.Destroy, Map.RemoveLayer, Map.ClearLayers,
7            Map.Layers, Map.HasLayers, Map.MoveLayerToTop,
8            Map.RaiseLayer, Map.LowerLayer, Map.MoveLayerToBottom,
9            Map.ProjectedBoundingBox, Map.GetProjection): Improved/added
10            doc string.
11            (Map.BoundingBox): Removed superfluous test for label_layer
12            and improved doc string.
13            (Map.TreeInfo): Added label_layer and improved sdo string.
14    
15            * Thuban/Model/label.py: Added import of _.
16            (Label, Label.__init__): Improved/added doc string.
17            (LabelLayer, LabelLayer.__init__, LabelLayer.Labels,
18            LabelLayer.RemoveLabel, LabelLayer.ClearLabels):
19            Improved/added doc string.
20            (LabelLayer.AddLabel): Use already defined names for
21            align strings and improved doc string.
22            (LabelLayer.TreeInfo): New. Return the object data for
23            the tree view.
24    
25    2005-02-16  Jonathan Coles <[email protected]>
26    
27            Further wxPython 2.5 changes using patches from Daniel Calvelo Aros
28            so that that wxproj doesn't crash. Added GUI support for selecting
29            alpha channel (opacity can't be selected yet).
30    
31            NOTE: If wxPython.h is including in future distribution packages
32            then it will not be necessary to have the files swigPtrConvertHack.h
33            and wxPython_int.h included with Thuban. This is hopefully
34            a temporary workaround.
35    
36            * setup.py (thuban_build_ext.finalize_options): gdalwarp needs
37            access to the macro wxCHECK_VERSION so that it will properly
38            generate a bit mask. There was a problem between wx2.4 and wx2.5
39            that this works around.
40    
41            * Thuban/Model/layer.py (RasterLayer.UseMask): Removed in favor
42            of RasterLayer.MaskType.
43            (RasterLayer.SetUseMask): Removed in favor of RasterLayer.SetMaskType
44            (RasterLayer.MaskType): New. Returns the type of mask to use. Can
45            specify none, a bitmap, or an alpha channel.
46            (RasterLayer.SetMaskType): New. Set what kind of mask to use.
47    
48            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
49            Set the raster warping options for the mask based on the value
50            of RasterLayer.MaskType.
51    
52            * Thuban/UI/legend.py (LegendTree.__FillTreeLayer): Remove
53            deprecated calls to SetItemSelectedImage in favor of SetItemImage
54            with wxTreeItemIcon_Selected.
55    
56            * Thuban/UI/rasterlayerproperties.py: Support selecting to use
57            an alpha channel for the mask.
58    
59            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Use alpha
60            data if it is available and an alpha channel is supported under
61            the current version of wxPython.
62    
63            * libraries/thuban/gdalwarp.cpp (GetImageData): Added compiler define
64            to select whether 1's or 0's select the desired portion of an image
65            in the bit mask. wx2.4 has a bug where the documentation is the opposite
66            from behavior.
67            (ProjectRasterFile): Only generate an alpha channel if the version
68            of wxPython is >= 2.5.3.
69    
70            * libraries/thuban/wxproj.cpp: Applied patches from Daniel Calvelo Aros.
71            When wxPython >= 2.5.3 use the special swig functions to decode an
72            object's address.
73    
74            * libraries/thuban/swigPtrConvertHack.h: Includes conditional code
75            based on the version of wxPython. If >= 2.5.3 use the special swig
76            functions from wxPython to decode wxPython objects, otherwise use
77            the old method of retrieving the address from the object __repr__ string.
78    
79            * libraries/thuban/wxPython_int.h: Copied from wxPython source.
80            Unnecessary code was removed to make it smaller.
81    
82            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
83            Add tests for returning an alpha channel.
84    
85            * test/test_layer.py (TestLayerModification.test_raster_layer): Fix
86            tests that used removed functions UseMask and SetUseMask
87    
88    
89    2005-02-08  Bernhard Herzog  <[email protected]>
90    
91            More wxPython 2.5 changes.  This time taken from a patch from
92            Daniel Calvelo Aros.
93    
94            * Thuban/UI/tableview.py (QueryTableFrame.__init__)
95            (QueryTableFrame.__init__): Pass the size of a spacer as a single
96            item.
97    
98            * Thuban/UI/projdialog.py (ProjFrame.build_dialog)
99            (ProjFrame.build_dialog): Pass the size of a spacer as a single
100            item.
101    
102            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Pass the
103            size of a spacer as a single item.
104    
105            * Thuban/UI/classifier.py (Classifier.dialog_layout): Pass the
106            size of a spacer as a single item.
107    
108    2005-02-08  Bernhard Herzog  <[email protected]>
109    
110            Compatibility with wxPython 2.5.  The changes should make it work
111            better with 2.5 while still keeping compatibility with 2.4.  There
112            are still problems with 2.5, though.
113    
114            * Thuban/UI/dock.py (DockableWindow.__CreateBorder): Pass the size
115            of a spacer as a single item.
116    
117            * Thuban/UI/classifier.py (ClassGroupPropertiesCtrl): Derive only
118            from wxControl
119    
120            * Thuban/UI/legend.py (LegendTree): When running with wxPython <
121            2.5, add an implementation of the GetFirstChild method that does
122            not require the second parameter.
123            (LegendTree.find_layer, LegendTree._OnMsgMapLayersAdded)
124            (LegendTree._OnMsgMapLayersRemoved, LegendTree.DeleteAllItems)
125            (LegendTree.DeleteChildren, LegendTree.__ShowHideLayer): Do not
126            pass the second parameter to GetFirstChild
127    
128    2005-02-08  Nina H�ffmeyer <[email protected]>
129    
130            * Extensions/ogr/ogrshapes.py: Removed some print commands.
131    
132            * Extensions/ogr/ogrstart.py: Changed the GUI. OGR is no longer an
133            additional menu but appears as a possibility in the menu Map.
134    
135    2005-02-07  Jonathan Coles <[email protected]>
136            * libraries/thuban/gdalwarp.cpp: Removed the macros PYTHON_ERR
137            and PYTHON_ERRF since they were no longer necessary.
138    
139    2005-02-07  Bernhard Reiter <[email protected]>
140            * Thuban/UI/classifier.py (ClassGrid.DeleteSelectedRows):
141            Enable translation for message string.
142    
143    2005-02-06  Martin Schulze  <[email protected]>
144    
145            * Extensions/wms/infodialog.py (wmsInfoDialog.__init__): Adjusted
146            the arguments of the contstructor to fit the global scheme
147    
148    2005-01-31  Nina H�ffmeyer <[email protected]>
149    
150            * Extensions/ogr/ogrdialog.py: Added class ogrdialog.py, which provides
151            some dialogs needed to start ogr.
152            
153            * Extensions/ogr/__init__.py: Changed comments to avoid encoding
154            warnings.
155    
156            * Extensions/ogr/test/test_OGRShapestore.py: Changed comments to avoid
157            encoding warnings.
158    
159    2005-01-28  Jonathan Coles <[email protected]>
160    
161            * libraries/thuban/gdalwarp.cpp (GetImageData): Recode how the
162            mask is packed into a bit array. It's now slightly faster.
163    
164    2005-01-28  Jonathan Coles <[email protected]>
165    
166            * Thuban/Model/layer.py (RasterLayer.__init__): Make use_mask
167            default to true.
168    
169            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Remove
170            code that loads the state of the layer's use_mask flag. Its
171            usefulness is still being debated.
172    
173            * Thuban/Model/save.py (SessionSaver.write_layer): Remove
174            code that saves the state of the layer's use_mask flag. Its
175            usefulness is still being debated.
176    
177            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
178            options to ProjectRasterFile based on the state of layer.UseMask().
179            Catch more exceptions from ProjectRasterFile so that Thuban doesn't
180            quit is there is a problem projecting.
181            (BaseRenderer.draw_raster_data): Change the documentation to
182            describe the new format (XBM) that the mask data will be in.
183    
184            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): The mask
185            data is in XBM format when format='RAW' which means it doesn't
186            need to be converted to a wxImage before being used as a mask
187            for a wxBitmap. Assume that if format != 'RAW' that the image
188            data and mask data are in the same format.
189    
190            * libraries/thuban/gdalwarp.cpp (GetImageData): If alpha is enabled
191            and a mask is requested, convert the alpha band to a bit array in
192            XBM format. if an alpha channel is requested, simply return the
193            data in the alpha band. Provide better error handling by returning
194            python error messages (also fixes RT #2947).
195            (ProjectRasterFile): Support multiple mask options, rather than simply
196            a flag indicating that a mask should or should not be used. Provide
197            better error handling by returning python error messages.
198    
199            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
200            Add mask data to test.
201    
202            * test/test_layer.py (TestLayer.test_raster_layer): Test that a layer
203            should use the mask by default.
204            (TestLayerModificaton.test_raster_layer): Test that a layer should use
205            the mask by default.
206    
207            * test/test_load.py (TestRasterLayer.test): Remove testing for
208            use_mask flag in file.
209    
210            * test/test_save.py (SaveSessionTest.testRasterLayer): Remove testing
211            for use_mask in file.
212    
213            * test/test_load_1_0_1.py: Removed. Shouldn't have been checked in.
214            
215    2005-01-26  Jonathan Coles <[email protected]>
216    
217            Add a new dialog box for raster layers. The dialog box allows
218            the user to toggle a mask that is generated by ProjectRasterFile
219            and is used to only draw the real parts of the projected image.
220    
221            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
222            Instruct the warping code to generate a mask if the raster layer
223            requests one.
224            (BaseRenderer.draw_raster_data): Removed obsolete optional mask argument.
225    
226            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Removed
227            obsolete optional mask argument.
228    
229            * Thuban/UI/classifier.py (Classifier): Change the parent class
230            to LayerProperties and rework the code to support layout calls
231            from the parent.
232            (Classifier.dialog_layout): New. Layout the dialog box.
233            (Classifier.map_layers_removed): Removed. Moved to parent class.
234            (Classifier.map_replaced): Removed. Moved to parent class.
235            (Classifier._OnTry): Renamed to OnTry to support parent class.
236            (Classifier.OnClose): Removed. Supplied in parent class.
237            (Classifier._OnCloseBtn): Removed. Supplied in parent class as OnCloseBtn.
238            (Classifier._OnOK): Renamed to OnOK to support parent class.
239            (Classifier._OnRevert): Renamed to OnRevert to support parent class.
240    
241            * Thuban/UI/layerproperties.py: New. Base class for layer properties
242            dialog boxes.
243    
244            * Thuban/UI/rasterlayerproperties.py: New. Class for displaying
245            raster layer properties.
246    
247            * libraries/thuban/gdalwarp.cpp: Replace the old gdalwarp.cpp code
248            with the non-simple version supplied with gdal. This allows added
249            features such as creating an alpha band.
250            (GetImageData): Generate a mask array from the alpha band that is
251            generated by gdal if the user has selected it. Try to support images
252            that have more than three bands, such as images with RGB plus an
253            alpha band.
254            (ProjectRasterFile): Convert python argument for mask and tell
255            gdal to enable or disable an alpha band.
256    
257            * Thuban/Model/layer.py (BaseLayer.Type): New. Returns a string
258            describing what kind of layer the class is. Defaults to "Unknown",
259            but should be overridden by subclasses.
260            (Layer.Type): New. Override base class method.
261            (RasterLayer.__init__): Create a flag for using a mask. Record extra
262            data from gdal for display in the properties dialog.
263            (RasterLayer.Type): New. Override base class method.
264            (RasterLayer.UseMask): New. Returns True if the mask should be used.
265            (RasterLayer.SetUseMask): New. Set if the mask should be used.
266            (RasterLayer.ImageInfo): New. Return extra information about the image.
267    
268            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Load
269            the mask information.
270    
271            * Thuban/Model/save.py (SessionSaver.write_layer): Save mask information.
272    
273            * Thuban/UI/mainwindow.py: Register the RasterLayerProperties and
274            Classifier classes as dialogs to use with the proper layer types.
275    
276            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
277            Fix test.
278    
279            * test/test_layer.py (TestLayer.test_raster_layer): Test new methods.
280            (TestLayerModification.build_path): New. Support function.
281            (TestLayerModification.test_raster_layer): New. Test new methods.
282    
283            * test/test_save.py (SaveSessionTest.testRasterLayer): Add tests for mask.
284    
285            * test/test_load.py (TestRasterLayer): Add tests for mask.
286    
287            * test/test_load_1_0_1.py: New. Copied from test_load.py.
288    
289            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Removed
290            obsolete optional mask argument.
291    
292    2005-01-26  Nina H�ffmeyer <[email protected]>
293    
294            * Extensions/ogr/ogrshapes.py: Added two dictionaries to ShapeStore
295            which maps the ids and the ordinals. Fixed RowIdToOrdinal(),
296            RowOrdinalToId() and ReadRowAsDict().
297    
298            * Extensions/ogr/ogrstart.py: Added menu item which opens database
299            layers for existing database connections.
300    
301            * Extensions/ogr/test/test_OGRShapestore.py: Fixed a message string.
302    
303    
304    2005-01-26  Jan-Oliver Wagner <[email protected]>
305    
306            * Doc/manual/thuban-manual-de.xml: More translations.
307    
308    2005-01-24  Bernhard Herzog  <[email protected]>
309    
310            Rework the status bar updates a bit to make sure the message about
311            the projections is produced at the right times.
312    
313            * Thuban/UI/mainwindow.py (MainWindow.update_status_bar_messages):
314            New class variable with messages that may require a status bar
315            update.
316            (MainWindow.view_position_changed)
317            (MainWindow.update_status_bar): Rename from view_position_changed
318            to update_status_bar.  It's meaning has changed now that it may
319            also generate messages about problems with projection settings.
320            (MainWindow.__init__): Use the new update_status_bar_messages
321            class variable to subscribe update_status_bar
322            (MainWindow.set_position_text): Update doc-string.  This method
323            has to be renamed at some point.  See doc-string and comments.
324            (MainWindow.OnClose): Unsubscribe update_status_bar from all
325            messages in update_status_bar_messages
326    
327            * Thuban/UI/viewport.py (ViewPort.forwarded_map_messages): New
328            class attribute.  map messages to be forwarded by the viewport.
329            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): (un)subscribe
330            the messages in forwarded_map_messages
331    
332    2005-01-21  Bernhard Herzog  <[email protected]>
333    
334            * test/postgissupport.py (PostGISDatabase.__init__): Tweak
335            doc-string
336            (find_postgis_sql): Update for postgis-1.0.0-rc1, which uses a
337            different name for the initialization SQL file.
338    
339    2005-01-21  Jonathan Coles <[email protected]>
340    
341            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
342            a projection and returns a formatted string representing the
343            parameters to feed to gdalwarp. This function eliminates
344            redundancy in draw_raster_layer().
345            (BaseRenderer.render_map_incrementally): Removed the optimization which
346            drew the top most raster layer first and then only those vector-
347            based layers that are above it. With the support for transparency
348            this optimization breaks correct behaviour.
349            (BaseRenderer.draw_raster_layer): Reorganize code to support possible
350            future enhancements to raster layer bounding box. The old behaviour has
351            not changed. Also, change calling parameters to draw_raster_data()
352            to specify new RAW data format and mask.
353            (BaseRenderer.draw_raster_data): Change signature to include an optional
354            parameter for mask information. Change documentation to mention
355            support for new parameter and added option for RAW data format.
356            The data argument is now a list of [width, height, data].
357    
358            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Add new optional
359            mask parameter. Add new condition for RAW format, which
360            significantly reduces rendering time. Add condition for
361            mask parameter.
362    
363            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
364            data array of RGB values from the projected image returned from
365            the gdal warping functions. In the case of palette based images, it
366            converts the NO_DATA index to the mask color.
367            (ProjectRasterFile): Removed all custom memory driver references
368            and replaced it with the standard in-memory dataset provided
369            by gdal. The return data is no longer a BMP file, but an array
370            of RGB values, one set triple per pixel.
371    
372            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
373            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
374            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
375    
376            * setup.py (thuban_build_ext.finalize_options): Removed mention
377            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
378            files. These are obsolete with the new version of gdalwarp.cpp
379    
380            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
381            Updated signature.
382            (TestBaseRenderer.test_raster_no_projection): Changed the test
383            data to be data in the uncompressed RAW format returned from
384            ProjectRasterFile.
385    
386    2005-01-21  Jan-Oliver Wagner <[email protected]>
387    
388            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Made
389            string available for i18n.
390    
391  2005-01-20  Russell Nelson  <[email protected]>  2005-01-20  Russell Nelson  <[email protected]>
392    
393          * Resources/Projections/defaults.proj: Ruin the speling of the          * Resources/Projections/defaults.proj: Ruin the speling of the
394          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.
395          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
396          until that bug is fixed.  Otherwise the projection dialog          those users until that bug is fixed.  Otherwise the projection
397          segfaults.          dialog segfaults.  Better to annoy some Lambert-93 users with a
398            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
399    
400  2005-01-20  Bernhard Reiter <[email protected]>  2005-01-20  Bernhard Reiter <[email protected]>
401    
402          * Thuban/UI/mainwindow.py(view_position_changed): Added docstring          * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Added
403          and comment that the warning code here is a hack.          docstring and comment that the warning code here is a hack.
404    
405  2005-01-20  Russell Nelson  <[email protected]>  2005-01-20  Russell Nelson  <[email protected]>
406    
407          * Thuban/UI/mainwindow.py(view_position_changed): Warn user about          * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Warn
408          misprojected layers when their lat/lon bounding          user about misprojected layers when their lat/lon bounding
409          box exceeds rational lat/lon values.          box exceeds rational lat/lon values.
410    
411  2005-01-20  Bernhard Reiter <[email protected]>  2005-01-20  Bernhard Reiter <[email protected]>
412    
413          * Thuban/UI/about.py (unicodeToLocale()): Improved:          * Thuban/UI/about.py (unicodeToLocale): Improved:
414          Use 'ascii' and then 'replace' for other characters          Use 'ascii' and then 'replace' for other characters
415          when getdefaultlocale returns None. Thanks to Bernhard H. .          when getdefaultlocale returns None. Thanks to Bernhard H. .
416            
417  2005-01-20  Bernhard Reiter <[email protected]>  2005-01-20  Bernhard Reiter <[email protected]>
418    
419          * Thuban/UI/classgen.py (OnRetrieve()): Added a comment          * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Added a comment
420          that OnRangeText might be called twice and using None as argument.          that OnRangeText might be called twice and using None as argument.
421            
422  2005-01-20  Bernhard Reiter <[email protected]>  2005-01-20  Bernhard Reiter <[email protected]>
423    
424          * Thuban/UI/classgen.py (OnRetrieve()): Add a OnRangeText(0)          * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Add a
425          to work around a different in wx Behaviour noticed on MacOSX,          OnRangeText(0) to work around a different in wx Behaviour noticed
426          thanks to Lorenzo Moretti and Daniel Calvelo for the fix.          on MacOSX, thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
427            
428  2005-01-20  Bernhard Reiter <[email protected]>  2005-01-20  Bernhard Reiter <[email protected]>
429    
430          * 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.2565

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26