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

Legend:
Removed from v.2300  
changed lines
  Added in v.2565

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26