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

Legend:
Removed from v.2250  
changed lines
  Added in v.2726

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26