/[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 1191 by jonathan, Thu Jun 12 17:01:45 2003 UTC revision 1325 by frank, Tue Jul 1 09:29:27 2003 UTC
# Line 1  Line 1 
1    2003-07-01  Frank Koormann   <[email protected]>
2    
3            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
4            Reverse List of layers to render in same order as in desktop legend.
5    
6    2003-06-30  Jonathan Coles   <[email protected]>
7    
8            * Thuban/version.py: SQLite/PySQLite version dependencies
9            were too high.
10    
11    2003-06-30  Jonathan Coles   <[email protected]>
12    
13            * Thuban/version.py: Update version to 0.8.1
14            
15            * MANIFEST.in: Added Projections so that default.proj is
16            included.
17    
18    2003-06-26  Jonathan Coles   <[email protected]>
19    
20            New About box with lots more information including library
21            versions and credits. More/better version checking before
22            Thuban starts.
23    
24            * Thuban/UI/about.py: New. New About box that displays
25            library version information and credits.
26    
27            * Thuban/version.py: Added new 'versions' dictionary which
28            contains the verions of various libraries which are checked
29            when the module loads.
30            (verify_versions): Check all version numbers and returns
31            a list of errors.
32    
33            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
34            Reset the status of the buttons as the situation warrants,
35            but in a better more reliable way by not relying on the
36            current status to determine what needs to change.
37    
38            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
39            (verify_versions): Remove most of the code since it is
40            now in Thuban.version.verify_versions.o
41    
42            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
43            About box in Thuban.UI.about.
44    
45            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
46            Returns the version of gdal library being used as a string.
47    
48            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
49            Removed.
50            (get_proj_version): Return the version of PROJ that the file
51            was compiled with.
52            (get_gtk_version): Return th version of GTK that the file
53            was compiled with.
54    
55    2003-06-25  Jonathan Coles   <[email protected]>
56    
57            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
58            of the SelectPropertiesDialog should be self so the window
59            appears on top.
60            (ClassGroupPropertiesCtrl.DoEdit): The parent
61            of the SelectPropertiesDialog should be self so the window
62            appears on top.
63    
64            * Thuban/UI/resource.py: Cleaned up how we determine file
65            extensions.
66            (GetImageResource): Return an wxImage from our Resources.
67    
68    2003-06-24  Jonathan Coles   <[email protected]>
69    
70            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
71            Check that a layer has a classification before trying
72            to get it. Raster layers don't have classifications.
73    
74    2003-06-23  Jonathan Coles   <[email protected]>
75            
76            * setup.py: Add Resources/XML to resource list.
77        
78    2003-06-23  Jonathan Coles   <[email protected]>
79    
80            * setup.cfg: Fix copyright dates
81        
82    2003-06-23  Jonathan Coles   <[email protected]>
83    
84            * MANIFEST.in: Update with Resources/XML
85    
86            * setup.py: Don't include Locale resources yet as we don't
87            have any and it causes problems building the distribution
88            for Windows. Update version to 0.8.0.
89    
90            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
91    
92            * Thuban/UI/mainwindow.py: Add blank line at the end because
93            file was not being read correctly building the Windows
94            distribution.
95    
96    2003-06-23  Jonathan Coles   <[email protected]>
97    
98            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
99    
100            * Thuban/version.py: Temporarily update longversion for
101            the 0.8 release so that it doesn't have the cvs revision.
102    
103    2003-06-23  Jonathan Coles   <[email protected]>
104    
105            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
106            to make sure that we don't create reentrant possibilities with
107            wxYield.
108    
109            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
110            directly to avoid the wxSafeYield() call which generates an
111            OnPaint event causing infinite recursion. Don't try to catch
112            exception anymore. This was for before there were limits on map
113            scaling.
114    
115    2003-06-23  Bernhard Herzog  <[email protected]>
116    
117            Bug fix for RT #1961:
118    
119            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
120            Register DerivedShapestores with the session
121    
122            * Thuban/Model/session.py (Session.Tables): Make sure each table
123            is only listed once.
124    
125            * test/test_load.py (TestJoinedTable.test): Add check_format call.
126            Update file contents to match the one written out.
127    
128    2003-06-20  Bernhard Herzog  <[email protected]>
129    
130            * test/xmlsupport.py (SaxEventLister.startElementNS)
131            (SaxEventLister.endElementNS): Do not include the qname. Python
132            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
133            is (presumably incorrectly) None, whereas it's a string with the
134            element name in the later versions.
135    
136            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
137            (TestEventList.test_even_list_namespace): Update tests to reflect
138            the new behaviour
139            (TestEventList.test_even_list_id_normalization): Fix doc-string
140    
141    2003-06-20  Jonathan Coles   <[email protected]>
142    
143            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
144            by deriving classes to determine if that layer supports shapes.
145            (Layer): Override HasShapes and return true.
146    
147            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
148            instead of a direct call to wx[Begin|End]CusyCursor().
149            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
150            table data.
151    
152            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
153            New. Wrappers around the wxWindows functions that allow us to
154            make additional calls such as wxYield which gives the native
155            system a chance to update the cursor correctly.
156    
157            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
158            instead of a direct call to wx[Begin|End]CusyCursor().
159    
160            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
161            instead of a direct call to wx[Begin|End]CusyCursor().
162            (MapCanvas.find_shape_at): Check if the current search layer
163            support shapes, otherwise go on to the next layer.
164    
165            * test/test_layer.py: Add tests in each type of layer for
166            HasClassification() and HasShapes()
167    
168    2003-06-20  Jonathan Coles   <[email protected]>
169    
170            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
171            turning on the busy cursor to allow the system to change the
172            cursor before we begin painting. This fixes a problem that
173            was occuring only under GTK. Fixes RTbug #1840.
174    
175    2003-06-20  Bernhard Herzog  <[email protected]>
176    
177            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
178            version.
179    
180            * Thuban/Model/save.py (sort_data_stores): New. Make topological
181            sort of the data sources so they can be written with sources that
182            data sources that depend on other data sources come after the
183            sources they depend on.
184            (SessionSaver.__init__): Add idmap instance variable to map from
185            objects to the ids used in the file.
186            (SessionSaver.get_id, SessionSaver.define_id)
187            (SessionSaver.has_id): New. Methods to manage the idmap
188            (SessionSaver.write): Use thuban-0.8.dtd
189            (SessionSaver.write_session): Add a namespace on the session and
190            write out the data sources before the maps.
191            (SessionSaver.write_data_containers): New. Write the data
192            containers.
193            (SessionSaver.write_layer): Layer elements now refer to a
194            shapestore and don't contain filenames anymore.
195    
196            * Thuban/Model/load.py (LoadError): Exception class to raise when
197            errors in the files are discovered
198            (SessionLoader.__init__): Define dispatchers for elements with a
199            thuban-0.8 namespace too.
200            (SessionLoader.check_attrs): New helper method to check and
201            convert attributes
202            (AttrDesc): New. Helper class for SessionLoader.check_attrs
203            (SessionLoader.start_fileshapesource)
204            (SessionLoader.start_derivedshapesource)
205            (SessionLoader.start_filetable, SessionLoader.start_jointable):
206            Handlers for the new elements in the new fileformat
207            (SessionLoader.start_layer): Handle the shapestore attribute in
208            addition to filename.
209            (SessionLoader.start_table, SessionLoader.end_table): Removed.
210            They were never used in the old formats and aren't needed for the
211            new.
212    
213            * Thuban/Model/session.py (Session.DataContainers): New method to
214            return all "data containers", i.e. shapestores and tables
215    
216            * test/xmlsupport.py (SaxEventLister.__init__)
217            (SaxEventLister.startElementNS, sax_eventlist): Add support to
218            normalize IDs.
219    
220            * test/test_xmlsupport.py
221            (TestEventList.test_even_list_id_normalization): New test case for
222            id normalization
223    
224            * test/test_load.py (LoadSessionTest.check_format): Use ID
225            normalization
226            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
227            class atrributes used for ID normalization
228            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
229            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
230            file format
231            (TestJoinedTable): New test for loading sessions with joined
232            tables.
233            (TestLoadError): New. Test whether missing required attributes
234            cause a LoadError.
235    
236            * test/test_save.py (SaveSessionTest.thubanids)
237            (SaveSessionTest.thubanidrefs): New class attributes for ID
238            normalization in .thuban files.
239            (SaveSessionTest.compare_xml): Use id-normalization.
240            (SaveSessionTest.testEmptySession)
241            (SaveSessionTest.testLayerProjection)
242            (SaveSessionTest.testRasterLayer)
243            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
244            (SaveSessionTest.testLayerProjection): The filename used was the
245            same as for testSingleLayer. Use a different one.
246            (SaveSessionTest.test_dbf_table)
247            (SaveSessionTest.test_joined_table): New test cases for saving the
248            new data sources structures.
249            (TestStoreSort, MockDataStore): Classes to test the sorting of the
250            data stores for writing.
251    
252            * test/runtests.py: Add CVS keywords
253    
254    2003-06-20  Jonathan Coles   <[email protected]>
255    
256            * test/test_session.py
257            (UnreferencedTablesTests.test_unreferenced_tables_with_joins):
258            Use the cultural_landmark-point.dbf file for the store so that
259            the table rows and shape count match.
260    
261    2003-06-20  Jonathan Coles   <[email protected]>
262    
263            * Thuban/Model/data.py (DerivedShapeStore.__init__): Raise
264            an exception if the number of shapes is different from the
265            number of rows in the table. Address RTbug #1933.
266    
267            * test/test_layer.py (TestLayer.test_derived_store): Add
268            a test for the new exception in DerivedShapeStore.__init__.
269    
270            * test/support.py (FloatTestCase): Removed since there is
271            already FloatComparisonMixin. Fixes RTbug #1954.
272            (FloatComparisonMixin.assertFloatEqual): Include test for
273            infinity that was part of FloatTestCase.
274    
275            * test/test_range.py (RangeTest): Inherit from
276            support.FloatComparisonMixin now that we don't have
277            support.FloatTestCase.
278    
279    2003-06-20  Bernhard Herzog  <[email protected]>
280    
281            * test/test_save.py (SaxEventLister, sax_eventlist): Removed. Use
282            the implementation in xmlsupport instead.
283            (SaveSessionTest.compare_xml): sax_eventlist is now in xmlsupport
284    
285            * test/test_proj.py: Import sax_eventlist from xmlsupport instead
286            of test_save
287    
288    2003-06-20  Bernhard Herzog  <[email protected]>
289    
290            * test/test_load.py (LoadSessionTest.check_format): New helper
291            method to make sure the test files we load might have been written
292            by the current thuban version.
293            (ClassificationTest.TestLayers, TestSingleLayer.test)
294            (TestLayerVisibility.test, TestClassification.test)
295            (TestLabels.test, TestLayerProjection.test, TestRasterLayer.test):
296            Add check_format() calls and fix the thuban data to match the data
297            that would be written by saving the session loaded from it.
298    
299            * test/xmlsupport.py (SaxEventLister, sax_eventlist): Copies of
300            the same class and function in test_save.
301    
302            * test/test_xmlsupport.py (TestEventList): New. test cases for
303            sax_eventlist
304    
305    2003-06-20  Bernhard Herzog  <[email protected]>
306    
307            * Resources/XML/thuban.dtd: Add comment about which versions of
308            Thuban are covered by this DTD
309            (map): Fix content model for layers and raster layers. There can
310            be any number or layers and raster layers in any order.
311    
312    2003-06-20  Jonathan Coles   <[email protected]>
313    
314            This is mainly about fixing RTbug #1949.
315    
316            * Thuban/Model/classification.py: Remove "from __future__"
317            import statement since python 2.2 is the earliest supported
318            version.
319    
320            * Thuban/Model/proj.py (Projection.GetProjectedUnits): New.
321            Currently returns PROJ_UNITS_METERS or PROJ_UNITS_DEGREES
322            depending on the units this projection *forwards* into.
323    
324            * Thuban/Model/save.py (SessionSaver.write_classification):
325            Remove unnecessary use of lambdas and nested functions.
326    
327            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Do scale
328            adjustment here if the map projection uses degrees.
329    
330            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Remove
331            scale adjust code since it is now done before calling
332            this method. Don't do anything if the map projection
333            is None.
334    
335    2003-06-19  Bernhard Herzog  <[email protected]>
336    
337            Move version specific load tests to their own file.
338    
339            * test/test_load.py: Expand the doc-string to explain a bit how to
340            handle file format changes.
341            (TestClassification.test): Update the docstring as this test is
342            not about Thuban 0.2 anymore.
343    
344            * test/test_load_0_2.py: New file with the load tests for thuban
345            files created with Thuban 0.2 and earlier.
346    
347    2003-06-19  Bernhard Herzog  <[email protected]>
348    
349            Add XML validation to some of the tests. Validation will only be
350            done if pyRXP is installed (http://reportlab.com/xml/pyrxp.html).
351            To make the DTD available to the test cases it's moved into
352            Resources/XML
353    
354            * Resources/XML/thuban.dtd: New. This is now the real Thuban DTD
355            for versions up to and including 0.2. Two slight changes: added an
356            encoding specification and fixed the comment which refered to
357            GRASS, not Thuban
358    
359            * test/xmlsupport.py: New support module for tests involving XML.
360            Currently there's a mix-in class for XML validation.
361    
362            * test/test_xmlsupport.py: New. Tests for the xmlsupport module
363    
364            * test/test_save.py (SaveSessionTest): Derive from ValidationTest
365            so that we can validate the
366            (SaveSessionTest.testEmptySession)
367            (SaveSessionTest.testSingleLayer)
368            (SaveSessionTest.testSingleLayer)
369            (SaveSessionTest.testLayerProjection)
370            (SaveSessionTest.testRasterLayer)
371            (SaveSessionTest.testClassifiedLayer): Validate the generated XML
372    
373            * test/runtests.py (main): Call print_additional_summary instead
374            of print_garbage_information
375    
376            * test/support.py (resource_dir): New function to return the
377            "Resource" subdirectory
378            (print_additional_summary): New function to combine several
379            summary functions
380            (run_tests): Use print_additional_summary instead of calling
381            print_garbage_information directly
382    
383    2003-06-19  Bernhard Herzog  <[email protected]>
384    
385            * Doc/thuban.dtd (classification): Correct the content model of
386            the classification element.
387            (projection): Add the "name" attribute
388    
389    2003-06-19  Frank Koormann   <[email protected]>
390    
391            MERGE from the greater-ms3 branch.
392    
393            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
394            scale if projection is latlong to get better estimate.
395    
396            Fix problem of hidden properties dialog under windows after double
397            click on layer tree:
398            The tree control always gets an Expanded / Collapsed event after
399            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
400            raises the already displayed window.
401    
402            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
403            raiseProperties initialized to prevent endless loops
404            (LegendTree._OnItemActivated): Depending on self.raiseProperties
405            simply raise the properties or open the dialog and issue a second
406            event.
407    
408    2003-06-18  Jonathan Coles   <[email protected]>
409    
410            * setup.py: Fix a few problems that occured under Windows.
411    
412    2003-06-18  Jonathan Coles   <[email protected]>
413    
414            When Thuban loaded the map was redrawn twice because the
415            legend was being opened after the mainwindow was created
416            and not during its creation. This meant the map was drawn
417            initially and then had to be redrawn when the legend
418            caused the display to change. Now the legend is opened
419            in the mainwindow constructor which resolves this issue.
420    
421            Also, although we were checking for the existence of
422            gdal and gdalwarp modules, the gdalwarp extension was
423            still being compiled (which may fail if the system doesn't
424            have gdal installed). the build_ext command to setup.py
425            now accepts the flags --with-gdal and --without-gdal.
426            If --without-gdal is specified setup.py will try to
427            use the gdal parameters specified by gdal-config. Under
428            windows, those parameters have to be set in setup.py
429            as with proj4 an wxWindows.
430    
431            * setup.py: Use a list instead of seperate variables for
432            extension parameters so we can create a generic function
433            that runs an appropriate *-config script.
434            (run_cs_script): Renamed from run_wx_script and modified
435            to accept a second argument which is a list of lists to
436            be filled in by the values returned from running the command.
437            (thuban_build_ext): New. Extends the build_ext command and
438            provides the options --with-gdal/--without-gdal which then
439            optionally includes the gdalwarp extension.
440    
441            * Thuban/Model/resource.py: First check if we can import
442            the gdalwarp Thuban extension before checking for gdal.
443            Also added some comments.
444            
445            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Check if
446            the map is None which may be the case if none has been loaded
447            yet.
448    
449            * Thuban/UI/main.py (main): Remove call to ShowLegend.
450    
451            * Thuban/UI/mainwindow.py (MainWindow.__init__): Call ShowLegend().
452    
453            * Thuban/UI/renderer.py: Check for gdal support before importing
454            gdalwarp.
455            (MapRenderer.render_map): Only try to optimize if we have gdal
456            support otherwise nothing will get drawn.
457    
458            * Thuban/UI/view.py (MapCanvas.FitMapToWindow): This may be called
459            during startup before a map has been created. Check if map is None
460            before using it and do nothing if it is.
461    
462    2003-06-17  Jonathan Coles   <[email protected]>
463    
464            Fix the problem with raster layers under Windows that caused
465            Thuban to crash. The view should respond to layer projection
466            changed events to update the display. Changes to a projection
467            should not cause the map to be set to full extent.
468            
469            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
470            current_map_proj to remember the current map projection so that
471            when the projection changes we know what the previous projection
472            was.
473            (MapCanvas.SetMap): Unsubscribe and subscribe to
474            LAYER_PROJECTION_CHANGED events.
475            (MapCanvas.projection_changed): Split into two methods that respond
476            to map and layer projection changes.
477            (MapCanvas.map_projection_changed): New. Takes the current view and
478            projects it using the new projection. This does not cause the
479            map to be redrawn at full extent.
480            (MapCanvas.layer_projection_changed): New. Cause a redraw which
481            will draw each layer in its new projection.
482            
483            * extensions/thuban/bmpdataset.cpp (BMPDataset::Open): Call
484            VSIFClose() not VSIFCloseL() to close the file. Fixes a crash
485            under Windows.
486            
487            * extensions/thuban/gdalwarp.cpp (MFILENAME): Padding should be
488            to twice sizeof(void*) because there are two digits for each
489            hex byte.
490    
491    2003-06-16  Bernhard Herzog  <[email protected]>
492    
493            Update to the layer interface: Direct access to the table,
494            shapetable, shapefile and filename attributes is now actively
495            deprecated by issuing deprecation warnings for all places where
496            this happens.
497    
498            * Thuban/Model/layer.py (Layer.__getattr__): New. Implement access
499            to the instance variables table, shapetable, shapefile and
500            filename via __getattr__ so that we can issue a deprecation
501            warning.
502            (Layer.SetShapeStore): Don't set the deprecated instance variables
503            any more
504            (Layer.SetShapeStore): Don't use deprecated layer instance
505            variables
506            (Layer.Destroy): No need to explicitly remove the instance
507            variables any more
508            (Layer.GetFieldType, Layer.Shape): Don't use deprecated layer
509            instance variables
510    
511            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
512            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve)
513            (GenQuantilesPanel.GetList, GenQuantilesPanel.OnRetrieve): Don't
514            use deprecated layer instance variables
515    
516            * Thuban/UI/classifier.py (Classifier.__init__): Don't use
517            deprecated layer instance variables
518    
519            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape)
520            (IdentifyGridCtrl.selected_shape): Don't set the deprecated layer
521            instance variables
522    
523            * Thuban/UI/tableview.py (LayerTableGrid.select_shapes): Don't use
524            deprecated layer instance variables
525    
526            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Don't use
527            deprecated layer instance variables
528    
529            * Thuban/Model/save.py (SessionSaver.write_layer): Don't use
530            deprecated layer instance variables
531    
532            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer)
533            (MapRenderer.polygon_render_param): Don't use deprecated layer instance
534            variables
535    
536            * test/runtests.py (main): Turn Thuban's deprecation warnings into
537            errors so that they're cought by the tests
538    
539            * test/test_load.py (TestSingleLayer.test): Don't use deprecated
540            layer instance variables
541    
542    2003-06-16  Jonathan Coles   <[email protected]>
543    
544            Fix a problem under Windows whereby if the user double-clicks on a
545            layer in the legend that tree item will expand or collapse as well
546            as open the layer properties dialog. The state of the tree item
547            should not be affected.
548    
549            * Thuban/UI/legend.py (LegendTree.__init__): Add instance variable
550            preventExpandCollapse and subscribe to expanding and collapsing
551            events.
552            (LegendTree.OnItemExpandCollapse): New. Responds to expanding and
553            collapsing events and will veto the event if it has been triggered
554            by the user double clicking on a layer.
555            (LegendTree._OnItemActivated): Set preventExpandCollapse to indicate
556            that an expanding/collapsing event should be vetoed.
557    
558    2003-06-13  Bernhard Herzog  <[email protected]>
559    
560            * Thuban/UI/classifier.py (Classifier.OnClose)
561            (Classifier.map_layers_removed)
562            (Classifier.layer_shapestore_replaced): Unsubscribe the messages
563            in OnClose and not in map_layers_removed or
564            layer_shapestore_replaced to make sure it always happens when the
565            dialog is closed
566    
567    2003-06-13  Jonathan Coles   <[email protected]>
568    
569            This puts back a fix for Windows where a panel is needed so that
570            the background of the table view appears correctly.
571    
572            * Thuban/UI/tableview.py (TableFrame.__init__): Add a panel
573            object that can be used by derived classes to place any
574            controls (including the grid) onto.
575            (QueryTableFrame.__init__): Use the panel as the parent window
576            for all the controls. Reparent the grid so that the panel is
577            the parent. Call UpdateStatusText() to correctly initialize
578            the status bar.
579    
580    2003-06-13  Jonathan Coles   <[email protected]>
581    
582            * Thuban/UI/dialogs.py (ThubanFrame): New: a class that inherits
583            from wxFrame (as opposed to wxDialog like the other classes)
584            but otherwise behaves like the other classes. This is needed
585            for the TableView which isn't really a dialog and needs to
586            have a status bar and control buttons.
587    
588            * Thuban/UI/tableview.py (TableGrid.__init__): Create an
589            instance variable to keep track of how many rows are selected.
590            Subscribe once to the the events we are interested in.
591            (ThubanGrid.OnRangeSelect): Only handle event if event handling
592            hasn't been turned off.
593            (ThubanGrid.OnSelectCell): Only handle event if event handling
594            hasn't been turned off.
595            (ThubanGrid.ToggleEventListeners): Rather than subscribe None
596            as an event listener (which changes the event handler stack)
597            simply set an instance variable to False. This is checked in
598            the event handlers.
599            (ThubanGrid.GetNumberSelected): Return the number of currently
600            selected rows.
601            (TableFrame): Inherit from ThubanFrame so we can have a
602            status bar and control buttons.
603            (QueryTableFrame.__init__): Create a status bar. Fixes RTbug #1942.
604            Explicitly set which items are selected in the operator choice and
605            action choice so there is always a valid selection. Fixes RTbug #1941.
606            Subscribe to grid cell selection events so we can update the
607            status bar.
608            (QueryTableFrame.UpdateStatusText): Update the status bar with
609            how many rows are in the grid, how many columns, and how many
610            rows are selected.
611            (QueryTableFrame.OnGridSelectRange, QueryTableFrame.OnGridSelectCell):
612            Call UpdateStatusText when cells are (de)selected.
613            (QueryTableFrame.OnQuery): Use the string value in the value
614            combo if either the selected item index is 0 or if the string
615            cannot be found in the predefined list (this happens if the
616            user changes the text). Fixes RTbug #1940.
617            Only turn off the grid event listeners if there a query comes
618            back with a none empty list of ids. in the case that the list
619            is empty this causes a grid.ClearSelection() call to actually
620            clear the grid selection which causes the selected items in
621            the map to be deselected. Fixes RTbug #1939.
622    
623            * test/test_save.py (XMLWriterTest.Encode): Check return values.
624            Fixes RTbug #1851.
625    
626    2003-06-13  Bernhard Herzog  <[email protected]>
627    
628            * Thuban/UI/identifyview.py (IdentifyView.__init__): Call
629            self.selected_shape with the current selection to make sure the
630            contents of the dialog are up to date when it's shown for the
631            first time.
632            The dialog used to work without this by luck. The recent fix to
633            the connector module 'broke' a 'feature' the identify view was
634            relying on, i.e that subscribing to a message in response to
635            receiving a message of that type would mean that the new
636            subscriber would also be called for the same message.
637            
638    2003-06-12  Jonathan Coles   <[email protected]>
639    
640            * extensions/thuban/gdalwarp.cpp: Removed debug printing as
641            the image is rendered. Fixes RTbug #1937.
642    
643  2003-06-12  Jonathan Coles   <[email protected]>  2003-06-12  Jonathan Coles   <[email protected]>
644    
645          * Thuban/Lib/fileutil.py: As is done under Windows, create the          * Thuban/Lib/fileutil.py: As is done under Windows, create the
646          user directory if it doesn't exist on a posix system.          user directory if it doesn't exist on a posix system.
647            Fixes RTbug #1815.
648    
649          * Thuban/Model/resource.py (get_user_proj_files): Moved the          * Thuban/Model/resource.py (get_user_proj_files): Moved the
650          called to get_application_dir here, so that the directory          called to get_application_dir here, so that the directory

Legend:
Removed from v.1191  
changed lines
  Added in v.1325

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26