/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

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

revision 743 by jonathan, Fri Apr 25 10:26:03 2003 UTC revision 809 by bh, Mon May 5 10:33:58 2003 UTC
# Line 1  Line 1 
1    2003-05-05  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/tableview.py (TableGrid.disallow_messages)
4            (TableGrid.allow_messages): New methods to make it possible to
5            inhibit message sending.
6            (TableGrid.issue): Only send the message if not inhibited.
7            (LayerTableGrid.select_shape): Use the new methods to make sure
8            that no ROW_SELECTED message is sent while we're updating the
9            selected rows to match the selected shapes.
10    
11    2003-05-02  Jan-Oliver Wagner <[email protected]>
12    
13            Implementation of MemoryTable.
14    
15            * Thuban/Model/table.py (MemoryTable): New. Quite simple table
16            implementation that operates on a list of tuples. All of the data
17            are kept in the memory.
18    
19            * test/test_table.py (MemoryTableTest): New.
20    
21            * test/test_transientdb.py (SimpleTable): Removed.
22            (TestTransientTable.test_transient_joined_table,
23            (TestTransientTable.test_transient_table_read_twice): Replaced
24            SimpleTable by MemoryTable.
25    
26    2003-04-30  Jonathan Coles   <[email protected]>
27    
28            * Data/iceland_sample.thuban: Now contains correct projections
29            for each of the layers.
30    
31            * Resources/Projections/defaults.proj: Geographic projection
32            contains unit conversion parameter.
33    
34    2003-04-30  Jonathan Coles   <[email protected]>
35    
36            The most important part of this putback is the projection changes.
37            It should now be possible to specify the projection that a layer
38            is in and then specify a different projection for the map. The
39            projection dialog has an extra parameter for a geographic projection
40            which lets the user select if the input is in degrees or radians.
41    
42            * Thuban/Model/layer.py (Layer.ShapesInRegion): Fix docstring
43            to say that the parameter is a tuple of unprojected
44            points (which is what the callers to this method were assuming).
45            Also, since the points are unprojected we need to projected them.
46    
47            * Thuban/UI/legend.py (LegendTree.MoveCurrentItemUp,
48            LegendTree.MoveCurrentItemDown): If the layer or any of the layer's
49            groups are selected, move the layer up/down. Fixes RTbug #1833.
50    
51            * Thuban/UI/mainwindow.py: Move menu item map_rename up.
52    
53            * Thuban/UI/projdialog.py (ProjFrame._OnSave): Add missing
54            parameter in call to SetClientData.
55            (GeoPanel): Add support for selecting the units that the
56            source data is in (Radians or Degrees).
57    
58            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Optimize
59            the rendering loop by reducing the number of if's, removing the
60            unnecessary try/except block, and checking if the old group
61            is the same as the new one (which happens a lot if there is
62            no classification, or lots of shapes are in the same group).
63    
64            * Thuban/UI/view.py (MapCanvas.OnPaint): Add a try/except block
65            around the redraw routine to try to catch problems that the user
66            may create by selecting invalid projections for the data set and
67            map. Clears the display if there are any problems and prints the
68            error.
69            (MapCanvas.do_redraw): Use DC.Clear() instead of drawing a filled
70            rectangle.
71    
72            * extensions/thuban/wxproj.cpp (project_point): First invert the
73            supplied point (which should be in projected coordinates) using
74            the layer's projection and then project the point using the
75            map's projection.
76            (project_points): Use project_point() to project each point.
77    
78    2003-04-30  Jan-Oliver Wagner <[email protected]>
79    
80            * Thuban/Model/layer.py (Layer.SetShapeStore): Fixed a bug:
81            don't set the Classification to None if the classfication field
82            is None (ie only a DEFAULT).
83    
84    2003-04-30  Bernhard Herzog  <[email protected]>
85    
86            * Thuban/UI/view.py: Fix some typos.
87    
88            * Thuban/UI/mainwindow.py (MainWindow.identify_view_on_demand): Do
89            not pop up the dialog if the selection becomes empty (this could
90            happen if e.g. a new selection is opened while the identify tool
91            is active and dialog had been closed)
92    
93    2003-04-30  Bernhard Herzog  <[email protected]>
94    
95            * Thuban/Model/transientdb.py (TransientTableBase.__init__): New
96            instance variable read_record_last_result
97            (TransientTableBase.read_record): Make sure reading the same
98            record twice works. The implementation uses the new instance
99            variable read_record_last_result
100    
101            * test/test_transientdb.py
102            (TestTransientTable.test_transient_table_read_twice): New test
103            case for the above bug-fix.
104    
105    2003-04-29  Jonathan Coles   <[email protected]>
106    
107            * Thuban/common.py: Removed. No longer needed Str2Num. RTbug #1832.
108    
109            * Thuban/UI/classgen.py: Remove all uses of Str2Num.
110    
111            * Thuban/UI/classifier.py: Remove all uses of Str2Num.
112            (ClassTable.SetValueAsCustom): Rename keyword argument in
113            ClassGroup* constructors to match argument name.
114    
115    2003-04-29  Bernhard Herzog  <[email protected]>
116    
117            * Thuban/Model/session.py (Session.Destroy): Explicitly close the
118            transient DB if it exists to make sure it doesn't leave a journal
119            file in the temp directory.
120    
121            * Thuban/Model/transientdb.py (TransientDatabase.close): Set
122            self.conn to None after closing the connection to make sure it's
123            not closed twice
124    
125    2003-04-29  Jonathan Coles   <[email protected]>
126    
127            Add a visible parameter in the layer XML tag. The default value is
128            "true". If anything other than "false" is specified we also assume
129            "true". Addresses RTbug #1025.
130    
131            * Doc/thuban.dtd: Add visible parameter to a layer.
132    
133            * Thuban/Model/layer.py (BaseLayer.__init__): Change default value
134            of visible from 1 to True.
135            (Layer.__init__): Change default value of visible from 1 to True.
136    
137            * Thuban/Model/load.py (SessionLoader.start_layer): Read visible
138            parameter.
139    
140            * Thuban/Model/save.py (SessionSaver.write_layer): Save visible
141            parameter.
142    
143            * test/test_load.py: Add new test data contents_test_visible.
144            (LoadSessionTest.setUp): save test data.
145            (LoadSessionTest.testLayerVisibility): Test if the visible flag
146            is loaded correctly.
147    
148            * test/test_save.py (SaveSessionTest.testSingleLayer): Add test
149            for saving an invisible layer.
150    
151    2003-04-29  Jonathan Coles   <[email protected]>
152    
153            * Thuban/UI/mainwindow.py (MainWindow.SetMap): Look up the
154            legend dialog box and tell it to change its map to the one
155            supplied to SetMap(). Fixes RTbug #1770.
156    
157    2003-04-29  Bernhard Herzog  <[email protected]>
158    
159            Next step of table implementation. Introduce a transient database
160            using SQLite that some of the data is copied to on demand. This
161            allows us to do joins and other operations that require an index
162            for good performance with reasonable efficiency. Thuban now needs
163            SQLite 2.8.0 and pysqlite 0.4.1. Older versions may work but I
164            haven't tested that.
165            
166            * Thuban/Model/transientdb.py: New. Transient database
167            implementation.
168    
169            * test/test_transientdb.py: New. Tests for the transient DB
170            classes.
171    
172            * Thuban/Model/session.py (AutoRemoveFile, AutoRemoveDir): New
173            classes to help automatically remove temporary files and
174            directories.
175            (Session.__init__): New instance variables temp_dir for the
176            temporary directory and transient_db for the SQLite database
177            (Session.temp_directory): New. Create a temporary directory if not
178            yet done and return its name. Use AutoRemoveDir to have it
179            automatically deleted
180            (Session.TransientDB): Instantiate the transient database if not
181            done yet and return it.
182    
183            * Thuban/Model/data.py (ShapefileStore.__init__): Use an
184            AutoTransientTable so that data is copied to the transient DB on
185            demand.
186            (SimpleStore): New class that simply combines a table and a
187            shapefile
188    
189            * Thuban/Model/table.py (Table, DBFTable): Rename Table into
190            DBFTable and update its doc-string to reflect the fact that this
191            is only the table interface to a DBF file. Table is now an alias
192            for DBFTable for temporary backwards compatibility.
193    
194            * Thuban/UI/application.py (ThubanApplication.OnExit): Make sure
195            the last reference to the session goes away so that the temporary
196            files are removed properly.
197    
198            * test/test_load.py (LoadSessionTest.tearDown): Remove the
199            reference to the session to make sure the temporary files are
200            removed.
201    
202    2003-04-29  Bernhard Herzog  <[email protected]>
203    
204            * Thuban/Model/load.py (XMLReader.__init__, XMLReader.read): Turn
205            the __parser instance variable into a normal local variable in
206            read. It's only used there and read will never be called more than
207            once. Plus it introduces a reference cycle that keeps can keep the
208            session object alive for a long time.
209    
210    2003-04-29  Jonathan Coles   <[email protected]>
211    
212            * Thuban/Model/proj.py (Projection): Removed Set*() methods to make
213            Projection an immutable item. Fixes RTbug #1825.
214            (Projection.__init__): Initialize instance variables here.
215            (ProjFile.Replace): New. Replace the given projection object with
216            the new projection object. This solves the problem of needing the
217            mutator Projection.SetProjection() in the ProjFrame class and
218            allows a projection to change parameters without changing its
219            location in the file.
220    
221            * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs): Dialog should
222            be of type wxSAVE and should verify overwriting a file.
223    
224            * Thuban/UI/projdialog.py (ProjFrame._OnSave): Use the new
225            ProjFile.Replace() method instead of the mutator
226            Projection.SetProjection(). Also requires that we reassign the
227            client data to the new projection.
228    
229            * test/test_proj.py (TestProjection.test): Test GetName() and
230            GetAllParameters()
231            (TestProjFile.test): Remove tests for Set*() methods. Add tests
232            for Replace().
233    
234    2003-04-25  Jonathan Coles   <[email protected]>
235    
236            * Thuban/Model/save.py (SessionSaver.write_projection): Make sure
237            to save the name of the projection.
238    
239            * test/test_save.py (SaveSessionTest.testLayerProjection): New
240            test to verify layer projections are saved correctly.
241    
242    2003-04-25  Jonathan Coles   <[email protected]>
243    
244            * Thuban/Model/proj.py (Projection.SetName): Set the name
245            to "Unknown" if name is None.
246            (Projection.SetAllParameters): New. Set the projection's
247            parameter list to the one supplied.
248            (Projection.SetProjection): New. Set the projection's
249            properties to those of the supplied Projection.
250    
251            * Thuban/UI/mainwindow.py (MainWindow.MapProjection): Set
252            the dialog title to include the map's title.
253            (MainWindow.LayerProjection): Set the dialog title to include
254            the layer's title.
255    
256            * Thuban/UI/projdialog.py (ProjFrame.__ShowError): Consolidate
257            error dialogs into a single method call.
258            (ProjFrame.__VerifyButtons): Add more states to check.
259            (ProjFrame.__GetProjection): Return the current state of an
260            edited projection or None.
261            (ProjFrame.__FillAvailList): Remove checks for states that
262            shouldn't exist.
263            (ProjFrame._OnNew): Clear all selected items and supply
264            a projection panel if necessary.
265    
266            * test/test_proj.py (TestProjFile.test): Add tests for
267            ProjFile.SetAllParameters, ProjFile.SetProjection,
268            ProjFile.SetName.
269    
270    2003-04-25  Jonathan Coles   <[email protected]>
271    
272            * Thuban/UI/projdialog.py (ProjFrame.__FillAvailList): Now
273            takes an optional argument to select the current projection.
274            This does not guarantee that the item is visible due to
275            limited wxWindows functionality. Fixes RTBug #1821.
276    
277  2003-04-25  Jonathan Coles   <[email protected]>  2003-04-25  Jonathan Coles   <[email protected]>
278    
279          * Thuban/Model/load.py (SessionLoader.start_projection): Remember          * Thuban/Model/load.py (SessionLoader.start_projection): Remember

Legend:
Removed from v.743  
changed lines
  Added in v.809

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26