/[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 2343 by bernhard, Mon Sep 20 08:13:32 2004 UTC revision 2623 by bh, Mon May 9 18:12:12 2005 UTC
# Line 1  Line 1 
1    2005-05-09  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/postgisdb.py (PostGISConnection.connect): Set the
4            connection to autoconnect.  Fixes RT#3148.
5    
6            * test/test_postgis_db.py
7            (TestPostGISSpecialCases.test_simple_error_handling): New test
8            that attempts to reproduce RT#3148.
9    
10    2005-05-06  Jonathan Coles <[email protected]>
11    
12            Add support for saving and loading the opacity and mask type
13            properties of RasterLayers. Also add support for proper use
14            of alpha information while drawing images not in 'RAW' format.
15            If transparency in an image format (e.g, PNG) is supported by
16            wxWidgets then the image would previously have been draw with
17            transparent regions, but the opaque regions would have been
18            unaffected by a change in the layer's opacity. This patch
19            corrects the problem.
20    
21            * Thuban/Model/layer.py (RasterLayer): Added opacity and
22            masktype parameters to the constructor, and set the
23            appropriate variables to those values.
24    
25            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Added
26            code to read the opacity and mask type of the layer and construct
27            a new layer with the additional parameters.
28    
29            * Thuban/Model/save.py (SessionSaver.write_layer): Added code
30            to save the opacity and mask type of a layer.
31    
32            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
33            the opacity of the layer to draw_raster_data rather than the layer.
34            (BaseRenderer.draw_raster_data): Remove the layer parameter because
35            the function doesn't need to know about the layer. Add the optional
36            opacity parameter whose default is 1.0. Add 'PNG' as a supported
37            graphics format.
38    
39            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Fixed
40            signature to match that in BaseRenderer. Use the new opacity argument
41            in place of calling layer.Opacity(). In the case where the
42            format is not 'RAW', alpha_data is None and the loaded image has
43            alpha information, use the file's alpha information. This is
44            still subject to the layer's opacity setting.
45    
46            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
47            Fixed signature to match that in BaseRenderer.
48    
49            * test/test_load.py (TestRasterLayer): Change file_contents to
50            include opacity and masktype variables.
51            (TestRasterLayer.test): Include tests for opacity and masktype
52            changes.
53    
54            * test/test_save.py (SaveSessionTest.testRasterLayer): Restructure
55            test to cover a variety of combinations of masktype and opacity
56            settings.
57    
58    2005-05-02  Jan-Oliver Wagner <[email protected]>
59    
60            * debian/rules: add --use-wx-python-swig-hack
61            to the build command.
62            Thanks to Moritz Lennert for pointing this out.
63    
64    2005-04-28  Jan-Oliver Wagner <[email protected]>
65    
66            Introduce OGRFileShapeStore in ogr extension.
67            This allows at least that loaded shapefile shape stores
68            can be saved correctly in the thuban session file
69            and reloaded again (reload is via core shapefile
70            routine, not OGR). For other types, .thuban files
71            can not be reloaded for the time being.
72    
73            * Extensions/ogr/ogrshapes.py (OGRFileShapeStore): New. This
74            class ist to be used for any file-based shape stores
75            accessed through OGR.
76    
77            * Extensions/ogr/ogrstart.py (open_with_ogr): Added
78            forgotten _ for i18n. Adapted call OpenFileShapestore
79            regarding new parameter.
80            (OpenFileShapestore): Use OGRFileShapeStore instead of
81            OGRShapeStore. Fix return value (None instead of null).
82            Add new parameter "mainwindow" to avoid accessing global
83            context.
84    
85    2005-04-27  Jan-Oliver Wagner <[email protected]>
86    
87            Introduce FileShapeStore as generalization for
88            file-based shape stores. In a first instance
89            this allows additional modules to handle shapefile
90            format as well, namely the OGR extension.
91    
92            * Thuban/Model/data.py: Various small fixes in doc-strings.
93            (FileShapeStore): New class.
94            (ShapefileStore): Derive from FileShapeStore.
95            (ShapefileStore.__init__): Call __init__ of FileShapeStore,
96            rename self.table to self._table, initialize self._bbox
97            (ShapefileStore._open_shapefile): Use self._bbox instead of self.bbox
98            and self.FileName() instead of self.filename.
99            (ShapefileStore.Table): Use self._table instead of self.table.
100            (ShapefileStore.FileName): Removed (moved to FileShapeStore).
101            (ShapefileStore.BoundingBox):  Use self._bbox instead of self.bbox.
102    
103            * Thuban/Model/save.py: Replace ShapefileStore by FileShapeStore.
104            (SessionSaver.write_data_containers): Only use methods of the
105            base class FileShapeStore.
106    
107    2005-04-26  Martin Schulze  <[email protected]>
108    
109            * Extensions/wms/wms.py (render_wms_layer): Adjusted the render
110            function to the modified render engine
111    
112    2005-04-25  Martin Schulze  <[email protected]>
113    
114            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
115            Added a description according to the CVS log message
116    
117    2005-04-23  Martin Schulze  <[email protected]>
118    
119            * Thuban/UI/renderer.py: Added a missing import
120    
121    2005-04-23  Russell Nelson  <[email protected]>
122    
123            * Thuban/UI/view.py (MapCanvas.OnMiddle{Up,Down}): Changed the
124            way the previous tool is remembered, so that middle-button
125            panning works even if you haven't selected a tool.
126    
127    2005-04-11  Bernhard Herzog  <[email protected]>
128    
129            * libraries/thuban/wxproj.cpp: Move the compatibility code that
130            deals with the wxPython 2.4 version of wxPython.h into the #ifdef
131            branch that includes wxPython.h because it's only needed when
132            wxPython.h is used.  Also, it won't compile when
133            USE_WX_PYTHON_SWIG_HACK is set otherwise.
134    
135    2005-04-07  Bernhard Herzog  <[email protected]>
136    
137            * Thuban/UI/classifier.py (ClassGrid.__init__): Use -1 as the ID.
138            (ID_CLASS_TABLE): Removed. It wasn't used anywhere except in
139            ClassGrid.__init__ and it's value is outside of the valid
140            range (must be < 32768).  wxPython 2.5 complains about it with an
141            exception.
142    
143    2005-04-05  Jan-Oliver Wagner <[email protected]>
144    
145            * Doc/manual/thuban-manual-de.xml: More translations.
146    
147    2005-04-05  Bernhard Herzog  <[email protected]>
148    
149            * libraries/thuban/wxproj.cpp: Make it work with a wxPython.h from
150            wxPython 2.4 as well.  Also, remove a now obsolete comment.
151    
152    2005-04-05  Bernhard Herzog  <[email protected]>
153    
154            Use wxPython.h by default but provide a workaround when it isn't
155            available.
156    
157            * setup.py (wxproj_extension): New variable.  Assign the Extension
158            instance for Lib.wxproj to this variable instead of putting it
159            directly into the listso that it can be accessed by other code
160            later.
161            (thuban_build_ext.user_options): Added boolean option
162            --use-wx-python-swig-hack.
163            (thuban_build_ext.initialize_options): Initialize the new option
164            to False.
165            (thuban_build_ext.finalize_options): If the new option was given,
166            define the preprocesser macro USE_WX_PYTHON_SWIG_HACK.
167            (thuban_build_ext): Update the doc-string
168    
169            * libraries/thuban/wxproj.cpp: Normally we use
170            wx/wxPython/wxPython.h now.  Only if USE_WX_PYTHON_SWIG_HACK is
171            defined, use swigPtrConvertHack.h instead.
172    
173            * libraries/thuban/swigPtrConvertHack.h: Remove the code that was
174            copied over from wxPython.h.
175            (decode_pointer_new): New.  Equivalent of decode_pointer for
176            wxPython 2.5.
177            (wxPyConvertSwigPtr): Modified to cope with wxPython 2.5 as well.
178    
179            * README: Add section on potential build problems which explains
180            how the work-around for a missing wxPython.h is activated.
181    
182    2005-03-29  Bernhard Herzog  <[email protected]>
183    
184            * test/postgissupport.py (find_postgis_sql): Added yet another
185            potential location for (lw)postgis.sql because the file has moved
186            again in postgis 1.0.0 rc4.
187    
188    2005-03-29  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/legend.py (BMP_SIZE_W, BMP_SIZE_H): Set both to 16 to
191            match the site of the legend_icon_layer icon.  Otherwise wxpython
192            2.5 complains when the legend is created with the error:
193    
194            PyAssertionError: C++ assertion "(bitmap.GetWidth() == m_width &&
195            bitmap.GetHeight() == m_height) || (m_width == 0 && m_height ==
196            0)" failed in ./src/generic/imaglist.cpp(81): invalid bitmap size
197            in wxImageList: this might work on this platform but definitely
198            won't under Windows.
199    
200    2005-03-23  Jonathan Coles <[email protected]>
201    
202            These changes add support for adjusting the opacity of a raster layer.
203    
204            * Thuban/Model/layer.py (RasterLayer.Opacity): Replaces AlphaOpacity.
205            (RasterLayer.SetOpacity): Replaces SetAlphaOpacity. Also triggers
206            a LAYER_CHANGED event if the opacity actually changes.
207    
208            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_data): Added
209            layer parameter needed in the implementation of this method in
210            renderer.py.
211    
212            * Thuban/UI/layerproperties.py (LayerProperties.dialog_layout): Fixed
213            typo 00 -> 0.
214    
215            * Thuban/UI/rasterlayerproperties.py (RasterLayerProperties): Added
216            control to adjust opacity.
217    
218            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Scale the
219            alpha data based on the opacity level of the layer.
220    
221            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Now
222            accepts a layer parameter.
223    
224            * test/test_layer.py (TestLayerModification.test_raster_layer):
225            Rename opacity method calls and add test for LAYER_CHANGED.
226    
227    2005-03-16  Bernhard Herzog  <[email protected]>
228    
229            * test/test_connector.py (DeletionTestMixin.check_deletions)
230            (DeletionTestMixin.check_deletetions): renamed to check_deletions.
231            update the callers.
232    
233    2005-03-14  Jan-Oliver Wagner <[email protected]>
234    
235            * Doc/manual/thuban-manual-de.xml: More translations.
236    
237    2005-03-10  Jan-Oliver Wagner <[email protected]>
238    
239            Introducing initialization callbacks for extensions.
240    
241            * Thuban/UI/extensionregistry.py (ExtensionDesc.__init__): Added
242            optional parameter init_callback.
243            (ExtensionDesc.init_ext): New. Executes the callback and sets
244            a status.
245    
246            * Thuban/UI/application.py (ThubanApplication.OnInit): Add the
247            initialization of the extensions.
248            (ThubanApplication.init_extensions): Init all extensions.
249    
250            * Thuban/UI/about.py (About.__init__): Added status of the extensions
251            to the about text.
252    
253            * Extensions/gns2shp/__init__.py: Added init method for Extension
254            description.
255            (init): New. Contains the initialization of the module.
256    
257    2005-03-04  Nina H�ffmeyer <[email protected]>
258    
259            * Extensions/ogr/ogrdialog.py: Added a dialog, which asks for
260            OGRConnection to open a datasource. Removed dialog to display all
261            available drivers. Added some doc strings.
262    
263            * Extensions/ogr/ogrstart.py: Added menu entry for opening an
264            OGRDatasource with a string. Added two opening methods which return an
265            OGRDatasource (either data from file or from DB).
266    
267            * Extensions/ogr/ogrshapes.py: Added class OGRGeometry, which
268            represents a geometry reference of an OGRFeature. OGRShape now has a
269            list of referenced geometry objects (important for geometry
270            collections).
271            For OGRShapeStores loaded from a DB an ID column can be specified now.
272    
273    2005-02-22  Jan-Oliver Wagner <[email protected]>
274    
275            * test/test_map.py (TestMapWithContents.test_tree_info):
276            Added label layer for comparison.
277    
278    2005-02-18  Jonathan Coles <[email protected]>
279    
280            * libraries/thuban/gdalwarp.cpp (GetImageData): Optimize the loop
281            which builds a mask. Handle the majority of an image in a loop,
282            creating 8 bits at a time. Later, handle the edge case where less
283            than 8 bits are packed.
284    
285    2005-02-18  Bernhard Herzog  <[email protected]>
286    
287            * test/test_baserenderer.py (TestBaseRenderer.setUp): Fix
288            doc-string
289    
290    2005-02-18  Jonathan Coles <[email protected]>
291    
292            * setup.py: Remove wx_cs_params from gdal compile options.
293    
294    2005-02-18  Jonathan Coles <[email protected]>
295    
296            Refactored baserenderer.py and renderer.py to remove baserenderer.py's
297            dependencies on wxPython. Added a new method projected_raster_layer()
298            that returns a raster layer image in projected space. This must be
299            implemented in classes derived from BaseRenderer. This also eliminates
300            the dependency on gdal in baserenderer.py.
301    
302            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Call
303            new projected_raster_layer() to get projected raster image instead
304            of directly calling ProjectRasterFile().
305            (BaseRenderer.projected_raster_layer): New. This must be implemented
306            by derived classes. It takes almost the same arguments as ProjectRasterFile
307            did and returns a projected image with mask and alpha data (if requested).
308            (BaseRenderer.render_map_incrementally): Remove the check for gdal since
309            that check will be done in MapRenderer.projected_raster_layer(). This
310            also allows other implementations to use different projection code.
311    
312            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
313            Implementation of BaseRenderer.projected_raster_layer. Checks for
314            gdal support and wxPython version. Also handles exceptions from
315            ProjectRasterFile.
316    
317            * libraries/thuban/gdalwarp.cpp: Removed checks for wxPython versions
318            and added a variable which can be set through the options argument
319            of ProjectRasterFile.
320    
321            * test/test_baserenderer.py (SimpleRenderer.projected_raster_layer): New.
322            Calls ProjectRasterFile and returns the result.
323            (TestBaseRenderer.test_projected_raster_layer): New. Tests the results
324            of calling projected_raster_layer() with different options.
325            (TestBaseRenderer.test_raster_no_projection): Removed tests based on
326            wxPython version and all tests of masks and alpha channels. These are
327            now in test_projected_raster_layer().
328    
329    2005-02-17  Jan-Oliver Wagner <[email protected]>
330    
331            * Thuban/Model/map.py, Thuban/Model/label.py: Fixed
332            doc-strings to comply with coding_guidelines.
333    
334    2005-02-17  Jan-Oliver Wagner <[email protected]>
335    
336            Docstring improvements and minor fixes for labellayer.
337    
338            * Thuban/Model/map.py:
339            (Map, Map.Destroy, Map.RemoveLayer, Map.ClearLayers,
340            Map.Layers, Map.HasLayers, Map.MoveLayerToTop,
341            Map.RaiseLayer, Map.LowerLayer, Map.MoveLayerToBottom,
342            Map.ProjectedBoundingBox, Map.GetProjection): Improved/added
343            doc string.
344            (Map.BoundingBox): Removed superfluous test for label_layer
345            and improved doc string.
346            (Map.TreeInfo): Added label_layer and improved sdo string.
347    
348            * Thuban/Model/label.py: Added import of _.
349            (Label, Label.__init__): Improved/added doc string.
350            (LabelLayer, LabelLayer.__init__, LabelLayer.Labels,
351            LabelLayer.RemoveLabel, LabelLayer.ClearLabels):
352            Improved/added doc string.
353            (LabelLayer.AddLabel): Use already defined names for
354            align strings and improved doc string.
355            (LabelLayer.TreeInfo): New. Return the object data for
356            the tree view.
357    
358    2005-02-16  Jonathan Coles <[email protected]>
359    
360            Further wxPython 2.5 changes using patches from Daniel Calvelo Aros
361            so that that wxproj doesn't crash. Added GUI support for selecting
362            alpha channel (opacity can't be selected yet).
363    
364            NOTE: If wxPython.h is including in future distribution packages
365            then it will not be necessary to have the files swigPtrConvertHack.h
366            and wxPython_int.h included with Thuban. This is hopefully
367            a temporary workaround.
368    
369            * setup.py (thuban_build_ext.finalize_options): gdalwarp needs
370            access to the macro wxCHECK_VERSION so that it will properly
371            generate a bit mask. There was a problem between wx2.4 and wx2.5
372            that this works around.
373    
374            * Thuban/Model/layer.py (RasterLayer.UseMask): Removed in favor
375            of RasterLayer.MaskType.
376            (RasterLayer.SetUseMask): Removed in favor of RasterLayer.SetMaskType
377            (RasterLayer.MaskType): New. Returns the type of mask to use. Can
378            specify none, a bitmap, or an alpha channel.
379            (RasterLayer.SetMaskType): New. Set what kind of mask to use.
380    
381            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
382            Set the raster warping options for the mask based on the value
383            of RasterLayer.MaskType.
384    
385            * Thuban/UI/legend.py (LegendTree.__FillTreeLayer): Remove
386            deprecated calls to SetItemSelectedImage in favor of SetItemImage
387            with wxTreeItemIcon_Selected.
388    
389            * Thuban/UI/rasterlayerproperties.py: Support selecting to use
390            an alpha channel for the mask.
391    
392            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Use alpha
393            data if it is available and an alpha channel is supported under
394            the current version of wxPython.
395    
396            * libraries/thuban/gdalwarp.cpp (GetImageData): Added compiler define
397            to select whether 1's or 0's select the desired portion of an image
398            in the bit mask. wx2.4 has a bug where the documentation is the opposite
399            from behavior.
400            (ProjectRasterFile): Only generate an alpha channel if the version
401            of wxPython is >= 2.5.3.
402    
403            * libraries/thuban/wxproj.cpp: Applied patches from Daniel Calvelo Aros.
404            When wxPython >= 2.5.3 use the special swig functions to decode an
405            object's address.
406    
407            * libraries/thuban/swigPtrConvertHack.h: Includes conditional code
408            based on the version of wxPython. If >= 2.5.3 use the special swig
409            functions from wxPython to decode wxPython objects, otherwise use
410            the old method of retrieving the address from the object __repr__ string.
411    
412            * libraries/thuban/wxPython_int.h: Copied from wxPython source.
413            Unnecessary code was removed to make it smaller.
414    
415            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
416            Add tests for returning an alpha channel.
417    
418            * test/test_layer.py (TestLayerModification.test_raster_layer): Fix
419            tests that used removed functions UseMask and SetUseMask
420    
421    
422    2005-02-08  Bernhard Herzog  <[email protected]>
423    
424            More wxPython 2.5 changes.  This time taken from a patch from
425            Daniel Calvelo Aros.
426    
427            * Thuban/UI/tableview.py (QueryTableFrame.__init__)
428            (QueryTableFrame.__init__): Pass the size of a spacer as a single
429            item.
430    
431            * Thuban/UI/projdialog.py (ProjFrame.build_dialog)
432            (ProjFrame.build_dialog): Pass the size of a spacer as a single
433            item.
434    
435            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Pass the
436            size of a spacer as a single item.
437    
438            * Thuban/UI/classifier.py (Classifier.dialog_layout): Pass the
439            size of a spacer as a single item.
440    
441    2005-02-08  Bernhard Herzog  <[email protected]>
442    
443            Compatibility with wxPython 2.5.  The changes should make it work
444            better with 2.5 while still keeping compatibility with 2.4.  There
445            are still problems with 2.5, though.
446    
447            * Thuban/UI/dock.py (DockableWindow.__CreateBorder): Pass the size
448            of a spacer as a single item.
449    
450            * Thuban/UI/classifier.py (ClassGroupPropertiesCtrl): Derive only
451            from wxControl
452    
453            * Thuban/UI/legend.py (LegendTree): When running with wxPython <
454            2.5, add an implementation of the GetFirstChild method that does
455            not require the second parameter.
456            (LegendTree.find_layer, LegendTree._OnMsgMapLayersAdded)
457            (LegendTree._OnMsgMapLayersRemoved, LegendTree.DeleteAllItems)
458            (LegendTree.DeleteChildren, LegendTree.__ShowHideLayer): Do not
459            pass the second parameter to GetFirstChild
460    
461    2005-02-08  Nina H�ffmeyer <[email protected]>
462    
463            * Extensions/ogr/ogrshapes.py: Removed some print commands.
464    
465            * Extensions/ogr/ogrstart.py: Changed the GUI. OGR is no longer an
466            additional menu but appears as a possibility in the menu Map.
467    
468    2005-02-07  Jonathan Coles <[email protected]>
469            * libraries/thuban/gdalwarp.cpp: Removed the macros PYTHON_ERR
470            and PYTHON_ERRF since they were no longer necessary.
471    
472    2005-02-07  Bernhard Reiter <[email protected]>
473            * Thuban/UI/classifier.py (ClassGrid.DeleteSelectedRows):
474            Enable translation for message string.
475    
476    2005-02-06  Martin Schulze  <[email protected]>
477    
478            * Extensions/wms/infodialog.py (wmsInfoDialog.__init__): Adjusted
479            the arguments of the contstructor to fit the global scheme
480    
481    2005-01-31  Nina H�ffmeyer <[email protected]>
482    
483            * Extensions/ogr/ogrdialog.py: Added class ogrdialog.py, which provides
484            some dialogs needed to start ogr.
485            
486            * Extensions/ogr/__init__.py: Changed comments to avoid encoding
487            warnings.
488    
489            * Extensions/ogr/test/test_OGRShapestore.py: Changed comments to avoid
490            encoding warnings.
491    
492    2005-01-28  Jonathan Coles <[email protected]>
493    
494            * libraries/thuban/gdalwarp.cpp (GetImageData): Recode how the
495            mask is packed into a bit array. It's now slightly faster.
496    
497    2005-01-28  Jonathan Coles <[email protected]>
498    
499            * Thuban/Model/layer.py (RasterLayer.__init__): Make use_mask
500            default to true.
501    
502            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Remove
503            code that loads the state of the layer's use_mask flag. Its
504            usefulness is still being debated.
505    
506            * Thuban/Model/save.py (SessionSaver.write_layer): Remove
507            code that saves the state of the layer's use_mask flag. Its
508            usefulness is still being debated.
509    
510            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
511            options to ProjectRasterFile based on the state of layer.UseMask().
512            Catch more exceptions from ProjectRasterFile so that Thuban doesn't
513            quit is there is a problem projecting.
514            (BaseRenderer.draw_raster_data): Change the documentation to
515            describe the new format (XBM) that the mask data will be in.
516    
517            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): The mask
518            data is in XBM format when format='RAW' which means it doesn't
519            need to be converted to a wxImage before being used as a mask
520            for a wxBitmap. Assume that if format != 'RAW' that the image
521            data and mask data are in the same format.
522    
523            * libraries/thuban/gdalwarp.cpp (GetImageData): If alpha is enabled
524            and a mask is requested, convert the alpha band to a bit array in
525            XBM format. if an alpha channel is requested, simply return the
526            data in the alpha band. Provide better error handling by returning
527            python error messages (also fixes RT #2947).
528            (ProjectRasterFile): Support multiple mask options, rather than simply
529            a flag indicating that a mask should or should not be used. Provide
530            better error handling by returning python error messages.
531    
532            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
533            Add mask data to test.
534    
535            * test/test_layer.py (TestLayer.test_raster_layer): Test that a layer
536            should use the mask by default.
537            (TestLayerModificaton.test_raster_layer): Test that a layer should use
538            the mask by default.
539    
540            * test/test_load.py (TestRasterLayer.test): Remove testing for
541            use_mask flag in file.
542    
543            * test/test_save.py (SaveSessionTest.testRasterLayer): Remove testing
544            for use_mask in file.
545    
546            * test/test_load_1_0_1.py: Removed. Shouldn't have been checked in.
547            
548    2005-01-26  Jonathan Coles <[email protected]>
549    
550            Add a new dialog box for raster layers. The dialog box allows
551            the user to toggle a mask that is generated by ProjectRasterFile
552            and is used to only draw the real parts of the projected image.
553    
554            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
555            Instruct the warping code to generate a mask if the raster layer
556            requests one.
557            (BaseRenderer.draw_raster_data): Removed obsolete optional mask argument.
558    
559            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Removed
560            obsolete optional mask argument.
561    
562            * Thuban/UI/classifier.py (Classifier): Change the parent class
563            to LayerProperties and rework the code to support layout calls
564            from the parent.
565            (Classifier.dialog_layout): New. Layout the dialog box.
566            (Classifier.map_layers_removed): Removed. Moved to parent class.
567            (Classifier.map_replaced): Removed. Moved to parent class.
568            (Classifier._OnTry): Renamed to OnTry to support parent class.
569            (Classifier.OnClose): Removed. Supplied in parent class.
570            (Classifier._OnCloseBtn): Removed. Supplied in parent class as OnCloseBtn.
571            (Classifier._OnOK): Renamed to OnOK to support parent class.
572            (Classifier._OnRevert): Renamed to OnRevert to support parent class.
573    
574            * Thuban/UI/layerproperties.py: New. Base class for layer properties
575            dialog boxes.
576    
577            * Thuban/UI/rasterlayerproperties.py: New. Class for displaying
578            raster layer properties.
579    
580            * libraries/thuban/gdalwarp.cpp: Replace the old gdalwarp.cpp code
581            with the non-simple version supplied with gdal. This allows added
582            features such as creating an alpha band.
583            (GetImageData): Generate a mask array from the alpha band that is
584            generated by gdal if the user has selected it. Try to support images
585            that have more than three bands, such as images with RGB plus an
586            alpha band.
587            (ProjectRasterFile): Convert python argument for mask and tell
588            gdal to enable or disable an alpha band.
589    
590            * Thuban/Model/layer.py (BaseLayer.Type): New. Returns a string
591            describing what kind of layer the class is. Defaults to "Unknown",
592            but should be overridden by subclasses.
593            (Layer.Type): New. Override base class method.
594            (RasterLayer.__init__): Create a flag for using a mask. Record extra
595            data from gdal for display in the properties dialog.
596            (RasterLayer.Type): New. Override base class method.
597            (RasterLayer.UseMask): New. Returns True if the mask should be used.
598            (RasterLayer.SetUseMask): New. Set if the mask should be used.
599            (RasterLayer.ImageInfo): New. Return extra information about the image.
600    
601            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Load
602            the mask information.
603    
604            * Thuban/Model/save.py (SessionSaver.write_layer): Save mask information.
605    
606            * Thuban/UI/mainwindow.py: Register the RasterLayerProperties and
607            Classifier classes as dialogs to use with the proper layer types.
608    
609            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
610            Fix test.
611    
612            * test/test_layer.py (TestLayer.test_raster_layer): Test new methods.
613            (TestLayerModification.build_path): New. Support function.
614            (TestLayerModification.test_raster_layer): New. Test new methods.
615    
616            * test/test_save.py (SaveSessionTest.testRasterLayer): Add tests for mask.
617    
618            * test/test_load.py (TestRasterLayer): Add tests for mask.
619    
620            * test/test_load_1_0_1.py: New. Copied from test_load.py.
621    
622            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Removed
623            obsolete optional mask argument.
624    
625    2005-01-26  Nina H�ffmeyer <[email protected]>
626    
627            * Extensions/ogr/ogrshapes.py: Added two dictionaries to ShapeStore
628            which maps the ids and the ordinals. Fixed RowIdToOrdinal(),
629            RowOrdinalToId() and ReadRowAsDict().
630    
631            * Extensions/ogr/ogrstart.py: Added menu item which opens database
632            layers for existing database connections.
633    
634            * Extensions/ogr/test/test_OGRShapestore.py: Fixed a message string.
635    
636    
637    2005-01-26  Jan-Oliver Wagner <[email protected]>
638    
639            * Doc/manual/thuban-manual-de.xml: More translations.
640    
641    2005-01-24  Bernhard Herzog  <[email protected]>
642    
643            Rework the status bar updates a bit to make sure the message about
644            the projections is produced at the right times.
645    
646            * Thuban/UI/mainwindow.py (MainWindow.update_status_bar_messages):
647            New class variable with messages that may require a status bar
648            update.
649            (MainWindow.view_position_changed)
650            (MainWindow.update_status_bar): Rename from view_position_changed
651            to update_status_bar.  It's meaning has changed now that it may
652            also generate messages about problems with projection settings.
653            (MainWindow.__init__): Use the new update_status_bar_messages
654            class variable to subscribe update_status_bar
655            (MainWindow.set_position_text): Update doc-string.  This method
656            has to be renamed at some point.  See doc-string and comments.
657            (MainWindow.OnClose): Unsubscribe update_status_bar from all
658            messages in update_status_bar_messages
659    
660            * Thuban/UI/viewport.py (ViewPort.forwarded_map_messages): New
661            class attribute.  map messages to be forwarded by the viewport.
662            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): (un)subscribe
663            the messages in forwarded_map_messages
664    
665    2005-01-21  Bernhard Herzog  <[email protected]>
666    
667            * test/postgissupport.py (PostGISDatabase.__init__): Tweak
668            doc-string
669            (find_postgis_sql): Update for postgis-1.0.0-rc1, which uses a
670            different name for the initialization SQL file.
671    
672    2005-01-21  Jonathan Coles <[email protected]>
673    
674            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
675            a projection and returns a formatted string representing the
676            parameters to feed to gdalwarp. This function eliminates
677            redundancy in draw_raster_layer().
678            (BaseRenderer.render_map_incrementally): Removed the optimization which
679            drew the top most raster layer first and then only those vector-
680            based layers that are above it. With the support for transparency
681            this optimization breaks correct behaviour.
682            (BaseRenderer.draw_raster_layer): Reorganize code to support possible
683            future enhancements to raster layer bounding box. The old behaviour has
684            not changed. Also, change calling parameters to draw_raster_data()
685            to specify new RAW data format and mask.
686            (BaseRenderer.draw_raster_data): Change signature to include an optional
687            parameter for mask information. Change documentation to mention
688            support for new parameter and added option for RAW data format.
689            The data argument is now a list of [width, height, data].
690    
691            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Add new optional
692            mask parameter. Add new condition for RAW format, which
693            significantly reduces rendering time. Add condition for
694            mask parameter.
695    
696            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
697            data array of RGB values from the projected image returned from
698            the gdal warping functions. In the case of palette based images, it
699            converts the NO_DATA index to the mask color.
700            (ProjectRasterFile): Removed all custom memory driver references
701            and replaced it with the standard in-memory dataset provided
702            by gdal. The return data is no longer a BMP file, but an array
703            of RGB values, one set triple per pixel.
704    
705            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
706            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
707            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
708    
709            * setup.py (thuban_build_ext.finalize_options): Removed mention
710            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
711            files. These are obsolete with the new version of gdalwarp.cpp
712    
713            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
714            Updated signature.
715            (TestBaseRenderer.test_raster_no_projection): Changed the test
716            data to be data in the uncompressed RAW format returned from
717            ProjectRasterFile.
718    
719    2005-01-21  Jan-Oliver Wagner <[email protected]>
720    
721            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Made
722            string available for i18n.
723    
724    2005-01-20  Russell Nelson  <[email protected]>
725    
726            * Resources/Projections/defaults.proj: Ruin the speling of the
727            Lambert-93 projection so it doesn't run into the wx UTF-8 bug.
728            It's the wrong thing to do in the long run, but it's necessary for
729            those users until that bug is fixed.  Otherwise the projection
730            dialog segfaults.  Better to annoy some Lambert-93 users with a
731            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
732    
733    2005-01-20  Bernhard Reiter <[email protected]>
734    
735            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Added
736            docstring and comment that the warning code here is a hack.
737    
738    2005-01-20  Russell Nelson  <[email protected]>
739    
740            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Warn
741            user about misprojected layers when their lat/lon bounding
742            box exceeds rational lat/lon values.
743    
744    2005-01-20  Bernhard Reiter <[email protected]>
745    
746            * Thuban/UI/about.py (unicodeToLocale): Improved:
747            Use 'ascii' and then 'replace' for other characters
748            when getdefaultlocale returns None. Thanks to Bernhard H. .
749    
750    2005-01-20  Bernhard Reiter <[email protected]>
751    
752            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Added a comment
753            that OnRangeText might be called twice and using None as argument.
754    
755    2005-01-20  Bernhard Reiter <[email protected]>
756    
757            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Add a
758            OnRangeText(0) to work around a different in wx Behaviour noticed
759            on MacOSX, thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
760    
761    2005-01-20  Bernhard Reiter <[email protected]>
762    
763            * Thuban/UI/about.py: take iso-8859-15 when getdefaultlocale returns
764            None. (Fixes rt#2910.)
765            
766    2005-01-18  Frank Koormann <[email protected]>
767    
768            New Extension: mouseposition
769            Tool to collect mouse click positions (map coordinates) in a dialog.
770    
771            * Extensions/mouseposition/__init__.py: New, extension registration
772    
773            * Extensions/mouseposition/mouseposition.py: New, implements the
774            dialog and adds a tool to Thuban mainwindow.
775    
776            * Extensions/mouseposition/position.xpm: New, icon for tool.
777    
778    2005-01-14  Jan-Oliver Wagner <[email protected]>
779    
780            * Doc/manual/thuban-manual-de.xml: More translations.
781    
782    2005-01-11  Frank Koormann <[email protected]>
783    
784            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
785            Fix indention bug.
786    
787    2005-01-09  Frank Koormann <[email protected]>
788    
789            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
790            BugFix 2901: Explicitly copy layers ClassificationColumn since it
791            is not part of the layers Classification.
792    
793    2005-01-03  Frank Koormann <[email protected]>
794    
795            * Thuban/UI/renderer.py (ScreenRendererdraw_selection_incrementally):
796            BugFix 2883: Former implementation only worked on classified point
797            layers: KeyError was raised, now use the default size if field is None.
798    
799    2004-12-27  Bernhard Reiter <[email protected]>
800    
801            svgexport 1.0.0cvs: Fixed label export.
802    
803            * Extensions/svgexport/test/test_svgmapwriter.py:
804            class TestSVGRenderer(): New class; new test test_label_font().
805    
806            * Extensions/svgexport/svgmapwriter.py
807            (SVGRenderer.label_font()): initialised Font size with self.factor now,
808            makes test_label_font happy.
809    
810            * Extensions/svgexport/TODO: crossed out fixed label export item.
811            Added item for options.
812    
813            * Extensions/svgexport/__init__.py: Bumped version to 1.0.0cvs.
814    
815    2004-12-27  Russell Nelson  <[email protected]>
816    
817            Middle mouse button pans.
818    
819            * Thuban/UI/view.py (MapCanvas.__init__): Subscribe also
820            OnMiddleDown and OnMiddleUp events.
821            (MapCanvas.OnMiddleDown): New. Activate the pan tool and remember the
822            previously used tool.
823            (MapCanvas.OnMiddleUp): New. Reactivate the remebered tool used before
824            pressing the middle mouse button.
825    
826    2004-12-27  Jan-Oliver Wagner <[email protected]>
827    
828            * Doc/manual/thuban-manual-de.xml: More translations.
829    
830    2004-12-23  Jan-Oliver Wagner <[email protected]>
831    
832            * Thuban/UI/projdialog.py (ProjFrame.load_user_proj): Added a
833            \n to stderr after the warnings. Thanks to Russell Nelson.
834    
835    2004-12-20  Nina Hueffmeyer <[email protected]>
836    
837            * Extensions/ogr/ogrshapes.py: Fixed some issues from
838            Bernhard (coding guidelines etc.). Additionally it is now possible to
839            display shapefiles containing feature collections (e.g.polygons
840            with holes). Works with gdal 1.2.1 now.
841    
842            * Extensions/ogr/test/test_OGRShapestore.py: Fixed some issues
843            from Bernhard (coding guidelines etc.). If ogr can't be imported,
844            tests are skipped now.
845    
846            * Extensions/ogr/ogrstart.py: Fixed some typings.
847    
848    2004-12-20  Bernhard Reiter <[email protected]>
849    
850            * Extensions/svgexport/TODO: updated to add support for
851            raster layers and labels for 1.0.1.
852    
853            * Extensions/svgexport/svgmapwriter.py (draw_raster_layer):
854            Issue a warning now.
855    
856    2004-12-19  Bernhard Reiter <[email protected]>
857    
858            * Extensions/svgexport/TODO: Added idea to support triggering
859            the application down the pipe.
860    
861    2004-12-19  Bernhard Reiter <[email protected]>
862    
863            svgexport: Improved code quality, mainly by better naming.
864    
865            * Extensions/svgexport/svgmapwriter.py:
866            DrawPath() renamed to DrawPolygonPath(),
867            added documentation, improved comments and variable names.
868            
869            * Extensions/svgexport/svgmapwriter.py,
870              Extensions/svgexport/test/test_svgmapwriter.py:
871            All using DrawPolygonPath() now, the default parameter closed=True
872            omitted.
873    
874            * Extensions/svgexport/test/test_svgmapwriter.py:
875            renamed test_polygon_opened() to test_polyline()
876            renamed test_transparent_polygon() to test_transparent_polyline()
877    
878    2004-12-18  Jan-Oliver Wagner <[email protected]>
879    
880            Some fixes of gns2shp extension.
881    
882            * Extensions/gns2shp/test/__init__.py: New. Make this directory a
883            package.
884    
885            * Extensions/gns2shp/test/test_gns2shp.py: Add some import paths
886            dynamically.
887    
888            * Extensions/gns2shp/test/README: Simplified description how to test.
889    
890            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed doc-string,
891            fixed some dimensions of fields according to the GNS documentation
892            which seems to change undocumented.
893            Now killing trailing \n and/or \r from MODIFY_DATE.
894            This fixes RT#2453.
895    
896    2004-12-18  Bernhard Reiter <[email protected]>
897    
898            svgexport 1.0.0: Treats holes and islands nicely. Documentation added.
899    
900            * Extensions/svgexport/test/test_svgmapwriter.py:
901            Added new tests: test_export_polygon_with_hole()
902            and test_polygon_with_hole().
903    
904            * Extensions/svgexport/svgmapwriter.py
905            (draw_polygon_shape()): Uses DrawPath correctly now.
906    
907            * Doc/manual/thuban-manual.xml: Added documentation for stable
908            extention svgexport.    
909            * Doc/manual/thuban-manual-de.xml: Copied English section about
910            svexport over.
911    
912            * Extensions/svgexport/__init__.py: Bumped version number to 1.0.0.
913    
914            * Extensions/svgexport/svgsaver.py,maplegend.py:
915            Moved from experimental to stable extension menu.
916    
917            * Extensions/svgexport/TODO: updated.
918    
919    
920    2004-12-18  Bernhard Reiter <[email protected]>
921    
922            Added Extensions/svgexport/TODO
923    
924    2004-12-18  Bernhard Reiter <[email protected]>
925    
926            Refactored in svgexport:
927            DrawPath replaces DrawPolygon; added newline in front of "M" in paths.
928    
929            * Extensions/svgexport/svgmapwriter.py
930            Added verbosity level 3 to print out polygon points.
931            (class Point): added __repr__
932            (class Brush, __str__()): Added space after ,.
933            (DrawPolygon): Renamed to DrawPath()
934            (DrawPath): Takes list of polygons as input now, adds \n before "M"s.
935            (DrawLines): Using DrawPath now.
936    
937            * Extensions/svgexport/test/test_svgmapwriter.py:
938            Replaced DrawPolygon() calls with DrawPath() and put the first argument
939            inside another list. Adapted test data with a newline before "M".
940    
941    2004-12-18  Bernhard Reiter <[email protected]>
942            
943            Refactored svgexport tests: 9 double tests runs eliminated;
944            code size reduced by 8 lines.
945    
946            * Extensions/svgexport/test/test_svgmapwriter.py:
947            (class TestWithDC): Renamed to BaseTestWithDC, moved to top.
948            (class BaseWithDCtools): New, subclass from BaseTestWithDC.
949            (class TestDrawSplines): now subclass from BaseTestWithDCtools,
950            this fixed the double running of the nine tests of TestVirtualDC.
951            (class TestVirtualDC): Using self.dc and self.file from setUp().
952    
953    2004-12-17  Bernhard Herzog  <[email protected]>
954    
955            Two windows specific fixes ported from thuban-1�0-branch:
956    
957            * Thuban/UI/about.py (unicodeToLocale): Use getdefaultlocale
958            instead of getlocale because getlocale doesn't return a usable
959            encoding name on a german windows 2000
960    
961            * setup.py: windows build: Removed the absolute path names and
962            made all prfixes relative to the directory containing setup.py.
963            Makes it a little easier to adapt to a different system.
964    
965    2004-12-16  Bernhard Herzog  <[email protected]>
966    
967            Add support for PostGIS tables with LINESTRING geometries.
968            Fixes RT#2299
969    
970            * Thuban/Model/postgisdb.py (shapetype_map): Add LINESTRING
971    
972            * test/postgissupport.py
973            (PostgreSQLServer.get_default_static_data_db): Rename the "roads"
974            table to "roads-multi" because it now uses MULTILINESTRING
975            geometries and introduce a new "roads" table that uses LINESTRING
976            (coords_to_multilinestring): Make the doc string more precise
977            (coords_to_linestring): New.  Create a LINESTRING WKT
978            representatin
979            (wkt_converter): Add coords_to_linestring
980            (upload_shapefile): Rephrase the doc-string a bit.
981    
982            * test/test_postgis_db.py (TestPostGISShapestoreArc)
983            (LineStringTests)
984            (TestPostGISShapestoreLineString)
985            (TestPostGISShapestoreMultiLineString): Split
986            TestPostGISShapestoreArc into a base class LineStringTests and two
987            derived classes TestPostGISShapestoreLineString for LINESTRING
988            geometries and TestPostGISShapestoreMultiLineString for
989            MULTILINESTRING geometries.  Most test methods are in the base
990            class with the exception of tests that explicitly check the raw
991            format.
992    
993    2004-12-16  Bernhard Herzog  <[email protected]>
994    
995            Make the test suite work with PostGIS 0.8.2 and PostgreSQL 7.4
996    
997            * test/postgissupport.py (find_postgis_sql): Different postgis
998            versions put the postgis.sql file into slightly different places
999            so we have to look in both.  The updated doc string describes this
1000            is more detail.
1001    
1002            * test/test_postgis_db.py
1003            (TestPostGISSpecialCases.test_column_name_quoting): The return
1004            value of UniqueValues is unsorted, so it has to be sorted for
1005            comparison.
1006    
1007    2004-12-16  Bernhard Herzog  <[email protected]>
1008    
1009            Fix for RT#2237
1010    
1011            * Thuban/UI/projdialog.py (ProjFrame._show_proj_panel): If the
1012            panel to be shown is the UnknownProjPanel disable the OK and Try
1013            buttons.  Otherwise enable them.
1014            (ProjFrame.__GetProjection): The UnknownProjPanel returns None for
1015            the parameters.  In that case __GetProjection also returns None
1016            now.
1017    
1018    2004-12-15  Bernhard Herzog  <[email protected]>
1019    
1020            * Thuban/UI/classgen.py (GenQuantilesPanel.__init__): Set the
1021            minimum number of classes to 2.  The calculate_quantiles needs at
1022            least two and raises an exception otherwise.  
1023            Fixes RT#2549
1024    
1025    2004-12-15  Bernhard Herzog  <[email protected]>
1026    
1027            * test/postgissupport.py (PostgreSQLServer.execute_sql): Extend to
1028            so that it returns a result for select statements.
1029            (PostgreSQLServer.server_version): New.  Return the version of the
1030            server software.
1031            (PostgreSQLServer.require_authentication): The format of
1032            pg_hba.conf has changed between PostgrSQL 7.2 and 7.3.  Check the
1033            server version and generate the file in the correct format
1034    
1035    2004-12-15  Bernhard Herzog  <[email protected]>
1036    
1037            * test/postgissupport.py (PostgreSQLServer.is_running): Fix typo
1038            in the doc string and rephrase it a little.
1039    
1040    2004-12-15  Frank Koormann <[email protected]>
1041    
1042            * test/test_load.py (TestAltPath.checkSession): New, extended checks if
1043            session has been loaded successfully. The check is called by the relevant
1044            tests after executing load_session().
1045    
1046    2004-12-13  Bernhard Herzog  <[email protected]>
1047    
1048            Make sure the region used to determine which shapes are visible
1049            actually matches the region on the printed page.  If this isn't
1050            done properly some shapes might not be printed.  
1051            Fixes RT #2692
1052    
1053            * Thuban/UI/view.py (MapPrintout.draw_on_dc): The region for the
1054            renderer has to be at the same position as the mapregion
1055    
1056            * Thuban/UI/renderer.py (ExportRenderer.RenderMap): self.region
1057            has to be moved by (self.shiftx, self.shifty) too.
1058    
1059    2004-12-13  Bernhard Herzog  <[email protected]>
1060    
1061            * libraries/pyprojection/Projection.i: Work around a bug in the
1062            generated python code which leads to exception in the __del__
1063            method when the constructor fails.  See the comments in the code
1064            for more details.
1065    
1066            * libraries/pyprojection/Projection.py: Updated from Projection.i
1067            with SWIG.
1068    
1069    2004-12-13  Bernhard Herzog  <[email protected]>
1070    
1071            * test/test_load.py (TestAltPath.test_01_single_path_error_fix)
1072            (TestAltPath.test_02_path_error_fix_from_list)
1073            (TestAltPath.test_05_path_error_fix_from_list_changed)
1074            (TestAltPath.test_06_path_error_fix_from_list_fails): self.session
1075            is destroyed in tearDown, so there's no need to do it in a test
1076            case.
1077    
1078            * Thuban/Model/load.py (SessionLoader.open_shapefile): Remove a
1079            debug print
1080    
1081    2004-12-13  Bernhard Herzog  <[email protected]>
1082    
1083            * Extensions/svgexport/test/test_svgmapwriter.py
1084            (TestDrawSplines.setUp): Do not use super with the unittest
1085            classes because in Python 2.2 they're still old-style classes.
1086    
1087    2004-12-13  Frank Koormann <[email protected]>
1088    
1089        Alternative Path feature: When loading a (moved) session where
1090            shapefiles cannot be found, ask the user. Use the specified path
1091            if further shapefiles are missing. However, ask the usr for confirmation
1092            in such cases.
1093    
1094            * test/test_load.py (TestAltPath): New, tests for alternative path feature
1095            in load_session()
1096            (Shapefile_CallBack): Helper, implements controllable callback.
1097    
1098            * Thuban/UI/application.py (ThubanApplication.OnInit):
1099            Added "alt_path" to self.path
1100            (ThubanApplication.OpenSession): Added shapefile_callback as second
1101            callback similar to db_connection_callback.
1102            (ThubanApplication.run_alt_path_dialog): New, implementaion of
1103            shapefile_callback. In addition to raising the dialog the control of
1104            self.path('alt_path') is implemented here.
1105    
1106            * Thuban/Model/load.py (SessionLoader.__init__): Added shapefile_callback.
1107            (SessionLoader.open_shapefile): Open shapefile, eventually with
1108            alternative path. This wrapps the "theSession.OpenShapefile(filename)"
1109            formerly used in start_fileshapesource()/start_layer().
1110            (SessionLoader.start_fileshapesource): Call open_shapefile().
1111            (SessionLoader.start_layer): Call open_shapefile().
1112            (load_session): Added shapefile_callback.
1113    
1114            * Thuban/UI/altpathdialog.py: New, implements dialogs for alternative path
1115            feature (search / check).
1116            
1117            * Doc/manual/thuban-manual.xml: Added documentation of new feature.
1118    
1119    2004-12-11  Bernhard Reiter <[email protected]>
1120    
1121             svgexport 0.9.2: Point size supports for maps.
1122    
1123            * Extensions/svgexport/svgmapwriter.py: Added import of SHAPETYPE_POINT
1124            (def draw_point_shape): new parameter size defaults to 2 as before.
1125            (draw_shape_layer_incrementally): Moved draw_func log line higher.
1126            Added draw_func call with size when dealing with a point layer.
1127    
1128            * Extensions/svgexport/__init__.py: bumped version to 0.9.2.
1129            
1130    2004-12-11  Bernhard Reiter <[email protected]>
1131    
1132            Made sure that newlines are inserted in the svg path d attributes
1133            to raise the chance that the line length will be below 255 characters,
1134            as recommended by REC SVG 1.1 in section 8.3.1.
1135    
1136            * Extensions/svgexport/svgmapwriter.py(DrawPolygon):
1137            Adding \n before L's and changed whitespace handling.
1138    
1139            * Extensions/svgexport/test/test_svgmapwriter.py:
1140            Adapted tests to new whitespace handling of DrawPolygon.
1141    
1142    2004-12-11  Bernhard Reiter <[email protected]>
1143    
1144            * Doc/technotes/coding_guidelines.txt: easy typo fixed.
1145    
1146            * Extensions/svgexport/test/test_svgmapwriter.py:
1147            Removed test_drawbezier in favour of new test_drawspline3 and
1148            test_drawspline4 within new class TestDrawSplines(TestVirtualDC).
1149            All only to test DrawSpline.
1150    
1151            * Extensions/svgexport/svgmapwriter.py(DrawSpline):
1152            New implementation now really using the strange algorithm of
1153            xfig 3.1's approximated splines and its conversion to postscript
1154            with one twist: SVG can do quadratic beziers, so skipped translation
1155            to cubic beziers.
1156            (TestWithDC): Typo in comment fixed.
1157    
1158    2004-12-09  Martin Schulze  <[email protected]>
1159    
1160            * Thuban/Model/classgen.py: Added missing character encoding
1161    
1162            * Extensions/wms/properties.py (OpenWMSProperties): removed
1163    
1164            * Extensions/wms/parser.py (WMSCapabilitiesParser.error): Dropped
1165            support for get_srs_discrepancies() since there are no
1166            discrepancies anymore (was a thinko)
1167    
1168            * Extensions/wms/layer.py (WMSLayer.GetMapImg): Improved graphic
1169            format priority now that more formats are supported globally by
1170            the render engine.
1171    
1172    2004-12-08  Silke Reimer <[email protected]>
1173            * Extensions/ogr/ogrshapes.py: Substituted ogr-method CloseRings
1174            because it is not available in all versions of ogr
1175    
1176    2004-12-08  Bernhard Reiter <[email protected]>
1177            * Extensions/ogr/__init__.py: Added empty __init__.py to heal
1178            global tests until a real one is commited.
1179    
1180    2004-12-07 Nina H�ffmeyer <[email protected]>
1181    
1182            * /Extensions/ogr/: Adding a new extension to read shapefiles with
1183            ogr. It is planned to add other vector formats.
1184    
1185            * /test/runtests.py: Adding tests from /Extensions/ogr/test/.
1186    
1187    2004-12-07  Jan-Oliver Wagner <[email protected]>
1188    
1189            * /Extensions/svgexport/test/test_svgmapwriter.py: Reverting
1190            part of a (non-)fix to renable that the tests are always
1191            executed.
1192    
1193    2004-12-07  Bernhard Reiter <[email protected]>
1194    
1195            * Extensions/svgexport/test/test_svgmapwriter.py:
1196            Added test_drawbezier() to test DrawSpline().
1197    
1198            * Extensions/svgexport/svgmapwriter.py(DrawSpline):
1199            Really implemented bezier drawing.
1200    
1201            * Extensions/svgexport/__init__.py: Bumped version of svgexport
1202            to 0.9.1 because now the legend examples lines styles
1203            will be drawing with beziers.
1204    
1205    2004-12-05  Martin Schulze  <[email protected]>
1206    
1207            * Thuban/UI/renderer.py (raster_format_map): Added PNG, TIFF and
1208            GIF as supported bitmap image formats (helpful for the WMS extension)
1209    
1210    2004-11-30  Martin Schulze  <[email protected]>
1211    
1212            * Extensions/wms/test/test_ogclib.py (TestOGCLib.test_compareURLs):
1213            Improved the test for the internal compare method
1214    
1215    2004-11-27  Jan-Oliver Wagner <[email protected]>
1216    
1217            * Thuban/UI/about.py (About.__init__): Added
1218            Norbert Solymosi for hungarian translation and Ole Rahn
1219            as contrbutor. Moved Bernhard Reiter from Contributor
1220            to Developer.
1221    
1222    2004-11-27  Bernhard Reiter <[email protected]>
1223    
1224            * Extensions/svgexport/test/test_svgmapwriter.py:
1225            Removed Jan from author list as he did not change enough significant
1226            lines yet.
1227    
1228            * Extensions/svgexport/__init__.py: Added Bernhard as author
1229            of the Extension.
1230    
1231    2004-11-27  Jan-Oliver Wagner <[email protected]>
1232    
1233            * po/hu.po: New. Hungarian translation. Contributed
1234            by Norbert Solymosi.
1235    
1236    2004-11-26  Bernhard Herzog  <[email protected]>
1237    
1238            * Extensions/svgexport/test/test_svgmapwriter.py
1239            (Testobjectexport.test_transparent_polygon): Commented out some
1240            debug prints
1241    
1242    2004-11-24  Jan-Oliver Wagner <[email protected]>
1243    
1244            Fix broken tests for svg extension and added svg legend
1245            to Experimental menu.
1246    
1247            * Extensions/svgexport/test/test_svgmapwriter.py: Fix to have
1248            the test run correctly even if the extension is a package.
1249            Also removed the "import Thuban" which makes no sense.
1250    
1251            * Extensions/svgexport/__init__.py: Fix to have the extensions'
1252            test module also be executed from the global test routine.
1253            This is done by looking for the absense of the DISPLAY variable.
1254    
1255            * Extensions/svgexport/maplegend.py: Moved the menu entry from Extensions
1256            to Experimental menu since this module has yet not reached a stable
1257            status (ie. 1.0).
1258    
1259    2004-11-22  Bernhard Reiter <[email protected]>
1260    
1261            * Extensions/svgexport/svgmapwriter.py:
1262            Added verbose variable and some logging depending on it.
1263            (class VirtualDC(XMLWriter)): Minor improvement in the polygon loop,
1264            because counting i is not necessary.
1265            (class Pen, class Brush): Added simple __str__ methods.
1266            (SVGRenderer.draw_polygone_shape): Fix #2698 (transparent polygons are
1267            not exported to svg file) Note: holes still unhandled.
1268    
1269            * Extensions/svgexport/test/test_svgmapwriter.py:
1270                    Made a baseclass TestWithDC for test needed a DC.
1271                    Added tests for bug #2698 (transparent polygons are not
1272                    exported to svg file):
1273                    Testobjectexport.test_transparent_polygon()
1274    
1275            * Thuban/Model/base.py (UnsetModified):
1276            Fixed some typos in docstring.
1277    
1278            * Thuban/UI/baserenderer.py (BaseRenderer.draw_polygon_shape()):
1279            Added hints on the used algorithm for handling holes.
1280    
1281    2004-11-20  Jan-Oliver Wagner <[email protected]>
1282    
1283            Some face lifting for the examples.
1284    
1285            * Examples/__init__.py: Make this directory a package.
1286    
1287            * Examples/simple_extensions/__init__.py: Make this directory a package.
1288    
1289            * Examples/simple_extensions/hello_world.py: Moved entry from Extensions
1290            menu to Examples menu.
1291    
1292            * Examples/simple_extensions/simple_command.py: Some more comments,
1293            minor changes.
1294    
1295            * Examples/simple_extensions/simple_tool.py: Minor changes.
1296    
1297    2004-11-20  Jan-Oliver Wagner <[email protected]>
1298    
1299            Changed way of extension registry for wms and added extension
1300            registry for umn_mapserver extension.
1301    
1302            * Extensions/wms/__init__.py: Added registry entry and the importing
1303            of the actual wms module. Included a test for the required PyOGCLib.
1304    
1305            * Extensions/wms/wms.py: Removed registry entry (moved to __init__.py).
1306    
1307            * Extensions/umn_mapserver/__init__.py: Added registry entry and the
1308            importing of the actual umn mapserver management modules.
1309            Included a test for the required Python MapScript.
1310    
1311    2004-11-20  Jan-Oliver Wagner <[email protected]>
1312    
1313            Changed way of extension registry for importAPR, bboxdump
1314            and added extension registry for svgexport.extension registry for
1315            svgexport.
1316    
1317            * Extensions/importAPR/__init__.py: Added registry entry and the importing
1318            of the actual importAPR module.
1319    
1320            * Extensions/importAPR/importAPR.py: Removed registry entry (moved to
1321            __init__.py).
1322    
1323            * Extensions/bboxdump/__init__.py: Added registry entry and the importing
1324            ï¿½ï¿½ï¿½ï¿½of the actual bboxdump module.
1325    
1326            * Extensions/bboxdump/bboxdump.py: Removed registry entry (moved to
1327            ï¿½ï¿½ï¿½ï¿½__init__.py).
1328    
1329            * Extensions/svgexport/__init__.py: Added registry entry and the importing
1330            of the svgsaver module.
1331    
1332            * Extensions/svgexport/svgsaver.py: Moved the menu entry from Extensions
1333            to Experimental menu since this module has yet not reached a stable
1334            status (ie. 1.0).
1335    
1336    2004-11-18  Jan-Oliver Wagner <[email protected]>
1337    
1338            Now the hit test considers the size of point symbols.
1339    
1340            * Thuban/UI/viewport.py (ViewPort._hit_point): Added optional parameter
1341            'size' defaulting to the previously fixed value 5.
1342            Extended doc-string.
1343            (Viewport._find_shape_in_layer): Resolved FIXME regarding flexibility
1344            for symbols.
1345            Now the size of the largest point symbol is determined to find out
1346            about whether the point has been hit.
1347            This fixes the problem that only clicks inside a fixed distance of
1348            5 where found.
1349    
1350    2004-11-17  Jan-Oliver Wagner <[email protected]>
1351    
1352            Another open issue fixed regarding sizeable symbols: correct rendering of
1353            selected symbols.
1354    
1355            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
1356            Added consideration of the specific size of point symbols.
1357            The property for each point symbol is retrieved and the size applied
1358            for the rendering method.
1359            Added doc-string.
1360    
1361    2004-11-16  Jan-Oliver Wagner <[email protected]>
1362    
1363            Changed way of Extension Registry for gns2shp and profiling.
1364    
1365            * Extensions/gns2shp/gns2shp.py: Removed registry entry (moved to
1366            __init__.py).
1367    
1368            * Extensions/gns2shp/__init__.py: Added registry entry and the importing
1369            of the actual gns2shp module.
1370    
1371            * Extensions/profiling/profiling.py: Removed registry entry (moved to
1372            __init__.py).
1373    
1374            * Extensions/profiling/__init__.py: Added registry entry and the importing
1375            of the actual profiling module.
1376    
1377    2004-10-28  Bernhard Reiter <[email protected]>
1378    
1379            * Extensions/svgexport/: Minor improvements to doc strings.
1380    
1381    2004-10-07  Jan-Oliver Wagner <[email protected]>
1382    
1383            Further elements for sizable point objects now
1384            making this feature usable though not yet complete.
1385    
1386            * Thuban/Model/save.py (SessionSaver.write_classification): Write
1387            attribute 'size' for cldata when the shape layer is of point type.
1388            This also now make the test_load.py tests happy.
1389    
1390            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Added size
1391            gradient.
1392    
1393            * Thuban/UI/classifier.py (ID_SELPROP_SPINCTRL): Renamed to
1394            ID_SELPROP_SPINCTRL_LINEWIDTH.
1395            (ID_SELPROP_SPINCTRL_LINEWIDTH): New Id replaces ID_SELPROP_SPINCTRL.
1396            (ID_SELPROP_SPINCTRL_SIZE): New Id.
1397            (SelectPropertiesDialog.__init__): Added a second spin control
1398            for the size in case the corresponding layer is of point type.
1399            (SelectPropertiesDialog._OnSpin): Renamed to _OnSpinLineWidth.
1400            (SelectPropertiesDialog._OnSpinLineWidth): New. Former _OnSpin.
1401            (SelectPropertiesDialog._OnSpinSize): New. Set size of property
1402            and refresh preview.
1403    
1404    
1405    
1406    2004-10-04  Martin Schulze  <[email protected]>
1407    
1408            * Extensions/wms/test/test_parser.py
1409            (TestWMSCapabilitiesParser.test_compareLists): Added missing
1410            self-test for compareLists()
1411            (TestWMSCapabilitiesParser.test_compareDicts): Added missing
1412            self-test for compareDicts()
1413            (TestWMSCapabilitiesParser.test_compareLists): Adding more tests
1414            to verify the test routine fails with non-equal arguments
1415            (TestWMSCapabilitiesParser.test_compareDicts): Adding more tests
1416            to verify the test routine fails with non-equal arguments
1417    
1418    2004-10-03  Jan-Oliver Wagner <[email protected]>
1419    
1420            First elements for sizeable point objects.
1421    
1422            * Resources/XML/thuban-1.1.dtd: Added size attribute to cldata.
1423    
1424            * Data/iceland_sample_size.thuban: New. Sample for sized point objects.
1425    
1426            * test/test_load.py (ClassificationTest.TestLayers): Added SetSize in case
1427            of a corresponding argument is given.
1428            (TestSymbolSize): New. Test the size attribute of cldata.
1429    
1430            * Thuban/Model/classification.py: Removed some trailing whitespaces.
1431            (ClassGroupProperties.__init__): Set default size.
1432            (ClassGroupProperties.SetProperties): Set the size.
1433            (ClassGroupProperties.GetSize): New. Return the size.
1434            (ClassGroupProperties.SetSize): New. Set the size.
1435            (ClassGroupProperties__eq__): Compare also size.
1436            (ClassGroupProperties__repr__): Print also size.
1437    
1438            * Thuban/Model/load.py (SessionLoader.start_cldata): Also parse
1439            the size attribute.
1440    
1441            * Thuban/UI/classifier.py (ClassDataPreviewer.Draw): Added doc-string.
1442            Also, now there is a return value that indicates whether the drawing
1443            size exceeded the given rect extent and if so the new extent.
1444            Finally, point objects are drawn depending on the size. If either
1445            the width or height is exceeded, the new extent is returned.
1446            (ClassRenderer.Draw): Now when calling the previewer drawing function,
1447            evaluate the return value and, if not None, adapt the grid widget size
1448            accordingly and redraw again.
1449    
1450            * Thuban/UI/baserenderer.py (BaseRenderer.draw_shape_layer_incrementally):
1451            If the draw function is for points, call it with the size as additional
1452            parameter.
1453            (BaseRenderer.draw_point_shape): Added additional, optional parameter for
1454            the size. Compute the radius using the size.
1455    
1456            * Extensions/importAPR/apr.py (APR_BMkSym.GetThubanProp): Now
1457            that Thuban supports size, apply this correctly.
1458    
1459            * Extensions/importAPR/importAPR.py: Bumped version to 0.1.1.
1460    
1461    2004-10-03  Jan-Oliver Wagner <[email protected]>
1462    
1463            * Doc/manual/thuban-manual-de.xml: Started translation of
1464            Map chapter.
1465    
1466    2004-10-01  Martin Schulze  <[email protected]>
1467    
1468            * Extensions/wms/properties.py (wmsProperties.__init__): Extended
1469            argument for general use through properties-dialog selector
1470            
1471            * Thuban/UI/classifier.py: Register properties dialog classes for
1472            both provided layer classes/types.
1473    
1474            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): The
1475            map can be retrieved through the parent which is passed to the
1476            constructor anyway and doesn't require an argument of its own,
1477            required for the unification of arguments for general use through
1478            properties-dialog selector.
1479            (MainWindow.OpenOrRaiseDialog): Move the logic for checking
1480            whether a dialog is already opened (and raising it to the users
1481            attention) and creating a new dialog into a function of its own
1482            (MainWindow.OpenLayerProperties): Use the new OpenOrRaiseDialog()
1483            method
1484            (MainWindow.OpenLayerProperties): Utilise the new ClassMapper for
1485            global registration of properties dialog classes (which are indeed
1486            layer-specific).
1487    
1488            * Thuban/UI/classifier.py (Classifier.__init__): Unify arguments
1489            for general use through properties-dialog selector, the map can be
1490            retrieved through the parent and doesn't require an argument of
1491            its own.
1492    
1493            * Extensions/wms/wms.py: Register the properties dialog class for
1494            the provided WMS layer
1495    
1496    2004-09-28  Jan-Oliver Wagner <[email protected]>
1497    
1498            New feature: Registry for Extensions.
1499    
1500            * Thuban/UI/extensionregistry.py: This module defines a registry for
1501            Extensions.
1502    
1503            * Thuban/UI/about.py (About.__init__): Added description
1504            of the registered extensions with all of the information.
1505    
1506            * Thuban/Model/extension.py (Extension): Improved doc-string.
1507    
1508            * Extensions/gns2shp/gns2shp.py, Extensions/importAPR/importAPR.py,
1509            Extensions/bboxdump/bboxdump.py, Extensions/profiling/profiling.py,
1510            Extensions/wms/wms.py: Added registration of the extension.
1511    
1512    2004-09-27  Bernhard Reiter <[email protected]>
1513    
1514            More fixes to svgexport to make used ids unique and
1515            conforming to XML's Name production.
1516    
1517            * Extensions/svgexport/test/test_svgmapwriter.py: Added new tests
1518            test_xml_id_constraints(), test_make_ide_nosetbaseid() and
1519            test_make_id_nonintegersetid().  Switched SetID and SetBaseID.
1520            Added Bernhard R. as author.
1521            * Extensions/svgexport/svgmapwriter.py (make_id): Using "_" as
1522            concatenation char now (makes test_make_ide_nosetbaseid() valid).
1523            Also transform second id part with "%d" and catch the TypeError
1524            to raise SVGMapWriterError (making test_make_id_nonintegersetid() ok).
1525            Corrected typo inBernhard's author line.
1526            (SetBaseID): Return the transformed base id. Transform characters
1527            which are not alnum() or in ".-_" to binascii.b2a_hex(). Added
1528            import binascii. If to be set string starts with "xml" or so, add "t".
1529            (draw_shape_layer_incrementally): use the returned value of SetBaseID
1530            for used_baseids checks.
1531    
1532    2004-09-25  Bernhard Herzog  <[email protected]>
1533    
1534            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
1535            Remove a debug print and some tab characters.
1536    
1537    2004-09-25  Bernhard Reiter <[email protected]>
1538    
1539            * Extensions/svgexport/svgmapwriter.py: Added Bernhard R. as Author.
1540            (SetBaseID, SetID, make_id): Improved docstring comments to explain
1541            the interaction of the three functions and the XML id contrains.
1542    
1543    
1544    2004-09-23  Jan-Oliver Wagner <[email protected]>
1545    
1546            * Doc/ThubanModel.xmi: New. UML file for Thuban Model
1547            Module.
1548    
1549            * Doc/README: Added info on ThubanModel.xmi.
1550    
1551    2004-09-23  Jan-Oliver Wagner <[email protected]>
1552    
1553            * Doc/README: New. Some info about how to generate technical
1554            documentation from the source code.
1555            This text was send to the Thuban developer mailing list on
1556            September 21st 2004 by Bernhard Reiter.
1557    
1558    2004-09-21  Bernhard Reiter <[email protected]>
1559    
1560            Improved the svgexport to only use unique ids. Will issues
1561            an error message dialoge when two layer names are the same.
1562            ShapeIDs are now added with a dash within the svg ids.
1563    
1564            * Extensions/svgexport/svgmapwriter.py (SVGMapWriterError): New.
1565            * Extensions/svgexport/test/test_svgmapwriter.py: Added imports
1566            (TestSVGRenderer): New test class with test_make_in() and
1567            test_check_for_layer_name_clash()
1568            * Extensions/svgexport/svgmapwriter.py (SVGRenderer): Fixed __init__()
1569            and draw_shape_layer_incrementally() to not use a baseid twice,
1570            satisfying test_check_for_layer_name_clash()
1571            (VirtualDC.make_id): Use a dash between baseit and id, satisfies
1572            test_make_in().
1573            * Extensions/svexport/svgsaver.py: Import SVGMapWriterError, wxOK
1574            and wxICON_HAND.
1575            (write_to_svg): Put dc and rendering in a try statement and on
1576            catching SVGmapWriterError notify the user and delete the target file.
1577    
1578  2004-09-20  Bernhard Reiter <[email protected]>  2004-09-20  Bernhard Reiter <[email protected]>
1579    
1580          * Model/base.by, Model/layer.py: Fixed typos in docstrings.          * Model/base.by, Model/layer.py: Fixed typos in docstrings.

Legend:
Removed from v.2343  
changed lines
  Added in v.2623

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26