Issue 122493 - [sidebar] CRASH when apply transparency to OLE object via Area panel
[sidebar] CRASH when apply transparency to OLE object via Area panel
Status: RESOLVED FIXED
Product: Writer
Classification: Application
Component: ui
4.0.0-dev
PC Windows 7
: P3 major (vote)
: 4.0.0
Assigned To: Armin Le Grand
:
Depends on:
Blocks: [sidebar]
  Show dependency treegraph
 
Reported: 2013-06-07 11:24 UTC by Rainer Bielefeld
Modified: 2013-07-11 13:56 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation on: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Rainer Bielefeld 2013-06-07 11:24:36 UTC
Steps how to reproduce with server installation of  "AOO 4.0.0-Dev – English UI / German locale [AOO400m1(Build:9700) -  Rev. 1484333 Rev.1483903 (2013-05-20)]" on WIN7 Home Premium (64bit)", own separate user profile:

1. Open new Writer Document from AOO Start center
2. Menu 'Insert -> Object -> Chart
   >Chart appears in edit mode
3. <Esc> leaves chart edit mode (green control points leave)
4. Sidebar -> Properties .-> Area -> Transparency=Quadratic
   > right from Transparency Dropdown symbol for quadratic transparency appears
5. Click symbol for quadratic transparency
   CRASH

Additional info:
----------------
a) Crash will happen for any other Transparency showing such a symbol instead 
   of the value input line.
b) Alos Formula and Spreadsheet objects affected, may be all LOE objects.
c) no problem with Fontwork and Draw Shapes
d) No problem in Draw, Calc
e) I believe main reason is that it's an impossible operation to apply transparency
   and other Area properties to OLE objects, Area Properties Panel 
   should be hidden
f) Worked fine with Lotus Symphony Release 3.0.1 Revision 20120110.2000, where no
   Area Properties Panel is available for OLE objects.
Comment 1 Armin Le Grand 2013-06-07 12:27:47 UTC
ALG: First: Confirming crash.
OLEs can have all kinds of Line/FillStyle (see ODF) as in Draw/Impress. In Writer it should be the same, not sure if Writer has it's own OLE (as Graphic object)?
It seems more a problem of inconsequency in SW code: In the line property panel style and start arrow (not end arrow) dropdowns are 'dropdownable', but have no content and the text is grayed out.
Similar in area panel: Fill text is not gray, but fill DropDown is deactivated, Transparency has non-gray text and allows drop-down.
Looks as if Writer somehow 'influences' these slots when they are fetched, I will have a look...
Comment 2 Armin Le Grand 2013-06-07 15:22:14 UTC
ALG: Looks as if Writer uses his own implementation of OLE frame/Shape. The SfxItemState handed over to NotifyItemUpdate is nearly always SFX_ITEM_DISABLED, but this is not really handled well in the panel implementations. This may need to be added.
Comment 3 Armin Le Grand 2013-06-07 15:56:55 UTC
ALG: Writer has it's own OLE (SwOLEObj) and probably does not support line/fill attributes there. I am not sure how the slots StateMethod is executed, no method from SwDrawShell, SwDrawBaseShell is called. Some of SwBaseShell, but no slots used in e.g. the AreaPropertyPanel is used.
Since it is too much work to add these attributes to Sw's OLEs (Regina, does ODF require this, then we may need another task for it) it ma ybe best to disable Line/AreaPropertyPanel for Writer/OLE selected cases.
Comment 4 Regina Henschel 2013-06-08 17:19:26 UTC
Hi Armin, currently color is written in fo:background-color, and transparency in style:background-transparency in Writer. That is allowed by the spec, but I am astonished, because fo:background-color belongs to paragraphs and characters. In Draw it is written in draw:fill, draw:gradient, etc. The spec states, that a draw:fill in a style has to switch off a fo:background-color. Currently, if you copy&paste an OLE object from Draw to Writer, the draw:fill attribute is not preserved and the other way from Writer to Draw fo:background-color is not preserved.

I have looked in spec text and schema, none of the fo:background-color, draw:fill etc. is mandatory and all are allowed on draw:object and on draw:object-ole. (As far as I understand it.) The spec allows draw:fill etc. in text context too, it is only Writer which does not support it.

The UI for fo:background and style:background-transparency for OLE object is not "Area" but "Object">"Background", and that does not contain transparency at all. When you set a value in style:background-transparency for an object (tested Math and OLE to my PaintShopPro5) in the file directly and open the file then in Writer, the transparency is rendered correctly, and it is still correct after save and reload. So it is a shortcoming in the UI. The "Object" dialog is very similar to the "Frame" dialog, which has a transparency field.

I agree with you to remove the Area panel and the Line panel for OLE objects in Writer for AOO4.0. The Line panel does not crash, if you select a line style. But doing so has no effect on the object. The reason is analogous. In Writer it is a fo:border and not a draw:stroke. The frame properties are available via the toolbar. They do not contain transparency, but that is no regression. For charts exists the workaround to use the transparency of the chart document.

For a later target these enhancement/features can be considered:
(1) Implement a UI for style:background-transparency in the Object property dialog.
(2) Extend the property panel with additional frame properties. Currently only the wrap properties are available.
(3) Make OLE in Writer full Draw-objects (which would include rotation).
Comment 5 Andre 2013-06-10 07:19:31 UTC
Changed title to make this more easily recognizable as sidebar issue.
Comment 6 Armin Le Grand 2013-06-10 08:24:34 UTC
ALG: Hi Regina, thanks for your comments and analysis, I agree here. We should create tasks for all three. It is questionable if (1) is worth it, maybe doing (3) would be better since it also avoids (1). If all attributes from DrawinglayerOLE are possible, it should be possible.

For now:
a, Use the situation and make SFX_ITEM_DISABLED work correctly for all slots in the Line/AreaPanels
b, Switch Line/AreaPanel off for OLE in Writer

Going for (a)...
Comment 7 Armin Le Grand 2013-06-10 10:38:55 UTC
ALG: (a) done, comitting. Going on (b)...
Comment 8 Armin Le Grand 2013-06-10 10:46:10 UTC
ALG: (b) done, comitting. Checked, works as expected.
Comment 9 Armin Le Grand 2013-06-10 12:46:50 UTC
ALG: Okay, done. Please close after the missing tasks from comment 4 are written.