/[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 1894 by bh, Thu Oct 30 18:17:17 2003 UTC revision 1934 by bh, Tue Nov 11 16:38:32 2003 UTC
# Line 1  Line 1 
1    2003-11-11  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/resource.py (get_system_proj_file): Add a filename
4            parameter so that this function can be used for all proj files in
5            Resource/Projections
6            (DEFAULT_PROJ_FILE, EPSG_PROJ_FILE): New. Predefined filenames for
7            get_system_proj_file
8    
9            * Thuban/UI/projdialog.py (ProjFrame.__init__): Instead of one
10            ProjFile self.__sysProjFile use a dictionary of system ProjFile
11            objects self._sys_proj_files
12            (ProjFrame.build_dialog): Adapt to the new changes in the
13            ProjectionList constructor. Add a check button to toggle whether
14            EPSG projections are shown
15            (ProjFrame._OnShowEPSG): New. Handler for the epsg check button
16            events.
17            (ProjFrame.load_user_proj, ProjFrame.load_system_proj): Only show
18            the busy cursor if the files have not yet been loaded by the
19            dialog.
20            (ProjFrame.load_system_proj): Add a parameter for the name of the
21            proj file. Maintain the dictionary of system projections
22            self._sys_proj_files
23    
24            * Thuban/UI/projlist.py (ProjectionList): Merge the system_projs,
25            user_projs parameters into one parameter proj_files which is a
26            list of proj files.
27            (ProjectionList._subscribe_proj_files)
28            (ProjectionList._unsubscribe_proj_files): New. Move
29            subscription/unsubscription of projfile messages to separate
30            methods
31            (ProjectionList.Destroy): The unsubscribe is now done in
32            _unsubscribe_proj_files
33            (ProjectionList.update_projections): We now have a list of proj
34            file objects
35            (ProjectionList.SetProjFiles): New method to set a new list of
36            proj file objects
37    
38            * test/test_proj.py (ProjFileReadTests.test_get_system_proj_file):
39            Specify explicitly which system proj file to load.
40    
41    2003-11-11  Bernhard Herzog  <[email protected]>
42    
43            * Thuban/Model/load.py (SessionLoader.Destroy): New. Clear all
44            instance variables to cut cyclic references. The GC would have
45            collected the loader eventually but it can happen that it doesn't
46            run at all until thuban is closed (2.3 but not 2.2 tries a bit
47            harder and forces a collection when the interpreter terminates)
48            (load_session): Call the handler's Destroy method to make sure
49            that it gets garbage collected early. Otherwise it will be
50            collected very late if at all and it holds some references to e.g.
51            shapestores and the session which can lead to leaks (of e.g. the
52            temporary files)
53    
54            * test/test_load.py (TestSingleLayer.test_leak): New. test for the
55            resource leak in load_session
56    
57    2003-11-10  Bernhard Herzog  <[email protected]>
58    
59            * Thuban/UI/baserenderer.py: Add a way to specify how layers in
60            extensions are to be rendered.
61            (_renderer_extensions): New. List with renderer for layers in
62            extensions
63            (add_renderer_extension): New. Add a renderer extension
64            (init_renderer_extensions): New. Init the renderer extensions
65            (BaseRenderer.render_map_incrementally): Search
66            _renderer_extensions for how to draw unknown layer types
67            (BaseRenderer.draw_raster_data): Add format parameter so that
68            formats other than BMP can be drawn
69            (BaseRenderer.draw_raster_layer): Pass an explicit format to
70            draw_raster_data
71    
72            * Thuban/UI/renderer.py (raster_format_map): New. Mapping form the
73            strings of the format parameter of draw_raster_data method to wx
74            constants
75            (MapRenderer.draw_raster_data): Add the format parameter and use
76            raster_format_map to map it to the right wxwindows constant for
77            wxImageFromStream
78    
79            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Add
80            the format parameter and record it
81            (TestBaseRenderer.test_raster_no_projection): check the format
82            paramter of the draw_raster_data method
83            (TestBaseRenderer.test_renderer_extension): New. Test the renderer
84            extension facility
85    
86    2003-11-07  Bernhard Herzog  <[email protected]>
87    
88            Tweak the usage of the sqlite database to make common use cases
89            more responsive. In most cases copying the data to the sqlite
90            database takes so long that using sqlite doesn't have enough
91            advantages.
92    
93            * Thuban/Model/transientdb.py (TransientTableBase.ValueRange): Add
94            comments about performance and query the min and max in separate
95            statements because only that way will indexes be used.
96            (TransientTableBase.UniqueValues): Add some comments about
97            performance.
98            (AutoTransientTable.ValueRange, AutoTransientTable.UniqueValues):
99            Do not copy the data to the transient DB but use the transient
100            copy if it exists. See the new comments for the performance trade
101            offs
102    
103            * test/test_transientdb.py
104            (TestTransientTable.test_auto_transient_table): Make sure that the
105            data is copied to the transient database at some point.
106    
107    2003-11-03  Bernhard Herzog  <[email protected]>
108    
109            * Thuban/Model/data.py (ShapefileStore.ShapesInRegion): Bind some
110            globals to locals so that it's a bit faster
111    
112    2003-11-03  Bernhard Herzog  <[email protected]>
113    
114            * Thuban/UI/baserenderer.py
115            (BaseRenderer.draw_shape_layer_incrementally): Use the ReadValue
116            method. ReadValue is faster than ReadRowAsDict since it only reads
117            one cell especially now that the dbf file objects actually
118            implement it.
119    
120            * Thuban/Model/table.py (DBFTable.ReadValue): Use the new
121            read_attribute method of the dbf objects
122    
123    2003-11-03  Bernhard Herzog  <[email protected]>
124    
125            * Extensions/profiling/profiling.py (popup_dialog_box): New config
126            variable to indicate whether the result should be shown in a
127            dialog box
128            (profile_screen_renderer, time_screen_renderer): Only show a
129            dialog box if popup_dialog_box is true.
130            (profile_screen_renderer): Flush stdout after the printing the
131            first part of the "profiling..." message
132    
133            * Thuban/UI/baserenderer.py
134            (BaseRenderer.draw_shape_layer_incrementally): Cache the pens and
135            brushes for the groups so that they're not created over and over
136            again
137    
138            * Thuban/Model/classification.py (Classification.__getattr__)
139            (Classification._compile_classification)
140            (Classification._clear_compiled_classification): New. Methods to
141            manage a 'compiled' representation of the classification groups
142            which is created on demand
143            (Classification.InsertGroup, Classification.RemoveGroup)
144            (Classification.ReplaceGroup): reset the compiled representation
145            (Classification.FindGroup): Use the compiled representation to
146            find the matching group
147            (ClassGroupRange.GetRangeTuple): New. Return the range as a tuple
148    
149    2003-10-31  Bernhard Herzog  <[email protected]>
150    
151            * Thuban/Model/classification.py (Classification.SetDefaultGroup):
152            Send a CLASS_CHANGED message
153            (Classification.RemoveGroup): Send a CLASS_CHANGED message and do
154            not return the removed group since it wasn't used.
155    
156            * test/test_classification.py
157            (TestClassification.test_set_default_group): New. Test the
158            SetDefaultGroup method
159            (TestClassification.test_insert_group): New. Test the InsertGroup
160            method
161            (TestClassification.test_remove_group): New. Test the RemoveGroup
162            method
163            (TestClassification.test_replace_group): New. Test the
164            ReplaceGroup method
165    
166    2003-10-31  Bernhard Herzog  <[email protected]>
167    
168            * test/test_classification.py (TestClassification.setUp):
169            Subscribe to the CLASS_CHANGED messages
170            (TestClassification.tearDown): New. Destroy the classification
171            properly
172            (TestClassification.test_defaults): Add tests for the default line
173            width and whether no messages were sent yet
174            (TestClassification.test_set_default_properties): Add tests for
175            messages and setting the default line width
176            (TestClassification.test_add_singleton)
177            (TestClassification.test_add_range)
178            (TestClassification.test_multiple_groups): Add tests for messages
179    
180    2003-10-31  Bernhard Herzog  <[email protected]>
181    
182            Some more refactoring in preparation for new tests:
183    
184            * test/test_classification.py (TestClassification.setUp): New.
185            Instantiate the classification here. Update the test methods
186            accordingly.
187            (TestClassification.test_multiple_groups): Make sure that the two
188            singletons matching 1 are considered different.
189    
190    2003-10-31  Bernhard Herzog  <[email protected]>
191    
192            * test/test_classification.py (red, green, blue): New. These
193            constants were used in several cases. Update the relevant methods.
194            (TestClassification.test_defaults)
195            (TestClassification.test_set_default_properties)
196            (TestClassification.test_add_singleton)
197            (TestClassification.test_add_range)
198            (TestClassification.test_multiple_groups)
199            (TestClassification.test_deepcopy): New. These were formerly all
200            part of the single method test.
201            (TestClassification.test_deepcopy): Removed.
202            (TestClassIterator): Removed. The test case is now a method of
203            TestClassification since it tests part of the public interface of
204            Classification
205            (TestClassification.test_iterator): New. Used to be
206            TestClassIterator effectively
207    
208    2003-10-31  Jan-Oliver Wagner <[email protected]>
209    
210            GUIfied the functions of the profiling extension.
211    
212            * /Extensions/profiling/__init__.py: New: Init to make this
213            directory a package.
214    
215            * Extensions/profiling/profiling.py: Moved menu entries to
216            the Extensions menu. Applied _() for strings.
217            (profile_screen_renderer): Catch the detailed printout and present
218            it in a dialog.
219            (time_screen_renderer): Raise a dialog to present the result instead
220            of printing it to stdout.
221    
222    2003-10-31  Bernhard Herzog  <[email protected]>
223    
224            * test/test_classification.py (TestClassGroupProperties)
225            (TestClassGroup, TestClassGroupDefault, TestClassGroupRange)
226            (TestClassGroupSingleton, TestClassIterator, TestClassification):
227            Split TestClassification into several classes, one for each class
228            being tested. TestClassification itself now only tests
229            Classification. This split makes changes to the tests a bit easier
230    
231    2003-10-31  Bernhard Herzog  <[email protected]>
232    
233            * Extensions/profiling/profiling.py: New. Extension to measure
234            Thuban performance
235    
236    2003-10-31  Frank Koormann <[email protected]>
237    
238            Added two items to legend popup menu: Remove Layer and Show Layer Table
239    
240            * Thuban/UI/legend.py (LegendPanel._OnRemoveLayer,
241            LegendPanel._OnShowTable): New event handlers, call the corresponding
242            mainwindow methods.
243            (LegendTree._OnRightClick): Added items to popup menu.
244    
245  2003-10-30  Bernhard Herzog  <[email protected]>  2003-10-30  Bernhard Herzog  <[email protected]>
246    
247          * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle          * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle

Legend:
Removed from v.1894  
changed lines
  Added in v.1934

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26