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

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

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

revision 2075 by bh, Thu Feb 19 13:38:47 2004 UTC revision 2242 by jschuengel, Tue Jun 15 09:22:01 2004 UTC
# Line 1  Line 1 
1    2004-06-10  Jan Sch�ngel  <[email protected]>
2    
3            * Extensions/umn_mapserver/README: New. Install instruction.
4    
5    2004-06-14  Bernhard Reiter <[email protected]>
6    
7            * libraries/thuban/cpl_mfile.h: Added copyright header.
8    
9            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
10            Free Software License so that it is most useful with gdalwarp
11            and bmpdataset.
12    
13    2004-06-14  Bernhard Herzog  <[email protected]>
14    
15            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
16            import of wxPython.wx itself (as opposed to the contents of
17            wxPython.wx).  For some reason wxPython.wx is available as
18            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
19            wrt. wxPython 2.4.
20    
21    2004-06-10  Jan Sch�ngel  <[email protected]>
22    
23            Initial version of new extension "umn_mapserver".  This extension aims
24            to manage configuration for the UMN MapServer application.  This
25            inital version just imports the .map-files and displays all, Thuban is
26            capable of.
27    
28            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
29    
30            * Extensions/umn_mapserver/test/README: New. Describes how to run the
31            tests.
32    
33            * Extensions/umn_mapserver/test/test.map: New. This is a test
34            .map-file for automated tests of the umn_mapserver extension of
35            Thuban.
36    
37            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
38            UMN Mapserver classes.
39    
40            * Extensions/umn_mapserver/__init__.py: New. Init to make this
41            directory a package.
42    
43            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
44            '.map'-file objects.
45    
46            * Extensions/umn_mapserver/mf_import.py: New. This module extends
47            Thuban with the possibility to handle UMN MapServer mapfiles.
48    
49    2004-06-03  Bernhard Herzog  <[email protected]>
50    
51            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
52            to a tuple before using it as arguments to the % operator.  This
53            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
54            reported today on thuban-list by Jan Sch�ngel
55    
56            * test/test_layer.py (TestLayerModification.setUp): Save the
57            filename as an instance variable so we can refer to it in tests
58            (TestLayerModification.test_tree_info): Uncomment this method
59            again and make it work.  This tests for the formatting issue
60            filed in RT#2239 on 2004-01-13
61    
62    2004-05-28  Bernhard Herzog  <[email protected]>
63    
64            * Thuban/UI/baserenderer.py: Fix some typos.
65    
66    2004-05-18  Jan-Oliver Wagner <[email protected]>
67    
68            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
69            by increasing a field size.
70    
71    2004-05-17  Bernhard Herzog  <[email protected]>
72    
73            Update to newest shapelib and get rid of Thuban specific
74            extensions, i.e. use the new DBFUpdateHeader instead of our
75            DBFCommit kludge
76    
77            * libraries/shapelib/shpopen.c: Update to version from current
78            shapelib CVS.
79    
80            * libraries/shapelib/shapefil.h: Update to version from current
81            shapelib CVS.
82    
83            * libraries/shapelib/dbfopen.c: Update to version from current
84            shapelib CVS.
85            (DBFCommit): Effectively removed since shapelib itself has
86            DBFUpdateHeader now which is better for what DBFCommit wanted to
87            achieve.  
88            We're now using an unmodified version of dbfopen.
89    
90            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
91            value '1' to the Lib.dbflibc extension.  This simply reflects the
92            shapelib and pyshapelib updates
93    
94    2004-05-16  Jan-Oliver Wagner <[email protected]>
95    
96            Finished introduction of Menu.FindOrInsertMenu.
97    
98            * Extensions/drawshape/drawshape.py: Add the command
99            to the experimental menu additionally to the toolbar.
100    
101            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
102            finding menu on its own.
103    
104            * Doc/manual/thuban-manual.xml: updated sample file
105            to use FindOrInsertMenu().
106    
107            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
108            instead of finding menu on its own.
109    
110    2004-05-11  Jan-Oliver Wagner <[email protected]>
111    
112            * test/test_menu.py (MenuTest.test): Added testing
113            of method Menu.FindOrInsertMenu.
114    
115    2004-05-10  Jan-Oliver Wagner <[email protected]>
116    
117            Introduce and use Menu.FindOrInsertMenu.
118    
119            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
120              given menu or, if not found, insert it.
121    
122            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
123            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
124            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
125            menu on its own.
126    
127    2004-05-06  Jan-Oliver Wagner <[email protected]>
128    
129            Introduce a abstract ColorDialog class and remove
130            and outdated file.
131    
132            * Thuban/UI/proj4dialog.py: Removed. It is has been
133            replaced by projdialog for quite a while and is not used
134            anymore.
135    
136            * Thuban/UI/colordialog.py: New. Abstraction for color selection
137            dialog(s).
138    
139            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
140            Now calls the abstract ColorDialog instead of wxColourDialog.
141            This also removed the dependency to Color class conversion
142            from this function.
143    
144    2004-05-04  Frank Koormann  <[email protected]>
145    
146            * Extensions/bboxdump/__init__.py: Fixed string left over from
147            copying.
148    
149            * Extensions/bboxdump/bboxdump.py (bboxdump):
150            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
151            xrange(layer.NumShapes()). Compile the bboxmessage from a list
152            of formatted outputs (string.join) instead of appending to the
153            message. Two progress bar dialogs to report progress on the sometimes
154            lenghty processing.
155    
156    2004-04-22  Frank Koormann  <[email protected]>
157    
158            New Extension to dump bounding boxes of all shapes of the selected
159            layer. An optional column can be specified to group the objects,
160            in this case the bounding box is a union of the separate boxes.
161            Dump can be displayed in a ScrolledMessageDialog or written to file.
162            The Extension is simply a combination of available and well tested
163            Thuban functionality.
164    
165            * Extensions/bboxdump/__init__.py: New: Init to make this
166            directory a package.
167    
168            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
169            all shapes of the selected layer.
170    
171    2004-04-22  Jan-Oliver Wagner <[email protected]>
172    
173            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
174            strings to be i18n now.
175    
176    2004-04-18  Jan-Oliver Wagner <[email protected]>
177    
178            Changing popup menu of legend from direct building
179            to using the Menu construction as used for the mainwindow.
180    
181            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
182            layer_to_bottom, layer_visibility
183            (MainWindow.LayerToTop): New. Put current layer to the top.
184            (MainWindow.LayerToBottom): New. Put current layer to bottom.
185            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
186            Replace 1,0 by True, False.
187            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
188            current layer.
189            (MainWindow.LayerShowTable): Removed raising of dialog.
190            (_has_selected_layer_visible): New. Support function.
191    
192            * Thuban/UI/legend.py: ID_POP_xxx: removed.
193            (LegendPanel.__init__): Removed EVT_MENU bindings.
194            (LegendTree._OnRightClick): Replace direct creation of
195            menu via wx Classes by applying the menu definition
196            as of Menu class of menu.py.
197            
198    2004-04-16  Jan-Oliver Wagner <[email protected]>
199    
200            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
201        button string to stronger clearify that Thuban will be closed when hitting
202            the button.
203    
204            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
205            Now for layers without a ShapeStore a corresponding message is given
206            to the user, that this layer has no table to show.
207    
208    2004-04-15  Martin Schulze  <[email protected]>
209    
210            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
211            recalculate the format for the internal render engine as well.
212    
213            * Extensions/wms/properties.py (wmsProperties): First start for a
214            properties dialog.  It's functional for a first selection of
215            layers, but still has some weired wxWidgets/GTK problems but
216            beautification can be done later.
217    
218            * Extensions/wms/layer.py: Added more documentation
219            (WMSLayer.getFormats): New: Return list of supported image formats
220            by the WMS server
221            (WMSLayer.getLayers): New: Return the list of layer names
222            supported by the WMS server
223            (WMSLayer.getLayerTitle): New: Return the title of the named layer
224            (WMSLayer.getWMSFormat): New: Return the image format that is used
225            for WMS GetMap requests
226            (WMSLayer.setWMSFormat): New: Set the image format that is used
227            for WMS GetMap requests
228            (WMSLayer.__init__): Move away from using only one layer to using
229            a list of layers (unsorted at the moment, though).
230            (WMSLayer.getVisibleLayers): New: Return the list of names for all
231            visible layers
232            (WMSLayer.setVisibleLayers): New: Set the list of names for all
233            visible layers
234    
235            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
236            order to establish a clean structure.
237    
238            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
239            own in order to establish a clean structure.
240    
241    2004-04-13  Martin Schulze  <[email protected]>
242    
243            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
244            support for oldstyle (WMS 1.0 apparently) image format
245            specification.
246    
247            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
248            supported graphic formats back to JPEG and BMP, PNG and others are
249            too *cough* experimental...  Sorry, I meant to filter this out
250            before I committed this part.  This should make the WMS extension
251            run from CVS again.
252            (wms_dialog): Reset an empty URL to None so that the subsequent
253            program can depend on this, since the dialog will indeed return an
254            empty URL, causing another declaration of love by Python.
255    
256            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
257            Whenever a native BoundingBox request cannot be fulfilled, check
258            whether the requested SRS is EPSG:3426, in which case return the
259            LatLonBoundingBox values.
260    
261            * Extensions/wms/test/test_parser.py
262            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
263            ignoring AUTO:* SRS.
264            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
265            Added another test method to test whether the LatLonBoundingBox
266            values will be returned if BoundingBox values are requested with
267            SRS set to EPSG:3426.
268    
269            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
270            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
271            the moment by placing them into a variable which is currently
272            unused.  Also test whether the EPSG SRS is numerical as it should
273            be and add an error message if it is not.
274    
275            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
276            appear in the real world as well.  Since we cannot handle them yet
277            (OGCLib can't either), we will ignore them for the moment.
278    
279            * Extensions/wms/parser.py: Use a variable for denoting the sample
280            filename
281            (WMSCapabilitiesParser.peekLayers): Added support for error
282            messages during grok().  They will be aggregated in an array and
283            may be displayed later.  We may have to add a classification
284            "Warning" and "Error" to this.  That requires more experience,
285            though, since not every error may be lethal.
286    
287            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
288            ShowTable() dialog/frame when the user attempts to display it
289            while it has been opened before already and not closed again.
290    
291    2004-04-11  Martin Schulze  <[email protected]>
292    
293            * Extensions/wms/infodialog.py: Adjusted the class documentation
294    
295            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
296            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
297            wxWidgets variants.
298            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
299    
300            * Extensions/wms/infodialog.py: Added an information dialog that
301            will display various information about the WMS current resource,
302            so that additional information such as the title, the abstract,
303            fees and access constraints can be displayed for the user if they
304            are documented in the WMS XML.
305    
306    2004-04-10  Martin Schulze  <[email protected]>
307    
308            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
309            string handling.  It's "foo".lower() and not lower(foo) without
310            lower imported from strings or something.
311    
312            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
313            from capabilities.py and parser.py.  Implement priority list for
314            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
315            and GIF are supported here, but not yet by main Thuban.  Hence,
316            support for them may be removed later.  Special contribution to
317            usability: get wxWidgets to change the cursor when we're waiting
318            for data from the network so the user won't start to worry.  This
319            causes a redrawing error/warning, though.
320    
321            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
322            the DOM object.
323    
324    2004-04-01  Martin Schulze  <[email protected]>
325    
326            * Extensions/wms/capabilities.py: Adjusted documentation
327            (WMSCapabilities.__init__): Improved documentation, fixed syntax
328            (WMSCapabilities.saveCapabilities): Only catch IOError when
329            handling files
330            (WMSCapabilities.loadCapabilities): Only catch IOError when
331            handling files
332            __main__: corrected variable naming
333            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
334            class a specialisation of WMSCapabilitiesParser as well.  Also
335            execute grok() after loading or fetching capabilities, if that
336            went well, so that subsequent calls can already access the data.
337            (WMSCapabilities.getVersion): Export the used version of the
338            GetCapabilities request, so we can use it for subsequent calls,
339            i.e. for GetMap requests.
340            (WMSCapabilities.fetchCapabilities): Added proper error handling
341            when the GetCapabilities request failed, so that the surrounding
342            program can act accordingly.
343    
344    2004-03-30  Martin Schulze  <[email protected]>
345    
346            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
347            Adjusted the getLayerSRS method to return the list of SRSes
348            extracted from <SRS> elements instead of <BoundingBox> elements.
349            Added a bit of documentation as well.
350            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
351            since it was only implemented due to a misunderstanding.
352    
353            * Extensions/wms/test/test_parser.py
354            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
355            reflect the corrected interpretation of the standard: i.e. a layer
356            does not have to define a BoundingBox for all SRSes it supports.
357            Hence the <SRS></SRS> specification is authoritative, not the list
358            of BoundingBoxes.
359            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
360            to ensure None is returned for a non-existing SRS.
361            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
362            since it is not applicable anymore.  Listing more SRSes in <SRS>
363            elements is valid according to the specs.
364    
365    2004-03-26  Bernhard Reiter <[email protected]>
366    
367            * README: Nicer formatting of text. Improved descriptions.
368            Reflected wxWidgets name change.
369            
370            * Thuban/UI/about.py: Extended copyright to 2004 and added
371            information about the thuban-devel mailinglist.
372    
373    2004-03-24  Martin Schulze  <[email protected]>
374    
375            * Extensions/wms/capabilities.py: Renamed the class to contain
376            'WMS', also added a linebreak where required
377    
378            * Extensions/wms/parser.py: Finally added the XML parser for the
379            GetCapabilities response.
380    
381            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
382            <SRS> elements match the <BoundingBox> elements, except for the
383            layer 'beschriftung'.
384    
385            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
386            since Python uses unicode strings internally, otherwise
387            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
388            the SRS will be calculated anyway and this method is obsoleted by
389            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
390            Move loading the sample file into the setUp method.  Added a test
391            for finding the integrity problem in the sample response.
392            Improved formatting.
393    
394            * Extensions/wms/domutils.py: Added convenience routines for
395            handling of Document Object Model (DOM) nodes.
396    
397            * Extensions/wms/test/test_domutils.py: Added a test for the
398            domutils module
399    
400    2004-03-19  Martin Schulze  <[email protected]>
401    
402            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
403            Moved path detection and adding into a module of its own,
404            adjustpath, which exports thubandir as main Thuban directory.
405    
406            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
407            detection and adding into a module of its own, adjustpath, which
408            exports thubandir as main Thuban directory.  Reorganised the
409            module in order to support the SkipTest feature for Thuban test
410            cases.
411    
412            * Extensions/wms/test/adjustpath.py: Moved path detection and
413            adding into a module of its own.
414    
415    2004-03-18  Martin Schulze  <[email protected]>
416    
417            * Extensions/wms/test/test_parser.py: Added another test for
418            checking whether the WMS XML parser (to be implemented) returns
419            the information we expect.  This requires a sample WMS WML file
420            (sample.xml) which has been extracted from the frida server and
421            "improved" manually.
422    
423            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
424            main Thuban directory to the path in order to be able to import
425            random modules.  Adjusted the PyOGCLib detection to reuse the
426            information gathered.  Also added a note about the PYTHONPATH
427            environment variable.
428    
429            * Extensions/wms/test/test_ogclib.py: The format specification is
430            a mime-type, not a graphic format, hence image/jpeg wou ld be the
431            proper format and not JPEG.  We'll also have to take care of the
432            encoding of / as %2F.
433    
434    2004-03-16  Martin Schulze  <[email protected]>
435    
436            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
437            comprehensive test for the getMapURL method, built compare URLs
438            according to the documentation in OGC 01-068r3
439    
440            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
441            class WMSCapabilities to manage capabilites, will incorporate
442            parsing the capabilities response and provide details for other
443            classes.
444    
445    2004-03-12  Bernhard Herzog  <[email protected]>
446    
447            Support views in addition to normal tables in the postgis
448            shapestore
449    
450            * Thuban/Model/postgisdb.py
451            (PostGISShapeStore._fetch_table_information): Add a fallback for
452            the case where the table name is not in the geometry_columns
453            table.  This is usually the case for views.  Also, set
454            self.shapestore here.
455            (PostGISShapeStore.ShapeType): No need to query the database all
456            the time.  The shape type is now determined in
457            _fetch_table_information
458    
459            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
460            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
461            New parameter to specify views.
462            (PostGISDatabase.has_data): Also compare the views.  New views
463            parameter
464            (PostGISDatabase.initdb): Create the views.
465            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
466            view
467    
468            * test/test_postgis_db.py
469            (TestPostGISShapestorePointFromViews): New.  Test a
470            PostGISShapeStore with a view
471            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
472            the geometry_column explicitly to test whether that works
473    
474    2004-03-12  Bernhard Herzog  <[email protected]>
475    
476            Final step for explicit id/geometry columns: Loading and saving
477    
478            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
479            with the following changes:
480            (dbshapesource): Two new attributes id_column and geometry_column
481    
482            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
483            (SessionSaver.write_session): Use the new namespace
484            (SessionSaver.write_data_containers): Write the new dbshapesource
485            parameters
486    
487            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
488            the new file format version
489            (SessionLoader.start_dbshapesource): Handle the new db parameters
490    
491            * test/test_save.py: Update to the new dtd and namespace
492            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
493            mock object to provide a working IDColumn method.
494    
495            * test/test_load_1_0.py: New.  Copy of the test_load.py before
496            today's changes but with the round-trip tests removed.
497    
498            * test/test_load_0_9.py: Update doc-string.
499    
500            * test/test_load.py: Update all .thuban files to the new dtd and
501            namespace.
502            (TestPostGISLayer.file_contents): Add the new dbshapesource
503            paramters
504    
505    2004-03-11  Bernhard Herzog  <[email protected]>
506    
507            Next step for explicit id/geometry columns: User interaction
508    
509            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
510            the dialog is constructed. Add combo boxes to select id and
511            geometry column.  Rename some instance variables.
512            (ChooseDBTableDialog.GetTable): Return id and geometry column
513            names
514            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
515            selections in the table list
516    
517            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
518            and geometry_column
519    
520            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
521            parameters for id_column and geometry column of PostGISShapeStore
522            here as well.
523    
524            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
525            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
526            (PostGISConnection.GeometryTables): Use a better query to
527            determine which relations in the database might be usable for
528            shapestores.  Now supports views as well but is more PostgreSQL
529            specific
530            (PostGISConnection.table_columns): New. Somewhat experimental
531            method to let the db dialogs provide lists of columns to users so
532            that they can select id and geometry columns.
533            (PostGISTable.__init__): The default value of the id_column
534            parameter is now None it still means "gid" effectively, though.
535            (PostGISTable.IDColumn): New introspection method to return a
536            column object for the id column
537            (PostGISShapeStore.GeometryColumn): New introspection method to
538            return a column object for the geometry column
539    
540            * test/test_postgis_db.py
541            (TestPostGISConnection.test_gis_tables_non_empty):
542            Removed. Subsumed by the new:
543            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
544            New. Tes the GeometryTables and table_columns methods with actual
545            tables and views.
546            (PointTests.test_id_column, PointTests.test_geometry_column):
547            New. tests for the new methods.
548            (TestPostGISShapestorePoint.setUp)
549            (TestPostGISShapestorePointSRID.setUp)
550            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
551            instance variables needed by the new tests
552    
553    2004-03-11  Bernhard Herzog  <[email protected]>
554    
555            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
556            numbers given to ReadValue are ordinals.
557    
558    2004-03-11  Bernhard Herzog  <[email protected]>
559    
560            Elimiate the requirement for PostGIS tables to have a column
561            called "gid".
562    
563            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
564            id_column to specify which column to use to identify rows.  Also
565            new instance variables id_column and quoted_id_column
566            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
567            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
568            (PostGISTable.SimpleQuery): Use the id column name provided to the
569            constructor instead of "gid"
570            (PostGISShapeStore.__init__): New parameter id_column analogously
571            to PostGISTable.__init__.  This parameter is simply passed through
572            to the base class constructor
573            (PostGISShapeStore._create_col_from_description): Fix typo in
574            doc-string
575            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
576            (PostGISShapeStore.ShapesInRegion): Use the id column name
577            provided to the constructor instead of "gid"
578    
579            * test/postgissupport.py
580            (PostgreSQLServer.get_default_static_data_db): New static table
581            landmarks_point_id with an id column != "gid.  Update the comments
582            a bit.
583            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
584            doc-
585            (upload_shapefile): New parameter gid_column to use a name other
586            than "gid" for the column to store the shape ids
587    
588            * test/test_postgis_db.py (TableTests): New.  Mixin-class
589            containing all tests previously in TestPostGISTable.  The actual
590            tests are the same but the code is a bit more configurable to
591            allow for different id columns etc.
592            (TestPostGISTable): Derive from TableTests now for the actual
593            tests.
594            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
595            except that it the landmarks_point_id table to test the id_column
596            parameter
597            (PointTests): Extend the doc-string
598            (TestPostGISShapestorePointExplicitGIDColumn)
599            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
600            from PointTests to test the explicit id_column parameter.  One
601            tests with the name of the column holding the shape ids, the other
602            uses PostgreSQL's OID column.  For the latter a number of methods
603            have to be overwritten to make them independent of the actual id
604            values.
605    
606    2004-03-08  Silke Reimer  <[email protected]>
607    
608            Update debian directory:
609    
610            * debian/changelog: Added new version.
611            * deiban/rules: Updated management of patches (with cbds)
612            * debian/control: Added cbds to dependencies
613            * debian/patches/*: New. Adds better support for patches of thuban in
614                            debian
615            * debian/menu: Syntax of menu changed slightly
616            * debian/setup.py.patch: removed because it has been moved to
617                            debian/patechs/setup.py.patch
618            
619    
620    2004-02-26  Bernhard Herzog  <[email protected]>
621    
622            Create the Doc/technotes directory for text files with information
623            for developers
624    
625            * Doc/technotes/README: New. README for the technotes
626    
627            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
628            Thuban
629    
630            * Doc/technotes/release_process.txt: New. Used to be
631            HOWTO-Release.  Now slightly adapted to technote formatting style.
632    
633            * HOWTO-Release: Removed.  It's contents are now in
634            Doc/technotes/release_process.txt
635    
636    2004-02-25  Bernhard Herzog  <[email protected]>
637    
638            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
639            version of wxWindows the module was compiled with so we can check
640            that against the wxPython version.
641    
642            * Thuban/version.py (thuban_branch, thuban_release): New variables
643            controlling which and how Thuban versions are shown.  See the
644            comments for details.
645            (verify_versions): Also check that the wx version that wxproj is
646            compiled against matches that of the wxPython we use at runtime
647    
648    2004-02-20  Bernhard Herzog  <[email protected]>
649    
650            * Extensions/wms/wms.py (epsg_code_to_projection): Use
651            get_system_proj_file to read the epsg projections.  The old way
652            depended on the current directory being the top Thuban directory.
653    
654    2004-02-20  Bernhard Herzog  <[email protected]>
655    
656            * Extensions/svgexport/test/test_svgmapwriter.py
657            (TestVirtualDC.test_clippath): Remove a debug print
658    
659    2004-02-20  Bernhard Herzog  <[email protected]>
660    
661            * Extensions/svgexport/__init__.py: New.  Turn
662            Extensions/svgexport into a package.
663    
664            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
665            doc-string a bit.  The doc-string must come first, otherwise it's
666            not a doc-string.  The __future__ import must be the first thing
667            after the doc-string.  Use only double quotes in doc-strings.
668            Single quotes trip up emacs syntax highlighting if the text
669            contains apostrophes.
670    
671    2004-02-20  Bernhard Herzog  <[email protected]>
672    
673            * Extensions/svgexport/test/__init__.py,
674            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
675            suite for svgexport
676    
677            * test/runtests.py (find_test_modules): New. Function with the
678            module finding code from main.
679            (main): Use find_test_modules to figure out the default test
680            modules and take modules from Extensions.svgexport.test too.
681    
682    2004-02-19  Bernhard Herzog  <[email protected]>
683    
684            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
685            the mainwindow has a reference to the map of the initial session.
686            This fixes a bug introduced with the fix for RT#2245
687    
688  2004-02-19  Bernhard Herzog  <[email protected]>  2004-02-19  Bernhard Herzog  <[email protected]>
689    
690          * Extensions/svgexport/svgsaver.py,          * Extensions/svgexport/svgsaver.py,
# Line 4166  Line 4853 
4853          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4854          click on layer tree:          click on layer tree:
4855          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4856          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.
4857            We add a second ItemActivated event to the queue, which simply
4858          raises the already displayed window.          raises the already displayed window.
4859    
4860          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26