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

Legend:
Removed from v.1172  
changed lines
  Added in v.1246

root@scm.wald.intevation.org
ViewVC Help
Powered by ViewVC 1.1.26