/[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 1760 by bh, Fri Sep 26 18:36:12 2003 UTC revision 1897 by bh, Fri Oct 31 11:55:44 2003 UTC
# Line 1  Line 1 
1    2003-10-31  Bernhard Herzog  <[email protected]>
2    
3            * Extensions/profiling/profiling.py: New. Extension to measure
4            Thuban performance
5    
6    2003-10-31  Frank Koormann <[email protected]>
7    
8            Added two items to legend popup menu: Remove Layer and Show Layer Table
9    
10            * Thuban/UI/legend.py (LegendPanel._OnRemoveLayer,
11            LegendPanel._OnShowTable): New event handlers, call the corresponding
12            mainwindow methods.
13            (LegendTree._OnRightClick): Added items to popup menu.
14    
15    2003-10-30  Bernhard Herzog  <[email protected]>
16    
17            * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle
18            EVT_WINDOW_DESTROY
19            (ThubanFrame.OnDestroy): New. Handler for EVT_WINDOW_DESTROY. Does
20            nothing but is convenient for the derived classes.
21    
22            * Thuban/UI/tableview.py
23            (TableFrame.OnDestroy, LayerTableFrame.OnDestroy): New.
24            Unsubscribe the messages here not in OnClose because that might
25            get called multiple times. Fixes RT #2196
26            (TableFrame.OnClose, LayerTableFrame.OnClose): Removed. Not needed
27            anymore.
28    
29            * README: Update the minimum requirement for wxPython. Since we
30            now use the EVT_WINDOW_DESTROY event, we need at least 2.4.0.4,
31            the version in which that was introduced for all platforms
32    
33    2003-10-30  Frank Koormann <[email protected]>
34    
35            * Thuban/UI/join.py (JoinDialog.OnJoin): Wrapped the major parts of
36            the join process in a ThubanBeginBusyCursor, ThubanEndBusyCursor
37            frame.
38    
39    2003-10-30  Jan-Oliver Wagner <[email protected]>
40    
41            Improved APR import extension, added further EPSG definitions
42            and some cleanup regarding string class.
43    
44            * test/test_proj.py (TestProjection.test_get_projection_units_geo):
45            Added test for alias 'longlat'.
46    
47            * Resources/Projections/epsg-deprecated.proj: New. Contains
48            deprecated EPSG definitions.
49    
50            * Extensions/importAPR/odb.py (ODBBaseObject.TreeInfo): Added
51            the variable names for objects.
52    
53            * Extensions/importAPR/apr.py (APR_BLnSym, APR_BMkSym, APR_BShSym): New.
54            Copied from importAPR and provided with documentation.
55    
56            * Extensions/importAPR/importAPR.py (APR_BLnSym, APR_BMkSym, APR_BShSym):
57            Moved to apr.py.
58            (APR_View): Added object ref 'ITheme'.
59    
60            * Thuban/Lib/fileutil.py, Thuban/UI/proj4dialog.py: Replaced string
61            split function by corresponding use of the string class method.
62    
63            * Thuban/Model/xmlwriter.py: Replaced string replace function by
64            corresponding string method.
65    
66    2003-10-29  Bernhard Herzog  <[email protected]>
67    
68            * Thuban/UI/baserenderer.py
69            (BaseRenderer.draw_shape_layer_incrementally): Speed up the
70            special case of a classification that only has the default group
71    
72    2003-10-27  Bernhard Herzog  <[email protected]>
73    
74            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
75    
76            * po/de.po: Update.
77    
78            * Thuban/UI/application.py
79            (ThubanApplication.ShowExceptionDialog): Handle translation of the
80            dialog message properly
81    
82    2003-10-27  Bernhard Herzog  <[email protected]>
83    
84            Rework how localization works so that we use wx's translation
85            functions when running Thuban as a normal application but not when
86            we don't need any UI, such as in the test suite. See the comment
87            in Thuban/__init__.py for details
88    
89            * Thuban/__init__.py (_): Add one level of indirection to make the
90            translation handling more flexible and to make it possible to use
91            either wx's translation services or not.
92            (gettext_identity, translation_function_installed)
93            (install_translation_function): New function to help with this
94    
95            * Thuban/UI/__init__.py: Install the wx specific translation
96            function if it's OK to do that
97    
98            * test/support.py (initthuban): Install a dummy translation
99            function so that importing Thuban.UI doesn't install a wx specific
100            one for which would need to import wxPython
101    
102    2003-10-27  Bernhard Herzog  <[email protected]>
103    
104            * HOWTO-Release: Source archives should be created first and the
105            binary packages should be created from the source archives.
106            There's an official debian package now so there's no need to test
107            the rpm on debian anymore
108    
109    2003-10-27  Bernhard Herzog  <[email protected]>
110    
111            Several rendering changes:
112    
113             - Render the selection into a separate bitmap so that only that
114               bitmap needs to be redrawn when the selection changes
115    
116             - Render incrementally showing previews and allowing interaction
117               before rendering is complete
118    
119             - Update the renderer interface a bit. Most parameters of
120               RenderMap are now parameters of the constructor
121    
122            * Thuban/UI/baserenderer.py (BaseRenderer.__init__): Add the map
123            and the update region as parameters. Update the doc-string
124            (BaseRenderer.render_map_incrementally): New. Generator function
125            to renders the map incrementally
126            (BaseRenderer.render_map): Remove the map argument (it's now in
127            the constructor) and simply iterate over the
128            render_map_incrementally generator to draw the map.
129            (BaseRenderer.draw_shape_layer_incrementally)
130            (BaseRenderer.draw_shape_layer): Renamed to
131            draw_shape_layer_incrementally and changed into a generator that
132            yields True every 500 shapes. Used by render_map_incrementally to
133            render shape layers incrementally
134    
135            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Removed the
136            map and region parameters which are now in the constructor
137            (ScreenRenderer.RenderMapIncrementally): New. Public frontend for
138            the inherited render_map_incrementally.
139            (BaseRenderer.draw_shape_layer): Removed.
140            (ScreenRenderer.draw_selection_incrementally): New. The selection
141            drawing part of the removed draw_shape_layer as a generator
142            (ScreenRenderer.layer_shapes): Update because of the region
143            parameter change
144            (ExportRenderer.__init__): New. Extend the inherited constructor
145            with the destination region for the drawing
146            (ExportRenderer.RenderMap): Removed the map and region parameters
147            which are now in the constructor
148    
149            * Thuban/UI/view.py (MapCanvas.PreviewBitmap): New. Return a
150            bitmap suitable for a preview in a tool
151            (CanvasPanTool.MouseMove): Use the PreviewBitmap method to get the
152            bitmap
153            (MapPrintout.draw_on_dc): Adapt to new renderer interface
154            (MapCanvas.OnPaint): Handle drawing the selection bitmap if it
155            exists
156            (MapCanvas.OnIdle): Update the logic to deal with incremental
157            rendering and the selection bitmap
158            (MapCanvas._do_redraw): Handle the instantiation of the render
159            iterator and the redraws during rendering
160            (MapCanvas._render_iterator): New. Generator to incrementally
161            redraw both bitmaps
162            (MapCanvas.Export): Adapt to new renderer interface.
163            (MapCanvas.full_redraw): Reset the selection bitmap and the
164            renderer iterator too
165            (MapCanvas.redraw_selection): New. Force a redraw of the selection
166            bitmap
167            (MapCanvas.shape_selected): Only redraw the selection bitmap
168    
169            * test/test_baserenderer.py
170            (TestBaseRenderer.test_polygon_no_projection)
171            (TestBaseRenderer.test_raster_no_projection)
172            (TestBaseRenderer.test_point_map_projection)
173            (TestBaseRenderer.test_point_layer_and_map_projection)
174            (TestBaseRenderer.test_point_layer_projection)
175            (TestBaseRenderer.test_point_with_classification): Adapt to new
176            renderer interface
177    
178    2003-10-24  Bernhard Herzog  <[email protected]>
179    
180            * libraries/thuban/wxproj.cpp (draw_polygon_shape)
181            (point_in_polygon_shape, shape_centroid): Raise an exception if
182            the shape can't be read. Previously invalid shape ids would lead
183            to a segfault.
184    
185            * test/test_wxproj.py (TestShapeCentroid.test_invalid_shape_id):
186            New. test whether an exception is raised for invalid shape ids
187    
188    2003-10-24  Jan-Oliver Wagner <[email protected]>
189    
190            * Thuban/Model/proj.py (Projection.GetProjectedUnits): Added 'longlat'
191            as alias for 'latlong'.
192    
193            * Thuban/UI/projdialog.py (ProjFrame.__init__): Added 'longlat'
194            as alias for 'latlong'.
195    
196    2003-10-24  Jan-Oliver Wagner <[email protected]>
197    
198            * Thuban/UI/projdialog.py (ProjFrame.proj_selection_changed): Set
199            the projection even for the UnknownPanel.
200            (UnknownProjPanel.__init__): Define the text and create the textctrl
201            widget.
202            (UnknownProjPanel._DoLayout): Replaced static text widget by the
203            textctrl created in __init__.
204            (UnknownProjPanel.SetProjection): Set the text for the text ctrl
205            including the parameters of the projection.
206            
207    2003-10-24  Jan-Oliver Wagner <[email protected]>
208    
209            * Resources/Projections/epsg.proj: New. This is a list of
210            EPSG codes with parameters for proj. The list has been
211            generated using devtools/create_epsg.py based on the
212            file nad/epsg of the proj 4.4.7 package. Four projection
213            definitions have been deleted as they are not accepted by proj:
214            "CH1903+ / LV95", "Bern 1898 (Bern) / LV03C", "CH1903 / LV03"
215            and "HD72 / EOV".
216    
217    2003-10-22  Bernhard Herzog  <[email protected]>
218    
219            Some more tweaks to the projection dialog which should fix RT
220            #1886.
221    
222            * Thuban/UI/projlist.py (ProjectionList.Destroy): Unsubscribe from
223            the ProjFile's messages and call the base class methods correctly
224            (ProjectionList.SelectProjection): Set the wxLIST_STATE_FOCUSED
225            flag on the newly selected item too. Otherwise some other item is
226            focused and the first time the focus is moved with the keyboard
227            the selection moves in unexpected ways.
228    
229            * Thuban/UI/projdialog.py (ProjFrame.__init__): Do not set the
230            focus on the OK button, only on the projection list. That way the
231            list really has the focus initially
232            (ProjFrame.OnClose): Call the projection list's Destroy method to
233            make it unsubscribe all messages
234    
235    2003-10-21  Bernhard Herzog  <[email protected]>
236    
237            Rework the projection dialog to fix a few bugs, including RT 2166
238            and most of 2168
239    
240            * Thuban/UI/projlist.py: New. The class ProjectionList is a
241            special wxListCtrl to show a list of projections in a more MVC
242            fashion
243    
244            * Thuban/UI/projdialog.py (ProjFrame): Substantial changes
245            throughout the class. The main change is to use the ProjectionList
246            class instead of a normal wxListBox. Also, add an explicit
247            "Unknown" projection to the projection choice control.
248            (ProjPanel.__init__): Add an "unknown" ellipsoid
249            (TMPanel.__init__, LCCPanel.__init__): Tweak the order of
250            instantiation of the panel's controls to make the tab-order more
251            natural
252    
253    2003-10-21  Bernhard Herzog  <[email protected]>
254    
255            * test/test_load.py (TestSingleLayer.file_contents)
256            (TestSingleLayer.test): Add non-ascii characters to the titles of
257            session, map and layer. This is effectively a port of the
258            TestUnicodeStrings test in test_load_0_8.py which for some reason
259            was only added there.
260    
261            * test/test_load_0_9.py (TestSingleLayer.file_contents)
262            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
263            characters to the titles of session, map and layer,.
264    
265    2003-10-21  Bernhard Herzog  <[email protected]>
266    
267            Add EPSG projection handling to .thuban files
268    
269            * test/test_save.py (SaveSessionTest.dtd)
270            (SaveSessionTest.testEmptySession)
271            (SaveSessionTest.testLayerProjection)
272            (SaveSessionTest.testRasterLayer)
273            (SaveSessionTest.testClassifiedLayer)
274            (SaveSessionTest.test_dbf_table)
275            (SaveSessionTest.test_joined_table)
276            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
277            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
278            use a and epsg projection to test saving them
279    
280            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
281            namespace
282            (TestLayerVisibility.file_contents, TestLabels.file_contents)
283            (TestLayerProjection.file_contents)
284            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
285            (TestPostGISLayer.file_contents)
286            (TestPostGISLayerPassword.file_contents)
287            (TestLoadError.file_contents, TestLoadError.test): Update to use
288            1.0-dev namespace
289            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
290            use 1.0-dev namespace and use an EPSG projection to test whether
291            loading it works
292    
293            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
294            as of Thuban 0.9. These are now tests to determine whether Thuban
295            can still read files generated by Thuban 0.9
296    
297            * Thuban/Model/save.py (SessionSaver.write)
298            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
299            namespace
300            (SessionSaver.write_projection): Write the projection's epsg
301            attribute
302    
303            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
304            thuban-1.0-dev.dtd namespace
305            (SessionLoader.check_attrs): Allow a callable object as conversion
306            too
307            (SessionLoader.start_projection, SessionLoader.end_projection)
308            (SessionLoader.start_parameter): Handle the epsg attribute and
309            rename a few instance variables to lower case
310    
311            * Resources/XML/thuban-1.0.dtd: New. Only difference to
312            thuban-0.9.dtd is the epsg attribute for projections.
313    
314    2003-10-21  Bernhard Herzog  <[email protected]>
315    
316            * test/runtests.py (main): Let the user specify which tests to run
317            on the command line
318    
319            * test/support.py (ThubanTestResult.getDescription): Override to
320            give a better short description. The description can be used as a
321            parameter to run_tests to run that particular test in isolation.
322    
323    2003-10-21  Frank Koormann   <[email protected]>
324    
325            Popup menu for legend. Scheduled for the 1.2 release this was too
326            simple to implement: The popup menu is bound to the legend tree, while
327            the events are hanlded by its anchestor, the legend panel. This
328            allows reuse of all the event handlers already implemented for the
329            legend toolbar buttons.
330    
331            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
332            to add handlers for the events issued by the popup menu.
333            (LegendPanel._OnToggleVisibility): Handler for toggling layer
334            visibility event
335            (LegendPanel._OnProjection): Handler for layer projection event.
336            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
337            (LegendTree._OnRightClick): Event handler for right click, select item
338            and pop up menu.
339            (LegendTree.ToggleVisibility): Toggle layer visibility
340            (LegendTree.LayerProjection): Raise layer projection dialog for
341            current layer.
342    
343    2003-10-21  Bernhard Herzog  <[email protected]>
344    
345            * Resources/Projections/defaults.proj: Use correct DOCTYPE
346            declaration. The top-level element is projectionlist not projfile
347    
348    2003-10-20  Bernhard Herzog  <[email protected]>
349    
350            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
351            method to write a projfile and display a busy cursor and error
352            dialogs.
353            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
354            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
355            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
356            busy cursor while loading the user and system prj files.
357    
358    2003-10-16  Bernhard Herzog  <[email protected]>
359    
360            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
361            ProjFile objects
362            (clear_proj_file_cache): New function to clear the cache. Mainly
363            useful for use by the test suite
364            (read_proj_file): Use the cache.
365    
366            * test/test_proj.py (TestProjFile): Clarify the doc-string
367            (ProjFileReadTests): Update doc-string
368            (ProjFileReadTests.test_get_system_proj_file): Check whether the
369            system proj files is cached.
370            (ProjFileLoadTestCase): New base class for the proj file tests
371            derived from support.FileLoadTestCase to provide some common
372            behavior.
373            (TestLoadingProjFile)
374            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
375            (TestProjFileWithInvalidParameters.file_contents): Derive from
376            ProjFileLoadTestCase
377            (TestLoadingProjFile.test_caching): New. Test whether the cache
378            works
379    
380    2003-10-16      Silke Reimer    <[email protected]>
381    
382            * debian/*: New directory with configuration files for building a thuban
383              deb-package.
384    
385    2003-10-14  Bernhard Herzog  <[email protected]>
386    
387            * test/test_proj.py: Execute support.run_tests when run as
388            __main__ so that missing unsubscribes are detected
389            (TestProjFile.tearDown): Destroy the proj_file properly
390    
391    2003-10-14  Bernhard Herzog  <[email protected]>
392    
393            * Thuban/Model/messages.py (PROJECTION_ADDED)
394            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
395            the ProjFile objects
396    
397            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
398            easily send messages when the projections change
399            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
400            when the change was successful
401    
402            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
403            proj file messages
404            (TestProjFile.test_add_remove)
405            (TestProjFile.test_remove_non_existing)
406            (TestProjFile.test_replace)
407            (TestProjFile.test_replace_non_existing): Test whether the right
408            messages are sent
409    
410    2003-10-14  Bernhard Herzog  <[email protected]>
411    
412            * test/test_proj.py (TestProjFile.test): Refactor into several
413            tests
414            (TestProjFile.test_add_remove)
415            (TestProjFile.test_remove_non_existing)
416            (TestProjFile.test_replace)
417            (TestProjFile.test_replace_non_existing): Some of the new
418            individual test cases
419            (TestProjFileSimple): New class for the rest of the test cases
420            that came out of the refactoring
421            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
422            derived classes don't have to
423    
424    2003-10-13  Bernhard Herzog  <[email protected]>
425    
426            Add an optional EPSG code to the projection objects and extend the
427            .proj file format accordingly.
428    
429            * Resources/XML/projfile.dtd (element projection): Add epsg
430            attribute
431    
432            * Thuban/Model/proj.py (Projection.__init__): New parameter and
433            instance variable epsg. Update doc-string
434            (Projection.EPSGCode, Projection.Label): New methods to provide
435            access to EPSG code and a label for use in dialogs
436    
437            * Thuban/Model/resource.py (ProjFileReader.start_projection)
438            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
439            Handle the epsg code attribute when reading or writing proj files
440    
441            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
442            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
443            (ProjFrame.__FillAvailList): Use the projection's Label method to
444            get the string for the list box
445    
446            * test/test_proj.py (TestProjection.test_label)
447            (TestProjection.test_label_epsg)
448            (TestProjection.test_epsgcode_for_non_epsg_projection)
449            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
450            for the label and EPSGCode methods
451            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
452            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
453            objects in the test cases and put the expected contents into the
454            test case methods too. Update doTestWrite accordingly
455            (TestLoadingProjFile)
456            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
457            read tests from TestProjFile.
458            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
459            tests are now in the new classes.
460            (sample_projfile, sample_projfile_data)
461            (sample_projfile2, sample_projfile_data2): Removed. Not used
462            anymore.
463            (TestProjFile.test_read_unreadable_file): No need to reset the
464            permissions at the end anymore since we use a unique filename
465    
466    2003-10-13  Bernhard Herzog  <[email protected]>
467    
468            * test/test_proj.py: Some more refactoring of the test cases
469            (ProjFileTest): New base class for the proj file tests.
470            (TestProjFile): Derive from ProjFileTest
471            (TestProjFile.test_read_unreadable_file)
472            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
473            the new filename method to get a unique filename
474            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
475            (WriteProjFileTests): New class for proj file write tests.
476            Contains the write test that were in TestProjFile originally.
477    
478    2003-10-13  Bernhard Herzog  <[email protected]>
479    
480            * test/test_proj.py (TestProjFile.testRead)
481            (TestProjFile.test_read_non_existing_file)
482            (TestProjFile.test_read_unreadable_file)
483            (TestProjFile.test_read_empty_file): Split into several methods.
484    
485    2003-10-10  Bernhard Herzog  <[email protected]>
486    
487            * Thuban/UI/sizers.py: New file with custom sizers.
488    
489            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
490            all projection type specific panels and put them into a
491            NotebookLikeSizer. This way the dialog doesn't change its size
492            when a different projection is selected
493            (ProjFrame.__init__): Rename projection_panels
494            projection_panel_defs and reuse projection_panels for a list of
495            the instantiated panels.
496            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
497            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
498            the panels
499            (UnknownProjPanel._DoLayout): Place the newlines in the message
500            differently to make the panel narrower.
501            (TMPanel._DoLayout): Layout the parameters in one column.
502    
503    2003-10-10  Bernhard Herzog  <[email protected]>
504    
505            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
506            that contains all the setup for the dialog's widgets, layout and
507            event handling.
508            (__): Call build_dialog to build the dialog.
509            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
510            Their functionality is now in build_dialog
511            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
512            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
513            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
514            different widget names and hierarchy introduced with build_dialog.
515    
516    2003-10-10  Bernhard Herzog  <[email protected]>
517    
518            * README: Fix typo.
519    
520    2003-10-09  Bernhard Herzog  <[email protected]>
521    
522            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
523            projection is already in the list. This is *a lot* faster when
524            loading files with hundreds of projections since it saves a linear
525            search. OTOH this will allow adding the same projection to the
526            user.proj file multiple times in the projection dialog but we'll
527            deal with that later
528    
529    2003-10-09  Jan-Oliver Wagner <[email protected]>
530    
531            * devtools: New. Directory for developer tools that are not intended
532            for the regular user.
533    
534            * devtools/create_epsg.py: New. Convert the epsg file of proj into
535            a python .proj file.
536    
537    2003-10-09  Bernhard Herzog  <[email protected]>
538    
539            * test/test_proj.py
540            (TestProjection.test_get_parameter_without_equals_sign): New. Test
541            whether GetParameter handles parameters without "=" sign correctly
542    
543            * Thuban/Model/proj.py (Projection.GetParameter): Handle
544            parameters that do not contain a "=". Update the doc-string
545    
546    2003-10-08  Bernhard Herzog  <[email protected]>
547    
548            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
549            length limit on the projname text control
550    
551    2003-10-08  Bernhard Herzog  <[email protected]>
552    
553            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
554            (TestProjection.test_get_projection_units_normal): New. Tests for
555            the Projection.GetProjectedUnits method
556    
557    2003-10-08  Jan-Oliver Wagner <[email protected]>
558    
559            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
560            Added missing 'val' parameter.
561    
562    2003-10-08  Bernhard Herzog  <[email protected]>
563    
564            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
565            projection type of the currently selected projection is not known,
566            i.e. there's no panel for it, use the UnknownProjPanel
567            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
568            the actual replacing of the proj panel into the new method
569            _show_proj_panel.
570            (UnknownProjPanel): Add doc-string.
571            (UnknownProjPanel._DoLayout): Insert a newline into the text so
572            that the panel is not so wide.
573    
574    2003-10-08  Bernhard Herzog  <[email protected]>
575    
576            * Thuban/Model/resource.py (read_proj_file): Return the warnings
577            too. Update the doc-string
578            (get_proj_files): Removed. It wasn't used anywhere
579            (get_system_proj_files, get_system_proj_file): Rename to
580            get_system_proj_file and return the ProjFile object and not a list
581            of ProjFile objects. Update the callers.
582            (get_user_proj_files, get_user_proj_file): Rename to
583            get_user_proj_file return the ProjFile object and not a list of
584            ProjFile objects. Update the callers.
585            (ProjFileReader.__init__): New instance variable for the warnings.
586            Rename the __pf ivar to projfile. Update the methods referring to
587            __pf
588            (ProjFileReader.end_projection): Catch any errors raised when
589            instantiating the projection and record that as an error. The
590            projection will not be in the final ProjFile object.
591            (ProjFileReader.GetWarnings): New method to return the warnings.
592    
593            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
594            show the warnings from the projfile reader
595            (ProjFrame._OnImport): Deal with any warnings returned by
596            read_proj_file
597            (ProjFrame.__FillAvailList): Deal with any warnings returned by
598            get_system_proj_file or get_user_proj_file.
599    
600            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
601            (TestProjFileWithInvalidParameters.file_contents): New test cases
602            to test whether read_proj_file handles invalid projection
603            parameters correctly
604            (TestProjFile.test_get_system_proj_file): New. Simple test for
605            resource.get_system_proj_file
606    
607    2003-10-07  Bernhard Herzog  <[email protected]>
608    
609            * test/test_derivedshapestore.py
610            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
611            properly so that the temporary directories get deleted correctly
612    
613    2003-10-06  Bernhard Herzog  <[email protected]>
614    
615            Handle the title changes in a proper MVC way.
616    
617            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
618            canvas' TITLE_CHANGED messages
619            (MainWindow.update_title): New. Update the main window's title
620            (MainWindow.__SetTitle): Removed. Use update_title instead.
621            (MainWindow.SetMap): Use update_title instead of __SetTitle
622            (MainWindow.RenameMap): Do change the window title explicitly
623            here. That's handled in a proper MVC way now.
624            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
625            messages
626    
627            * Thuban/Lib/connector.py (Conduit): New class to help classes
628            that forward messages
629    
630            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
631            (ViewPort): Derive from Conduit instead of Publisher
632            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
633            when calling the inherited versions
634            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
635            methods to subscribe and unsubscribe map messages
636            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
637            handle the map subscriptions
638            (ViewPort.Map, ViewPort.map_projection_changed)
639            (ViewPort.layer_projection_changed): Add or update doc-strings
640    
641            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
642            typo
643            (MyConduit): Helper class for the Conduit test.
644            (TestConduit): Test cases for Conduit
645    
646            * test/test_connector.py: Use support.run_tests as main.
647    
648            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
649            the TITLE_CHANGED messages
650            (ViewPortTest.test_forwarding_title_changed): New test to check
651            whether the viewport forwards the map's TITLE_CHANGED messages
652            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
653            after the port's because the latter may require a still functional
654            map.
655    
656    2003-10-06  Bernhard Herzog  <[email protected]>
657    
658            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
659            doc-string
660    
661    2003-10-06  Bernhard Herzog  <[email protected]>
662    
663            * test/test_viewport.py (ViewPortTest.setUp)
664            (SimpleViewPortTest.test_init_with_size): Move the test for the
665            initial size as a constructor parameter from ViewPortTest.setUp
666            method to a new separate test in SimpleViewPortTest.
667    
668    2003-10-06  Bernhard Herzog  <[email protected]>
669    
670            * test/test_viewport.py (MockView): New class derived from
671            ViewPort with a mock implementation of GetTextExtent to be used in
672            the test cases
673            (ViewPortTest.setUp): Use MockView instead of ViewPort
674    
675            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
676            into what would be a "pure virtual function" in C++: always raise
677            NotImplementedError. Mock implementations for test cases don't
678            belong into the real code
679    
680    2003-10-02  Bernhard Herzog  <[email protected]>
681    
682            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
683            close the dbf file we create so that it's contents have been
684            written properly.
685    
686            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
687            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
688            Update to shapelib 1.2.10
689    
690    2003-10-01  Jan-Oliver Wagner <[email protected]>
691    
692            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
693            it annoys lintian which warns about these files not being
694            executable. The #! isn't necessary here since if you absolutely
695            must execute them you can always say "python <filename>".
696    
697  2003-09-26  Bernhard Herzog  <[email protected]>  2003-09-26  Bernhard Herzog  <[email protected]>
698    
699          * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's          * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
# Line 1421  Line 2117 
2117    
2118          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
2119          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
2120          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
2121          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
2122    
2123          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1760  
changed lines
  Added in v.1897

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26