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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26