/[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 1516 by bh, Tue Jul 29 14:59:21 2003 UTC revision 1694 by bh, Mon Sep 1 11:23:41 2003 UTC
# Line 1  Line 1 
1    2003-09-01  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/postgisdb.py
4            (PostGISTable): Extend doc-string
5            (PostGISTable._fetch_table_information): Set the column index
6            correctly, pretending ignored columns don't exist.
7    
8            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
9            for postgis tables with data types not yet supported by thuban.
10    
11    2003-08-29  Bernhard Herzog  <[email protected]>
12    
13            * HOWTO-Release: Tweak item about running the tests.
14    
15    2003-08-29  Jan-Oliver Wagner <[email protected]>
16    
17            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
18    
19    2003-08-29  Bernhard Herzog  <[email protected]>
20    
21            Add some missing parameters to projections. Proj complains about
22            them on windows but for some reason not on Linux.
23    
24            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
25            missing required projection parameters
26    
27            * test/test_proj.py (TestProjFile.test): Add missing required
28            projection parameters
29    
30            * test/test_load_0_8.py (TestLayerProjection.file_contents)
31            (TestLayerProjection.test): Add missing required projection
32            parameters and tests for them
33    
34            * test/test_load.py (TestLayerProjection.file_contents)
35            (TestLayerProjection.test): Add missing required projection
36            parameters and tests for them
37    
38            * test/test_layer.py (TestLayer.test_base_layer): Add missing
39            required projection parameters
40    
41    2003-08-29  Bernhard Herzog  <[email protected]>
42    
43            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
44            access the pj_errno because directly accessing pj_errno doesn't
45            work on windows if the proj library is in a DLL
46    
47            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
48    
49    2003-08-28  Bernhard Herzog  <[email protected]>
50    
51            * test/test_proj.py: Import things from Thuban after calling
52            initthuban
53    
54            * test/test_load.py (LoadSessionTest.filenames): New class
55            variable with the filename attributes to normalize
56            (LoadSessionTest.check_format): Pass self.filenames to
57            sax_eventlist to normalize the filename attributes
58    
59            * test/xmlsupport.py: Add cvs keywords
60            (SaxEventLister.__init__): New parameter filenames which indicates
61            attributes that contain filenames
62            (SaxEventLister.startElementNS): Normalize the filename attributes
63            with os.path.normpath
64            (sax_eventlist): New parameter filenames to pass through to
65            SaxEventLister
66    
67            * test/test_derivedshapestore.py: Make this file callable as a
68            program to execute the tests
69            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
70            the session to self.session so that it gets destroyed properly
71    
72            * test/test_layer.py (TestLayer.tearDown): Call the session's
73            Destroy method
74    
75            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
76            too if it exists
77            (TestMapAddLayer.test_add_layer): Bind the session to self.session
78            so that it gets destroyed properly
79    
80            * test/postgissupport.py (reason_for_not_running_tests): Add a
81            test for the existence of popen2.Popen4.
82    
83            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
84            reliable way to destroy the sessions created in the test cases
85            (SaveSessionTest.test_dbf_table): Bind the session to self.session
86            so that it gets destroyed properly
87            (SaveSessionTest.testLayerProjection): Bind the session to
88            self.session so that it gets destroyed properly
89    
90            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
91            sure that the session is destroyed properly
92    
93            * test/test_shapefilestore.py: Make this callable as a program to
94            execute the tests
95    
96            * test/test_scalebar.py: Remove unnecessary import of _ from
97            Thuban
98    
99            * test/support.py (print_garbage_information): Call initthuban
100            here because it may be called indirectly from test cases that test
101            test support modules which do not use anything from thuban itself
102            (ThubanTestProgram.runTests): Remove unnecessary debug print
103    
104    2003-08-28  Bernhard Herzog  <[email protected]>
105    
106            * Thuban/version.py (longversion): Update to 0.9
107    
108            * Thuban/UI/mainwindow.py: Remove some unused imports
109    
110            * README: Add section about required additional software. Add date
111            and revision CVS keywords
112    
113            * HOWTO-Release: Add item about the translations. Add date and
114            revision CVs keywords and change formatting to match README a bit
115            better
116    
117            * po/de.po: Update for 0.9
118    
119            * test/README: Tweak the wording a little because many tests are
120            not really unittest.
121    
122    2003-08-27  Bernhard Herzog  <[email protected]>
123    
124            As preparation for the 0.9 release, switch thuban files to a
125            non-dev namespace
126    
127            * Thuban/Model/save.py (SessionSaver.write_session): Write files
128            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
129            namespace
130    
131            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
132            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
133    
134            * test/test_save.py (SaveSessionTest.dtd)
135            (SaveSessionTest.testEmptySession)
136            (SaveSessionTest.testSingleLayer)
137            (SaveSessionTest.testLayerProjection)
138            (SaveSessionTest.testRasterLayer)
139            (SaveSessionTest.testClassifiedLayer)
140            (SaveSessionTest.test_dbf_table)
141            (SaveSessionTest.test_joined_table)
142            (SaveSessionTest.test_save_postgis): Update for new namespace
143    
144            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
145            (TestLayerVisibility.file_contents, TestLabels.file_contents)
146            (TestLayerProjection.file_contents)
147            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
148            (TestPostGISLayer.file_contents)
149            (TestPostGISLayerPassword.file_contents)
150            (TestLoadError.file_contents, TestLoadError.test): Update for new
151            namespace
152    
153    2003-08-27  Bernhard Herzog  <[email protected]>
154    
155            Make the table interface distinguish between row ids (an integer
156            that uniquely identifies a row) and row ordinals (a simple row
157            count from 0 to NumRows() - 1)
158    
159            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
160            (PostGISTable.RowOrdinalToId): New methods to conver between row
161            ids and row ordinals
162            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
163            parameter row_is_ordinal to indicate whether the row parameter is
164            the row id or the ordinal
165    
166            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
167            (TransientTableBase.RowOrdinalToId)
168            (AutoTransientTable.RowIdToOrdinal)
169            (AutoTransientTable.RowOrdinalToId): Same new methods as in
170            PostGISTable.
171            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
172            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
173            Same new parameter as in PostGISTable.
174    
175            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
176            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
177            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
178            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
179            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
180            parameter as in PostGISTable.
181    
182            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
183            (DataTable.RowOrdinalToId): New methods to convert between row ids
184            and row ordinals.
185            (TableGrid.SelectRowById): New method to select a row based on its
186            ID as opposed to its ordinal
187            (DataTable.GetValue, TableGrid.OnRangeSelect)
188            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
189            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
190            (LayerTableFrame.__init__): Convert between row ids and row
191            ordinals as appropriate
192    
193            * test/postgissupport.py (PostGISDatabase.__init__): Add
194            doc-string.
195            (PostGISDatabase.initdb): The optional third item in a tuple in
196            tables is now a (key, value) list with additional arguments to
197            pass to upload_shapefile
198            (upload_shapefile): New parameter gid_offset to allow gids that
199            are not the same as the shapeids in the shapefile
200            (PostgreSQLServer.get_default_static_data_db): Use the new
201            gid_offset to make the gids in landmarks 1000 higher than the
202            shapeids in the shapefile
203    
204            * test/test_viewport.py
205            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
206            new shapeids in the landmarks table
207    
208            * test/test_transientdb.py
209            (TestTransientTable.run_iceland_political_tests)
210            (TestTransientTable.test_transient_joined_table): Add tests for
211            the new table methods and new keywords arguments.
212    
213            * test/test_postgis_db.py
214            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
215            (TestPostGISTable.test_read_value_row_count_mode)
216            (TestPostGISTable.test_row_id_to_ordinal)
217            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
218            table methods and the new arguments
219            (TestPostGISShapestorePoint.test_shapes_in_region)
220            (TestPostGISShapestorePoint.test_shape_raw_data)
221            (TestPostGISShapestorePoint.test_shape_points)
222            (TestPostGISShapestorePoint.test_shape_shapeid)
223            (TestPostGISShapestorePoint.test_all_shapes)
224            (TestPostGISTable.test_simple_query)
225            (TestPostGISTable.test_simple_query)
226            (TestPostGISTable.test_simple_query)
227            (TestPostGISTable.test_read_value)
228            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
229            shapeids in the landmarks table
230    
231            * test/test_memory_table.py
232            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
233            (TestMemoryTable.test_read_value_row_count_mode)
234            (TestMemoryTable.test_row_id_to_ordinal)
235            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
236            table methods and the new arguments
237    
238            * test/test_dbf_table.py
239            (TestDBFTable.test_read_row_as_dict_row_count_mode)
240            (TestDBFTable.test_read_value_row_count_mode)
241            (TestDBFTable.test_row_id_to_ordinal)
242            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
243            methods and the new arguments
244    
245    2003-08-26  Bernhard Herzog  <[email protected]>
246    
247            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
248            more postgis specific but much faster method to get the bounding
249            box
250    
251    2003-08-26  Bernhard Herzog  <[email protected]>
252    
253            * Thuban/Model/postgisdb.py (PostGISTable.Title)
254            (PostGISShapeStore.AllShapes): Add these missing methods.
255            (PostGISShapeStore.ShapesInRegion): No need to raise
256            StopIteration. We can simply return
257    
258            * test/test_postgis_db.py (TestPostGISTable.test_title)
259            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
260            new methods
261    
262    2003-08-25  Bernhard Herzog  <[email protected]>
263    
264            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
265    
266            * test/test_postgis_db.py (PolygonTests): New class containing
267            those tests from TestPostGISShapestorePolygon that can also be
268            used to test MUTLIPOLYGON tables
269            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
270            so derive from that
271            (TestPostGISShapestoreMultiPolygon): New class with tests for
272            MUTLIPOLYGON tables
273    
274            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
275            tables argument to have tuples with three items to override the
276            WKT type used.
277            (PostgreSQLServer.get_default_static_data_db): Use the above to
278            create a polygon table with MUTLIPOLYGONs
279            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
280            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
281            coords_to*
282            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
283            (wkt_converter): New. Map WKT types to converters
284            (upload_shapefile): New parameter force_wkt_type to use a
285            different WKT type than the default
286    
287    2003-08-25  Bernhard Herzog  <[email protected]>
288    
289            * Thuban/UI/application.py
290            (ThubanApplication.run_db_param_dialog): New. Suitable as a
291            db_connection_callback. Main difference is that the dialog run
292            from this method doesn't have a parent so it can be used even when
293            there is no main window
294            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
295            no db_connection_callback was given. This way the dialog pops up
296            even when the .thuban file was given as a command line parameter.
297    
298    2003-08-25  Bernhard Herzog  <[email protected]>
299    
300            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
301            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
302            which leads to an effectively frozen X session because the user
303            can only interact with the dialog but the mouse is still grabbed
304            by the canvas.
305            Also, call the tool's Hide method before MouseLeftUp because
306            MouseLeftUp may change the tool's coordinates.
307    
308    2003-08-25  Bernhard Herzog  <[email protected]>
309    
310            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
311            LoadCancelled exceptions and handle them by returning immediately.
312    
313    2003-08-25  Bernhard Herzog  <[email protected]>
314    
315            GUI part of loading sessions with postgis connections which may
316            require user interaction to get passwords or updated parameters
317    
318            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
319            bit nucer and be more generic.
320            (DBFrame.OnAdd): Adapt to new DBDialog interface
321    
322            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
323            optional parameter db_connection_callback which is passed to
324            load_session.
325    
326            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
327            Suitable as a db_connection_callback
328            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
329            db_connection_callback of the application's OpenSession method
330    
331    
332    2003-08-25  Bernhard Herzog  <[email protected]>
333    
334            Basic loading of sessions containing postgis connections:
335    
336            * Thuban/Model/load.py (LoadError): Add doc-string
337            (LoadCancelled): New exception class to indicate a cancelled load
338            (SessionLoader.__init__): Add the db_connection_callback parameter
339            which will be used by the loader to get updated parameters and a
340            password for a database connection
341            (SessionLoader.__init__): Add the new XML elements to the
342            dispatchers dictionary
343            (SessionLoader.check_attrs): Two new conversions, ascii to convert
344            to a byte-string object and idref as a generic id reference
345            (SessionLoader.start_dbconnection)
346            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
347            elements
348            (load_session): Add the db_connection_callback to pass through the
349            SessionLoader
350    
351            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
352            New classes to test loading of sessions with postgis database
353            connections.
354    
355    2003-08-25  Bernhard Herzog  <[email protected]>
356    
357            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
358            replace it and the comment with __BuildDate__ by the Source: and
359            Id: cvs keywords as used in the other files.
360    
361    2003-08-25  Bernhard Herzog  <[email protected]>
362    
363            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
364            LoadError when a required attribute is missing. The code used to
365            be commented out for some reason, but probably should have been
366            active.
367    
368            * test/test_load.py (TestLoadError.test): Test the message in the
369            LoadError too to make sure it really is about the missing
370            attribute
371    
372    2003-08-22  Bernhard Herzog  <[email protected]>
373    
374            * test/test_save.py (SaveSessionTest.test_dbf_table)
375            (SaveSessionTest.test_joined_table): Add XML validation tests.
376    
377    2003-08-22  Bernhard Herzog  <[email protected]>
378    
379            Implement saving a session with a postgis connection
380    
381            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
382            elements for database connections and shapestores using db
383            connections
384            (session): Add the dbconnections to the content model
385    
386            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
387            Write the db connections
388            (SessionSaver.write_session): Call write_db_connections to write
389            the connection before the data sources
390            (SessionSaver.write_data_containers): Handle postgis shapestores
391    
392            * test/test_save.py (SaveSessionTest.thubanids)
393            (SaveSessionTest.thubanidrefs): Update for new DTD
394            (SaveSessionTest.test_save_postgis): New. Test saving a session
395            with postgis connections
396    
397            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
398            (PostGISTable.TableName): New accessor methods for the connection
399            and table name
400    
401            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
402            (TestPostGISTable.test_dbname): New methods to test the new
403            PostGISConnection methods
404    
405    2003-08-22  Bernhard Herzog  <[email protected]>
406    
407            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
408            for exceptions occurring when establishing a Database connection
409            (PostGISConnection.connect): Catch psycopg.OperationalError during
410            connects and raise ConnectionError.
411    
412            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
413            tests for database exceptions
414    
415    2003-08-22  Bernhard Herzog  <[email protected]>
416    
417            Prepare the test suite for tests with required authentication
418    
419            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
420            variables with two predefined users/passwords, one for the admin
421            and one for a non-privileged user.
422            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
423            the non-privileged user to the database and set the admin password
424            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
425            Better error reporting
426            (PostgreSQLServer.connection_params)
427            (PostgreSQLServer.connection_string): New methods to return
428            information about how to connect to the server
429            (PostgreSQLServer.execute_sql): New. Convenience method to execute
430            SQL statements
431            (PostgreSQLServer.require_authentication): Toggle whether the
432            server requires authentication
433            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
434            Add or alter users
435            (PostGISDatabase.initdb): Pass the admin name one the
436            subprocesses' command lines. Grant select rights on
437            geometry_columns to everybody.
438            (upload_shapefile): Use the admin name and password when
439            connecting. Grant select rights on the new table to everybody.
440    
441            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
442            server's new methods to get the connection parameters.
443    
444            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
445            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
446            server's new methods to get the connection parameters.
447    
448            * test/test_postgis_db.py
449            (TestPostGISConnection.test_gis_tables_empty)
450            (TestPostGISConnection.test_gis_tables_non_empty)
451            (PostGISStaticTests.setUp): Use the server's new methods to get
452            the connection parameters.
453    
454    2003-08-22  Bernhard Herzog  <[email protected]>
455    
456            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
457    
458            * Thuban/version.py: Add psycopg version
459    
460            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
461            version of the psycopg module
462    
463    2003-08-22  Bernhard Herzog  <[email protected]>
464    
465            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
466            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
467            at the moment. The functionality should probably be implemented
468            some time, though.
469            (DBFrame.OnRemove): Display a message if the connection can't be
470            removed because it's still in use.
471    
472    2003-08-22  Jan-Oliver Wagner <[email protected]>
473    
474            * Thuban/UI/about.py (About.__init__): split up the huge about
475            text into elements/lists for easier translation. This fixes bug
476            https://intevation.de/rt/webrt?serial_num=2058
477            Also, made some forgotten string available for the i18n.
478    
479    2003-08-21  Bernhard Herzog  <[email protected]>
480    
481            Make postgis support really optional including insensitive menu
482            items.
483    
484            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
485            whether the postgis is supported.
486    
487            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
488            to make postgis support optional
489    
490            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
491            version of Thuban.Model.postgisdb.has_postgis_support
492            (database_management command): Make it only sensitive if postgis
493            is supported.
494    
495    2003-08-21  Jan-Oliver Wagner <[email protected]>
496    
497            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
498            (section Adding and Removing Layers): Added text and described
499            multi-selection.
500            (chapter Extensions): New.
501    
502    2003-08-21  Jan-Oliver Wagner <[email protected]>
503    
504            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
505            settings to allow multiple files to load into the map.
506            Also reduced selection to *.shp as a default.
507    
508    2003-08-20  Bernhard Herzog  <[email protected]>
509    
510            Add dialogs and commands to open database connections and add
511            database layers.
512    
513            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
514            method to open the database connection management dialog
515            (MainWindow.AddDBLayer): New method to add a layer from a database
516            (_has_dbconnections): New helper function to use for sensitivity
517            (database_management command, layer_add_db command): New commands
518            that call the above new methods.
519            (main_menu): Add the new commands to the menu.
520    
521            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
522            (PostGISConnection.connect): Establish the actual connection in a
523            separate method and call it in __init__. This makes it easier to
524            override the behavior in test cases
525            (PostGISConnection.BriefDescription): New method to return a brief
526            description for use in dialogs.
527    
528            * test/test_postgis_db.py (NonConnection): DB connection that
529            doesn't actually connect
530            (TestBriefDescription): New class with tests for the new
531            BriefDescription method
532    
533    2003-08-19  Jan-Oliver Wagner <[email protected]>
534    
535            Moved anything from extensions to libraries.
536    
537            * libraries: New.
538    
539            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
540    
541            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
542            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
543            been moved here from thuban/extensions/pyprojection/
544            See there in the Attic for the older history.
545    
546            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
547            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
548            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
549            have been moved here from thuban/extensions/pyshapelib/
550            See there in the Attic for the older history.
551    
552            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
553            files have been moved here from thuban/extensions/shapelib/
554            See there in the Attic for the older history.
555    
556            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
557            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
558            thuban/extensions/thuban/
559            See there in the Attic for the older history.
560    
561            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
562    
563            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
564            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
565    
566            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
567            Moved to libraries/shapelib.
568    
569            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
570            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
571            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
572            Moved to libraries/pyshapelib.
573    
574            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
575            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
576            Moved to libraries/pyprojection.
577    
578            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
579    
580            * extensions: Removed.
581    
582    2003-08-19  Bernhard Herzog  <[email protected]>
583    
584            * test/test_viewport.py (ViewPortTest): We don't use the
585            facilities of FileTestMixin so don't derive from it.
586            (TestViewportWithPostGIS): New class with tests for using a
587            viewport on a map with postgis layers.
588    
589    2003-08-19  Bernhard Herzog  <[email protected]>
590    
591            Add the db connection management to the session.
592    
593            * Thuban/Model/session.py (Session.__init__): New instance
594            variable db_connections
595            (Session.AddDBConnection, Session.DBConnections)
596            (Session.HasDBConnections, Session.CanRemoveDBConnection)
597            (Session.RemoveDBConnection): New methods to manage and query the
598            db connections managed by the session
599            (Session.OpenDBShapeStore): New method to open a shapestore from a
600            db connection
601    
602            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
603            messages for the db connection handling in the session
604    
605            * test/test_postgis_session.py: New. test cases for the session's
606            db connection handling with postgis connections
607    
608    2003-08-19  Bernhard Herzog  <[email protected]>
609    
610            Add very basic postgis database support and the corresponding test
611            cases. The test cases require a PostgreSQL + postgis installation
612            but no existing database. The database will be created
613            automatically by the test cases
614    
615            * test/README: Add note about skipped tests and the requirements
616            of the postgis tests.
617    
618            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
619    
620            * test/test_postgis_db.py: New. Test cases for the postgis
621            support.
622    
623            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
624            format
625    
626            * test/test_wellknowntext.py: New. Test cases for the
627            wellknowntext parser
628    
629            * test/postgissupport.py: New. Support module for tests involving
630            a postgis database.
631    
632            * test/support.py (execute_as_testsuite): Shut down the postmaster
633            if it's still running after the tests
634    
635            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
636            well known text format
637    
638    2003-08-19  Jan-Oliver Wagner <[email protected]>
639    
640            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
641            message dialog.
642    
643    2003-08-18  Bernhard Herzog  <[email protected]>
644    
645            * test/support.py (ThubanTestResult.printErrors): Indent the
646            reason for the skips in the output to make it a bit more readable.
647            (execute_as_testsuite): New helper function to run a test suite
648            and print some more information.
649            (run_tests): Use execute_as_testsuite to run the tests
650    
651            * test/runtests.py (main): Use execute_as_testsuite to run the
652            tests
653    
654    2003-08-18  Bernhard Herzog  <[email protected]>
655    
656            Fix some bugs in Thuban and the test suite that were uncovered by
657            changes introduced in Python 2.3:
658    
659            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
660            filename is an absolute name
661    
662            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
663            filename is an absolute name
664    
665            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
666            unique filename to save to and use the correct relative filename
667            in the expected output.
668            (SaveSessionTest.test_dbf_table): Use the correct relative
669            filename in the expected output.
670    
671            * test/test_layer.py (TestLayer.test_raster_layer): Update the
672            test to check whether the filename is absolute.
673    
674    2003-08-18  Jan-Oliver Wagner <[email protected]>
675    
676            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
677    
678    2003-08-15  Bernhard Herzog  <[email protected]>
679    
680            Change the way shapes are returned by a shape store. The
681            ShapesInRegion method returns an iterator over actual shape
682            objects instead of a list of shape ids.
683    
684            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
685            id.
686            (ShapefileStore.ShapesInRegion): Return an iterator over the
687            shapes which yields shape objects instead of returning a list of
688            shape ids
689            (ShapefileStore.AllShapes): New. Return an iterator over all
690            shapes in the shape store
691            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
692    
693            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
694            doc-string.
695    
696            * Thuban/UI/baserenderer.py
697            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
698            layer_shapes and make it return an iterator containg shapes
699            instead of a list of ids.
700            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
701            layer_shapes() change
702    
703            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
704            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
705    
706            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
707            changes in the ShapesInRegion return value.
708            (ViewPort._get_hit_tester): Remove commented out code
709    
710            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
711            new return value.
712            (SimpleShapeStore.AllShapes): New. Implement this method too.
713    
714            * test/test_layer.py (TestLayer.test_arc_layer)
715            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
716            (TestLayer.test_point_layer_with_projection)
717            (TestLayer.test_derived_store): Adapt to changes in the
718            ShapesInRegion return value.
719    
720            * test/test_shapefilestore.py
721            (TestShapefileStoreArc.test_shapes_in_region)
722            (TestShapefileStorePolygon.test_shapes_in_region)
723            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
724            in the ShapesInRegion return value.
725            (TestShapefileStorePoint.test_all_shapes)
726            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
727            methods
728    
729            * test/test_derivedshapestore.py
730            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
731            the ShapesInRegion return value.
732            (TestDerivedShapeStore.test_all_shapes)
733            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
734            methods
735    
736    2003-08-15  Bernhard Herzog  <[email protected]>
737    
738            Make the renderers deal correctly with raw vs. python level
739            representation of shape geometries
740    
741            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
742            Return a flag useraw in addition to the callable and the parameter
743            to indicate whether the callable can deal with the raw shape data
744            or uses the higher level python lists of coordinates. The callable
745            now should accept either the raw data or the return value of the
746            shape's Points() method.
747            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
748            change
749            (BaseRenderer.projected_points): Instead of the shape id use the
750            points list as parameter.
751            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
752            (BaseRenderer.draw_point_shape): Adapt to projected_points()
753            change and accept the points list as parameter instead of the
754            shape id.
755    
756            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
757            the useraw flag as required by the BaseRenderer
758            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
759            changes.
760    
761            * test/test_baserenderer.py
762            (TestBaseRenderer.test_point_with_classification): New test for
763            rendering a map with classifications.
764    
765    2003-08-15  Bernhard Herzog  <[email protected]>
766    
767            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
768            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
769            (ViewPort._get_hit_tester, ViewPort.projected_points)
770            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
771            (ViewPort._find_label_at): Split the find_shape_at method into
772            several new methods and use the functions in the hit-test module.
773    
774            * Thuban/UI/hittest.py: New module with Python-level hit-testing
775            functions
776    
777            * test/test_hittest.py: New. Test for the new hittest module
778    
779    2003-08-15  Bernhard Herzog  <[email protected]>
780    
781            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
782            projection to all corners of the bounding box to get a better
783            approximation of the projected bounding box
784    
785            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
786            New. Test coordinate handling of a layer with a projection.
787            Catches the bug fixed in Layer.ShapesInRegion
788    
789    2003-08-15  Bernhard Herzog  <[email protected]>
790    
791            Move some of the mock objects in test_baserenderer into their own
792            module so they can easily be used from other tests
793    
794            * test/mockgeo.py: New test helper module with some mock objects
795            for geometry related things like shapes, shapestores and
796            projections.
797    
798            * test/test_mockgeo.py: New. Tests for the new helper module
799    
800            * test/test_baserenderer.py: Some of the mock-objects are in
801            mockgeo now.
802    
803    2003-08-12  Jan-Oliver Wagner <[email protected]>
804    
805            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
806    
807    2003-08-12  Bernhard Herzog  <[email protected]>
808    
809            * po/de.po: New. German translations by Bjoern Broscheit
810    
811    2003-08-12  Bernhard Herzog  <[email protected]>
812    
813            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
814            strings have to be one string literal.
815    
816    2003-08-11  Bernhard Herzog  <[email protected]>
817    
818            * test/support.py (FloatComparisonMixin.assertPointListEquals):
819            New. This method was used in various derived classes, but it's
820            better to have it here.
821    
822            * test/test_shapefilestore.py
823            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
824            FloatComparisonMixin
825    
826            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
827            It's now in FloatComparisonMixin
828    
829            * test/test_derivedshapestore.py
830            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
831            in FloatComparisonMixin
832    
833    2003-08-11  Bernhard Herzog  <[email protected]>
834    
835            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
836            error message
837    
838    2003-08-08  Jan-Oliver Wagner <[email protected]>
839    
840            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
841            with version number.
842            Changed title to reflect version number of Thuban.
843    
844    2003-08-08  Jan-Oliver Wagner <[email protected]>
845    
846            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
847            the list corresponds to the "About" web page.
848    
849    2003-08-08  Bernhard Herzog  <[email protected]>
850    
851            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
852            Make sure translated strings are recognized as one string literal.
853    
854            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
855            Make sure translated strings are recognized as one string literal.
856    
857            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
858            translated strings are recognized as one string literal.
859    
860            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
861            sure translated strings are recognized as one string literal.
862    
863    2003-08-07  Bernhard Herzog  <[email protected]>
864    
865            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
866            Simply delegates to the original shapestore.
867    
868            * test/test_derivedshapestore.py
869            (TestDerivedShapeStore.test_raw_format): New. Test case for
870            DerivedShapeStore.RawShapeFormat
871    
872    2003-08-07  Bernhard Herzog  <[email protected]>
873    
874            Add raw data interface to shape objects.
875    
876            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
877            class to ShapefileShape which now holds shapefile specific
878            information.
879            (ShapefileShape.compute_bbox): Simplified to not cache any
880            information. The way this method is used that shouldn't matter
881            performance wise.
882            (ShapefileShape.RawData): New. Return the shapeid which is the raw
883            data format for shapes from shapefiles.
884            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
885            in the shape objects returned by a shapestore. For a
886            ShapefileStore this is always RAW_SHAPEFILE.
887            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
888            method.
889    
890            * test/test_shapefilestore.py
891            (TestShapefileStore.test_raw_format): New test to test the raw
892            format feature of shapes.
893    
894            * Thuban/Model/layer.py: Remove the unused import of Shape from
895            data. It was only there for interface compatibility but it's not
896            used inside of Thuban and the generic Shape class has gone away.
897    
898            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
899            the raw data format and only use an optimized version of its a
900            shapefile.
901    
902    2003-08-07  Bernhard Herzog  <[email protected]>
903    
904            * test/test_baserenderer.py (SimpleShape): Shape class for the
905            tests.
906            (SimpleShapeStore.Shape): Use SimpleShape instead of
907            Thuban.Model.data.Shape to make the tests independed of the coming
908            changes.
909    
910    2003-08-07  Bernhard Herzog  <[email protected]>
911    
912            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
913            (ThubanTestProgram): New classes that extend the respective
914            classes from unittest. These new version support skipping tests
915            under certain expected conditions. In the Thuban test suite we
916            uses this for tests that require the optional gdal support.
917            (run_tests): Use ThubanTestProgram instead of the unittest.main()
918    
919            * test/runtests.py (main): Use the new ThubanTestRunner instead of
920            the normal one from unittest
921    
922            * test/test_layer.py (TestLayer.test_raster_layer): If this test
923            is not run because gdal support isn't available report this to the
924            runner.
925    
926            * test/test_baserenderer.py
927            (TestBaseRenderer.test_raster_no_projection): Do not run this test
928            if gdal support isn't available and report this to the runner.
929    
930    2003-08-06  Bernhard Herzog  <[email protected]>
931    
932            Rearrange the renderers a bit, partly in preparation for changes
933            required for the postgis merge, partly to make it more testable.
934            Also make the representation of coordinates in Shapes more
935            consistent.
936    
937            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
938            this class is now in BaseRenderer. This class is now practically
939            only a specialization of BaseRenderer for rendering to an actual
940            wx DC.
941            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
942            to get the shapetype specific rendering functions.
943    
944            * Thuban/UI/baserenderer.py: New file with the basic rendering
945            logic. The code in this file is completely independend of wx.
946            (BaseRenderer): Class with the basic rendering logic
947    
948            * test/test_baserenderer.py: New. Test cases for BaseRenderer
949    
950            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
951            error_on_redraw to guard agains endless loops and stack overflows
952            when there's a bug in the rendering code that raises exceptions.
953            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
954            rendering into a separate method _do_redraw so that error handling
955            is a bit easier. When an exception occurs, set error_on_redraw to
956            true. When it's true on entry to OnIdle do nothing and return
957            immediately.
958    
959            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
960            Shape object will always have the coordinates as a list of list of
961            coordinate pairs (tuples).
962            (Shape.compute_bbox): Adapt to new representation.
963    
964            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
965            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
966            Shape objects.
967    
968            * test/test_shapefilestore.py
969            (ShapefileStoreTests.assertFloatTuplesEqual)
970            (ShapefileStoreTests.assertPointListEquals): Rename to
971            assertPointListEquals and change purpose to checking equality of
972            the lists returned by Shape.Points().
973            (TestShapefileStoreArc.test_shape)
974            (TestShapefileStorePolygon.test_shape)
975            (TestShapefileStorePoint.test_shape): Use the new
976            assertPointListEquals instead of assertFloatTuplesEqual
977    
978            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
979            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
980            and change purpose to checking equality of the lists returned by
981            Shape.Points().
982            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
983            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
984            (TestLayer.test_derived_store): Use the new assertPointListEquals
985            instead of assertFloatTuplesEqual
986    
987            * test/test_derivedshapestore.py
988            (TestDerivedShapeStore.assertFloatTuplesEqual)
989            (TestDerivedShapeStore.assertPointListEquals): Rename to
990            assertPointListEquals and change purpose to checking equality of
991            the lists returned by Shape.Points().
992            (TestDerivedShapeStore.test_shape): Use the new
993            assertPointListEquals instead of assertFloatTuplesEqual
994    
995    2003-08-06  Jan-Oliver Wagner <[email protected]>
996    
997            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
998            a bounding box. A dialog is raised in case, no bounding box
999            is found. This fixes bug #2043:
1000            https://intevation.de/rt/webrt?serial_num=2043
1001    
1002    2003-08-05  Bernhard Herzog  <[email protected]>
1003    
1004            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
1005            object look like a Color instantiation. Formerly it looked like a
1006            tuple.
1007    
1008            * test/test_color.py (TestColor.test_repr)
1009            (TestColor.test_equality, TestColor.test_inequality): New. test
1010            some more apects of the Color class
1011            (TestTransparent.test_repr, TestTransparent.test_hex)
1012            (TestTransparent.test_equality): New. Test cases for the
1013            Transparent object.
1014    
1015    2003-08-04  Jan-Oliver Wagner <[email protected]>
1016    
1017            * Doc/manual/thuban-manual.xml: a number of small improvements.
1018            The resulting file is the version submitted for GREAT-ER II.
1019    
1020    2003-08-01  Bernhard Herzog  <[email protected]>
1021    
1022            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
1023            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
1024            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
1025    
1026            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
1027            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
1028            (ThubanEndBusyCursor): Add doc-strings
1029    
1030    2003-08-01  Bernhard Herzog  <[email protected]>
1031    
1032            First step towards PostGIS integration. More abstraction by movin
1033            more code from the layer to the shapestore. More methods of the
1034            layer are now simply delegated to the equivalent method of the
1035            shapestore. The SHAPETYPE_* constants are now in data not in
1036            layer.
1037    
1038            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
1039            (SHAPETYPE_POINT, Shape): Move these constants and classes from
1040            layer.py to data.py
1041            (ShapefileStore.__init__): More Initialization for the new methods
1042            and functionality.
1043            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
1044            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
1045            (ShapefileStore.Shape): New methods that were formerly implemented
1046            in the layer.
1047            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
1048            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
1049            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
1050            equivalents of the new shape methods. These versions are simply
1051            delegated to the original shapstore.
1052    
1053            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
1054            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
1055            (Layer.SetShapeStore): Removed the initializatin of instance
1056            variables that were needed for the stuff that's now in
1057            ShapefileStore
1058            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
1059            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
1060            shapestore.
1061    
1062            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
1063            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
1064            instead of layer.
1065    
1066            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
1067    
1068            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
1069    
1070            * test/test_layer.py: Import the SHAPETYPE_* constants from data
1071            instead of layer.
1072            (TestLayer.test_derived_store): Remove the test for the exception
1073            when instantiating the DerivedShapeStore with an incompatible
1074            table which is now in test_derivedshapestore.py. Add some more
1075            tests of the layer methods to determine whether they work for a
1076            DerivedShapeStore as well.
1077    
1078    2003-07-31  Jonathan Coles   <[email protected]>
1079    
1080            * Doc/manual/thuban-manual.xml: Fix the list of required packages
1081            by just listing the name and where they can be found.
1082    
1083    2003-07-31  Frank Koormann   <[email protected]>
1084    
1085            * Doc/manual/thuban-manual.xml:
1086            Changed the screenshot elements to figure.
1087            Changed some variablelist elements to itemizedlist.
1088            Added section on GDAL formats.
1089    
1090    2003-07-31  Jonathan Coles   <[email protected]>
1091    
1092            * Doc/manual/thuban-manual.xml: Added a few sentences about
1093            the Fix Border Color option when generating classes.
1094    
1095    2003-07-30  Jonathan Coles   <[email protected]>
1096    
1097            * Thuban/Model/classgen.py: Add docstrings. Rename specific
1098            Ramp instances to use lower_case_style.
1099    
1100            * Thuban/UI/classgen.py: Use renamed Ramp instances.
1101            
1102            * Thuban/UI/classifier.py: Add docstrings.
1103    
1104            * Thuban/UI/dock.py: Add docstrings.
1105    
1106            * test/test_classgen.py: Use renamed Ramp instances.
1107    
1108    2003-07-30  Bernhard Herzog  <[email protected]>
1109    
1110            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
1111            was never used in Thuban.
1112    
1113    2003-07-30  Bernhard Herzog  <[email protected]>
1114    
1115            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
1116            method directly instead of going through the transient_table
1117            method. This faster because transient_table may force the copy of
1118            a DBF file into the transient database and setting a table's title
1119            doesnm't affect the title of the associated transient table, so
1120            this fixes RT #2042
1121    
1122            * Thuban/UI/main.py (__version__): Don't import the already
1123            removed show_exception_dialog.
1124    
1125    2003-07-29  Jonathan Coles   <[email protected]>
1126    
1127            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
1128            Put back this method and remove the equivalent function since we
1129            are setting the exception hook from within this class (OnInit).
1130    
1131    2003-07-29  Jonathan Coles   <[email protected]>
1132    
1133            * Doc/manual/images/5_2_custom_ramp.png,
1134            Doc/manual/images/5_2_quantiles.png,
1135            Doc/manual/images/5_2_uniform_dist.png,
1136            Doc/manual/images/5_2_unique_values.png,
1137            Doc/manual/images/8_int_error.png: New screen shots.
1138    
1139            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
1140            some points, and added more screen shots.
1141    
1142  2003-07-29  Bernhard Herzog  <[email protected]>  2003-07-29  Bernhard Herzog  <[email protected]>
1143    
1144          * Thuban/Model/data.py: Remove the now unused import of warnings          * Thuban/Model/data.py: Remove the now unused import of warnings

Legend:
Removed from v.1516  
changed lines
  Added in v.1694

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26