/[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 1077 by frank, Wed May 28 08:25:34 2003 UTC revision 1191 by jonathan, Thu Jun 12 17:01:45 2003 UTC
# Line 1  Line 1 
1    2003-06-12  Jonathan Coles   <[email protected]>
2    
3            * Thuban/Lib/fileutil.py: As is done under Windows, create the
4            user directory if it doesn't exist on a posix system.
5    
6            * Thuban/Model/resource.py (get_user_proj_files): Moved the
7            called to get_application_dir here, so that the directory
8            will only be called if this method is invoked.
9    
10            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Clear
11            the projfilepath if no projection is selected.
12    
13    2003-06-12  Jonathan Coles   <[email protected]>
14    
15            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Don't draw
16            the scalebar if the current map has no projection set.
17    
18            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Set the
19            projfilepath label to just the basename of the projection file
20            rather than include the entire path.
21    
22            * Thuban/Model/resource.py: Fix missed proj functions that
23            needed to be renamed.
24    
25    2003-06-12  Jonathan Coles   <[email protected]>
26    
27            * Thuban/Model/classification.py: Removed assert statements that
28            tested if the variable was an instance of Color.
29    
30            * Thuban/Model/color.py (Color): Remove commented code that isn't
31            used.
32            (Transparent): Renamed from NoColor. Doesn't inherit from Color.
33            Fixes RTbug #1835.
34            (Transparent.__eq__, Transparent.__ne, Transparent.__repr): New.
35            Needed now that the class doesn't inherit from Color.
36    
37    2003-06-12  Jonathan Coles   <[email protected]>
38    
39            * test/test_save.py (XMLWriterTest.testEncode): Explicitly
40            check unicode strings.
41    
42            * test/test_layer.py: Check for existence of gdal.
43    
44    2003-06-12  Jonathan Coles   <[email protected]>
45        
46            * Thuban/Model/xmlreader.py: New. Contains the XMLReader class
47            that was in load.py
48    
49            * Thuban/Model/xmlwriter.py: New. Contains the XMLWriter class
50            that was in save.py
51    
52    2003-06-12  Jonathan Coles   <[email protected]>
53    
54            This is largely a collection of bug fixes. We also handle the
55            case where gdal is not on the system. The XMLReader and XMLWriter
56            classes were moved into there own files to resolve some circular
57            import references and because they shouldn't really be in the
58            file that is dediciated to reading/writing session files since
59            they are also used elsewhere.
60    
61            * Thuban/Model/classgen.py: Renamed functions to follow the
62            function_names_with_underscores style. Fixes RTbug #1903.
63            (calculate_quantiles): Raise ValueError if 'percents' is invalid.
64    
65            * Thuban/Model/layer.py: Import gdal only if it available.
66            (RasterLayer): Handle the case where the gdal library is unavailable.
67            Addresses RTbug #1877.
68    
69            * Thuban/Model/load.py (XMLReader): Moved into seperate file
70            xmlreader.py.
71    
72    2003-06-12  Jonathan Coles   <[email protected]>
73    
74            This is largely a collection of bug fixes. We also handle the
75            case where gdal is not on the system. The XMLReader and XMLWriter
76            classes were moved into there own files to resolve some circular
77            import references and because they shouldn't really be in the
78            file that is dediciated to reading/writing session files since
79            they are also used elsewhere.
80    
81            * Thuban/Model/classgen.py: Renamed functions to follow the
82            function_names_with_underscores style. Fixes RTbug #1903.
83            (calculate_quantiles): Raise ValueError if 'percents' is invalid.
84    
85            * Thuban/Model/layer.py: Import gdal only if it available.
86            (RasterLayer): Handle the case where the gdal library is unavailable.
87            Addresses RTbug #1877.
88    
89            * Thuban/Model/load.py (XMLReader): Moved into seperate file
90            xmlreader.py.
91    
92            * Thuban/Model/save.py (escape, XMLWriter): Moved into seperate
93            file xmlwriter.py.
94    
95            * Thuban/Model/resource.py: Renamed functions to following the
96            function_names_with_underscores style.
97            (has_gdal_support): New function that returns true if the gdal
98            library is available. Addresses RTbug #1877.
99    
100            * Thuban/UI/application.py (ThubanApplication.OpenSession):
101            Display a message box if the gdal library is not available, but
102            only if there are any layers that would use it. Addresses RTbug #1877.
103    
104            * Thuban/UI/classgen.py: Use renamed projection resource functions.
105            (GenUniformPanel.__CalcStepping): Fix a slight discrepency
106            when using integers versus floats.
107    
108            * Thuban/UI/mainwindow.py (_has_gdal_support): New. Used to
109            determine if the "Add Image Layer" menu option should be
110            greyed out or not. Addresses RTbug #1877.
111    
112            * Thuban/UI/projdialog.py: Use renamed projection resource functions.
113    
114            * Thuban/UI/renderer.py (MapRenderer.render_map): Only try to
115            optimize if a raster layer is visible. Fixes RTbug #1931.
116            Only draw the raster layer if the gdal library is available.
117            Addresses RTbug #1877.
118    
119            * test/test_classgen.py: Add tests for generate_singletons,
120            generate_uniform_distribution, generate_quantiles. Fixes RTbug #1903.
121            (test_calculate_quantiles): Fix some tests to catch the new
122            ValueError that is raised.
123    
124            * test/test_proj.py: Use renamed projection resource functions.
125    
126            * test/test_save.py (SaveSessionTest.testClassifiedLayer): New
127            test for saving classified layers. Fixes RTbug #1902.
128            (XMLWriterTest): New. Tests the XMLWriter class. Fixes RTbug #1851.
129    
130    2003-06-12  Jan-Oliver Wagner <[email protected]>
131    
132            Fix for http://intevation.de/rt/webrt?serial_num=1900.
133    
134            * Thuban/UI/multiplechoicedialog.py: New. A multiple choice dialog.
135    
136            * Thuban/UI/mainwindow.py: import wxMultipleChoiceDialog from
137            multiplechoicedialog.py rather than from the wxPython library.
138    
139    2003-06-11  Frank Koormann  <[email protected]>
140    
141            * Thuban/Lib/fileutil.py (get_application_dir): Minor stability
142            update.
143    
144    2003-06-11  Frank Koormann  <[email protected]>
145    
146            * Thuban/Lib/fileutil.py (get_application_dir): New function to
147            determine the absolute .thuban/thuban directory under
148            "posix" (os.expanduser) and "nt" (read AppData registry key).
149    
150            * Thuban/Model/resource.py: Use get_application_dir
151    
152            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
153            Use get_application_dir.
154    
155    2003-06-10  Bernhard Herzog  <[email protected]>
156    
157            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to
158            the messages MAP_LAYERS_REMOVED messages
159            (LayerTableFrame.OnClose): Unsubscribe from it.
160            (LayerTableFrame.map_layers_removed): New. Receiver for
161            MAP_LAYERS_REMOVED. Close the dialog when the layer whose the
162            dialog is showing is removed.
163    
164    2003-06-10  Bernhard Herzog  <[email protected]>
165    
166            * Thuban/Lib/connector.py (Connector.Issue): Iterate over a copy
167            of the receivers list so that unsubscribing in a receiver doesn't
168            modify it while iterating over it.
169    
170            * test/test_connector.py
171            (ConnectorTest.test_disconnect_in_receiver): New. Test whether
172            unsubscribing in a receiver works correctly. See docstring for
173            details
174    
175    2003-06-10  Bernhard Herzog  <[email protected]>
176    
177            * Thuban/Model/messages.py (LAYER_SHAPESTORE_REPLACED): New
178            message.
179    
180            * Thuban/Model/layer.py (Layer.SetShapeStore): Send
181            LAYER_SHAPESTORE_REPLACED when the shapestore changes. A
182            LAYER_CHANGED will still be sent if the classification changes.
183    
184            * Thuban/UI/classifier.py (Classifier.__init__): Add the map as
185            parameter so we can subscribe to some of its messages
186            (Classifier.__init__): Subscribe to the map's MAP_LAYERS_REMOVED
187            and the layer's LAYER_SHAPESTORE_REPLACED
188            (Classifier.unsubscribe_messages): New. Unsubscribe from message
189            subscribed to in __init__
190            (Classifier.map_layers_removed)
191            (Classifier.layer_shapestore_replaced): receivers for the messages
192            subscribed to in __init__. Unsubscribe and close the dialog
193    
194            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): Pass
195            the map to the Classifier dialog
196    
197            * test/test_layer.py (SetShapeStoreTests): Derive from
198            SubscriberMixin as well so we can test messages
199            (SetShapeStoreTests.setUp): Subscribe to some of the layer's
200            messages
201            (SetShapeStoreTests.tearDown): Clear the messages again
202            (SetShapeStoreTests.test_sanity): Expand the doc-string and check
203            for the modified flag too
204            (SetShapeStoreTests.test_set_shape_store_modified_flag): New test
205            to check whether SetShapeStore sets the modified flag
206            (SetShapeStoreTests.test_set_shape_store_different_field_name)
207            (SetShapeStoreTests.test_set_shape_store_same_field)
208            (SetShapeStoreTests.test_set_shape_store_same_field_different_type):
209            Add tests for the messages. This checks both the new
210            LAYER_SHAPESTORE_REPLACED and the older LAYER_CHANGED
211    
212    2003-06-06  Jan-Oliver Wagner <[email protected]>
213    
214            * Thuban/UI/mainwindow.py: Improved and partly added help texts for
215            the menu items.
216    
217    2003-06-05  Frank Koormann  <[email protected]>
218    
219            * Thuban/UI/identifyview.py (IdentifyView.__init__):
220            Layout reimplemented without panel. Make life easier to fit the list
221            in the dialog.
222    
223    2003-06-05  Frank Koormann  <[email protected]>
224    
225            * Thuban/UI/projdialog.py (ProjFrame.__init__): Fill the projchoice
226            once on initialisation (Former implementation resulted in multiple
227            entries for each projection).
228            (ProjFrame.__FillAvailList): selectProj as second optional parameter,
229            if set, select the projection found under the specified name. This
230            overwrites any other selection estimate.
231            Removed projchoice filling from this method.
232            (ProjFrame._OnSave, ProjFrame._OnAddToList):
233            Updated call of ProjFrame.__FillAvailList
234            (LCCPanel._DoLayout): Moved parameter controls in more common order.
235    
236            * Resources/Projections/defaults.proj: Extended defaults representing
237            various common European projections.
238    
239    2003-06-05  Frank Koormann  <[email protected]>
240    
241            * Thuban/UI/identifyview.py (IdentifyView.__init__):
242            Use ListCtrl instead of GridCtrl
243    
244            * Thuban/Model/resource.py:
245            Guess location of .thuban directory from tempdir parent directory.
246    
247            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
248            Guess location of .thuban directory from tempdir parent directory.
249    
250    2003-06-04  Bernhard Herzog  <[email protected]>
251    
252            Do not cache the values returned by the tree widget's
253            GetFirstChild and GetNextChild methods because it led to lots of
254            segfaults. The new way requires more brute force but is more
255            reliable.
256    
257            * Thuban/UI/legend.py (LegendTree.__init__): Remove instance
258            variable layer2id
259            (LegendTree.find_layer): New method to do with brute force what
260            layer2id tried to accomplish
261            (LegendTree._OnMsgLayerChanged)
262            (LegendTree._OnMsgLayerTitleChanged, LegendTree.__ShowHideLayer):
263            Use find_layer instead of layer2id
264            (LegendTree.__RemoveLayer, LegendTree.__AddLayer): No need to
265            update layer2id anymore
266            (LegendTree._OnMsgMapLayersRemoved)
267            (LegendTree._OnMsgMapLayersAdded): Get by without layer2id.
268    
269    2003-06-03  Thomas Koester  <[email protected]>
270    
271            * Thuban/Model/classgen.py (GenQuantiles0): New function.
272    
273    2003-06-02  Bernhard Herzog  <[email protected]>
274    
275            * Thuban/UI/mainwindow.py (layer_rename command, table_rename command):
276            New commands.
277            (main_menu): Add the new commands.
278            (MainWindow.TableRename): New. Implementation of the table_rename
279            command.
280            (MainWindow.RenameLayer): New. Implementation of the layer_rename
281            command.
282    
283            * Thuban/Model/session.py (Session.AddTable): call self.changed to
284            set the modified flag
285    
286            * test/test_session.py (TestSessionSimple.test_add_table): Test
287            whether the modified flag is set properly
288    
289            * Thuban/Model/base.py (TitledObject.SetTitle): Call changed
290            instead of issue so that the modified flags get updated.
291    
292            * test/test_base.py (SomeTitledObject): Derive from Modifiable
293            instead of Publisher to reflect reality better and to accomodate
294            the fact that SetTitle now calls changed instead of issue
295    
296    2003-06-02  Bernhard Herzog  <[email protected]>
297    
298            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Resource
299            acquisition has to happen before the try in a try-finally.
300    
301    2003-06-02  Bernhard Herzog  <[email protected]>
302    
303            * Thuban/UI/legend.py (LegendTree._OnMsgMapLayersRemoved): It's
304            possible that a layer is removed that is not currently selected in
305            the legend so don't check for this.
306    
307    2003-05-30  Bernhard Herzog  <[email protected]>
308    
309            * Thuban/Model/layer.py (Layer.Destroy): Set all instance
310            variables to None that have direct or indirect references to
311            shapefiles or dbf files to make sure that they do go away and the
312            files are closed.
313    
314    2003-05-30  Bernhard Herzog  <[email protected]>
315    
316            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
317            availImgListIndices when a new image list is created
318            
319    2003-05-30  Bernhard Herzog  <[email protected]>
320    
321            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
322            changing_selection to indicate whether the LegendTree code itself
323            is currently changing the selection
324            (LegendTree.normalize_selection): New method to normalize the
325            selection by selecting the layer item even if the user clicked on
326            the classification.
327            (LegendTree._OnSelChanged): normalize the selection. This works
328            around a bug in wx which doesn't keep track of the selection
329            properly when subtrees are deleted.
330    
331    2003-05-30  Bernhard Herzog  <[email protected]>
332    
333            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
334            maximum and minimum scale factors.
335    
336            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
337            changes in classgen.py
338    
339    2003-05-30  Jonathan Coles   <[email protected]>
340    
341            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
342            all the methods functions. Fixes RTBug #1903.
343    
344            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
345            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
346            RTBug #1907.
347    
348            * Thuban/UI/classgen.py: Use classgen functions that were part
349            of the ClassGenerator class. Put try/finally blocks around
350            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
351            RTBug #1904.
352    
353            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
354    
355            * Thuban/UI/legend.py: The legend was cleared and repopulated any
356            time something changed which caused some state to be lost such
357            as which children were expanded or collapsed. Fixes RTBug #1901.
358            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
359            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
360            the legend but not in the map.
361            (LegendTree.__FillTree): Move main functionality out into smaller
362            methods that can be used by other methods.
363            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
364            if they are available.
365            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
366            that we override the wxTreeCtrl method. Iterate over children
367            and call __RemoveLayer.
368            (LegendTree.__AddLayer): New. Add a new layer to the legend.
369            (LegendTree.__RemoveLayer): Remove a layer from the legend.
370            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
371            Should only be called with the id of a layer branch.
372            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
373            Returns the root item or creates one if necessary.
374    
375            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
376            ProjectRasterFile with tuple arguments instead of strings.
377    
378            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
379            with try/finally. Fixes RTBug #1904.
380    
381            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
382            with try/finally. Fixes RTBug #1904.
383            (MapCanvas.FitSelectedToWindow): If a single point is selected
384            simply center it on the display. Fixes RTBug #1849.
385    
386            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
387            to be compiled as a standalone app. Now the code can only be
388            called from Python which simplifies the parameter passing.
389            (ProjectRasterFile): Handle Python arguments. Remove code that
390            checks for a destination dataset. Add more clean up code.
391    
392            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
393            TestMapWithContents.test_lower_layer_bottom):
394            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
395            Fixes RTBug #1907.
396    
397            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
398            extent to the map when the legend is toggled. Fixes RTBug #1881.
399    
400    2003-05-29  Jan-Oliver Wagner <[email protected]>
401    
402            * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now
403            unsubscribes all that is subcribed in __init__.
404    
405    2003-05-28  Bernhard Herzog  <[email protected]>
406    
407            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer)
408            (MainWindow.CanDuplicateLayer): New methods to implement the
409            Layer/Duplicate command.
410            (layer_duplicate command): New.
411            (main_menu): Add layer_duplicate to the Layer menu.
412    
413    2003-05-28  Bernhard Herzog  <[email protected]>
414    
415            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
416            renderer so that NULL/None values get displayed differently (by a
417            gray rectangle).
418            (TableGrid.__init__): Override the default renderers
419    
420    2003-05-28  Bernhard Herzog  <[email protected]>
421    
422            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
423            classification to "None" if the type of the field has changed.
424    
425            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
426            test for the Layer.SetShapeStore method
427    
428    2003-05-28  Jan-Oliver Wagner <[email protected]>
429    
430            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
431            does not necessarily have a filename).
432    
433    2003-05-28  Jan-Oliver Wagner <[email protected]>
434    
435            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
436            sort the selection list for the dialog.
437    
438    2003-05-28  Frank Koormann  <[email protected]>
439    
440            * extensions/thuban/wxproj.cpp
441            (project_point): Removed cast to int for projected point coordinates.
442            (shape_centroid): Return last point if all polygon vertices fall
443            to one point.
444    
445    2003-05-28  Bernhard Herzog  <[email protected]>
446    
447            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
448            with layers that don't have shapestores, i.e. raster layers.
449    
450    2003-05-28  Bernhard Herzog  <[email protected]>
451    
452            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
453            when determining the title from the filename.
454    
455            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
456            reflect changes in the way the title is derived from the filename
457    
458  2003-05-28  Frank Koormann  <[email protected]>  2003-05-28  Frank Koormann  <[email protected]>
459    
460          * Thuban/UI/mainwindow.py (MainWindow.TableShow):          * Thuban/UI/mainwindow.py (MainWindow.TableShow):

Legend:
Removed from v.1077  
changed lines
  Added in v.1191

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26