Bug 97228 - Split up include files in include/vcl where possible into separate public and internal parts
Summary: Split up include files in include/vcl where possible into separate public and...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:5.4.0 target:6.1.0
Keywords: difficultyBeginner, easyHack, skillCpp
Depends on:
Blocks:
 
Reported: 2016-01-18 13:54 UTC by Tor Lillqvist
Modified: 2018-02-27 07:57 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tor Lillqvist 2016-01-18 13:54:52 UTC
For instance the include/vcl/salnativewidgets.hxx file contains lots off stuff that is not used outside vcl. It would be better to have that in a separate include file inside vcl, for instance vcl/inc/nativewidgets.hxx.
Comment 1 Chris Sherlock 2016-02-01 01:06:50 UTC
There might be a little confusion around this one for newbies. 

include/vcl/salnativewidgets.hxx is used for any module that needs to access specific classes or functions of VCL. You'll see what sort of things need this because there is a SAL_DLLPUBLIC decorator in the class or function. 

If the class/function doesn't have a SAL_DLLPUBLIC attribute decorating it, then there is a good chance that it should be moved to the "private" vcl headers, which are found at vcl/inc/* - Tor's suggestion is to move them into vcl/inc/nativewidgets.hxx - but don't feel constrained in this - if there is a better header filename then try this instead. If it's wrong, then it's wrong and we'll advise you - but if you think it's more specialized then there is a good likelihood it's better off in a different header!

As an example, there is a class called ControlCacheKey:

http://opengrok.libreoffice.org/xref/core/include/vcl/salnativewidgets.hxx#257

Clicking on the link and searching for symbols that reference it in OpenGrok shows that only vcl uses it. In this case, it's probably a good candidate to move into vcl/inc/nativewidgets.hxx

Any file that references this class should then include the new header with the syntax:

#include "nativewidgets.hxx"
Comment 2 Chris Sherlock 2016-02-01 20:38:17 UTC
Has been partially addressed by commit bf86287c5f439c48:

http://cgit.freedesktop.org/libreoffice/core/commit/?id=bf86287c5f439c4873e8e7d191449ef40dee5795

author: Noel Grandin <noel@peralex.com>	2016-01-29 13:06:16 (GMT)
committer: Caolán McNamara <caolanm@redhat.com>	2016-01-31 17:26:49 (GMT)

move boost header dependency for ControlCacheHashFunction inside vcl

ControlCacheHashFunction is only used by vcl/opengl/*
Comment 3 Robinson Tryon (qubit) 2016-02-18 14:52:37 UTC Comment hidden (obsolete)
Comment 4 Commit Notification 2016-12-27 10:54:09 UTC
abdulwd committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=e61fe745d12055ee3915a957714772eeb46fdcd3

tdf#97228 Move include file include/vcl/BitmapProcessor.hxx to vcl/inc/

It will be available in 5.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Commit Notification 2017-01-04 16:03:01 UTC
Huzaifa Iftikhar committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=da7b10018433946dd0e0125ec5316dbe8c8b683c

tdf#97228 Moved class ControlCacheKey in a seperate include file.

It will be available in 5.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 Commit Notification 2018-02-27 07:57:47 UTC
Shubham Verma committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=63a342ec65f702bfe27de0f0343f75198e6103dc

tdf#97228 Moved struct FltCallDialogParameter

It will be available in 6.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.