/[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 1977 by bh, Tue Nov 25 14:26:26 2003 UTC revision 2407 by jan, Sat Nov 20 21:28:06 2004 UTC
# Line 1  Line 1 
1    2004-11-20  Jan-Oliver Wagner <[email protected]>
2    
3            Changed way of extension registry for wms and added extension
4            registry for umn_mapserver extension.
5    
6            * Extensions/wms/__init__.py: Added registry entry and the importing
7            of the actual wms module. Included a test for the required PyOGCLib.
8    
9            * Extensions/wms/wms.py: Removed registry entry (moved to __init__.py).
10    
11            * Extensions/umn_mapserver/__init__.py: Added registry entry and the
12            importing of the actual umn mapserver management modules.
13            Included a test for the required Python MapScript.
14    
15    2004-11-20  Jan-Oliver Wagner <[email protected]>
16    
17            Changed way of extension registry for importAPR, bboxdump
18            and added extension registry for svgexport.extension registry for
19            svgexport.
20    
21            * Extensions/importAPR/__init__.py: Added registry entry and the importing
22            of the actual importAPR module.
23    
24            * Extensions/importAPR/importAPR.py: Removed registry entry (moved to
25            __init__.py).
26    
27            * Extensions/bboxdump/__init__.py: Added registry entry and the importing
28            ����of the actual bboxdump module.
29    
30            * Extensions/bboxdump/bboxdump.py: Removed registry entry (moved to
31            ����__init__.py).
32    
33            * Extensions/svgexport/__init__.py: Added registry entry and the importing
34            of the svgsaver module.
35    
36            * Extensions/svgexport/svgsaver.py: Moved the menu entry from Extensions
37            to Experimental menu since this module has yet not reached a stable
38            status (ie. 1.0).
39    
40    2004-11-18  Jan-Oliver Wagner <[email protected]>
41    
42            Now the hit test considers the size of point symbols.
43    
44            * Thuban/UI/viewport.py (ViewPort._hit_point): Added optional parameter
45            'size' defaulting to the previously fixed value 5.
46            Extended doc-string.
47            (Viewport._find_shape_in_layer): Resolved FIXME regarding flexibility
48            for symbols.
49            Now the size of the largest point symbol is determined to find out
50            about whether the point has been hit.
51            This fixes the problem that only clicks inside a fixed distance of
52            5 where found.
53    
54    2004-11-17  Jan-Oliver Wagner <[email protected]>
55    
56            Another open issue fixed regarding sizeable symbols: correct rendering of
57            selected symbols.
58    
59            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
60            Added consideration of the specific size of point symbols.
61            The property for each point symbol is retrieved and the size applied
62            for the rendering method.
63            Added doc-string.
64    
65    2004-11-16  Jan-Oliver Wagner <[email protected]>
66    
67            Changed way of Extension Registry for gns2shp and profiling.
68    
69            * Extensions/gns2shp/gns2shp.py: Removed registry entry (moved to
70            __init__.py).
71    
72            * Extensions/gns2shp/__init__.py: Added registry entry and the importing
73            of the actual gns2shp module.
74    
75            * Extensions/profiling/profiling.py: Removed registry entry (moved to
76            __init__.py).
77    
78            * Extensions/profiling/__init__.py: Added registry entry and the importing
79            of the actual profiling module.
80    
81    2004-10-28  Bernhard Reiter <[email protected]>
82    
83            * Extensions/svgexport/: Minor improvements to doc strings.
84    
85    2004-10-07  Jan-Oliver Wagner <[email protected]>
86    
87            Further elements for sizable point objects now
88            making this feature usable though not yet complete.
89    
90            * Thuban/Model/save.py (SessionSaver.write_classification): Write
91            attribute 'size' for cldata when the shape layer is of point type.
92            This also now make the test_load.py tests happy.
93    
94            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Added size
95            gradient.
96    
97            * Thuban/UI/classifier.py (ID_SELPROP_SPINCTRL): Renamed to
98            ID_SELPROP_SPINCTRL_LINEWIDTH.
99            (ID_SELPROP_SPINCTRL_LINEWIDTH): New Id replaces ID_SELPROP_SPINCTRL.
100            (ID_SELPROP_SPINCTRL_SIZE): New Id.
101            (SelectPropertiesDialog.__init__): Added a second spin control
102            for the size in case the corresponding layer is of point type.
103            (SelectPropertiesDialog._OnSpin): Renamed to _OnSpinLineWidth.
104            (SelectPropertiesDialog._OnSpinLineWidth): New. Former _OnSpin.
105            (SelectPropertiesDialog._OnSpinSize): New. Set size of property
106            and refresh preview.
107    
108    
109    
110    2004-10-04  Martin Schulze  <[email protected]>
111    
112            * Extensions/wms/test/test_parser.py
113            (TestWMSCapabilitiesParser.test_compareLists): Added missing
114            self-test for compareLists()
115            (TestWMSCapabilitiesParser.test_compareDicts): Added missing
116            self-test for compareDicts()
117            (TestWMSCapabilitiesParser.test_compareLists): Adding more tests
118            to verify the test routine fails with non-equal arguments
119            (TestWMSCapabilitiesParser.test_compareDicts): Adding more tests
120            to verify the test routine fails with non-equal arguments
121    
122    2004-10-03  Jan-Oliver Wagner <[email protected]>
123    
124            First elements for sizeable point objects.
125    
126            * Resources/XML/thuban-1.1.dtd: Added size attribute to cldata.
127    
128            * Data/iceland_sample_size.thuban: New. Sample for sized point objects.
129    
130            * test/test_load.py (ClassificationTest.TestLayers): Added SetSize in case
131            of a corresponding argument is given.
132            (TestSymbolSize): New. Test the size attribute of cldata.
133    
134            * Thuban/Model/classification.py: Removed some trailing whitespaces.
135            (ClassGroupProperties.__init__): Set default size.
136            (ClassGroupProperties.SetProperties): Set the size.
137            (ClassGroupProperties.GetSize): New. Return the size.
138            (ClassGroupProperties.SetSize): New. Set the size.
139            (ClassGroupProperties__eq__): Compare also size.
140            (ClassGroupProperties__repr__): Print also size.
141    
142            * Thuban/Model/load.py (SessionLoader.start_cldata): Also parse
143            the size attribute.
144    
145            * Thuban/UI/classifier.py (ClassDataPreviewer.Draw): Added doc-string.
146            Also, now there is a return value that indicates whether the drawing
147            size exceeded the given rect extent and if so the new extent.
148            Finally, point objects are drawn depending on the size. If either
149            the width or height is exceeded, the new extent is returned.
150            (ClassRenderer.Draw): Now when calling the previewer drawing function,
151            evaluate the return value and, if not None, adapt the grid widget size
152            accordingly and redraw again.
153    
154            * Thuban/UI/baserenderer.py (BaseRenderer.draw_shape_layer_incrementally):
155            If the draw function is for points, call it with the size as additional
156            parameter.
157            (BaseRenderer.draw_point_shape): Added additional, optional parameter for
158            the size. Compute the radius using the size.
159    
160            * Extensions/importAPR/apr.py (APR_BMkSym.GetThubanProp): Now
161            that Thuban supports size, apply this correctly.
162    
163            * Extensions/importAPR/importAPR.py: Bumped version to 0.1.1.
164    
165    2004-10-03  Jan-Oliver Wagner <[email protected]>
166    
167            * Doc/manual/thuban-manual-de.xml: Started translation of
168            Map chapter.
169    
170    2004-10-01  Martin Schulze  <[email protected]>
171    
172            * Extensions/wms/properties.py (wmsProperties.__init__): Extended
173            argument for general use through properties-dialog selector
174            
175            * Thuban/UI/classifier.py: Register properties dialog classes for
176            both provided layer classes/types.
177    
178            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): The
179            map can be retrieved through the parent which is passed to the
180            constructor anyway and doesn't require an argument of its own,
181            required for the unification of arguments for general use through
182            properties-dialog selector.
183            (MainWindow.OpenOrRaiseDialog): Move the logic for checking
184            whether a dialog is already opened (and raising it to the users
185            attention) and creating a new dialog into a function of its own
186            (MainWindow.OpenLayerProperties): Use the new OpenOrRaiseDialog()
187            method
188            (MainWindow.OpenLayerProperties): Utilise the new ClassMapper for
189            global registration of properties dialog classes (which are indeed
190            layer-specific).
191    
192            * Thuban/UI/classifier.py (Classifier.__init__): Unify arguments
193            for general use through properties-dialog selector, the map can be
194            retrieved through the parent and doesn't require an argument of
195            its own.
196    
197            * Extensions/wms/wms.py: Register the properties dialog class for
198            the provided WMS layer
199    
200    2004-09-28  Jan-Oliver Wagner <[email protected]>
201    
202            New feature: Registry for Extensions.
203    
204            * Thuban/UI/extensionregistry.py: This module defines a registry for
205            Extensions.
206    
207            * Thuban/UI/about.py (About.__init__): Added description
208            of the registered extensions with all of the information.
209    
210            * Thuban/Model/extension.py (Extension): Improved doc-string.
211    
212            * Extensions/gns2shp/gns2shp.py, Extensions/importAPR/importAPR.py,
213            Extensions/bboxdump/bboxdump.py, Extensions/profiling/profiling.py,
214            Extensions/wms/wms.py: Added registration of the extension.
215    
216    2004-09-27  Bernhard Reiter <[email protected]>
217    
218            More fixes to svgexport to make used ids unique and
219            conforming to XML's Name production.
220    
221            * Extensions/svgexport/test/test_svgmapwriter.py: Added new tests
222            test_xml_id_constraints(), test_make_ide_nosetbaseid() and
223            test_make_id_nonintegersetid().  Switched SetID and SetBaseID.
224            Added Bernhard R. as author.
225            * Extensions/svgexport/svgmapwriter.py (make_id): Using "_" as
226            concatenation char now (makes test_make_ide_nosetbaseid() valid).
227            Also transform second id part with "%d" and catch the TypeError
228            to raise SVGMapWriterError (making test_make_id_nonintegersetid() ok).
229            Corrected typo inBernhard's author line.
230            (SetBaseID): Return the transformed base id. Transform characters
231            which are not alnum() or in ".-_" to binascii.b2a_hex(). Added
232            import binascii. If to be set string starts with "xml" or so, add "t".
233            (draw_shape_layer_incrementally): use the returned value of SetBaseID
234            for used_baseids checks.
235    
236    2004-09-25  Bernhard Herzog  <[email protected]>
237    
238            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
239            Remove a debug print and some tab characters.
240    
241    2004-09-25  Bernhard Reiter <[email protected]>
242    
243            * Extensions/svgexport/svgmapwriter.py: Added Bernhard R. as Author.
244            (SetBaseID, SetID, make_id): Improved docstring comments to explain
245            the interaction of the three functions and the XML id contrains.
246    
247    
248    2004-09-23  Jan-Oliver Wagner <[email protected]>
249    
250            * Doc/ThubanModel.xmi: New. UML file for Thuban Model
251            Module.
252    
253            * Doc/README: Added info on ThubanModel.xmi.
254    
255    2004-09-23  Jan-Oliver Wagner <[email protected]>
256    
257            * Doc/README: New. Some info about how to generate technical
258            documentation from the source code.
259            This text was send to the Thuban developer mailing list on
260            September 21st 2004 by Bernhard Reiter.
261    
262    2004-09-21  Bernhard Reiter <[email protected]>
263    
264            Improved the svgexport to only use unique ids. Will issues
265            an error message dialoge when two layer names are the same.
266            ShapeIDs are now added with a dash within the svg ids.
267    
268            * Extensions/svgexport/svgmapwriter.py (SVGMapWriterError): New.
269            * Extensions/svgexport/test/test_svgmapwriter.py: Added imports
270            (TestSVGRenderer): New test class with test_make_in() and
271            test_check_for_layer_name_clash()
272            * Extensions/svgexport/svgmapwriter.py (SVGRenderer): Fixed __init__()
273            and draw_shape_layer_incrementally() to not use a baseid twice,
274            satisfying test_check_for_layer_name_clash()
275            (VirtualDC.make_id): Use a dash between baseit and id, satisfies
276            test_make_in().
277            * Extensions/svexport/svgsaver.py: Import SVGMapWriterError, wxOK
278            and wxICON_HAND.
279            (write_to_svg): Put dc and rendering in a try statement and on
280            catching SVGmapWriterError notify the user and delete the target file.
281    
282    2004-09-20  Bernhard Reiter <[email protected]>
283    
284            * Model/base.by, Model/layer.py: Fixed typos in docstrings.
285    
286    2004-09-03  Jan Sch�ngel  <[email protected]>
287    
288            * Extensions/umn_mapserver/mapfile(MF_Class.add_thubanstyle): Fix a
289            small bug with the line color. Now the line color will now only set
290            if it is set in Thuban an not Transparent.
291            
292            * Extensions/umn_mapserver/mf_export(tblayer_to_map): Fixed a bug with
293            deleting the layers from mapfile. Now all layers will delete backwards
294            from the last.
295    
296    2004-08-20  Silke Reimer <[email protected]>
297    
298            * Thuban/Model/layer.py:
299            Fixes bug in projection handling: Otherwise very large region might not
300            have valid values in the layer's projection.
301    
302    2004-08-20  Silke Reimer <[email protected]>
303    
304            * Thuban/UI/about.py:
305            small changes to be consistent with coding style.
306              
307    2004-08-13  Martin Schulze  <[email protected]>
308    
309            * Extensions/wms/test/test_ogclib.py (TestOGCLib.compare_URLs):
310            Adjusted a comment
311    
312    2004-08-11  Silke Reimer <[email protected]>
313    
314            * Thuban/UI/about.py: Small changes to encoding related stuff to avoid
315                    too many and too enhanced imports of locale
316    
317    2004-08-10  Silke Reimer <[email protected]>
318    
319            * Thuban/UI/about.py: Fixed encoding problem of about dialog: Added
320                    function unicodeToLocale() to convert special characters to users
321                    locale encoding
322    
323    2004-08-10  Jan-Oliver Wagner <[email protected]>
324    
325            * Doc/technotes/coding_guidelines.txt: Added rule 'Method names start with
326            lower case letter'
327    
328    2004-08-09  Jan Sch�ngel  <[email protected]>
329    
330            * ChangeLog: Rewrite the last ChangeLog entry to follow
331            the standard way.
332    
333            * Extensions/umn_mapserver/mapfile: Moved the import AnnotationLayer to
334            the function where it is needed, because it don't works if it stands
335            at the beginning.
336            (MF_Layer.__init__): Removed the extra numclassed variable. Now
337            numclasses from the mapscript will be used.
338            (MF_Layer.get_index): New. Return the index of the layer in mapfile.
339            (MF_Layer.set_classes): New. A Classlist will be set to the layer.
340            (MF_Layer.set_metadata): New. A Metadata mapscript object will set.
341            (MF_Layer.remove_allclasses): New. All class of the layer will remove.
342            (MF_Map.create_new_layer): New. A new Layer is created and associated
343            with the mapscript object.
344            (MF_Map.set_layerorder): New. The Layer order like in thuban is set in
345            the mapscript.
346            (MF_Map.add_thubanlayer): Now a new layerobj is created if no one is
347            linked to the layer in thuban, else the layerobject linked to the
348            thubanlayer will be used.
349            AnnotationLayer will now store the filename of the shapefile.
350            (MF_Map.remove_layer): If a layer is removed the associated object
351            must be set new.
352            
353            * Extensions/umn_mapserver/mf_export.py(tb_layer_to_map): Add all
354            layers which are exists in thuban to the mapobj. All removed Layers
355            will be removed from the mapobj.
356            Added comments to all functions.
357            (thuban_to_map): No layer will be removed here.
358            
359            * Extensions/umn_mapserver/mf_handle.py
360            (_has_umn_mapobj_and_selectedlayer): Activating the layer menu. Now
361            Layersettings for the mapserver kann be edited.
362    
363            * Extensions/umn_mapserver/mf_import.py: Now all layers which are
364            imported, will be linked with the associated MF_Layer.
365            (import_mapfile): All layers, which are not selected, will be removed.
366            Disable the "import layer from mapfile" menu option.
367    
368            * Extensions/umn_mapserver/sample/iceland.map: Set the status of the
369            Annotation Layer from DEFAULT to OFF. The DEFAULT setting turns the
370            layer on permanently.
371    
372    2004-08-03  Jan Sch�ngel  <[email protected]>
373    
374            * Extensions/umn_mapserver/mapfile.py(MF_Metadata.remove_allmetadata):
375            New. This function removes all metadata
376            (MF_Layer.set_group): New. Set the group setting.
377            (MF_Layer.get_group): New. Get the group setting.
378            (MF_Map): Removed the extra numlayers variable, used the mapscript
379            parameter instead.
380            (MF_Map.get_numlayers): New. This get numlayers.
381            (MF_Map.remove_all_layers): New. Removes all layers from the mapobj.
382            (MF_Map.add_thubanlayer): Replaced the exception handling by a check
383            if the object is an instance. Also added the annotation layer here to
384            export, but only the layer is created in the mapfile.
385    
386            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Removed
387            the check if a mapobj exist, because its not needed anymore. The
388            export function is only available if a mapobj exist.
389            Use the new function to remove all layers.
390            
391            * Extensions/umn_mapserver/mf_handle.py(Layer_Dialog): Added a group
392            option and the metadata button. The layer dialog is temporary disabled.
393            (Metadata_CustomDataTable): Added some functions to show the grid
394            correct.
395    
396            * Extensions/umn_mapserver/mf_import.py: Moved the code for showing
397            the number of layer from import_mapfile to this function.
398            (AnnotationLayer): New. This Class shows the Annotation layer in
399            thuban. The layer don't do anything. It's only to show the layer
400            and to save the layer order.
401            (add_annotationlayer): New. Import an annotation layer to thuban.
402            (select_layer2import): New. Import only layers to thuban and not
403            the other settings like projection or scalebar.
404            (create_new_mapfile): Moved the _has_umn_mapobj function and the
405            create_new_mapfile functions from mf_handle.py to mf_import.py.
406            
407            * Extensions/umn_mapserver/sample/iceland.map: Added the group
408            parameter to the roads and cultural layers. Also added a new
409            Annotation Layer for the cultural points.
410    
411            * Extensions/umn_mapserver/sample/iceland.html: Added the select
412            option for the annotation layer.
413    
414            * Extensions/umn_mapserver/sample/index.html: Added the start
415            parameter for the annotation layer.
416    
417    2004-08-01  Jan-Oliver Wagner <[email protected]>
418    
419            * Doc/manual/thuban-manual-de.xml (Chapter Session Management):
420            translation completed.
421    
422            * Doc/manual/thuban-manual.xml (Chapter Session Management):
423            Fixed unprecise description for Save Session.
424    
425    2004-07-31  Jan-Oliver Wagner <[email protected]>
426    
427            Started translation of Users Manual into german.
428    
429            * Doc/manual/thuban-manual-de.xml: New. German Users Manual.
430    
431            * Doc/manual/Makefile: Added build instructions for german
432            users manual.
433    
434            * Doc/manual/thuban-manual.xml: Minor corrections in Introduction.
435    
436    2004-07-28  Jan Sch�ngel  <[email protected]>
437    
438            * Extensions/umn_mapserver/mapfile.py(MF_Metadata): Changed all class
439            functions. Now all metadata will handle by the function and its not
440            needed to initialize it from outside. Therefor the associated mapobj
441            will be stored in the Metadata Object. So we can use the special
442            functions from the associated mapobj to get the Metadata.
443            Therefor all initialization code for the metadata is removed from the
444            other classes.
445            (MF_Layer): Added a function to get the metadata object.
446            (MF_Map): Added a function to set the mappath, the path where
447            the mapfile ist stored.
448    
449            * Extensions/umn_mapserver/mf_export.py(thuban_to_map): Changed the code
450            to set the extent in the mapfile. Now the code is set by the displayed
451            data in the Thuban-view.
452            (export_mapfile): The shapepath is now set empty, until relative
453            pathnames are supported.
454    
455            * Extension/umn_mapserver/mf_handle.py: Added a dialog to handle
456            metadata. Yet only mapfile metadata are supported. Layer and class
457            supported are not implemented.
458            Added a dialog to handle layer informations. The dialog only shows the
459            selected layer at the moment.
460    
461            * Extensions/umn_mapserver/mf_import.py(import_mapfile): Changed the
462            code for setting the extent in thuban. Now the extent is set to the
463            given extent from the mapfile.
464            Fixed a logical mistake. Now the extent is set when realy a layer is
465            loaded, and not if one is selected to load.
466    
467            * Extensions/umn_mapserver/sample/iceland.html: Added code to zoom and
468            move the shown map in the browser.
469    
470            * Extensions/umn_mapserver/sample/iceland.map: Added a new metadata
471            line to the mapobj and added metadata to the political layer.
472    
473            * Extensions/umn_mapserver/test/test_mapserver.py: Changed the test
474            for Metadata.
475    
476    2004-07-26  Martin Schulze  <[email protected]>
477    
478            * Thuban/Lib/classmapper.py (ClassMapper.has): Added the new
479            ClassMapper
480    
481            * test/test_classmapper.py (TestMapping.test_mapper): Added a Test
482            case for the new ClassMapper
483    
484    
485    2004-07-22  Bernhard Herzog  <[email protected]>
486    
487            * Thuban/UI/viewport.py (ViewPort.VisibleExtent): New.  Return the
488            visible extent of the map in projected coordinates
489    
490            * test/test_viewport.py (SimpleViewPortTest.test_default_size)
491            (SimpleViewPortTest.test_init_with_size): Add some VisibleExtent()
492            tests.
493            (SimpleViewPortTest.test_visible_extent): New. The real test for
494            VisibleExtent()
495    
496    2004-07-22  Bernhard Herzog  <[email protected]>
497    
498            * test/test_viewport.py: Use support.run_tests as the main
499            function when running asa script.
500    
501    2004-07-22  Jan Sch�ngel <[email protected]>
502    
503            * Extensions/umn_mapserver/mf_export.py: Added "import os"
504            Removed the old "import Thuban.UI.mainwindow" code.
505            (tbextent_to_map): Removed the extra function and at the code direct
506            to "thuban_to_map" function.
507            (write_creatorcomment): Added. Now a short comment is added to the
508            beginning of an generated mapfile.
509            (export_mapfile): Now the Path and filename are saved in to variables,
510            and not together in one variable. This is needed for the new
511            write_creatorcomment function.
512                    
513            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Added the
514            import module "re". Also added Range and the ClassGroupRange import
515            from Thuban. Both are needed for the new range expression import.
516            (create_rangeexpression): Added. Creates a Range Expression in Thuban
517            style from a given mapfile expression.
518            (added_rasterlayer): Make some small code changes. The shapepath is
519            now stored in an extra variable and the clazz_name is set empty if no
520            class name set in the mapfile.
521            Changed the Error message for Range Expressions, becaus the new
522            function create a error string which will be shown in the dialog.
523    
524            * Extensions/umn_mapserver/test/test_mapserver.py: Added a test for the
525            range expression import.
526    
527    2004-07-21  Jan-Oliver Wagner <[email protected]>
528    
529            * Extensions/umn_mapserver/README: Added hint that
530            installation as root can be avoided. Removed all tabs.
531    
532    2004-07-16  Bernhard Herzog  <[email protected]>
533    
534            * test/test_viewport.py
535            (ViewPortTest.test_changing_map_projection): Check that changing
536            the projection of an empty map shown in a viewport doesn't lead to
537            exceptions in the viewport's handler for the
538            MAP_PROJECTION_CHANGED messages
539    
540            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Only
541            try to keep the same region visible when the map actually contains
542            something
543    
544    2004-07-15  Jan Sch�ngel <[email protected]>
545    
546            * Extensions/umn_mapserver/mapfile.py: Added a function to get the
547            mappath directly from the mapobj. Is needed because of the changes
548            in mf_import.py.
549            (MF_Layer.add_thubanclass): Added a new comment.
550            (MF_Map.set_extent): Fixed a bug with exporting empty mapobj. If the
551            mapobj is empty there is no extent get from thuban an so no one can
552            set to th mapobj.
553            
554            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Updated
555            the discription.
556            Split the funktion in to three smaller ones. The new functions are
557            add_rasterlayer, add_polygonlayer and select_layer2import.
558            Removed the mapfilepath and filepath initialisation, because its know
559            include in the new functions.
560            Now nothing will be imported if cancel is pressed in the
561            layer choice dialog.
562    
563    2004-07-14  Jan Sch�ngel <[email protected]>
564    
565            * Extensions/umn_mapserver/mapfile.py: Added ClassGroupDefault to
566            import.
567            (MF_Symbolset): Removed the extra variable for numsymbols.
568            (MF_Class.__init__): Added a comment to the exception clause.
569            Removed the extent init, because it was not needed anymore.
570            (MF_Layer.add_thubanclass): Added the code to set the class name to
571            the expression value from thuban if no label is defined.
572            Added the code to export Range expressions from thuban to the mapfile.
573            (MF_Map.set_extent): Removed the exception and replace it by some if
574            code. If the size of a map is not defined the size will be set to 1,1.
575            This is necessary because if the extent is set, mapscript checks if
576            the size is greater than zero.
577            (MF_Web): Added the get and set function for the template.
578    
579            * Extensions/umn_mapserver/mf_export.py: Added the function to check
580            if a mapobject exists and used it to set the status of the menu items.
581            If no mapfile exists the settings could not be edditied.
582            Define after which menuitem the exportitem will include.
583            
584            * Extensions/umn_mapserver/mf_handle.py: Removed the import
585            Thuban.UI.mainwindow clause, because it is not needed.
586            Added the command Refresh() to all "OnChangeColor()" functions,
587            because the color preview window was not updated on a color change.
588            Added the function to check if a mapobject exists and used it to set the
589            status of the menu items. If no mapobject exists the settings could not
590            be edditied.
591            (Map_Dialog): Moved the imagetype selector from the
592            Outputformat_Dialog to Map_Dialog and removed Outputformat_Dialog.
593            (Web_Dialog): Removed the name label and added the template textbox.
594    
595            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Replace
596            the exception handling on loading the layers by an if statement. It
597            is not necessary to us the exception there.
598            The Filepath creation now use os.path.join to build the path.
599    
600            * Extensions/umn_mapserver/test/test_mapserver.py: Moved the testMap
601            definition from global to the setUp function. Now the testMap will
602            initialize new on each test.
603    
604            * Extensions/umn_mapserver/sample/iceland.map: Include three new
605            classes in the Line Layer, to test logical Expressions.
606            Set the status of the class "Point9" in the Point Layer to off
607            
608    2004-07-13  Bernhard Herzog  <[email protected]>
609    
610            * Thuban/UI/baserenderer.py
611            (BaseRenderer.render_map_incrementally): Fix a logic bug in the
612            optimization that tries not to draw layers under a raster layer.
613            The bug was harmless.  All it effectively did was to produce The a
614            strange messages about not being able to draw Layer instances for
615            all vector layers below a raster layer which would be invisible
616            anyway because the raster layer currently always covers the entire
617            window
618    
619    2004-07-08  Jan Sch�ngel <[email protected]>
620    
621            * Extensions/umn_mapserver/mapfile.py: Added code to generade and get
622            a list of supported outputformats. This formats are not alle supported
623            because there is no possibility to get the outputformat without the
624            name known. Make some formal changes to the code.
625            (MF_Map.set_name()): Fixed a bug if the name is None.
626    
627            * Extensions/umn_mapserver/mf_handle.py: Removed the image_type import
628            statement, because its not needed anymore. The Outputformat is now
629            given as string from the object. Make some formal changes to the code.
630    
631            * Extensions/umn_mapserver/test/test_mapserver.py: Added new test for
632            most of the new setting which were added during the last changes.
633            Removed the MF_Size Test.
634            
635            * Extensions/umn_mapserver/test/test.map: Added a new class to the
636            cultural Layer to test expressions and the the status of that layer
637            from on to default.
638            Changed the data path the the correct Thuban Data
639            Added the Outputformat Object and Symbol Object
640            
641    2004-07-07  Jan Sch�ngel <[email protected]>
642    
643            * Extensions/umn_mapserver/mapfile.py: Added some new
644            settings to edit (outputformat, label, imagetype)
645    
646            * Extensions/umn_mapserver/mf_handle.py: Added some setting to
647            the Label Dialog and add the OutputDialog.
648            Make some changes to the code order.
649    
650    2004-07-06  Jan Sch�ngel <[email protected]>
651    
652            * Extensions/umn_mapserver/mapfile.py: Added the symbolObj, pointObj
653            and line Obj and add the scalebar_status_type, scalebar_style_type and
654            scalebar_position_type.
655            Added the symbol- and symbolsetObject (MF_Symbol,MF_Symbolset). The
656            are only used to create a Symbol like the circle in Thuban.
657            Added the scalebarObject (MF_Scalebar)
658            (MF_Class): Added set_status and get_status.
659            (MF_Layer.add_thubanclass): Added code to set the class status
660            (MF_Map): Added code to handle the symbols and scalebar
661            (MF_Label): Added the set_partials and get_partials functions
662            
663            * Extensions/umn_mapserver/mf_export.py: Added MF_Symbol to import
664            from mapfile. Added a function to create a circle object like the one
665            from thuban if no one exists.
666            
667            * Extensions/umn_mapserver/mf_handle.py: All colors are now set when
668            press ok in the assosiated dialog and not at the end of the
669            colordialog.
670            Added the Dialog for the Scalebar.
671            (Label_Dialog): Added the offset option
672    
673            * Extensions/umn_mapserver/mf_import.py: Added code to import the
674            status of the Classes.
675            Fixed a bug with the projection. Now the to_meter parameter will be
676            added to the Projection only if it doesn't exists.
677    
678    2004-07-01  Jan Sch�ngel <[email protected]>
679    
680            Added the functionality to handle the content thuban is not
681            able to handle directly.
682    
683            * Extensions/umn_mapserver/mf_handle.py: New. This module extents
684            Thuban with the possibility to edit the mapfile content.        
685            
686            * Extensions/umn_mapserver/mf_import.py: Added the possibility
687            to import mapfiles without any layer selected. So it is possible
688            to edit the other settings in a mapfile.
689            (import_mapfile): Added code to use the editing functions.
690            Added the possibility to import the projection to a layer if one
691            is defined.
692            Status settings (On,Off) will now set in thuban (visible, invisible).
693            fixed a bug with with classnames. If no classname is set in mapfile
694            the value in Thuban will set to the expression.
695            
696            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Added the
697            possibility to save a new mapfile or use the old one which is
698            imported or new created.
699            Added code to use the editing functions.
700            Remove some not needed import statements
701    
702            * Extensions/umn_mapserver/mapfile.py: Added new types which are
703            need for the editing functions.
704            Added needed set-functions for the editing functions.
705            Added the possibility to export rasterimages.
706            Added new classes (MF_Web, MF_Label, MF_Legend, MF_Symbol,
707            MF_SymbolSet). MF_Symbol and MF_SymbolSet are not needed at the
708            moment.
709            (MF_Class.set_thubanstyle): Now point layers will set to a default
710            symbol to show a circle in mapserver and not only a 1px dot.
711            (MF_Style.__init__): Fixed a bug with the color. Color was not set
712            correct before.
713            (MF_Size): Removed, because it is not needed.
714            
715            * Extensions/umn_mapserver/README: Added the hints to use the
716            export and editing functions, too.
717    
718            * Extensions/umn_mapserver/sample/iceland.map: Added the
719            new parameter "UNITS METERS".
720            Change the political layer to status OFF.
721    
722            * Extensions/umn_mapserver/sample/README: Added some
723            more details to setup the sample in the MapServer.
724            
725    2004-06-26  Bernhard Reiter <[email protected]>
726    
727            * Extensions/svgexport/test/test_svgmapwriter.py:
728            Removed class VFile and used standard StringIO instead.
729    
730    2004-06-23  Jan Sch�ngel  <[email protected]>
731    
732            Add the export function to the umn_mapserver extension.
733    
734            * Extension/umn_mapserver/mf_export.py: New. This module extents
735            Thuban with the possibility to export the Thuban content.
736    
737            * Extensions/umn_mapserver/mapfile.py: Expand the classes to use
738            with the export module. Especially added the possibility to
739            add thuban objects directly to the map objects.
740    
741            * Extensions/umn_mapserver/mf_import.py: Removed the wxCHANGE_DIR,
742            because of the hint from Bernhard Herzog.
743            Corrected the handling of absolute pathnames.
744            Changed the Text of the Menu-Item, now the beginning is upper case.
745    
746            * Extensions/umn_mapserver/README: Added the --with-tiff statement.
747    
748    2004-06-16  Jan Sch�ngel  <[email protected]>
749    
750            Add a sample and make some changes.
751    
752            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
753            import from * to explicit used statements. Changed the
754            Thuban.UI.mainwindow import phrase, too.
755            (import_mapfile):Corrected a clerical mistake.
756            Added wxCHANGE_DIR in OpenFile Dialog.
757            Added a MultipleChoiceDialog, to select the layers to load from
758            mapfile into thuban. Thereby the projection is only set if one layer
759            is selected.
760            Added the possibility to handle relative pathnames which uses
761            up-level references.
762            Removed some doubled code.
763            Corrected an error with integer values used as label in thuban
764            ClassGroup.
765            
766            * Extensions/umn_mapserver/sample: New.
767    
768            * Extensions/umn_mapserver/sample/README: New. Describes the
769            usage of the sample files.
770    
771            * Extensions/umn_mapserver/sample/iceland.map: New. This is
772            a suitable .map-file for the iceland data.
773    
774            * Extensions/umn_mapserver/sample/index.html: New. The template
775            for the mapfile.  
776    
777            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
778            file for the Iceland Application on web.
779    
780            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
781            some details.
782    
783            * Extensions/umn_mapserver/test/test_mapserver
784            (mapserver_import_Test_generalClasses.test_MF_Color):
785            Corrected the thubancolor test.
786    
787    2004-06-15  Jan Sch�ngel  <[email protected]>
788    
789            * Extensions/umn_mapserver/README: New. Install instruction.
790    
791    2004-06-14  Bernhard Reiter <[email protected]>
792    
793            * libraries/thuban/cpl_mfile.h: Added copyright header.
794    
795            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
796            Free Software License so that it is most useful with gdalwarp
797            and bmpdataset.
798    
799    2004-06-14  Bernhard Herzog  <[email protected]>
800    
801            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
802            import of wxPython.wx itself (as opposed to the contents of
803            wxPython.wx).  For some reason wxPython.wx is available as
804            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
805            wrt. wxPython 2.4.
806    
807    2004-06-10  Jan Sch�ngel  <[email protected]>
808    
809            Initial version of new extension "umn_mapserver".  This extension aims
810            to manage configuration for the UMN MapServer application.  This
811            inital version just imports the .map-files and displays all, Thuban is
812            capable of.
813    
814            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
815    
816            * Extensions/umn_mapserver/test/README: New. Describes how to run the
817            tests.
818    
819            * Extensions/umn_mapserver/test/test.map: New. This is a test
820            .map-file for automated tests of the umn_mapserver extension of
821            Thuban.
822    
823            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
824            UMN Mapserver classes.
825    
826            * Extensions/umn_mapserver/__init__.py: New. Init to make this
827            directory a package.
828    
829            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
830            '.map'-file objects.
831    
832            * Extensions/umn_mapserver/mf_import.py: New. This module extends
833            Thuban with the possibility to handle UMN MapServer mapfiles.
834    
835    2004-06-03  Bernhard Herzog  <[email protected]>
836    
837            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
838            to a tuple before using it as arguments to the % operator.  This
839            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
840            reported today on thuban-list by Jan Sch�ngel
841    
842            * test/test_layer.py (TestLayerModification.setUp): Save the
843            filename as an instance variable so we can refer to it in tests
844            (TestLayerModification.test_tree_info): Uncomment this method
845            again and make it work.  This tests for the formatting issue
846            filed in RT#2239 on 2004-01-13
847    
848    2004-05-28  Bernhard Herzog  <[email protected]>
849    
850            * Thuban/UI/baserenderer.py: Fix some typos.
851    
852    2004-05-18  Jan-Oliver Wagner <[email protected]>
853    
854            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
855            by increasing a field size.
856    
857    2004-05-17  Bernhard Herzog  <[email protected]>
858    
859            Update to newest shapelib and get rid of Thuban specific
860            extensions, i.e. use the new DBFUpdateHeader instead of our
861            DBFCommit kludge
862    
863            * libraries/shapelib/shpopen.c: Update to version from current
864            shapelib CVS.
865    
866            * libraries/shapelib/shapefil.h: Update to version from current
867            shapelib CVS.
868    
869            * libraries/shapelib/dbfopen.c: Update to version from current
870            shapelib CVS.
871            (DBFCommit): Effectively removed since shapelib itself has
872            DBFUpdateHeader now which is better for what DBFCommit wanted to
873            achieve.  
874            We're now using an unmodified version of dbfopen.
875    
876            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
877            value '1' to the Lib.dbflibc extension.  This simply reflects the
878            shapelib and pyshapelib updates
879    
880    2004-05-16  Jan-Oliver Wagner <[email protected]>
881    
882            Finished introduction of Menu.FindOrInsertMenu.
883    
884            * Extensions/drawshape/drawshape.py: Add the command
885            to the experimental menu additionally to the toolbar.
886    
887            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
888            finding menu on its own.
889    
890            * Doc/manual/thuban-manual.xml: updated sample file
891            to use FindOrInsertMenu().
892    
893            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
894            instead of finding menu on its own.
895    
896    2004-05-11  Jan-Oliver Wagner <[email protected]>
897    
898            * test/test_menu.py (MenuTest.test): Added testing
899            of method Menu.FindOrInsertMenu.
900    
901    2004-05-10  Jan-Oliver Wagner <[email protected]>
902    
903            Introduce and use Menu.FindOrInsertMenu.
904    
905            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
906              given menu or, if not found, insert it.
907    
908            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
909            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
910            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
911            menu on its own.
912    
913    2004-05-06  Jan-Oliver Wagner <[email protected]>
914    
915            Introduce a abstract ColorDialog class and remove
916            and outdated file.
917    
918            * Thuban/UI/proj4dialog.py: Removed. It is has been
919            replaced by projdialog for quite a while and is not used
920            anymore.
921    
922            * Thuban/UI/colordialog.py: New. Abstraction for color selection
923            dialog(s).
924    
925            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
926            Now calls the abstract ColorDialog instead of wxColourDialog.
927            This also removed the dependency to Color class conversion
928            from this function.
929    
930    2004-05-04  Frank Koormann  <[email protected]>
931    
932            * Extensions/bboxdump/__init__.py: Fixed string left over from
933            copying.
934    
935            * Extensions/bboxdump/bboxdump.py (bboxdump):
936            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
937            xrange(layer.NumShapes()). Compile the bboxmessage from a list
938            of formatted outputs (string.join) instead of appending to the
939            message. Two progress bar dialogs to report progress on the sometimes
940            lenghty processing.
941    
942    2004-04-22  Frank Koormann  <[email protected]>
943    
944            New Extension to dump bounding boxes of all shapes of the selected
945            layer. An optional column can be specified to group the objects,
946            in this case the bounding box is a union of the separate boxes.
947            Dump can be displayed in a ScrolledMessageDialog or written to file.
948            The Extension is simply a combination of available and well tested
949            Thuban functionality.
950    
951            * Extensions/bboxdump/__init__.py: New: Init to make this
952            directory a package.
953    
954            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
955            all shapes of the selected layer.
956    
957    2004-04-22  Jan-Oliver Wagner <[email protected]>
958    
959            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
960            strings to be i18n now.
961    
962    2004-04-18  Jan-Oliver Wagner <[email protected]>
963    
964            Changing popup menu of legend from direct building
965            to using the Menu construction as used for the mainwindow.
966    
967            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
968            layer_to_bottom, layer_visibility
969            (MainWindow.LayerToTop): New. Put current layer to the top.
970            (MainWindow.LayerToBottom): New. Put current layer to bottom.
971            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
972            Replace 1,0 by True, False.
973            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
974            current layer.
975            (MainWindow.LayerShowTable): Removed raising of dialog.
976            (_has_selected_layer_visible): New. Support function.
977    
978            * Thuban/UI/legend.py: ID_POP_xxx: removed.
979            (LegendPanel.__init__): Removed EVT_MENU bindings.
980            (LegendTree._OnRightClick): Replace direct creation of
981            menu via wx Classes by applying the menu definition
982            as of Menu class of menu.py.
983            
984    2004-04-16  Jan-Oliver Wagner <[email protected]>
985    
986            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
987        button string to stronger clearify that Thuban will be closed when hitting
988            the button.
989    
990            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
991            Now for layers without a ShapeStore a corresponding message is given
992            to the user, that this layer has no table to show.
993    
994    2004-04-15  Martin Schulze  <[email protected]>
995    
996            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
997            recalculate the format for the internal render engine as well.
998    
999            * Extensions/wms/properties.py (wmsProperties): First start for a
1000            properties dialog.  It's functional for a first selection of
1001            layers, but still has some weired wxWidgets/GTK problems but
1002            beautification can be done later.
1003    
1004            * Extensions/wms/layer.py: Added more documentation
1005            (WMSLayer.getFormats): New: Return list of supported image formats
1006            by the WMS server
1007            (WMSLayer.getLayers): New: Return the list of layer names
1008            supported by the WMS server
1009            (WMSLayer.getLayerTitle): New: Return the title of the named layer
1010            (WMSLayer.getWMSFormat): New: Return the image format that is used
1011            for WMS GetMap requests
1012            (WMSLayer.setWMSFormat): New: Set the image format that is used
1013            for WMS GetMap requests
1014            (WMSLayer.__init__): Move away from using only one layer to using
1015            a list of layers (unsorted at the moment, though).
1016            (WMSLayer.getVisibleLayers): New: Return the list of names for all
1017            visible layers
1018            (WMSLayer.setVisibleLayers): New: Set the list of names for all
1019            visible layers
1020    
1021            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
1022            order to establish a clean structure.
1023    
1024            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
1025            own in order to establish a clean structure.
1026    
1027    2004-04-13  Martin Schulze  <[email protected]>
1028    
1029            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
1030            support for oldstyle (WMS 1.0 apparently) image format
1031            specification.
1032    
1033            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
1034            supported graphic formats back to JPEG and BMP, PNG and others are
1035            too *cough* experimental...  Sorry, I meant to filter this out
1036            before I committed this part.  This should make the WMS extension
1037            run from CVS again.
1038            (wms_dialog): Reset an empty URL to None so that the subsequent
1039            program can depend on this, since the dialog will indeed return an
1040            empty URL, causing another declaration of love by Python.
1041    
1042            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
1043            Whenever a native BoundingBox request cannot be fulfilled, check
1044            whether the requested SRS is EPSG:3426, in which case return the
1045            LatLonBoundingBox values.
1046    
1047            * Extensions/wms/test/test_parser.py
1048            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
1049            ignoring AUTO:* SRS.
1050            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
1051            Added another test method to test whether the LatLonBoundingBox
1052            values will be returned if BoundingBox values are requested with
1053            SRS set to EPSG:3426.
1054    
1055            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
1056            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
1057            the moment by placing them into a variable which is currently
1058            unused.  Also test whether the EPSG SRS is numerical as it should
1059            be and add an error message if it is not.
1060    
1061            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
1062            appear in the real world as well.  Since we cannot handle them yet
1063            (OGCLib can't either), we will ignore them for the moment.
1064    
1065            * Extensions/wms/parser.py: Use a variable for denoting the sample
1066            filename
1067            (WMSCapabilitiesParser.peekLayers): Added support for error
1068            messages during grok().  They will be aggregated in an array and
1069            may be displayed later.  We may have to add a classification
1070            "Warning" and "Error" to this.  That requires more experience,
1071            though, since not every error may be lethal.
1072    
1073            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
1074            ShowTable() dialog/frame when the user attempts to display it
1075            while it has been opened before already and not closed again.
1076    
1077    2004-04-11  Martin Schulze  <[email protected]>
1078    
1079            * Extensions/wms/infodialog.py: Adjusted the class documentation
1080    
1081            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
1082            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
1083            wxWidgets variants.
1084            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
1085    
1086            * Extensions/wms/infodialog.py: Added an information dialog that
1087            will display various information about the WMS current resource,
1088            so that additional information such as the title, the abstract,
1089            fees and access constraints can be displayed for the user if they
1090            are documented in the WMS XML.
1091    
1092    2004-04-10  Martin Schulze  <[email protected]>
1093    
1094            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
1095            string handling.  It's "foo".lower() and not lower(foo) without
1096            lower imported from strings or something.
1097    
1098            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
1099            from capabilities.py and parser.py.  Implement priority list for
1100            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
1101            and GIF are supported here, but not yet by main Thuban.  Hence,
1102            support for them may be removed later.  Special contribution to
1103            usability: get wxWidgets to change the cursor when we're waiting
1104            for data from the network so the user won't start to worry.  This
1105            causes a redrawing error/warning, though.
1106    
1107            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
1108            the DOM object.
1109    
1110    2004-04-01  Martin Schulze  <[email protected]>
1111    
1112            * Extensions/wms/capabilities.py: Adjusted documentation
1113            (WMSCapabilities.__init__): Improved documentation, fixed syntax
1114            (WMSCapabilities.saveCapabilities): Only catch IOError when
1115            handling files
1116            (WMSCapabilities.loadCapabilities): Only catch IOError when
1117            handling files
1118            __main__: corrected variable naming
1119            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
1120            class a specialisation of WMSCapabilitiesParser as well.  Also
1121            execute grok() after loading or fetching capabilities, if that
1122            went well, so that subsequent calls can already access the data.
1123            (WMSCapabilities.getVersion): Export the used version of the
1124            GetCapabilities request, so we can use it for subsequent calls,
1125            i.e. for GetMap requests.
1126            (WMSCapabilities.fetchCapabilities): Added proper error handling
1127            when the GetCapabilities request failed, so that the surrounding
1128            program can act accordingly.
1129    
1130    2004-03-30  Martin Schulze  <[email protected]>
1131    
1132            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
1133            Adjusted the getLayerSRS method to return the list of SRSes
1134            extracted from <SRS> elements instead of <BoundingBox> elements.
1135            Added a bit of documentation as well.
1136            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
1137            since it was only implemented due to a misunderstanding.
1138    
1139            * Extensions/wms/test/test_parser.py
1140            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
1141            reflect the corrected interpretation of the standard: i.e. a layer
1142            does not have to define a BoundingBox for all SRSes it supports.
1143            Hence the <SRS></SRS> specification is authoritative, not the list
1144            of BoundingBoxes.
1145            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
1146            to ensure None is returned for a non-existing SRS.
1147            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
1148            since it is not applicable anymore.  Listing more SRSes in <SRS>
1149            elements is valid according to the specs.
1150    
1151    2004-03-26  Bernhard Reiter <[email protected]>
1152    
1153            * README: Nicer formatting of text. Improved descriptions.
1154            Reflected wxWidgets name change.
1155            
1156            * Thuban/UI/about.py: Extended copyright to 2004 and added
1157            information about the thuban-devel mailinglist.
1158    
1159    2004-03-24  Martin Schulze  <[email protected]>
1160    
1161            * Extensions/wms/capabilities.py: Renamed the class to contain
1162            'WMS', also added a linebreak where required
1163    
1164            * Extensions/wms/parser.py: Finally added the XML parser for the
1165            GetCapabilities response.
1166    
1167            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
1168            <SRS> elements match the <BoundingBox> elements, except for the
1169            layer 'beschriftung'.
1170    
1171            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
1172            since Python uses unicode strings internally, otherwise
1173            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
1174            the SRS will be calculated anyway and this method is obsoleted by
1175            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
1176            Move loading the sample file into the setUp method.  Added a test
1177            for finding the integrity problem in the sample response.
1178            Improved formatting.
1179    
1180            * Extensions/wms/domutils.py: Added convenience routines for
1181            handling of Document Object Model (DOM) nodes.
1182    
1183            * Extensions/wms/test/test_domutils.py: Added a test for the
1184            domutils module
1185    
1186    2004-03-19  Martin Schulze  <[email protected]>
1187    
1188            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
1189            Moved path detection and adding into a module of its own,
1190            adjustpath, which exports thubandir as main Thuban directory.
1191    
1192            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
1193            detection and adding into a module of its own, adjustpath, which
1194            exports thubandir as main Thuban directory.  Reorganised the
1195            module in order to support the SkipTest feature for Thuban test
1196            cases.
1197    
1198            * Extensions/wms/test/adjustpath.py: Moved path detection and
1199            adding into a module of its own.
1200    
1201    2004-03-18  Martin Schulze  <[email protected]>
1202    
1203            * Extensions/wms/test/test_parser.py: Added another test for
1204            checking whether the WMS XML parser (to be implemented) returns
1205            the information we expect.  This requires a sample WMS WML file
1206            (sample.xml) which has been extracted from the frida server and
1207            "improved" manually.
1208    
1209            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
1210            main Thuban directory to the path in order to be able to import
1211            random modules.  Adjusted the PyOGCLib detection to reuse the
1212            information gathered.  Also added a note about the PYTHONPATH
1213            environment variable.
1214    
1215            * Extensions/wms/test/test_ogclib.py: The format specification is
1216            a mime-type, not a graphic format, hence image/jpeg wou ld be the
1217            proper format and not JPEG.  We'll also have to take care of the
1218            encoding of / as %2F.
1219    
1220    2004-03-16  Martin Schulze  <[email protected]>
1221    
1222            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
1223            comprehensive test for the getMapURL method, built compare URLs
1224            according to the documentation in OGC 01-068r3
1225    
1226            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
1227            class WMSCapabilities to manage capabilites, will incorporate
1228            parsing the capabilities response and provide details for other
1229            classes.
1230    
1231    2004-03-12  Bernhard Herzog  <[email protected]>
1232    
1233            Support views in addition to normal tables in the postgis
1234            shapestore
1235    
1236            * Thuban/Model/postgisdb.py
1237            (PostGISShapeStore._fetch_table_information): Add a fallback for
1238            the case where the table name is not in the geometry_columns
1239            table.  This is usually the case for views.  Also, set
1240            self.shapestore here.
1241            (PostGISShapeStore.ShapeType): No need to query the database all
1242            the time.  The shape type is now determined in
1243            _fetch_table_information
1244    
1245            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
1246            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
1247            New parameter to specify views.
1248            (PostGISDatabase.has_data): Also compare the views.  New views
1249            parameter
1250            (PostGISDatabase.initdb): Create the views.
1251            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
1252            view
1253    
1254            * test/test_postgis_db.py
1255            (TestPostGISShapestorePointFromViews): New.  Test a
1256            PostGISShapeStore with a view
1257            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
1258            the geometry_column explicitly to test whether that works
1259    
1260    2004-03-12  Bernhard Herzog  <[email protected]>
1261    
1262            Final step for explicit id/geometry columns: Loading and saving
1263    
1264            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
1265            with the following changes:
1266            (dbshapesource): Two new attributes id_column and geometry_column
1267    
1268            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
1269            (SessionSaver.write_session): Use the new namespace
1270            (SessionSaver.write_data_containers): Write the new dbshapesource
1271            parameters
1272    
1273            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
1274            the new file format version
1275            (SessionLoader.start_dbshapesource): Handle the new db parameters
1276    
1277            * test/test_save.py: Update to the new dtd and namespace
1278            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
1279            mock object to provide a working IDColumn method.
1280    
1281            * test/test_load_1_0.py: New.  Copy of the test_load.py before
1282            today's changes but with the round-trip tests removed.
1283    
1284            * test/test_load_0_9.py: Update doc-string.
1285    
1286            * test/test_load.py: Update all .thuban files to the new dtd and
1287            namespace.
1288            (TestPostGISLayer.file_contents): Add the new dbshapesource
1289            paramters
1290    
1291    2004-03-11  Bernhard Herzog  <[email protected]>
1292    
1293            Next step for explicit id/geometry columns: User interaction
1294    
1295            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
1296            the dialog is constructed. Add combo boxes to select id and
1297            geometry column.  Rename some instance variables.
1298            (ChooseDBTableDialog.GetTable): Return id and geometry column
1299            names
1300            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
1301            selections in the table list
1302    
1303            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
1304            and geometry_column
1305    
1306            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
1307            parameters for id_column and geometry column of PostGISShapeStore
1308            here as well.
1309    
1310            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
1311            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
1312            (PostGISConnection.GeometryTables): Use a better query to
1313            determine which relations in the database might be usable for
1314            shapestores.  Now supports views as well but is more PostgreSQL
1315            specific
1316            (PostGISConnection.table_columns): New. Somewhat experimental
1317            method to let the db dialogs provide lists of columns to users so
1318            that they can select id and geometry columns.
1319            (PostGISTable.__init__): The default value of the id_column
1320            parameter is now None it still means "gid" effectively, though.
1321            (PostGISTable.IDColumn): New introspection method to return a
1322            column object for the id column
1323            (PostGISShapeStore.GeometryColumn): New introspection method to
1324            return a column object for the geometry column
1325    
1326            * test/test_postgis_db.py
1327            (TestPostGISConnection.test_gis_tables_non_empty):
1328            Removed. Subsumed by the new:
1329            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
1330            New. Tes the GeometryTables and table_columns methods with actual
1331            tables and views.
1332            (PointTests.test_id_column, PointTests.test_geometry_column):
1333            New. tests for the new methods.
1334            (TestPostGISShapestorePoint.setUp)
1335            (TestPostGISShapestorePointSRID.setUp)
1336            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
1337            instance variables needed by the new tests
1338    
1339    2004-03-11  Bernhard Herzog  <[email protected]>
1340    
1341            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
1342            numbers given to ReadValue are ordinals.
1343    
1344    2004-03-11  Bernhard Herzog  <[email protected]>
1345    
1346            Elimiate the requirement for PostGIS tables to have a column
1347            called "gid".
1348    
1349            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
1350            id_column to specify which column to use to identify rows.  Also
1351            new instance variables id_column and quoted_id_column
1352            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
1353            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
1354            (PostGISTable.SimpleQuery): Use the id column name provided to the
1355            constructor instead of "gid"
1356            (PostGISShapeStore.__init__): New parameter id_column analogously
1357            to PostGISTable.__init__.  This parameter is simply passed through
1358            to the base class constructor
1359            (PostGISShapeStore._create_col_from_description): Fix typo in
1360            doc-string
1361            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
1362            (PostGISShapeStore.ShapesInRegion): Use the id column name
1363            provided to the constructor instead of "gid"
1364    
1365            * test/postgissupport.py
1366            (PostgreSQLServer.get_default_static_data_db): New static table
1367            landmarks_point_id with an id column != "gid.  Update the comments
1368            a bit.
1369            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
1370            doc-
1371            (upload_shapefile): New parameter gid_column to use a name other
1372            than "gid" for the column to store the shape ids
1373    
1374            * test/test_postgis_db.py (TableTests): New.  Mixin-class
1375            containing all tests previously in TestPostGISTable.  The actual
1376            tests are the same but the code is a bit more configurable to
1377            allow for different id columns etc.
1378            (TestPostGISTable): Derive from TableTests now for the actual
1379            tests.
1380            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
1381            except that it the landmarks_point_id table to test the id_column
1382            parameter
1383            (PointTests): Extend the doc-string
1384            (TestPostGISShapestorePointExplicitGIDColumn)
1385            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
1386            from PointTests to test the explicit id_column parameter.  One
1387            tests with the name of the column holding the shape ids, the other
1388            uses PostgreSQL's OID column.  For the latter a number of methods
1389            have to be overwritten to make them independent of the actual id
1390            values.
1391    
1392    2004-03-08  Silke Reimer  <[email protected]>
1393    
1394            Update debian directory:
1395    
1396            * debian/changelog: Added new version.
1397            * deiban/rules: Updated management of patches (with cbds)
1398            * debian/control: Added cbds to dependencies
1399            * debian/patches/*: New. Adds better support for patches of thuban in
1400                            debian
1401            * debian/menu: Syntax of menu changed slightly
1402            * debian/setup.py.patch: removed because it has been moved to
1403                            debian/patechs/setup.py.patch
1404            
1405    
1406    2004-02-26  Bernhard Herzog  <[email protected]>
1407    
1408            Create the Doc/technotes directory for text files with information
1409            for developers
1410    
1411            * Doc/technotes/README: New. README for the technotes
1412    
1413            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
1414            Thuban
1415    
1416            * Doc/technotes/release_process.txt: New. Used to be
1417            HOWTO-Release.  Now slightly adapted to technote formatting style.
1418    
1419            * HOWTO-Release: Removed.  It's contents are now in
1420            Doc/technotes/release_process.txt
1421    
1422    2004-02-25  Bernhard Herzog  <[email protected]>
1423    
1424            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
1425            version of wxWindows the module was compiled with so we can check
1426            that against the wxPython version.
1427    
1428            * Thuban/version.py (thuban_branch, thuban_release): New variables
1429            controlling which and how Thuban versions are shown.  See the
1430            comments for details.
1431            (verify_versions): Also check that the wx version that wxproj is
1432            compiled against matches that of the wxPython we use at runtime
1433    
1434    2004-02-20  Bernhard Herzog  <[email protected]>
1435    
1436            * Extensions/wms/wms.py (epsg_code_to_projection): Use
1437            get_system_proj_file to read the epsg projections.  The old way
1438            depended on the current directory being the top Thuban directory.
1439    
1440    2004-02-20  Bernhard Herzog  <[email protected]>
1441    
1442            * Extensions/svgexport/test/test_svgmapwriter.py
1443            (TestVirtualDC.test_clippath): Remove a debug print
1444    
1445    2004-02-20  Bernhard Herzog  <[email protected]>
1446    
1447            * Extensions/svgexport/__init__.py: New.  Turn
1448            Extensions/svgexport into a package.
1449    
1450            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
1451            doc-string a bit.  The doc-string must come first, otherwise it's
1452            not a doc-string.  The __future__ import must be the first thing
1453            after the doc-string.  Use only double quotes in doc-strings.
1454            Single quotes trip up emacs syntax highlighting if the text
1455            contains apostrophes.
1456    
1457    2004-02-20  Bernhard Herzog  <[email protected]>
1458    
1459            * Extensions/svgexport/test/__init__.py,
1460            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
1461            suite for svgexport
1462    
1463            * test/runtests.py (find_test_modules): New. Function with the
1464            module finding code from main.
1465            (main): Use find_test_modules to figure out the default test
1466            modules and take modules from Extensions.svgexport.test too.
1467    
1468    2004-02-19  Bernhard Herzog  <[email protected]>
1469    
1470            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
1471            the mainwindow has a reference to the map of the initial session.
1472            This fixes a bug introduced with the fix for RT#2245
1473    
1474    2004-02-19  Bernhard Herzog  <[email protected]>
1475    
1476            * Extensions/svgexport/svgsaver.py,
1477            Extensions/svgexport/svgmapwriter.py,
1478            Extensions/svgexport/maplegend.py: Added again.  This time in the
1479            correct place.
1480    
1481    2004-02-17  Bernhard Herzog  <[email protected]>
1482    
1483            Fix for RT#2245
1484    
1485            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
1486            instance variables before trying to create any windows.  Creating
1487            windows can start an event loop if e.g. message boxes are popped
1488            up for some reason, and event handlers, especially EVT_UPDATE_UI
1489            may want to access things from the application.
1490            (ThubanApplication.maps_changed): The mainwindow may not have been
1491            created yet, so check whether it has been created before calling
1492            its methods
1493    
1494            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
1495            have a map
1496    
1497    2004-02-17  Bernhard Herzog  <[email protected]>
1498    
1499            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
1500            Extensions/svgmapwriter.py, Extensions/maplegend.py,
1501            extensions/svgexport/svgsaver.py,
1502            extensions/svgexport/svgmapwriter.py,
1503            extensions/svgexport/maplegend.py: Removed.  These files were in
1504            the wrong places or didn't work at all.
1505    
1506    2004-02-16  Bernhard Herzog  <[email protected]>
1507    
1508            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
1509            line
1510    
1511    2004-02-16  Bernhard Herzog  <[email protected]>
1512    
1513            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
1514    
1515    2004-02-15  Markus Rechtien  <[email protected]>
1516            
1517            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
1518            to write a session to a file in SVG format.
1519            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
1520            to write a SVG map of a session.
1521            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
1522            in SVG format for the current session.
1523    
1524    2004-02-13  Bernhard Herzog  <[email protected]>
1525    
1526            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
1527            can't be created, return immediately after displaying the error
1528            message.
1529    
1530    2004-02-11  Bernhard Herzog  <[email protected]>
1531    
1532            Handle postgis tables with more than one geometry column.
1533    
1534            * Thuban/Model/postgisdb.py
1535            (PostGISTable._fetch_table_information): Delegate the creation of
1536            column objects to a different method so that we can extend that in
1537            derived classes
1538            (PostGISTable._create_col_from_description): New. Column object
1539            creation part of _fetch_table_information
1540            (PostGISShapeStore._create_col_from_description): New. Extend
1541            inherited method to handle geometry columns
1542            (PostGISShapeStore.__init__): New parameter geometry_column to
1543            specify which geometry column to use.  Optional but mandatory for
1544            tables with more than one geometry column
1545            (PostGISShapeStore._fetch_table_information): Also use the name of
1546            the geometry column when looking for the srid
1547            (PostGISShapeStore.ShapeType): Also use the name of the geometry
1548            column when looking for the shape type
1549    
1550            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
1551            NonConnectionStore to changes in the PostGISShapeStore
1552    
1553            * test/test_postgis_db.py
1554            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
1555            PostGISShapeStore with tables having two geometry columns.
1556    
1557    2004-02-10  Bernhard Herzog  <[email protected]>
1558    
1559            Fix some postgis problems.  What remains to be done is real
1560            handling of SRIDs as they affect how reprojection is done
1561    
1562            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
1563            doc-string
1564            (PostGISShapeStore._fetch_table_information): New. Extend
1565            inherited method to retrieve srid
1566            (PostGISShapeStore.BoundingBox): Handle tables without data.
1567            extent yields NULL for those
1568            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
1569    
1570            * test/test_postgis_db.py
1571            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
1572            for the special case of a table without any data
1573            (TestPostGISShapestorePointSRID): New class with tests for a table
1574            that uses srids
1575            (PolygonTests): Fix a doc-string typo
1576    
1577            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
1578            reference_systems with a specification of spacial reference
1579            systems to create in the new db.
1580            (PostgreSQLServer.new_postgis_db)
1581            (PostgreSQLServer.get_static_data_db): New parameter
1582            reference_systems to be passed through ultimately to
1583            PostGISDatabase.  In new_postgis_db also check whether an existing
1584            db already has the right srids
1585            (PostgreSQLServer.get_default_static_data_db): Add srids and a
1586            table that uses srids
1587            (PostGISDatabase.initdb): Create the entries for the reference
1588            systems
1589            (PostGISDatabase.has_data): Add reference_systems parameter to
1590            check for those too
1591            (upload_shapefile): New parameter srid to create tables with a
1592            specific srid
1593    
1594    2004-02-06  Frank Koormann  <[email protected]>
1595    
1596            * po/pt_BR.po: Fixed charset
1597    
1598    2004-02-05  Frank Koormann  <[email protected]>
1599    
1600            * po/pt_BR.po: Fixed format string for error message, missing %s
1601            added (Thuban/UI/application.py:273)
1602    
1603    2004-02-03  Frank Koormann  <[email protected]>
1604            
1605            First version of Portuguese (Brazilian) translation
1606    
1607            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
1608            Brazilian Portuguese by Eduardo Patto Kanegae.
1609    
1610            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
1611            translators.
1612    
1613    
1614    2004-01-22  Frank Koormann  <[email protected]>
1615    
1616            * Doc/manual/thuban-manual.xml: Added section on installation of
1617            Thuban under Win32 systems. Fixed image path references in the postgis
1618            section. Some minor source formattings.
1619    
1620    2004-01-21  Frank Koormann  <[email protected]>
1621    
1622            Make Thuban remember path selections (at least for one application run).
1623    
1624            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
1625            attribute of application object. Path is a dictionary of
1626            strings, currently with the items "data" and "projection".  
1627            (Application.SetPath): New, stores path for the specified item.
1628            (Application.Path): New, return path for the specified item.
1629    
1630            * Thuban/UI/mainwindow.py
1631            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
1632            MainWindow.AddLayer, MainWindow.AddRasterLayer,
1633            MainWindow.TableOpen): Access "data" path information of the
1634            application.
1635            
1636            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
1637            Access "projection" path information of the application.
1638    
1639    2004-01-05  Bernhard Herzog  <[email protected]>
1640    
1641            * po/ru.po: Updated translations from Alex Shevlakov
1642    
1643    2004-01-05  Bernhard Herzog  <[email protected]>
1644    
1645            * po/Makefile, po/README: Move the description of how to generate
1646            the translation statistics to the README.
1647    
1648    2003-12-23  Bernhard Herzog  <[email protected]>
1649    
1650            * NEWS: Update for 1.0.0
1651    
1652            * po/it.po: Another update from Maurizio Napolitano
1653    
1654    2003-12-23  Bernhard Herzog  <[email protected]>
1655    
1656            * po/it.po: Updated translation from Maurizio Napolitano
1657    
1658    2003-12-23  Bernhard Herzog  <[email protected]>
1659    
1660            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
1661            for translation
1662    
1663            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
1664            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
1665            strings for translation
1666    
1667            * po/de.po: Update with the newly marked strings.
1668    
1669    2003-12-22  Bernhard Herzog  <[email protected]>
1670    
1671            * HOWTO-Release: Fix the places where version numbers have to be
1672            updated
1673    
1674    2003-12-22  Bernhard Herzog  <[email protected]>
1675    
1676            * setup.py (setup call): 1.0.0, yeah!
1677    
1678            * Thuban/version.py (longversion): 1.0.0, yeah!
1679    
1680            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
1681            1.0.0 namespace too
1682    
1683            * Thuban/Model/save.py (SessionSaver.write_session): Save with
1684            1.0.0 namespace
1685    
1686            * test/test_load.py (LoadSessionTest.dtd)
1687            (TestSingleLayer.file_contents)
1688            (TestNonAsciiColumnName.file_contents)
1689            (TestLayerVisibility.file_contents)
1690            (TestClassification.file_contents, TestLabels.file_contents)
1691            (TestLayerProjection.file_contents)
1692            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1693            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
1694            (TestPostGISLayerPassword.file_contents)
1695            (TestLoadError.file_contents, TestLoadError.test): Update for
1696            1.0.0 namespace
1697    
1698            * test/test_save.py (SaveSessionTest.dtd)
1699            (SaveSessionTest.testEmptySession)
1700            (SaveSessionTest.testSingleLayer)
1701            (SaveSessionTest.testLayerProjection)
1702            (SaveSessionTest.testRasterLayer)
1703            (SaveSessionTest.testClassifiedLayer)
1704            (SaveSessionTest.test_dbf_table)
1705            (SaveSessionTest.test_joined_table)
1706            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
1707    
1708    2003-12-22  Bernhard Herzog  <[email protected]>
1709    
1710            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
1711            alignment flags are byte strings not unicode and that they have
1712            valid values
1713    
1714            * test/test_load.py (TestLabelLayer): New. Test loading (and
1715            indirectly saving) of maps with labels.
1716    
1717    2003-12-22  Bernhard Herzog  <[email protected]>
1718    
1719            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
1720            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
1721            unsubscribe all subscribers.
1722            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
1723            self.grid since it may already have been destroyed.
1724            Fixes RT #2256
1725    
1726    2003-12-19  Bernhard Herzog  <[email protected]>
1727    
1728            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
1729    
1730    2003-12-16  Bernhard Herzog  <[email protected]>
1731            
1732            * debian/bitmappath.patch, debian/setup.py.patch:
1733                    added to ensure compliance with FHS for debian
1734            * debian/rules, debian/changelog:
1735                added patches in rules to ensure compliance with FHS for debian
1736    
1737    2003-12-16  Bernhard Herzog  <[email protected]>
1738    
1739            * po/Makefile (mo): Make the output a bit nicer so that it prints
1740            statistics about the translations. Add a comment how produce even
1741            nicer statistics with sed.
1742    
1743    2003-12-09  Frank Koormann   <[email protected]>
1744    
1745            * Resources/Projections/defaults.proj:
1746            French projection sample with correct accents (UNICODE).
1747    
1748    2003-12-05  Bernhard Herzog  <[email protected]>
1749    
1750            * MANIFEST.in: Add the devtools directory
1751    
1752            * setup.py (setup call): Use license instead of licence. This
1753            silences a deprecation warning on Python 2.3
1754    
1755    2003-12-05  Frank Koormann   <[email protected]>
1756    
1757            Documentation synced with 1.0rc1
1758    
1759            * Doc/manual/thuban-manual.xml:
1760            Minor formatting changes and references to database layers .
1761            Introduction.Internationalization: New section on i18n.
1762            MapManagement.AddingandRemovingLayers: Added item on database layers.  
1763            MapManagement.TheLegend: Added section and screenshot on popup menu.
1764            ProjectionManagement: Updated screenshot and sentence on EPSG.
1765            Appendix.SupportedDataSources: Added PostGIS.
1766            Appendix.WorkingwithPostGIS: New section.
1767    
1768            * Doc/manual/images/6_projection.png: Updated screenshot including
1769            EPSG checkboxes.
1770    
1771            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
1772    
1773            * Doc/manual/images/app_postgis_add_layer.png,
1774            Doc/manual/images/app_postgis_db_add.png,
1775            Doc/manual/images/app_postgis_db_management.png:
1776            New screenshots focussing on database layers
1777    
1778    2003-12-05  Frank Koormann   <[email protected]>
1779    
1780            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
1781            write warning to stderr instead of rising a warning dialog
1782    
1783    2003-12-03  Bernhard Herzog  <[email protected]>
1784    
1785            Fix for RT #2243
1786    
1787            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
1788            New. Like has_selected_layer but for shape layers only
1789            (_has_selected_shape_layer): New. Like _has_selected_layer but for
1790            shape layers only
1791            (layer_show_table command, layer_jointable command): Use these
1792            commands should only be available for shape layers
1793    
1794    2003-12-03  Bernhard Herzog  <[email protected]>
1795    
1796            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
1797            publishers that are wx objects and may have been destroyed by wx
1798            already. Fixes RT #2242.
1799    
1800    2003-12-03  Bernhard Herzog  <[email protected]>
1801    
1802            * po/ru.po: Updates from Alex Shevlakov
1803    
1804    2003-12-03  Silke Reimer <silkeintevation.de>
1805    
1806            * debian/control, debian/changelog: Added gdal-support to
1807                    debian package, updated to new thuban version
1808    
1809    
1810    2003-12-03  Bernhard Herzog  <[email protected]>
1811    
1812            * Thuban/Lib/version.py: New. Module for version number
1813            manipulations. The version of make_tuple here also deals better
1814            with more unusual version number strings, such as e.g.
1815            "1.2+cvs20031111"
1816    
1817            * Thuban/version.py (make_tuple): Removed. It's now in
1818            Thuban.Lib.version. Use that implementation instead.
1819    
1820            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
1821    
1822    2003-12-02  Bernhard Herzog  <[email protected]>
1823    
1824            * MANIFEST.in: Add debian files
1825    
1826            * setup.py (setup call): Add packages for the Extensions so that
1827            they're installed too
1828            (data_files): Add READMEs and sample data from some Extensions
1829    
1830            * NEWS: Add note about the extensions in binary packages
1831    
1832    2003-12-02  Bernhard Herzog  <[email protected]>
1833    
1834            * Thuban/Model/save.py (SessionSaver.write_session): Save files
1835            with the thuban-1.0rc1
1836    
1837            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
1838            thuban-1.0rc1 namespace too
1839    
1840            * test/test_save.py (SaveSessionTest.dtd)
1841            (SaveSessionTest.testEmptySession)
1842            (SaveSessionTest.testSingleLayer)
1843            (SaveSessionTest.testLayerProjection)
1844            (SaveSessionTest.testRasterLayer)
1845            (SaveSessionTest.testClassifiedLayer)
1846            (SaveSessionTest.test_dbf_table)
1847            (SaveSessionTest.test_joined_table)
1848            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
1849            namespace
1850    
1851            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
1852            namespace
1853            (TestSingleLayer.file_contents)
1854            (TestNonAsciiColumnName.file_contents)
1855            (TestLayerVisibility.file_contents)
1856            (TestClassification.file_contents, TestLabels.file_contents)
1857            (TestLayerProjection.file_contents)
1858            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1859            (TestPostGISLayer.file_contents)
1860            (TestPostGISLayerPassword.file_contents)
1861            (TestLoadError.file_contents, TestLoadError.test): Update to
1862            thuban-1.0rc1 namespace
1863    
1864    2003-12-01  Bernhard Herzog  <[email protected]>
1865    
1866            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
1867            nt to better match Intevation's current w32 setup
1868    
1869            * HOWTO-Release: Add note about updating MANIFEST.in
1870    
1871            * MANIFEST.in: Add the Extensions
1872    
1873            * NEWS: Update for 1.0rc1
1874    
1875    2003-12-01  Bernhard Herzog  <[email protected]>
1876    
1877            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
1878            cards for the dialog so that shapefiles ending in all uppercase
1879            SHP are listed too
1880    
1881    2003-11-28  Bernhard Herzog  <[email protected]>
1882    
1883            * Thuban/version.py (longversion): Update to 1.0rc1
1884    
1885            * setup.py (setup call): Update version to 1.0rc1. Use the
1886            [email protected] email address as author email instead of my
1887            personal one.
1888    
1889    2003-11-28  Bernhard Herzog  <[email protected]>
1890    
1891            * po/de.po: Update german translation.
1892    
1893    2003-11-28  Bernhard Herzog  <[email protected]>
1894    
1895            Unify the filenames stored in .thuban files so that the .thuban
1896            files are more platform independend
1897    
1898            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
1899            that they can be used on both windows and unix
1900            (SessionSaver.prepare_filename): New. Handle all filename
1901            transformations for filenames stored in the thuban file
1902            (SessionSaver.write_data_containers, SessionSaver.write_layer):
1903            Use prepare_filename
1904    
1905            * test/test_save.py (SaveSessionTest.testSingleLayer)
1906            (SaveSessionTest.testLayerProjection)
1907            (SaveSessionTest.testRasterLayer)
1908            (SaveSessionTest.testClassifiedLayer)
1909            (SaveSessionTest.test_dbf_table)
1910            (SaveSessionTest.test_joined_table): Filenames are always stored
1911            with slashes on all currently supported platforms so adapt all
1912            tests to this
1913    
1914            * test/test_load.py (LoadSessionTest.filenames): With the new
1915            filename scheme the filenames in the tests should be
1916            understandable on all currently supported platforms so we turn
1917            this into an empty list because we don't have to normalize them
1918            anymore
1919    
1920    2003-11-28  Bernhard Herzog  <[email protected]>
1921    
1922            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
1923            Add the ellipsoid to the projection since some Proj versions
1924            complain if it's missing.
1925    
1926    2003-11-27  Bernhard Herzog  <[email protected]>
1927    
1928            Corect some bounding box projection problems
1929    
1930            * Thuban/Model/proj.py (Projection.InverseBBox): New. Inverse
1931            version of ForwardBBox
1932            (Projection._transform_bbox): New. common implementation of
1933            ForwardBBox and InverseBBox
1934            (Projection.ForwardBBox): Use _transform_bbox.
1935    
1936            * test/test_proj.py (TestProjection.test): Add test for
1937            InverseBBox
1938    
1939            * Thuban/Model/layer.py (Layer.LatLongBoundingBox)
1940            (Layer.ShapesBoundingBox, RasterLayer.LatLongBoundingBox): Use the
1941            new InverseBBox method to determine the unprojected bounding box
1942            (Layer.ShapesInRegion): Use the ForwardBBox method to project the
1943            bbox.
1944    
1945            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1946            Removed.
1947            (TestLayer.test_arc_layer_with_projection): New. This test is
1948            better able to test whether bounding boxes are projected correctly
1949            than test_point_layer_with_projection
1950    
1951            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Use
1952            InverseBBox to unproject bboxes
1953    
1954    2003-11-25  Bernhard Herzog  <[email protected]>
1955    
1956            * Thuban/UI/about.py (About.__init__): Make sure we have ASCII
1957            source code.
1958    
1959    2003-11-25  Bernhard Herzog  <[email protected]>
1960    
1961            * Thuban/Model/layer.py (Layer.__getattr__): Removed. It was only
1962            there for backwards compatibility and all code relying on that
1963            should have been updated by now.
1964    
1965  2003-11-25  Bernhard Herzog  <[email protected]>  2003-11-25  Bernhard Herzog  <[email protected]>
1966    
1967          * test/test_load.py (TestClassification.test): Add the missing          * test/test_load.py (TestClassification.test): Add the missing
# Line 3675  Line 5639 
5639          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
5640          click on layer tree:          click on layer tree:
5641          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
5642          the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply          the ItemActivated  on double click, which raises the main window again.
5643            We add a second ItemActivated event to the queue, which simply
5644          raises the already displayed window.          raises the already displayed window.
5645    
5646          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.1977  
changed lines
  Added in v.2407

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26