/[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 1097 by jan, Thu May 29 10:03:30 2003 UTC revision 1151 by frank, Wed Jun 11 10:46:18 2003 UTC
# Line 1  Line 1 
1    2003-06-11  Frank Koormann  <[email protected]>
2    
3            * Thuban/Lib/fileutil.py (get_application_dir): New function to
4            determine the absolute .thuban/thuban directory under
5            "posix" (os.expanduser) and "nt" (read AppData registry key).
6    
7            * Thuban/Model/resource.py: Use get_application_dir
8    
9            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
10            Use get_application_dir.
11    
12    2003-06-10  Bernhard Herzog  <[email protected]>
13    
14            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to
15            the messages MAP_LAYERS_REMOVED messages
16            (LayerTableFrame.OnClose): Unsubscribe from it.
17            (LayerTableFrame.map_layers_removed): New. Receiver for
18            MAP_LAYERS_REMOVED. Close the dialog when the layer whose the
19            dialog is showing is removed.
20    
21    2003-06-10  Bernhard Herzog  <[email protected]>
22    
23            * Thuban/Lib/connector.py (Connector.Issue): Iterate over a copy
24            of the receivers list so that unsubscribing in a receiver doesn't
25            modify it while iterating over it.
26    
27            * test/test_connector.py
28            (ConnectorTest.test_disconnect_in_receiver): New. Test whether
29            unsubscribing in a receiver works correctly. See docstring for
30            details
31    
32    2003-06-10  Bernhard Herzog  <[email protected]>
33    
34            * Thuban/Model/messages.py (LAYER_SHAPESTORE_REPLACED): New
35            message.
36    
37            * Thuban/Model/layer.py (Layer.SetShapeStore): Send
38            LAYER_SHAPESTORE_REPLACED when the shapestore changes. A
39            LAYER_CHANGED will still be sent if the classification changes.
40    
41            * Thuban/UI/classifier.py (Classifier.__init__): Add the map as
42            parameter so we can subscribe to some of its messages
43            (Classifier.__init__): Subscribe to the map's MAP_LAYERS_REMOVED
44            and the layer's LAYER_SHAPESTORE_REPLACED
45            (Classifier.unsubscribe_messages): New. Unsubscribe from message
46            subscribed to in __init__
47            (Classifier.map_layers_removed)
48            (Classifier.layer_shapestore_replaced): receivers for the messages
49            subscribed to in __init__. Unsubscribe and close the dialog
50    
51            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): Pass
52            the map to the Classifier dialog
53    
54            * test/test_layer.py (SetShapeStoreTests): Derive from
55            SubscriberMixin as well so we can test messages
56            (SetShapeStoreTests.setUp): Subscribe to some of the layer's
57            messages
58            (SetShapeStoreTests.tearDown): Clear the messages again
59            (SetShapeStoreTests.test_sanity): Expand the doc-string and check
60            for the modified flag too
61            (SetShapeStoreTests.test_set_shape_store_modified_flag): New test
62            to check whether SetShapeStore sets the modified flag
63            (SetShapeStoreTests.test_set_shape_store_different_field_name)
64            (SetShapeStoreTests.test_set_shape_store_same_field)
65            (SetShapeStoreTests.test_set_shape_store_same_field_different_type):
66            Add tests for the messages. This checks both the new
67            LAYER_SHAPESTORE_REPLACED and the older LAYER_CHANGED
68    
69    2003-06-06  Jan-Oliver Wagner <[email protected]>
70    
71            * Thuban/UI/mainwindow.py: Improved and partly added help texts for
72            the menu items.
73    
74    2003-06-05  Frank Koormann  <[email protected]>
75    
76            * Thuban/UI/identifyview.py (IdentifyView.__init__):
77            Layout reimplemented without panel. Make life easier to fit the list
78            in the dialog.
79    
80    2003-06-05  Frank Koormann  <[email protected]>
81    
82            * Thuban/UI/projdialog.py (ProjFrame.__init__): Fill the projchoice
83            once on initialisation (Former implementation resulted in multiple
84            entries for each projection).
85            (ProjFrame.__FillAvailList): selectProj as second optional parameter,
86            if set, select the projection found under the specified name. This
87            overwrites any other selection estimate.
88            Removed projchoice filling from this method.
89            (ProjFrame._OnSave, ProjFrame._OnAddToList):
90            Updated call of ProjFrame.__FillAvailList
91            (LCCPanel._DoLayout): Moved parameter controls in more common order.
92    
93            * Resources/Projections/defaults.proj: Extended defaults representing
94            various common European projections.
95    
96    2003-06-05  Frank Koormann  <[email protected]>
97    
98            * Thuban/UI/identifyview.py (IdentifyView.__init__):
99            Use ListCtrl instead of GridCtrl
100    
101            * Thuban/Model/resource.py:
102            Guess location of .thuban directory from tempdir parent directory.
103    
104            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
105            Guess location of .thuban directory from tempdir parent directory.
106    
107    2003-06-04  Bernhard Herzog  <[email protected]>
108    
109            Do not cache the values returned by the tree widget's
110            GetFirstChild and GetNextChild methods because it led to lots of
111            segfaults. The new way requires more brute force but is more
112            reliable.
113    
114            * Thuban/UI/legend.py (LegendTree.__init__): Remove instance
115            variable layer2id
116            (LegendTree.find_layer): New method to do with brute force what
117            layer2id tried to accomplish
118            (LegendTree._OnMsgLayerChanged)
119            (LegendTree._OnMsgLayerTitleChanged, LegendTree.__ShowHideLayer):
120            Use find_layer instead of layer2id
121            (LegendTree.__RemoveLayer, LegendTree.__AddLayer): No need to
122            update layer2id anymore
123            (LegendTree._OnMsgMapLayersRemoved)
124            (LegendTree._OnMsgMapLayersAdded): Get by without layer2id.
125    
126    2003-06-03  Thomas Koester  <[email protected]>
127    
128            * Thuban/Model/classgen.py (GenQuantiles0): New function.
129    
130    2003-06-02  Bernhard Herzog  <[email protected]>
131    
132            * Thuban/UI/mainwindow.py (layer_rename command, table_rename command):
133            New commands.
134            (main_menu): Add the new commands.
135            (MainWindow.TableRename): New. Implementation of the table_rename
136            command.
137            (MainWindow.RenameLayer): New. Implementation of the layer_rename
138            command.
139    
140            * Thuban/Model/session.py (Session.AddTable): call self.changed to
141            set the modified flag
142    
143            * test/test_session.py (TestSessionSimple.test_add_table): Test
144            whether the modified flag is set properly
145    
146            * Thuban/Model/base.py (TitledObject.SetTitle): Call changed
147            instead of issue so that the modified flags get updated.
148    
149            * test/test_base.py (SomeTitledObject): Derive from Modifiable
150            instead of Publisher to reflect reality better and to accomodate
151            the fact that SetTitle now calls changed instead of issue
152    
153    2003-06-02  Bernhard Herzog  <[email protected]>
154    
155            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Resource
156            acquisition has to happen before the try in a try-finally.
157    
158    2003-06-02  Bernhard Herzog  <[email protected]>
159    
160            * Thuban/UI/legend.py (LegendTree._OnMsgMapLayersRemoved): It's
161            possible that a layer is removed that is not currently selected in
162            the legend so don't check for this.
163    
164    2003-05-30  Bernhard Herzog  <[email protected]>
165    
166            * Thuban/Model/layer.py (Layer.Destroy): Set all instance
167            variables to None that have direct or indirect references to
168            shapefiles or dbf files to make sure that they do go away and the
169            files are closed.
170    
171    2003-05-30  Bernhard Herzog  <[email protected]>
172    
173            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
174            availImgListIndices when a new image list is created
175            
176    2003-05-30  Bernhard Herzog  <[email protected]>
177    
178            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
179            changing_selection to indicate whether the LegendTree code itself
180            is currently changing the selection
181            (LegendTree.normalize_selection): New method to normalize the
182            selection by selecting the layer item even if the user clicked on
183            the classification.
184            (LegendTree._OnSelChanged): normalize the selection. This works
185            around a bug in wx which doesn't keep track of the selection
186            properly when subtrees are deleted.
187    
188    2003-05-30  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
191            maximum and minimum scale factors.
192    
193            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
194            changes in classgen.py
195    
196    2003-05-30  Jonathan Coles   <[email protected]>
197    
198            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
199            all the methods functions. Fixes RTBug #1903.
200    
201            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
202            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
203            RTBug #1907.
204    
205            * Thuban/UI/classgen.py: Use classgen functions that were part
206            of the ClassGenerator class. Put try/finally blocks around
207            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
208            RTBug #1904.
209    
210            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
211    
212            * Thuban/UI/legend.py: The legend was cleared and repopulated any
213            time something changed which caused some state to be lost such
214            as which children were expanded or collapsed. Fixes RTBug #1901.
215            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
216            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
217            the legend but not in the map.
218            (LegendTree.__FillTree): Move main functionality out into smaller
219            methods that can be used by other methods.
220            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
221            if they are available.
222            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
223            that we override the wxTreeCtrl method. Iterate over children
224            and call __RemoveLayer.
225            (LegendTree.__AddLayer): New. Add a new layer to the legend.
226            (LegendTree.__RemoveLayer): Remove a layer from the legend.
227            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
228            Should only be called with the id of a layer branch.
229            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
230            Returns the root item or creates one if necessary.
231    
232            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
233            ProjectRasterFile with tuple arguments instead of strings.
234    
235            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
236            with try/finally. Fixes RTBug #1904.
237    
238            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
239            with try/finally. Fixes RTBug #1904.
240            (MapCanvas.FitSelectedToWindow): If a single point is selected
241            simply center it on the display. Fixes RTBug #1849.
242    
243            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
244            to be compiled as a standalone app. Now the code can only be
245            called from Python which simplifies the parameter passing.
246            (ProjectRasterFile): Handle Python arguments. Remove code that
247            checks for a destination dataset. Add more clean up code.
248    
249            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
250            TestMapWithContents.test_lower_layer_bottom):
251            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
252            Fixes RTBug #1907.
253    
254            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
255            extent to the map when the legend is toggled. Fixes RTBug #1881.
256    
257  2003-05-29  Jan-Oliver Wagner <[email protected]>  2003-05-29  Jan-Oliver Wagner <[email protected]>
258    
259          * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now          * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now

Legend:
Removed from v.1097  
changed lines
  Added in v.1151

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26