/[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 1986 by bh, Thu Nov 27 16:04:59 2003 UTC revision 2537 by jonathan, Fri Jan 21 14:01:25 2005 UTC
# Line 1  Line 1 
1    2005-01-21  Jonathan Coles <[email protected]>
2    
3            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
4            a projection and returns a formatted string representing the
5            parameters to feed to gdalwarp. This function eliminates
6            redundancy in draw_raster_layer().
7            (render_map_incrementally): Removed the optimization which
8            drew the top most raster layer first and then only those vector-
9            based layers that are above it. With the support for transparency
10            this optimization breaks correct behaviour.
11            (draw_raster_layer): Reorganize code to support possible future
12            enhancements to raster layer bounding box. The old behaviour has not
13            changed. Also, change calling parameters to draw_raster_data()
14            to specify new RAW data format and mask.
15            (draw_raster_data): Change signature to include an optional
16            parameter for mask information. Change documentation to mention
17            support for new parameter and added option for RAW data format.
18            The data argument is now a list of [width, height, data].
19    
20            * Thuban/UI/renderer.py (draw_raster_data): Add new optional
21            mask parameter. Add new condition for RAW format, which
22            significantly reduces rendering time. Add condition for
23            mask parameter.
24    
25            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
26            data array of RGB values from the projected image returned from
27            the gdal warping functions. In the case of palette based images, it
28            converts the NO_DATA index to the mask color.
29            (ProjectRasterFile): Removed all custom memory driver references
30            and replaced it with the standard in-memory dataset provided
31            by gdal. The return data is no longer a BMP file, but an array
32            of RGB values, one set triple per pixel.
33    
34            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
35            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
36            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
37    
38            * setup.py (thuban_build_ext.finalize_options): Removed mention
39            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
40            files. These are obsolete with the new version of gdalwarp.cpp
41    
42            * test/test_baserenderer.py (draw_raster_data): Updated signature.
43            (test_raster_no_projection): Changed the test data to be data
44            in the uncompressed RAW format returned from ProjectRasterFile.
45    
46    2005-01-21  Jan-Oliver Wagner <[email protected]>
47    
48            * Thuban/UI/mainwindow.py (view_position_changed): Made string
49            available for i18n.
50    
51    2005-01-20  Russell Nelson  <[email protected]>
52    
53            * Resources/Projections/defaults.proj: Ruin the speling of the
54            Lambert-93 projection so it doesn't run into the wx UTF-8 bug.
55            It's the wrong thing to do in the long run, but it's necessary for
56            those users until that bug is fixed.  Otherwise the projection
57            dialog segfaults.  Better to annoy some Lambert-93 users with a
58            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
59    
60    2005-01-20  Bernhard Reiter <[email protected]>
61    
62            * Thuban/UI/mainwindow.py(view_position_changed): Added docstring
63            and comment that the warning code here is a hack.
64    
65    2005-01-20  Russell Nelson  <[email protected]>
66    
67            * Thuban/UI/mainwindow.py(view_position_changed): Warn user about
68            misprojected layers when their lat/lon bounding
69            box exceeds rational lat/lon values.
70    
71    2005-01-20  Bernhard Reiter <[email protected]>
72    
73            * Thuban/UI/about.py (unicodeToLocale()): Improved:
74            Use 'ascii' and then 'replace' for other characters
75            when getdefaultlocale returns None. Thanks to Bernhard H. .
76            
77    2005-01-20  Bernhard Reiter <[email protected]>
78    
79            * Thuban/UI/classgen.py (OnRetrieve()): Added a comment
80            that OnRangeText might be called twice and using None as argument.
81            
82    2005-01-20  Bernhard Reiter <[email protected]>
83    
84            * Thuban/UI/classgen.py (OnRetrieve()): Add a OnRangeText(0)
85            to work around a different in wx Behaviour noticed on MacOSX,
86            thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
87            
88    2005-01-20  Bernhard Reiter <[email protected]>
89    
90            * Thuban/UI/about.py: take iso-8859-15 when getdefaultlocale returns
91            None. (Fixes rt#2910.)
92            
93    2005-01-18  Frank Koormann <[email protected]>
94    
95            New Extension: mouseposition
96            Tool to collect mouse click positions (map coordinates) in a dialog.
97    
98            * Extensions/mouseposition/__init__.py: New, extension registration
99    
100            * Extensions/mouseposition/mouseposition.py: New, implements the
101            dialog and adds a tool to Thuban mainwindow.
102    
103            * Extensions/mouseposition/position.xpm: New, icon for tool.
104    
105    2005-01-14  Jan-Oliver Wagner <[email protected]>
106    
107            * Doc/manual/thuban-manual-de.xml: More translations.
108    
109    2005-01-11  Frank Koormann <[email protected]>
110    
111            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
112            Fix indention bug.
113    
114    2005-01-09  Frank Koormann <[email protected]>
115    
116            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
117            BugFix 2901: Explicitly copy layers ClassificationColumn since it
118            is not part of the layers Classification.
119    
120    2005-01-03  Frank Koormann <[email protected]>
121    
122            * Thuban/UI/renderer.py (ScreenRendererdraw_selection_incrementally):
123            BugFix 2883: Former implementation only worked on classified point
124            layers: KeyError was raised, now use the default size if field is None.
125    
126    2004-12-27  Bernhard Reiter <[email protected]>
127    
128            svgexport 1.0.0cvs: Fixed label export.
129    
130            * Extensions/svgexport/test/test_svgmapwriter.py:
131            class TestSVGRenderer(): New class; new test test_label_font().
132    
133            * Extensions/svgexport/svgmapwriter.py
134            (SVGRenderer.label_font()): initialised Font size with self.factor now,
135            makes test_label_font happy.
136    
137            * Extensions/svgexport/TODO: crossed out fixed label export item.
138            Added item for options.
139    
140            * Extensions/svgexport/__init__.py: Bumped version to 1.0.0cvs.
141    
142    2004-12-27  Russell Nelson  <[email protected]>
143    
144            Middle mouse button pans.
145    
146            * Thuban/UI/view.py (MapCanvas.__init__): Subscribe also
147            OnMiddleDown and OnMiddleUp events.
148            (MapCanvas.OnMiddleDown): New. Activate the pan tool and remember the
149            previously used tool.
150            (MapCanvas.OnMiddleUp): New. Reactivate the remebered tool used before
151            pressing the middle mouse button.
152    
153    2004-12-27  Jan-Oliver Wagner <[email protected]>
154    
155            * Doc/manual/thuban-manual-de.xml: More translations.
156    
157    2004-12-23  Jan-Oliver Wagner <[email protected]>
158    
159            * Thuban/UI/projdialog.py (ProjFrame.load_user_proj): Added a
160            \n to stderr after the warnings. Thanks to Russell Nelson.
161    
162    2004-12-20  Nina Hueffmeyer <[email protected]>
163    
164            * Extensions/ogr/ogrshapes.py: Fixed some issues from
165            Bernhard (coding guidelines etc.). Additionally it is now possible to
166            display shapefiles containing feature collections (e.g.polygons
167            with holes). Works with gdal 1.2.1 now.
168    
169            * Extensions/ogr/test/test_OGRShapestore.py: Fixed some issues
170            from Bernhard (coding guidelines etc.). If ogr can't be imported,
171            tests are skipped now.
172    
173            * Extensions/ogr/ogrstart.py: Fixed some typings.
174    
175    2004-12-20  Bernhard Reiter <[email protected]>
176    
177            * Extensions/svgexport/TODO: updated to add support for
178            raster layers and labels for 1.0.1.
179    
180            * Extensions/svgexport/svgmapwriter.py (draw_raster_layer):
181            Issue a warning now.
182    
183    2004-12-19  Bernhard Reiter <[email protected]>
184    
185            * Extensions/svgexport/TODO: Added idea to support triggering
186            the application down the pipe.
187    
188    2004-12-19  Bernhard Reiter <[email protected]>
189    
190            svgexport: Improved code quality, mainly by better naming.
191    
192            * Extensions/svgexport/svgmapwriter.py:
193            DrawPath() renamed to DrawPolygonPath(),
194            added documentation, improved comments and variable names.
195            
196            * Extensions/svgexport/svgmapwriter.py,
197              Extensions/svgexport/test/test_svgmapwriter.py:
198            All using DrawPolygonPath() now, the default parameter closed=True
199            omitted.
200    
201            * Extensions/svgexport/test/test_svgmapwriter.py:
202            renamed test_polygon_opened() to test_polyline()
203            renamed test_transparent_polygon() to test_transparent_polyline()
204    
205    2004-12-18  Jan-Oliver Wagner <[email protected]>
206    
207            Some fixes of gns2shp extension.
208    
209            * Extensions/gns2shp/test/__init__.py: New. Make this directory a
210            package.
211    
212            * Extensions/gns2shp/test/test_gns2shp.py: Add some import paths
213            dynamically.
214    
215            * Extensions/gns2shp/test/README: Simplified description how to test.
216    
217            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed doc-string,
218            fixed some dimensions of fields according to the GNS documentation
219            which seems to change undocumented.
220            Now killing trailing \n and/or \r from MODIFY_DATE.
221            This fixes RT#2453.
222    
223    2004-12-18  Bernhard Reiter <[email protected]>
224    
225            svgexport 1.0.0: Treats holes and islands nicely. Documentation added.
226    
227            * Extensions/svgexport/test/test_svgmapwriter.py:
228            Added new tests: test_export_polygon_with_hole()
229            and test_polygon_with_hole().
230    
231            * Extensions/svgexport/svgmapwriter.py
232            (draw_polygon_shape()): Uses DrawPath correctly now.
233    
234            * Doc/manual/thuban-manual.xml: Added documentation for stable
235            extention svgexport.    
236            * Doc/manual/thuban-manual-de.xml: Copied English section about
237            svexport over.
238    
239            * Extensions/svgexport/__init__.py: Bumped version number to 1.0.0.
240    
241            * Extensions/svgexport/svgsaver.py,maplegend.py:
242            Moved from experimental to stable extension menu.
243    
244            * Extensions/svgexport/TODO: updated.
245    
246    
247    2004-12-18  Bernhard Reiter <[email protected]>
248    
249            Added Extensions/svgexport/TODO
250    
251    2004-12-18  Bernhard Reiter <[email protected]>
252    
253            Refactored in svgexport:
254            DrawPath replaces DrawPolygon; added newline in front of "M" in paths.
255    
256            * Extensions/svgexport/svgmapwriter.py
257            Added verbosity level 3 to print out polygon points.
258            (class Point): added __repr__
259            (class Brush, __str__()): Added space after ,.
260            (DrawPolygon): Renamed to DrawPath()
261            (DrawPath): Takes list of polygons as input now, adds \n before "M"s.
262            (DrawLines): Using DrawPath now.
263    
264            * Extensions/svgexport/test/test_svgmapwriter.py:
265            Replaced DrawPolygon() calls with DrawPath() and put the first argument
266            inside another list. Adapted test data with a newline before "M".
267    
268    2004-12-18  Bernhard Reiter <[email protected]>
269            
270            Refactored svgexport tests: 9 double tests runs eliminated;
271            code size reduced by 8 lines.
272    
273            * Extensions/svgexport/test/test_svgmapwriter.py:
274            (class TestWithDC): Renamed to BaseTestWithDC, moved to top.
275            (class BaseWithDCtools): New, subclass from BaseTestWithDC.
276            (class TestDrawSplines): now subclass from BaseTestWithDCtools,
277            this fixed the double running of the nine tests of TestVirtualDC.
278            (class TestVirtualDC): Using self.dc and self.file from setUp().
279    
280    2004-12-17  Bernhard Herzog  <[email protected]>
281    
282            Two windows specific fixes ported from thuban-1�0-branch:
283    
284            * Thuban/UI/about.py (unicodeToLocale): Use getdefaultlocale
285            instead of getlocale because getlocale doesn't return a usable
286            encoding name on a german windows 2000
287    
288            * setup.py: windows build: Removed the absolute path names and
289            made all prfixes relative to the directory containing setup.py.
290            Makes it a little easier to adapt to a different system.
291    
292    2004-12-16  Bernhard Herzog  <[email protected]>
293    
294            Add support for PostGIS tables with LINESTRING geometries.
295            Fixes RT#2299
296    
297            * Thuban/Model/postgisdb.py (shapetype_map): Add LINESTRING
298    
299            * test/postgissupport.py
300            (PostgreSQLServer.get_default_static_data_db): Rename the "roads"
301            table to "roads-multi" because it now uses MULTILINESTRING
302            geometries and introduce a new "roads" table that uses LINESTRING
303            (coords_to_multilinestring): Make the doc string more precise
304            (coords_to_linestring): New.  Create a LINESTRING WKT
305            representatin
306            (wkt_converter): Add coords_to_linestring
307            (upload_shapefile): Rephrase the doc-string a bit.
308    
309            * test/test_postgis_db.py (TestPostGISShapestoreArc)
310            (LineStringTests)
311            (TestPostGISShapestoreLineString)
312            (TestPostGISShapestoreMultiLineString): Split
313            TestPostGISShapestoreArc into a base class LineStringTests and two
314            derived classes TestPostGISShapestoreLineString for LINESTRING
315            geometries and TestPostGISShapestoreMultiLineString for
316            MULTILINESTRING geometries.  Most test methods are in the base
317            class with the exception of tests that explicitly check the raw
318            format.
319    
320    2004-12-16  Bernhard Herzog  <[email protected]>
321    
322            Make the test suite work with PostGIS 0.8.2 and PostgreSQL 7.4
323    
324            * test/postgissupport.py (find_postgis_sql): Different postgis
325            versions put the postgis.sql file into slightly different places
326            so we have to look in both.  The updated doc string describes this
327            is more detail.
328    
329            * test/test_postgis_db.py
330            (TestPostGISSpecialCases.test_column_name_quoting): The return
331            value of UniqueValues is unsorted, so it has to be sorted for
332            comparison.
333    
334    2004-12-16  Bernhard Herzog  <[email protected]>
335    
336            Fix for RT#2237
337    
338            * Thuban/UI/projdialog.py (ProjFrame._show_proj_panel): If the
339            panel to be shown is the UnknownProjPanel disable the OK and Try
340            buttons.  Otherwise enable them.
341            (ProjFrame.__GetProjection): The UnknownProjPanel returns None for
342            the parameters.  In that case __GetProjection also returns None
343            now.
344    
345    2004-12-15  Bernhard Herzog  <[email protected]>
346    
347            * Thuban/UI/classgen.py (GenQuantilesPanel.__init__): Set the
348            minimum number of classes to 2.  The calculate_quantiles needs at
349            least two and raises an exception otherwise.  
350            Fixes RT#2549
351    
352    2004-12-15  Bernhard Herzog  <[email protected]>
353    
354            * test/postgissupport.py (PostgreSQLServer.execute_sql): Extend to
355            so that it returns a result for select statements.
356            (PostgreSQLServer.server_version): New.  Return the version of the
357            server software.
358            (PostgreSQLServer.require_authentication): The format of
359            pg_hba.conf has changed between PostgrSQL 7.2 and 7.3.  Check the
360            server version and generate the file in the correct format
361    
362    2004-12-15  Bernhard Herzog  <[email protected]>
363    
364            * test/postgissupport.py (PostgreSQLServer.is_running): Fix typo
365            in the doc string and rephrase it a little.
366    
367    2004-12-15  Frank Koormann <[email protected]>
368    
369            * test/test_load.py (TestAltPath.checkSession): New, extended checks if
370            session has been loaded successfully. The check is called by the relevant
371            tests after executing load_session().
372    
373    2004-12-13  Bernhard Herzog  <[email protected]>
374    
375            Make sure the region used to determine which shapes are visible
376            actually matches the region on the printed page.  If this isn't
377            done properly some shapes might not be printed.  
378            Fixes RT #2692
379    
380            * Thuban/UI/view.py (MapPrintout.draw_on_dc): The region for the
381            renderer has to be at the same position as the mapregion
382    
383            * Thuban/UI/renderer.py (ExportRenderer.RenderMap): self.region
384            has to be moved by (self.shiftx, self.shifty) too.
385    
386    2004-12-13  Bernhard Herzog  <[email protected]>
387    
388            * libraries/pyprojection/Projection.i: Work around a bug in the
389            generated python code which leads to exception in the __del__
390            method when the constructor fails.  See the comments in the code
391            for more details.
392    
393            * libraries/pyprojection/Projection.py: Updated from Projection.i
394            with SWIG.
395    
396    2004-12-13  Bernhard Herzog  <[email protected]>
397    
398            * test/test_load.py (TestAltPath.test_01_single_path_error_fix)
399            (TestAltPath.test_02_path_error_fix_from_list)
400            (TestAltPath.test_05_path_error_fix_from_list_changed)
401            (TestAltPath.test_06_path_error_fix_from_list_fails): self.session
402            is destroyed in tearDown, so there's no need to do it in a test
403            case.
404    
405            * Thuban/Model/load.py (SessionLoader.open_shapefile): Remove a
406            debug print
407    
408    2004-12-13  Bernhard Herzog  <[email protected]>
409    
410            * Extensions/svgexport/test/test_svgmapwriter.py
411            (TestDrawSplines.setUp): Do not use super with the unittest
412            classes because in Python 2.2 they're still old-style classes.
413    
414    2004-12-13  Frank Koormann <[email protected]>
415    
416        Alternative Path feature: When loading a (moved) session where
417            shapefiles cannot be found, ask the user. Use the specified path
418            if further shapefiles are missing. However, ask the usr for confirmation
419            in such cases.
420    
421            * test/test_load.py (TestAltPath): New, tests for alternative path feature
422            in load_session()
423            (Shapefile_CallBack): Helper, implements controllable callback.
424    
425            * Thuban/UI/application.py (ThubanApplication.OnInit):
426            Added "alt_path" to self.path
427            (ThubanApplication.OpenSession): Added shapefile_callback as second
428            callback similar to db_connection_callback.
429            (ThubanApplication.run_alt_path_dialog): New, implementaion of
430            shapefile_callback. In addition to raising the dialog the control of
431            self.path('alt_path') is implemented here.
432    
433            * Thuban/Model/load.py (SessionLoader.__init__): Added shapefile_callback.
434            (SessionLoader.open_shapefile): Open shapefile, eventually with
435            alternative path. This wrapps the "theSession.OpenShapefile(filename)"
436            formerly used in start_fileshapesource()/start_layer().
437            (SessionLoader.start_fileshapesource): Call open_shapefile().
438            (SessionLoader.start_layer): Call open_shapefile().
439            (load_session): Added shapefile_callback.
440    
441            * Thuban/UI/altpathdialog.py: New, implements dialogs for alternative path
442            feature (search / check).
443            
444            * Doc/manual/thuban-manual.xml: Added documentation of new feature.
445    
446    2004-12-11  Bernhard Reiter <[email protected]>
447    
448             svgexport 0.9.2: Point size supports for maps.
449    
450            * Extensions/svgexport/svgmapwriter.py: Added import of SHAPETYPE_POINT
451            (def draw_point_shape): new parameter size defaults to 2 as before.
452            (draw_shape_layer_incrementally): Moved draw_func log line higher.
453            Added draw_func call with size when dealing with a point layer.
454    
455            * Extensions/svgexport/__init__.py: bumped version to 0.9.2.
456            
457    2004-12-11  Bernhard Reiter <[email protected]>
458    
459            Made sure that newlines are inserted in the svg path d attributes
460            to raise the chance that the line length will be below 255 characters,
461            as recommended by REC SVG 1.1 in section 8.3.1.
462    
463            * Extensions/svgexport/svgmapwriter.py(DrawPolygon):
464            Adding \n before L's and changed whitespace handling.
465    
466            * Extensions/svgexport/test/test_svgmapwriter.py:
467            Adapted tests to new whitespace handling of DrawPolygon.
468    
469    2004-12-11  Bernhard Reiter <[email protected]>
470    
471            * Doc/technotes/coding_guidelines.txt: easy typo fixed.
472    
473            * Extensions/svgexport/test/test_svgmapwriter.py:
474            Removed test_drawbezier in favour of new test_drawspline3 and
475            test_drawspline4 within new class TestDrawSplines(TestVirtualDC).
476            All only to test DrawSpline.
477    
478            * Extensions/svgexport/svgmapwriter.py(DrawSpline):
479            New implementation now really using the strange algorithm of
480            xfig 3.1's approximated splines and its conversion to postscript
481            with one twist: SVG can do quadratic beziers, so skipped translation
482            to cubic beziers.
483            (TestWithDC): Typo in comment fixed.
484    
485    2004-12-09  Martin Schulze  <[email protected]>
486    
487            * Thuban/Model/classgen.py: Added missing character encoding
488    
489            * Extensions/wms/properties.py (OpenWMSProperties): removed
490    
491            * Extensions/wms/parser.py (WMSCapabilitiesParser.error): Dropped
492            support for get_srs_discrepancies() since there are no
493            discrepancies anymore (was a thinko)
494    
495            * Extensions/wms/layer.py (WMSLayer.GetMapImg): Improved graphic
496            format priority now that more formats are supported globally by
497            the render engine.
498    
499    2004-12-08  Silke Reimer <[email protected]>
500            * Extensions/ogr/ogrshapes.py: Substituted ogr-method CloseRings
501            because it is not available in all versions of ogr
502    
503    2004-12-08  Bernhard Reiter <[email protected]>
504            * Extensions/ogr/__init__.py: Added empty __init__.py to heal
505            global tests until a real one is commited.
506    
507    2004-12-07 Nina H�ffmeyer <[email protected]>
508    
509            * /Extensions/ogr/: Adding a new extension to read shapefiles with
510            ogr. It is planned to add other vector formats.
511    
512            * /test/runtests.py: Adding tests from /Extensions/ogr/test/.
513    
514    2004-12-07  Jan-Oliver Wagner <[email protected]>
515    
516            * /Extensions/svgexport/test/test_svgmapwriter.py: Reverting
517            part of a (non-)fix to renable that the tests are always
518            executed.
519    
520    2004-12-07  Bernhard Reiter <[email protected]>
521    
522            * Extensions/svgexport/test/test_svgmapwriter.py:
523            Added test_drawbezier() to test DrawSpline().
524    
525            * Extensions/svgexport/svgmapwriter.py(DrawSpline):
526            Really implemented bezier drawing.
527    
528            * Extensions/svgexport/__init__.py: Bumped version of svgexport
529            to 0.9.1 because now the legend examples lines styles
530            will be drawing with beziers.
531    
532    2004-12-05  Martin Schulze  <[email protected]>
533    
534            * Thuban/UI/renderer.py (raster_format_map): Added PNG, TIFF and
535            GIF as supported bitmap image formats (helpful for the WMS extension)
536    
537    2004-11-30  Martin Schulze  <[email protected]>
538    
539            * Extensions/wms/test/test_ogclib.py (TestOGCLib.test_compareURLs):
540            Improved the test for the internal compare method
541    
542    2004-11-27  Jan-Oliver Wagner <[email protected]>
543    
544            * Thuban/UI/about.py (About.__init__): Added
545            Norbert Solymosi for hungarian translation and Ole Rahn
546            as contrbutor. Moved Bernhard Reiter from Contributor
547            to Developer.
548    
549    2004-11-27  Bernhard Reiter <[email protected]>
550    
551            * Extensions/svgexport/test/test_svgmapwriter.py:
552            Removed Jan from author list as he did not change enough significant
553            lines yet.
554    
555            * Extensions/svgexport/__init__.py: Added Bernhard as author
556            of the Extension.
557    
558    2004-11-27  Jan-Oliver Wagner <[email protected]>
559    
560            * po/hu.po: New. Hungarian translation. Contributed
561            by Norbert Solymosi.
562    
563    2004-11-26  Bernhard Herzog  <[email protected]>
564    
565            * Extensions/svgexport/test/test_svgmapwriter.py
566            (Testobjectexport.test_transparent_polygon): Commented out some
567            debug prints
568    
569    2004-11-24  Jan-Oliver Wagner <[email protected]>
570    
571            Fix broken tests for svg extension and added svg legend
572            to Experimental menu.
573    
574            * Extensions/svgexport/test/test_svgmapwriter.py: Fix to have
575            the test run correctly even if the extension is a package.
576            Also removed the "import Thuban" which makes no sense.
577    
578            * Extensions/svgexport/__init__.py: Fix to have the extensions'
579            test module also be executed from the global test routine.
580            This is done by looking for the absense of the DISPLAY variable.
581    
582            * Extensions/svgexport/maplegend.py: Moved the menu entry from Extensions
583            to Experimental menu since this module has yet not reached a stable
584            status (ie. 1.0).
585    
586    2004-11-22  Bernhard Reiter <[email protected]>
587    
588            * Extensions/svgexport/svgmapwriter.py:
589            Added verbose variable and some logging depending on it.
590            (class VirtualDC(XMLWriter)): Minor improvement in the polygon loop,
591            because counting i is not necessary.
592            (class Pen, class Brush): Added simple __str__ methods.
593            (SVGRenderer.draw_polygone_shape): Fix #2698 (transparent polygons are
594            not exported to svg file) Note: holes still unhandled.
595    
596            * Extensions/svgexport/test/test_svgmapwriter.py:
597                    Made a baseclass TestWithDC for test needed a DC.
598                    Added tests for bug #2698 (transparent polygons are not
599                    exported to svg file):
600                    Testobjectexport.test_transparent_polygon()
601    
602            * Thuban/Model/base.py (UnsetModified):
603            Fixed some typos in docstring.
604    
605            * Thuban/UI/baserenderer.py (BaseRenderer.draw_polygon_shape()):
606            Added hints on the used algorithm for handling holes.
607    
608    2004-11-20  Jan-Oliver Wagner <[email protected]>
609    
610            Some face lifting for the examples.
611    
612            * Examples/__init__.py: Make this directory a package.
613    
614            * Examples/simple_extensions/__init__.py: Make this directory a package.
615    
616            * Examples/simple_extensions/hello_world.py: Moved entry from Extensions
617            menu to Examples menu.
618    
619            * Examples/simple_extensions/simple_command.py: Some more comments,
620            minor changes.
621    
622            * Examples/simple_extensions/simple_tool.py: Minor changes.
623    
624    2004-11-20  Jan-Oliver Wagner <[email protected]>
625    
626            Changed way of extension registry for wms and added extension
627            registry for umn_mapserver extension.
628    
629            * Extensions/wms/__init__.py: Added registry entry and the importing
630            of the actual wms module. Included a test for the required PyOGCLib.
631    
632            * Extensions/wms/wms.py: Removed registry entry (moved to __init__.py).
633    
634            * Extensions/umn_mapserver/__init__.py: Added registry entry and the
635            importing of the actual umn mapserver management modules.
636            Included a test for the required Python MapScript.
637    
638    2004-11-20  Jan-Oliver Wagner <[email protected]>
639    
640            Changed way of extension registry for importAPR, bboxdump
641            and added extension registry for svgexport.extension registry for
642            svgexport.
643    
644            * Extensions/importAPR/__init__.py: Added registry entry and the importing
645            of the actual importAPR module.
646    
647            * Extensions/importAPR/importAPR.py: Removed registry entry (moved to
648            __init__.py).
649    
650            * Extensions/bboxdump/__init__.py: Added registry entry and the importing
651            ï¿½ï¿½ï¿½ï¿½of the actual bboxdump module.
652    
653            * Extensions/bboxdump/bboxdump.py: Removed registry entry (moved to
654            ï¿½ï¿½ï¿½ï¿½__init__.py).
655    
656            * Extensions/svgexport/__init__.py: Added registry entry and the importing
657            of the svgsaver module.
658    
659            * Extensions/svgexport/svgsaver.py: Moved the menu entry from Extensions
660            to Experimental menu since this module has yet not reached a stable
661            status (ie. 1.0).
662    
663    2004-11-18  Jan-Oliver Wagner <[email protected]>
664    
665            Now the hit test considers the size of point symbols.
666    
667            * Thuban/UI/viewport.py (ViewPort._hit_point): Added optional parameter
668            'size' defaulting to the previously fixed value 5.
669            Extended doc-string.
670            (Viewport._find_shape_in_layer): Resolved FIXME regarding flexibility
671            for symbols.
672            Now the size of the largest point symbol is determined to find out
673            about whether the point has been hit.
674            This fixes the problem that only clicks inside a fixed distance of
675            5 where found.
676    
677    2004-11-17  Jan-Oliver Wagner <[email protected]>
678    
679            Another open issue fixed regarding sizeable symbols: correct rendering of
680            selected symbols.
681    
682            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
683            Added consideration of the specific size of point symbols.
684            The property for each point symbol is retrieved and the size applied
685            for the rendering method.
686            Added doc-string.
687    
688    2004-11-16  Jan-Oliver Wagner <[email protected]>
689    
690            Changed way of Extension Registry for gns2shp and profiling.
691    
692            * Extensions/gns2shp/gns2shp.py: Removed registry entry (moved to
693            __init__.py).
694    
695            * Extensions/gns2shp/__init__.py: Added registry entry and the importing
696            of the actual gns2shp module.
697    
698            * Extensions/profiling/profiling.py: Removed registry entry (moved to
699            __init__.py).
700    
701            * Extensions/profiling/__init__.py: Added registry entry and the importing
702            of the actual profiling module.
703    
704    2004-10-28  Bernhard Reiter <[email protected]>
705    
706            * Extensions/svgexport/: Minor improvements to doc strings.
707    
708    2004-10-07  Jan-Oliver Wagner <[email protected]>
709    
710            Further elements for sizable point objects now
711            making this feature usable though not yet complete.
712    
713            * Thuban/Model/save.py (SessionSaver.write_classification): Write
714            attribute 'size' for cldata when the shape layer is of point type.
715            This also now make the test_load.py tests happy.
716    
717            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Added size
718            gradient.
719    
720            * Thuban/UI/classifier.py (ID_SELPROP_SPINCTRL): Renamed to
721            ID_SELPROP_SPINCTRL_LINEWIDTH.
722            (ID_SELPROP_SPINCTRL_LINEWIDTH): New Id replaces ID_SELPROP_SPINCTRL.
723            (ID_SELPROP_SPINCTRL_SIZE): New Id.
724            (SelectPropertiesDialog.__init__): Added a second spin control
725            for the size in case the corresponding layer is of point type.
726            (SelectPropertiesDialog._OnSpin): Renamed to _OnSpinLineWidth.
727            (SelectPropertiesDialog._OnSpinLineWidth): New. Former _OnSpin.
728            (SelectPropertiesDialog._OnSpinSize): New. Set size of property
729            and refresh preview.
730    
731    
732    
733    2004-10-04  Martin Schulze  <[email protected]>
734    
735            * Extensions/wms/test/test_parser.py
736            (TestWMSCapabilitiesParser.test_compareLists): Added missing
737            self-test for compareLists()
738            (TestWMSCapabilitiesParser.test_compareDicts): Added missing
739            self-test for compareDicts()
740            (TestWMSCapabilitiesParser.test_compareLists): Adding more tests
741            to verify the test routine fails with non-equal arguments
742            (TestWMSCapabilitiesParser.test_compareDicts): Adding more tests
743            to verify the test routine fails with non-equal arguments
744    
745    2004-10-03  Jan-Oliver Wagner <[email protected]>
746    
747            First elements for sizeable point objects.
748    
749            * Resources/XML/thuban-1.1.dtd: Added size attribute to cldata.
750    
751            * Data/iceland_sample_size.thuban: New. Sample for sized point objects.
752    
753            * test/test_load.py (ClassificationTest.TestLayers): Added SetSize in case
754            of a corresponding argument is given.
755            (TestSymbolSize): New. Test the size attribute of cldata.
756    
757            * Thuban/Model/classification.py: Removed some trailing whitespaces.
758            (ClassGroupProperties.__init__): Set default size.
759            (ClassGroupProperties.SetProperties): Set the size.
760            (ClassGroupProperties.GetSize): New. Return the size.
761            (ClassGroupProperties.SetSize): New. Set the size.
762            (ClassGroupProperties__eq__): Compare also size.
763            (ClassGroupProperties__repr__): Print also size.
764    
765            * Thuban/Model/load.py (SessionLoader.start_cldata): Also parse
766            the size attribute.
767    
768            * Thuban/UI/classifier.py (ClassDataPreviewer.Draw): Added doc-string.
769            Also, now there is a return value that indicates whether the drawing
770            size exceeded the given rect extent and if so the new extent.
771            Finally, point objects are drawn depending on the size. If either
772            the width or height is exceeded, the new extent is returned.
773            (ClassRenderer.Draw): Now when calling the previewer drawing function,
774            evaluate the return value and, if not None, adapt the grid widget size
775            accordingly and redraw again.
776    
777            * Thuban/UI/baserenderer.py (BaseRenderer.draw_shape_layer_incrementally):
778            If the draw function is for points, call it with the size as additional
779            parameter.
780            (BaseRenderer.draw_point_shape): Added additional, optional parameter for
781            the size. Compute the radius using the size.
782    
783            * Extensions/importAPR/apr.py (APR_BMkSym.GetThubanProp): Now
784            that Thuban supports size, apply this correctly.
785    
786            * Extensions/importAPR/importAPR.py: Bumped version to 0.1.1.
787    
788    2004-10-03  Jan-Oliver Wagner <[email protected]>
789    
790            * Doc/manual/thuban-manual-de.xml: Started translation of
791            Map chapter.
792    
793    2004-10-01  Martin Schulze  <[email protected]>
794    
795            * Extensions/wms/properties.py (wmsProperties.__init__): Extended
796            argument for general use through properties-dialog selector
797            
798            * Thuban/UI/classifier.py: Register properties dialog classes for
799            both provided layer classes/types.
800    
801            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): The
802            map can be retrieved through the parent which is passed to the
803            constructor anyway and doesn't require an argument of its own,
804            required for the unification of arguments for general use through
805            properties-dialog selector.
806            (MainWindow.OpenOrRaiseDialog): Move the logic for checking
807            whether a dialog is already opened (and raising it to the users
808            attention) and creating a new dialog into a function of its own
809            (MainWindow.OpenLayerProperties): Use the new OpenOrRaiseDialog()
810            method
811            (MainWindow.OpenLayerProperties): Utilise the new ClassMapper for
812            global registration of properties dialog classes (which are indeed
813            layer-specific).
814    
815            * Thuban/UI/classifier.py (Classifier.__init__): Unify arguments
816            for general use through properties-dialog selector, the map can be
817            retrieved through the parent and doesn't require an argument of
818            its own.
819    
820            * Extensions/wms/wms.py: Register the properties dialog class for
821            the provided WMS layer
822    
823    2004-09-28  Jan-Oliver Wagner <[email protected]>
824    
825            New feature: Registry for Extensions.
826    
827            * Thuban/UI/extensionregistry.py: This module defines a registry for
828            Extensions.
829    
830            * Thuban/UI/about.py (About.__init__): Added description
831            of the registered extensions with all of the information.
832    
833            * Thuban/Model/extension.py (Extension): Improved doc-string.
834    
835            * Extensions/gns2shp/gns2shp.py, Extensions/importAPR/importAPR.py,
836            Extensions/bboxdump/bboxdump.py, Extensions/profiling/profiling.py,
837            Extensions/wms/wms.py: Added registration of the extension.
838    
839    2004-09-27  Bernhard Reiter <[email protected]>
840    
841            More fixes to svgexport to make used ids unique and
842            conforming to XML's Name production.
843    
844            * Extensions/svgexport/test/test_svgmapwriter.py: Added new tests
845            test_xml_id_constraints(), test_make_ide_nosetbaseid() and
846            test_make_id_nonintegersetid().  Switched SetID and SetBaseID.
847            Added Bernhard R. as author.
848            * Extensions/svgexport/svgmapwriter.py (make_id): Using "_" as
849            concatenation char now (makes test_make_ide_nosetbaseid() valid).
850            Also transform second id part with "%d" and catch the TypeError
851            to raise SVGMapWriterError (making test_make_id_nonintegersetid() ok).
852            Corrected typo inBernhard's author line.
853            (SetBaseID): Return the transformed base id. Transform characters
854            which are not alnum() or in ".-_" to binascii.b2a_hex(). Added
855            import binascii. If to be set string starts with "xml" or so, add "t".
856            (draw_shape_layer_incrementally): use the returned value of SetBaseID
857            for used_baseids checks.
858    
859    2004-09-25  Bernhard Herzog  <[email protected]>
860    
861            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
862            Remove a debug print and some tab characters.
863    
864    2004-09-25  Bernhard Reiter <[email protected]>
865    
866            * Extensions/svgexport/svgmapwriter.py: Added Bernhard R. as Author.
867            (SetBaseID, SetID, make_id): Improved docstring comments to explain
868            the interaction of the three functions and the XML id contrains.
869    
870    
871    2004-09-23  Jan-Oliver Wagner <[email protected]>
872    
873            * Doc/ThubanModel.xmi: New. UML file for Thuban Model
874            Module.
875    
876            * Doc/README: Added info on ThubanModel.xmi.
877    
878    2004-09-23  Jan-Oliver Wagner <[email protected]>
879    
880            * Doc/README: New. Some info about how to generate technical
881            documentation from the source code.
882            This text was send to the Thuban developer mailing list on
883            September 21st 2004 by Bernhard Reiter.
884    
885    2004-09-21  Bernhard Reiter <[email protected]>
886    
887            Improved the svgexport to only use unique ids. Will issues
888            an error message dialoge when two layer names are the same.
889            ShapeIDs are now added with a dash within the svg ids.
890    
891            * Extensions/svgexport/svgmapwriter.py (SVGMapWriterError): New.
892            * Extensions/svgexport/test/test_svgmapwriter.py: Added imports
893            (TestSVGRenderer): New test class with test_make_in() and
894            test_check_for_layer_name_clash()
895            * Extensions/svgexport/svgmapwriter.py (SVGRenderer): Fixed __init__()
896            and draw_shape_layer_incrementally() to not use a baseid twice,
897            satisfying test_check_for_layer_name_clash()
898            (VirtualDC.make_id): Use a dash between baseit and id, satisfies
899            test_make_in().
900            * Extensions/svexport/svgsaver.py: Import SVGMapWriterError, wxOK
901            and wxICON_HAND.
902            (write_to_svg): Put dc and rendering in a try statement and on
903            catching SVGmapWriterError notify the user and delete the target file.
904    
905    2004-09-20  Bernhard Reiter <[email protected]>
906    
907            * Model/base.by, Model/layer.py: Fixed typos in docstrings.
908    
909    2004-09-03  Jan Sch�ngel  <[email protected]>
910    
911            * Extensions/umn_mapserver/mapfile(MF_Class.add_thubanstyle): Fix a
912            small bug with the line color. Now the line color will now only set
913            if it is set in Thuban an not Transparent.
914            
915            * Extensions/umn_mapserver/mf_export(tblayer_to_map): Fixed a bug with
916            deleting the layers from mapfile. Now all layers will delete backwards
917            from the last.
918    
919    2004-08-20  Silke Reimer <[email protected]>
920    
921            * Thuban/Model/layer.py:
922            Fixes bug in projection handling: Otherwise very large region might not
923            have valid values in the layer's projection.
924    
925    2004-08-20  Silke Reimer <[email protected]>
926    
927            * Thuban/UI/about.py:
928            small changes to be consistent with coding style.
929              
930    2004-08-13  Martin Schulze  <[email protected]>
931    
932            * Extensions/wms/test/test_ogclib.py (TestOGCLib.compare_URLs):
933            Adjusted a comment
934    
935    2004-08-11  Silke Reimer <[email protected]>
936    
937            * Thuban/UI/about.py: Small changes to encoding related stuff to avoid
938                    too many and too enhanced imports of locale
939    
940    2004-08-10  Silke Reimer <[email protected]>
941    
942            * Thuban/UI/about.py: Fixed encoding problem of about dialog: Added
943                    function unicodeToLocale() to convert special characters to users
944                    locale encoding
945    
946    2004-08-10  Jan-Oliver Wagner <[email protected]>
947    
948            * Doc/technotes/coding_guidelines.txt: Added rule 'Method names start with
949            lower case letter'
950    
951    2004-08-09  Jan Sch�ngel  <[email protected]>
952    
953            * ChangeLog: Rewrite the last ChangeLog entry to follow
954            the standard way.
955    
956            * Extensions/umn_mapserver/mapfile: Moved the import AnnotationLayer to
957            the function where it is needed, because it don't works if it stands
958            at the beginning.
959            (MF_Layer.__init__): Removed the extra numclassed variable. Now
960            numclasses from the mapscript will be used.
961            (MF_Layer.get_index): New. Return the index of the layer in mapfile.
962            (MF_Layer.set_classes): New. A Classlist will be set to the layer.
963            (MF_Layer.set_metadata): New. A Metadata mapscript object will set.
964            (MF_Layer.remove_allclasses): New. All class of the layer will remove.
965            (MF_Map.create_new_layer): New. A new Layer is created and associated
966            with the mapscript object.
967            (MF_Map.set_layerorder): New. The Layer order like in thuban is set in
968            the mapscript.
969            (MF_Map.add_thubanlayer): Now a new layerobj is created if no one is
970            linked to the layer in thuban, else the layerobject linked to the
971            thubanlayer will be used.
972            AnnotationLayer will now store the filename of the shapefile.
973            (MF_Map.remove_layer): If a layer is removed the associated object
974            must be set new.
975            
976            * Extensions/umn_mapserver/mf_export.py(tb_layer_to_map): Add all
977            layers which are exists in thuban to the mapobj. All removed Layers
978            will be removed from the mapobj.
979            Added comments to all functions.
980            (thuban_to_map): No layer will be removed here.
981            
982            * Extensions/umn_mapserver/mf_handle.py
983            (_has_umn_mapobj_and_selectedlayer): Activating the layer menu. Now
984            Layersettings for the mapserver kann be edited.
985    
986            * Extensions/umn_mapserver/mf_import.py: Now all layers which are
987            imported, will be linked with the associated MF_Layer.
988            (import_mapfile): All layers, which are not selected, will be removed.
989            Disable the "import layer from mapfile" menu option.
990    
991            * Extensions/umn_mapserver/sample/iceland.map: Set the status of the
992            Annotation Layer from DEFAULT to OFF. The DEFAULT setting turns the
993            layer on permanently.
994    
995    2004-08-03  Jan Sch�ngel  <[email protected]>
996    
997            * Extensions/umn_mapserver/mapfile.py(MF_Metadata.remove_allmetadata):
998            New. This function removes all metadata
999            (MF_Layer.set_group): New. Set the group setting.
1000            (MF_Layer.get_group): New. Get the group setting.
1001            (MF_Map): Removed the extra numlayers variable, used the mapscript
1002            parameter instead.
1003            (MF_Map.get_numlayers): New. This get numlayers.
1004            (MF_Map.remove_all_layers): New. Removes all layers from the mapobj.
1005            (MF_Map.add_thubanlayer): Replaced the exception handling by a check
1006            if the object is an instance. Also added the annotation layer here to
1007            export, but only the layer is created in the mapfile.
1008    
1009            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Removed
1010            the check if a mapobj exist, because its not needed anymore. The
1011            export function is only available if a mapobj exist.
1012            Use the new function to remove all layers.
1013            
1014            * Extensions/umn_mapserver/mf_handle.py(Layer_Dialog): Added a group
1015            option and the metadata button. The layer dialog is temporary disabled.
1016            (Metadata_CustomDataTable): Added some functions to show the grid
1017            correct.
1018    
1019            * Extensions/umn_mapserver/mf_import.py: Moved the code for showing
1020            the number of layer from import_mapfile to this function.
1021            (AnnotationLayer): New. This Class shows the Annotation layer in
1022            thuban. The layer don't do anything. It's only to show the layer
1023            and to save the layer order.
1024            (add_annotationlayer): New. Import an annotation layer to thuban.
1025            (select_layer2import): New. Import only layers to thuban and not
1026            the other settings like projection or scalebar.
1027            (create_new_mapfile): Moved the _has_umn_mapobj function and the
1028            create_new_mapfile functions from mf_handle.py to mf_import.py.
1029            
1030            * Extensions/umn_mapserver/sample/iceland.map: Added the group
1031            parameter to the roads and cultural layers. Also added a new
1032            Annotation Layer for the cultural points.
1033    
1034            * Extensions/umn_mapserver/sample/iceland.html: Added the select
1035            option for the annotation layer.
1036    
1037            * Extensions/umn_mapserver/sample/index.html: Added the start
1038            parameter for the annotation layer.
1039    
1040    2004-08-01  Jan-Oliver Wagner <[email protected]>
1041    
1042            * Doc/manual/thuban-manual-de.xml (Chapter Session Management):
1043            translation completed.
1044    
1045            * Doc/manual/thuban-manual.xml (Chapter Session Management):
1046            Fixed unprecise description for Save Session.
1047    
1048    2004-07-31  Jan-Oliver Wagner <[email protected]>
1049    
1050            Started translation of Users Manual into german.
1051    
1052            * Doc/manual/thuban-manual-de.xml: New. German Users Manual.
1053    
1054            * Doc/manual/Makefile: Added build instructions for german
1055            users manual.
1056    
1057            * Doc/manual/thuban-manual.xml: Minor corrections in Introduction.
1058    
1059    2004-07-28  Jan Sch�ngel  <[email protected]>
1060    
1061            * Extensions/umn_mapserver/mapfile.py(MF_Metadata): Changed all class
1062            functions. Now all metadata will handle by the function and its not
1063            needed to initialize it from outside. Therefor the associated mapobj
1064            will be stored in the Metadata Object. So we can use the special
1065            functions from the associated mapobj to get the Metadata.
1066            Therefor all initialization code for the metadata is removed from the
1067            other classes.
1068            (MF_Layer): Added a function to get the metadata object.
1069            (MF_Map): Added a function to set the mappath, the path where
1070            the mapfile ist stored.
1071    
1072            * Extensions/umn_mapserver/mf_export.py(thuban_to_map): Changed the code
1073            to set the extent in the mapfile. Now the code is set by the displayed
1074            data in the Thuban-view.
1075            (export_mapfile): The shapepath is now set empty, until relative
1076            pathnames are supported.
1077    
1078            * Extension/umn_mapserver/mf_handle.py: Added a dialog to handle
1079            metadata. Yet only mapfile metadata are supported. Layer and class
1080            supported are not implemented.
1081            Added a dialog to handle layer informations. The dialog only shows the
1082            selected layer at the moment.
1083    
1084            * Extensions/umn_mapserver/mf_import.py(import_mapfile): Changed the
1085            code for setting the extent in thuban. Now the extent is set to the
1086            given extent from the mapfile.
1087            Fixed a logical mistake. Now the extent is set when realy a layer is
1088            loaded, and not if one is selected to load.
1089    
1090            * Extensions/umn_mapserver/sample/iceland.html: Added code to zoom and
1091            move the shown map in the browser.
1092    
1093            * Extensions/umn_mapserver/sample/iceland.map: Added a new metadata
1094            line to the mapobj and added metadata to the political layer.
1095    
1096            * Extensions/umn_mapserver/test/test_mapserver.py: Changed the test
1097            for Metadata.
1098    
1099    2004-07-26  Martin Schulze  <[email protected]>
1100    
1101            * Thuban/Lib/classmapper.py (ClassMapper.has): Added the new
1102            ClassMapper
1103    
1104            * test/test_classmapper.py (TestMapping.test_mapper): Added a Test
1105            case for the new ClassMapper
1106    
1107    
1108    2004-07-22  Bernhard Herzog  <[email protected]>
1109    
1110            * Thuban/UI/viewport.py (ViewPort.VisibleExtent): New.  Return the
1111            visible extent of the map in projected coordinates
1112    
1113            * test/test_viewport.py (SimpleViewPortTest.test_default_size)
1114            (SimpleViewPortTest.test_init_with_size): Add some VisibleExtent()
1115            tests.
1116            (SimpleViewPortTest.test_visible_extent): New. The real test for
1117            VisibleExtent()
1118    
1119    2004-07-22  Bernhard Herzog  <[email protected]>
1120    
1121            * test/test_viewport.py: Use support.run_tests as the main
1122            function when running asa script.
1123    
1124    2004-07-22  Jan Sch�ngel <[email protected]>
1125    
1126            * Extensions/umn_mapserver/mf_export.py: Added "import os"
1127            Removed the old "import Thuban.UI.mainwindow" code.
1128            (tbextent_to_map): Removed the extra function and at the code direct
1129            to "thuban_to_map" function.
1130            (write_creatorcomment): Added. Now a short comment is added to the
1131            beginning of an generated mapfile.
1132            (export_mapfile): Now the Path and filename are saved in to variables,
1133            and not together in one variable. This is needed for the new
1134            write_creatorcomment function.
1135                    
1136            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Added the
1137            import module "re". Also added Range and the ClassGroupRange import
1138            from Thuban. Both are needed for the new range expression import.
1139            (create_rangeexpression): Added. Creates a Range Expression in Thuban
1140            style from a given mapfile expression.
1141            (added_rasterlayer): Make some small code changes. The shapepath is
1142            now stored in an extra variable and the clazz_name is set empty if no
1143            class name set in the mapfile.
1144            Changed the Error message for Range Expressions, becaus the new
1145            function create a error string which will be shown in the dialog.
1146    
1147            * Extensions/umn_mapserver/test/test_mapserver.py: Added a test for the
1148            range expression import.
1149    
1150    2004-07-21  Jan-Oliver Wagner <[email protected]>
1151    
1152            * Extensions/umn_mapserver/README: Added hint that
1153            installation as root can be avoided. Removed all tabs.
1154    
1155    2004-07-16  Bernhard Herzog  <[email protected]>
1156    
1157            * test/test_viewport.py
1158            (ViewPortTest.test_changing_map_projection): Check that changing
1159            the projection of an empty map shown in a viewport doesn't lead to
1160            exceptions in the viewport's handler for the
1161            MAP_PROJECTION_CHANGED messages
1162    
1163            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Only
1164            try to keep the same region visible when the map actually contains
1165            something
1166    
1167    2004-07-15  Jan Sch�ngel <[email protected]>
1168    
1169            * Extensions/umn_mapserver/mapfile.py: Added a function to get the
1170            mappath directly from the mapobj. Is needed because of the changes
1171            in mf_import.py.
1172            (MF_Layer.add_thubanclass): Added a new comment.
1173            (MF_Map.set_extent): Fixed a bug with exporting empty mapobj. If the
1174            mapobj is empty there is no extent get from thuban an so no one can
1175            set to th mapobj.
1176            
1177            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Updated
1178            the discription.
1179            Split the funktion in to three smaller ones. The new functions are
1180            add_rasterlayer, add_polygonlayer and select_layer2import.
1181            Removed the mapfilepath and filepath initialisation, because its know
1182            include in the new functions.
1183            Now nothing will be imported if cancel is pressed in the
1184            layer choice dialog.
1185    
1186    2004-07-14  Jan Sch�ngel <[email protected]>
1187    
1188            * Extensions/umn_mapserver/mapfile.py: Added ClassGroupDefault to
1189            import.
1190            (MF_Symbolset): Removed the extra variable for numsymbols.
1191            (MF_Class.__init__): Added a comment to the exception clause.
1192            Removed the extent init, because it was not needed anymore.
1193            (MF_Layer.add_thubanclass): Added the code to set the class name to
1194            the expression value from thuban if no label is defined.
1195            Added the code to export Range expressions from thuban to the mapfile.
1196            (MF_Map.set_extent): Removed the exception and replace it by some if
1197            code. If the size of a map is not defined the size will be set to 1,1.
1198            This is necessary because if the extent is set, mapscript checks if
1199            the size is greater than zero.
1200            (MF_Web): Added the get and set function for the template.
1201    
1202            * Extensions/umn_mapserver/mf_export.py: Added the function to check
1203            if a mapobject exists and used it to set the status of the menu items.
1204            If no mapfile exists the settings could not be edditied.
1205            Define after which menuitem the exportitem will include.
1206            
1207            * Extensions/umn_mapserver/mf_handle.py: Removed the import
1208            Thuban.UI.mainwindow clause, because it is not needed.
1209            Added the command Refresh() to all "OnChangeColor()" functions,
1210            because the color preview window was not updated on a color change.
1211            Added the function to check if a mapobject exists and used it to set the
1212            status of the menu items. If no mapobject exists the settings could not
1213            be edditied.
1214            (Map_Dialog): Moved the imagetype selector from the
1215            Outputformat_Dialog to Map_Dialog and removed Outputformat_Dialog.
1216            (Web_Dialog): Removed the name label and added the template textbox.
1217    
1218            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Replace
1219            the exception handling on loading the layers by an if statement. It
1220            is not necessary to us the exception there.
1221            The Filepath creation now use os.path.join to build the path.
1222    
1223            * Extensions/umn_mapserver/test/test_mapserver.py: Moved the testMap
1224            definition from global to the setUp function. Now the testMap will
1225            initialize new on each test.
1226    
1227            * Extensions/umn_mapserver/sample/iceland.map: Include three new
1228            classes in the Line Layer, to test logical Expressions.
1229            Set the status of the class "Point9" in the Point Layer to off
1230            
1231    2004-07-13  Bernhard Herzog  <[email protected]>
1232    
1233            * Thuban/UI/baserenderer.py
1234            (BaseRenderer.render_map_incrementally): Fix a logic bug in the
1235            optimization that tries not to draw layers under a raster layer.
1236            The bug was harmless.  All it effectively did was to produce The a
1237            strange messages about not being able to draw Layer instances for
1238            all vector layers below a raster layer which would be invisible
1239            anyway because the raster layer currently always covers the entire
1240            window
1241    
1242    2004-07-08  Jan Sch�ngel <[email protected]>
1243    
1244            * Extensions/umn_mapserver/mapfile.py: Added code to generade and get
1245            a list of supported outputformats. This formats are not alle supported
1246            because there is no possibility to get the outputformat without the
1247            name known. Make some formal changes to the code.
1248            (MF_Map.set_name()): Fixed a bug if the name is None.
1249    
1250            * Extensions/umn_mapserver/mf_handle.py: Removed the image_type import
1251            statement, because its not needed anymore. The Outputformat is now
1252            given as string from the object. Make some formal changes to the code.
1253    
1254            * Extensions/umn_mapserver/test/test_mapserver.py: Added new test for
1255            most of the new setting which were added during the last changes.
1256            Removed the MF_Size Test.
1257            
1258            * Extensions/umn_mapserver/test/test.map: Added a new class to the
1259            cultural Layer to test expressions and the the status of that layer
1260            from on to default.
1261            Changed the data path the the correct Thuban Data
1262            Added the Outputformat Object and Symbol Object
1263            
1264    2004-07-07  Jan Sch�ngel <[email protected]>
1265    
1266            * Extensions/umn_mapserver/mapfile.py: Added some new
1267            settings to edit (outputformat, label, imagetype)
1268    
1269            * Extensions/umn_mapserver/mf_handle.py: Added some setting to
1270            the Label Dialog and add the OutputDialog.
1271            Make some changes to the code order.
1272    
1273    2004-07-06  Jan Sch�ngel <[email protected]>
1274    
1275            * Extensions/umn_mapserver/mapfile.py: Added the symbolObj, pointObj
1276            and line Obj and add the scalebar_status_type, scalebar_style_type and
1277            scalebar_position_type.
1278            Added the symbol- and symbolsetObject (MF_Symbol,MF_Symbolset). The
1279            are only used to create a Symbol like the circle in Thuban.
1280            Added the scalebarObject (MF_Scalebar)
1281            (MF_Class): Added set_status and get_status.
1282            (MF_Layer.add_thubanclass): Added code to set the class status
1283            (MF_Map): Added code to handle the symbols and scalebar
1284            (MF_Label): Added the set_partials and get_partials functions
1285            
1286            * Extensions/umn_mapserver/mf_export.py: Added MF_Symbol to import
1287            from mapfile. Added a function to create a circle object like the one
1288            from thuban if no one exists.
1289            
1290            * Extensions/umn_mapserver/mf_handle.py: All colors are now set when
1291            press ok in the assosiated dialog and not at the end of the
1292            colordialog.
1293            Added the Dialog for the Scalebar.
1294            (Label_Dialog): Added the offset option
1295    
1296            * Extensions/umn_mapserver/mf_import.py: Added code to import the
1297            status of the Classes.
1298            Fixed a bug with the projection. Now the to_meter parameter will be
1299            added to the Projection only if it doesn't exists.
1300    
1301    2004-07-01  Jan Sch�ngel <[email protected]>
1302    
1303            Added the functionality to handle the content thuban is not
1304            able to handle directly.
1305    
1306            * Extensions/umn_mapserver/mf_handle.py: New. This module extents
1307            Thuban with the possibility to edit the mapfile content.        
1308            
1309            * Extensions/umn_mapserver/mf_import.py: Added the possibility
1310            to import mapfiles without any layer selected. So it is possible
1311            to edit the other settings in a mapfile.
1312            (import_mapfile): Added code to use the editing functions.
1313            Added the possibility to import the projection to a layer if one
1314            is defined.
1315            Status settings (On,Off) will now set in thuban (visible, invisible).
1316            fixed a bug with with classnames. If no classname is set in mapfile
1317            the value in Thuban will set to the expression.
1318            
1319            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Added the
1320            possibility to save a new mapfile or use the old one which is
1321            imported or new created.
1322            Added code to use the editing functions.
1323            Remove some not needed import statements
1324    
1325            * Extensions/umn_mapserver/mapfile.py: Added new types which are
1326            need for the editing functions.
1327            Added needed set-functions for the editing functions.
1328            Added the possibility to export rasterimages.
1329            Added new classes (MF_Web, MF_Label, MF_Legend, MF_Symbol,
1330            MF_SymbolSet). MF_Symbol and MF_SymbolSet are not needed at the
1331            moment.
1332            (MF_Class.set_thubanstyle): Now point layers will set to a default
1333            symbol to show a circle in mapserver and not only a 1px dot.
1334            (MF_Style.__init__): Fixed a bug with the color. Color was not set
1335            correct before.
1336            (MF_Size): Removed, because it is not needed.
1337            
1338            * Extensions/umn_mapserver/README: Added the hints to use the
1339            export and editing functions, too.
1340    
1341            * Extensions/umn_mapserver/sample/iceland.map: Added the
1342            new parameter "UNITS METERS".
1343            Change the political layer to status OFF.
1344    
1345            * Extensions/umn_mapserver/sample/README: Added some
1346            more details to setup the sample in the MapServer.
1347            
1348    2004-06-26  Bernhard Reiter <[email protected]>
1349    
1350            * Extensions/svgexport/test/test_svgmapwriter.py:
1351            Removed class VFile and used standard StringIO instead.
1352    
1353    2004-06-23  Jan Sch�ngel  <[email protected]>
1354    
1355            Add the export function to the umn_mapserver extension.
1356    
1357            * Extension/umn_mapserver/mf_export.py: New. This module extents
1358            Thuban with the possibility to export the Thuban content.
1359    
1360            * Extensions/umn_mapserver/mapfile.py: Expand the classes to use
1361            with the export module. Especially added the possibility to
1362            add thuban objects directly to the map objects.
1363    
1364            * Extensions/umn_mapserver/mf_import.py: Removed the wxCHANGE_DIR,
1365            because of the hint from Bernhard Herzog.
1366            Corrected the handling of absolute pathnames.
1367            Changed the Text of the Menu-Item, now the beginning is upper case.
1368    
1369            * Extensions/umn_mapserver/README: Added the --with-tiff statement.
1370    
1371    2004-06-16  Jan Sch�ngel  <[email protected]>
1372    
1373            Add a sample and make some changes.
1374    
1375            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
1376            import from * to explicit used statements. Changed the
1377            Thuban.UI.mainwindow import phrase, too.
1378            (import_mapfile):Corrected a clerical mistake.
1379            Added wxCHANGE_DIR in OpenFile Dialog.
1380            Added a MultipleChoiceDialog, to select the layers to load from
1381            mapfile into thuban. Thereby the projection is only set if one layer
1382            is selected.
1383            Added the possibility to handle relative pathnames which uses
1384            up-level references.
1385            Removed some doubled code.
1386            Corrected an error with integer values used as label in thuban
1387            ClassGroup.
1388            
1389            * Extensions/umn_mapserver/sample: New.
1390    
1391            * Extensions/umn_mapserver/sample/README: New. Describes the
1392            usage of the sample files.
1393    
1394            * Extensions/umn_mapserver/sample/iceland.map: New. This is
1395            a suitable .map-file for the iceland data.
1396    
1397            * Extensions/umn_mapserver/sample/index.html: New. The template
1398            for the mapfile.  
1399    
1400            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
1401            file for the Iceland Application on web.
1402    
1403            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
1404            some details.
1405    
1406            * Extensions/umn_mapserver/test/test_mapserver
1407            (mapserver_import_Test_generalClasses.test_MF_Color):
1408            Corrected the thubancolor test.
1409    
1410    2004-06-15  Jan Sch�ngel  <[email protected]>
1411    
1412            * Extensions/umn_mapserver/README: New. Install instruction.
1413    
1414    2004-06-14  Bernhard Reiter <[email protected]>
1415    
1416            * libraries/thuban/cpl_mfile.h: Added copyright header.
1417    
1418            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
1419            Free Software License so that it is most useful with gdalwarp
1420            and bmpdataset.
1421    
1422    2004-06-14  Bernhard Herzog  <[email protected]>
1423    
1424            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
1425            import of wxPython.wx itself (as opposed to the contents of
1426            wxPython.wx).  For some reason wxPython.wx is available as
1427            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
1428            wrt. wxPython 2.4.
1429    
1430    2004-06-10  Jan Sch�ngel  <[email protected]>
1431    
1432            Initial version of new extension "umn_mapserver".  This extension aims
1433            to manage configuration for the UMN MapServer application.  This
1434            inital version just imports the .map-files and displays all, Thuban is
1435            capable of.
1436    
1437            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
1438    
1439            * Extensions/umn_mapserver/test/README: New. Describes how to run the
1440            tests.
1441    
1442            * Extensions/umn_mapserver/test/test.map: New. This is a test
1443            .map-file for automated tests of the umn_mapserver extension of
1444            Thuban.
1445    
1446            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
1447            UMN Mapserver classes.
1448    
1449            * Extensions/umn_mapserver/__init__.py: New. Init to make this
1450            directory a package.
1451    
1452            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
1453            '.map'-file objects.
1454    
1455            * Extensions/umn_mapserver/mf_import.py: New. This module extends
1456            Thuban with the possibility to handle UMN MapServer mapfiles.
1457    
1458    2004-06-03  Bernhard Herzog  <[email protected]>
1459    
1460            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
1461            to a tuple before using it as arguments to the % operator.  This
1462            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
1463            reported today on thuban-list by Jan Sch�ngel
1464    
1465            * test/test_layer.py (TestLayerModification.setUp): Save the
1466            filename as an instance variable so we can refer to it in tests
1467            (TestLayerModification.test_tree_info): Uncomment this method
1468            again and make it work.  This tests for the formatting issue
1469            filed in RT#2239 on 2004-01-13
1470    
1471    2004-05-28  Bernhard Herzog  <[email protected]>
1472    
1473            * Thuban/UI/baserenderer.py: Fix some typos.
1474    
1475    2004-05-18  Jan-Oliver Wagner <[email protected]>
1476    
1477            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
1478            by increasing a field size.
1479    
1480    2004-05-17  Bernhard Herzog  <[email protected]>
1481    
1482            Update to newest shapelib and get rid of Thuban specific
1483            extensions, i.e. use the new DBFUpdateHeader instead of our
1484            DBFCommit kludge
1485    
1486            * libraries/shapelib/shpopen.c: Update to version from current
1487            shapelib CVS.
1488    
1489            * libraries/shapelib/shapefil.h: Update to version from current
1490            shapelib CVS.
1491    
1492            * libraries/shapelib/dbfopen.c: Update to version from current
1493            shapelib CVS.
1494            (DBFCommit): Effectively removed since shapelib itself has
1495            DBFUpdateHeader now which is better for what DBFCommit wanted to
1496            achieve.  
1497            We're now using an unmodified version of dbfopen.
1498    
1499            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
1500            value '1' to the Lib.dbflibc extension.  This simply reflects the
1501            shapelib and pyshapelib updates
1502    
1503    2004-05-16  Jan-Oliver Wagner <[email protected]>
1504    
1505            Finished introduction of Menu.FindOrInsertMenu.
1506    
1507            * Extensions/drawshape/drawshape.py: Add the command
1508            to the experimental menu additionally to the toolbar.
1509    
1510            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
1511            finding menu on its own.
1512    
1513            * Doc/manual/thuban-manual.xml: updated sample file
1514            to use FindOrInsertMenu().
1515    
1516            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
1517            instead of finding menu on its own.
1518    
1519    2004-05-11  Jan-Oliver Wagner <[email protected]>
1520    
1521            * test/test_menu.py (MenuTest.test): Added testing
1522            of method Menu.FindOrInsertMenu.
1523    
1524    2004-05-10  Jan-Oliver Wagner <[email protected]>
1525    
1526            Introduce and use Menu.FindOrInsertMenu.
1527    
1528            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
1529              given menu or, if not found, insert it.
1530    
1531            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
1532            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
1533            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
1534            menu on its own.
1535    
1536    2004-05-06  Jan-Oliver Wagner <[email protected]>
1537    
1538            Introduce a abstract ColorDialog class and remove
1539            and outdated file.
1540    
1541            * Thuban/UI/proj4dialog.py: Removed. It is has been
1542            replaced by projdialog for quite a while and is not used
1543            anymore.
1544    
1545            * Thuban/UI/colordialog.py: New. Abstraction for color selection
1546            dialog(s).
1547    
1548            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
1549            Now calls the abstract ColorDialog instead of wxColourDialog.
1550            This also removed the dependency to Color class conversion
1551            from this function.
1552    
1553    2004-05-04  Frank Koormann  <[email protected]>
1554    
1555            * Extensions/bboxdump/__init__.py: Fixed string left over from
1556            copying.
1557    
1558            * Extensions/bboxdump/bboxdump.py (bboxdump):
1559            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
1560            xrange(layer.NumShapes()). Compile the bboxmessage from a list
1561            of formatted outputs (string.join) instead of appending to the
1562            message. Two progress bar dialogs to report progress on the sometimes
1563            lenghty processing.
1564    
1565    2004-04-22  Frank Koormann  <[email protected]>
1566    
1567            New Extension to dump bounding boxes of all shapes of the selected
1568            layer. An optional column can be specified to group the objects,
1569            in this case the bounding box is a union of the separate boxes.
1570            Dump can be displayed in a ScrolledMessageDialog or written to file.
1571            The Extension is simply a combination of available and well tested
1572            Thuban functionality.
1573    
1574            * Extensions/bboxdump/__init__.py: New: Init to make this
1575            directory a package.
1576    
1577            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
1578            all shapes of the selected layer.
1579    
1580    2004-04-22  Jan-Oliver Wagner <[email protected]>
1581    
1582            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
1583            strings to be i18n now.
1584    
1585    2004-04-18  Jan-Oliver Wagner <[email protected]>
1586    
1587            Changing popup menu of legend from direct building
1588            to using the Menu construction as used for the mainwindow.
1589    
1590            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
1591            layer_to_bottom, layer_visibility
1592            (MainWindow.LayerToTop): New. Put current layer to the top.
1593            (MainWindow.LayerToBottom): New. Put current layer to bottom.
1594            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
1595            Replace 1,0 by True, False.
1596            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
1597            current layer.
1598            (MainWindow.LayerShowTable): Removed raising of dialog.
1599            (_has_selected_layer_visible): New. Support function.
1600    
1601            * Thuban/UI/legend.py: ID_POP_xxx: removed.
1602            (LegendPanel.__init__): Removed EVT_MENU bindings.
1603            (LegendTree._OnRightClick): Replace direct creation of
1604            menu via wx Classes by applying the menu definition
1605            as of Menu class of menu.py.
1606            
1607    2004-04-16  Jan-Oliver Wagner <[email protected]>
1608    
1609            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
1610        button string to stronger clearify that Thuban will be closed when hitting
1611            the button.
1612    
1613            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
1614            Now for layers without a ShapeStore a corresponding message is given
1615            to the user, that this layer has no table to show.
1616    
1617    2004-04-15  Martin Schulze  <[email protected]>
1618    
1619            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
1620            recalculate the format for the internal render engine as well.
1621    
1622            * Extensions/wms/properties.py (wmsProperties): First start for a
1623            properties dialog.  It's functional for a first selection of
1624            layers, but still has some weired wxWidgets/GTK problems but
1625            beautification can be done later.
1626    
1627            * Extensions/wms/layer.py: Added more documentation
1628            (WMSLayer.getFormats): New: Return list of supported image formats
1629            by the WMS server
1630            (WMSLayer.getLayers): New: Return the list of layer names
1631            supported by the WMS server
1632            (WMSLayer.getLayerTitle): New: Return the title of the named layer
1633            (WMSLayer.getWMSFormat): New: Return the image format that is used
1634            for WMS GetMap requests
1635            (WMSLayer.setWMSFormat): New: Set the image format that is used
1636            for WMS GetMap requests
1637            (WMSLayer.__init__): Move away from using only one layer to using
1638            a list of layers (unsorted at the moment, though).
1639            (WMSLayer.getVisibleLayers): New: Return the list of names for all
1640            visible layers
1641            (WMSLayer.setVisibleLayers): New: Set the list of names for all
1642            visible layers
1643    
1644            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
1645            order to establish a clean structure.
1646    
1647            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
1648            own in order to establish a clean structure.
1649    
1650    2004-04-13  Martin Schulze  <[email protected]>
1651    
1652            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
1653            support for oldstyle (WMS 1.0 apparently) image format
1654            specification.
1655    
1656            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
1657            supported graphic formats back to JPEG and BMP, PNG and others are
1658            too *cough* experimental...  Sorry, I meant to filter this out
1659            before I committed this part.  This should make the WMS extension
1660            run from CVS again.
1661            (wms_dialog): Reset an empty URL to None so that the subsequent
1662            program can depend on this, since the dialog will indeed return an
1663            empty URL, causing another declaration of love by Python.
1664    
1665            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
1666            Whenever a native BoundingBox request cannot be fulfilled, check
1667            whether the requested SRS is EPSG:3426, in which case return the
1668            LatLonBoundingBox values.
1669    
1670            * Extensions/wms/test/test_parser.py
1671            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
1672            ignoring AUTO:* SRS.
1673            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
1674            Added another test method to test whether the LatLonBoundingBox
1675            values will be returned if BoundingBox values are requested with
1676            SRS set to EPSG:3426.
1677    
1678            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
1679            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
1680            the moment by placing them into a variable which is currently
1681            unused.  Also test whether the EPSG SRS is numerical as it should
1682            be and add an error message if it is not.
1683    
1684            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
1685            appear in the real world as well.  Since we cannot handle them yet
1686            (OGCLib can't either), we will ignore them for the moment.
1687    
1688            * Extensions/wms/parser.py: Use a variable for denoting the sample
1689            filename
1690            (WMSCapabilitiesParser.peekLayers): Added support for error
1691            messages during grok().  They will be aggregated in an array and
1692            may be displayed later.  We may have to add a classification
1693            "Warning" and "Error" to this.  That requires more experience,
1694            though, since not every error may be lethal.
1695    
1696            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
1697            ShowTable() dialog/frame when the user attempts to display it
1698            while it has been opened before already and not closed again.
1699    
1700    2004-04-11  Martin Schulze  <[email protected]>
1701    
1702            * Extensions/wms/infodialog.py: Adjusted the class documentation
1703    
1704            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
1705            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
1706            wxWidgets variants.
1707            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
1708    
1709            * Extensions/wms/infodialog.py: Added an information dialog that
1710            will display various information about the WMS current resource,
1711            so that additional information such as the title, the abstract,
1712            fees and access constraints can be displayed for the user if they
1713            are documented in the WMS XML.
1714    
1715    2004-04-10  Martin Schulze  <[email protected]>
1716    
1717            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
1718            string handling.  It's "foo".lower() and not lower(foo) without
1719            lower imported from strings or something.
1720    
1721            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
1722            from capabilities.py and parser.py.  Implement priority list for
1723            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
1724            and GIF are supported here, but not yet by main Thuban.  Hence,
1725            support for them may be removed later.  Special contribution to
1726            usability: get wxWidgets to change the cursor when we're waiting
1727            for data from the network so the user won't start to worry.  This
1728            causes a redrawing error/warning, though.
1729    
1730            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
1731            the DOM object.
1732    
1733    2004-04-01  Martin Schulze  <[email protected]>
1734    
1735            * Extensions/wms/capabilities.py: Adjusted documentation
1736            (WMSCapabilities.__init__): Improved documentation, fixed syntax
1737            (WMSCapabilities.saveCapabilities): Only catch IOError when
1738            handling files
1739            (WMSCapabilities.loadCapabilities): Only catch IOError when
1740            handling files
1741            __main__: corrected variable naming
1742            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
1743            class a specialisation of WMSCapabilitiesParser as well.  Also
1744            execute grok() after loading or fetching capabilities, if that
1745            went well, so that subsequent calls can already access the data.
1746            (WMSCapabilities.getVersion): Export the used version of the
1747            GetCapabilities request, so we can use it for subsequent calls,
1748            i.e. for GetMap requests.
1749            (WMSCapabilities.fetchCapabilities): Added proper error handling
1750            when the GetCapabilities request failed, so that the surrounding
1751            program can act accordingly.
1752    
1753    2004-03-30  Martin Schulze  <[email protected]>
1754    
1755            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
1756            Adjusted the getLayerSRS method to return the list of SRSes
1757            extracted from <SRS> elements instead of <BoundingBox> elements.
1758            Added a bit of documentation as well.
1759            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
1760            since it was only implemented due to a misunderstanding.
1761    
1762            * Extensions/wms/test/test_parser.py
1763            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
1764            reflect the corrected interpretation of the standard: i.e. a layer
1765            does not have to define a BoundingBox for all SRSes it supports.
1766            Hence the <SRS></SRS> specification is authoritative, not the list
1767            of BoundingBoxes.
1768            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
1769            to ensure None is returned for a non-existing SRS.
1770            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
1771            since it is not applicable anymore.  Listing more SRSes in <SRS>
1772            elements is valid according to the specs.
1773    
1774    2004-03-26  Bernhard Reiter <[email protected]>
1775    
1776            * README: Nicer formatting of text. Improved descriptions.
1777            Reflected wxWidgets name change.
1778            
1779            * Thuban/UI/about.py: Extended copyright to 2004 and added
1780            information about the thuban-devel mailinglist.
1781    
1782    2004-03-24  Martin Schulze  <[email protected]>
1783    
1784            * Extensions/wms/capabilities.py: Renamed the class to contain
1785            'WMS', also added a linebreak where required
1786    
1787            * Extensions/wms/parser.py: Finally added the XML parser for the
1788            GetCapabilities response.
1789    
1790            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
1791            <SRS> elements match the <BoundingBox> elements, except for the
1792            layer 'beschriftung'.
1793    
1794            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
1795            since Python uses unicode strings internally, otherwise
1796            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
1797            the SRS will be calculated anyway and this method is obsoleted by
1798            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
1799            Move loading the sample file into the setUp method.  Added a test
1800            for finding the integrity problem in the sample response.
1801            Improved formatting.
1802    
1803            * Extensions/wms/domutils.py: Added convenience routines for
1804            handling of Document Object Model (DOM) nodes.
1805    
1806            * Extensions/wms/test/test_domutils.py: Added a test for the
1807            domutils module
1808    
1809    2004-03-19  Martin Schulze  <[email protected]>
1810    
1811            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
1812            Moved path detection and adding into a module of its own,
1813            adjustpath, which exports thubandir as main Thuban directory.
1814    
1815            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
1816            detection and adding into a module of its own, adjustpath, which
1817            exports thubandir as main Thuban directory.  Reorganised the
1818            module in order to support the SkipTest feature for Thuban test
1819            cases.
1820    
1821            * Extensions/wms/test/adjustpath.py: Moved path detection and
1822            adding into a module of its own.
1823    
1824    2004-03-18  Martin Schulze  <[email protected]>
1825    
1826            * Extensions/wms/test/test_parser.py: Added another test for
1827            checking whether the WMS XML parser (to be implemented) returns
1828            the information we expect.  This requires a sample WMS WML file
1829            (sample.xml) which has been extracted from the frida server and
1830            "improved" manually.
1831    
1832            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
1833            main Thuban directory to the path in order to be able to import
1834            random modules.  Adjusted the PyOGCLib detection to reuse the
1835            information gathered.  Also added a note about the PYTHONPATH
1836            environment variable.
1837    
1838            * Extensions/wms/test/test_ogclib.py: The format specification is
1839            a mime-type, not a graphic format, hence image/jpeg wou ld be the
1840            proper format and not JPEG.  We'll also have to take care of the
1841            encoding of / as %2F.
1842    
1843    2004-03-16  Martin Schulze  <[email protected]>
1844    
1845            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
1846            comprehensive test for the getMapURL method, built compare URLs
1847            according to the documentation in OGC 01-068r3
1848    
1849            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
1850            class WMSCapabilities to manage capabilites, will incorporate
1851            parsing the capabilities response and provide details for other
1852            classes.
1853    
1854    2004-03-12  Bernhard Herzog  <[email protected]>
1855    
1856            Support views in addition to normal tables in the postgis
1857            shapestore
1858    
1859            * Thuban/Model/postgisdb.py
1860            (PostGISShapeStore._fetch_table_information): Add a fallback for
1861            the case where the table name is not in the geometry_columns
1862            table.  This is usually the case for views.  Also, set
1863            self.shapestore here.
1864            (PostGISShapeStore.ShapeType): No need to query the database all
1865            the time.  The shape type is now determined in
1866            _fetch_table_information
1867    
1868            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
1869            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
1870            New parameter to specify views.
1871            (PostGISDatabase.has_data): Also compare the views.  New views
1872            parameter
1873            (PostGISDatabase.initdb): Create the views.
1874            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
1875            view
1876    
1877            * test/test_postgis_db.py
1878            (TestPostGISShapestorePointFromViews): New.  Test a
1879            PostGISShapeStore with a view
1880            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
1881            the geometry_column explicitly to test whether that works
1882    
1883    2004-03-12  Bernhard Herzog  <[email protected]>
1884    
1885            Final step for explicit id/geometry columns: Loading and saving
1886    
1887            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
1888            with the following changes:
1889            (dbshapesource): Two new attributes id_column and geometry_column
1890    
1891            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
1892            (SessionSaver.write_session): Use the new namespace
1893            (SessionSaver.write_data_containers): Write the new dbshapesource
1894            parameters
1895    
1896            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
1897            the new file format version
1898            (SessionLoader.start_dbshapesource): Handle the new db parameters
1899    
1900            * test/test_save.py: Update to the new dtd and namespace
1901            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
1902            mock object to provide a working IDColumn method.
1903    
1904            * test/test_load_1_0.py: New.  Copy of the test_load.py before
1905            today's changes but with the round-trip tests removed.
1906    
1907            * test/test_load_0_9.py: Update doc-string.
1908    
1909            * test/test_load.py: Update all .thuban files to the new dtd and
1910            namespace.
1911            (TestPostGISLayer.file_contents): Add the new dbshapesource
1912            paramters
1913    
1914    2004-03-11  Bernhard Herzog  <[email protected]>
1915    
1916            Next step for explicit id/geometry columns: User interaction
1917    
1918            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
1919            the dialog is constructed. Add combo boxes to select id and
1920            geometry column.  Rename some instance variables.
1921            (ChooseDBTableDialog.GetTable): Return id and geometry column
1922            names
1923            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
1924            selections in the table list
1925    
1926            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
1927            and geometry_column
1928    
1929            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
1930            parameters for id_column and geometry column of PostGISShapeStore
1931            here as well.
1932    
1933            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
1934            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
1935            (PostGISConnection.GeometryTables): Use a better query to
1936            determine which relations in the database might be usable for
1937            shapestores.  Now supports views as well but is more PostgreSQL
1938            specific
1939            (PostGISConnection.table_columns): New. Somewhat experimental
1940            method to let the db dialogs provide lists of columns to users so
1941            that they can select id and geometry columns.
1942            (PostGISTable.__init__): The default value of the id_column
1943            parameter is now None it still means "gid" effectively, though.
1944            (PostGISTable.IDColumn): New introspection method to return a
1945            column object for the id column
1946            (PostGISShapeStore.GeometryColumn): New introspection method to
1947            return a column object for the geometry column
1948    
1949            * test/test_postgis_db.py
1950            (TestPostGISConnection.test_gis_tables_non_empty):
1951            Removed. Subsumed by the new:
1952            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
1953            New. Tes the GeometryTables and table_columns methods with actual
1954            tables and views.
1955            (PointTests.test_id_column, PointTests.test_geometry_column):
1956            New. tests for the new methods.
1957            (TestPostGISShapestorePoint.setUp)
1958            (TestPostGISShapestorePointSRID.setUp)
1959            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
1960            instance variables needed by the new tests
1961    
1962    2004-03-11  Bernhard Herzog  <[email protected]>
1963    
1964            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
1965            numbers given to ReadValue are ordinals.
1966    
1967    2004-03-11  Bernhard Herzog  <[email protected]>
1968    
1969            Elimiate the requirement for PostGIS tables to have a column
1970            called "gid".
1971    
1972            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
1973            id_column to specify which column to use to identify rows.  Also
1974            new instance variables id_column and quoted_id_column
1975            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
1976            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
1977            (PostGISTable.SimpleQuery): Use the id column name provided to the
1978            constructor instead of "gid"
1979            (PostGISShapeStore.__init__): New parameter id_column analogously
1980            to PostGISTable.__init__.  This parameter is simply passed through
1981            to the base class constructor
1982            (PostGISShapeStore._create_col_from_description): Fix typo in
1983            doc-string
1984            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
1985            (PostGISShapeStore.ShapesInRegion): Use the id column name
1986            provided to the constructor instead of "gid"
1987    
1988            * test/postgissupport.py
1989            (PostgreSQLServer.get_default_static_data_db): New static table
1990            landmarks_point_id with an id column != "gid.  Update the comments
1991            a bit.
1992            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
1993            doc-
1994            (upload_shapefile): New parameter gid_column to use a name other
1995            than "gid" for the column to store the shape ids
1996    
1997            * test/test_postgis_db.py (TableTests): New.  Mixin-class
1998            containing all tests previously in TestPostGISTable.  The actual
1999            tests are the same but the code is a bit more configurable to
2000            allow for different id columns etc.
2001            (TestPostGISTable): Derive from TableTests now for the actual
2002            tests.
2003            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
2004            except that it the landmarks_point_id table to test the id_column
2005            parameter
2006            (PointTests): Extend the doc-string
2007            (TestPostGISShapestorePointExplicitGIDColumn)
2008            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
2009            from PointTests to test the explicit id_column parameter.  One
2010            tests with the name of the column holding the shape ids, the other
2011            uses PostgreSQL's OID column.  For the latter a number of methods
2012            have to be overwritten to make them independent of the actual id
2013            values.
2014    
2015    2004-03-08  Silke Reimer  <[email protected]>
2016    
2017            Update debian directory:
2018    
2019            * debian/changelog: Added new version.
2020            * deiban/rules: Updated management of patches (with cbds)
2021            * debian/control: Added cbds to dependencies
2022            * debian/patches/*: New. Adds better support for patches of thuban in
2023                            debian
2024            * debian/menu: Syntax of menu changed slightly
2025            * debian/setup.py.patch: removed because it has been moved to
2026                            debian/patechs/setup.py.patch
2027            
2028    
2029    2004-02-26  Bernhard Herzog  <[email protected]>
2030    
2031            Create the Doc/technotes directory for text files with information
2032            for developers
2033    
2034            * Doc/technotes/README: New. README for the technotes
2035    
2036            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
2037            Thuban
2038    
2039            * Doc/technotes/release_process.txt: New. Used to be
2040            HOWTO-Release.  Now slightly adapted to technote formatting style.
2041    
2042            * HOWTO-Release: Removed.  It's contents are now in
2043            Doc/technotes/release_process.txt
2044    
2045    2004-02-25  Bernhard Herzog  <[email protected]>
2046    
2047            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
2048            version of wxWindows the module was compiled with so we can check
2049            that against the wxPython version.
2050    
2051            * Thuban/version.py (thuban_branch, thuban_release): New variables
2052            controlling which and how Thuban versions are shown.  See the
2053            comments for details.
2054            (verify_versions): Also check that the wx version that wxproj is
2055            compiled against matches that of the wxPython we use at runtime
2056    
2057    2004-02-20  Bernhard Herzog  <[email protected]>
2058    
2059            * Extensions/wms/wms.py (epsg_code_to_projection): Use
2060            get_system_proj_file to read the epsg projections.  The old way
2061            depended on the current directory being the top Thuban directory.
2062    
2063    2004-02-20  Bernhard Herzog  <[email protected]>
2064    
2065            * Extensions/svgexport/test/test_svgmapwriter.py
2066            (TestVirtualDC.test_clippath): Remove a debug print
2067    
2068    2004-02-20  Bernhard Herzog  <[email protected]>
2069    
2070            * Extensions/svgexport/__init__.py: New.  Turn
2071            Extensions/svgexport into a package.
2072    
2073            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
2074            doc-string a bit.  The doc-string must come first, otherwise it's
2075            not a doc-string.  The __future__ import must be the first thing
2076            after the doc-string.  Use only double quotes in doc-strings.
2077            Single quotes trip up emacs syntax highlighting if the text
2078            contains apostrophes.
2079    
2080    2004-02-20  Bernhard Herzog  <[email protected]>
2081    
2082            * Extensions/svgexport/test/__init__.py,
2083            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
2084            suite for svgexport
2085    
2086            * test/runtests.py (find_test_modules): New. Function with the
2087            module finding code from main.
2088            (main): Use find_test_modules to figure out the default test
2089            modules and take modules from Extensions.svgexport.test too.
2090    
2091    2004-02-19  Bernhard Herzog  <[email protected]>
2092    
2093            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
2094            the mainwindow has a reference to the map of the initial session.
2095            This fixes a bug introduced with the fix for RT#2245
2096    
2097    2004-02-19  Bernhard Herzog  <[email protected]>
2098    
2099            * Extensions/svgexport/svgsaver.py,
2100            Extensions/svgexport/svgmapwriter.py,
2101            Extensions/svgexport/maplegend.py: Added again.  This time in the
2102            correct place.
2103    
2104    2004-02-17  Bernhard Herzog  <[email protected]>
2105    
2106            Fix for RT#2245
2107    
2108            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
2109            instance variables before trying to create any windows.  Creating
2110            windows can start an event loop if e.g. message boxes are popped
2111            up for some reason, and event handlers, especially EVT_UPDATE_UI
2112            may want to access things from the application.
2113            (ThubanApplication.maps_changed): The mainwindow may not have been
2114            created yet, so check whether it has been created before calling
2115            its methods
2116    
2117            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
2118            have a map
2119    
2120    2004-02-17  Bernhard Herzog  <[email protected]>
2121    
2122            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
2123            Extensions/svgmapwriter.py, Extensions/maplegend.py,
2124            extensions/svgexport/svgsaver.py,
2125            extensions/svgexport/svgmapwriter.py,
2126            extensions/svgexport/maplegend.py: Removed.  These files were in
2127            the wrong places or didn't work at all.
2128    
2129    2004-02-16  Bernhard Herzog  <[email protected]>
2130    
2131            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
2132            line
2133    
2134    2004-02-16  Bernhard Herzog  <[email protected]>
2135    
2136            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
2137    
2138    2004-02-15  Markus Rechtien  <[email protected]>
2139            
2140            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
2141            to write a session to a file in SVG format.
2142            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
2143            to write a SVG map of a session.
2144            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
2145            in SVG format for the current session.
2146    
2147    2004-02-13  Bernhard Herzog  <[email protected]>
2148    
2149            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
2150            can't be created, return immediately after displaying the error
2151            message.
2152    
2153    2004-02-11  Bernhard Herzog  <[email protected]>
2154    
2155            Handle postgis tables with more than one geometry column.
2156    
2157            * Thuban/Model/postgisdb.py
2158            (PostGISTable._fetch_table_information): Delegate the creation of
2159            column objects to a different method so that we can extend that in
2160            derived classes
2161            (PostGISTable._create_col_from_description): New. Column object
2162            creation part of _fetch_table_information
2163            (PostGISShapeStore._create_col_from_description): New. Extend
2164            inherited method to handle geometry columns
2165            (PostGISShapeStore.__init__): New parameter geometry_column to
2166            specify which geometry column to use.  Optional but mandatory for
2167            tables with more than one geometry column
2168            (PostGISShapeStore._fetch_table_information): Also use the name of
2169            the geometry column when looking for the srid
2170            (PostGISShapeStore.ShapeType): Also use the name of the geometry
2171            column when looking for the shape type
2172    
2173            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
2174            NonConnectionStore to changes in the PostGISShapeStore
2175    
2176            * test/test_postgis_db.py
2177            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
2178            PostGISShapeStore with tables having two geometry columns.
2179    
2180    2004-02-10  Bernhard Herzog  <[email protected]>
2181    
2182            Fix some postgis problems.  What remains to be done is real
2183            handling of SRIDs as they affect how reprojection is done
2184    
2185            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
2186            doc-string
2187            (PostGISShapeStore._fetch_table_information): New. Extend
2188            inherited method to retrieve srid
2189            (PostGISShapeStore.BoundingBox): Handle tables without data.
2190            extent yields NULL for those
2191            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
2192    
2193            * test/test_postgis_db.py
2194            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
2195            for the special case of a table without any data
2196            (TestPostGISShapestorePointSRID): New class with tests for a table
2197            that uses srids
2198            (PolygonTests): Fix a doc-string typo
2199    
2200            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
2201            reference_systems with a specification of spacial reference
2202            systems to create in the new db.
2203            (PostgreSQLServer.new_postgis_db)
2204            (PostgreSQLServer.get_static_data_db): New parameter
2205            reference_systems to be passed through ultimately to
2206            PostGISDatabase.  In new_postgis_db also check whether an existing
2207            db already has the right srids
2208            (PostgreSQLServer.get_default_static_data_db): Add srids and a
2209            table that uses srids
2210            (PostGISDatabase.initdb): Create the entries for the reference
2211            systems
2212            (PostGISDatabase.has_data): Add reference_systems parameter to
2213            check for those too
2214            (upload_shapefile): New parameter srid to create tables with a
2215            specific srid
2216    
2217    2004-02-06  Frank Koormann  <[email protected]>
2218    
2219            * po/pt_BR.po: Fixed charset
2220    
2221    2004-02-05  Frank Koormann  <[email protected]>
2222    
2223            * po/pt_BR.po: Fixed format string for error message, missing %s
2224            added (Thuban/UI/application.py:273)
2225    
2226    2004-02-03  Frank Koormann  <[email protected]>
2227            
2228            First version of Portuguese (Brazilian) translation
2229    
2230            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
2231            Brazilian Portuguese by Eduardo Patto Kanegae.
2232    
2233            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
2234            translators.
2235    
2236    
2237    2004-01-22  Frank Koormann  <[email protected]>
2238    
2239            * Doc/manual/thuban-manual.xml: Added section on installation of
2240            Thuban under Win32 systems. Fixed image path references in the postgis
2241            section. Some minor source formattings.
2242    
2243    2004-01-21  Frank Koormann  <[email protected]>
2244    
2245            Make Thuban remember path selections (at least for one application run).
2246    
2247            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
2248            attribute of application object. Path is a dictionary of
2249            strings, currently with the items "data" and "projection".  
2250            (Application.SetPath): New, stores path for the specified item.
2251            (Application.Path): New, return path for the specified item.
2252    
2253            * Thuban/UI/mainwindow.py
2254            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
2255            MainWindow.AddLayer, MainWindow.AddRasterLayer,
2256            MainWindow.TableOpen): Access "data" path information of the
2257            application.
2258            
2259            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
2260            Access "projection" path information of the application.
2261    
2262    2004-01-05  Bernhard Herzog  <[email protected]>
2263    
2264            * po/ru.po: Updated translations from Alex Shevlakov
2265    
2266    2004-01-05  Bernhard Herzog  <[email protected]>
2267    
2268            * po/Makefile, po/README: Move the description of how to generate
2269            the translation statistics to the README.
2270    
2271    2003-12-23  Bernhard Herzog  <[email protected]>
2272    
2273            * NEWS: Update for 1.0.0
2274    
2275            * po/it.po: Another update from Maurizio Napolitano
2276    
2277    2003-12-23  Bernhard Herzog  <[email protected]>
2278    
2279            * po/it.po: Updated translation from Maurizio Napolitano
2280    
2281    2003-12-23  Bernhard Herzog  <[email protected]>
2282    
2283            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
2284            for translation
2285    
2286            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
2287            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
2288            strings for translation
2289    
2290            * po/de.po: Update with the newly marked strings.
2291    
2292    2003-12-22  Bernhard Herzog  <[email protected]>
2293    
2294            * HOWTO-Release: Fix the places where version numbers have to be
2295            updated
2296    
2297    2003-12-22  Bernhard Herzog  <[email protected]>
2298    
2299            * setup.py (setup call): 1.0.0, yeah!
2300    
2301            * Thuban/version.py (longversion): 1.0.0, yeah!
2302    
2303            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
2304            1.0.0 namespace too
2305    
2306            * Thuban/Model/save.py (SessionSaver.write_session): Save with
2307            1.0.0 namespace
2308    
2309            * test/test_load.py (LoadSessionTest.dtd)
2310            (TestSingleLayer.file_contents)
2311            (TestNonAsciiColumnName.file_contents)
2312            (TestLayerVisibility.file_contents)
2313            (TestClassification.file_contents, TestLabels.file_contents)
2314            (TestLayerProjection.file_contents)
2315            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
2316            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
2317            (TestPostGISLayerPassword.file_contents)
2318            (TestLoadError.file_contents, TestLoadError.test): Update for
2319            1.0.0 namespace
2320    
2321            * test/test_save.py (SaveSessionTest.dtd)
2322            (SaveSessionTest.testEmptySession)
2323            (SaveSessionTest.testSingleLayer)
2324            (SaveSessionTest.testLayerProjection)
2325            (SaveSessionTest.testRasterLayer)
2326            (SaveSessionTest.testClassifiedLayer)
2327            (SaveSessionTest.test_dbf_table)
2328            (SaveSessionTest.test_joined_table)
2329            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
2330    
2331    2003-12-22  Bernhard Herzog  <[email protected]>
2332    
2333            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
2334            alignment flags are byte strings not unicode and that they have
2335            valid values
2336    
2337            * test/test_load.py (TestLabelLayer): New. Test loading (and
2338            indirectly saving) of maps with labels.
2339    
2340    2003-12-22  Bernhard Herzog  <[email protected]>
2341    
2342            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
2343            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
2344            unsubscribe all subscribers.
2345            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
2346            self.grid since it may already have been destroyed.
2347            Fixes RT #2256
2348    
2349    2003-12-19  Bernhard Herzog  <[email protected]>
2350    
2351            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
2352    
2353    2003-12-16  Bernhard Herzog  <[email protected]>
2354            
2355            * debian/bitmappath.patch, debian/setup.py.patch:
2356                    added to ensure compliance with FHS for debian
2357            * debian/rules, debian/changelog:
2358                added patches in rules to ensure compliance with FHS for debian
2359    
2360    2003-12-16  Bernhard Herzog  <[email protected]>
2361    
2362            * po/Makefile (mo): Make the output a bit nicer so that it prints
2363            statistics about the translations. Add a comment how produce even
2364            nicer statistics with sed.
2365    
2366    2003-12-09  Frank Koormann   <[email protected]>
2367    
2368            * Resources/Projections/defaults.proj:
2369            French projection sample with correct accents (UNICODE).
2370    
2371    2003-12-05  Bernhard Herzog  <[email protected]>
2372    
2373            * MANIFEST.in: Add the devtools directory
2374    
2375            * setup.py (setup call): Use license instead of licence. This
2376            silences a deprecation warning on Python 2.3
2377    
2378    2003-12-05  Frank Koormann   <[email protected]>
2379    
2380            Documentation synced with 1.0rc1
2381    
2382            * Doc/manual/thuban-manual.xml:
2383            Minor formatting changes and references to database layers .
2384            Introduction.Internationalization: New section on i18n.
2385            MapManagement.AddingandRemovingLayers: Added item on database layers.  
2386            MapManagement.TheLegend: Added section and screenshot on popup menu.
2387            ProjectionManagement: Updated screenshot and sentence on EPSG.
2388            Appendix.SupportedDataSources: Added PostGIS.
2389            Appendix.WorkingwithPostGIS: New section.
2390    
2391            * Doc/manual/images/6_projection.png: Updated screenshot including
2392            EPSG checkboxes.
2393    
2394            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
2395    
2396            * Doc/manual/images/app_postgis_add_layer.png,
2397            Doc/manual/images/app_postgis_db_add.png,
2398            Doc/manual/images/app_postgis_db_management.png:
2399            New screenshots focussing on database layers
2400    
2401    2003-12-05  Frank Koormann   <[email protected]>
2402    
2403            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
2404            write warning to stderr instead of rising a warning dialog
2405    
2406    2003-12-03  Bernhard Herzog  <[email protected]>
2407    
2408            Fix for RT #2243
2409    
2410            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
2411            New. Like has_selected_layer but for shape layers only
2412            (_has_selected_shape_layer): New. Like _has_selected_layer but for
2413            shape layers only
2414            (layer_show_table command, layer_jointable command): Use these
2415            commands should only be available for shape layers
2416    
2417    2003-12-03  Bernhard Herzog  <[email protected]>
2418    
2419            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
2420            publishers that are wx objects and may have been destroyed by wx
2421            already. Fixes RT #2242.
2422    
2423    2003-12-03  Bernhard Herzog  <[email protected]>
2424    
2425            * po/ru.po: Updates from Alex Shevlakov
2426    
2427    2003-12-03  Silke Reimer <silkeintevation.de>
2428    
2429            * debian/control, debian/changelog: Added gdal-support to
2430                    debian package, updated to new thuban version
2431    
2432    
2433    2003-12-03  Bernhard Herzog  <[email protected]>
2434    
2435            * Thuban/Lib/version.py: New. Module for version number
2436            manipulations. The version of make_tuple here also deals better
2437            with more unusual version number strings, such as e.g.
2438            "1.2+cvs20031111"
2439    
2440            * Thuban/version.py (make_tuple): Removed. It's now in
2441            Thuban.Lib.version. Use that implementation instead.
2442    
2443            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
2444    
2445    2003-12-02  Bernhard Herzog  <[email protected]>
2446    
2447            * MANIFEST.in: Add debian files
2448    
2449            * setup.py (setup call): Add packages for the Extensions so that
2450            they're installed too
2451            (data_files): Add READMEs and sample data from some Extensions
2452    
2453            * NEWS: Add note about the extensions in binary packages
2454    
2455    2003-12-02  Bernhard Herzog  <[email protected]>
2456    
2457            * Thuban/Model/save.py (SessionSaver.write_session): Save files
2458            with the thuban-1.0rc1
2459    
2460            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
2461            thuban-1.0rc1 namespace too
2462    
2463            * test/test_save.py (SaveSessionTest.dtd)
2464            (SaveSessionTest.testEmptySession)
2465            (SaveSessionTest.testSingleLayer)
2466            (SaveSessionTest.testLayerProjection)
2467            (SaveSessionTest.testRasterLayer)
2468            (SaveSessionTest.testClassifiedLayer)
2469            (SaveSessionTest.test_dbf_table)
2470            (SaveSessionTest.test_joined_table)
2471            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
2472            namespace
2473    
2474            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
2475            namespace
2476            (TestSingleLayer.file_contents)
2477            (TestNonAsciiColumnName.file_contents)
2478            (TestLayerVisibility.file_contents)
2479            (TestClassification.file_contents, TestLabels.file_contents)
2480            (TestLayerProjection.file_contents)
2481            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
2482            (TestPostGISLayer.file_contents)
2483            (TestPostGISLayerPassword.file_contents)
2484            (TestLoadError.file_contents, TestLoadError.test): Update to
2485            thuban-1.0rc1 namespace
2486    
2487    2003-12-01  Bernhard Herzog  <[email protected]>
2488    
2489            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
2490            nt to better match Intevation's current w32 setup
2491    
2492            * HOWTO-Release: Add note about updating MANIFEST.in
2493    
2494            * MANIFEST.in: Add the Extensions
2495    
2496            * NEWS: Update for 1.0rc1
2497    
2498    2003-12-01  Bernhard Herzog  <[email protected]>
2499    
2500            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
2501            cards for the dialog so that shapefiles ending in all uppercase
2502            SHP are listed too
2503    
2504    2003-11-28  Bernhard Herzog  <[email protected]>
2505    
2506            * Thuban/version.py (longversion): Update to 1.0rc1
2507    
2508            * setup.py (setup call): Update version to 1.0rc1. Use the
2509            [email protected] email address as author email instead of my
2510            personal one.
2511    
2512    2003-11-28  Bernhard Herzog  <[email protected]>
2513    
2514            * po/de.po: Update german translation.
2515    
2516    2003-11-28  Bernhard Herzog  <[email protected]>
2517    
2518            Unify the filenames stored in .thuban files so that the .thuban
2519            files are more platform independend
2520    
2521            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
2522            that they can be used on both windows and unix
2523            (SessionSaver.prepare_filename): New. Handle all filename
2524            transformations for filenames stored in the thuban file
2525            (SessionSaver.write_data_containers, SessionSaver.write_layer):
2526            Use prepare_filename
2527    
2528            * test/test_save.py (SaveSessionTest.testSingleLayer)
2529            (SaveSessionTest.testLayerProjection)
2530            (SaveSessionTest.testRasterLayer)
2531            (SaveSessionTest.testClassifiedLayer)
2532            (SaveSessionTest.test_dbf_table)
2533            (SaveSessionTest.test_joined_table): Filenames are always stored
2534            with slashes on all currently supported platforms so adapt all
2535            tests to this
2536    
2537            * test/test_load.py (LoadSessionTest.filenames): With the new
2538            filename scheme the filenames in the tests should be
2539            understandable on all currently supported platforms so we turn
2540            this into an empty list because we don't have to normalize them
2541            anymore
2542    
2543    2003-11-28  Bernhard Herzog  <[email protected]>
2544    
2545            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
2546            Add the ellipsoid to the projection since some Proj versions
2547            complain if it's missing.
2548    
2549  2003-11-27  Bernhard Herzog  <[email protected]>  2003-11-27  Bernhard Herzog  <[email protected]>
2550    
2551          Corect some bounding box projection problems          Corect some bounding box projection problems
# Line 3714  Line 6262 
6262          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
6263          click on layer tree:          click on layer tree:
6264          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
6265          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.
6266            We add a second ItemActivated event to the queue, which simply
6267          raises the already displayed window.          raises the already displayed window.
6268    
6269          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.1986  
changed lines
  Added in v.2537

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26