/[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 2196 by frank, Thu Apr 22 17:11:54 2004 UTC
# Line 1  Line 1 
1    2004-04-22  Frank Koormann  <[email protected]>
2    
3            New Extension to dump bounding boxes of all shapes of the selected
4            layer. An optional column can be specified to group the objects,
5            in this case the bounding box is a union of the separate boxes.
6            Dump can be displayed in a ScrolledMessageDialog or written to file.
7            The Extension is simply a combination of available and well tested
8            Thuban functionality.
9    
10            * Extensions/bboxdump/__init__.py: New: Init to make this
11            directory a package.
12    
13            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
14            all shapes of the selected layer.
15    
16    2004-04-22  Jan-Oliver Wagner <[email protected]>
17    
18            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
19            strings to be i18n now.
20    
21    2004-04-18  Jan-Oliver Wagner <[email protected]>
22    
23            Changing popup menu of legend from direct building
24            to using the Menu construction as used for the mainwindow.
25    
26            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
27            layer_to_bottom, layer_visibility
28            (MainWindow.LayerToTop): New. Put current layer to the top.
29            (MainWindow.LayerToBottom): New. Put current layer to bottom.
30            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
31            Replace 1,0 by True, False.
32            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
33            current layer.
34            (MainWindow.LayerShowTable): Removed raising of dialog.
35            (_has_selected_layer_visible): New. Support function.
36    
37            * Thuban/UI/legend.py: ID_POP_xxx: removed.
38            (LegendPanel.__init__): Removed EVT_MENU bindings.
39            (LegendTree._OnRightClick): Replace direct creation of
40            menu via wx Classes by applying the menu definition
41            as of Menu class of menu.py.
42            
43    2004-04-16  Jan-Oliver Wagner <[email protected]>
44    
45            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
46        button string to stronger clearify that Thuban will be closed when hitting
47            the button.
48    
49            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
50            Now for layers without a ShapeStore a corresponding message is given
51            to the user, that this layer has no table to show.
52    
53    2004-04-15  Martin Schulze  <[email protected]>
54    
55            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
56            recalculate the format for the internal render engine as well.
57    
58            * Extensions/wms/properties.py (wmsProperties): First start for a
59            properties dialog.  It's functional for a first selection of
60            layers, but still has some weired wxWidgets/GTK problems but
61            beautification can be done later.
62    
63            * Extensions/wms/layer.py: Added more documentation
64            (WMSLayer.getFormats): New: Return list of supported image formats
65            by the WMS server
66            (WMSLayer.getLayers): New: Return the list of layer names
67            supported by the WMS server
68            (WMSLayer.getLayerTitle): New: Return the title of the named layer
69            (WMSLayer.getWMSFormat): New: Return the image format that is used
70            for WMS GetMap requests
71            (WMSLayer.setWMSFormat): New: Set the image format that is used
72            for WMS GetMap requests
73            (WMSLayer.__init__): Move away from using only one layer to using
74            a list of layers (unsorted at the moment, though).
75            (WMSLayer.getVisibleLayers): New: Return the list of names for all
76            visible layers
77            (WMSLayer.setVisibleLayers): New: Set the list of names for all
78            visible layers
79    
80            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
81            order to establish a clean structure.
82    
83            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
84            own in order to establish a clean structure.
85    
86    2004-04-13  Martin Schulze  <[email protected]>
87    
88            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
89            support for oldstyle (WMS 1.0 apparently) image format
90            specification.
91    
92            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
93            supported graphic formats back to JPEG and BMP, PNG and others are
94            too *cough* experimental...  Sorry, I meant to filter this out
95            before I committed this part.  This should make the WMS extension
96            run from CVS again.
97            (wms_dialog): Reset an empty URL to None so that the subsequent
98            program can depend on this, since the dialog will indeed return an
99            empty URL, causing another declaration of love by Python.
100    
101            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
102            Whenever a native BoundingBox request cannot be fulfilled, check
103            whether the requested SRS is EPSG:3426, in which case return the
104            LatLonBoundingBox values.
105    
106            * Extensions/wms/test/test_parser.py
107            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
108            ignoring AUTO:* SRS.
109            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
110            Added another test method to test whether the LatLonBoundingBox
111            values will be returned if BoundingBox values are requested with
112            SRS set to EPSG:3426.
113    
114            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
115            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
116            the moment by placing them into a variable which is currently
117            unused.  Also test whether the EPSG SRS is numerical as it should
118            be and add an error message if it is not.
119    
120            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
121            appear in the real world as well.  Since we cannot handle them yet
122            (OGCLib can't either), we will ignore them for the moment.
123    
124            * Extensions/wms/parser.py: Use a variable for denoting the sample
125            filename
126            (WMSCapabilitiesParser.peekLayers): Added support for error
127            messages during grok().  They will be aggregated in an array and
128            may be displayed later.  We may have to add a classification
129            "Warning" and "Error" to this.  That requires more experience,
130            though, since not every error may be lethal.
131    
132            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
133            ShowTable() dialog/frame when the user attempts to display it
134            while it has been opened before already and not closed again.
135    
136    2004-04-11  Martin Schulze  <[email protected]>
137    
138            * Extensions/wms/infodialog.py: Adjusted the class documentation
139    
140            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
141            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
142            wxWidgets variants.
143            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
144    
145            * Extensions/wms/infodialog.py: Added an information dialog that
146            will display various information about the WMS current resource,
147            so that additional information such as the title, the abstract,
148            fees and access constraints can be displayed for the user if they
149            are documented in the WMS XML.
150    
151    2004-04-10  Martin Schulze  <[email protected]>
152    
153            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
154            string handling.  It's "foo".lower() and not lower(foo) without
155            lower imported from strings or something.
156    
157            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
158            from capabilities.py and parser.py.  Implement priority list for
159            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
160            and GIF are supported here, but not yet by main Thuban.  Hence,
161            support for them may be removed later.  Special contribution to
162            usability: get wxWidgets to change the cursor when we're waiting
163            for data from the network so the user won't start to worry.  This
164            causes a redrawing error/warning, though.
165    
166            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
167            the DOM object.
168    
169    2004-04-01  Martin Schulze  <[email protected]>
170    
171            * Extensions/wms/capabilities.py: Adjusted documentation
172            (WMSCapabilities.__init__): Improved documentation, fixed syntax
173            (WMSCapabilities.saveCapabilities): Only catch IOError when
174            handling files
175            (WMSCapabilities.loadCapabilities): Only catch IOError when
176            handling files
177            __main__: corrected variable naming
178            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
179            class a specialisation of WMSCapabilitiesParser as well.  Also
180            execute grok() after loading or fetching capabilities, if that
181            went well, so that subsequent calls can already access the data.
182            (WMSCapabilities.getVersion): Export the used version of the
183            GetCapabilities request, so we can use it for subsequent calls,
184            i.e. for GetMap requests.
185            (WMSCapabilities.fetchCapabilities): Added proper error handling
186            when the GetCapabilities request failed, so that the surrounding
187            program can act accordingly.
188    
189    2004-03-30  Martin Schulze  <[email protected]>
190    
191            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
192            Adjusted the getLayerSRS method to return the list of SRSes
193            extracted from <SRS> elements instead of <BoundingBox> elements.
194            Added a bit of documentation as well.
195            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
196            since it was only implemented due to a misunderstanding.
197    
198            * Extensions/wms/test/test_parser.py
199            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
200            reflect the corrected interpretation of the standard: i.e. a layer
201            does not have to define a BoundingBox for all SRSes it supports.
202            Hence the <SRS></SRS> specification is authoritative, not the list
203            of BoundingBoxes.
204            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
205            to ensure None is returned for a non-existing SRS.
206            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
207            since it is not applicable anymore.  Listing more SRSes in <SRS>
208            elements is valid according to the specs.
209    
210    2004-03-26  Bernhard Reiter <[email protected]>
211    
212            * README: Nicer formatting of text. Improved descriptions.
213            Reflected wxWidgets name change.
214            
215            * Thuban/UI/about.py: Extended copyright to 2004 and added
216            information about the thuban-devel mailinglist.
217    
218    2004-03-24  Martin Schulze  <[email protected]>
219    
220            * Extensions/wms/capabilities.py: Renamed the class to contain
221            'WMS', also added a linebreak where required
222    
223            * Extensions/wms/parser.py: Finally added the XML parser for the
224            GetCapabilities response.
225    
226            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
227            <SRS> elements match the <BoundingBox> elements, except for the
228            layer 'beschriftung'.
229    
230            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
231            since Python uses unicode strings internally, otherwise
232            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
233            the SRS will be calculated anyway and this method is obsoleted by
234            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
235            Move loading the sample file into the setUp method.  Added a test
236            for finding the integrity problem in the sample response.
237            Improved formatting.
238    
239            * Extensions/wms/domutils.py: Added convenience routines for
240            handling of Document Object Model (DOM) nodes.
241    
242            * Extensions/wms/test/test_domutils.py: Added a test for the
243            domutils module
244    
245    2004-03-19  Martin Schulze  <[email protected]>
246    
247            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
248            Moved path detection and adding into a module of its own,
249            adjustpath, which exports thubandir as main Thuban directory.
250    
251            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
252            detection and adding into a module of its own, adjustpath, which
253            exports thubandir as main Thuban directory.  Reorganised the
254            module in order to support the SkipTest feature for Thuban test
255            cases.
256    
257            * Extensions/wms/test/adjustpath.py: Moved path detection and
258            adding into a module of its own.
259    
260    2004-03-18  Martin Schulze  <[email protected]>
261    
262            * Extensions/wms/test/test_parser.py: Added another test for
263            checking whether the WMS XML parser (to be implemented) returns
264            the information we expect.  This requires a sample WMS WML file
265            (sample.xml) which has been extracted from the frida server and
266            "improved" manually.
267    
268            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
269            main Thuban directory to the path in order to be able to import
270            random modules.  Adjusted the PyOGCLib detection to reuse the
271            information gathered.  Also added a note about the PYTHONPATH
272            environment variable.
273    
274            * Extensions/wms/test/test_ogclib.py: The format specification is
275            a mime-type, not a graphic format, hence image/jpeg wou ld be the
276            proper format and not JPEG.  We'll also have to take care of the
277            encoding of / as %2F.
278    
279    2004-03-16  Martin Schulze  <[email protected]>
280    
281            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
282            comprehensive test for the getMapURL method, built compare URLs
283            according to the documentation in OGC 01-068r3
284    
285            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
286            class WMSCapabilities to manage capabilites, will incorporate
287            parsing the capabilities response and provide details for other
288            classes.
289    
290    2004-03-12  Bernhard Herzog  <[email protected]>
291    
292            Support views in addition to normal tables in the postgis
293            shapestore
294    
295            * Thuban/Model/postgisdb.py
296            (PostGISShapeStore._fetch_table_information): Add a fallback for
297            the case where the table name is not in the geometry_columns
298            table.  This is usually the case for views.  Also, set
299            self.shapestore here.
300            (PostGISShapeStore.ShapeType): No need to query the database all
301            the time.  The shape type is now determined in
302            _fetch_table_information
303    
304            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
305            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
306            New parameter to specify views.
307            (PostGISDatabase.has_data): Also compare the views.  New views
308            parameter
309            (PostGISDatabase.initdb): Create the views.
310            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
311            view
312    
313            * test/test_postgis_db.py
314            (TestPostGISShapestorePointFromViews): New.  Test a
315            PostGISShapeStore with a view
316            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
317            the geometry_column explicitly to test whether that works
318    
319    2004-03-12  Bernhard Herzog  <[email protected]>
320    
321            Final step for explicit id/geometry columns: Loading and saving
322    
323            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
324            with the following changes:
325            (dbshapesource): Two new attributes id_column and geometry_column
326    
327            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
328            (SessionSaver.write_session): Use the new namespace
329            (SessionSaver.write_data_containers): Write the new dbshapesource
330            parameters
331    
332            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
333            the new file format version
334            (SessionLoader.start_dbshapesource): Handle the new db parameters
335    
336            * test/test_save.py: Update to the new dtd and namespace
337            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
338            mock object to provide a working IDColumn method.
339    
340            * test/test_load_1_0.py: New.  Copy of the test_load.py before
341            today's changes but with the round-trip tests removed.
342    
343            * test/test_load_0_9.py: Update doc-string.
344    
345            * test/test_load.py: Update all .thuban files to the new dtd and
346            namespace.
347            (TestPostGISLayer.file_contents): Add the new dbshapesource
348            paramters
349    
350    2004-03-11  Bernhard Herzog  <[email protected]>
351    
352            Next step for explicit id/geometry columns: User interaction
353    
354            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
355            the dialog is constructed. Add combo boxes to select id and
356            geometry column.  Rename some instance variables.
357            (ChooseDBTableDialog.GetTable): Return id and geometry column
358            names
359            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
360            selections in the table list
361    
362            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
363            and geometry_column
364    
365            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
366            parameters for id_column and geometry column of PostGISShapeStore
367            here as well.
368    
369            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
370            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
371            (PostGISConnection.GeometryTables): Use a better query to
372            determine which relations in the database might be usable for
373            shapestores.  Now supports views as well but is more PostgreSQL
374            specific
375            (PostGISConnection.table_columns): New. Somewhat experimental
376            method to let the db dialogs provide lists of columns to users so
377            that they can select id and geometry columns.
378            (PostGISTable.__init__): The default value of the id_column
379            parameter is now None it still means "gid" effectively, though.
380            (PostGISTable.IDColumn): New introspection method to return a
381            column object for the id column
382            (PostGISShapeStore.GeometryColumn): New introspection method to
383            return a column object for the geometry column
384    
385            * test/test_postgis_db.py
386            (TestPostGISConnection.test_gis_tables_non_empty):
387            Removed. Subsumed by the new:
388            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
389            New. Tes the GeometryTables and table_columns methods with actual
390            tables and views.
391            (PointTests.test_id_column, PointTests.test_geometry_column):
392            New. tests for the new methods.
393            (TestPostGISShapestorePoint.setUp)
394            (TestPostGISShapestorePointSRID.setUp)
395            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
396            instance variables needed by the new tests
397    
398    2004-03-11  Bernhard Herzog  <[email protected]>
399    
400            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
401            numbers given to ReadValue are ordinals.
402    
403    2004-03-11  Bernhard Herzog  <[email protected]>
404    
405            Elimiate the requirement for PostGIS tables to have a column
406            called "gid".
407    
408            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
409            id_column to specify which column to use to identify rows.  Also
410            new instance variables id_column and quoted_id_column
411            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
412            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
413            (PostGISTable.SimpleQuery): Use the id column name provided to the
414            constructor instead of "gid"
415            (PostGISShapeStore.__init__): New parameter id_column analogously
416            to PostGISTable.__init__.  This parameter is simply passed through
417            to the base class constructor
418            (PostGISShapeStore._create_col_from_description): Fix typo in
419            doc-string
420            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
421            (PostGISShapeStore.ShapesInRegion): Use the id column name
422            provided to the constructor instead of "gid"
423    
424            * test/postgissupport.py
425            (PostgreSQLServer.get_default_static_data_db): New static table
426            landmarks_point_id with an id column != "gid.  Update the comments
427            a bit.
428            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
429            doc-
430            (upload_shapefile): New parameter gid_column to use a name other
431            than "gid" for the column to store the shape ids
432    
433            * test/test_postgis_db.py (TableTests): New.  Mixin-class
434            containing all tests previously in TestPostGISTable.  The actual
435            tests are the same but the code is a bit more configurable to
436            allow for different id columns etc.
437            (TestPostGISTable): Derive from TableTests now for the actual
438            tests.
439            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
440            except that it the landmarks_point_id table to test the id_column
441            parameter
442            (PointTests): Extend the doc-string
443            (TestPostGISShapestorePointExplicitGIDColumn)
444            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
445            from PointTests to test the explicit id_column parameter.  One
446            tests with the name of the column holding the shape ids, the other
447            uses PostgreSQL's OID column.  For the latter a number of methods
448            have to be overwritten to make them independent of the actual id
449            values.
450    
451    2004-03-08  Silke Reimer  <[email protected]>
452    
453            Update debian directory:
454    
455            * debian/changelog: Added new version.
456            * deiban/rules: Updated management of patches (with cbds)
457            * debian/control: Added cbds to dependencies
458            * debian/patches/*: New. Adds better support for patches of thuban in
459                            debian
460            * debian/menu: Syntax of menu changed slightly
461            * debian/setup.py.patch: removed because it has been moved to
462                            debian/patechs/setup.py.patch
463            
464    
465    2004-02-26  Bernhard Herzog  <[email protected]>
466    
467            Create the Doc/technotes directory for text files with information
468            for developers
469    
470            * Doc/technotes/README: New. README for the technotes
471    
472            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
473            Thuban
474    
475            * Doc/technotes/release_process.txt: New. Used to be
476            HOWTO-Release.  Now slightly adapted to technote formatting style.
477    
478            * HOWTO-Release: Removed.  It's contents are now in
479            Doc/technotes/release_process.txt
480    
481    2004-02-25  Bernhard Herzog  <[email protected]>
482    
483            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
484            version of wxWindows the module was compiled with so we can check
485            that against the wxPython version.
486    
487            * Thuban/version.py (thuban_branch, thuban_release): New variables
488            controlling which and how Thuban versions are shown.  See the
489            comments for details.
490            (verify_versions): Also check that the wx version that wxproj is
491            compiled against matches that of the wxPython we use at runtime
492    
493    2004-02-20  Bernhard Herzog  <[email protected]>
494    
495            * Extensions/wms/wms.py (epsg_code_to_projection): Use
496            get_system_proj_file to read the epsg projections.  The old way
497            depended on the current directory being the top Thuban directory.
498    
499    2004-02-20  Bernhard Herzog  <[email protected]>
500    
501            * Extensions/svgexport/test/test_svgmapwriter.py
502            (TestVirtualDC.test_clippath): Remove a debug print
503    
504    2004-02-20  Bernhard Herzog  <[email protected]>
505    
506            * Extensions/svgexport/__init__.py: New.  Turn
507            Extensions/svgexport into a package.
508    
509            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
510            doc-string a bit.  The doc-string must come first, otherwise it's
511            not a doc-string.  The __future__ import must be the first thing
512            after the doc-string.  Use only double quotes in doc-strings.
513            Single quotes trip up emacs syntax highlighting if the text
514            contains apostrophes.
515    
516    2004-02-20  Bernhard Herzog  <[email protected]>
517    
518            * Extensions/svgexport/test/__init__.py,
519            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
520            suite for svgexport
521    
522            * test/runtests.py (find_test_modules): New. Function with the
523            module finding code from main.
524            (main): Use find_test_modules to figure out the default test
525            modules and take modules from Extensions.svgexport.test too.
526    
527    2004-02-19  Bernhard Herzog  <[email protected]>
528    
529            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
530            the mainwindow has a reference to the map of the initial session.
531            This fixes a bug introduced with the fix for RT#2245
532    
533    2004-02-19  Bernhard Herzog  <[email protected]>
534    
535            * Extensions/svgexport/svgsaver.py,
536            Extensions/svgexport/svgmapwriter.py,
537            Extensions/svgexport/maplegend.py: Added again.  This time in the
538            correct place.
539    
540    2004-02-17  Bernhard Herzog  <[email protected]>
541    
542            Fix for RT#2245
543    
544            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
545            instance variables before trying to create any windows.  Creating
546            windows can start an event loop if e.g. message boxes are popped
547            up for some reason, and event handlers, especially EVT_UPDATE_UI
548            may want to access things from the application.
549            (ThubanApplication.maps_changed): The mainwindow may not have been
550            created yet, so check whether it has been created before calling
551            its methods
552    
553            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
554            have a map
555    
556    2004-02-17  Bernhard Herzog  <[email protected]>
557    
558            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
559            Extensions/svgmapwriter.py, Extensions/maplegend.py,
560            extensions/svgexport/svgsaver.py,
561            extensions/svgexport/svgmapwriter.py,
562            extensions/svgexport/maplegend.py: Removed.  These files were in
563            the wrong places or didn't work at all.
564    
565    2004-02-16  Bernhard Herzog  <[email protected]>
566    
567            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
568            line
569    
570    2004-02-16  Bernhard Herzog  <[email protected]>
571    
572            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
573    
574    2004-02-15  Markus Rechtien  <[email protected]>
575            
576            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
577            to write a session to a file in SVG format.
578            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
579            to write a SVG map of a session.
580            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
581            in SVG format for the current session.
582    
583    2004-02-13  Bernhard Herzog  <[email protected]>
584    
585            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
586            can't be created, return immediately after displaying the error
587            message.
588    
589    2004-02-11  Bernhard Herzog  <[email protected]>
590    
591            Handle postgis tables with more than one geometry column.
592    
593            * Thuban/Model/postgisdb.py
594            (PostGISTable._fetch_table_information): Delegate the creation of
595            column objects to a different method so that we can extend that in
596            derived classes
597            (PostGISTable._create_col_from_description): New. Column object
598            creation part of _fetch_table_information
599            (PostGISShapeStore._create_col_from_description): New. Extend
600            inherited method to handle geometry columns
601            (PostGISShapeStore.__init__): New parameter geometry_column to
602            specify which geometry column to use.  Optional but mandatory for
603            tables with more than one geometry column
604            (PostGISShapeStore._fetch_table_information): Also use the name of
605            the geometry column when looking for the srid
606            (PostGISShapeStore.ShapeType): Also use the name of the geometry
607            column when looking for the shape type
608    
609            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
610            NonConnectionStore to changes in the PostGISShapeStore
611    
612            * test/test_postgis_db.py
613            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
614            PostGISShapeStore with tables having two geometry columns.
615    
616    2004-02-10  Bernhard Herzog  <[email protected]>
617    
618            Fix some postgis problems.  What remains to be done is real
619            handling of SRIDs as they affect how reprojection is done
620    
621            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
622            doc-string
623            (PostGISShapeStore._fetch_table_information): New. Extend
624            inherited method to retrieve srid
625            (PostGISShapeStore.BoundingBox): Handle tables without data.
626            extent yields NULL for those
627            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
628    
629            * test/test_postgis_db.py
630            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
631            for the special case of a table without any data
632            (TestPostGISShapestorePointSRID): New class with tests for a table
633            that uses srids
634            (PolygonTests): Fix a doc-string typo
635    
636            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
637            reference_systems with a specification of spacial reference
638            systems to create in the new db.
639            (PostgreSQLServer.new_postgis_db)
640            (PostgreSQLServer.get_static_data_db): New parameter
641            reference_systems to be passed through ultimately to
642            PostGISDatabase.  In new_postgis_db also check whether an existing
643            db already has the right srids
644            (PostgreSQLServer.get_default_static_data_db): Add srids and a
645            table that uses srids
646            (PostGISDatabase.initdb): Create the entries for the reference
647            systems
648            (PostGISDatabase.has_data): Add reference_systems parameter to
649            check for those too
650            (upload_shapefile): New parameter srid to create tables with a
651            specific srid
652    
653    2004-02-06  Frank Koormann  <[email protected]>
654    
655            * po/pt_BR.po: Fixed charset
656    
657    2004-02-05  Frank Koormann  <[email protected]>
658    
659            * po/pt_BR.po: Fixed format string for error message, missing %s
660            added (Thuban/UI/application.py:273)
661    
662    2004-02-03  Frank Koormann  <[email protected]>
663            
664            First version of Portuguese (Brazilian) translation
665    
666            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
667            Brazilian Portuguese by Eduardo Patto Kanegae.
668    
669            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
670            translators.
671    
672    
673    2004-01-22  Frank Koormann  <[email protected]>
674    
675            * Doc/manual/thuban-manual.xml: Added section on installation of
676            Thuban under Win32 systems. Fixed image path references in the postgis
677            section. Some minor source formattings.
678    
679    2004-01-21  Frank Koormann  <[email protected]>
680    
681            Make Thuban remember path selections (at least for one application run).
682    
683            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
684            attribute of application object. Path is a dictionary of
685            strings, currently with the items "data" and "projection".  
686            (Application.SetPath): New, stores path for the specified item.
687            (Application.Path): New, return path for the specified item.
688    
689            * Thuban/UI/mainwindow.py
690            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
691            MainWindow.AddLayer, MainWindow.AddRasterLayer,
692            MainWindow.TableOpen): Access "data" path information of the
693            application.
694            
695            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
696            Access "projection" path information of the application.
697    
698    2004-01-05  Bernhard Herzog  <[email protected]>
699    
700            * po/ru.po: Updated translations from Alex Shevlakov
701    
702    2004-01-05  Bernhard Herzog  <[email protected]>
703    
704            * po/Makefile, po/README: Move the description of how to generate
705            the translation statistics to the README.
706    
707    2003-12-23  Bernhard Herzog  <[email protected]>
708    
709            * NEWS: Update for 1.0.0
710    
711            * po/it.po: Another update from Maurizio Napolitano
712    
713    2003-12-23  Bernhard Herzog  <[email protected]>
714    
715            * po/it.po: Updated translation from Maurizio Napolitano
716    
717    2003-12-23  Bernhard Herzog  <[email protected]>
718    
719            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
720            for translation
721    
722            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
723            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
724            strings for translation
725    
726            * po/de.po: Update with the newly marked strings.
727    
728    2003-12-22  Bernhard Herzog  <[email protected]>
729    
730            * HOWTO-Release: Fix the places where version numbers have to be
731            updated
732    
733    2003-12-22  Bernhard Herzog  <[email protected]>
734    
735            * setup.py (setup call): 1.0.0, yeah!
736    
737            * Thuban/version.py (longversion): 1.0.0, yeah!
738    
739            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
740            1.0.0 namespace too
741    
742            * Thuban/Model/save.py (SessionSaver.write_session): Save with
743            1.0.0 namespace
744    
745            * test/test_load.py (LoadSessionTest.dtd)
746            (TestSingleLayer.file_contents)
747            (TestNonAsciiColumnName.file_contents)
748            (TestLayerVisibility.file_contents)
749            (TestClassification.file_contents, TestLabels.file_contents)
750            (TestLayerProjection.file_contents)
751            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
752            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
753            (TestPostGISLayerPassword.file_contents)
754            (TestLoadError.file_contents, TestLoadError.test): Update for
755            1.0.0 namespace
756    
757            * test/test_save.py (SaveSessionTest.dtd)
758            (SaveSessionTest.testEmptySession)
759            (SaveSessionTest.testSingleLayer)
760            (SaveSessionTest.testLayerProjection)
761            (SaveSessionTest.testRasterLayer)
762            (SaveSessionTest.testClassifiedLayer)
763            (SaveSessionTest.test_dbf_table)
764            (SaveSessionTest.test_joined_table)
765            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
766    
767    2003-12-22  Bernhard Herzog  <[email protected]>
768    
769            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
770            alignment flags are byte strings not unicode and that they have
771            valid values
772    
773            * test/test_load.py (TestLabelLayer): New. Test loading (and
774            indirectly saving) of maps with labels.
775    
776    2003-12-22  Bernhard Herzog  <[email protected]>
777    
778            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
779            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
780            unsubscribe all subscribers.
781            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
782            self.grid since it may already have been destroyed.
783            Fixes RT #2256
784    
785    2003-12-19  Bernhard Herzog  <[email protected]>
786    
787            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
788    
789    2003-12-16  Bernhard Herzog  <[email protected]>
790            
791            * debian/bitmappath.patch, debian/setup.py.patch:
792                    added to ensure compliance with FHS for debian
793            * debian/rules, debian/changelog:
794                added patches in rules to ensure compliance with FHS for debian
795    
796    2003-12-16  Bernhard Herzog  <[email protected]>
797    
798            * po/Makefile (mo): Make the output a bit nicer so that it prints
799            statistics about the translations. Add a comment how produce even
800            nicer statistics with sed.
801    
802    2003-12-09  Frank Koormann   <[email protected]>
803    
804            * Resources/Projections/defaults.proj:
805            French projection sample with correct accents (UNICODE).
806    
807    2003-12-05  Bernhard Herzog  <[email protected]>
808    
809            * MANIFEST.in: Add the devtools directory
810    
811            * setup.py (setup call): Use license instead of licence. This
812            silences a deprecation warning on Python 2.3
813    
814    2003-12-05  Frank Koormann   <[email protected]>
815    
816            Documentation synced with 1.0rc1
817    
818            * Doc/manual/thuban-manual.xml:
819            Minor formatting changes and references to database layers .
820            Introduction.Internationalization: New section on i18n.
821            MapManagement.AddingandRemovingLayers: Added item on database layers.  
822            MapManagement.TheLegend: Added section and screenshot on popup menu.
823            ProjectionManagement: Updated screenshot and sentence on EPSG.
824            Appendix.SupportedDataSources: Added PostGIS.
825            Appendix.WorkingwithPostGIS: New section.
826    
827            * Doc/manual/images/6_projection.png: Updated screenshot including
828            EPSG checkboxes.
829    
830            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
831    
832            * Doc/manual/images/app_postgis_add_layer.png,
833            Doc/manual/images/app_postgis_db_add.png,
834            Doc/manual/images/app_postgis_db_management.png:
835            New screenshots focussing on database layers
836    
837    2003-12-05  Frank Koormann   <[email protected]>
838    
839            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
840            write warning to stderr instead of rising a warning dialog
841    
842  2003-12-03  Bernhard Herzog  <[email protected]>  2003-12-03  Bernhard Herzog  <[email protected]>
843    
844          Fix for RT #2243          Fix for RT #2243
# Line 3857  Line 4698 
4698          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4699          click on layer tree:          click on layer tree:
4700          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4701          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.
4702            We add a second ItemActivated event to the queue, which simply
4703          raises the already displayed window.          raises the already displayed window.
4704    
4705          * 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.2196

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26