/[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

trunk/thuban/ChangeLog revision 1112 by bh, Fri May 30 09:55:04 2003 UTC branches/greater-ms3/thuban/ChangeLog revision 1228 by frank, Wed Jun 18 07:35:54 2003 UTC
# Line 1  Line 1 
1    2003-06-18  Frank Koormann  <[email protected]>
2    
3            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
4            scale if projection is latlong to get better estimate.
5    
6    2003-06-17  Jonathan Coles   <[email protected]>
7                                                                                    
8            Backport from HEAD.
9    
10        The view should respond to layer projection
11        changed events to update the display. Changes to a projection
12        should not cause the map to be set to full extent.
13    
14        * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
15        current_map_proj to remember the current map projection so that
16        when the projection changes we know what the previous projection
17        was.
18        (MapCanvas.SetMap): Unsubscribe and subscribe to
19        LAYER_PROJECTION_CHANGED events.
20        (MapCanvas.projection_changed): Split into two methods that respond
21        to map and layer projection changes.
22        (MapCanvas.map_projection_changed): New. Takes the current view and
23        projects it using the new projection. This does not cause the
24        map to be redrawn at full extent.
25        (MapCanvas.layer_projection_changed): New. Cause a redraw which
26        will draw each layer in its new projection.
27    
28    2003-06-16  Frank Koormann  <[email protected]>
29    
30            Fix problem of hidden properties dialog under windows after double
31            click on layer tree:
32            The tree control always gets an Expanded / Collapsed event after
33            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
34            raises the already displayed window.
35    
36            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
37            raiseProperties initialized to prevent endless loops
38            (LegendTree._OnItemActivated): Depending on self.raiseProperties
39            simply raise the properties or open the dialog and issue a second
40            event.
41    
42    2003-06-16  Frank Koormann  <[email protected]>
43    
44            * Thuban/UI/view.py (MapCanvas.set_view_transform): Set max_scale to
45            2147483648.0 / max_len (which is sufficient for GREAT-ER).
46            For HEAD in the future a more flexible concept has to be developed
47            determining the rendering of "large" objects.
48    
49    2003-06-16  Jonathan Coles   <[email protected]>
50    
51            Backport from HEAD.
52    
53        Fix a problem under Windows whereby if the user double-clicks on a
54        layer in the legend that tree item will expand or collapse as well
55        as open the layer properties dialog. The state of the tree item
56        should not be affected.
57    
58        * Thuban/UI/legend.py (LegendTree.__init__): Add instance variable
59        preventExpandCollapse and subscribe to expanding and collapsing
60        events.
61        (LegendTree.OnItemExpandCollapse): New. Responds to expanding and
62        collapsing events and will veto the event if it has been triggered
63        by the user double clicking on a layer.
64        (LegendTree._OnItemActivated): Set preventExpandCollapse to indicate
65        that an expanding/collapsing event should be vetoed.
66            
67    2003-06-13  Bernhard Herzog  <[email protected]>
68    
69            Backport from HEAD.
70    
71            * Thuban/UI/classifier.py (Classifier.map_layers_removed)
72            (Classifier.layer_shapestore_replaced, Classifier.OnClose):
73            Unsubscribe the messages in OnClose and not in map_layers_removed
74            or layer_shapestore_replaced to make sure it always happens when
75            the dialog is closed.
76    
77    2003-06-13  Jonathan Coles   <[email protected]>
78    
79            [NOTE: This is a back-port from the current CVS head]
80    
81            This puts back a fix for Windows where a panel is needed so that
82            the background of the table view appears correctly.
83    
84            * Thuban/UI/tableview.py (TableFrame.__init__): Add a panel
85            object that can be used by derived classes to place any
86            controls (including the grid) onto.
87            (QueryTableFrame.__init__): Use the panel as the parent window
88            for all the controls. Reparent the grid so that the panel is
89            the parent. Call UpdateStatusText() to correctly initialize
90            the status bar.
91    
92            * Thuban/UI/dialogs.py (ThubanFrame): New: a class that inherits
93            from wxFrame (as opposed to wxDialog like the other classes)
94            but otherwise behaves like the other classes. This is needed
95            for the TableView which isn't really a dialog and needs to
96            have a status bar and control buttons.
97    
98            [NOTE: This is a back-port from the current CVS head]
99    
100            * Thuban/UI/tableview.py (TableGrid.__init__): Create an
101            instance variable to keep track of how many rows are selected.
102            Subscribe once to the the events we are interested in.
103            (ThubanGrid.OnRangeSelect): Only handle event if event handling
104            hasn't been turned off.
105            (ThubanGrid.OnSelectCell): Only handle event if event handling
106            hasn't been turned off.
107            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
108            as an event listener (which changes the event handler stack)
109            simply set an instance variable to False. This is checked in
110            the event handlers.
111            (ThubanGrid.GetNumberSelected): Return the number of currently
112            selected rows.
113            (TableFrame): Inherit from ThubanFrame so we can have a
114            status bar and control buttons.
115            (QueryTableFrame.__init__): Create a status bar. Fixes RTbug #1942.
116            Explicitly set which items are selected in the operator choice and
117            action choice so there is always a valid selection. Fixes RTbug #1941.
118            Subscribe to grid cell selection events so we can update the
119            status bar.
120            (QueryTableFrame.UpdateStatusText): Update the status bar with
121            how many rows are in the grid, how many columns, and how many
122            rows are selected.
123            (QueryTableFrame.OnGridSelectRange, QueryTableFrame.OnGridSelectCell):
124            Call UpdateStatusText when cells are (de)selected.
125            (QueryTableFrame.OnQuery): Use the string value in the value
126            combo if either the selected item index is 0 or if the string
127            cannot be found in the predefined list (this happens if the
128            user changes the text). Fixes RTbug #1940.
129            Only turn off the grid event listeners if there a query comes
130            back with a none empty list of ids. in the case that the list
131            is empty this causes a grid.ClearSelection() call to actually
132            clear the grid selection which causes the selected items in
133            the map to be deselected. Fixes RTbug #1939.
134    
135    2003-06-13  Bernhard Herzog  <[email protected]>
136    
137            * Thuban/UI/identifyview.py (IdentifyView.__init__): Call
138            self.selected_shape with the current selection to make sure the
139            contents of the dialog are up to date when it's shown for the
140            first time.
141            The dialog used to work without this by luck. The recent fix to
142            the connector module 'broke' a 'feature' the identify view was
143            relying on, i.e that subscribing to a message in response to
144            receiving a message of that type would mean that the new
145            subscriber would also be called for the same message.
146    
147    2003-06-12  Jonathan Coles   <[email protected]>
148    
149            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Don't draw
150            the scalebar if the current map has no projection set.
151    
152            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): Set the
153            projfilepath label to just the basename of the projection file
154            rather than include the entire path.
155    
156    2003-06-11  Frank Koormann  <[email protected]>
157    
158            * Thuban/Lib/fileutil.py (get_application_dir): Minor stability
159            update.
160    
161    2003-06-11  Frank Koormann  <[email protected]>
162    
163            * Thuban/Lib/fileutil.py (get_application_dir): New function to
164            determine the absolute .thuban/thuban directory under
165            "posix" (os.expanduser) and "nt" (read AppData registry key).
166    
167            * Thuban/Model/resource.py: Use get_application_dir
168    
169            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
170            Use get_application_dir.
171    
172    2003-06-10  Bernhard Herzog  <[email protected]>
173    
174            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Subscribe to
175            the messages MAP_LAYERS_REMOVED messages
176            (LayerTableFrame.OnClose): Unsubscribe from it.
177            (LayerTableFrame.map_layers_removed): New. Receiver for
178            MAP_LAYERS_REMOVED. Close the dialog when the layer whose the
179            dialog is showing is removed.
180    
181    2003-06-10  Bernhard Herzog  <[email protected]>
182    
183            * Thuban/Lib/connector.py (Connector.Issue): Iterate over a copy
184            of the receivers list so that unsubscribing in a receiver doesn't
185            modify it while iterating over it.
186    
187            * test/test_connector.py
188            (ConnectorTest.test_disconnect_in_receiver): New. Test whether
189            unsubscribing in a receiver works correctly. See docstring for
190            details
191    
192    2003-06-10  Bernhard Herzog  <[email protected]>
193    
194            * Thuban/Model/messages.py (LAYER_SHAPESTORE_REPLACED): New
195            message.
196    
197            * Thuban/Model/layer.py (Layer.SetShapeStore): Send
198            LAYER_SHAPESTORE_REPLACED when the shapestore changes. A
199            LAYER_CHANGED will still be sent if the classification changes.
200    
201            * Thuban/UI/classifier.py (Classifier.__init__): Add the map as
202            parameter so we can subscribe to some of its messages
203            (Classifier.__init__): Subscribe to the map's MAP_LAYERS_REMOVED
204            and the layer's LAYER_SHAPESTORE_REPLACED
205            (Classifier.unsubscribe_messages): New. Unsubscribe from message
206            subscribed to in __init__
207            (Classifier.map_layers_removed)
208            (Classifier.layer_shapestore_replaced): receivers for the messages
209            subscribed to in __init__. Unsubscribe and close the dialog
210    
211            * Thuban/UI/mainwindow.py (MainWindow.OpenLayerProperties): Pass
212            the map to the Classifier dialog
213    
214            * test/test_layer.py (SetShapeStoreTests): Derive from
215            SubscriberMixin as well so we can test messages
216            (SetShapeStoreTests.setUp): Subscribe to some of the layer's
217            messages
218            (SetShapeStoreTests.tearDown): Clear the messages again
219            (SetShapeStoreTests.test_sanity): Expand the doc-string and check
220            for the modified flag too
221            (SetShapeStoreTests.test_set_shape_store_modified_flag): New test
222            to check whether SetShapeStore sets the modified flag
223            (SetShapeStoreTests.test_set_shape_store_different_field_name)
224            (SetShapeStoreTests.test_set_shape_store_same_field)
225            (SetShapeStoreTests.test_set_shape_store_same_field_different_type):
226            Add tests for the messages. This checks both the new
227            LAYER_SHAPESTORE_REPLACED and the older LAYER_CHANGED
228    
229    2003-06-06  Jan-Oliver Wagner <[email protected]>
230    
231            * Thuban/UI/mainwindow.py: Improved and partly added help texts for
232            the menu items.
233    
234    2003-06-05  Frank Koormann  <[email protected]>
235    
236            * Thuban/UI/identifyview.py (IdentifyView.__init__):
237            Layout reimplemented without panel. Make life easier to fit the list
238            in the dialog.
239    
240    2003-06-05  Frank Koormann  <[email protected]>
241    
242            * Thuban/UI/projdialog.py (ProjFrame.__init__): Fill the projchoice
243            once on initialisation (Former implementation resulted in multiple
244            entries for each projection).
245            (ProjFrame.__FillAvailList): selectProj as second optional parameter,
246            if set, select the projection found under the specified name. This
247            overwrites any other selection estimate.
248            Removed projchoice filling from this method.
249            (ProjFrame._OnSave, ProjFrame._OnAddToList):
250            Updated call of ProjFrame.__FillAvailList
251            (LCCPanel._DoLayout): Moved parameter controls in more common order.
252    
253            * Resources/Projections/defaults.proj: Extended defaults representing
254            various common European projections.
255    
256    2003-06-05  Frank Koormann  <[email protected]>
257    
258            * Thuban/UI/identifyview.py (IdentifyView.__init__):
259            Use ListCtrl instead of GridCtrl
260    
261            * Thuban/Model/resource.py:
262            Guess location of .thuban directory from tempdir parent directory.
263    
264            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
265            Guess location of .thuban directory from tempdir parent directory.
266    
267    2003-06-04  Bernhard Herzog  <[email protected]>
268    
269            Do not cache the values returned by the tree widget's
270            GetFirstChild and GetNextChild methods because it led to lots of
271            segfaults. The new way requires more brute force but is more
272            reliable.
273    
274            * Thuban/UI/legend.py (LegendTree.__init__): Remove instance
275            variable layer2id
276            (LegendTree.find_layer): New method to do with brute force what
277            layer2id tried to accomplish
278            (LegendTree._OnMsgLayerChanged)
279            (LegendTree._OnMsgLayerTitleChanged, LegendTree.__ShowHideLayer):
280            Use find_layer instead of layer2id
281            (LegendTree.__RemoveLayer, LegendTree.__AddLayer): No need to
282            update layer2id anymore
283            (LegendTree._OnMsgMapLayersRemoved)
284            (LegendTree._OnMsgMapLayersAdded): Get by without layer2id.
285    
286    2003-06-03  Thomas Koester  <[email protected]>
287    
288            * Thuban/Model/classgen.py (GenQuantiles0): New function.
289    
290    2003-06-02  Bernhard Herzog  <[email protected]>
291    
292            * Thuban/UI/mainwindow.py (layer_rename command, table_rename command):
293            New commands.
294            (main_menu): Add the new commands.
295            (MainWindow.TableRename): New. Implementation of the table_rename
296            command.
297            (MainWindow.RenameLayer): New. Implementation of the layer_rename
298            command.
299    
300            * Thuban/Model/session.py (Session.AddTable): call self.changed to
301            set the modified flag
302    
303            * test/test_session.py (TestSessionSimple.test_add_table): Test
304            whether the modified flag is set properly
305    
306            * Thuban/Model/base.py (TitledObject.SetTitle): Call changed
307            instead of issue so that the modified flags get updated.
308    
309            * test/test_base.py (SomeTitledObject): Derive from Modifiable
310            instead of Publisher to reflect reality better and to accomodate
311            the fact that SetTitle now calls changed instead of issue
312    
313    2003-06-02  Bernhard Herzog  <[email protected]>
314    
315            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Resource
316            acquisition has to happen before the try in a try-finally.
317    
318    2003-06-02  Bernhard Herzog  <[email protected]>
319    
320            * Thuban/UI/legend.py (LegendTree._OnMsgMapLayersRemoved): It's
321            possible that a layer is removed that is not currently selected in
322            the legend so don't check for this.
323    
324    2003-05-30  Bernhard Herzog  <[email protected]>
325    
326            * Thuban/Model/layer.py (Layer.Destroy): Set all instance
327            variables to None that have direct or indirect references to
328            shapefiles or dbf files to make sure that they do go away and the
329            files are closed.
330    
331    2003-05-30  Bernhard Herzog  <[email protected]>
332    
333            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
334            availImgListIndices when a new image list is created
335            
336    2003-05-30  Bernhard Herzog  <[email protected]>
337    
338            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
339            changing_selection to indicate whether the LegendTree code itself
340            is currently changing the selection
341            (LegendTree.normalize_selection): New method to normalize the
342            selection by selecting the layer item even if the user clicked on
343            the classification.
344            (LegendTree._OnSelChanged): normalize the selection. This works
345            around a bug in wx which doesn't keep track of the selection
346            properly when subtrees are deleted.
347    
348  2003-05-30  Bernhard Herzog  <[email protected]>  2003-05-30  Bernhard Herzog  <[email protected]>
349    
350          * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the          * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the

Legend:
Removed from v.1112  
changed lines
  Added in v.1228

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26