Summary: | ActiveX button's icon is not saved back to DOCX file | ||
---|---|---|---|
Product: | LibreOffice | Reporter: | Tamás Zolnai <zolnaitamas2000> |
Component: | Writer | Assignee: | Not Assigned <libreoffice-bugs> |
Status: | NEW --- | ||
Severity: | normal | CC: | adityasahu1511, libreoffice, manujvashist, mentoring, xiscofauli |
Priority: | medium | Keywords: | filter:docx, needsDevEval |
Version: | 6.0.0.0.alpha1+ | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.documentfoundation.org/show_bug.cgi?id=50097 | ||
Whiteboard: | |||
Crash report or crash signature: | Regression By: | ||
Bug Depends on: | |||
Bug Blocks: | 104523 | ||
Attachments: | A document with one push button having a small icon |
Description
Tamás Zolnai
2017-11-12 17:15:32 UTC
Created attachment 137695 [details]
A document with one push button having a small icon
Let's turn this into a easy hack. The code is here: oox/source/ole/axcontrol.cxx Check AxCommandButtonModel class. Also might need to check the activex documentation: https://msdn.microsoft.com/en-us/library/office/cc313125(v=office.12).aspx Hello, I am new to libre office and want to work on this bug. Can you help how can I start on this. from my understanding I think we have to initialize AxCommandButtonModel::maPictureData in the constructor. ActiveX controls' properties are stored in a binary file inside the DOCX file (which is a zipped file structure). You can find this binary here \word\activeX\activex2.bin, inside the DOCX file. All types of form controls have an importBinaryModel() and exportBinaryModel() method which do the reading and writing of this binary file. The imported value are stored as the specific class member variable (e.g. AxCommandButtonModel::maPictureData) and later this value is converted to an API property (convertProperties), which leads to apply this properties on the opened document. During export we have the same workflow in the oposite direction. We have convertFromProperties() method which gets the currently opened document's properties and sets the member variables based on that. Later the exportBinaryModel() will write this values out into the binary file. So you will need to set AxCommandButtonModel::maPictureData based on API properties inside convertFromProperties() method and also export this member variable inside exportBinaryModel(). For how to do that you should check what happens by import and you can do the same in the oposite direction. (In reply to Manuj Vashist from comment #3) > Hello, > I am new to libre office and want to work on this bug. > Can you help how can I start on this. > from my understanding I think we have to initialize > AxCommandButtonModel::maPictureData in the constructor. Hi Manuj Vashist, Please also assign the bug yourself (see assignee field), if you are working on this issue. So other developers can see that somebody already working on a fix. A polite ping, still working on this bug? A polite ping, still working on this bug? A polite ping, still working on this bug? A polite ping, still working on this bug? I reset assignee due to inactivity. A polite ping, still working on this bug? A polite ping, still working on this bug? A polite ping, still working on this bug? A polite ping, still working on this bug? I'm interested in resolving this bug. Thanks for the code pointers and explanation Tamás. I have tried to export the picture data of the ActiveX's button, but I don't know why it does not seem to work properly (the text of the button also disappears). For now, I have submitted a not-so-working patch[1] for the bug. It would be really nice if someone reviews the change. In any case, I assure you that I want to fix this bug and I'm still getting to know the code better. [1] https://gerrit.libreoffice.org/#/c/68629 A polite ping, still working on this bug? Un-assigning myself from this bug due to lack of knowledge in the bug that is not too easy. Looking at the bug more closely, Tamás and I found it to be more difficult than thought. I suggest to change the keyword from "difficultyBeginner" to "difficultyInteresting" and add "needsDevEval" to it. Dear Tamás Zolnai, To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from https://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://web.libera.chat/?settings=#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug The problem is still reproducible with LO 7.4: Version: 7.4.0.3 / LibreOffice Community Build ID: f85e47c08ddd19c015c0114a68350214f7066f5a CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-US (en_US.UTF-8); UI: en-US Calc: threaded Also reproducible with the latest LO 7.5 dev master: Version: 7.5.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: 360b5861fb46353e7a6b9f5abf13339cd719a8df CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-US (en_US.UTF-8); UI: en-US Calc: threaded |