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

Legend:
Removed from v.2333  
changed lines
  Added in v.2719

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26