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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 300 by bh, Fri Aug 30 17:41:11 2002 UTC revision 505 by jonathan, Mon Mar 10 15:48:17 2003 UTC
# Line 1  Line 1 
1    2003-03-10  Jonathan Coles   <[email protected]>
2    
3            * Thuban/UI/classifier.py (Classifier.__init__): Make the
4            field type label grow so that when the text changes the
5            size is updated correctly. This may be a wxWindows bug.
6    
7    2003-03-10  Jonathan Coles   <[email protected]>
8    
9            * Thuban/UI/application.py: Changed SESSION_CHANGED to
10            SESSION_REPLACED.
11    
12            * Thuban/UI/classifier.py: Wrap text with _().
13            (ClassGrid.CreateTable): Set dimensions and size hints here,
14            instead of in Reset, so we only set the size once.
15    
16            * Thuban/UI/dialogs.py: Don't need Shutdown(); just use Close()!
17    
18            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
19            Call Close() instead of Shutdown().
20    
21            * Thuban/UI/messages.py: Changed SESSION_CHANGED to SESSION_REPLACED.
22    
23            * Thuban/UI/tree.py: Changed SESSION_CHANGED to SESSION_REPLACED.
24            Go back to using OnClose() instead of Shutdown().
25    
26    2003-03-10  Jonathan Coles   <[email protected]>
27    
28            * Thuban/UI/classifier.py (Classifier): SelectField() needed
29            to know the old field index as well as the new one.
30    
31    2003-03-10  Jonathan Coles   <[email protected]>
32    
33            * Thuban/UI/classifier.py (Classifier): Use __SelectField()
34            to correctly set the table information and call this from
35            __init__ and from _OnFieldSelect so that all the information
36            is up to date when the dialog opens and when a field is changed.
37    
38    2003-03-10  Jonathan Coles   <[email protected]>
39    
40            * Thuban/Model/classification.py (Classification): Don't use
41            layer's message function directly, use the ClassChanged() method
42            when then classification changes. SetField/SetFieldType/SetLayer
43            must keep the information about field name and field type in
44            sync when an owning layer is set or removed.
45    
46            * Thuban/Model/layer.py: Added ClassChanged() so that the
47            classification can tell the layer when its data has changed.
48            (Layer.SetClassification): Accepts None as an arguement to
49            remove the current classification and correctly handles
50            adding a new classification.
51    
52            * Thuban/Model/load.py: Comment out print statement
53    
54            * test/test_classification.py, test/test_save.py: New and
55            improved tests.
56    
57    2003-03-07  Jonathan Coles   <[email protected]>
58    
59            * Thuban/Model/classification.py: Implemented __copy__ and
60            __deepcopy__ for ClassGroup* and ClassGroupProperites so
61            they can easily be copied by the classifier dialog.
62            (ClassGroupProperites.__init__): The default line color should
63            have been Color.Black.
64    
65            * Thuban/UI/classifier.py: Setting and Getting table values now
66            uses a consistent set of functions.
67            (Classifier): Now non-modal. Has field type label which changes
68            as the field changes. Keep track of buttons in a list so that
69            we can enable/disable the buttons when the None field is selected.
70            (SelectPropertiesDialog): Add buttons to make the colors transparent.
71    
72            * Thuban/UI/dialogs.py (NonModalDialog.Shutdown): New method which
73            does what OnClose did, but can be called by the application to
74            close a window. Needed when a session changes, and we have to
75            close the classifier windows.
76    
77            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
78            Shuts down open dialogs. Used when a new session is created
79            or a session is opened.
80            (MainWindow.SaveSession): Should only call application.SaveSession()
81            if we don't call SaveSessionAs first.
82            (MainWindow.Classify): Allow different classifier dialogs for
83            different layers.
84    
85            * Thuban/UI/tree.py (SessionTreeView): Remove OnClose and let
86            the parent class handle it. Add Shutdown() to unsubscibe from
87            event notification and call the parent Shutdown(). This was
88            necessary so the application can close the tree window.
89    
90    2003-03-06  Jonathan Coles   <[email protected]>
91    
92            * Thuban/Model/classification.py: Minor documentation changes,
93            Addition of __eq__ and __ne__ methods.
94            (Classification.SetLayer): prevent recursion between this method
95            and Layer.SetClassification().
96    
97            * Thuban/Model/color.py: Addition of __eq__ and __ne__ methods.
98    
99            * Thuban/Model/layer.py (SetClassification): prevent recursion
100            between this method and Classification.SetLayer().
101    
102            * test/test_classification.py, test/test_load.py,
103            test/test_session.py: Fixed and added tests for the classification
104            classes.
105    
106    2003-03-06  Bernhard Herzog  <[email protected]>
107    
108            * Thuban/UI/classifier.py (ClassGrid.__init__)
109            (ClassGrid.CreateTable): Move the SetSelectionMode call to
110            CreateTable because otherwise it triggers an assertion in
111            wxPython/wxGTK 2.4.
112    
113    2003-03-05  Jonathan Coles   <[email protected]>
114    
115            * Thuban/common.py: Move FIELDTYPE constants back to table.py.
116    
117            * Thuban/Model/load.py: import FIELDTYPE constants from table.
118    
119            * Thuban/UI/classifier.py: import FIELDTYPE constants from table.
120    
121            * Thuban/Model/table.py: Put FIELDTYPE constants back.
122    
123    2003-03-05  Jonathan Coles   <[email protected]>
124    
125            * Thuban/UI/classifier.py: Added class documentation.
126            Fixed RTbug #1713, #1714. Added Move[Up|Down] buttons.
127            Store just the groups in the table and generate the other
128            column information when it is requested. Add "None" field
129            to pull-down to select no classification.
130    
131            * Thuban/common.py: Moved FIELDTYPE constants from table.py
132            (Str2Num): Only catch ValueError exceptions.
133    
134            * Thuban/Model/classification.py: Class documentation. Renaming
135            of methods with Stroke to Line. Groups are stored in a single
136            list with the default as the first element. Groups are searched
137            in the order they appear in the list.
138    
139            * Thuban/Model/color.py: Documentation.
140    
141            * Thuban/Model/layer.py (Layer): Add GetFieldType to retreive
142            the kind of data represented by a field.
143    
144            * Thuban/Model/load.py (ProcessSession): Use proper string
145            conversion function; fixes RTbug #1713.
146    
147            * Thuban/Model/save.py (Saver): Store field type information.
148    
149            * Thuban/Model/table.py: Put FIELDTYPE constants in common.py.
150            (Table): Add field_info_by_name() to retrieve field information
151            by specifying the field name, not the number.
152    
153            * Thuban/UI/mainwindow.py: Function name changes.
154    
155            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Only
156            get the layer classification once. Don't try to classify
157            values when the field is None: just use the default properties.
158    
159            * Thuban/UI/view.py: Function name changes.
160    
161            * Doc/thuban.dtd: Add field_type attribute to a classification.
162    
163    2003-03-04  Bernhard Herzog  <[email protected]>
164    
165            * Doc/thuban.dtd: Use correct syntax for optional attributes. Make
166            the fill and stroke layer attributes optional with suitable
167            default values. Add the stroke_width layer attribute. Use correct
168            syntax for empty elements. Make the attribute list for labels
169            refer to the label element.
170    
171    2003-03-04  Bernhard Herzog  <[email protected]>
172    
173            * setup.py (thuban_build_py.build): Add a comment about distutils in
174            Python 2.3 containing some of the functionality we implement in
175            setup.py ourselves.
176    
177            * Thuban/UI/classifier.py (ClassGrid.__init__): Set the table
178            before the selection mode. Doing it the other way round triggers
179            an assertion in wxWindows.
180    
181            * Thuban/Model/save.py (escape): Fix typo in doc-string
182    
183            * Thuban/Model/classification.py: Remove unnecessary wxPython
184            import
185    
186    2003-03-04  Jonathan Coles   <[email protected]>
187    
188            * Thuban/Model/classification.py (ClassGroupRange.GetProperties):
189            Parameter 'value' should default to None.
190    
191            * Thuban/UI/mainwindow.py: Use Layer.GetClassification() since
192            the class attribute __classification is now private.
193    
194            * Thuban/UI/classifier.py (ClassGrid): Moved OnCellDClick() from
195            Classifier to ClassGrid. Added support for removing selected rows,
196            which including code for keeping track of when cells are selected,
197            and deselected.
198            (ClassTable): Support for added/removing rows. Fixed a problem
199            with __ParseInput whereby it would not allow strings (only numbers)
200            to be entered.
201            (Classifier): Added button and supporting code for removing
202            selected rows.
203    
204    2003-02-27  Jonathan Coles   <[email protected]>
205    
206            * Thuban/common.py: Moved color conversion functions into
207            Thuban/UI/common.py.
208            (Str2Num): Now converts the float (not the string) to a long/int
209            so that an exception isn't thrown.
210    
211            * Thuban/UI/common.py: Common functions used in several UI modules
212    
213            * Thuban/Model/classification.py: Changed the class hierarchy
214            so that a Classification consists of Groups which return
215            Properties when a value matches a Group.
216    
217            * Thuban/Model/layer.py: Fixed name resolution problem.
218    
219            * Thuban/Model/load.py: Use new Classification and Group functions.
220    
221            * Thuban/Model/save.py (Saver.write_attribs): Fixes a test case
222            failure.
223            (Saver.write_classification): Use new Classification and Group
224            functions.
225    
226            * Thuban/UI/classifier.py: Changes to use new Classification and Group
227            functions. Fix to create a tuple with a single value instead of
228            simply returning the value.
229    
230            * Thuban/UI/renderer.py: Use new Classification and Group functions.
231            Use common.py functions.
232    
233            * Thuban/UI/tree.py: Use common.py functions.
234            
235            * test/test_classification.py: Use new Classification and Group
236            classes.
237    
238    2003-02-24  Jonathan Coles   <[email protected]>
239    
240            * Thuban/common.py (Color2wxColour, wxColour2Color): Conversion
241            functions from Thuban color objects to wxWindow colour objects.
242    
243            * Thuban/Model/classification.py (Classification): Renamed
244            GetProperties() to GetClassData(). Used the new iterator
245            in TreeInfo().
246            (ClassIterator): Iterator implementation to iterate over the
247            ClassData objects in a classification object.
248    
249            * Thuban/Model/save.py (Saver.write_classificaton): Uses
250            the new iterator to save the classification information.
251    
252            * Thuban/UI/classifier.py (SelectPropertiesDialog): Support
253            for changing the stroke and fill colors and previewing the
254            changes.
255    
256            * Thuban/UI/mainwindow.py (MainWindow.OpenSession,
257            MainWindow.SaveSessionAs): Text string changes so the dialogs
258            have more meaningful titles.
259    
260            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Change
261            Classification method name from GetProperties to GetClassData.
262    
263            * Thuban/UI/view.py (MapCanvas.find_shape_at): Use method calls
264            instead of accessing now non-existent class variables.
265    
266    2003-02-24  Bernhard Herzog  <[email protected]>
267    
268            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Remove
269            unneeded Shape() call. Rendering is substantially faster without
270            it and it avoids some problems with broken shape files.
271    
272    2003-02-20  Frank Koormann   <[email protected]>
273    
274            Force minimal size of identify and label dialogs. The autosizing
275            looked too ugly.
276    
277            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
278            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
279            Set size of listctrl.
280            * Thuban/UI/identifyview.py (IdentifyView.__init__):
281            Set size of dialog.
282    
283    2003-02-19  Jonathan Coles   <[email protected]>
284    
285            * test/test_classification.py, test/test_layer.py,
286            test/test_load.py, test/test_map.py, test/test_session.py:
287            Updated the tests to use the new functions that are in the
288            respective classes.
289    
290            * Thuban/Model/classification.py (Classification):
291            Uses the new ClassData* classes. Modification messages are
292            passed up to the parent layer (if it exists).
293            (ClassData): New class to encapsulate the common data in each
294            classification property.
295            (ClassDataDefault): Represents the Default class. data.
296            (ClassDataPoint): Represents a single class. data point
297            (ClassDataRange): Represents a class. range
298            (ClassDataMap): Represents a class. map (unused).
299    
300            * Thuban/Model/color.py: Added Color.None to represent something
301            with no color. Color.Black represents the color black.
302            (NoColor): Helper class derived from Color to represent something
303            with no color.
304    
305            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
306            stroke_width attributes. Made the 'classification' attribute private.
307            New methods for setting/getting the classification.
308    
309            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
310            to get the classifcation and use the new ClassData* classes to
311            hold the classification data. Use Str2Num to convert numbers
312            properly.
313    
314            * Thuban/Model/save.py (Saver): Use new Color and Classification
315            methods
316    
317            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
318            custom grid.
319            (ClassTable): Support for editing Values and Labels and for
320            changing what type (point or range) of data is stored in each
321            property based on how the user enters the data.
322            (Classifier): Support for saving the new classifications and
323            launching the dialog to edit a property.
324            (SelectPropertiesDialog): New class for editing the visual
325            properties of a classification (stroke color, width, and fill color)
326            (ClassPreviewer): Took the Draw method from ClassRenderer and
327            made most of it into this new class. Intend to use this class in
328            the SelectPropertiesDialog for previewing changes.
329    
330            * Thuban/UI/renderer.py: Use new Color and Classification methods.
331    
332            * Thuban/UI/tree.py: Formatting changes.
333    
334            * Doc/thuban.dtd: Add 'label' element
335    
336            * Thuban/common.py: New. Contains common routines used throughout
337            the code.
338            (Str2Num): Takes a string and converts it to the "best" type of
339            number.
340    
341    2003-02-14  Bernhard Herzog  <[email protected]>
342    
343            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the
344            dragging flag is always set to 0 even when the tool implementation
345            raises an exception
346    
347    2003-02-11  Bernhard Herzog  <[email protected]>
348    
349            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
350            method to create a splash screen.
351            (ThubanApplication.ShowMainWindow): New. Show the main window.
352            Needed so the splash screen can display the mainwindow
353            (ThubanApplication.OnInit): Call the
354            new splash_screen method to determine whether the application
355            should display a splash screen. If it displays a splash screen do
356            not immediately show the main window.
357    
358    2003-02-11  Jonathan Coles  <[email protected]>
359    
360            * Thuban/Model/classification.py: Added import line to fix
361            feature conflicts between running on python2.2 and python2.1.
362    
363            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
364            onto the clinfo parameter, so removed the deepcopy().
365    
366    2003-02-10  Jonathan Coles  <[email protected]>
367    
368            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
369            Added element_open variable to track opening and closing of tags
370            so that tags that don't span more than one line are closed with
371            /> instead of </tag_name>. Use the GetDefault*() methods of
372            the Classification class.
373    
374            * Thuban/Model/classification.py (Classificaton): Added set and
375            get methods for the default data. The class also takes a layer
376            reference so that modification messages can be sent. Fixed the
377            methods to use the new ClassData class.
378            (ClassData): New class to encapsulate the classification data
379    
380            * Thuban/Model/layer.py (Layer): Remove the
381            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
382            SetDefault*() methods on the layer's classification object.
383            (Layer.__init__): Use the new SetDefault*() methods in the
384            Classification class.
385    
386            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
387            object instead of a dictionary.
388    
389            * Thuban/UI/classifier.py (ClassRenderer): New class to
390            draw the classifications in the dialog box's table.
391            (Classifier): Modified to use the ClassRenderer class.
392    
393            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
394            methods of the Classification class.
395    
396            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
397            of the ClassData class.
398    
399            * test/test_classification.py, test/test_layer.py,
400            test/test_map.py, test/test_session.py: Fix the tests to work
401            with the above code changes.
402    
403    2003-02-03  Jonathan Coles  <[email protected]>
404    
405            * Thuban/Model/classification.py (Classification): Added getNull()
406            to return the NullData reference
407    
408            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
409            Layer.SetStrokeWidth): Modified these functions to change the
410            null data in the classification rather than keep these values
411            directly in the Layer class. Menu options to change these values
412            work again.
413    
414    2003-01-28  Jonathan Coles  <[email protected]>
415    
416            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
417            Fixed crashing problem on some systems. Dialog box shows
418            classification data.
419    
420            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
421            Colors in the tree view.
422    
423            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
424            the tree info for classifications. Commented out unnecessary lines.
425    
426            * Thuban/Model/classification.py (Classification.TreeInfo): New
427            function to add information about the classification into the
428            tree view.
429    
430    2003-01-27  Jan-Oliver Wagner <[email protected]>
431    
432            * Thuban/__init__.py (_): New.
433    
434            * Thuban/Model/classification.py, Thuban/Model/extension.py,
435            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
436            Thuban/Model/session.py, Thuban/UI/application.py,
437            Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
438            Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
439            Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
440            Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
441            Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
442    
443    2003-01-27  Jonathan Coles  <[email protected]>
444    
445            * Thuban/Model/layer.py: Classification initialization calls.
446    
447            * Thuban/Model/classification.py: Created class to encapsulate
448            a layer classification. Supports specific data points and
449            ranges.
450    
451            * Thuban/Model/load.py: Added support for loading classification
452            information.
453    
454            * Thuban/Model/save.py: Added support for saving classification
455            information.
456    
457            * Thuban/UI/classifier.py: Initial class for a dialog box for
458            specifying classification information.
459    
460            * Thuban/UI/mainwindows.py: Support for opening the classifier
461            dialog.
462    
463            * Thuban/UI/renderer.py: Support for drawing a layer with the
464            classification information.
465    
466            * Data/iceland_sample_class.thuban: iceland_sample with
467            classification data.
468    
469            * test/test_classification: Tests for the Classification class.
470    
471    2002-12-09  Bernhard Herzog  <[email protected]>
472    
473            * test/test_command.py: New. Tests for the command classes.
474    
475            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
476            (Command.IsTool): New method to distinguish between command
477            switching tools and other commands.
478    
479            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
480            the tool to avoid direct assignments to instance variables
481            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
482            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
483            change the tool
484    
485            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
486            active tool's command turns insensitive, disable the tool.
487            (_tool_command): Use the new ToolCommand class
488    
489            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
490            SelectTool method to change the tool
491            (iconfile): Use the ToolCommand class
492    
493    2002-12-03  Bernhard Herzog  <[email protected]>
494    
495            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
496            the case of selected items that are not children of Layers or Maps
497            properly. Previously this bug would trigger an assertion in
498            wxWindows.
499    
500    2002-11-06  Frank Koormann  <[email protected]>
501    
502            * Thuban/UI/mainwindow.py: Altered the order of tools in the
503            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
504            Full Extent).
505    
506    2002-10-23  Bernhard Herzog  <[email protected]>
507    
508            * setup.py (setup call): version now 0.1.3
509    
510            * MANIFEST.in: Add the files in test/
511    
512            * test/README: Add note about tests requiring the iceland data
513    
514            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
515            copyright notice.
516    
517    2002-10-18  Bernhard Herzog  <[email protected]>
518    
519            * test/test_map.py
520            (TestMapWithContents.test_projected_bounding_box): Use an explicit
521            epsilon.
522    
523            * test/support.py (FloatComparisonMixin.assertFloatEqual)
524            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
525            message if the assertion fails and don't return the return value
526            of self.assert_. In assertFloatSeqEqual the return meant that not
527            all items of the sequence were compared.
528    
529    2002-09-20  Bernhard Herzog  <[email protected]>
530    
531            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
532    
533            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
534    
535            * test/test_map.py (TestMapWithContents.test_tree_info): Create
536            the string with the bounding box on the fly because of platform
537            differences in the way %g is handled.
538    
539            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
540            DBFfile too because Thuban layers can't yet cope missing DBF
541            files.
542    
543    2002-09-20  Bernhard Herzog  <[email protected]>
544    
545            * test/test_menu.py: Use initthuban instead of
546            add_thuban_dir_to_path to initialize Thuban.
547    
548            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
549            Mixin class for float comparisons
550            (SubscriberMixin): New. Mixin class to test messages sent through
551            the Connector class
552    
553            * test/README: Fix a typo and add the -v flag to the command for
554            individual tests
555    
556            * test/test_session.py: New. Test cases for Thuban.Model.session
557    
558            * test/test_proj.py: New. Test cases for Thuban.Model.proj
559    
560            * test/test_map.py: New. Test cases for Thuban.Model.map
561    
562            * test/test_layer.py: New. Test cases for Thuban.Model.layer
563    
564            * test/test_label.py: New. Test cases for Thuban.Model.label
565    
566            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
567    
568            * test/test_color.py: New. Test cases for Thuban.Model.color
569    
570            * test/test_base.py: New. Test cases for Thuban.Model.base
571    
572    2002-09-13  Bernhard Herzog  <[email protected]>
573    
574            * Thuban/Model/session.py (Session.forwarded_channels): Forward
575            the CHANGED channel too.
576    
577            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
578            CHANGED channel too.
579            (Map.__init__): Call the Modifiable constructor as well.
580    
581            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
582            event if the modified flag changes.
583            (Modifiable.changed): Tweak the doc-string.
584    
585            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
586            (MainWindow.set_position_text): Put the code that puts the text
587            with the mouse position into the status bar into the new method
588            set_position_text so that it can overwritten in derived classes.
589    
590    2002-09-12  Bernhard Herzog  <[email protected]>
591    
592            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
593            message box on the main window.
594    
595    2002-09-11  Bernhard Herzog  <[email protected]>
596    
597            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
598            the 'E' because it's less likely to interfere with other menu
599            entries.
600            (MainWindow.build_menu): remove an incorrect comment.
601    
602    2002-09-10  Bernhard Herzog  <[email protected]>
603    
604            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
605            (_tool_command): Add sensitive parameter
606            (_has_visible_map): Sensitivity callback to tools and other
607            commands that require a visible map. Use it in map_zoom_in_tool,
608            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
609            and map_full_extent
610    
611    2002-09-06  Bernhard Herzog  <[email protected]>
612    
613            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
614            VIEW_POSITION
615    
616    2002-09-04  Frank Koormann  <[email protected]>
617    
618            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
619    
620    2002-09-02  Bernhard Herzog  <[email protected]>
621    
622            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
623            wxWindows already and our implementation doesn't work correctly
624            with wxGTK 2.3:
625            (MapCanvas.__init__): Remove the instance variable
626            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
627            be drawin
628            (MapCanvas.OnIdle): Removed.
629    
630            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
631            a parameter to determine the size of the rectangle.
632            (MapCanvas.find_shape_at): Create the box around the point on a
633            layer by layer basis and make the size depend on the shape type.
634            This solves a problem with the selection of point shapes at the
635            border of the layer's bounding box
636    
637  2002-08-30  Bernhard Herzog  <[email protected]>  2002-08-30  Bernhard Herzog  <[email protected]>
638    
639          * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method          * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
# Line 64  Line 700 
700    
701          * Thuban/Model/table.py (Table.write_record): New method to write          * Thuban/Model/table.py (Table.write_record): New method to write
702          records.          records.
703          (Table.__init__): Open the DBF file for writing too.          (Table.__init__): Open the DBF file for writing too.
704    
705          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
706          into the underlying table.          into the underlying table.
# Line 102  Line 738 
738          * setup.py (ThubanInstall.run): Don't repr install_lib_orig          * setup.py (ThubanInstall.run): Don't repr install_lib_orig
739          because thubaninit_contents will do it for us.          because thubaninit_contents will do it for us.
740    
741  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16  Jan-Oliver Wagner <[email protected]>
742    
743          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
744          tree window already open          tree window already open
# Line 230  Line 866 
866          * Thuban/UI/tree.py: We can now simply subscribe to the session's          * Thuban/UI/tree.py: We can now simply subscribe to the session's
867          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
868          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
869          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
870          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
871    
872          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 291  Line 927 
927          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
928          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
929          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
930          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
931          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
932    
933  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 372  Line 1008 
1008          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
1009          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
1010    
1011  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
1012    
1013          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
1014          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 601  Line 1237 
1237          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
1238          position in the statusbar          position in the statusbar
1239    
1240  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
1241    
1242          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
1243    
1244  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
1245            
1246          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
1247    
1248          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
1249    
1250          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
1251    
1252            * Thuban/UI/tree.py (update_tree): added test for None on map bounding
1253            box
1254    
1255  2002-04-21      Jan-Oliver Wagner <[email protected]>  2002-04-21  Jan-Oliver Wagner <[email protected]>
1256    
1257          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
1258    
1259          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
1260    
1261          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
1262          icon; added map_full_extend as tool          icon; added map_full_extend as tool
1263    
1264  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
1265    
1266          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
1267          saving _new_ sessions          saving _new_ sessions
# Line 726  Line 1363 
1363    
1364          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1365          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1366    
1367  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1368    
1369          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1370          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1371    
1372          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1373          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1374          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1375          too.          too.
# Line 843  Line 1479 
1479          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1480          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1481    
1482          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1483          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1484          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1485          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1486          the application's OnInit method          the application's OnInit method
# Line 860  Line 1496 
1496          layer to the tableview dialog.          layer to the tableview dialog.
1497    
1498          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1499          (TableGrid):          (TableGrid):
1500          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1501          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1502          (TableFrame.__init__):          (TableFrame.__init__):
# Line 927  Line 1563 
1563  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1564    
1565          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1566            
1567          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1568          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1569            
1570          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1571          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1572          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 977  Line 1613 
1613          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1614          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1615          link_file method          link_file method
1616            
1617          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1618          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1619    
# Line 1014  Line 1650 
1650          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1651          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1652          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1653            
1654          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1655          installer          installer
1656    

Legend:
Removed from v.300  
changed lines
  Added in v.505

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26