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

Legend:
Removed from v.2403  
changed lines
  Added in v.2677

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26