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

Legend:
Removed from v.2422  
changed lines
  Added in v.2598

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26