/[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 2013 by silke, Wed Dec 3 10:37:05 2003 UTC revision 2333 by jan, Tue Aug 10 00:24:15 2004 UTC
# Line 1  Line 1 
1    2004-08-10  Jan-Oliver Wagner <[email protected]>
2    
3            * Doc/technotes/coding_guidelines.txt: Added rule 'Method names start with
4            lower case letter'
5    
6    2004-08-09  Jan Sch�ngel  <[email protected]>
7    
8            * ChangeLog: Rewrite the last ChangeLog entry to follow
9            the standard way.
10    
11            * Extensions/umn_mapserver/mapfile: Moved the import AnnotationLayer to
12            the function where it is needed, because it don't works if it stands
13            at the beginning.
14            (MF_Layer.__init__): Removed the extra numclassed variable. Now
15            numclasses from the mapscript will be used.
16            (MF_Layer.get_index): New. Return the index of the layer in mapfile.
17            (MF_Layer.set_classes): New. A Classlist will be set to the layer.
18            (MF_Layer.set_metadata): New. A Metadata mapscript object will set.
19            (MF_Layer.remove_allclasses): New. All class of the layer will remove.
20            (MF_Map.create_new_layer): New. A new Layer is created and associated
21            with the mapscript object.
22            (MF_Map.set_layerorder): New. The Layer order like in thuban is set in
23            the mapscript.
24            (MF_Map.add_thubanlayer): Now a new layerobj is created if no one is
25            linked to the layer in thuban, else the layerobject linked to the
26            thubanlayer will be used.
27            AnnotationLayer will now store the filename of the shapefile.
28            (MF_Map.remove_layer): If a layer is removed the associated object
29            must be set new.
30            
31            * Extensions/umn_mapserver/mf_export.py(tb_layer_to_map): Add all
32            layers which are exists in thuban to the mapobj. All removed Layers
33            will be removed from the mapobj.
34            Added comments to all functions.
35            (thuban_to_map): No layer will be removed here.
36            
37            * Extensions/umn_mapserver/mf_handle.py
38            (_has_umn_mapobj_and_selectedlayer): Activating the layer menu. Now
39            Layersettings for the mapserver kann be edited.
40    
41            * Extensions/umn_mapserver/mf_import.py: Now all layers which are
42            imported, will be linked with the associated MF_Layer.
43            (import_mapfile): All layers, which are not selected, will be removed.
44            Disable the "import layer from mapfile" menu option.
45    
46            * Extensions/umn_mapserver/sample/iceland.map: Set the status of the
47            Annotation Layer from DEFAULT to OFF. The DEFAULT setting turns the
48            layer on permanently.
49    
50    2004-08-03  Jan Sch�ngel  <[email protected]>
51    
52            * Extensions/umn_mapserver/mapfile.py(MF_Metadata.remove_allmetadata):
53            New. This function removes all metadata
54            (MF_Layer.set_group): New. Set the group setting.
55            (MF_Layer.get_group): New. Get the group setting.
56            (MF_Map): Removed the extra numlayers variable, used the mapscript
57            parameter instead.
58            (MF_Map.get_numlayers): New. This get numlayers.
59            (MF_Map.remove_all_layers): New. Removes all layers from the mapobj.
60            (MF_Map.add_thubanlayer): Replaced the exception handling by a check
61            if the object is an instance. Also added the annotation layer here to
62            export, but only the layer is created in the mapfile.
63    
64            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Removed
65            the check if a mapobj exist, because its not needed anymore. The
66            export function is only available if a mapobj exist.
67            Use the new function to remove all layers.
68            
69            * Extensions/umn_mapserver/mf_handle.py(Layer_Dialog): Added a group
70            option and the metadata button. The layer dialog is temporary disabled.
71            (Metadata_CustomDataTable): Added some functions to show the grid
72            correct.
73    
74            * Extensions/umn_mapserver/mf_import.py: Moved the code for showing
75            the number of layer from import_mapfile to this function.
76            (AnnotationLayer): New. This Class shows the Annotation layer in
77            thuban. The layer don't do anything. It's only to show the layer
78            and to save the layer order.
79            (add_annotationlayer): New. Import an annotation layer to thuban.
80            (select_layer2import): New. Import only layers to thuban and not
81            the other settings like projection or scalebar.
82            (create_new_mapfile): Moved the _has_umn_mapobj function and the
83            create_new_mapfile functions from mf_handle.py to mf_import.py.
84            
85            * Extensions/umn_mapserver/sample/iceland.map: Added the group
86            parameter to the roads and cultural layers. Also added a new
87            Annotation Layer for the cultural points.
88    
89            * Extensions/umn_mapserver/sample/iceland.html: Added the select
90            option for the annotation layer.
91    
92            * Extensions/umn_mapserver/sample/index.html: Added the start
93            parameter for the annotation layer.
94    
95    2004-08-01  Jan-Oliver Wagner <[email protected]>
96    
97            * Doc/manual/thuban-manual-de.xml (Chapter Session Management):
98            translation completed.
99    
100            * Doc/manual/thuban-manual.xml (Chapter Session Management):
101            Fixed unprecise description for Save Session.
102    
103    2004-07-31  Jan-Oliver Wagner <[email protected]>
104    
105            Started translation of Users Manual into german.
106    
107            * Doc/manual/thuban-manual-de.xml: New. German Users Manual.
108    
109            * Doc/manual/Makefile: Added build instructions for german
110            users manual.
111    
112            * Doc/manual/thuban-manual.xml: Minor corrections in Introduction.
113    
114    2004-07-28  Jan Sch�ngel  <[email protected]>
115    
116            * Extensions/umn_mapserver/mapfile.py(MF_Metadata): Changed all class
117            functions. Now all metadata will handle by the function and its not
118            needed to initialize it from outside. Therefor the associated mapobj
119            will be stored in the Metadata Object. So we can use the special
120            functions from the associated mapobj to get the Metadata.
121            Therefor all initialization code for the metadata is removed from the
122            other classes.
123            (MF_Layer): Added a function to get the metadata object.
124            (MF_Map): Added a function to set the mappath, the path where
125            the mapfile ist stored.
126    
127            * Extensions/umn_mapserver/mf_export.py(thuban_to_map): Changed the code
128            to set the extent in the mapfile. Now the code is set by the displayed
129            data in the Thuban-view.
130            (export_mapfile): The shapepath is now set empty, until relative
131            pathnames are supported.
132    
133            * Extension/umn_mapserver/mf_handle.py: Added a dialog to handle
134            metadata. Yet only mapfile metadata are supported. Layer and class
135            supported are not implemented.
136            Added a dialog to handle layer informations. The dialog only shows the
137            selected layer at the moment.
138    
139            * Extensions/umn_mapserver/mf_import.py(import_mapfile): Changed the
140            code for setting the extent in thuban. Now the extent is set to the
141            given extent from the mapfile.
142            Fixed a logical mistake. Now the extent is set when realy a layer is
143            loaded, and not if one is selected to load.
144    
145            * Extensions/umn_mapserver/sample/iceland.html: Added code to zoom and
146            move the shown map in the browser.
147    
148            * Extensions/umn_mapserver/sample/iceland.map: Added a new metadata
149            line to the mapobj and added metadata to the political layer.
150    
151            * Extensions/umn_mapserver/test/test_mapserver.py: Changed the test
152            for Metadata.
153    
154    2004-07-26  Martin Schulze  <[email protected]>
155    
156            * Thuban/Lib/classmapper.py (ClassMapper.has): Added the new
157            ClassMapper
158    
159            * test/test_classmapper.py (TestMapping.test_mapper): Added a Test
160            case for the new ClassMapper
161    
162    
163    2004-07-22  Bernhard Herzog  <[email protected]>
164    
165            * Thuban/UI/viewport.py (ViewPort.VisibleExtent): New.  Return the
166            visible extent of the map in projected coordinates
167    
168            * test/test_viewport.py (SimpleViewPortTest.test_default_size)
169            (SimpleViewPortTest.test_init_with_size): Add some VisibleExtent()
170            tests.
171            (SimpleViewPortTest.test_visible_extent): New. The real test for
172            VisibleExtent()
173    
174    2004-07-22  Bernhard Herzog  <[email protected]>
175    
176            * test/test_viewport.py: Use support.run_tests as the main
177            function when running asa script.
178    
179    2004-07-22  Jan Sch�ngel <[email protected]>
180    
181            * Extensions/umn_mapserver/mf_export.py: Added "import os"
182            Removed the old "import Thuban.UI.mainwindow" code.
183            (tbextent_to_map): Removed the extra function and at the code direct
184            to "thuban_to_map" function.
185            (write_creatorcomment): Added. Now a short comment is added to the
186            beginning of an generated mapfile.
187            (export_mapfile): Now the Path and filename are saved in to variables,
188            and not together in one variable. This is needed for the new
189            write_creatorcomment function.
190                    
191            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Added the
192            import module "re". Also added Range and the ClassGroupRange import
193            from Thuban. Both are needed for the new range expression import.
194            (create_rangeexpression): Added. Creates a Range Expression in Thuban
195            style from a given mapfile expression.
196            (added_rasterlayer): Make some small code changes. The shapepath is
197            now stored in an extra variable and the clazz_name is set empty if no
198            class name set in the mapfile.
199            Changed the Error message for Range Expressions, becaus the new
200            function create a error string which will be shown in the dialog.
201    
202            * Extensions/umn_mapserver/test/test_mapserver.py: Added a test for the
203            range expression import.
204    
205    2004-07-21  Jan-Oliver Wagner <[email protected]>
206    
207            * Extensions/umn_mapserver/README: Added hint that
208            installation as root can be avoided. Removed all tabs.
209    
210    2004-07-16  Bernhard Herzog  <[email protected]>
211    
212            * test/test_viewport.py
213            (ViewPortTest.test_changing_map_projection): Check that changing
214            the projection of an empty map shown in a viewport doesn't lead to
215            exceptions in the viewport's handler for the
216            MAP_PROJECTION_CHANGED messages
217    
218            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Only
219            try to keep the same region visible when the map actually contains
220            something
221    
222    2004-07-15  Jan Sch�ngel <[email protected]>
223    
224            * Extensions/umn_mapserver/mapfile.py: Added a function to get the
225            mappath directly from the mapobj. Is needed because of the changes
226            in mf_import.py.
227            (MF_Layer.add_thubanclass): Added a new comment.
228            (MF_Map.set_extent): Fixed a bug with exporting empty mapobj. If the
229            mapobj is empty there is no extent get from thuban an so no one can
230            set to th mapobj.
231            
232            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Updated
233            the discription.
234            Split the funktion in to three smaller ones. The new functions are
235            add_rasterlayer, add_polygonlayer and select_layer2import.
236            Removed the mapfilepath and filepath initialisation, because its know
237            include in the new functions.
238            Now nothing will be imported if cancel is pressed in the
239            layer choice dialog.
240    
241    2004-07-14  Jan Sch�ngel <[email protected]>
242    
243            * Extensions/umn_mapserver/mapfile.py: Added ClassGroupDefault to
244            import.
245            (MF_Symbolset): Removed the extra variable for numsymbols.
246            (MF_Class.__init__): Added a comment to the exception clause.
247            Removed the extent init, because it was not needed anymore.
248            (MF_Layer.add_thubanclass): Added the code to set the class name to
249            the expression value from thuban if no label is defined.
250            Added the code to export Range expressions from thuban to the mapfile.
251            (MF_Map.set_extent): Removed the exception and replace it by some if
252            code. If the size of a map is not defined the size will be set to 1,1.
253            This is necessary because if the extent is set, mapscript checks if
254            the size is greater than zero.
255            (MF_Web): Added the get and set function for the template.
256    
257            * Extensions/umn_mapserver/mf_export.py: Added the function to check
258            if a mapobject exists and used it to set the status of the menu items.
259            If no mapfile exists the settings could not be edditied.
260            Define after which menuitem the exportitem will include.
261            
262            * Extensions/umn_mapserver/mf_handle.py: Removed the import
263            Thuban.UI.mainwindow clause, because it is not needed.
264            Added the command Refresh() to all "OnChangeColor()" functions,
265            because the color preview window was not updated on a color change.
266            Added the function to check if a mapobject exists and used it to set the
267            status of the menu items. If no mapobject exists the settings could not
268            be edditied.
269            (Map_Dialog): Moved the imagetype selector from the
270            Outputformat_Dialog to Map_Dialog and removed Outputformat_Dialog.
271            (Web_Dialog): Removed the name label and added the template textbox.
272    
273            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Replace
274            the exception handling on loading the layers by an if statement. It
275            is not necessary to us the exception there.
276            The Filepath creation now use os.path.join to build the path.
277    
278            * Extensions/umn_mapserver/test/test_mapserver.py: Moved the testMap
279            definition from global to the setUp function. Now the testMap will
280            initialize new on each test.
281    
282            * Extensions/umn_mapserver/sample/iceland.map: Include three new
283            classes in the Line Layer, to test logical Expressions.
284            Set the status of the class "Point9" in the Point Layer to off
285            
286    2004-07-13  Bernhard Herzog  <[email protected]>
287    
288            * Thuban/UI/baserenderer.py
289            (BaseRenderer.render_map_incrementally): Fix a logic bug in the
290            optimization that tries not to draw layers under a raster layer.
291            The bug was harmless.  All it effectively did was to produce The a
292            strange messages about not being able to draw Layer instances for
293            all vector layers below a raster layer which would be invisible
294            anyway because the raster layer currently always covers the entire
295            window
296    
297    2004-07-08  Jan Sch�ngel <[email protected]>
298    
299            * Extensions/umn_mapserver/mapfile.py: Added code to generade and get
300            a list of supported outputformats. This formats are not alle supported
301            because there is no possibility to get the outputformat without the
302            name known. Make some formal changes to the code.
303            (MF_Map.set_name()): Fixed a bug if the name is None.
304    
305            * Extensions/umn_mapserver/mf_handle.py: Removed the image_type import
306            statement, because its not needed anymore. The Outputformat is now
307            given as string from the object. Make some formal changes to the code.
308    
309            * Extensions/umn_mapserver/test/test_mapserver.py: Added new test for
310            most of the new setting which were added during the last changes.
311            Removed the MF_Size Test.
312            
313            * Extensions/umn_mapserver/test/test.map: Added a new class to the
314            cultural Layer to test expressions and the the status of that layer
315            from on to default.
316            Changed the data path the the correct Thuban Data
317            Added the Outputformat Object and Symbol Object
318            
319    2004-07-07  Jan Sch�ngel <[email protected]>
320    
321            * Extensions/umn_mapserver/mapfile.py: Added some new
322            settings to edit (outputformat, label, imagetype)
323    
324            * Extensions/umn_mapserver/mf_handle.py: Added some setting to
325            the Label Dialog and add the OutputDialog.
326            Make some changes to the code order.
327    
328    2004-07-06  Jan Sch�ngel <[email protected]>
329    
330            * Extensions/umn_mapserver/mapfile.py: Added the symbolObj, pointObj
331            and line Obj and add the scalebar_status_type, scalebar_style_type and
332            scalebar_position_type.
333            Added the symbol- and symbolsetObject (MF_Symbol,MF_Symbolset). The
334            are only used to create a Symbol like the circle in Thuban.
335            Added the scalebarObject (MF_Scalebar)
336            (MF_Class): Added set_status and get_status.
337            (MF_Layer.add_thubanclass): Added code to set the class status
338            (MF_Map): Added code to handle the symbols and scalebar
339            (MF_Label): Added the set_partials and get_partials functions
340            
341            * Extensions/umn_mapserver/mf_export.py: Added MF_Symbol to import
342            from mapfile. Added a function to create a circle object like the one
343            from thuban if no one exists.
344            
345            * Extensions/umn_mapserver/mf_handle.py: All colors are now set when
346            press ok in the assosiated dialog and not at the end of the
347            colordialog.
348            Added the Dialog for the Scalebar.
349            (Label_Dialog): Added the offset option
350    
351            * Extensions/umn_mapserver/mf_import.py: Added code to import the
352            status of the Classes.
353            Fixed a bug with the projection. Now the to_meter parameter will be
354            added to the Projection only if it doesn't exists.
355    
356    2004-07-01  Jan Sch�ngel <[email protected]>
357    
358            Added the functionality to handle the content thuban is not
359            able to handle directly.
360    
361            * Extensions/umn_mapserver/mf_handle.py: New. This module extents
362            Thuban with the possibility to edit the mapfile content.        
363            
364            * Extensions/umn_mapserver/mf_import.py: Added the possibility
365            to import mapfiles without any layer selected. So it is possible
366            to edit the other settings in a mapfile.
367            (import_mapfile): Added code to use the editing functions.
368            Added the possibility to import the projection to a layer if one
369            is defined.
370            Status settings (On,Off) will now set in thuban (visible, invisible).
371            fixed a bug with with classnames. If no classname is set in mapfile
372            the value in Thuban will set to the expression.
373            
374            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Added the
375            possibility to save a new mapfile or use the old one which is
376            imported or new created.
377            Added code to use the editing functions.
378            Remove some not needed import statements
379    
380            * Extensions/umn_mapserver/mapfile.py: Added new types which are
381            need for the editing functions.
382            Added needed set-functions for the editing functions.
383            Added the possibility to export rasterimages.
384            Added new classes (MF_Web, MF_Label, MF_Legend, MF_Symbol,
385            MF_SymbolSet). MF_Symbol and MF_SymbolSet are not needed at the
386            moment.
387            (MF_Class.set_thubanstyle): Now point layers will set to a default
388            symbol to show a circle in mapserver and not only a 1px dot.
389            (MF_Style.__init__): Fixed a bug with the color. Color was not set
390            correct before.
391            (MF_Size): Removed, because it is not needed.
392            
393            * Extensions/umn_mapserver/README: Added the hints to use the
394            export and editing functions, too.
395    
396            * Extensions/umn_mapserver/sample/iceland.map: Added the
397            new parameter "UNITS METERS".
398            Change the political layer to status OFF.
399    
400            * Extensions/umn_mapserver/sample/README: Added some
401            more details to setup the sample in the MapServer.
402            
403    2004-06-26  Bernhard Reiter <[email protected]>
404    
405            * Extensions/svgexport/test/test_svgmapwriter.py:
406            Removed class VFile and used standard StringIO instead.
407    
408    2004-06-23  Jan Sch�ngel  <[email protected]>
409    
410            Add the export function to the umn_mapserver extension.
411    
412            * Extension/umn_mapserver/mf_export.py: New. This module extents
413            Thuban with the possibility to export the Thuban content.
414    
415            * Extensions/umn_mapserver/mapfile.py: Expand the classes to use
416            with the export module. Especially added the possibility to
417            add thuban objects directly to the map objects.
418    
419            * Extensions/umn_mapserver/mf_import.py: Removed the wxCHANGE_DIR,
420            because of the hint from Bernhard Herzog.
421            Corrected the handling of absolute pathnames.
422            Changed the Text of the Menu-Item, now the beginning is upper case.
423    
424            * Extensions/umn_mapserver/README: Added the --with-tiff statement.
425    
426    2004-06-16  Jan Sch�ngel  <[email protected]>
427    
428            Add a sample and make some changes.
429    
430            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
431            import from * to explicit used statements. Changed the
432            Thuban.UI.mainwindow import phrase, too.
433            (import_mapfile):Corrected a clerical mistake.
434            Added wxCHANGE_DIR in OpenFile Dialog.
435            Added a MultipleChoiceDialog, to select the layers to load from
436            mapfile into thuban. Thereby the projection is only set if one layer
437            is selected.
438            Added the possibility to handle relative pathnames which uses
439            up-level references.
440            Removed some doubled code.
441            Corrected an error with integer values used as label in thuban
442            ClassGroup.
443            
444            * Extensions/umn_mapserver/sample: New.
445    
446            * Extensions/umn_mapserver/sample/README: New. Describes the
447            usage of the sample files.
448    
449            * Extensions/umn_mapserver/sample/iceland.map: New. This is
450            a suitable .map-file for the iceland data.
451    
452            * Extensions/umn_mapserver/sample/index.html: New. The template
453            for the mapfile.  
454    
455            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
456            file for the Iceland Application on web.
457    
458            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
459            some details.
460    
461            * Extensions/umn_mapserver/test/test_mapserver
462            (mapserver_import_Test_generalClasses.test_MF_Color):
463            Corrected the thubancolor test.
464    
465    2004-06-15  Jan Sch�ngel  <[email protected]>
466    
467            * Extensions/umn_mapserver/README: New. Install instruction.
468    
469    2004-06-14  Bernhard Reiter <[email protected]>
470    
471            * libraries/thuban/cpl_mfile.h: Added copyright header.
472    
473            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
474            Free Software License so that it is most useful with gdalwarp
475            and bmpdataset.
476    
477    2004-06-14  Bernhard Herzog  <[email protected]>
478    
479            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
480            import of wxPython.wx itself (as opposed to the contents of
481            wxPython.wx).  For some reason wxPython.wx is available as
482            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
483            wrt. wxPython 2.4.
484    
485    2004-06-10  Jan Sch�ngel  <[email protected]>
486    
487            Initial version of new extension "umn_mapserver".  This extension aims
488            to manage configuration for the UMN MapServer application.  This
489            inital version just imports the .map-files and displays all, Thuban is
490            capable of.
491    
492            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
493    
494            * Extensions/umn_mapserver/test/README: New. Describes how to run the
495            tests.
496    
497            * Extensions/umn_mapserver/test/test.map: New. This is a test
498            .map-file for automated tests of the umn_mapserver extension of
499            Thuban.
500    
501            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
502            UMN Mapserver classes.
503    
504            * Extensions/umn_mapserver/__init__.py: New. Init to make this
505            directory a package.
506    
507            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
508            '.map'-file objects.
509    
510            * Extensions/umn_mapserver/mf_import.py: New. This module extends
511            Thuban with the possibility to handle UMN MapServer mapfiles.
512    
513    2004-06-03  Bernhard Herzog  <[email protected]>
514    
515            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
516            to a tuple before using it as arguments to the % operator.  This
517            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
518            reported today on thuban-list by Jan Sch�ngel
519    
520            * test/test_layer.py (TestLayerModification.setUp): Save the
521            filename as an instance variable so we can refer to it in tests
522            (TestLayerModification.test_tree_info): Uncomment this method
523            again and make it work.  This tests for the formatting issue
524            filed in RT#2239 on 2004-01-13
525    
526    2004-05-28  Bernhard Herzog  <[email protected]>
527    
528            * Thuban/UI/baserenderer.py: Fix some typos.
529    
530    2004-05-18  Jan-Oliver Wagner <[email protected]>
531    
532            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
533            by increasing a field size.
534    
535    2004-05-17  Bernhard Herzog  <[email protected]>
536    
537            Update to newest shapelib and get rid of Thuban specific
538            extensions, i.e. use the new DBFUpdateHeader instead of our
539            DBFCommit kludge
540    
541            * libraries/shapelib/shpopen.c: Update to version from current
542            shapelib CVS.
543    
544            * libraries/shapelib/shapefil.h: Update to version from current
545            shapelib CVS.
546    
547            * libraries/shapelib/dbfopen.c: Update to version from current
548            shapelib CVS.
549            (DBFCommit): Effectively removed since shapelib itself has
550            DBFUpdateHeader now which is better for what DBFCommit wanted to
551            achieve.  
552            We're now using an unmodified version of dbfopen.
553    
554            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
555            value '1' to the Lib.dbflibc extension.  This simply reflects the
556            shapelib and pyshapelib updates
557    
558    2004-05-16  Jan-Oliver Wagner <[email protected]>
559    
560            Finished introduction of Menu.FindOrInsertMenu.
561    
562            * Extensions/drawshape/drawshape.py: Add the command
563            to the experimental menu additionally to the toolbar.
564    
565            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
566            finding menu on its own.
567    
568            * Doc/manual/thuban-manual.xml: updated sample file
569            to use FindOrInsertMenu().
570    
571            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
572            instead of finding menu on its own.
573    
574    2004-05-11  Jan-Oliver Wagner <[email protected]>
575    
576            * test/test_menu.py (MenuTest.test): Added testing
577            of method Menu.FindOrInsertMenu.
578    
579    2004-05-10  Jan-Oliver Wagner <[email protected]>
580    
581            Introduce and use Menu.FindOrInsertMenu.
582    
583            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
584              given menu or, if not found, insert it.
585    
586            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
587            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
588            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
589            menu on its own.
590    
591    2004-05-06  Jan-Oliver Wagner <[email protected]>
592    
593            Introduce a abstract ColorDialog class and remove
594            and outdated file.
595    
596            * Thuban/UI/proj4dialog.py: Removed. It is has been
597            replaced by projdialog for quite a while and is not used
598            anymore.
599    
600            * Thuban/UI/colordialog.py: New. Abstraction for color selection
601            dialog(s).
602    
603            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
604            Now calls the abstract ColorDialog instead of wxColourDialog.
605            This also removed the dependency to Color class conversion
606            from this function.
607    
608    2004-05-04  Frank Koormann  <[email protected]>
609    
610            * Extensions/bboxdump/__init__.py: Fixed string left over from
611            copying.
612    
613            * Extensions/bboxdump/bboxdump.py (bboxdump):
614            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
615            xrange(layer.NumShapes()). Compile the bboxmessage from a list
616            of formatted outputs (string.join) instead of appending to the
617            message. Two progress bar dialogs to report progress on the sometimes
618            lenghty processing.
619    
620    2004-04-22  Frank Koormann  <[email protected]>
621    
622            New Extension to dump bounding boxes of all shapes of the selected
623            layer. An optional column can be specified to group the objects,
624            in this case the bounding box is a union of the separate boxes.
625            Dump can be displayed in a ScrolledMessageDialog or written to file.
626            The Extension is simply a combination of available and well tested
627            Thuban functionality.
628    
629            * Extensions/bboxdump/__init__.py: New: Init to make this
630            directory a package.
631    
632            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
633            all shapes of the selected layer.
634    
635    2004-04-22  Jan-Oliver Wagner <[email protected]>
636    
637            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
638            strings to be i18n now.
639    
640    2004-04-18  Jan-Oliver Wagner <[email protected]>
641    
642            Changing popup menu of legend from direct building
643            to using the Menu construction as used for the mainwindow.
644    
645            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
646            layer_to_bottom, layer_visibility
647            (MainWindow.LayerToTop): New. Put current layer to the top.
648            (MainWindow.LayerToBottom): New. Put current layer to bottom.
649            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
650            Replace 1,0 by True, False.
651            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
652            current layer.
653            (MainWindow.LayerShowTable): Removed raising of dialog.
654            (_has_selected_layer_visible): New. Support function.
655    
656            * Thuban/UI/legend.py: ID_POP_xxx: removed.
657            (LegendPanel.__init__): Removed EVT_MENU bindings.
658            (LegendTree._OnRightClick): Replace direct creation of
659            menu via wx Classes by applying the menu definition
660            as of Menu class of menu.py.
661            
662    2004-04-16  Jan-Oliver Wagner <[email protected]>
663    
664            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
665        button string to stronger clearify that Thuban will be closed when hitting
666            the button.
667    
668            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
669            Now for layers without a ShapeStore a corresponding message is given
670            to the user, that this layer has no table to show.
671    
672    2004-04-15  Martin Schulze  <[email protected]>
673    
674            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
675            recalculate the format for the internal render engine as well.
676    
677            * Extensions/wms/properties.py (wmsProperties): First start for a
678            properties dialog.  It's functional for a first selection of
679            layers, but still has some weired wxWidgets/GTK problems but
680            beautification can be done later.
681    
682            * Extensions/wms/layer.py: Added more documentation
683            (WMSLayer.getFormats): New: Return list of supported image formats
684            by the WMS server
685            (WMSLayer.getLayers): New: Return the list of layer names
686            supported by the WMS server
687            (WMSLayer.getLayerTitle): New: Return the title of the named layer
688            (WMSLayer.getWMSFormat): New: Return the image format that is used
689            for WMS GetMap requests
690            (WMSLayer.setWMSFormat): New: Set the image format that is used
691            for WMS GetMap requests
692            (WMSLayer.__init__): Move away from using only one layer to using
693            a list of layers (unsorted at the moment, though).
694            (WMSLayer.getVisibleLayers): New: Return the list of names for all
695            visible layers
696            (WMSLayer.setVisibleLayers): New: Set the list of names for all
697            visible layers
698    
699            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
700            order to establish a clean structure.
701    
702            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
703            own in order to establish a clean structure.
704    
705    2004-04-13  Martin Schulze  <[email protected]>
706    
707            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
708            support for oldstyle (WMS 1.0 apparently) image format
709            specification.
710    
711            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
712            supported graphic formats back to JPEG and BMP, PNG and others are
713            too *cough* experimental...  Sorry, I meant to filter this out
714            before I committed this part.  This should make the WMS extension
715            run from CVS again.
716            (wms_dialog): Reset an empty URL to None so that the subsequent
717            program can depend on this, since the dialog will indeed return an
718            empty URL, causing another declaration of love by Python.
719    
720            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
721            Whenever a native BoundingBox request cannot be fulfilled, check
722            whether the requested SRS is EPSG:3426, in which case return the
723            LatLonBoundingBox values.
724    
725            * Extensions/wms/test/test_parser.py
726            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
727            ignoring AUTO:* SRS.
728            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
729            Added another test method to test whether the LatLonBoundingBox
730            values will be returned if BoundingBox values are requested with
731            SRS set to EPSG:3426.
732    
733            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
734            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
735            the moment by placing them into a variable which is currently
736            unused.  Also test whether the EPSG SRS is numerical as it should
737            be and add an error message if it is not.
738    
739            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
740            appear in the real world as well.  Since we cannot handle them yet
741            (OGCLib can't either), we will ignore them for the moment.
742    
743            * Extensions/wms/parser.py: Use a variable for denoting the sample
744            filename
745            (WMSCapabilitiesParser.peekLayers): Added support for error
746            messages during grok().  They will be aggregated in an array and
747            may be displayed later.  We may have to add a classification
748            "Warning" and "Error" to this.  That requires more experience,
749            though, since not every error may be lethal.
750    
751            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
752            ShowTable() dialog/frame when the user attempts to display it
753            while it has been opened before already and not closed again.
754    
755    2004-04-11  Martin Schulze  <[email protected]>
756    
757            * Extensions/wms/infodialog.py: Adjusted the class documentation
758    
759            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
760            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
761            wxWidgets variants.
762            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
763    
764            * Extensions/wms/infodialog.py: Added an information dialog that
765            will display various information about the WMS current resource,
766            so that additional information such as the title, the abstract,
767            fees and access constraints can be displayed for the user if they
768            are documented in the WMS XML.
769    
770    2004-04-10  Martin Schulze  <[email protected]>
771    
772            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
773            string handling.  It's "foo".lower() and not lower(foo) without
774            lower imported from strings or something.
775    
776            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
777            from capabilities.py and parser.py.  Implement priority list for
778            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
779            and GIF are supported here, but not yet by main Thuban.  Hence,
780            support for them may be removed later.  Special contribution to
781            usability: get wxWidgets to change the cursor when we're waiting
782            for data from the network so the user won't start to worry.  This
783            causes a redrawing error/warning, though.
784    
785            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
786            the DOM object.
787    
788    2004-04-01  Martin Schulze  <[email protected]>
789    
790            * Extensions/wms/capabilities.py: Adjusted documentation
791            (WMSCapabilities.__init__): Improved documentation, fixed syntax
792            (WMSCapabilities.saveCapabilities): Only catch IOError when
793            handling files
794            (WMSCapabilities.loadCapabilities): Only catch IOError when
795            handling files
796            __main__: corrected variable naming
797            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
798            class a specialisation of WMSCapabilitiesParser as well.  Also
799            execute grok() after loading or fetching capabilities, if that
800            went well, so that subsequent calls can already access the data.
801            (WMSCapabilities.getVersion): Export the used version of the
802            GetCapabilities request, so we can use it for subsequent calls,
803            i.e. for GetMap requests.
804            (WMSCapabilities.fetchCapabilities): Added proper error handling
805            when the GetCapabilities request failed, so that the surrounding
806            program can act accordingly.
807    
808    2004-03-30  Martin Schulze  <[email protected]>
809    
810            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
811            Adjusted the getLayerSRS method to return the list of SRSes
812            extracted from <SRS> elements instead of <BoundingBox> elements.
813            Added a bit of documentation as well.
814            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
815            since it was only implemented due to a misunderstanding.
816    
817            * Extensions/wms/test/test_parser.py
818            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
819            reflect the corrected interpretation of the standard: i.e. a layer
820            does not have to define a BoundingBox for all SRSes it supports.
821            Hence the <SRS></SRS> specification is authoritative, not the list
822            of BoundingBoxes.
823            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
824            to ensure None is returned for a non-existing SRS.
825            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
826            since it is not applicable anymore.  Listing more SRSes in <SRS>
827            elements is valid according to the specs.
828    
829    2004-03-26  Bernhard Reiter <[email protected]>
830    
831            * README: Nicer formatting of text. Improved descriptions.
832            Reflected wxWidgets name change.
833            
834            * Thuban/UI/about.py: Extended copyright to 2004 and added
835            information about the thuban-devel mailinglist.
836    
837    2004-03-24  Martin Schulze  <[email protected]>
838    
839            * Extensions/wms/capabilities.py: Renamed the class to contain
840            'WMS', also added a linebreak where required
841    
842            * Extensions/wms/parser.py: Finally added the XML parser for the
843            GetCapabilities response.
844    
845            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
846            <SRS> elements match the <BoundingBox> elements, except for the
847            layer 'beschriftung'.
848    
849            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
850            since Python uses unicode strings internally, otherwise
851            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
852            the SRS will be calculated anyway and this method is obsoleted by
853            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
854            Move loading the sample file into the setUp method.  Added a test
855            for finding the integrity problem in the sample response.
856            Improved formatting.
857    
858            * Extensions/wms/domutils.py: Added convenience routines for
859            handling of Document Object Model (DOM) nodes.
860    
861            * Extensions/wms/test/test_domutils.py: Added a test for the
862            domutils module
863    
864    2004-03-19  Martin Schulze  <[email protected]>
865    
866            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
867            Moved path detection and adding into a module of its own,
868            adjustpath, which exports thubandir as main Thuban directory.
869    
870            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
871            detection and adding into a module of its own, adjustpath, which
872            exports thubandir as main Thuban directory.  Reorganised the
873            module in order to support the SkipTest feature for Thuban test
874            cases.
875    
876            * Extensions/wms/test/adjustpath.py: Moved path detection and
877            adding into a module of its own.
878    
879    2004-03-18  Martin Schulze  <[email protected]>
880    
881            * Extensions/wms/test/test_parser.py: Added another test for
882            checking whether the WMS XML parser (to be implemented) returns
883            the information we expect.  This requires a sample WMS WML file
884            (sample.xml) which has been extracted from the frida server and
885            "improved" manually.
886    
887            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
888            main Thuban directory to the path in order to be able to import
889            random modules.  Adjusted the PyOGCLib detection to reuse the
890            information gathered.  Also added a note about the PYTHONPATH
891            environment variable.
892    
893            * Extensions/wms/test/test_ogclib.py: The format specification is
894            a mime-type, not a graphic format, hence image/jpeg wou ld be the
895            proper format and not JPEG.  We'll also have to take care of the
896            encoding of / as %2F.
897    
898    2004-03-16  Martin Schulze  <[email protected]>
899    
900            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
901            comprehensive test for the getMapURL method, built compare URLs
902            according to the documentation in OGC 01-068r3
903    
904            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
905            class WMSCapabilities to manage capabilites, will incorporate
906            parsing the capabilities response and provide details for other
907            classes.
908    
909    2004-03-12  Bernhard Herzog  <[email protected]>
910    
911            Support views in addition to normal tables in the postgis
912            shapestore
913    
914            * Thuban/Model/postgisdb.py
915            (PostGISShapeStore._fetch_table_information): Add a fallback for
916            the case where the table name is not in the geometry_columns
917            table.  This is usually the case for views.  Also, set
918            self.shapestore here.
919            (PostGISShapeStore.ShapeType): No need to query the database all
920            the time.  The shape type is now determined in
921            _fetch_table_information
922    
923            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
924            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
925            New parameter to specify views.
926            (PostGISDatabase.has_data): Also compare the views.  New views
927            parameter
928            (PostGISDatabase.initdb): Create the views.
929            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
930            view
931    
932            * test/test_postgis_db.py
933            (TestPostGISShapestorePointFromViews): New.  Test a
934            PostGISShapeStore with a view
935            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
936            the geometry_column explicitly to test whether that works
937    
938    2004-03-12  Bernhard Herzog  <[email protected]>
939    
940            Final step for explicit id/geometry columns: Loading and saving
941    
942            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
943            with the following changes:
944            (dbshapesource): Two new attributes id_column and geometry_column
945    
946            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
947            (SessionSaver.write_session): Use the new namespace
948            (SessionSaver.write_data_containers): Write the new dbshapesource
949            parameters
950    
951            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
952            the new file format version
953            (SessionLoader.start_dbshapesource): Handle the new db parameters
954    
955            * test/test_save.py: Update to the new dtd and namespace
956            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
957            mock object to provide a working IDColumn method.
958    
959            * test/test_load_1_0.py: New.  Copy of the test_load.py before
960            today's changes but with the round-trip tests removed.
961    
962            * test/test_load_0_9.py: Update doc-string.
963    
964            * test/test_load.py: Update all .thuban files to the new dtd and
965            namespace.
966            (TestPostGISLayer.file_contents): Add the new dbshapesource
967            paramters
968    
969    2004-03-11  Bernhard Herzog  <[email protected]>
970    
971            Next step for explicit id/geometry columns: User interaction
972    
973            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
974            the dialog is constructed. Add combo boxes to select id and
975            geometry column.  Rename some instance variables.
976            (ChooseDBTableDialog.GetTable): Return id and geometry column
977            names
978            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
979            selections in the table list
980    
981            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
982            and geometry_column
983    
984            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
985            parameters for id_column and geometry column of PostGISShapeStore
986            here as well.
987    
988            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
989            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
990            (PostGISConnection.GeometryTables): Use a better query to
991            determine which relations in the database might be usable for
992            shapestores.  Now supports views as well but is more PostgreSQL
993            specific
994            (PostGISConnection.table_columns): New. Somewhat experimental
995            method to let the db dialogs provide lists of columns to users so
996            that they can select id and geometry columns.
997            (PostGISTable.__init__): The default value of the id_column
998            parameter is now None it still means "gid" effectively, though.
999            (PostGISTable.IDColumn): New introspection method to return a
1000            column object for the id column
1001            (PostGISShapeStore.GeometryColumn): New introspection method to
1002            return a column object for the geometry column
1003    
1004            * test/test_postgis_db.py
1005            (TestPostGISConnection.test_gis_tables_non_empty):
1006            Removed. Subsumed by the new:
1007            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
1008            New. Tes the GeometryTables and table_columns methods with actual
1009            tables and views.
1010            (PointTests.test_id_column, PointTests.test_geometry_column):
1011            New. tests for the new methods.
1012            (TestPostGISShapestorePoint.setUp)
1013            (TestPostGISShapestorePointSRID.setUp)
1014            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
1015            instance variables needed by the new tests
1016    
1017    2004-03-11  Bernhard Herzog  <[email protected]>
1018    
1019            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
1020            numbers given to ReadValue are ordinals.
1021    
1022    2004-03-11  Bernhard Herzog  <[email protected]>
1023    
1024            Elimiate the requirement for PostGIS tables to have a column
1025            called "gid".
1026    
1027            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
1028            id_column to specify which column to use to identify rows.  Also
1029            new instance variables id_column and quoted_id_column
1030            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
1031            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
1032            (PostGISTable.SimpleQuery): Use the id column name provided to the
1033            constructor instead of "gid"
1034            (PostGISShapeStore.__init__): New parameter id_column analogously
1035            to PostGISTable.__init__.  This parameter is simply passed through
1036            to the base class constructor
1037            (PostGISShapeStore._create_col_from_description): Fix typo in
1038            doc-string
1039            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
1040            (PostGISShapeStore.ShapesInRegion): Use the id column name
1041            provided to the constructor instead of "gid"
1042    
1043            * test/postgissupport.py
1044            (PostgreSQLServer.get_default_static_data_db): New static table
1045            landmarks_point_id with an id column != "gid.  Update the comments
1046            a bit.
1047            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
1048            doc-
1049            (upload_shapefile): New parameter gid_column to use a name other
1050            than "gid" for the column to store the shape ids
1051    
1052            * test/test_postgis_db.py (TableTests): New.  Mixin-class
1053            containing all tests previously in TestPostGISTable.  The actual
1054            tests are the same but the code is a bit more configurable to
1055            allow for different id columns etc.
1056            (TestPostGISTable): Derive from TableTests now for the actual
1057            tests.
1058            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
1059            except that it the landmarks_point_id table to test the id_column
1060            parameter
1061            (PointTests): Extend the doc-string
1062            (TestPostGISShapestorePointExplicitGIDColumn)
1063            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
1064            from PointTests to test the explicit id_column parameter.  One
1065            tests with the name of the column holding the shape ids, the other
1066            uses PostgreSQL's OID column.  For the latter a number of methods
1067            have to be overwritten to make them independent of the actual id
1068            values.
1069    
1070    2004-03-08  Silke Reimer  <[email protected]>
1071    
1072            Update debian directory:
1073    
1074            * debian/changelog: Added new version.
1075            * deiban/rules: Updated management of patches (with cbds)
1076            * debian/control: Added cbds to dependencies
1077            * debian/patches/*: New. Adds better support for patches of thuban in
1078                            debian
1079            * debian/menu: Syntax of menu changed slightly
1080            * debian/setup.py.patch: removed because it has been moved to
1081                            debian/patechs/setup.py.patch
1082            
1083    
1084    2004-02-26  Bernhard Herzog  <[email protected]>
1085    
1086            Create the Doc/technotes directory for text files with information
1087            for developers
1088    
1089            * Doc/technotes/README: New. README for the technotes
1090    
1091            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
1092            Thuban
1093    
1094            * Doc/technotes/release_process.txt: New. Used to be
1095            HOWTO-Release.  Now slightly adapted to technote formatting style.
1096    
1097            * HOWTO-Release: Removed.  It's contents are now in
1098            Doc/technotes/release_process.txt
1099    
1100    2004-02-25  Bernhard Herzog  <[email protected]>
1101    
1102            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
1103            version of wxWindows the module was compiled with so we can check
1104            that against the wxPython version.
1105    
1106            * Thuban/version.py (thuban_branch, thuban_release): New variables
1107            controlling which and how Thuban versions are shown.  See the
1108            comments for details.
1109            (verify_versions): Also check that the wx version that wxproj is
1110            compiled against matches that of the wxPython we use at runtime
1111    
1112    2004-02-20  Bernhard Herzog  <[email protected]>
1113    
1114            * Extensions/wms/wms.py (epsg_code_to_projection): Use
1115            get_system_proj_file to read the epsg projections.  The old way
1116            depended on the current directory being the top Thuban directory.
1117    
1118    2004-02-20  Bernhard Herzog  <[email protected]>
1119    
1120            * Extensions/svgexport/test/test_svgmapwriter.py
1121            (TestVirtualDC.test_clippath): Remove a debug print
1122    
1123    2004-02-20  Bernhard Herzog  <[email protected]>
1124    
1125            * Extensions/svgexport/__init__.py: New.  Turn
1126            Extensions/svgexport into a package.
1127    
1128            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
1129            doc-string a bit.  The doc-string must come first, otherwise it's
1130            not a doc-string.  The __future__ import must be the first thing
1131            after the doc-string.  Use only double quotes in doc-strings.
1132            Single quotes trip up emacs syntax highlighting if the text
1133            contains apostrophes.
1134    
1135    2004-02-20  Bernhard Herzog  <[email protected]>
1136    
1137            * Extensions/svgexport/test/__init__.py,
1138            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
1139            suite for svgexport
1140    
1141            * test/runtests.py (find_test_modules): New. Function with the
1142            module finding code from main.
1143            (main): Use find_test_modules to figure out the default test
1144            modules and take modules from Extensions.svgexport.test too.
1145    
1146    2004-02-19  Bernhard Herzog  <[email protected]>
1147    
1148            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
1149            the mainwindow has a reference to the map of the initial session.
1150            This fixes a bug introduced with the fix for RT#2245
1151    
1152    2004-02-19  Bernhard Herzog  <[email protected]>
1153    
1154            * Extensions/svgexport/svgsaver.py,
1155            Extensions/svgexport/svgmapwriter.py,
1156            Extensions/svgexport/maplegend.py: Added again.  This time in the
1157            correct place.
1158    
1159    2004-02-17  Bernhard Herzog  <[email protected]>
1160    
1161            Fix for RT#2245
1162    
1163            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
1164            instance variables before trying to create any windows.  Creating
1165            windows can start an event loop if e.g. message boxes are popped
1166            up for some reason, and event handlers, especially EVT_UPDATE_UI
1167            may want to access things from the application.
1168            (ThubanApplication.maps_changed): The mainwindow may not have been
1169            created yet, so check whether it has been created before calling
1170            its methods
1171    
1172            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
1173            have a map
1174    
1175    2004-02-17  Bernhard Herzog  <[email protected]>
1176    
1177            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
1178            Extensions/svgmapwriter.py, Extensions/maplegend.py,
1179            extensions/svgexport/svgsaver.py,
1180            extensions/svgexport/svgmapwriter.py,
1181            extensions/svgexport/maplegend.py: Removed.  These files were in
1182            the wrong places or didn't work at all.
1183    
1184    2004-02-16  Bernhard Herzog  <[email protected]>
1185    
1186            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
1187            line
1188    
1189    2004-02-16  Bernhard Herzog  <[email protected]>
1190    
1191            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
1192    
1193    2004-02-15  Markus Rechtien  <[email protected]>
1194            
1195            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
1196            to write a session to a file in SVG format.
1197            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
1198            to write a SVG map of a session.
1199            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
1200            in SVG format for the current session.
1201    
1202    2004-02-13  Bernhard Herzog  <[email protected]>
1203    
1204            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
1205            can't be created, return immediately after displaying the error
1206            message.
1207    
1208    2004-02-11  Bernhard Herzog  <[email protected]>
1209    
1210            Handle postgis tables with more than one geometry column.
1211    
1212            * Thuban/Model/postgisdb.py
1213            (PostGISTable._fetch_table_information): Delegate the creation of
1214            column objects to a different method so that we can extend that in
1215            derived classes
1216            (PostGISTable._create_col_from_description): New. Column object
1217            creation part of _fetch_table_information
1218            (PostGISShapeStore._create_col_from_description): New. Extend
1219            inherited method to handle geometry columns
1220            (PostGISShapeStore.__init__): New parameter geometry_column to
1221            specify which geometry column to use.  Optional but mandatory for
1222            tables with more than one geometry column
1223            (PostGISShapeStore._fetch_table_information): Also use the name of
1224            the geometry column when looking for the srid
1225            (PostGISShapeStore.ShapeType): Also use the name of the geometry
1226            column when looking for the shape type
1227    
1228            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
1229            NonConnectionStore to changes in the PostGISShapeStore
1230    
1231            * test/test_postgis_db.py
1232            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
1233            PostGISShapeStore with tables having two geometry columns.
1234    
1235    2004-02-10  Bernhard Herzog  <[email protected]>
1236    
1237            Fix some postgis problems.  What remains to be done is real
1238            handling of SRIDs as they affect how reprojection is done
1239    
1240            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
1241            doc-string
1242            (PostGISShapeStore._fetch_table_information): New. Extend
1243            inherited method to retrieve srid
1244            (PostGISShapeStore.BoundingBox): Handle tables without data.
1245            extent yields NULL for those
1246            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
1247    
1248            * test/test_postgis_db.py
1249            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
1250            for the special case of a table without any data
1251            (TestPostGISShapestorePointSRID): New class with tests for a table
1252            that uses srids
1253            (PolygonTests): Fix a doc-string typo
1254    
1255            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
1256            reference_systems with a specification of spacial reference
1257            systems to create in the new db.
1258            (PostgreSQLServer.new_postgis_db)
1259            (PostgreSQLServer.get_static_data_db): New parameter
1260            reference_systems to be passed through ultimately to
1261            PostGISDatabase.  In new_postgis_db also check whether an existing
1262            db already has the right srids
1263            (PostgreSQLServer.get_default_static_data_db): Add srids and a
1264            table that uses srids
1265            (PostGISDatabase.initdb): Create the entries for the reference
1266            systems
1267            (PostGISDatabase.has_data): Add reference_systems parameter to
1268            check for those too
1269            (upload_shapefile): New parameter srid to create tables with a
1270            specific srid
1271    
1272    2004-02-06  Frank Koormann  <[email protected]>
1273    
1274            * po/pt_BR.po: Fixed charset
1275    
1276    2004-02-05  Frank Koormann  <[email protected]>
1277    
1278            * po/pt_BR.po: Fixed format string for error message, missing %s
1279            added (Thuban/UI/application.py:273)
1280    
1281    2004-02-03  Frank Koormann  <[email protected]>
1282            
1283            First version of Portuguese (Brazilian) translation
1284    
1285            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
1286            Brazilian Portuguese by Eduardo Patto Kanegae.
1287    
1288            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
1289            translators.
1290    
1291    
1292    2004-01-22  Frank Koormann  <[email protected]>
1293    
1294            * Doc/manual/thuban-manual.xml: Added section on installation of
1295            Thuban under Win32 systems. Fixed image path references in the postgis
1296            section. Some minor source formattings.
1297    
1298    2004-01-21  Frank Koormann  <[email protected]>
1299    
1300            Make Thuban remember path selections (at least for one application run).
1301    
1302            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
1303            attribute of application object. Path is a dictionary of
1304            strings, currently with the items "data" and "projection".  
1305            (Application.SetPath): New, stores path for the specified item.
1306            (Application.Path): New, return path for the specified item.
1307    
1308            * Thuban/UI/mainwindow.py
1309            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
1310            MainWindow.AddLayer, MainWindow.AddRasterLayer,
1311            MainWindow.TableOpen): Access "data" path information of the
1312            application.
1313            
1314            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
1315            Access "projection" path information of the application.
1316    
1317    2004-01-05  Bernhard Herzog  <[email protected]>
1318    
1319            * po/ru.po: Updated translations from Alex Shevlakov
1320    
1321    2004-01-05  Bernhard Herzog  <[email protected]>
1322    
1323            * po/Makefile, po/README: Move the description of how to generate
1324            the translation statistics to the README.
1325    
1326    2003-12-23  Bernhard Herzog  <[email protected]>
1327    
1328            * NEWS: Update for 1.0.0
1329    
1330            * po/it.po: Another update from Maurizio Napolitano
1331    
1332    2003-12-23  Bernhard Herzog  <[email protected]>
1333    
1334            * po/it.po: Updated translation from Maurizio Napolitano
1335    
1336    2003-12-23  Bernhard Herzog  <[email protected]>
1337    
1338            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
1339            for translation
1340    
1341            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
1342            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
1343            strings for translation
1344    
1345            * po/de.po: Update with the newly marked strings.
1346    
1347    2003-12-22  Bernhard Herzog  <[email protected]>
1348    
1349            * HOWTO-Release: Fix the places where version numbers have to be
1350            updated
1351    
1352    2003-12-22  Bernhard Herzog  <[email protected]>
1353    
1354            * setup.py (setup call): 1.0.0, yeah!
1355    
1356            * Thuban/version.py (longversion): 1.0.0, yeah!
1357    
1358            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
1359            1.0.0 namespace too
1360    
1361            * Thuban/Model/save.py (SessionSaver.write_session): Save with
1362            1.0.0 namespace
1363    
1364            * test/test_load.py (LoadSessionTest.dtd)
1365            (TestSingleLayer.file_contents)
1366            (TestNonAsciiColumnName.file_contents)
1367            (TestLayerVisibility.file_contents)
1368            (TestClassification.file_contents, TestLabels.file_contents)
1369            (TestLayerProjection.file_contents)
1370            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1371            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
1372            (TestPostGISLayerPassword.file_contents)
1373            (TestLoadError.file_contents, TestLoadError.test): Update for
1374            1.0.0 namespace
1375    
1376            * test/test_save.py (SaveSessionTest.dtd)
1377            (SaveSessionTest.testEmptySession)
1378            (SaveSessionTest.testSingleLayer)
1379            (SaveSessionTest.testLayerProjection)
1380            (SaveSessionTest.testRasterLayer)
1381            (SaveSessionTest.testClassifiedLayer)
1382            (SaveSessionTest.test_dbf_table)
1383            (SaveSessionTest.test_joined_table)
1384            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
1385    
1386    2003-12-22  Bernhard Herzog  <[email protected]>
1387    
1388            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
1389            alignment flags are byte strings not unicode and that they have
1390            valid values
1391    
1392            * test/test_load.py (TestLabelLayer): New. Test loading (and
1393            indirectly saving) of maps with labels.
1394    
1395    2003-12-22  Bernhard Herzog  <[email protected]>
1396    
1397            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
1398            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
1399            unsubscribe all subscribers.
1400            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
1401            self.grid since it may already have been destroyed.
1402            Fixes RT #2256
1403    
1404    2003-12-19  Bernhard Herzog  <[email protected]>
1405    
1406            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
1407    
1408    2003-12-16  Bernhard Herzog  <[email protected]>
1409            
1410            * debian/bitmappath.patch, debian/setup.py.patch:
1411                    added to ensure compliance with FHS for debian
1412            * debian/rules, debian/changelog:
1413                added patches in rules to ensure compliance with FHS for debian
1414    
1415    2003-12-16  Bernhard Herzog  <[email protected]>
1416    
1417            * po/Makefile (mo): Make the output a bit nicer so that it prints
1418            statistics about the translations. Add a comment how produce even
1419            nicer statistics with sed.
1420    
1421    2003-12-09  Frank Koormann   <[email protected]>
1422    
1423            * Resources/Projections/defaults.proj:
1424            French projection sample with correct accents (UNICODE).
1425    
1426    2003-12-05  Bernhard Herzog  <[email protected]>
1427    
1428            * MANIFEST.in: Add the devtools directory
1429    
1430            * setup.py (setup call): Use license instead of licence. This
1431            silences a deprecation warning on Python 2.3
1432    
1433    2003-12-05  Frank Koormann   <[email protected]>
1434    
1435            Documentation synced with 1.0rc1
1436    
1437            * Doc/manual/thuban-manual.xml:
1438            Minor formatting changes and references to database layers .
1439            Introduction.Internationalization: New section on i18n.
1440            MapManagement.AddingandRemovingLayers: Added item on database layers.  
1441            MapManagement.TheLegend: Added section and screenshot on popup menu.
1442            ProjectionManagement: Updated screenshot and sentence on EPSG.
1443            Appendix.SupportedDataSources: Added PostGIS.
1444            Appendix.WorkingwithPostGIS: New section.
1445    
1446            * Doc/manual/images/6_projection.png: Updated screenshot including
1447            EPSG checkboxes.
1448    
1449            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
1450    
1451            * Doc/manual/images/app_postgis_add_layer.png,
1452            Doc/manual/images/app_postgis_db_add.png,
1453            Doc/manual/images/app_postgis_db_management.png:
1454            New screenshots focussing on database layers
1455    
1456    2003-12-05  Frank Koormann   <[email protected]>
1457    
1458            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
1459            write warning to stderr instead of rising a warning dialog
1460    
1461    2003-12-03  Bernhard Herzog  <[email protected]>
1462    
1463            Fix for RT #2243
1464    
1465            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
1466            New. Like has_selected_layer but for shape layers only
1467            (_has_selected_shape_layer): New. Like _has_selected_layer but for
1468            shape layers only
1469            (layer_show_table command, layer_jointable command): Use these
1470            commands should only be available for shape layers
1471    
1472    2003-12-03  Bernhard Herzog  <[email protected]>
1473    
1474            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
1475            publishers that are wx objects and may have been destroyed by wx
1476            already. Fixes RT #2242.
1477    
1478    2003-12-03  Bernhard Herzog  <[email protected]>
1479    
1480            * po/ru.po: Updates from Alex Shevlakov
1481    
1482  2003-12-03  Silke Reimer <silkeintevation.de>  2003-12-03  Silke Reimer <silkeintevation.de>
1483    
1484          * debian/control, debian/changelog: Added gdal-support to          * debian/control, debian/changelog: Added gdal-support to
# Line 3836  Line 5317 
5317          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
5318          click on layer tree:          click on layer tree:
5319          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
5320          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.
5321            We add a second ItemActivated event to the queue, which simply
5322          raises the already displayed window.          raises the already displayed window.
5323    
5324          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.2013  
changed lines
  Added in v.2333

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26