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

Legend:
Removed from v.2021  
changed lines
  Added in v.2339

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26