/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Contents of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 83 - (show annotations)
Fri Feb 15 17:11:11 2002 UTC (23 years ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 14088 byte(s)
update ChangeLog

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

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26