92e7f28f9a
Same as in other places handling that: * SfxBaseModel::load (sfx2/source/doc/sfxbasemodel.cxx); * StorageFilterDetect::detect (filter/source/storagefilterdetect/filterdetect.cxx); * TypeDetection::impl_detectTypeFlatAndDeep (filter/source/config/cache/typedetection.cxx) In these cases, the same handler is used (RequestPackageReparation); when the user approves an attempt to repair the package, the media descriptor gets "RepairPackage" property set to true (this produces a "(repaired document)" appended to the document title); also, the document is opened in template mode (so saving it doesn't simply overwrite the original broken document, but asks for a new name). Re-using this logic, and checking if the "RepairPackage" is already set, allows to unify the behavior, and to avoid duplicate warnings when the user already approved repair of a broken package. The request won't contain the details of the XML problem; but it will be shown if rejected anyway, so OK for the diagnostics. Change-Id: Ic997f89272212227479d14236f5e7788298a904a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160001 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> |
||
---|---|---|
.. | ||
classification | ||
doc | ||
inc | ||
qa | ||
sdi | ||
source | ||
uiconfig/ui | ||
util | ||
AllLangMoTarget_sfx2.mk | ||
CppunitTest_sfx2_classification.mk | ||
CppunitTest_sfx2_controlleritem.mk | ||
CppunitTest_sfx2_dialogs_test.mk | ||
CppunitTest_sfx2_doc.mk | ||
CppunitTest_sfx2_metadatable.mk | ||
CppunitTest_sfx2_misc.mk | ||
CppunitTest_sfx2_view.mk | ||
CustomTarget_classification.mk | ||
IwyuFilter_sfx2.yaml | ||
JunitTest_sfx2_complex.mk | ||
JunitTest_sfx2_unoapi.mk | ||
Library_sfx.mk | ||
Makefile | ||
Module_sfx2.mk | ||
Package_classification.mk | ||
PythonTest_sfx2_python.mk | ||
README.md | ||
UIConfig_sfx.mk | ||
UITest_sfx2_doc.mk |
Legacy Framework
SFX
is the "old" framework, used for historical reasons.
An attempt of documentation of this module is located in [git:sfx2/doc]
.
It contains base classes for document model, view and controller, used
by "old" applications like sw
, sc
, sd
(while "new" applications
are based on the "new" UNO based framework in "framework").
The SFX framework is based on dispatching slots identified by integers
(SlotIDs
) to SfxShells
, and there is a dedicated IDL compiler (svidl
)
involved that generates C++ slot headers from SDI files in modules' sdi/
subdirectory.
Documentation about SFX dispatch, SDI etc.: https://wiki.openoffice.org/wiki/Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2
Document load/save code is maintained in [git:sfx2/source/doc/docfile.cxx
]
SfxMedium
class, which handles all the twisty load and save corner cases.
[git:sfx2/source/appl/sfxhelp.cxx]
Start procedure for the online
help viewer top level window; handling of help URL creation and
dispatch.
There are also some UNO services here that could really be implemented
anywhere, e.g. the DocumentProperties
or DocumentMetadataAccess
.
Notable files:
sfx2/source/dialog/backingwindow.cxx
Startcenter
buttons and the corresponding event handler.