/[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 1071 by bh, Tue May 27 15:09:48 2003 UTC revision 1147 by bh, Tue Jun 10 12:00:45 2003 UTC
# Line 1  Line 1 
1    2003-06-10  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to
4            the messages MAP_LAYERS_REMOVED messages
5            (LayerTableFrame.OnClose): Unsubscribe from it.
6            (LayerTableFrame.map_layers_removed): New. Receiver for
7            MAP_LAYERS_REMOVED. Close the dialog when the layer whose the
8            dialog is showing is removed.
9    
10    2003-06-10  Bernhard Herzog  <[email protected]>
11    
12            * Thuban/Lib/connector.py (Connector.Issue): Iterate over a copy
13            of the receivers list so that unsubscribing in a receiver doesn't
14            modify it while iterating over it.
15    
16            * test/test_connector.py
17            (ConnectorTest.test_disconnect_in_receiver): New. Test whether
18            unsubscribing in a receiver works correctly. See docstring for
19            details
20    
21    2003-06-10  Bernhard Herzog  <[email protected]>
22    
23            * Thuban/Model/messages.py (LAYER_SHAPESTORE_REPLACED): New
24            message.
25    
26            * Thuban/Model/layer.py (Layer.SetShapeStore): Send
27            LAYER_SHAPESTORE_REPLACED when the shapestore changes. A
28            LAYER_CHANGED will still be sent if the classification changes.
29    
30            * Thuban/UI/classifier.py (Classifier.__init__): Add the map as
31            parameter so we can subscribe to some of its messages
32            (Classifier.__init__): Subscribe to the map's MAP_LAYERS_REMOVED
33            and the layer's LAYER_SHAPESTORE_REPLACED
34            (Classifier.unsubscribe_messages): New. Unsubscribe from message
35            subscribed to in __init__
36            (Classifier.map_layers_removed)
37            (Classifier.layer_shapestore_replaced): receivers for the messages
38            subscribed to in __init__. Unsubscribe and close the dialog
39    
40            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): Pass
41            the map to the Classifier dialog
42    
43            * test/test_layer.py (SetShapeStoreTests): Derive from
44            SubscriberMixin as well so we can test messages
45            (SetShapeStoreTests.setUp): Subscribe to some of the layer's
46            messages
47            (SetShapeStoreTests.tearDown): Clear the messages again
48            (SetShapeStoreTests.test_sanity): Expand the doc-string and check
49            for the modified flag too
50            (SetShapeStoreTests.test_set_shape_store_modified_flag): New test
51            to check whether SetShapeStore sets the modified flag
52            (SetShapeStoreTests.test_set_shape_store_different_field_name)
53            (SetShapeStoreTests.test_set_shape_store_same_field)
54            (SetShapeStoreTests.test_set_shape_store_same_field_different_type):
55            Add tests for the messages. This checks both the new
56            LAYER_SHAPESTORE_REPLACED and the older LAYER_CHANGED
57    
58    2003-06-06  Jan-Oliver Wagner <[email protected]>
59    
60            * Thuban/UI/mainwindow.py: Improved and partly added help texts for
61            the menu items.
62    
63    2003-06-05  Frank Koormann  <[email protected]>
64    
65            * Thuban/UI/identifyview.py (IdentifyView.__init__):
66            Layout reimplemented without panel. Make life easier to fit the list
67            in the dialog.
68    
69    2003-06-05  Frank Koormann  <[email protected]>
70    
71            * Thuban/UI/projdialog.py (ProjFrame.__init__): Fill the projchoice
72            once on initialisation (Former implementation resulted in multiple
73            entries for each projection).
74            (ProjFrame.__FillAvailList): selectProj as second optional parameter,
75            if set, select the projection found under the specified name. This
76            overwrites any other selection estimate.
77            Removed projchoice filling from this method.
78            (ProjFrame._OnSave, ProjFrame._OnAddToList):
79            Updated call of ProjFrame.__FillAvailList
80            (LCCPanel._DoLayout): Moved parameter controls in more common order.
81    
82            * Resources/Projections/defaults.proj: Extended defaults representing
83            various common European projections.
84    
85    2003-06-05  Frank Koormann  <[email protected]>
86    
87            * Thuban/UI/identifyview.py (IdentifyView.__init__):
88            Use ListCtrl instead of GridCtrl
89    
90            * Thuban/Model/resource.py:
91            Guess location of .thuban directory from tempdir parent directory.
92    
93            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
94            Guess location of .thuban directory from tempdir parent directory.
95    
96    2003-06-04  Bernhard Herzog  <[email protected]>
97    
98            Do not cache the values returned by the tree widget's
99            GetFirstChild and GetNextChild methods because it led to lots of
100            segfaults. The new way requires more brute force but is more
101            reliable.
102    
103            * Thuban/UI/legend.py (LegendTree.__init__): Remove instance
104            variable layer2id
105            (LegendTree.find_layer): New method to do with brute force what
106            layer2id tried to accomplish
107            (LegendTree._OnMsgLayerChanged)
108            (LegendTree._OnMsgLayerTitleChanged, LegendTree.__ShowHideLayer):
109            Use find_layer instead of layer2id
110            (LegendTree.__RemoveLayer, LegendTree.__AddLayer): No need to
111            update layer2id anymore
112            (LegendTree._OnMsgMapLayersRemoved)
113            (LegendTree._OnMsgMapLayersAdded): Get by without layer2id.
114    
115    2003-06-03  Thomas Koester  <[email protected]>
116    
117            * Thuban/Model/classgen.py (GenQuantiles0): New function.
118    
119    2003-06-02  Bernhard Herzog  <[email protected]>
120    
121            * Thuban/UI/mainwindow.py (layer_rename command, table_rename command):
122            New commands.
123            (main_menu): Add the new commands.
124            (MainWindow.TableRename): New. Implementation of the table_rename
125            command.
126            (MainWindow.RenameLayer): New. Implementation of the layer_rename
127            command.
128    
129            * Thuban/Model/session.py (Session.AddTable): call self.changed to
130            set the modified flag
131    
132            * test/test_session.py (TestSessionSimple.test_add_table): Test
133            whether the modified flag is set properly
134    
135            * Thuban/Model/base.py (TitledObject.SetTitle): Call changed
136            instead of issue so that the modified flags get updated.
137    
138            * test/test_base.py (SomeTitledObject): Derive from Modifiable
139            instead of Publisher to reflect reality better and to accomodate
140            the fact that SetTitle now calls changed instead of issue
141    
142    2003-06-02  Bernhard Herzog  <[email protected]>
143    
144            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Resource
145            acquisition has to happen before the try in a try-finally.
146    
147    2003-06-02  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/UI/legend.py (LegendTree._OnMsgMapLayersRemoved): It's
150            possible that a layer is removed that is not currently selected in
151            the legend so don't check for this.
152    
153    2003-05-30  Bernhard Herzog  <[email protected]>
154    
155            * Thuban/Model/layer.py (Layer.Destroy): Set all instance
156            variables to None that have direct or indirect references to
157            shapefiles or dbf files to make sure that they do go away and the
158            files are closed.
159    
160    2003-05-30  Bernhard Herzog  <[email protected]>
161    
162            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
163            availImgListIndices when a new image list is created
164            
165    2003-05-30  Bernhard Herzog  <[email protected]>
166    
167            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
168            changing_selection to indicate whether the LegendTree code itself
169            is currently changing the selection
170            (LegendTree.normalize_selection): New method to normalize the
171            selection by selecting the layer item even if the user clicked on
172            the classification.
173            (LegendTree._OnSelChanged): normalize the selection. This works
174            around a bug in wx which doesn't keep track of the selection
175            properly when subtrees are deleted.
176    
177    2003-05-30  Bernhard Herzog  <[email protected]>
178    
179            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
180            maximum and minimum scale factors.
181    
182            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
183            changes in classgen.py
184    
185    2003-05-30  Jonathan Coles   <[email protected]>
186    
187            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
188            all the methods functions. Fixes RTBug #1903.
189    
190            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
191            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
192            RTBug #1907.
193    
194            * Thuban/UI/classgen.py: Use classgen functions that were part
195            of the ClassGenerator class. Put try/finally blocks around
196            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
197            RTBug #1904.
198    
199            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
200    
201            * Thuban/UI/legend.py: The legend was cleared and repopulated any
202            time something changed which caused some state to be lost such
203            as which children were expanded or collapsed. Fixes RTBug #1901.
204            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
205            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
206            the legend but not in the map.
207            (LegendTree.__FillTree): Move main functionality out into smaller
208            methods that can be used by other methods.
209            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
210            if they are available.
211            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
212            that we override the wxTreeCtrl method. Iterate over children
213            and call __RemoveLayer.
214            (LegendTree.__AddLayer): New. Add a new layer to the legend.
215            (LegendTree.__RemoveLayer): Remove a layer from the legend.
216            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
217            Should only be called with the id of a layer branch.
218            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
219            Returns the root item or creates one if necessary.
220    
221            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
222            ProjectRasterFile with tuple arguments instead of strings.
223    
224            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
225            with try/finally. Fixes RTBug #1904.
226    
227            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
228            with try/finally. Fixes RTBug #1904.
229            (MapCanvas.FitSelectedToWindow): If a single point is selected
230            simply center it on the display. Fixes RTBug #1849.
231    
232            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
233            to be compiled as a standalone app. Now the code can only be
234            called from Python which simplifies the parameter passing.
235            (ProjectRasterFile): Handle Python arguments. Remove code that
236            checks for a destination dataset. Add more clean up code.
237    
238            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
239            TestMapWithContents.test_lower_layer_bottom):
240            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
241            Fixes RTBug #1907.
242    
243            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
244            extent to the map when the legend is toggled. Fixes RTBug #1881.
245    
246    2003-05-29  Jan-Oliver Wagner <[email protected]>
247    
248            * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now
249            unsubscribes all that is subcribed in __init__.
250    
251    2003-05-28  Bernhard Herzog  <[email protected]>
252    
253            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer)
254            (MainWindow.CanDuplicateLayer): New methods to implement the
255            Layer/Duplicate command.
256            (layer_duplicate command): New.
257            (main_menu): Add layer_duplicate to the Layer menu.
258    
259    2003-05-28  Bernhard Herzog  <[email protected]>
260    
261            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
262            renderer so that NULL/None values get displayed differently (by a
263            gray rectangle).
264            (TableGrid.__init__): Override the default renderers
265    
266    2003-05-28  Bernhard Herzog  <[email protected]>
267    
268            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
269            classification to "None" if the type of the field has changed.
270    
271            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
272            test for the Layer.SetShapeStore method
273    
274    2003-05-28  Jan-Oliver Wagner <[email protected]>
275    
276            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
277            does not necessarily have a filename).
278    
279    2003-05-28  Jan-Oliver Wagner <[email protected]>
280    
281            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
282            sort the selection list for the dialog.
283    
284    2003-05-28  Frank Koormann  <[email protected]>
285    
286            * extensions/thuban/wxproj.cpp
287            (project_point): Removed cast to int for projected point coordinates.
288            (shape_centroid): Return last point if all polygon vertices fall
289            to one point.
290    
291    2003-05-28  Bernhard Herzog  <[email protected]>
292    
293            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
294            with layers that don't have shapestores, i.e. raster layers.
295    
296    2003-05-28  Bernhard Herzog  <[email protected]>
297    
298            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
299            when determining the title from the filename.
300    
301            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
302            reflect changes in the way the title is derived from the filename
303    
304    2003-05-28  Frank Koormann  <[email protected]>
305    
306            * Thuban/UI/mainwindow.py (MainWindow.TableShow):
307            Added wxDEFAULT_DIALOG_STYLE to show table dialog styles.
308    
309    2003-05-27  Bernhard Herzog  <[email protected]>
310    
311            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages): Also
312            delegate SelectedLayer.
313            (MainWindow.LayerUnjoinTable): Implement.
314            (_can_unjoin): New. Helper function for the sensitivity of the
315            layer/unjoin command.
316    
317            * Thuban/Model/data.py (ShapefileStore.OrigShapeStore)
318            (DerivedShapeStore.OrigShapeStore): New. Return the original
319            shapestore. Used to figure out how to unjoin.
320            (DerivedShapeStore.Shapefile): Fix a typo.
321    
322    2003-05-27  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/UI/join.py (JoinDialog): Extend to handle layer joins as
325            well
326            (JoinDialog.__init__): Use the layer parameter and only build the
327            left choice when a layer is given
328            (JoinDialog.OnJoin): Handle layer joins as well
329            (JoinDialog.OnLeftTable, JoinDialog.OnRightTable): Handle the case
330            that the user selects the "Select..." item. The sensitivitly
331            updating is now in update_sensitivity
332            (JoinDialog.y): New method to refactor the sensitivity update of
333            the join button into its own method.
334    
335            * Thuban/UI/mainwindow.py (MainWindow.LayerJoinTable): Implement.
336    
337  2003-05-27  Bernhard Herzog  <[email protected]>  2003-05-27  Bernhard Herzog  <[email protected]>
338    
339          * Thuban/UI/mainwindow.py (table_close command): Make it sensitive          * Thuban/UI/mainwindow.py (table_close command): Make it sensitive

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26