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

Legend:
Removed from v.2435  
changed lines
  Added in v.2571

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26