[www-issues] Re: [Issue 73115] integration.forms.ListSelection test do not run anymore

2007-01-04 Thread Armin Le Grand

[EMAIL PROTECTED] schrieb:


To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=73115


User fs changed the following:

   What|Old value |New value

 CC|''|'aw'

Assigned to|fs|nn

 Status|STARTED   |NEW





--- Additional comments from [EMAIL PROTECTED] Thu Jan  4 04:23:29 -0800 
2007 ---
fs-aw, nn: I'm lost in the drawing/spreadsheet object hierarchy here ...

When a sheet is removed via UNO API, then ScDrawLayer::ScRemovePage broadcasts
aScTabDeletedHint. This is observed by ScDrawView::SFX_NOTIFY, which then does a
HideSdrPage. Unfortunately, this means that now the drawing layer is somehow
corrupt, which can be observed by hovering with the mouse over the active sheet
- this asserts, since now the ScDrawView does not have a valid SdrPageView
anymore - it was deleted and reset in HideSdrPage.

Hmm. Comparing this where a sheet is deleted manually, there is *also* a
HideSdrPage called, which also resets the SdrPageView member to NULL.
However, in this scenario, there's an additional ShowSdrPage called, which
re-creates it, with the following stack:
 SdrPaintView::ShowSdrPage()
 FmFormView::ShowSdrPage()
 ScTabView::TabChanged()
 ScTabView::SetTabNo()
 ScViewFunc::DeleteTables()

fs-nn: Is it possible that removing sheets by API is missing some restoration
of the current sheet, or something like this?

 

AW: From DrawingLayer perspective, the DL View does not necessarily have 
to have a SdrPageView. This would be a DrawingLayer which does not 
visualize a page (yet/no more). The applications should work with that, 
it is no good idea to somewhere remember the SdrPageView or access the 
GetSdrPageView()-result without test.


Well, from the applications view, these simply do not do that correct in 
all places and often rely on an SdrPageView being there, so the usual 
(not good) workaround is to create a new, empty SdrPageView by showing a 
new, empty page.
At least that this works shows that in principle, the SdrPageView is not 
remembered, but only (hah!) places where GetSdrPageView() result is not 
tested need to be looked for...



-
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
 




--
Greetings, Armin Le Grand (AW)
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [www-issues] Re: [Issue 73115] integration.forms.ListSelection test do not run anymore

2007-01-04 Thread Louis Suarez-Potts


On 2007-01-04, at 08:44 , Armin Le Grand wrote:


[EMAIL PROTECTED] schrieb:


To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=73115


User fs changed the following:

   What|Old value |New value
= 
===

 CC|''|'aw'
- 
---

Assigned to|fs|nn
- 
---

 Status|STARTED   |NEW
- 
---





--- Additional comments from [EMAIL PROTECTED] Thu Jan  4  
04:23:29 -0800 2007 ---
fs-aw, nn: I'm lost in the drawing/spreadsheet object hierarchy  
here ...


When a sheet is removed via UNO API, then  
ScDrawLayer::ScRemovePage broadcasts
aScTabDeletedHint. This is observed by ScDrawView::SFX_NOTIFY,  
which then does a
HideSdrPage. Unfortunately, this means that now the drawing layer  
is somehow
corrupt, which can be observed by hovering with the mouse over the  
active sheet
- this asserts, since now the ScDrawView does not have a valid  
SdrPageView

anymore - it was deleted and reset in HideSdrPage.

Hmm. Comparing this where a sheet is deleted manually, there is  
*also* a

HideSdrPage called, which also resets the SdrPageView member to NULL.
However, in this scenario, there's an additional ShowSdrPage  
called, which

re-creates it, with the following stack:
 SdrPaintView::ShowSdrPage()
 FmFormView::ShowSdrPage()
 ScTabView::TabChanged()
 ScTabView::SetTabNo()
 ScViewFunc::DeleteTables()

fs-nn: Is it possible that removing sheets by API is missing some  
restoration

of the current sheet, or something like this?


AW: From DrawingLayer perspective, the DL View does not necessarily  
have to have a SdrPageView. This would be a DrawingLayer which does  
not visualize a page (yet/no more). The applications should work  
with that, it is no good idea to somewhere remember the SdrPageView  
or access the GetSdrPageView()-result without test.


Well, from the applications view, these simply do not do that  
correct in all places and often rely on an SdrPageView being there,  
so the usual (not good) workaround is to create a new, empty  
SdrPageView by showing a new, empty page.
At least that this works shows that in principle, the SdrPageView  
is not remembered, but only (hah!) places where GetSdrPageView()  
result is not tested need to be looked for...



-
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/ 
project_issues.html#notification





--
Greetings, Armin Le Grand (AW)
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]