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

Legend:
Removed from v.1939  
changed lines
  Added in v.2331

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26