/[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 16 by bh, Fri Aug 31 15:36:39 2001 UTC revision 87 by bh, Wed Apr 3 19:02:32 2002 UTC
# Line 1  Line 1 
1    2002-04-03  Bernhard Herzog  <[email protected]>
2    
3            * setup.py: Increment version to 0.1.1
4    
5            * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
6            Layer" and "Remove Layer" commands from the layer menu to the map
7            menu
8    
9    2002-02-15  Bernhard Herzog  <[email protected]>
10    
11            * Thuban/Model/layer.py (Layer.Shape): list append only takes one
12            argument (python <= 1.5.2 erroneously accepted multiuple
13            arguments)
14    
15    2002-02-04  Bernhard Herzog  <[email protected]>
16    
17            * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
18            RecordGrid in the identifyview.
19            (IdentifyView.__init__): Use IdentifyGridCtrl instead of
20            IdentifyListCtrl. The grid allows editing of the values.
21    
22            * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
23            implementing a grid for a single row of a thuban table.
24    
25            * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
26            layers by default. Easier to use than the previous default of only
27            searching through the select layer which meant that if no layer
28            was selected, you couldn't select a shape.
29    
30            * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
31    
32            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
33            stroke_width attribute
34    
35            * Thuban/Model/save.py (save_session): Write the new stroke_width
36            attribute
37    
38            * Thuban/Model/load.py (ProcessSession.startElement): Read the
39            stroke_width attribute
40    
41            * Thuban/Model/layer.py (Layer.__init__): New parameter and
42            instance variable stroke_width
43            (Layer.SetStrokeWidth): Set the stroke_width.
44    
45    2002-02-01  Bernhard Herzog  <[email protected]>
46    
47            * extensions/thuban/wxproj.cpp (project_points): Fix two
48            off-by-one errors in the last loop that joins the various parts
49            together.
50    
51    2002-01-14  Bernhard Herzog  <[email protected]>
52    
53            * setup.py (data_dist.make_distribution): Fix some typos
54    
55    2001-09-18  Bernhard Herzog  <[email protected]>
56    
57            * README: Slight tweaking in preparation for the 0.1 release
58    
59            * setup.cfg: Add section for sdist to create both tgz and zip
60            archives
61    
62            * setup.py: increase version number to 0.1
63            (data_dist): New command class for data distribution
64            
65    
66    2001-09-14  Bernhard Herzog  <[email protected]>
67    
68            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
69            Handle the case of no layer (i.e. layer is None) properly.
70    
71            * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
72            Set the initial selection of the combo boxes to reflect the
73            projection we're starting with in a way that works on windows,
74            too.
75    
76            * Thuban/Lib/connector.py (Connector.print_connections): Print the
77            puiblisher's ids in hex to make it easier to compare them to the
78            standard repr of python methods
79    
80            * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
81            messages
82    
83    2001-09-13  Bernhard Herzog  <[email protected]>
84    
85            * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
86            deselect the layer if no layer is selected
87    
88            * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
89            idle time when there actually is something to draw. If there's
90            nothing to draw simply clear the window
91            (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
92            (MapCanvas.SetMap): force a redraw in all cases because
93            FitMapToWindow doesn't always do it.
94            (MapCanvas.ZoomFactor): Add an optional parameter, center, to
95            specify the point to move into the center of the window
96            (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
97            dragged, zoon in/out by a factor of 2
98            (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
99            index, i.e. reversed drawing order) so that objects appearing to
100            be in from of others are selected first. This is probably mostly
101            relevant for point shapes where the symbols used may overlap
102    
103            * Thuban/Model/session.py (create_empty_session): Unset the
104            modified bit before returning it
105    
106            * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
107            create_empty_session session to create the new, empty session.
108    
109            * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
110            the tool bitmaps.
111            (MainWindow.OnClose, MainWindow.save_modified_session): Separate
112            the code that asks whether the session should be saved into the
113            new method save_modified_session.
114            (MainWindow.OpenSession, MainWindow.NewSession): Use the new
115            method to save modified session here too.
116    
117    2001-09-11  Bernhard Herzog  <[email protected]>
118    
119            * setup.py (InnoIconItem): fix typo
120    
121            (thuban_bdist_inno.run):
122            (bdist_inno.run): Move the decision not to create symlinks on
123            non-nt platforms to thuban_bdist_inno and do it unconditinally
124            since we never want to create the symlinks here
125    
126    2001-09-10  Bernhard Herzog  <[email protected]>
127    
128            * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
129            identify view immediately
130    
131            * Thuban/UI/controls.py: New file with two classes RecordListCtrl
132            and SelectableRecordListCtrl that implement the code shared by the
133            identify view and the label dialog
134    
135            * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
136            new class RecordListCtrl
137    
138            * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
139            return value of GetValue is None instead of using it as a boolean
140            directly so that Zero numbers are handled properly.
141            (LabelListCtrl): Derive from the new class
142            SelectableRecordListCtrl
143    
144            * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
145            (Proj4Dialog.dialogLayout): Make the window resizable and set the
146            size of the text control explicitly to make the sizers work on
147            both Windows and X.
148    
149    2001-09-07  Bernhard Herzog  <[email protected]>
150    
151            * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
152            that can limit the search to the currently selected layer.
153            (MapCanvas.SelectShapeAt): Make sure that the currently selected
154            layer stays selected even when no shape is found
155            (MapCanvas.FitRectToWindow): If the rect has zero with or zero
156            height do nothing (avoids zero division errors)
157    
158    2001-09-06  Bernhard Herzog  <[email protected]>
159    
160            * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
161            Correct the spelling of SessionTreeCtrl. dabbrev is too damn
162            convenient :-)
163            (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
164            a new instvar layer_to_item to map layers to tree items
165            (SessionTreeCtrl.layer_selected): Select the appropriate tree item
166            to match the current selection in the interactor
167    
168            * Thuban/UI/interactor.py (Interactor.SelectedLayer):
169            (Interactor.HasSelectedLayer): New methods to query the current
170            selection
171    
172            * Thuban/UI/mainwindow.py (MainWindow.current_layer):
173            (MainWindow.has_selected_layer): Simply call the appropriate
174            interactor method
175    
176            * Thuban/UI/mainwindow.py (MainWindow.__init__):
177            (MainWindow.LayerShowTable):
178            (MainWindow.identify_view_on_demand): Store the interactor in an
179            instvar and use that reference instead of going through main.app
180    
181            * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
182            * Thuban/UI/application.py (ThubanApplication.OnInit):
183            * Thuban/UI/main.py (main): Create the session tree view in main
184            with the new mainwindow method ShowSessionTree and not directly
185            the application's OnInit method
186    
187            * Thuban/UI/tree.py (myTreeCtrlPanel):
188            (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
189            TreeCtrl isntead of a panel. This affects most method since we now
190            refer to self instead of self.tree
191            (SessionTreeView): New class implementing a non-modal dialog
192            showing the session tree.
193    
194            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
195            layer to the tableview dialog.
196    
197            * Thuban/UI/tableview.py: Add some doc-strings
198            (TableGrid):
199            (TableGrid.OnRangeSelect):
200            (TableGrid.OnSelectCell):
201            (TableFrame.__init__):
202            (TableFrame.row_selected):
203            Selecting rows in the grid view now updates the selected shapes
204            through the TableFrame. To achieve this we derive TableGrid from
205            Publisher and introduce the message type ROW_SELECTED which the
206            TableFrame subscribes to and which is issued by OnRangeSelect and
207            OnSelectCell
208    
209            (DataTable.SelectRow): Removed because it's no longer needed in
210            the row/shape selection scheme
211    
212            * Thuban/UI/dialogs.py: New file implementing common classes for
213            dialogs
214    
215            * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
216            the SELECTED_SHAPE message anymore. This is now handled by the
217            parent.
218            (TableGrid.select_shape): Only update the selection if the shape
219            is not None.
220            (TableFrame): Inherit from the new NonModalDialog class.
221            (TableFrame.__init__, TableFrame.select_shape): Handle the
222            SELECT_SHAPE message.
223            (TableFrame.OnClose): Extend the inherited method to unsubscribe
224            SELECT_SHAPE
225    
226            * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
227            (MainWindow.add_dialog):
228            (MainWindow.dialog_open):
229            (MainWindow.remove_dialog):
230            (MainWindow.get_open_dialog): New methods to maintain a dictionary
231            of opened non-modal dialogs.
232    
233            (MainWindow.__init__): Initialize the new non-modal dictionary
234            management code
235            (MainWindow.LayerShowTable): maintain separate dialogs for each
236            table using the non-modal dialog management code to only open a
237            view once for each table.
238    
239            (MainWindow.IdentifyTool):
240            (MainWindow.__init__):
241            (MainWindow.identify_view_on_demand): Don't open the identify view
242            in IdentifyTool anymore. This will be done automatically by the
243            new method identify_view_on_demand which handles the
244            SELECTED_SHAPE message so that the identify view will be opened on
245            demand
246    
247            * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
248            the interactor argument. The SELECTED_SHAPE message is now handled
249            by the parent.
250            (IdentifyView.__init__): Add the interactor argument so that we
251            can handle the SELECTED_SHAPE message here
252            (IdentifyView.selected_shape): New method to handle the
253            SELECTED_SHAPE messages
254    
255            * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
256            NonModalDialog class
257            (IdentifyView.OnClose): Extend the inherited version to
258            unsubscribe SELECT_SHAPE
259    
260            * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
261    
262    2001-09-05  Bernhard Herzog  <[email protected]>
263    
264            * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
265            
266            * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
267            interactor to pass through to the MapCanvas
268            
269            * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
270            argument to the MainWindow constructor to get rid of the ugly hack
271            that made main.app available early just so that the mapcanvas
272            could access the interactor object.
273    
274    2001-09-04  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
277            that runs a modal message box
278            (MainWindow.OnClose): Use the new method
279            (MainWindow.RemoveLayer): Just do nothing in case no layer is
280            selected. The command should be grayed out anyway, so there's no
281            need to pop up a message box.
282            (MainWindow.AddLayer): Pop up a message box with an error message
283            if the shape file can't be opened
284    
285            * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
286            immediately. This will cause an exception in case the file can't
287            be opened and we can display an appropriate message.
288    
289            * MANIFEST.in: Add extensions/pyprojection/LICENSE
290    
291            * setup.py (thuban_bdist_rpm): New class implementing a Thuban
292            specific bdist_rpm command.
293    
294            * Thuban/UI/main.py: Catch ImportError exceptions when importing
295            the locale module because it may not be available on some
296            installations.
297    
298            * extensions/pyprojection/LICENSE: Copy of the license text in
299            Projection.i. Having it in a separate file makes it easier to
300            refer to license text in e.g. RPMs
301    
302    2001-09-03  Bernhard Herzog  <[email protected]>
303    
304            * setup.py: use wx-config instead of wxgtk-config because it's
305            more generic
306    
307            * setup.py (ThubanInstall.get_outputs): Add the symlink in
308            <prefix>/bin to the outputs
309            (ThubanInstall.link_file): New method to link files. We need this
310            because the standard copy_files refuses to link non-existing
311            files.
312            (ThubanInstall.run): Remove the leading install root from the
313            script filename if an install root was specified and use the new
314            link_file method
315            
316            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
317            the window when the first layer is added to the map.
318    
319            * setup.py (ThubanInstall.run): Honor the build root (self.root)
320            when linking thuban.py to <prefix>/bin
321    
322  2001-08-31  Bernhard Herzog  <[email protected]>  2001-08-31  Bernhard Herzog  <[email protected]>
323    
324          * setup.py: In the setup call, the install parameters shouldn't          * setup.py: In the setup call, the install parameters shouldn't

Legend:
Removed from v.16  
changed lines
  Added in v.87

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26