/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26