/[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 1197 by bh, Fri Jun 13 13:13:14 2003 UTC revision 1709 by jan, Wed Sep 3 08:51:29 2003 UTC
# Line 1  Line 1 
1    2003-09-03  Jan-Oliver Wagner <[email protected]>
2    
3            Backport from HEAD: Identify dialog now allows to stop
4            identify mode. This resolves issue #2030:
5            https://intevation.de/rt/webrt?serial_num=2030
6    
7            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
8            (IdentifyView.__init__): Added another button that allows to
9            stop the identify mode.
10            (IdentifyView.OnStop): New. Stops the identify mode.
11    
12    2003-07-25  Frank Koormann <[email protected]>
13    
14            Backport from HEAD: More comfortable table view:
15    
16            * Thuban/UI/tableview.py:
17            Use Thuban[Begin|End]BusyCursor()
18            instead of a direct call to wx[Begin|End]CusyCursor().
19            (QueryTableFrame.__init__):
20            Create a status bar. Fixes RTbug #1942.
21            Explicitly set which items are selected in the operator choice and
22            action choice so there is always a valid selection. Fixes RTbug #1941.
23            Subscribe to grid cell selection events so we can update the
24            status bar.
25            Add an Export Selection button and
26            move the export buttons underneath the table.
27            Use the panel as the parent window for all the controls.
28            Reparent the grid so that the panel is the parent.
29            Call UpdateStatusText() to correctly initialize the status bar.
30            (QueryTableFrame.UpdateStatusText): Update the status bar with
31            how many rows are in the grid, how many columns, and how many
32            rows are selected.
33            Added event argument so
34            that it can respond to grid selection events. The status text
35            is now updated even when the table is not associated with a
36            layer as was previously assumed.
37            (QueryTableFrame.OnSaveAs): Renamed to doExport.
38            (QueryTableFrame.doExport): Helper function that saves the
39            entire table, or selected rows, to a file.
40            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
41            Respond to export button events and call doExport.
42            (QueryTableFrame.OnQuery): Use the string value in the value
43            combo if either the selected item index is 0 or if the string
44            cannot be found in the predefined list (this happens if the
45            user changes the text). Fixes RTbug #1940.
46            Only turn off the grid event listeners if there a query comes
47            back with a none empty list of ids. in the case that the list
48            is empty this causes a grid.ClearSelection() call to actually
49            clear the grid selection which causes the selected items in
50            the map to be deselected. Fixes RTbug #1939.
51            (LayerTableGrid.select_shapes): Don't use deprecated layer instance
52            variables
53            (TableFrame): Inherit from ThubanFrame so we can have a
54            status bar and control buttons.
55            (TableFrame.__init__): Add a panel object that can be used by
56            derived classes to place any controls (including the grid) onto.
57            (TableGrid.__init__): Create an
58            instance variable to keep track of how many rows are selected.
59            Subscribe once to the the events we are interested in.
60            (ThubanGrid.OnRangeSelect): Only handle event if event handling
61            hasn't been turned off.
62            (ThubanGrid.OnSelectCell): Only handle event if event handling
63            hasn't been turned off.
64            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
65            as an event listener (which changes the event handler stack)
66            simply set an instance variable to False. This is checked in
67            the event handlers.
68            (ThubanGrid.GetNumberSelected): Return the number of currently
69            selected rows.
70    
71            * Thuban/UI/common.py
72            (ThubanBeginBusyCursor, ThubanEndBusyCursor):
73            New. Wrappers around the wxWindows functions that allow us to
74            make additional calls such as wxYield which gives the native
75            system a chance to update the cursor correctly.
76            (ThubanBeginBusyCursor): Call wxSafeYield
77            to make sure that we don't create reentrant possibilities with
78            wxYield.
79    
80            * Thuban/Model/table.py
81            (table_to_dbf, table_to_csv):
82            Added 'rows' parameter which is a list of records that restricts which
83            records are saved. Fixes RTbug #1997.
84            (_find_dbf_column_names): New. Helper function for table_to_dbf
85            (table_to_dbf): Deal with names longer than the 10 character limit
86    
87    2003-07-24  Frank Koormann <[email protected]>
88    
89            * Thuban/UI/join.py: Set CHOICE_WIDTH to 300.
90    
91    2003-07-16  Bernhard Herzog  <[email protected]>
92    
93            * Thuban/UI/messages.py (MAP_REPLACED): New message.
94    
95            * Thuban/UI/view.py (MapCanvas.SetMap): Issue MAP_REPLACED after
96            the new map has been assigned
97    
98            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
99            Delegate MAP_REPLACED to the canvas too
100    
101            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
102            MAP_REPLACED so that we can close the dialog if a new map is set.
103            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
104            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
105            dialog
106    
107    2003-07-14  Frank Koormann   <[email protected]>
108    
109            Backport from HEAD
110    
111            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
112            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
113    
114            * test/test_load.py (TestUnicodeStrings): New, test load of
115            unicode strings from session file: session title, map title,
116            layer title and projection name.
117            
118    
119    2003-07-08  Bernhard Herzog  <[email protected]>
120    
121            Backport from HEAD
122    
123            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
124            constants in the column objects are the standard ones defined in
125            the table module.
126    
127            * test/test_transientdb.py
128            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
129            exporting transient tables as DBF works. This should catch the bug
130            just fixed in TransientTableBase.Width.
131    
132    2003-07-04  Bernhard Herzog  <[email protected]>
133    
134            Backport from HEAD
135    
136            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
137            function for table_to_dbf
138            (table_to_dbf): Deal with names longer than the 10 character limit
139    
140            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
141            doc-string
142            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
143            long column names
144    
145    2003-07-03  Bernhard Herzog  <[email protected]>
146    
147            Backport from HEAD
148    
149            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
150            Update doc-string
151            (TransientJoinedTable.create): Do not modify the column objects of
152            the input tables in place and copy all columns of the input tables
153            into the joined table after all.
154    
155            * test/test_transientdb.py
156            (TestTransientTable.test_transient_joined_table_same_column_name):
157            Update to reflect the new behavior
158            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
159            Update to reflect the new behavior
160            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
161            New test case for a bug which modified the column objects in place
162    
163    2003-07-01  Frank Koormann   <[email protected]>
164    
165            Partly backport from HEAD
166    
167            * test/test_transientdb.py
168            (TestTransientTable.test_transient_joined_table_same_column_name):
169            New. Test whether joining on columns with the same names in both
170            tables works.
171            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
172            New. Test join of two tables with partly equal column names.
173    
174            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
175            sure to use the right internal names even when joining on field
176            with the same names in both tables. Also, detect duplicate names
177            in the joined table correctly.
178            If duplicates are found, append '_' (underscores) to the name
179            until it is unique.
180            Create always new internal names for the resulting table and reference
181            columns in the join statement with <table>.<column>
182    
183    2003-07-01  Frank Koormann   <[email protected]>
184    
185            Backport from HEAD
186    
187            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
188            Reverse List of layers to render in same order as in desktop legend.
189    
190    2003-06-25  Jonathan Coles   <[email protected]>
191    
192            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
193            of the SelectPropertiesDialog should be self so the window
194            appears on top.
195            (ClassGroupPropertiesCtrl.DoEdit): The parent
196            of the SelectPropertiesDialog should be self so the window
197            appears on top.
198    
199    2003-06-18  Frank Koormann  <[email protected]>
200    
201            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
202            scale if projection is latlong to get better estimate.
203    
204    2003-06-17  Jonathan Coles   <[email protected]>
205                                                                                    
206            Backport from HEAD.
207    
208            The view should respond to layer projection
209            changed events to update the display. Changes to a projection
210            should not cause the map to be set to full extent.
211    
212            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
213            current_map_proj to remember the current map projection so that
214            when the projection changes we know what the previous projection
215            was.
216            (MapCanvas.SetMap): Unsubscribe and subscribe to
217            LAYER_PROJECTION_CHANGED events.
218            (MapCanvas.projection_changed): Split into two methods that respond
219            to map and layer projection changes.
220            (MapCanvas.map_projection_changed): New. Takes the current view and
221            projects it using the new projection. This does not cause the
222            map to be redrawn at full extent.
223            (MapCanvas.layer_projection_changed): New. Cause a redraw which
224            will draw each layer in its new projection.
225    
226    2003-06-16  Frank Koormann  <[email protected]>
227    
228            Fix problem of hidden properties dialog under windows after double
229            click on layer tree:
230            The tree control always gets an Expanded / Collapsed event after
231            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
232            raises the already displayed window.
233    
234            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
235            raiseProperties initialized to prevent endless loops
236            (LegendTree._OnItemActivated): Depending on self.raiseProperties
237            simply raise the properties or open the dialog and issue a second
238            event.
239    
240    2003-06-16  Frank Koormann  <[email protected]>
241    
242            * Thuban/UI/view.py (MapCanvas.set_view_transform): Set max_scale to
243            2147483648.0 / max_len (which is sufficient for GREAT-ER).
244            For HEAD in the future a more flexible concept has to be developed
245            determining the rendering of "large" objects.
246    
247    2003-06-16  Jonathan Coles   <[email protected]>
248    
249            Backport from HEAD.
250    
251        Fix a problem under Windows whereby if the user double-clicks on a
252        layer in the legend that tree item will expand or collapse as well
253        as open the layer properties dialog. The state of the tree item
254        should not be affected.
255    
256        * Thuban/UI/legend.py (LegendTree.__init__): Add instance variable
257        preventExpandCollapse and subscribe to expanding and collapsing
258        events.
259        (LegendTree.OnItemExpandCollapse): New. Responds to expanding and
260        collapsing events and will veto the event if it has been triggered
261        by the user double clicking on a layer.
262        (LegendTree._OnItemActivated): Set preventExpandCollapse to indicate
263        that an expanding/collapsing event should be vetoed.
264            
265    2003-06-13  Bernhard Herzog  <[email protected]>
266    
267            Backport from HEAD.
268    
269            * Thuban/UI/classifier.py (Classifier.map_layers_removed)
270            (Classifier.layer_shapestore_replaced, Classifier.OnClose):
271            Unsubscribe the messages in OnClose and not in map_layers_removed
272            or layer_shapestore_replaced to make sure it always happens when
273            the dialog is closed.
274    
275    2003-06-13  Jonathan Coles   <[email protected]>
276    
277            [NOTE: This is a back-port from the current CVS head]
278    
279            This puts back a fix for Windows where a panel is needed so that
280            the background of the table view appears correctly.
281    
282            * Thuban/UI/tableview.py (TableFrame.__init__): Add a panel
283            object that can be used by derived classes to place any
284            controls (including the grid) onto.
285            (QueryTableFrame.__init__): Use the panel as the parent window
286            for all the controls. Reparent the grid so that the panel is
287            the parent. Call UpdateStatusText() to correctly initialize
288            the status bar.
289    
290            * Thuban/UI/dialogs.py (ThubanFrame): New: a class that inherits
291            from wxFrame (as opposed to wxDialog like the other classes)
292            but otherwise behaves like the other classes. This is needed
293            for the TableView which isn't really a dialog and needs to
294            have a status bar and control buttons.
295    
296            [NOTE: This is a back-port from the current CVS head]
297    
298            * Thuban/UI/tableview.py (TableGrid.__init__): Create an
299            instance variable to keep track of how many rows are selected.
300            Subscribe once to the the events we are interested in.
301            (ThubanGrid.OnRangeSelect): Only handle event if event handling
302            hasn't been turned off.
303            (ThubanGrid.OnSelectCell): Only handle event if event handling
304            hasn't been turned off.
305            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
306            as an event listener (which changes the event handler stack)
307            simply set an instance variable to False. This is checked in
308            the event handlers.
309            (ThubanGrid.GetNumberSelected): Return the number of currently
310            selected rows.
311            (TableFrame): Inherit from ThubanFrame so we can have a
312            status bar and control buttons.
313            (QueryTableFrame.__init__): Create a status bar. Fixes RTbug #1942.
314            Explicitly set which items are selected in the operator choice and
315            action choice so there is always a valid selection. Fixes RTbug #1941.
316            Subscribe to grid cell selection events so we can update the
317            status bar.
318            (QueryTableFrame.UpdateStatusText): Update the status bar with
319            how many rows are in the grid, how many columns, and how many
320            rows are selected.
321            (QueryTableFrame.OnGridSelectRange, QueryTableFrame.OnGridSelectCell):
322            Call UpdateStatusText when cells are (de)selected.
323            (QueryTableFrame.OnQuery): Use the string value in the value
324            combo if either the selected item index is 0 or if the string
325            cannot be found in the predefined list (this happens if the
326            user changes the text). Fixes RTbug #1940.
327            Only turn off the grid event listeners if there a query comes
328            back with a none empty list of ids. in the case that the list
329            is empty this causes a grid.ClearSelection() call to actually
330            clear the grid selection which causes the selected items in
331            the map to be deselected. Fixes RTbug #1939.
332    
333  2003-06-13  Bernhard Herzog  <[email protected]>  2003-06-13  Bernhard Herzog  <[email protected]>
334    
335          * Thuban/UI/identifyview.py (IdentifyView.__init__): Call          * Thuban/UI/identifyview.py (IdentifyView.__init__): Call

Legend:
Removed from v.1197  
changed lines
  Added in v.1709

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26