/[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 1033 by jan, Mon May 26 15:33:51 2003 UTC revision 1137 by frank, Thu Jun 5 15:06:34 2003 UTC
# Line 1  Line 1 
1    2003-06-05  Frank Koormann  <[email protected]>
2    
3            * Thuban/UI/projdialog.py (ProjFrame.__init__): Fill the projchoice
4            once on initialisation (Former implementation resulted in multiple
5            entries for each projection).
6            (ProjFrame.__FillAvailList): selectProj as second optional parameter,
7            if set, select the projection found under the specified name. This
8            overwrites any other selection estimate.
9            Removed projchoice filling from this method.
10            (ProjFrame._OnSave, ProjFrame._OnAddToList):
11            Updated call of ProjFrame.__FillAvailList
12            (LCCPanel._DoLayout): Moved parameter controls in more common order.
13    
14            * Resources/Projections/defaults.proj: Extended defaults representing
15            various common European projections.
16    
17    2003-06-05  Frank Koormann  <[email protected]>
18    
19            * Thuban/UI/identifyview.py (IdentifyView.__init__):
20            Use ListCtrl instead of GridCtrl
21    
22            * Thuban/Model/resource.py:
23            Guess location of .thuban directory from tempdir parent directory.
24    
25            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
26            Guess location of .thuban directory from tempdir parent directory.
27    
28    2003-06-04  Bernhard Herzog  <[email protected]>
29    
30            Do not cache the values returned by the tree widget's
31            GetFirstChild and GetNextChild methods because it led to lots of
32            segfaults. The new way requires more brute force but is more
33            reliable.
34    
35            * Thuban/UI/legend.py (LegendTree.__init__): Remove instance
36            variable layer2id
37            (LegendTree.find_layer): New method to do with brute force what
38            layer2id tried to accomplish
39            (LegendTree._OnMsgLayerChanged)
40            (LegendTree._OnMsgLayerTitleChanged, LegendTree.__ShowHideLayer):
41            Use find_layer instead of layer2id
42            (LegendTree.__RemoveLayer, LegendTree.__AddLayer): No need to
43            update layer2id anymore
44            (LegendTree._OnMsgMapLayersRemoved)
45            (LegendTree._OnMsgMapLayersAdded): Get by without layer2id.
46    
47    2003-06-03  Thomas Koester  <[email protected]>
48    
49            * Thuban/Model/classgen.py (GenQuantiles0): New function.
50    
51    2003-06-02  Bernhard Herzog  <[email protected]>
52    
53            * Thuban/UI/mainwindow.py (layer_rename command, table_rename command):
54            New commands.
55            (main_menu): Add the new commands.
56            (MainWindow.TableRename): New. Implementation of the table_rename
57            command.
58            (MainWindow.RenameLayer): New. Implementation of the layer_rename
59            command.
60    
61            * Thuban/Model/session.py (Session.AddTable): call self.changed to
62            set the modified flag
63    
64            * test/test_session.py (TestSessionSimple.test_add_table): Test
65            whether the modified flag is set properly
66    
67            * Thuban/Model/base.py (TitledObject.SetTitle): Call changed
68            instead of issue so that the modified flags get updated.
69    
70            * test/test_base.py (SomeTitledObject): Derive from Modifiable
71            instead of Publisher to reflect reality better and to accomodate
72            the fact that SetTitle now calls changed instead of issue
73    
74    2003-06-02  Bernhard Herzog  <[email protected]>
75    
76            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Resource
77            acquisition has to happen before the try in a try-finally.
78    
79    2003-06-02  Bernhard Herzog  <[email protected]>
80    
81            * Thuban/UI/legend.py (LegendTree._OnMsgMapLayersRemoved): It's
82            possible that a layer is removed that is not currently selected in
83            the legend so don't check for this.
84    
85    2003-05-30  Bernhard Herzog  <[email protected]>
86    
87            * Thuban/Model/layer.py (Layer.Destroy): Set all instance
88            variables to None that have direct or indirect references to
89            shapefiles or dbf files to make sure that they do go away and the
90            files are closed.
91    
92    2003-05-30  Bernhard Herzog  <[email protected]>
93    
94            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
95            availImgListIndices when a new image list is created
96            
97    2003-05-30  Bernhard Herzog  <[email protected]>
98    
99            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
100            changing_selection to indicate whether the LegendTree code itself
101            is currently changing the selection
102            (LegendTree.normalize_selection): New method to normalize the
103            selection by selecting the layer item even if the user clicked on
104            the classification.
105            (LegendTree._OnSelChanged): normalize the selection. This works
106            around a bug in wx which doesn't keep track of the selection
107            properly when subtrees are deleted.
108    
109    2003-05-30  Bernhard Herzog  <[email protected]>
110    
111            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
112            maximum and minimum scale factors.
113    
114            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
115            changes in classgen.py
116    
117    2003-05-30  Jonathan Coles   <[email protected]>
118    
119            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
120            all the methods functions. Fixes RTBug #1903.
121    
122            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
123            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
124            RTBug #1907.
125    
126            * Thuban/UI/classgen.py: Use classgen functions that were part
127            of the ClassGenerator class. Put try/finally blocks around
128            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
129            RTBug #1904.
130    
131            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
132    
133            * Thuban/UI/legend.py: The legend was cleared and repopulated any
134            time something changed which caused some state to be lost such
135            as which children were expanded or collapsed. Fixes RTBug #1901.
136            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
137            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
138            the legend but not in the map.
139            (LegendTree.__FillTree): Move main functionality out into smaller
140            methods that can be used by other methods.
141            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
142            if they are available.
143            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
144            that we override the wxTreeCtrl method. Iterate over children
145            and call __RemoveLayer.
146            (LegendTree.__AddLayer): New. Add a new layer to the legend.
147            (LegendTree.__RemoveLayer): Remove a layer from the legend.
148            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
149            Should only be called with the id of a layer branch.
150            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
151            Returns the root item or creates one if necessary.
152    
153            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
154            ProjectRasterFile with tuple arguments instead of strings.
155    
156            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
157            with try/finally. Fixes RTBug #1904.
158    
159            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
160            with try/finally. Fixes RTBug #1904.
161            (MapCanvas.FitSelectedToWindow): If a single point is selected
162            simply center it on the display. Fixes RTBug #1849.
163    
164            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
165            to be compiled as a standalone app. Now the code can only be
166            called from Python which simplifies the parameter passing.
167            (ProjectRasterFile): Handle Python arguments. Remove code that
168            checks for a destination dataset. Add more clean up code.
169    
170            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
171            TestMapWithContents.test_lower_layer_bottom):
172            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
173            Fixes RTBug #1907.
174    
175            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
176            extent to the map when the legend is toggled. Fixes RTBug #1881.
177    
178    2003-05-29  Jan-Oliver Wagner <[email protected]>
179    
180            * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now
181            unsubscribes all that is subcribed in __init__.
182    
183    2003-05-28  Bernhard Herzog  <[email protected]>
184    
185            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer)
186            (MainWindow.CanDuplicateLayer): New methods to implement the
187            Layer/Duplicate command.
188            (layer_duplicate command): New.
189            (main_menu): Add layer_duplicate to the Layer menu.
190    
191    2003-05-28  Bernhard Herzog  <[email protected]>
192    
193            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
194            renderer so that NULL/None values get displayed differently (by a
195            gray rectangle).
196            (TableGrid.__init__): Override the default renderers
197    
198    2003-05-28  Bernhard Herzog  <[email protected]>
199    
200            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
201            classification to "None" if the type of the field has changed.
202    
203            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
204            test for the Layer.SetShapeStore method
205    
206    2003-05-28  Jan-Oliver Wagner <[email protected]>
207    
208            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
209            does not necessarily have a filename).
210    
211    2003-05-28  Jan-Oliver Wagner <[email protected]>
212    
213            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
214            sort the selection list for the dialog.
215    
216    2003-05-28  Frank Koormann  <[email protected]>
217    
218            * extensions/thuban/wxproj.cpp
219            (project_point): Removed cast to int for projected point coordinates.
220            (shape_centroid): Return last point if all polygon vertices fall
221            to one point.
222    
223    2003-05-28  Bernhard Herzog  <[email protected]>
224    
225            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
226            with layers that don't have shapestores, i.e. raster layers.
227    
228    2003-05-28  Bernhard Herzog  <[email protected]>
229    
230            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
231            when determining the title from the filename.
232    
233            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
234            reflect changes in the way the title is derived from the filename
235    
236    2003-05-28  Frank Koormann  <[email protected]>
237    
238            * Thuban/UI/mainwindow.py (MainWindow.TableShow):
239            Added wxDEFAULT_DIALOG_STYLE to show table dialog styles.
240    
241    2003-05-27  Bernhard Herzog  <[email protected]>
242    
243            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages): Also
244            delegate SelectedLayer.
245            (MainWindow.LayerUnjoinTable): Implement.
246            (_can_unjoin): New. Helper function for the sensitivity of the
247            layer/unjoin command.
248    
249            * Thuban/Model/data.py (ShapefileStore.OrigShapeStore)
250            (DerivedShapeStore.OrigShapeStore): New. Return the original
251            shapestore. Used to figure out how to unjoin.
252            (DerivedShapeStore.Shapefile): Fix a typo.
253    
254    2003-05-27  Bernhard Herzog  <[email protected]>
255    
256            * Thuban/UI/join.py (JoinDialog): Extend to handle layer joins as
257            well
258            (JoinDialog.__init__): Use the layer parameter and only build the
259            left choice when a layer is given
260            (JoinDialog.OnJoin): Handle layer joins as well
261            (JoinDialog.OnLeftTable, JoinDialog.OnRightTable): Handle the case
262            that the user selects the "Select..." item. The sensitivitly
263            updating is now in update_sensitivity
264            (JoinDialog.y): New method to refactor the sensitivity update of
265            the join button into its own method.
266    
267            * Thuban/UI/mainwindow.py (MainWindow.LayerJoinTable): Implement.
268    
269    2003-05-27  Bernhard Herzog  <[email protected]>
270    
271            * Thuban/UI/mainwindow.py (table_close command): Make it sensitive
272            iff there are unreferenced tables in the session
273    
274    2003-05-27  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/Model/messages.py (TABLE_REMOVED): New message.
277    
278            * Thuban/Model/session.py (Session.UnreferencedTables): New method
279            to return tables that are not referenced by other tables or shape
280            stores and can be removed.
281            (Session.RemoveTable): Issue a TABLE_REMOVED message after
282            removing the table
283    
284            * Thuban/UI/mainwindow.py: Remove unused imports
285            (MainWindow.TableClose): Implement.
286    
287            * Thuban/UI/tableview.py (TableFrame.__init__): Subscribe to some
288            messages so that the frame will be automatically closed when a new
289            session is opened or the table is removed.
290            (TableFrame.OnClose): Unsubscribe the Subscriptions made in
291            __init__
292            (TableFrame.close_on_session_replaced)
293            (TableFrame.close_on_table_removed): New. Subscribers that close
294            the window
295    
296            * test/test_session.py (TestSessionMessages.test_remove_table)
297            (TestSessionSimple.test_remove_table): Move the test to
298            TestSessionSimple and add test for the TABLE_REMOVED message
299            (TestSessionBase.setUp): Also subscribe to TABLE_REMOVED
300            (TestSessionSimple.test_unreferenced_tables) New. Test for the
301            UnreferencedTables method.
302            (UnreferencedTablesTests): New. Class with some more sophisticated
303            tests for UnreferencedTables.
304    
305    2003-05-27  Frank Koormann  <[email protected]>
306    
307            * Thuban/UI/tableview.py (QueryTableFrame.__init__): The "_S_election"
308            display has some unwanted side effects. Removed again.
309    
310    2003-05-27  Frank Koormann  <[email protected]>
311    
312            * Resources/Bitmaps/legend_icon_layer.xpm: New, icon for legend.
313    
314            * Thuban/UI/legend.py (LegendTree.__FillTree): Use "legend_icon_layer"
315    
316    2003-05-27  Jan-Oliver Wagner <[email protected]>
317    
318            * test/test_menu.py (MenuTest.test): Added test for
319            Menu.RemoveItem().
320    
321            * Thuban/UI/menu.py (Menu.RemoveItem): New. Remove an item from
322            the menu.
323    
324    2003-05-27  Frank Koormann  <[email protected]>
325            
326            Nonmodal dialogs without parent (i.e. they can fall behind the main
327            window)
328    
329            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Explicitly destroy
330            all dialogs in the dialogs dictionary and the canvas.
331    
332            * Thuban/UI/dialogs.py (NonModalNonParentDialog): New class, without
333            parent, i.e. can fall behind other windows.
334            (NonModalDialog.OnClose): Check is dialog is in mainwindow.dialog
335            dictionary before removing it.
336    
337            * Thuban/UI/classifier.py: Dialog derived from NonModalNonParentDialog
338    
339            * Thuban/UI/projdialog.py: Dialog derived from NonModalNonParentDialog
340            * Thuban/UI/tableview.py: Dialog derived from NonModalNonParentDialog
341            * Thuban/UI/tree.py: Dialog derived from NonModalNonParentDialog
342    
343    2003-05-27  Bernhard Herzog  <[email protected]>
344    
345            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): New. Open a
346            tableview dialog
347            (MainWindow.TableShow): Use ShowTableView to open the dialogs.
348            Also, don't use the table's titles as the dialog names. The titles
349            aren't guaranteed to be unique.
350            (MainWindow.TableOpen): Open a table view dialog after opening the
351            table
352    
353    2003-05-27  Bernhard Herzog  <[email protected]>
354    
355            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
356            effect can be achieved by simply closing the window showing the
357            table.
358            (MainWindow.TableHide): Removed.
359            (main_menu): Removed "table_hide"
360    
361    2003-05-27  Frank Koormann  <[email protected]>
362    
363            Fix legend tree display problems under Win32
364    
365            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
366            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
367            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
368    
369            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
370    
371    2003-05-27  Jan-Oliver Wagner <[email protected]>
372    
373            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
374            'after' now allows to insert separators almost anywhere in the menu.
375    
376    2003-05-27  Frank Koormann  <[email protected]>
377    
378            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
379            "S" of selection box label to hint on hot key (Alt-S). Works under
380            Win32 but is ignored under GTK.
381    
382    2003-05-26  Frank Koormann  <[email protected]>
383    
384            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
385            Center Choices.
386    
387    2003-05-26  Bernhard Herzog  <[email protected]>
388    
389            Remove the Precision methods again. They're too DBF specific to be
390            part of the table interface and they're only used in table_to_dbf
391            anyway.
392            
393            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
394            fixed precision of 12 for doubles.
395            (TransientTableBase.Precision): Removed
396            (AutoTransientTable.Width): Delegate to self.table.
397    
398            * Thuban/Model/table.py (DBFTable.Precision)
399            (MemoryTable.Precision): Removed.
400            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
401            (table_to_dbf): Use a fixed precision of 12 for floats unless the
402            column object specifies something else.
403    
404            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
405            test for table_to_dbf
406    
407    2003-05-26  Bernhard Herzog  <[email protected]>
408    
409            * test/test_transientdb.py
410            (TestTransientTable.run_iceland_political_tests): Fix a comment.
411    
412    2003-05-26  Bernhard Herzog  <[email protected]>
413    
414            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
415            implementation. Mark parts of the file format strings for
416            localization.
417    
418            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
419            file and add the table to the tables managed by the session
420    
421            * test/test_session.py (TestSessionSimple.test_open_table_file):
422            New. test case for OpenTableFile
423    
424    2003-05-26  Jan-Oliver Wagner <[email protected]>
425    
426            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
427            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
428            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
429            Replace the true/false of wxWindows by True/False of Python 2.2.1.
430    
431  2003-05-26  Jan-Oliver Wagner <[email protected]>  2003-05-26  Jan-Oliver Wagner <[email protected]>
432    
433          * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is already          * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
434          a selection present, update the grid accordingly.          already a selection present, update the grid accordingly.
435    
436          * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog          * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
437          resizeable and increase its initial size.          resizeable and increase its initial size.

Legend:
Removed from v.1033  
changed lines
  Added in v.1137

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26