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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (show annotations)
Sun Apr 21 17:39:44 2002 UTC (22 years, 10 months ago) by jan
Original Path: trunk/thuban/ChangeLog
File size: 15950 byte(s)
added full-extent as toolbutton, added propose UTM Zone dialog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26