/[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 2380 by jan, Sun Oct 3 22:04:32 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]>  2004-10-03  Jan-Oliver Wagner <[email protected]>
1086    
1087          First elements for sizeable point objects.          First elements for sizeable point objects.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26