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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26