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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 85 - (show annotations)
Wed Apr 3 15:21:58 2002 UTC (22 years, 11 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 14275 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26