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

Legend:
Removed from v.2370  
changed lines
  Added in v.2730

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26