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

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

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

revision 1939 by bh, Tue Nov 11 18:17:09 2003 UTC revision 2197 by frank, Tue May 4 17:17:00 2004 UTC
# Line 1  Line 1 
1    2004-05-04  Frank Koormann  <[email protected]>
2    
3            * Extensions/bboxdump/__init__.py: Fixed string left over from
4            copying.
5    
6            * Extensions/bboxdump/bboxdump.py (bboxdump):
7            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
8            xrange(layer.NumShapes()). Compile the bboxmessage from a list
9            of formatted outputs (string.join) instead of appending to the
10            message. Two progress bar dialogs to report progress on the sometimes
11            lenghty processing.
12    
13    2004-04-22  Frank Koormann  <[email protected]>
14    
15            New Extension to dump bounding boxes of all shapes of the selected
16            layer. An optional column can be specified to group the objects,
17            in this case the bounding box is a union of the separate boxes.
18            Dump can be displayed in a ScrolledMessageDialog or written to file.
19            The Extension is simply a combination of available and well tested
20            Thuban functionality.
21    
22            * Extensions/bboxdump/__init__.py: New: Init to make this
23            directory a package.
24    
25            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
26            all shapes of the selected layer.
27    
28    2004-04-22  Jan-Oliver Wagner <[email protected]>
29    
30            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
31            strings to be i18n now.
32    
33    2004-04-18  Jan-Oliver Wagner <[email protected]>
34    
35            Changing popup menu of legend from direct building
36            to using the Menu construction as used for the mainwindow.
37    
38            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
39            layer_to_bottom, layer_visibility
40            (MainWindow.LayerToTop): New. Put current layer to the top.
41            (MainWindow.LayerToBottom): New. Put current layer to bottom.
42            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
43            Replace 1,0 by True, False.
44            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
45            current layer.
46            (MainWindow.LayerShowTable): Removed raising of dialog.
47            (_has_selected_layer_visible): New. Support function.
48    
49            * Thuban/UI/legend.py: ID_POP_xxx: removed.
50            (LegendPanel.__init__): Removed EVT_MENU bindings.
51            (LegendTree._OnRightClick): Replace direct creation of
52            menu via wx Classes by applying the menu definition
53            as of Menu class of menu.py.
54            
55    2004-04-16  Jan-Oliver Wagner <[email protected]>
56    
57            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
58        button string to stronger clearify that Thuban will be closed when hitting
59            the button.
60    
61            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
62            Now for layers without a ShapeStore a corresponding message is given
63            to the user, that this layer has no table to show.
64    
65    2004-04-15  Martin Schulze  <[email protected]>
66    
67            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
68            recalculate the format for the internal render engine as well.
69    
70            * Extensions/wms/properties.py (wmsProperties): First start for a
71            properties dialog.  It's functional for a first selection of
72            layers, but still has some weired wxWidgets/GTK problems but
73            beautification can be done later.
74    
75            * Extensions/wms/layer.py: Added more documentation
76            (WMSLayer.getFormats): New: Return list of supported image formats
77            by the WMS server
78            (WMSLayer.getLayers): New: Return the list of layer names
79            supported by the WMS server
80            (WMSLayer.getLayerTitle): New: Return the title of the named layer
81            (WMSLayer.getWMSFormat): New: Return the image format that is used
82            for WMS GetMap requests
83            (WMSLayer.setWMSFormat): New: Set the image format that is used
84            for WMS GetMap requests
85            (WMSLayer.__init__): Move away from using only one layer to using
86            a list of layers (unsorted at the moment, though).
87            (WMSLayer.getVisibleLayers): New: Return the list of names for all
88            visible layers
89            (WMSLayer.setVisibleLayers): New: Set the list of names for all
90            visible layers
91    
92            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
93            order to establish a clean structure.
94    
95            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
96            own in order to establish a clean structure.
97    
98    2004-04-13  Martin Schulze  <[email protected]>
99    
100            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
101            support for oldstyle (WMS 1.0 apparently) image format
102            specification.
103    
104            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
105            supported graphic formats back to JPEG and BMP, PNG and others are
106            too *cough* experimental...  Sorry, I meant to filter this out
107            before I committed this part.  This should make the WMS extension
108            run from CVS again.
109            (wms_dialog): Reset an empty URL to None so that the subsequent
110            program can depend on this, since the dialog will indeed return an
111            empty URL, causing another declaration of love by Python.
112    
113            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
114            Whenever a native BoundingBox request cannot be fulfilled, check
115            whether the requested SRS is EPSG:3426, in which case return the
116            LatLonBoundingBox values.
117    
118            * Extensions/wms/test/test_parser.py
119            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
120            ignoring AUTO:* SRS.
121            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
122            Added another test method to test whether the LatLonBoundingBox
123            values will be returned if BoundingBox values are requested with
124            SRS set to EPSG:3426.
125    
126            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
127            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
128            the moment by placing them into a variable which is currently
129            unused.  Also test whether the EPSG SRS is numerical as it should
130            be and add an error message if it is not.
131    
132            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
133            appear in the real world as well.  Since we cannot handle them yet
134            (OGCLib can't either), we will ignore them for the moment.
135    
136            * Extensions/wms/parser.py: Use a variable for denoting the sample
137            filename
138            (WMSCapabilitiesParser.peekLayers): Added support for error
139            messages during grok().  They will be aggregated in an array and
140            may be displayed later.  We may have to add a classification
141            "Warning" and "Error" to this.  That requires more experience,
142            though, since not every error may be lethal.
143    
144            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
145            ShowTable() dialog/frame when the user attempts to display it
146            while it has been opened before already and not closed again.
147    
148    2004-04-11  Martin Schulze  <[email protected]>
149    
150            * Extensions/wms/infodialog.py: Adjusted the class documentation
151    
152            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
153            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
154            wxWidgets variants.
155            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
156    
157            * Extensions/wms/infodialog.py: Added an information dialog that
158            will display various information about the WMS current resource,
159            so that additional information such as the title, the abstract,
160            fees and access constraints can be displayed for the user if they
161            are documented in the WMS XML.
162    
163    2004-04-10  Martin Schulze  <[email protected]>
164    
165            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
166            string handling.  It's "foo".lower() and not lower(foo) without
167            lower imported from strings or something.
168    
169            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
170            from capabilities.py and parser.py.  Implement priority list for
171            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
172            and GIF are supported here, but not yet by main Thuban.  Hence,
173            support for them may be removed later.  Special contribution to
174            usability: get wxWidgets to change the cursor when we're waiting
175            for data from the network so the user won't start to worry.  This
176            causes a redrawing error/warning, though.
177    
178            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
179            the DOM object.
180    
181    2004-04-01  Martin Schulze  <[email protected]>
182    
183            * Extensions/wms/capabilities.py: Adjusted documentation
184            (WMSCapabilities.__init__): Improved documentation, fixed syntax
185            (WMSCapabilities.saveCapabilities): Only catch IOError when
186            handling files
187            (WMSCapabilities.loadCapabilities): Only catch IOError when
188            handling files
189            __main__: corrected variable naming
190            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
191            class a specialisation of WMSCapabilitiesParser as well.  Also
192            execute grok() after loading or fetching capabilities, if that
193            went well, so that subsequent calls can already access the data.
194            (WMSCapabilities.getVersion): Export the used version of the
195            GetCapabilities request, so we can use it for subsequent calls,
196            i.e. for GetMap requests.
197            (WMSCapabilities.fetchCapabilities): Added proper error handling
198            when the GetCapabilities request failed, so that the surrounding
199            program can act accordingly.
200    
201    2004-03-30  Martin Schulze  <[email protected]>
202    
203            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
204            Adjusted the getLayerSRS method to return the list of SRSes
205            extracted from <SRS> elements instead of <BoundingBox> elements.
206            Added a bit of documentation as well.
207            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
208            since it was only implemented due to a misunderstanding.
209    
210            * Extensions/wms/test/test_parser.py
211            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
212            reflect the corrected interpretation of the standard: i.e. a layer
213            does not have to define a BoundingBox for all SRSes it supports.
214            Hence the <SRS></SRS> specification is authoritative, not the list
215            of BoundingBoxes.
216            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
217            to ensure None is returned for a non-existing SRS.
218            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
219            since it is not applicable anymore.  Listing more SRSes in <SRS>
220            elements is valid according to the specs.
221    
222    2004-03-26  Bernhard Reiter <[email protected]>
223    
224            * README: Nicer formatting of text. Improved descriptions.
225            Reflected wxWidgets name change.
226            
227            * Thuban/UI/about.py: Extended copyright to 2004 and added
228            information about the thuban-devel mailinglist.
229    
230    2004-03-24  Martin Schulze  <[email protected]>
231    
232            * Extensions/wms/capabilities.py: Renamed the class to contain
233            'WMS', also added a linebreak where required
234    
235            * Extensions/wms/parser.py: Finally added the XML parser for the
236            GetCapabilities response.
237    
238            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
239            <SRS> elements match the <BoundingBox> elements, except for the
240            layer 'beschriftung'.
241    
242            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
243            since Python uses unicode strings internally, otherwise
244            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
245            the SRS will be calculated anyway and this method is obsoleted by
246            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
247            Move loading the sample file into the setUp method.  Added a test
248            for finding the integrity problem in the sample response.
249            Improved formatting.
250    
251            * Extensions/wms/domutils.py: Added convenience routines for
252            handling of Document Object Model (DOM) nodes.
253    
254            * Extensions/wms/test/test_domutils.py: Added a test for the
255            domutils module
256    
257    2004-03-19  Martin Schulze  <[email protected]>
258    
259            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
260            Moved path detection and adding into a module of its own,
261            adjustpath, which exports thubandir as main Thuban directory.
262    
263            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
264            detection and adding into a module of its own, adjustpath, which
265            exports thubandir as main Thuban directory.  Reorganised the
266            module in order to support the SkipTest feature for Thuban test
267            cases.
268    
269            * Extensions/wms/test/adjustpath.py: Moved path detection and
270            adding into a module of its own.
271    
272    2004-03-18  Martin Schulze  <[email protected]>
273    
274            * Extensions/wms/test/test_parser.py: Added another test for
275            checking whether the WMS XML parser (to be implemented) returns
276            the information we expect.  This requires a sample WMS WML file
277            (sample.xml) which has been extracted from the frida server and
278            "improved" manually.
279    
280            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
281            main Thuban directory to the path in order to be able to import
282            random modules.  Adjusted the PyOGCLib detection to reuse the
283            information gathered.  Also added a note about the PYTHONPATH
284            environment variable.
285    
286            * Extensions/wms/test/test_ogclib.py: The format specification is
287            a mime-type, not a graphic format, hence image/jpeg wou ld be the
288            proper format and not JPEG.  We'll also have to take care of the
289            encoding of / as %2F.
290    
291    2004-03-16  Martin Schulze  <[email protected]>
292    
293            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
294            comprehensive test for the getMapURL method, built compare URLs
295            according to the documentation in OGC 01-068r3
296    
297            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
298            class WMSCapabilities to manage capabilites, will incorporate
299            parsing the capabilities response and provide details for other
300            classes.
301    
302    2004-03-12  Bernhard Herzog  <[email protected]>
303    
304            Support views in addition to normal tables in the postgis
305            shapestore
306    
307            * Thuban/Model/postgisdb.py
308            (PostGISShapeStore._fetch_table_information): Add a fallback for
309            the case where the table name is not in the geometry_columns
310            table.  This is usually the case for views.  Also, set
311            self.shapestore here.
312            (PostGISShapeStore.ShapeType): No need to query the database all
313            the time.  The shape type is now determined in
314            _fetch_table_information
315    
316            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
317            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
318            New parameter to specify views.
319            (PostGISDatabase.has_data): Also compare the views.  New views
320            parameter
321            (PostGISDatabase.initdb): Create the views.
322            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
323            view
324    
325            * test/test_postgis_db.py
326            (TestPostGISShapestorePointFromViews): New.  Test a
327            PostGISShapeStore with a view
328            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
329            the geometry_column explicitly to test whether that works
330    
331    2004-03-12  Bernhard Herzog  <[email protected]>
332    
333            Final step for explicit id/geometry columns: Loading and saving
334    
335            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
336            with the following changes:
337            (dbshapesource): Two new attributes id_column and geometry_column
338    
339            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
340            (SessionSaver.write_session): Use the new namespace
341            (SessionSaver.write_data_containers): Write the new dbshapesource
342            parameters
343    
344            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
345            the new file format version
346            (SessionLoader.start_dbshapesource): Handle the new db parameters
347    
348            * test/test_save.py: Update to the new dtd and namespace
349            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
350            mock object to provide a working IDColumn method.
351    
352            * test/test_load_1_0.py: New.  Copy of the test_load.py before
353            today's changes but with the round-trip tests removed.
354    
355            * test/test_load_0_9.py: Update doc-string.
356    
357            * test/test_load.py: Update all .thuban files to the new dtd and
358            namespace.
359            (TestPostGISLayer.file_contents): Add the new dbshapesource
360            paramters
361    
362    2004-03-11  Bernhard Herzog  <[email protected]>
363    
364            Next step for explicit id/geometry columns: User interaction
365    
366            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
367            the dialog is constructed. Add combo boxes to select id and
368            geometry column.  Rename some instance variables.
369            (ChooseDBTableDialog.GetTable): Return id and geometry column
370            names
371            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
372            selections in the table list
373    
374            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
375            and geometry_column
376    
377            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
378            parameters for id_column and geometry column of PostGISShapeStore
379            here as well.
380    
381            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
382            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
383            (PostGISConnection.GeometryTables): Use a better query to
384            determine which relations in the database might be usable for
385            shapestores.  Now supports views as well but is more PostgreSQL
386            specific
387            (PostGISConnection.table_columns): New. Somewhat experimental
388            method to let the db dialogs provide lists of columns to users so
389            that they can select id and geometry columns.
390            (PostGISTable.__init__): The default value of the id_column
391            parameter is now None it still means "gid" effectively, though.
392            (PostGISTable.IDColumn): New introspection method to return a
393            column object for the id column
394            (PostGISShapeStore.GeometryColumn): New introspection method to
395            return a column object for the geometry column
396    
397            * test/test_postgis_db.py
398            (TestPostGISConnection.test_gis_tables_non_empty):
399            Removed. Subsumed by the new:
400            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
401            New. Tes the GeometryTables and table_columns methods with actual
402            tables and views.
403            (PointTests.test_id_column, PointTests.test_geometry_column):
404            New. tests for the new methods.
405            (TestPostGISShapestorePoint.setUp)
406            (TestPostGISShapestorePointSRID.setUp)
407            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
408            instance variables needed by the new tests
409    
410    2004-03-11  Bernhard Herzog  <[email protected]>
411    
412            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
413            numbers given to ReadValue are ordinals.
414    
415    2004-03-11  Bernhard Herzog  <[email protected]>
416    
417            Elimiate the requirement for PostGIS tables to have a column
418            called "gid".
419    
420            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
421            id_column to specify which column to use to identify rows.  Also
422            new instance variables id_column and quoted_id_column
423            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
424            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
425            (PostGISTable.SimpleQuery): Use the id column name provided to the
426            constructor instead of "gid"
427            (PostGISShapeStore.__init__): New parameter id_column analogously
428            to PostGISTable.__init__.  This parameter is simply passed through
429            to the base class constructor
430            (PostGISShapeStore._create_col_from_description): Fix typo in
431            doc-string
432            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
433            (PostGISShapeStore.ShapesInRegion): Use the id column name
434            provided to the constructor instead of "gid"
435    
436            * test/postgissupport.py
437            (PostgreSQLServer.get_default_static_data_db): New static table
438            landmarks_point_id with an id column != "gid.  Update the comments
439            a bit.
440            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
441            doc-
442            (upload_shapefile): New parameter gid_column to use a name other
443            than "gid" for the column to store the shape ids
444    
445            * test/test_postgis_db.py (TableTests): New.  Mixin-class
446            containing all tests previously in TestPostGISTable.  The actual
447            tests are the same but the code is a bit more configurable to
448            allow for different id columns etc.
449            (TestPostGISTable): Derive from TableTests now for the actual
450            tests.
451            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
452            except that it the landmarks_point_id table to test the id_column
453            parameter
454            (PointTests): Extend the doc-string
455            (TestPostGISShapestorePointExplicitGIDColumn)
456            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
457            from PointTests to test the explicit id_column parameter.  One
458            tests with the name of the column holding the shape ids, the other
459            uses PostgreSQL's OID column.  For the latter a number of methods
460            have to be overwritten to make them independent of the actual id
461            values.
462    
463    2004-03-08  Silke Reimer  <[email protected]>
464    
465            Update debian directory:
466    
467            * debian/changelog: Added new version.
468            * deiban/rules: Updated management of patches (with cbds)
469            * debian/control: Added cbds to dependencies
470            * debian/patches/*: New. Adds better support for patches of thuban in
471                            debian
472            * debian/menu: Syntax of menu changed slightly
473            * debian/setup.py.patch: removed because it has been moved to
474                            debian/patechs/setup.py.patch
475            
476    
477    2004-02-26  Bernhard Herzog  <[email protected]>
478    
479            Create the Doc/technotes directory for text files with information
480            for developers
481    
482            * Doc/technotes/README: New. README for the technotes
483    
484            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
485            Thuban
486    
487            * Doc/technotes/release_process.txt: New. Used to be
488            HOWTO-Release.  Now slightly adapted to technote formatting style.
489    
490            * HOWTO-Release: Removed.  It's contents are now in
491            Doc/technotes/release_process.txt
492    
493    2004-02-25  Bernhard Herzog  <[email protected]>
494    
495            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
496            version of wxWindows the module was compiled with so we can check
497            that against the wxPython version.
498    
499            * Thuban/version.py (thuban_branch, thuban_release): New variables
500            controlling which and how Thuban versions are shown.  See the
501            comments for details.
502            (verify_versions): Also check that the wx version that wxproj is
503            compiled against matches that of the wxPython we use at runtime
504    
505    2004-02-20  Bernhard Herzog  <[email protected]>
506    
507            * Extensions/wms/wms.py (epsg_code_to_projection): Use
508            get_system_proj_file to read the epsg projections.  The old way
509            depended on the current directory being the top Thuban directory.
510    
511    2004-02-20  Bernhard Herzog  <[email protected]>
512    
513            * Extensions/svgexport/test/test_svgmapwriter.py
514            (TestVirtualDC.test_clippath): Remove a debug print
515    
516    2004-02-20  Bernhard Herzog  <[email protected]>
517    
518            * Extensions/svgexport/__init__.py: New.  Turn
519            Extensions/svgexport into a package.
520    
521            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
522            doc-string a bit.  The doc-string must come first, otherwise it's
523            not a doc-string.  The __future__ import must be the first thing
524            after the doc-string.  Use only double quotes in doc-strings.
525            Single quotes trip up emacs syntax highlighting if the text
526            contains apostrophes.
527    
528    2004-02-20  Bernhard Herzog  <[email protected]>
529    
530            * Extensions/svgexport/test/__init__.py,
531            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
532            suite for svgexport
533    
534            * test/runtests.py (find_test_modules): New. Function with the
535            module finding code from main.
536            (main): Use find_test_modules to figure out the default test
537            modules and take modules from Extensions.svgexport.test too.
538    
539    2004-02-19  Bernhard Herzog  <[email protected]>
540    
541            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
542            the mainwindow has a reference to the map of the initial session.
543            This fixes a bug introduced with the fix for RT#2245
544    
545    2004-02-19  Bernhard Herzog  <[email protected]>
546    
547            * Extensions/svgexport/svgsaver.py,
548            Extensions/svgexport/svgmapwriter.py,
549            Extensions/svgexport/maplegend.py: Added again.  This time in the
550            correct place.
551    
552    2004-02-17  Bernhard Herzog  <[email protected]>
553    
554            Fix for RT#2245
555    
556            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
557            instance variables before trying to create any windows.  Creating
558            windows can start an event loop if e.g. message boxes are popped
559            up for some reason, and event handlers, especially EVT_UPDATE_UI
560            may want to access things from the application.
561            (ThubanApplication.maps_changed): The mainwindow may not have been
562            created yet, so check whether it has been created before calling
563            its methods
564    
565            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
566            have a map
567    
568    2004-02-17  Bernhard Herzog  <[email protected]>
569    
570            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
571            Extensions/svgmapwriter.py, Extensions/maplegend.py,
572            extensions/svgexport/svgsaver.py,
573            extensions/svgexport/svgmapwriter.py,
574            extensions/svgexport/maplegend.py: Removed.  These files were in
575            the wrong places or didn't work at all.
576    
577    2004-02-16  Bernhard Herzog  <[email protected]>
578    
579            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
580            line
581    
582    2004-02-16  Bernhard Herzog  <[email protected]>
583    
584            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
585    
586    2004-02-15  Markus Rechtien  <[email protected]>
587            
588            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
589            to write a session to a file in SVG format.
590            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
591            to write a SVG map of a session.
592            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
593            in SVG format for the current session.
594    
595    2004-02-13  Bernhard Herzog  <[email protected]>
596    
597            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
598            can't be created, return immediately after displaying the error
599            message.
600    
601    2004-02-11  Bernhard Herzog  <[email protected]>
602    
603            Handle postgis tables with more than one geometry column.
604    
605            * Thuban/Model/postgisdb.py
606            (PostGISTable._fetch_table_information): Delegate the creation of
607            column objects to a different method so that we can extend that in
608            derived classes
609            (PostGISTable._create_col_from_description): New. Column object
610            creation part of _fetch_table_information
611            (PostGISShapeStore._create_col_from_description): New. Extend
612            inherited method to handle geometry columns
613            (PostGISShapeStore.__init__): New parameter geometry_column to
614            specify which geometry column to use.  Optional but mandatory for
615            tables with more than one geometry column
616            (PostGISShapeStore._fetch_table_information): Also use the name of
617            the geometry column when looking for the srid
618            (PostGISShapeStore.ShapeType): Also use the name of the geometry
619            column when looking for the shape type
620    
621            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
622            NonConnectionStore to changes in the PostGISShapeStore
623    
624            * test/test_postgis_db.py
625            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
626            PostGISShapeStore with tables having two geometry columns.
627    
628    2004-02-10  Bernhard Herzog  <[email protected]>
629    
630            Fix some postgis problems.  What remains to be done is real
631            handling of SRIDs as they affect how reprojection is done
632    
633            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
634            doc-string
635            (PostGISShapeStore._fetch_table_information): New. Extend
636            inherited method to retrieve srid
637            (PostGISShapeStore.BoundingBox): Handle tables without data.
638            extent yields NULL for those
639            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
640    
641            * test/test_postgis_db.py
642            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
643            for the special case of a table without any data
644            (TestPostGISShapestorePointSRID): New class with tests for a table
645            that uses srids
646            (PolygonTests): Fix a doc-string typo
647    
648            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
649            reference_systems with a specification of spacial reference
650            systems to create in the new db.
651            (PostgreSQLServer.new_postgis_db)
652            (PostgreSQLServer.get_static_data_db): New parameter
653            reference_systems to be passed through ultimately to
654            PostGISDatabase.  In new_postgis_db also check whether an existing
655            db already has the right srids
656            (PostgreSQLServer.get_default_static_data_db): Add srids and a
657            table that uses srids
658            (PostGISDatabase.initdb): Create the entries for the reference
659            systems
660            (PostGISDatabase.has_data): Add reference_systems parameter to
661            check for those too
662            (upload_shapefile): New parameter srid to create tables with a
663            specific srid
664    
665    2004-02-06  Frank Koormann  <[email protected]>
666    
667            * po/pt_BR.po: Fixed charset
668    
669    2004-02-05  Frank Koormann  <[email protected]>
670    
671            * po/pt_BR.po: Fixed format string for error message, missing %s
672            added (Thuban/UI/application.py:273)
673    
674    2004-02-03  Frank Koormann  <[email protected]>
675            
676            First version of Portuguese (Brazilian) translation
677    
678            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
679            Brazilian Portuguese by Eduardo Patto Kanegae.
680    
681            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
682            translators.
683    
684    
685    2004-01-22  Frank Koormann  <[email protected]>
686    
687            * Doc/manual/thuban-manual.xml: Added section on installation of
688            Thuban under Win32 systems. Fixed image path references in the postgis
689            section. Some minor source formattings.
690    
691    2004-01-21  Frank Koormann  <[email protected]>
692    
693            Make Thuban remember path selections (at least for one application run).
694    
695            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
696            attribute of application object. Path is a dictionary of
697            strings, currently with the items "data" and "projection".  
698            (Application.SetPath): New, stores path for the specified item.
699            (Application.Path): New, return path for the specified item.
700    
701            * Thuban/UI/mainwindow.py
702            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
703            MainWindow.AddLayer, MainWindow.AddRasterLayer,
704            MainWindow.TableOpen): Access "data" path information of the
705            application.
706            
707            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
708            Access "projection" path information of the application.
709    
710    2004-01-05  Bernhard Herzog  <[email protected]>
711    
712            * po/ru.po: Updated translations from Alex Shevlakov
713    
714    2004-01-05  Bernhard Herzog  <[email protected]>
715    
716            * po/Makefile, po/README: Move the description of how to generate
717            the translation statistics to the README.
718    
719    2003-12-23  Bernhard Herzog  <[email protected]>
720    
721            * NEWS: Update for 1.0.0
722    
723            * po/it.po: Another update from Maurizio Napolitano
724    
725    2003-12-23  Bernhard Herzog  <[email protected]>
726    
727            * po/it.po: Updated translation from Maurizio Napolitano
728    
729    2003-12-23  Bernhard Herzog  <[email protected]>
730    
731            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
732            for translation
733    
734            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
735            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
736            strings for translation
737    
738            * po/de.po: Update with the newly marked strings.
739    
740    2003-12-22  Bernhard Herzog  <[email protected]>
741    
742            * HOWTO-Release: Fix the places where version numbers have to be
743            updated
744    
745    2003-12-22  Bernhard Herzog  <[email protected]>
746    
747            * setup.py (setup call): 1.0.0, yeah!
748    
749            * Thuban/version.py (longversion): 1.0.0, yeah!
750    
751            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
752            1.0.0 namespace too
753    
754            * Thuban/Model/save.py (SessionSaver.write_session): Save with
755            1.0.0 namespace
756    
757            * test/test_load.py (LoadSessionTest.dtd)
758            (TestSingleLayer.file_contents)
759            (TestNonAsciiColumnName.file_contents)
760            (TestLayerVisibility.file_contents)
761            (TestClassification.file_contents, TestLabels.file_contents)
762            (TestLayerProjection.file_contents)
763            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
764            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
765            (TestPostGISLayerPassword.file_contents)
766            (TestLoadError.file_contents, TestLoadError.test): Update for
767            1.0.0 namespace
768    
769            * test/test_save.py (SaveSessionTest.dtd)
770            (SaveSessionTest.testEmptySession)
771            (SaveSessionTest.testSingleLayer)
772            (SaveSessionTest.testLayerProjection)
773            (SaveSessionTest.testRasterLayer)
774            (SaveSessionTest.testClassifiedLayer)
775            (SaveSessionTest.test_dbf_table)
776            (SaveSessionTest.test_joined_table)
777            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
778    
779    2003-12-22  Bernhard Herzog  <[email protected]>
780    
781            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
782            alignment flags are byte strings not unicode and that they have
783            valid values
784    
785            * test/test_load.py (TestLabelLayer): New. Test loading (and
786            indirectly saving) of maps with labels.
787    
788    2003-12-22  Bernhard Herzog  <[email protected]>
789    
790            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
791            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
792            unsubscribe all subscribers.
793            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
794            self.grid since it may already have been destroyed.
795            Fixes RT #2256
796    
797    2003-12-19  Bernhard Herzog  <[email protected]>
798    
799            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
800    
801    2003-12-16  Bernhard Herzog  <[email protected]>
802            
803            * debian/bitmappath.patch, debian/setup.py.patch:
804                    added to ensure compliance with FHS for debian
805            * debian/rules, debian/changelog:
806                added patches in rules to ensure compliance with FHS for debian
807    
808    2003-12-16  Bernhard Herzog  <[email protected]>
809    
810            * po/Makefile (mo): Make the output a bit nicer so that it prints
811            statistics about the translations. Add a comment how produce even
812            nicer statistics with sed.
813    
814    2003-12-09  Frank Koormann   <[email protected]>
815    
816            * Resources/Projections/defaults.proj:
817            French projection sample with correct accents (UNICODE).
818    
819    2003-12-05  Bernhard Herzog  <[email protected]>
820    
821            * MANIFEST.in: Add the devtools directory
822    
823            * setup.py (setup call): Use license instead of licence. This
824            silences a deprecation warning on Python 2.3
825    
826    2003-12-05  Frank Koormann   <[email protected]>
827    
828            Documentation synced with 1.0rc1
829    
830            * Doc/manual/thuban-manual.xml:
831            Minor formatting changes and references to database layers .
832            Introduction.Internationalization: New section on i18n.
833            MapManagement.AddingandRemovingLayers: Added item on database layers.  
834            MapManagement.TheLegend: Added section and screenshot on popup menu.
835            ProjectionManagement: Updated screenshot and sentence on EPSG.
836            Appendix.SupportedDataSources: Added PostGIS.
837            Appendix.WorkingwithPostGIS: New section.
838    
839            * Doc/manual/images/6_projection.png: Updated screenshot including
840            EPSG checkboxes.
841    
842            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
843    
844            * Doc/manual/images/app_postgis_add_layer.png,
845            Doc/manual/images/app_postgis_db_add.png,
846            Doc/manual/images/app_postgis_db_management.png:
847            New screenshots focussing on database layers
848    
849    2003-12-05  Frank Koormann   <[email protected]>
850    
851            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
852            write warning to stderr instead of rising a warning dialog
853    
854    2003-12-03  Bernhard Herzog  <[email protected]>
855    
856            Fix for RT #2243
857    
858            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
859            New. Like has_selected_layer but for shape layers only
860            (_has_selected_shape_layer): New. Like _has_selected_layer but for
861            shape layers only
862            (layer_show_table command, layer_jointable command): Use these
863            commands should only be available for shape layers
864    
865    2003-12-03  Bernhard Herzog  <[email protected]>
866    
867            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
868            publishers that are wx objects and may have been destroyed by wx
869            already. Fixes RT #2242.
870    
871    2003-12-03  Bernhard Herzog  <[email protected]>
872    
873            * po/ru.po: Updates from Alex Shevlakov
874    
875    2003-12-03  Silke Reimer <silkeintevation.de>
876    
877            * debian/control, debian/changelog: Added gdal-support to
878                    debian package, updated to new thuban version
879    
880    
881    2003-12-03  Bernhard Herzog  <[email protected]>
882    
883            * Thuban/Lib/version.py: New. Module for version number
884            manipulations. The version of make_tuple here also deals better
885            with more unusual version number strings, such as e.g.
886            "1.2+cvs20031111"
887    
888            * Thuban/version.py (make_tuple): Removed. It's now in
889            Thuban.Lib.version. Use that implementation instead.
890    
891            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
892    
893    2003-12-02  Bernhard Herzog  <[email protected]>
894    
895            * MANIFEST.in: Add debian files
896    
897            * setup.py (setup call): Add packages for the Extensions so that
898            they're installed too
899            (data_files): Add READMEs and sample data from some Extensions
900    
901            * NEWS: Add note about the extensions in binary packages
902    
903    2003-12-02  Bernhard Herzog  <[email protected]>
904    
905            * Thuban/Model/save.py (SessionSaver.write_session): Save files
906            with the thuban-1.0rc1
907    
908            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
909            thuban-1.0rc1 namespace too
910    
911            * test/test_save.py (SaveSessionTest.dtd)
912            (SaveSessionTest.testEmptySession)
913            (SaveSessionTest.testSingleLayer)
914            (SaveSessionTest.testLayerProjection)
915            (SaveSessionTest.testRasterLayer)
916            (SaveSessionTest.testClassifiedLayer)
917            (SaveSessionTest.test_dbf_table)
918            (SaveSessionTest.test_joined_table)
919            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
920            namespace
921    
922            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
923            namespace
924            (TestSingleLayer.file_contents)
925            (TestNonAsciiColumnName.file_contents)
926            (TestLayerVisibility.file_contents)
927            (TestClassification.file_contents, TestLabels.file_contents)
928            (TestLayerProjection.file_contents)
929            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
930            (TestPostGISLayer.file_contents)
931            (TestPostGISLayerPassword.file_contents)
932            (TestLoadError.file_contents, TestLoadError.test): Update to
933            thuban-1.0rc1 namespace
934    
935    2003-12-01  Bernhard Herzog  <[email protected]>
936    
937            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
938            nt to better match Intevation's current w32 setup
939    
940            * HOWTO-Release: Add note about updating MANIFEST.in
941    
942            * MANIFEST.in: Add the Extensions
943    
944            * NEWS: Update for 1.0rc1
945    
946    2003-12-01  Bernhard Herzog  <[email protected]>
947    
948            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
949            cards for the dialog so that shapefiles ending in all uppercase
950            SHP are listed too
951    
952    2003-11-28  Bernhard Herzog  <[email protected]>
953    
954            * Thuban/version.py (longversion): Update to 1.0rc1
955    
956            * setup.py (setup call): Update version to 1.0rc1. Use the
957            [email protected] email address as author email instead of my
958            personal one.
959    
960    2003-11-28  Bernhard Herzog  <[email protected]>
961    
962            * po/de.po: Update german translation.
963    
964    2003-11-28  Bernhard Herzog  <[email protected]>
965    
966            Unify the filenames stored in .thuban files so that the .thuban
967            files are more platform independend
968    
969            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
970            that they can be used on both windows and unix
971            (SessionSaver.prepare_filename): New. Handle all filename
972            transformations for filenames stored in the thuban file
973            (SessionSaver.write_data_containers, SessionSaver.write_layer):
974            Use prepare_filename
975    
976            * test/test_save.py (SaveSessionTest.testSingleLayer)
977            (SaveSessionTest.testLayerProjection)
978            (SaveSessionTest.testRasterLayer)
979            (SaveSessionTest.testClassifiedLayer)
980            (SaveSessionTest.test_dbf_table)
981            (SaveSessionTest.test_joined_table): Filenames are always stored
982            with slashes on all currently supported platforms so adapt all
983            tests to this
984    
985            * test/test_load.py (LoadSessionTest.filenames): With the new
986            filename scheme the filenames in the tests should be
987            understandable on all currently supported platforms so we turn
988            this into an empty list because we don't have to normalize them
989            anymore
990    
991    2003-11-28  Bernhard Herzog  <[email protected]>
992    
993            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
994            Add the ellipsoid to the projection since some Proj versions
995            complain if it's missing.
996    
997    2003-11-27  Bernhard Herzog  <[email protected]>
998    
999            Corect some bounding box projection problems
1000    
1001            * Thuban/Model/proj.py (Projection.InverseBBox): New. Inverse
1002            version of ForwardBBox
1003            (Projection._transform_bbox): New. common implementation of
1004            ForwardBBox and InverseBBox
1005            (Projection.ForwardBBox): Use _transform_bbox.
1006    
1007            * test/test_proj.py (TestProjection.test): Add test for
1008            InverseBBox
1009    
1010            * Thuban/Model/layer.py (Layer.LatLongBoundingBox)
1011            (Layer.ShapesBoundingBox, RasterLayer.LatLongBoundingBox): Use the
1012            new InverseBBox method to determine the unprojected bounding box
1013            (Layer.ShapesInRegion): Use the ForwardBBox method to project the
1014            bbox.
1015    
1016            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1017            Removed.
1018            (TestLayer.test_arc_layer_with_projection): New. This test is
1019            better able to test whether bounding boxes are projected correctly
1020            than test_point_layer_with_projection
1021    
1022            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Use
1023            InverseBBox to unproject bboxes
1024    
1025    2003-11-25  Bernhard Herzog  <[email protected]>
1026    
1027            * Thuban/UI/about.py (About.__init__): Make sure we have ASCII
1028            source code.
1029    
1030    2003-11-25  Bernhard Herzog  <[email protected]>
1031    
1032            * Thuban/Model/layer.py (Layer.__getattr__): Removed. It was only
1033            there for backwards compatibility and all code relying on that
1034            should have been updated by now.
1035    
1036    2003-11-25  Bernhard Herzog  <[email protected]>
1037    
1038            * test/test_load.py (TestClassification.test): Add the missing
1039            round trip test.
1040            (TestClassification.file_contents): Update to the newest file
1041            format
1042    
1043    2003-11-25  Bernhard Herzog  <[email protected]>
1044    
1045            Add very experimental (and possibly dangerous) extension to draw
1046            polygons:
1047    
1048            * Extensions/drawshape/README: New. Brief installation
1049            instructions
1050    
1051            * Extensions/drawshape/drawshape.py: New. Implementation of the
1052            drawshape extensions
1053    
1054            * Extensions/drawshape/patch.diff: Patch to apply before the
1055            extension can be used.
1056    
1057    2003-11-24  Bernhard Herzog  <[email protected]>
1058    
1059            * Thuban/Model/data.py (ShapefileStore._open_shapefile)
1060            (ShapefileStore.__init__): Factor opening the shapefile into a
1061            separate method (the new _open_shapefile). This makes the code a
1062            bit more readable but the real reason is that it makes some evil
1063            hacks easier. :-)
1064    
1065    2003-11-24  Bernhard Herzog  <[email protected]>
1066    
1067            * Thuban/Model/load.py (SessionLoader.check_attrs): If no
1068            converter is specified for an attribute assume it's a string
1069            containing only Latin1 characters. Update doc-string accordingly.
1070            This change should fix many places where unicode objects might
1071            accidentally enter Thuban.
1072    
1073            * test/test_load.py (TestNonAsciiColumnName): New test to check
1074            what happens with column names in DBF files that contain non-ascii
1075            characters
1076    
1077    2003-11-21  Bernhard Herzog  <[email protected]>
1078    
1079            Enable the experimental attribute editing again and introduce a
1080            command line switch to actually activate it
1081    
1082            * Thuban/UI/main.py (options): New. Container for options set on
1083            the commmand line
1084            (main): Add the --enable-attribute-editing flag.
1085    
1086            * Thuban/UI/identifyview.py (IdentifyView.__init__): If attribute
1087            editing is enabled use the grid ctrl which allows editing of the
1088            values
1089    
1090            * Thuban/Model/transientdb.py (AutoTransientTable.write_record):
1091            New. Just delegate this to the underlying table.
1092    
1093    2003-11-20  Bernhard Herzog  <[email protected]>
1094    
1095            * test/test_proj.py (ProjFileReadTests.test_read_unreadable_file):
1096            Skip this test if run under non-posix systems since it only works
1097            there
1098    
1099    2003-11-19  Bernhard Herzog  <[email protected]>
1100    
1101            * Thuban/Model/resource.py: Rework the way gdal support is
1102            determined so that we can give a reason in the about why gdal is
1103            not supported.
1104            (gdal_support_status): New. Variable holding a string with the
1105            reason for no gdal support
1106    
1107            * Thuban/UI/about.py (About.__init__): Add the reason why gdal is
1108            not supported to the message
1109    
1110    2003-11-19  Bernhard Herzog  <[email protected]>
1111    
1112            Remove the old table interface and its test cases
1113    
1114            * Thuban/Model/table.py (OldTableInterfaceMixin): Removed.
1115            (DBFTable, MemoryTable): Do not derive from OldTableInterfaceMixin
1116            anymore
1117    
1118            * Thuban/Model/transientdb.py (TransientTableBase)
1119            (AutoTransientTable): Do not derive from OldTableInterfaceMixin
1120            anymore
1121    
1122            * test/test_table.py: Removed since the old interface it tests is
1123            gone.
1124    
1125            * test/runtests.py (main): The old table interface is gone and
1126            with it the deprecation warnings so remove the code that turns
1127            these warnings into errors
1128    
1129    2003-11-19  Bernhard Herzog  <[email protected]>
1130    
1131            * test/test_table.py: Revert to revision 1.5 again. Changing the
1132            tests to use the new table interface is completely wrong since the
1133            whole purpose of the tests in this module is to test the old
1134            interface.
1135    
1136    2003-11-18  Bernhard Herzog  <[email protected]>
1137    
1138            * Thuban/Model/postgisdb.py (PostGISConnection.MatchesParameters):
1139            New. Test whether the connection matches a set of connection
1140            parameters
1141    
1142            * Thuban/UI/dbdialog.py (DBFrame.conns_changed): Fix doc-string
1143            (DBFrame.OnAdd): Use the new MatchesParameters method when looking
1144            for existing connections with the same parameters and break out of
1145            the loop correctly.
1146    
1147            * test/test_postgis_db.py (TestBriefDescription)
1148            (TestPostGISSimple.test_brief_description): Rename
1149            TestBriefDescription to TestPostGISSimple and the test method to
1150            test_brief_description so that we can add more test methods.
1151            (TestPostGISSimple.test_matches_parameters): New. Test the new
1152            MatchesParameters method
1153    
1154    2003-11-18  Bernhard Herzog  <[email protected]>
1155    
1156            * Thuban/Lib/connector.py (Publisher): Introduce a new flag,
1157            _was_destroyed, to indicate whether an publisher instance has
1158            already been destroyed.
1159            (Publisher.Unsubscribe): Only disconnect if the publisher has not
1160            been destroyed yet.
1161            (Publisher.Destroy): Set the _was_destroyed flag to true.
1162    
1163            * test/test_connector.py
1164            (TestPublisher.test_unsubscribe_after_destroy): New. Test that
1165            calling Unsubscribe after Destroy doesn't raise an exception
1166    
1167    2003-11-14  Bernhard Herzog  <[email protected]>
1168    
1169            * Thuban/UI/identifyview.py (IdentifyView.selected_shape): Fix
1170            typo in doc-string
1171    
1172    2003-11-13  Bernhard Herzog  <[email protected]>
1173    
1174            Quote table and column names properly for postgis.
1175    
1176            * Thuban/Model/postgisdb.py (quote_identifier): New. Function to
1177            quote an identifier for use in an sql statement
1178            (PostGISColumn.__init__): Add the quoted_name attribute
1179            (PostGISTable.__init__): New instance variable quoted_tablename
1180            (PostGISTable._fetch_table_information): Use the quoted table
1181            name. New isntance variable quoted_geo_col with a quoted version
1182            of geometry_column
1183            (PostGISTable.NumRows, PostGISTable.RowIdToOrdinal)
1184            (PostGISTable.RowOrdinalToId): Use the quoted table name
1185            (PostGISTable.ReadValue, PostGISTable.ValueRange)
1186            (PostGISTable.UniqueValues, PostGISTable.SimpleQuery)
1187            (PostGISShapeStore.BoundingBox, PostGISShapeStore.Shape)
1188            (PostGISShapeStore.AllShapes, PostGISShapeStore.ShapesInRegion):
1189            Use quoted table and column names
1190    
1191            * test/test_postgis_db.py (TestPostGISSpecialCases)
1192            (TestPostGISIgnoredColumns): Rename the class to
1193            TestPostGISSpecialCases because that better describes the new
1194            cases
1195            (TestPostGISSpecialCases.test_unsupported_types)
1196            (TestPostGISSpecialCases.test): Rename the method to
1197            test_unsupported_types because we need a more descriptive name now
1198            that there are more methods
1199            (TestPostGISSpecialCases.test_table_name_quoting)
1200            (TestPostGISSpecialCases.test_column_name_quoting)
1201            (TestPostGISSpecialCases.test_shapestore_name_quoting): New test
1202            cases to test quoting of table and column names in PostGISTable
1203            and PostGISShapeStore
1204    
1205            * test/postgissupport.py
1206            (skip_if_addgeometrycolumn_does_not_use_quote_ident): New. Skip if
1207            AddGeometryColumn desn't support table or column names with sapces
1208            or double quotes
1209    
1210    2003-11-12  Jan-Oliver Wagner <[email protected]>
1211    
1212            * Extensions/wms/__init__.py: New: Init to make this
1213            directory a package.
1214    
1215            * Extensions/wms/wms.py: New: Provide layers via OGC WMS.
1216    
1217    2003-11-11  Bernhard Herzog  <[email protected]>
1218    
1219            * Thuban/Model/resource.py (EPSG_DEPRECATED_PROJ_FILE): New.
1220            Constant for the file woth deprecated epsg projections
1221            (get_system_proj_file): Update doc-string
1222    
1223            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Add a space
1224            above the EPS widgets, introduce a check box for the deprecated
1225            eps projections and a label for the epsg widgets
1226            (ProjFrame._OnShowEPSG): Handle the deprecated EPSG projections
1227            too
1228    
1229  2003-11-11  Bernhard Herzog  <[email protected]>  2003-11-11  Bernhard Herzog  <[email protected]>
1230    
1231          Avoid warnings when run under Python 2.3          Avoid warnings when run under Python 2.3
# Line 3482  Line 4710 
4710          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4711          click on layer tree:          click on layer tree:
4712          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4713          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.
4714            We add a second ItemActivated event to the queue, which simply
4715          raises the already displayed window.          raises the already displayed window.
4716    
4717          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26