/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26