/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Annotation of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (hide 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 jan 114 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 jan 107 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 bh 100 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 bh 89 2002-04-04 Bernhard Herzog <[email protected]>
43    
44 bh 91 * setup.py (thuban_bdist_rpm.initialize_options): Use
45     initialize_options to create the scripts for the rpm.
46    
47 bh 89 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
48    
49 bh 85 2002-04-03 Bernhard Herzog <[email protected]>
50    
51 bh 87 * setup.py: Increment version to 0.1.1
52    
53 bh 85 * 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 bh 83 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 bh 81 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 bh 72 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 bh 71 2002-01-14 Bernhard Herzog <[email protected]>
100    
101     * setup.py (data_dist.make_distribution): Fix some typos
102    
103 bh 70 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 bh 64 2001-09-14 Bernhard Herzog <[email protected]>
115    
116 bh 70 * 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 bh 64 * 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 bh 59 2001-09-13 Bernhard Herzog <[email protected]>
132    
133 bh 64 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
134     deselect the layer if no layer is selected
135    
136 bh 59 * 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 bh 64 (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 bh 59
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 bh 55 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 bh 48 2001-09-10 Bernhard Herzog <[email protected]>
175    
176 bh 53 * 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 bh 48 * 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 bh 44 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 bh 46 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
204     height do nothing (avoids zero division errors)
205 bh 44
206 bh 32 2001-09-06 Bernhard Herzog <[email protected]>
207    
208 bh 42 * 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 bh 40 * 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 bh 35 * 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 bh 32 * 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 bh 26 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 bh 19 2001-09-04 Bernhard Herzog <[email protected]>
323    
324 bh 22 * 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 bh 19 * 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 bh 18 2001-09-03 Bernhard Herzog <[email protected]>
351    
352 bh 19 * 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 bh 18 * 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 bh 16 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 bh 7 2001-08-28 Bernhard Herzog <[email protected]>
418    
419 bh 9 * setup.py: Fix some doc strings
420    
421 bh 7 * 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