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

Legend:
Removed from v.2338  
changed lines
  Added in v.2708

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26