/[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 1178 by jonathan, Thu Jun 12 15:46:56 2003 UTC revision 1260 by bh, Fri Jun 20 12:32:05 2003 UTC
# Line 1  Line 1 
1    2003-06-20  Bernhard Herzog  <[email protected]>
2    
3            * test/test_save.py (SaxEventLister, sax_eventlist): Removed. Use
4            the implementation in xmlsupport instead.
5            (SaveSessionTest.compare_xml): sax_eventlist is now in xmlsupport
6    
7            * test/test_proj.py: Import sax_eventlist from xmlsupport instead
8            of test_save
9    
10    2003-06-20  Bernhard Herzog  <[email protected]>
11    
12            * test/test_load.py (LoadSessionTest.check_format): New helper
13            method to make sure the test files we load might have been written
14            by the current thuban version.
15            (ClassificationTest.TestLayers, TestSingleLayer.test)
16            (TestLayerVisibility.test, TestClassification.test)
17            (TestLabels.test, TestLayerProjection.test, TestRasterLayer.test):
18            Add check_format() calls and fix the thuban data to match the data
19            that would be written by saving the session loaded from it.
20    
21            * test/xmlsupport.py (SaxEventLister, sax_eventlist): Copies of
22            the same class and function in test_save.
23    
24            * test/test_xmlsupport.py (TestEventList): New. test cases for
25            sax_eventlist
26    
27    2003-06-20  Bernhard Herzog  <[email protected]>
28    
29            * Resources/XML/thuban.dtd: Add comment about which versions of
30            Thuban are covered by this DTD
31            (map): Fix content model for layers and raster layers. There can
32            be any number or layers and raster layers in any order.
33    
34    2003-06-20  Jonathan Coles   <[email protected]>
35    
36            * Thuban/Model/classification.py: Remove "from __future__"
37            import statement since python 2.2 is the earliest supported
38            version.
39    
40            * Thuban/Model/proj.py (Projection.GetProjectedUnits): New.
41            Currently returns PROJ_UNITS_METERS or PROJ_UNITS_DEGREES
42            depending on the units this projection *forwards* into.
43    
44            * Thuban/Model/save.py (SessionSaver.write_classification):
45            Remove unnecessary use of lambdas and nested functions.
46    
47            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Do scale
48            adjustment here if the map projection uses degrees.
49    
50            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Remove
51            scale adjust code since it is now done before calling
52            this method. Don't do anything if the map projection
53            is None.
54    
55    2003-06-19  Bernhard Herzog  <[email protected]>
56    
57            Move version specific load tests to their own file.
58    
59            * test/test_load.py: Expand the doc-string to explain a bit how to
60            handle file format changes.
61            (TestClassification.test): Update the docstring as this test is
62            not about Thuban 0.2 anymore.
63    
64            * test/test_load_0_2.py: New file with the load tests for thuban
65            files created with Thuban 0.2 and earlier.
66    
67    2003-06-19  Bernhard Herzog  <[email protected]>
68    
69            Add XML validation to some of the tests. Validation will only be
70            done if pyRXP is installed (http://reportlab.com/xml/pyrxp.html).
71            To make the DTD available to the test cases it's moved into
72            Resources/XML
73    
74            * Resources/XML/thuban.dtd: New. This is now the real Thuban DTD
75            for versions up to and including 0.2. Two slight changes: added an
76            encoding specification and fixed the comment which refered to
77            GRASS, not Thuban
78    
79            * test/xmlsupport.py: New support module for tests involving XML.
80            Currently there's a mix-in class for XML validation.
81    
82            * test/test_xmlsupport.py: New. Tests for the xmlsupport module
83    
84            * test/test_save.py (SaveSessionTest): Derive from ValidationTest
85            so that we can validate the
86            (SaveSessionTest.testEmptySession)
87            (SaveSessionTest.testSingleLayer)
88            (SaveSessionTest.testSingleLayer)
89            (SaveSessionTest.testLayerProjection)
90            (SaveSessionTest.testRasterLayer)
91            (SaveSessionTest.testClassifiedLayer): Validate the generated XML
92    
93            * test/runtests.py (main): Call print_additional_summary instead
94            of print_garbage_information
95    
96            * test/support.py (resource_dir): New function to return the
97            "Resource" subdirectory
98            (print_additional_summary): New function to combine several
99            summary functions
100            (run_tests): Use print_additional_summary instead of calling
101            print_garbage_information directly
102    
103    2003-06-19  Bernhard Herzog  <[email protected]>
104    
105            * Doc/thuban.dtd (classification): Correct the content model of
106            the classification element.
107            (projection): Add the "name" attribute
108    
109    2003-06-19  Frank Koormann   <[email protected]>
110    
111            MERGE from the greater-ms3 branch.
112    
113            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
114            scale if projection is latlong to get better estimate.
115    
116            Fix problem of hidden properties dialog under windows after double
117            click on layer tree:
118            The tree control always gets an Expanded / Collapsed event after
119            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
120            raises the already displayed window.
121    
122            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
123            raiseProperties initialized to prevent endless loops
124            (LegendTree._OnItemActivated): Depending on self.raiseProperties
125            simply raise the properties or open the dialog and issue a second
126            event.
127    
128    2003-06-18  Jonathan Coles   <[email protected]>
129    
130            * setup.py: Fix a few problems that occured under Windows.
131    
132    2003-06-18  Jonathan Coles   <[email protected]>
133    
134            When Thuban loaded the map was redrawn twice because the
135            legend was being opened after the mainwindow was created
136            and not during its creation. This meant the map was drawn
137            initially and then had to be redrawn when the legend
138            caused the display to change. Now the legend is opened
139            in the mainwindow constructor which resolves this issue.
140    
141            Also, although we were checking for the existence of
142            gdal and gdalwarp modules, the gdalwarp extension was
143            still being compiled (which may fail if the system doesn't
144            have gdal installed). the build_ext command to setup.py
145            now accepts the flags --with-gdal and --without-gdal.
146            If --without-gdal is specified setup.py will try to
147            use the gdal parameters specified by gdal-config. Under
148            windows, those parameters have to be set in setup.py
149            as with proj4 an wxWindows.
150    
151            * setup.py: Use a list instead of seperate variables for
152            extension parameters so we can create a generic function
153            that runs an appropriate *-config script.
154            (run_cs_script): Renamed from run_wx_script and modified
155            to accept a second argument which is a list of lists to
156            be filled in by the values returned from running the command.
157            (thuban_build_ext): New. Extends the build_ext command and
158            provides the options --with-gdal/--without-gdal which then
159            optionally includes the gdalwarp extension.
160    
161            * Thuban/Model/resource.py: First check if we can import
162            the gdalwarp Thuban extension before checking for gdal.
163            Also added some comments.
164            
165            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Check if
166            the map is None which may be the case if none has been loaded
167            yet.
168    
169            * Thuban/UI/main.py (main): Remove call to ShowLegend.
170    
171            * Thuban/UI/mainwindow.py (MainWindow.__init__): Call ShowLegend().
172    
173            * Thuban/UI/renderer.py: Check for gdal support before importing
174            gdalwarp.
175            (MapRenderer.render_map): Only try to optimize if we have gdal
176            support otherwise nothing will get drawn.
177    
178            * Thuban/UI/view.py (MapCanvas.FitMapToWindow): This may be called
179            during startup before a map has been created. Check if map is None
180            before using it and do nothing if it is.
181    
182    2003-06-17  Jonathan Coles   <[email protected]>
183    
184            Fix the problem with raster layers under Windows that caused
185            Thuban to crash. The view should respond to layer projection
186            changed events to update the display. Changes to a projection
187            should not cause the map to be set to full extent.
188            
189            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
190            current_map_proj to remember the current map projection so that
191            when the projection changes we know what the previous projection
192            was.
193            (MapCanvas.SetMap): Unsubscribe and subscribe to
194            LAYER_PROJECTION_CHANGED events.
195            (MapCanvas.projection_changed): Split into two methods that respond
196            to map and layer projection changes.
197            (MapCanvas.map_projection_changed): New. Takes the current view and
198            projects it using the new projection. This does not cause the
199            map to be redrawn at full extent.
200            (MapCanvas.layer_projection_changed): New. Cause a redraw which
201            will draw each layer in its new projection.
202            
203            * extensions/thuban/bmpdataset.cpp (BMPDataset::Open): Call
204            VSIFClose() not VSIFCloseL() to close the file. Fixes a crash
205            under Windows.
206            
207            * extensions/thuban/gdalwarp.cpp (MFILENAME): Padding should be
208            to twice sizeof(void*) because there are two digits for each
209            hex byte.
210    
211    2003-06-16  Bernhard Herzog  <[email protected]>
212    
213            Update to the layer interface: Direct access to the table,
214            shapetable, shapefile and filename attributes is now actively
215            deprecated by issuing deprecation warnings for all places where
216            this happens.
217    
218            * Thuban/Model/layer.py (Layer.__getattr__): New. Implement access
219            to the instance variables table, shapetable, shapefile and
220            filename via __getattr__ so that we can issue a deprecation
221            warning.
222            (Layer.SetShapeStore): Don't set the deprecated instance variables
223            any more
224            (Layer.SetShapeStore): Don't use deprecated layer instance
225            variables
226            (Layer.Destroy): No need to explicitly remove the instance
227            variables any more
228            (Layer.GetFieldType, Layer.Shape): Don't use deprecated layer
229            instance variables
230    
231            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
232            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve)
233            (GenQuantilesPanel.GetList, GenQuantilesPanel.OnRetrieve): Don't
234            use deprecated layer instance variables
235    
236            * Thuban/UI/classifier.py (Classifier.__init__): Don't use
237            deprecated layer instance variables
238    
239            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape)
240            (IdentifyGridCtrl.selected_shape): Don't set the deprecated layer
241            instance variables
242    
243            * Thuban/UI/tableview.py (LayerTableGrid.select_shapes): Don't use
244            deprecated layer instance variables
245    
246            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Don't use
247            deprecated layer instance variables
248    
249            * Thuban/Model/save.py (SessionSaver.write_layer): Don't use
250            deprecated layer instance variables
251    
252            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer)
253            (MapRenderer.polygon_render_param): Don't use deprecated layer instance
254            variables
255    
256            * test/runtests.py (main): Turn Thuban's deprecation warnings into
257            errors so that they're cought by the tests
258    
259            * test/test_load.py (TestSingleLayer.test): Don't use deprecated
260            layer instance variables
261    
262    2003-06-16  Jonathan Coles   <[email protected]>
263    
264            Fix a problem under Windows whereby if the user double-clicks on a
265            layer in the legend that tree item will expand or collapse as well
266            as open the layer properties dialog. The state of the tree item
267            should not be affected.
268    
269            * Thuban/UI/legend.py (LegendTree.__init__): Add instance variable
270            preventExpandCollapse and subscribe to expanding and collapsing
271            events.
272            (LegendTree.OnItemExpandCollapse): New. Responds to expanding and
273            collapsing events and will veto the event if it has been triggered
274            by the user double clicking on a layer.
275            (LegendTree._OnItemActivated): Set preventExpandCollapse to indicate
276            that an expanding/collapsing event should be vetoed.
277    
278    2003-06-13  Bernhard Herzog  <[email protected]>
279    
280            * Thuban/UI/classifier.py (Classifier.OnClose)
281            (Classifier.map_layers_removed)
282            (Classifier.layer_shapestore_replaced): Unsubscribe the messages
283            in OnClose and not in map_layers_removed or
284            layer_shapestore_replaced to make sure it always happens when the
285            dialog is closed
286    
287    2003-06-13  Jonathan Coles   <[email protected]>
288    
289            This puts back a fix for Windows where a panel is needed so that
290            the background of the table view appears correctly.
291    
292            * Thuban/UI/tableview.py (TableFrame.__init__): Add a panel
293            object that can be used by derived classes to place any
294            controls (including the grid) onto.
295            (QueryTableFrame.__init__): Use the panel as the parent window
296            for all the controls. Reparent the grid so that the panel is
297            the parent. Call UpdateStatusText() to correctly initialize
298            the status bar.
299    
300    2003-06-13  Jonathan Coles   <[email protected]>
301    
302            * Thuban/UI/dialogs.py (ThubanFrame): New: a class that inherits
303            from wxFrame (as opposed to wxDialog like the other classes)
304            but otherwise behaves like the other classes. This is needed
305            for the TableView which isn't really a dialog and needs to
306            have a status bar and control buttons.
307    
308            * Thuban/UI/tableview.py (TableGrid.__init__): Create an
309            instance variable to keep track of how many rows are selected.
310            Subscribe once to the the events we are interested in.
311            (ThubanGrid.OnRangeSelect): Only handle event if event handling
312            hasn't been turned off.
313            (ThubanGrid.OnSelectCell): Only handle event if event handling
314            hasn't been turned off.
315            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
316            as an event listener (which changes the event handler stack)
317            simply set an instance variable to False. This is checked in
318            the event handlers.
319            (ThubanGrid.GetNumberSelected): Return the number of currently
320            selected rows.
321            (TableFrame): Inherit from ThubanFrame so we can have a
322            status bar and control buttons.
323            (QueryTableFrame.__init__): Create a status bar. Fixes RTbug #1942.
324            Explicitly set which items are selected in the operator choice and
325            action choice so there is always a valid selection. Fixes RTbug #1941.
326            Subscribe to grid cell selection events so we can update the
327            status bar.
328            (QueryTableFrame.UpdateStatusText): Update the status bar with
329            how many rows are in the grid, how many columns, and how many
330            rows are selected.
331            (QueryTableFrame.OnGridSelectRange, QueryTableFrame.OnGridSelectCell):
332            Call UpdateStatusText when cells are (de)selected.
333            (QueryTableFrame.OnQuery): Use the string value in the value
334            combo if either the selected item index is 0 or if the string
335            cannot be found in the predefined list (this happens if the
336            user changes the text). Fixes RTbug #1940.
337            Only turn off the grid event listeners if there a query comes
338            back with a none empty list of ids. in the case that the list
339            is empty this causes a grid.ClearSelection() call to actually
340            clear the grid selection which causes the selected items in
341            the map to be deselected. Fixes RTbug #1939.
342    
343            * test/test_save.py (XMLWriterTest.Encode): Check return values.
344            Fixes RTbug #1851.
345    
346    2003-06-13  Bernhard Herzog  <[email protected]>
347    
348            * Thuban/UI/identifyview.py (IdentifyView.__init__): Call
349            self.selected_shape with the current selection to make sure the
350            contents of the dialog are up to date when it's shown for the
351            first time.
352            The dialog used to work without this by luck. The recent fix to
353            the connector module 'broke' a 'feature' the identify view was
354            relying on, i.e that subscribing to a message in response to
355            receiving a message of that type would mean that the new
356            subscriber would also be called for the same message.
357            
358    2003-06-12  Jonathan Coles   <[email protected]>
359    
360            * extensions/thuban/gdalwarp.cpp: Removed debug printing as
361            the image is rendered. Fixes RTbug #1937.
362    
363    2003-06-12  Jonathan Coles   <[email protected]>
364    
365            * Thuban/Lib/fileutil.py: As is done under Windows, create the
366            user directory if it doesn't exist on a posix system.
367            Fixes RTbug #1815.
368    
369            * Thuban/Model/resource.py (get_user_proj_files): Moved the
370            called to get_application_dir here, so that the directory
371            will only be called if this method is invoked.
372    
373            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Clear
374            the projfilepath if no projection is selected.
375    
376    2003-06-12  Jonathan Coles   <[email protected]>
377    
378            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Don't draw
379            the scalebar if the current map has no projection set.
380    
381            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Set the
382            projfilepath label to just the basename of the projection file
383            rather than include the entire path.
384    
385            * Thuban/Model/resource.py: Fix missed proj functions that
386            needed to be renamed.
387    
388  2003-06-12  Jonathan Coles   <[email protected]>  2003-06-12  Jonathan Coles   <[email protected]>
389    
390          * Thuban/Model/classification.py: Removed assert statements that          * Thuban/Model/classification.py: Removed assert statements that

Legend:
Removed from v.1178  
changed lines
  Added in v.1260

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26