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

Legend:
Removed from v.2075  
changed lines
  Added in v.2457

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26