/[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 1147 by bh, Tue Jun 10 12:00:45 2003 UTC revision 1239 by jonathan, Wed Jun 18 15:41:11 2003 UTC
# Line 1  Line 1 
1    2003-06-18  Jonathan Coles   <[email protected]>
2    
3            * setup.py: Fix a few problems that occured under Windows.
4    
5    2003-06-18  Jonathan Coles   <[email protected]>
6    
7            When Thuban loaded the map was redrawn twice because the
8            legend was being opened after the mainwindow was created
9            and not during its creation. This meant the map was drawn
10            initially and then had to be redrawn when the legend
11            caused the display to change. Now the legend is opened
12            in the mainwindow constructor which resolves this issue.
13    
14            Also, although we were checking for the existence of
15            gdal and gdalwarp modules, the gdalwarp extension was
16            still being compiled (which may fail if the system doesn't
17            have gdal installed). the build_ext command to setup.py
18            now accepts the flags --with-gdal and --without-gdal.
19            If --without-gdal is specified setup.py will try to
20            use the gdal parameters specified by gdal-config. Under
21            windows, those parameters have to be set in setup.py
22            as with proj4 an wxWindows.
23    
24            * setup.py: Use a list instead of seperate variables for
25            extension parameters so we can create a generic function
26            that runs an appropriate *-config script.
27            (run_cs_script): Renamed from run_wx_script and modified
28            to accept a second argument which is a list of lists to
29            be filled in by the values returned from running the command.
30            (thuban_build_ext): New. Extends the build_ext command and
31            provides the options --with-gdal/--without-gdal which then
32            optionally includes the gdalwarp extension.
33    
34            * Thuban/Model/resource.py: First check if we can import
35            the gdalwarp Thuban extension before checking for gdal.
36            Also added some comments.
37            
38            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Check if
39            the map is None which may be the case if none has been loaded
40            yet.
41    
42            * Thuban/UI/main.py (main): Remove call to ShowLegend.
43    
44            * Thuban/UI/mainwindow.py (MainWindow.__init__): Call ShowLegend().
45    
46            * Thuban/UI/renderer.py: Check for gdal support before importing
47            gdalwarp.
48            (MapRenderer.render_map): Only try to optimize if we have gdal
49            support otherwise nothing will get drawn.
50    
51            * Thuban/UI/view.py (MapCanvas.FitMapToWindow): This may be called
52            during startup before a map has been created. Check if map is None
53            before using it and do nothing if it is.
54    
55    2003-06-17  Jonathan Coles   <[email protected]>
56    
57            Fix the problem with raster layers under Windows that caused
58            Thuban to crash. The view should respond to layer projection
59            changed events to update the display. Changes to a projection
60            should not cause the map to be set to full extent.
61            
62            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
63            current_map_proj to remember the current map projection so that
64            when the projection changes we know what the previous projection
65            was.
66            (MapCanvas.SetMap): Unsubscribe and subscribe to
67            LAYER_PROJECTION_CHANGED events.
68            (MapCanvas.projection_changed): Split into two methods that respond
69            to map and layer projection changes.
70            (MapCanvas.map_projection_changed): New. Takes the current view and
71            projects it using the new projection. This does not cause the
72            map to be redrawn at full extent.
73            (MapCanvas.layer_projection_changed): New. Cause a redraw which
74            will draw each layer in its new projection.
75            
76            * extensions/thuban/bmpdataset.cpp (BMPDataset::Open): Call
77            VSIFClose() not VSIFCloseL() to close the file. Fixes a crash
78            under Windows.
79            
80            * extensions/thuban/gdalwarp.cpp (MFILENAME): Padding should be
81            to twice sizeof(void*) because there are two digits for each
82            hex byte.
83    
84    2003-06-16  Bernhard Herzog  <[email protected]>
85    
86            Update to the layer interface: Direct access to the table,
87            shapetable, shapefile and filename attributes is now actively
88            deprecated by issuing deprecation warnings for all places where
89            this happens.
90    
91            * Thuban/Model/layer.py (Layer.__getattr__): New. Implement access
92            to the instance variables table, shapetable, shapefile and
93            filename via __getattr__ so that we can issue a deprecation
94            warning.
95            (Layer.SetShapeStore): Don't set the deprecated instance variables
96            any more
97            (Layer.SetShapeStore): Don't use deprecated layer instance
98            variables
99            (Layer.Destroy): No need to explicitly remove the instance
100            variables any more
101            (Layer.GetFieldType, Layer.Shape): Don't use deprecated layer
102            instance variables
103    
104            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
105            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve)
106            (GenQuantilesPanel.GetList, GenQuantilesPanel.OnRetrieve): Don't
107            use deprecated layer instance variables
108    
109            * Thuban/UI/classifier.py (Classifier.__init__): Don't use
110            deprecated layer instance variables
111    
112            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape)
113            (IdentifyGridCtrl.selected_shape): Don't set the deprecated layer
114            instance variables
115    
116            * Thuban/UI/tableview.py (LayerTableGrid.select_shapes): Don't use
117            deprecated layer instance variables
118    
119            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Don't use
120            deprecated layer instance variables
121    
122            * Thuban/Model/save.py (SessionSaver.write_layer): Don't use
123            deprecated layer instance variables
124    
125            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer)
126            (MapRenderer.polygon_render_param): Don't use deprecated layer instance
127            variables
128    
129            * test/runtests.py (main): Turn Thuban's deprecation warnings into
130            errors so that they're cought by the tests
131    
132            * test/test_load.py (TestSingleLayer.test): Don't use deprecated
133            layer instance variables
134    
135    2003-06-16  Jonathan Coles   <[email protected]>
136    
137            Fix a problem under Windows whereby if the user double-clicks on a
138            layer in the legend that tree item will expand or collapse as well
139            as open the layer properties dialog. The state of the tree item
140            should not be affected.
141    
142            * Thuban/UI/legend.py (LegendTree.__init__): Add instance variable
143            preventExpandCollapse and subscribe to expanding and collapsing
144            events.
145            (LegendTree.OnItemExpandCollapse): New. Responds to expanding and
146            collapsing events and will veto the event if it has been triggered
147            by the user double clicking on a layer.
148            (LegendTree._OnItemActivated): Set preventExpandCollapse to indicate
149            that an expanding/collapsing event should be vetoed.
150    
151    2003-06-13  Bernhard Herzog  <[email protected]>
152    
153            * Thuban/UI/classifier.py (Classifier.OnClose)
154            (Classifier.map_layers_removed)
155            (Classifier.layer_shapestore_replaced): Unsubscribe the messages
156            in OnClose and not in map_layers_removed or
157            layer_shapestore_replaced to make sure it always happens when the
158            dialog is closed
159    
160    2003-06-13  Jonathan Coles   <[email protected]>
161    
162            This puts back a fix for Windows where a panel is needed so that
163            the background of the table view appears correctly.
164    
165            * Thuban/UI/tableview.py (TableFrame.__init__): Add a panel
166            object that can be used by derived classes to place any
167            controls (including the grid) onto.
168            (QueryTableFrame.__init__): Use the panel as the parent window
169            for all the controls. Reparent the grid so that the panel is
170            the parent. Call UpdateStatusText() to correctly initialize
171            the status bar.
172    
173    2003-06-13  Jonathan Coles   <[email protected]>
174    
175            * Thuban/UI/dialogs.py (ThubanFrame): New: a class that inherits
176            from wxFrame (as opposed to wxDialog like the other classes)
177            but otherwise behaves like the other classes. This is needed
178            for the TableView which isn't really a dialog and needs to
179            have a status bar and control buttons.
180    
181            * Thuban/UI/tableview.py (TableGrid.__init__): Create an
182            instance variable to keep track of how many rows are selected.
183            Subscribe once to the the events we are interested in.
184            (ThubanGrid.OnRangeSelect): Only handle event if event handling
185            hasn't been turned off.
186            (ThubanGrid.OnSelectCell): Only handle event if event handling
187            hasn't been turned off.
188            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
189            as an event listener (which changes the event handler stack)
190            simply set an instance variable to False. This is checked in
191            the event handlers.
192            (ThubanGrid.GetNumberSelected): Return the number of currently
193            selected rows.
194            (TableFrame): Inherit from ThubanFrame so we can have a
195            status bar and control buttons.
196            (QueryTableFrame.__init__): Create a status bar. Fixes RTbug #1942.
197            Explicitly set which items are selected in the operator choice and
198            action choice so there is always a valid selection. Fixes RTbug #1941.
199            Subscribe to grid cell selection events so we can update the
200            status bar.
201            (QueryTableFrame.UpdateStatusText): Update the status bar with
202            how many rows are in the grid, how many columns, and how many
203            rows are selected.
204            (QueryTableFrame.OnGridSelectRange, QueryTableFrame.OnGridSelectCell):
205            Call UpdateStatusText when cells are (de)selected.
206            (QueryTableFrame.OnQuery): Use the string value in the value
207            combo if either the selected item index is 0 or if the string
208            cannot be found in the predefined list (this happens if the
209            user changes the text). Fixes RTbug #1940.
210            Only turn off the grid event listeners if there a query comes
211            back with a none empty list of ids. in the case that the list
212            is empty this causes a grid.ClearSelection() call to actually
213            clear the grid selection which causes the selected items in
214            the map to be deselected. Fixes RTbug #1939.
215    
216            * test/test_save.py (XMLWriterTest.Encode): Check return values.
217            Fixes RTbug #1851.
218    
219    2003-06-13  Bernhard Herzog  <[email protected]>
220    
221            * Thuban/UI/identifyview.py (IdentifyView.__init__): Call
222            self.selected_shape with the current selection to make sure the
223            contents of the dialog are up to date when it's shown for the
224            first time.
225            The dialog used to work without this by luck. The recent fix to
226            the connector module 'broke' a 'feature' the identify view was
227            relying on, i.e that subscribing to a message in response to
228            receiving a message of that type would mean that the new
229            subscriber would also be called for the same message.
230            
231    2003-06-12  Jonathan Coles   <[email protected]>
232    
233            * extensions/thuban/gdalwarp.cpp: Removed debug printing as
234            the image is rendered. Fixes RTbug #1937.
235    
236    2003-06-12  Jonathan Coles   <[email protected]>
237    
238            * Thuban/Lib/fileutil.py: As is done under Windows, create the
239            user directory if it doesn't exist on a posix system.
240            Fixes RTbug #1815.
241    
242            * Thuban/Model/resource.py (get_user_proj_files): Moved the
243            called to get_application_dir here, so that the directory
244            will only be called if this method is invoked.
245    
246            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Clear
247            the projfilepath if no projection is selected.
248    
249    2003-06-12  Jonathan Coles   <[email protected]>
250    
251            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Don't draw
252            the scalebar if the current map has no projection set.
253    
254            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Set the
255            projfilepath label to just the basename of the projection file
256            rather than include the entire path.
257    
258            * Thuban/Model/resource.py: Fix missed proj functions that
259            needed to be renamed.
260    
261    2003-06-12  Jonathan Coles   <[email protected]>
262    
263            * Thuban/Model/classification.py: Removed assert statements that
264            tested if the variable was an instance of Color.
265    
266            * Thuban/Model/color.py (Color): Remove commented code that isn't
267            used.
268            (Transparent): Renamed from NoColor. Doesn't inherit from Color.
269            Fixes RTbug #1835.
270            (Transparent.__eq__, Transparent.__ne, Transparent.__repr): New.
271            Needed now that the class doesn't inherit from Color.
272    
273    2003-06-12  Jonathan Coles   <[email protected]>
274    
275            * test/test_save.py (XMLWriterTest.testEncode): Explicitly
276            check unicode strings.
277    
278            * test/test_layer.py: Check for existence of gdal.
279    
280    2003-06-12  Jonathan Coles   <[email protected]>
281        
282            * Thuban/Model/xmlreader.py: New. Contains the XMLReader class
283            that was in load.py
284    
285            * Thuban/Model/xmlwriter.py: New. Contains the XMLWriter class
286            that was in save.py
287    
288    2003-06-12  Jonathan Coles   <[email protected]>
289    
290            This is largely a collection of bug fixes. We also handle the
291            case where gdal is not on the system. The XMLReader and XMLWriter
292            classes were moved into there own files to resolve some circular
293            import references and because they shouldn't really be in the
294            file that is dediciated to reading/writing session files since
295            they are also used elsewhere.
296    
297            * Thuban/Model/classgen.py: Renamed functions to follow the
298            function_names_with_underscores style. Fixes RTbug #1903.
299            (calculate_quantiles): Raise ValueError if 'percents' is invalid.
300    
301            * Thuban/Model/layer.py: Import gdal only if it available.
302            (RasterLayer): Handle the case where the gdal library is unavailable.
303            Addresses RTbug #1877.
304    
305            * Thuban/Model/load.py (XMLReader): Moved into seperate file
306            xmlreader.py.
307    
308    2003-06-12  Jonathan Coles   <[email protected]>
309    
310            This is largely a collection of bug fixes. We also handle the
311            case where gdal is not on the system. The XMLReader and XMLWriter
312            classes were moved into there own files to resolve some circular
313            import references and because they shouldn't really be in the
314            file that is dediciated to reading/writing session files since
315            they are also used elsewhere.
316    
317            * Thuban/Model/classgen.py: Renamed functions to follow the
318            function_names_with_underscores style. Fixes RTbug #1903.
319            (calculate_quantiles): Raise ValueError if 'percents' is invalid.
320    
321            * Thuban/Model/layer.py: Import gdal only if it available.
322            (RasterLayer): Handle the case where the gdal library is unavailable.
323            Addresses RTbug #1877.
324    
325            * Thuban/Model/load.py (XMLReader): Moved into seperate file
326            xmlreader.py.
327    
328            * Thuban/Model/save.py (escape, XMLWriter): Moved into seperate
329            file xmlwriter.py.
330    
331            * Thuban/Model/resource.py: Renamed functions to following the
332            function_names_with_underscores style.
333            (has_gdal_support): New function that returns true if the gdal
334            library is available. Addresses RTbug #1877.
335    
336            * Thuban/UI/application.py (ThubanApplication.OpenSession):
337            Display a message box if the gdal library is not available, but
338            only if there are any layers that would use it. Addresses RTbug #1877.
339    
340            * Thuban/UI/classgen.py: Use renamed projection resource functions.
341            (GenUniformPanel.__CalcStepping): Fix a slight discrepency
342            when using integers versus floats.
343    
344            * Thuban/UI/mainwindow.py (_has_gdal_support): New. Used to
345            determine if the "Add Image Layer" menu option should be
346            greyed out or not. Addresses RTbug #1877.
347    
348            * Thuban/UI/projdialog.py: Use renamed projection resource functions.
349    
350            * Thuban/UI/renderer.py (MapRenderer.render_map): Only try to
351            optimize if a raster layer is visible. Fixes RTbug #1931.
352            Only draw the raster layer if the gdal library is available.
353            Addresses RTbug #1877.
354    
355            * test/test_classgen.py: Add tests for generate_singletons,
356            generate_uniform_distribution, generate_quantiles. Fixes RTbug #1903.
357            (test_calculate_quantiles): Fix some tests to catch the new
358            ValueError that is raised.
359    
360            * test/test_proj.py: Use renamed projection resource functions.
361    
362            * test/test_save.py (SaveSessionTest.testClassifiedLayer): New
363            test for saving classified layers. Fixes RTbug #1902.
364            (XMLWriterTest): New. Tests the XMLWriter class. Fixes RTbug #1851.
365    
366    2003-06-12  Jan-Oliver Wagner <[email protected]>
367    
368            Fix for http://intevation.de/rt/webrt?serial_num=1900.
369    
370            * Thuban/UI/multiplechoicedialog.py: New. A multiple choice dialog.
371    
372            * Thuban/UI/mainwindow.py: import wxMultipleChoiceDialog from
373            multiplechoicedialog.py rather than from the wxPython library.
374    
375    2003-06-11  Frank Koormann  <[email protected]>
376    
377            * Thuban/Lib/fileutil.py (get_application_dir): Minor stability
378            update.
379    
380    2003-06-11  Frank Koormann  <[email protected]>
381    
382            * Thuban/Lib/fileutil.py (get_application_dir): New function to
383            determine the absolute .thuban/thuban directory under
384            "posix" (os.expanduser) and "nt" (read AppData registry key).
385    
386            * Thuban/Model/resource.py: Use get_application_dir
387    
388            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
389            Use get_application_dir.
390    
391  2003-06-10  Bernhard Herzog  <[email protected]>  2003-06-10  Bernhard Herzog  <[email protected]>
392    
393          * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to          * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to

Legend:
Removed from v.1147  
changed lines
  Added in v.1239

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26