summaryrefslogtreecommitdiff
path: root/include/sfx2
AgeCommit message (Collapse)Author
2024-10-17tdf#34804 sw: enable keyboard shortcut for CharColor and CharBackColorJustin Luth
The result of this patch is that a keyboard shortcut can now set the font fore-/back-ground color using the color shown in the toolbar/sidebar. This is now possible thanks to Maxim's work in 7.6.2 tdf#154270 Sync toolbar button recent colors and Andreas Heinisch's 24.8 commit 8c822b764b35a0116a0865e991a87c8315e0 tdf#72991 - Remember last used color depending in cui This patch does 3 things: 1. SetRecentColor when the app initializes 2. Uses SID_ATTR_CHAR_COLOR's recentColor for .uno:FontColor if no pItem was provided (i.e. a keyboard shortcut called it) 3. Uses SID_ATTR_CHAR_BACK_COLOR's recentColor for .uno:CharBackColor if no pItem was provided (Note that without a selection, CharBackColor isn't so useful for a keyboard shortcut, since it turns the drag-and-drop template on.) Setting the recent color right away is critical for user acceptance. Otherwise, it would only function after they first modified the color in the toolbar/sidebar. make CppunitTest_sw_uiwriter9 CPPUNIT_TEST_NAME=testTdf34804 Unfortunately, I can't reliably know if this request came from an awt::KeyEvent or not, because in that case we could just avoid CharBackColor's template altogether. [While there is rReq.GetModifiers() as a good hint, it is not a guarantee (in case assigned to a function key, or CTRL held while clicking the toolbar, etc.)] Change-Id: I7377f087dcdf7011205af005cd0d172100bade2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174804 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2024-10-16loplugin:unusedfieldsNoel Grandin
Change-Id: If05b87f1e6c19b15b03b2695921a582e078d0f1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175011 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-09-27tdf#85976 [RFE] Add a "Remove Duplicate Records" commandSahil Gautam
Add a "Remove Duplicate Records" entry under Calc > menu Data to remove duplicate records from a rectangular selection of cells in Calc. Change-Id: Ic8340d7f1e19461ef3666fd2ef65294b73577d5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160685 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2024-09-26cool#9992 lok doc sign: conditionally show the add button in the sign dialogMiklos Vajna
Open the sign dialog, the Add button is hidden, even if the LOK clients initializes the view with a working signing certificate. SfxMedium::SignContents_Impl() knows the correct view, but by the time the execution arrives to the DigitalSignaturesDialog ctor, this info is lost, so we don't know what is the current view. Fix the problem by looking up the view of the object shell at UNO command dispatch time, and passing that around, so the signature dialog can also access it. If the view has a signing certificate configured, then allow signing. The certificate chooser triggered by this button still needs fixing. Change-Id: I1fae63cea27ea1e68e938879f4507f53ade484f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173964 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-09-24cool#9992 lok doc sign: store signing cert in the viewMiklos Vajna
In case signing certificate would be stored in the model (like it happens on the desktop), then the certificate viewer would show all signing certs of the currently editing users, which is far from expected. At the same time, there is just one NSS database per process, so it's hard to not have them in the same database. Fix the problem by storing a reference to the signing key in the view shell, then we can show only that in xmlsecurity/ in LOK mode, and thing else. This is just the sfx2/ side of things, the xmlsecurity/ part still needs implementing. Change-Id: Id7a56f28598ec60217c6bac095c2ff350f39bc3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173837 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-09-23cool#9992 lok doc sign: handle .uno:SignatureCert/Key/Ca view optionsMiklos Vajna
The desktop way to sign documents is to manually import a .p12 file into your Firefox user profile, and then the signing key is available in all views. The LOK case wants per-view signing certificates, set in a way similar to the name of the user. Start implementing this by: 1) Extending initializeForRendering() to have JSON entries for the signing cert/key/ca chain. 2) Importing the CA chain as trusted certificates, using a new SfxLokHelper::extractCertificates() + test for this. 3) Marking a certificate as trusted is tricky, extract SfxLokHelper::addCertificate() from the existing doc_addCertificate() to do this. 4) Parsing the signing certificate, but just warn if that fails, still need to connect that to the SfxViewShell later. Change-Id: I00e40b3cdd68dbe8994f28861dc7b0f578189643 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173806 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-20cool#9992 lok doc sign: extract duplicated code to SfxLokHelperMiklos Vajna
I want to improve extractCertificate() so it can work on a certificate chain, but that's easier when this code is not directly in desktop/, but at some lower level. This allows covering the code with tests from CppunitTest_sfx2_view in a follow-up change. If this code will be needed by some non-LOK area as well, then it can be moved down further, but let's wait for a second area first. Change-Id: I6291da0c3e56aed7dca1a8dc1446209044cace92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173691 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-09-12cool#9992 lok doc sign: allow sign of macros & the document itself in one stepMiklos Vajna
Sign a document with macros (via file -> digital signatures -> digital signatures), realize that you still get a warning on file open, sign the macros in the document (via tools -> macros -> digital signature), realize that you did this in the wrong order, so now you have to re-sign the doc content. The reason for this is that the macro signature only signs the macro parts of the document (so you can still edit the document and the signature is valid, as long as you don't touch macros), while the doc content signature signs everything, including the macro signature, so the order of the two matters. Solve this trouble by adding a new setting that allows doing the two signatures in one step. Do this by extending the doc content signing code with an optional pre-step that first signs the document macros. This is a bit tricky to do, since xmlsecurity/ gets an RW signature stream and a RO document storage from sfx2/, but transferring one more signature stream can solve this trouble. Other tricky parts of the change: 1) The crypto signing is always done by libxmlsec, so DigitalSignaturesDialog::SetScriptingSignatureStream() has to update the storage of the sign manager's sign helper, otherwise, the hashes in the macro signature will be empty. 2) Signing reads the RO storage, so normally the macro signature would not be part of the doc signature when creating both signatures inside a single dialog. (The storage is only committed after the dialog ends.) Fix this problem by extending DocumentSignatureManager::add() and UriBindingHelper::OpenInputStream() to provide kind of an overlay when xmlsecurity/ gets a script signature stream: this way the macro signature will be part of the doc signature while the dialog is in progress. No overlay is needed later, once both streams are committed to the storage on dialog end. Change-Id: Ic2728689997165595991d5ec59c7a2683286e22d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173263 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-09-12tdf#162405: check if there's a matching singing cert only when savingSarper Akdemir
previously Save as dialog's "Sign with default certificate" checkbox's senstivity was decided depending on if there was a matching key. Doing that forces a dialog pop-up for password protected NSS databases. Now if there's a value in "/org.openoffice.UserProfile/Data/signingkey", the checkbox is sensitive. Matching key is checked during save, and reported if it isn't found & signing failed. Change-Id: Ia714b70ce6456752200088cc5382ab6374af9587 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173129 Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de> Tested-by: Jenkins
2024-09-10cool#9992 lok doc sign: async DocumentDigitalSignatures::ImplViewSignatures()Miklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step is to make DocumentDigitalSignatures::ImplViewSignatures() async, though that requires all callers of the function to be async, so make DocumentDigitalSignatures::signScriptingContent() async as well. There is also DocumentDigitalSignatures::signPackage(), but turns out that's dead code, so just remove it. Once this is in place, we had a problem that the callbacks tried to interact with libxmlsec, but the dialog was still alive in DocumentDigitalSignatures::ImplViewSignatures() by the time the callback was running, so there were two DocumentSignatureManager instances at the same time, and both assumes it should call the global libxmlsec init/uninit, which resulted in failing to verify the just created signature. Fix this similar to how Tomaz fixed the same problem around pdfium in commit 067a8a954c8e1d8d6465a4ab5fb61e93f16c26c2 (pdfium: only init pdfium library one and destroy on LO exit, 2020-06-03). Change-Id: I3fb63c06195564732e1576dbd755157e676fb762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173117 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-09cool#9992 lok doc sign: async DocumentDigitalSignatures::signDocumentContent()Miklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step is to make DocumentDigitalSignatures::signDocumentContent() async, but passing an std::function via the UNO API is tricky. Notice how DocumentDigitalSignatures in xmlsecurity/ also implements sfx2::DigitalSignatures, add a new SignDocumentContentAsync() there and adapt all uses of signDocumentContent() to go with that instead. This requires introducing some lambdas for code after signDocumentContent() in general and for ODF/OOXML specific code in particular, to avoid code duplication. Change-Id: If771ced711041364988af45ad9dd0dd1a2a8660d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173060 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-06cool#9992 lok doc sign: make SfxMedium::SignContents_Impl() asyncMiklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The next step to get rid of this hack is to make SfxMedium::SignContents_Impl() async, now that SfxObjectShell::SignDocumentContent() is async. This requires all callers of SfxMedium::SignContents_Impl() to be async, most notably SfxObjectShell::SignScriptingContent() has to be converted as well. Note that no lifecycle problem is expected here for the callback, since the object shell and its medium is typically around for as long as the document is loaded. Change-Id: I57f2c747f8448b9adc0398f874ede36211fed817 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172934 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-05cool#9992 lok doc sign: add SfxObjectShell::AfterSignContent()Miklos Vajna
Currently SfxObjectShell::CheckIsReadonly() has a hack for the LOK case to show the signatures dialog read-only, as only that is async. The first problem for the read-write signatures dialog is that SfxObjectShell::ExecFile_Impl() has code after invoking SfxObjectShell::SignDocumentContent(), which will be executed too early if the dialog is executed async. Fix the problem by moving the code in question into a new SfxObjectShell::AfterSignContent(), and only invoke that as a callback after the async run finished. The message dialog in the moved code is still non-async, but we can deal with that later. Change-Id: I32f0895118ac0da72105ec3a24c0294e18c05545 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172914 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-09-05Resolves tdf#162738 - Revert tdf#160937Heiko Tietze
This reverts commit 2164406a973fd40fcc56b8839a21854f6b50a53b. Reason for revert: Going to implement a scrolled window Change-Id: Icc7dc71860bfcafaea1323a3d0c6f7e1f7dd380f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172758 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2024-09-02Related: tdf#162580 When upgrading from Find toolbar search toJim Raykowski
advanced Find and Replace search dialog, inherit (pre-fill) search field's term from current value of find bar's focused search entry Makes the Writer quick find panel behave as such. Change-Id: I2164f443d6ef120d86b001499f67795eaeaf224d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172375 Reviewed-by: Jim Raykowski <raykowj@gmail.com> Tested-by: Jenkins
2024-08-28lok: add method to allow explicit cleanup of temporary files.oMichael Meeks
Special case fast destruction of background saving children. Change-Id: I8fba4d0818d23a8b0e1bb4d074e1afae7dacde33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165448 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 7d784910689172014b8cf6144e654402696d8801) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172520
2024-08-28Resolves tdf#162615 - Long label must not overside sidebar in start centerHeiko Tietze
Change-Id: Ia8205dd32ee7fd3f67ae2c3f6fec4366c2c4d4f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172455 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2024-08-19tdf#105131 Remove Restore Defaut from sidebar custom menuOlivier Hallot
Refer to tdf#105131 comment #13 Change-Id: Ia3b33ed4ab971b6f6dd3c751c5f6e3dc6f30f5da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171906 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2024-08-15make SfxStringItem hashableNoel Grandin
which shaves some time off loading complex files. Note that this class is often used as a superclass, so I checked all of the subclasses and marked some of them as "does not support hashing" until they can be independently verified to be safe Change-Id: Id4187eda8d6145e89e17dc10c2e3113b7a93da85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171891 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-14Disallow closing document during idle layoutMike Kaganski
Similar to commit 99c1bd1a4ef5365d8c26a41c8e858c67e673beb4 (Disallow closing document during generation of preview, 2024-03-11), it may happen that an external process is closes a document that is being in the process of the background layout, leading to use-after-free. The request thread at the crash time, executing XComponent::dispose: swlo.dll!SwNoTextFrame::~SwNoTextFrame() Line 170 swlo.dll!SwNoTextFrame::`scalar deleting destructor'(unsigned int) swlo.dll!SwFrame::DestroyFrame(SwFrame * const pFrame) Line 397 swlo.dll!SwFlyFrame::DeleteCnt() Line 424 swlo.dll!SwFlyFrame::DestroyImpl() Line 358 swlo.dll!SwFlyFreeFrame::DestroyImpl() Line 89 swlo.dll!SwFrame::DestroyFrame(SwFrame * const pFrame) Line 396 swlo.dll!SwLayoutFrame::DestroyImpl() Line 516 swlo.dll!SwFrame::DestroyFrame(SwFrame * const pFrame) Line 396 swlo.dll!SwLayoutFrame::DestroyImpl() Line 540 swlo.dll!SwPageFrame::DestroyImpl() Line 317 swlo.dll!SwFrame::DestroyFrame(SwFrame * const pFrame) Line 396 swlo.dll!SwLayoutFrame::DestroyImpl() Line 540 swlo.dll!SwRootFrame::DestroyImpl() Line 570 swlo.dll!SwFrame::DestroyFrame(SwFrame * const pFrame) Line 396 swlo.dll!std::_Ref_count_resource<SwRootFrame *,void (__cdecl*)(SwFrame *)>::_Destroy() Line 1222 swlo.dll!std::_Ref_count_base::_Decref() Line 1164 swlo.dll!std::_Ptr_base<SwRootFrame>::_Decref() Line 1380 swlo.dll!std::shared_ptr<SwRootFrame>::~shared_ptr<SwRootFrame>() Line 1685 swlo.dll!SwViewShell::~SwViewShell() Line 354 swlo.dll!SwCursorShell::~SwCursorShell() Line 3440 swlo.dll!SwEditShell::~SwEditShell() Line 63 swlo.dll!SwFEShell::~SwFEShell() Line 699 swlo.dll!SwWrtShell::~SwWrtShell() Line 2065 swlo.dll!SwWrtShell::`scalar deleting destructor'(unsigned int) swlo.dll!std::default_delete<SwWrtShell>::operator()(SwWrtShell * _Ptr) Line 3302 swlo.dll!std::unique_ptr<SwWrtShell,std::default_delete<SwWrtShell>>::reset(SwWrtShell * _Ptr) Line 3447 swlo.dll!SwView::~SwView() Line 1196 swlo.dll!SwView::`vector deleting destructor'(unsigned int) sfxlo.dll!SfxViewFrame::ReleaseObjectShell_Impl() Line 1140 sfxlo.dll!SfxViewFrame::~SfxViewFrame() Line 2059 sfxlo.dll!SfxViewFrame::`scalar deleting destructor'(unsigned int) sfxlo.dll!SfxViewFrame::Close() Line 1192 sfxlo.dll!SfxFrame::DoClose_Impl() Line 138 sfxlo.dll!SfxBaseController::dispose() Line 928 fwklo.dll!`anonymous namespace'::XFrameImpl::setComponent(const com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Line 1496 fwklo.dll!`anonymous namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Line 1707 sfxlo.dll!SfxFrame::DoClose() Line 104 sfxlo.dll!SfxViewFrame::Notify(SfxBroadcaster & __formal, const SfxHint & rHint) Line 1820 svllo.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint) Line 40 sfxlo.dll!`anonymous namespace'::SfxModelListener_Impl::notifyClosing(const com::sun::star::lang::EventObject & __formal) Line 154 sfxlo.dll!SfxBaseModel::close(unsigned char bDeliverOwnership) Line 1511 swlo.dll!SwXTextDocument::close(unsigned char bDeliverOwnership) Line 574 sfxlo.dll!SfxBaseModel::dispose() Line 745 swlo.dll!SwXTextDocument::dispose() Line 561 mscx_uno.dll!`anonymous namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, bridges::cpp_uno::shared::VtableSlot aVtableSlot, _typelib_TypeDescriptionReference * pReturnTypeRef, long nParams, _typelib_MethodParameter * pParams, void * pUnoReturn, void * * pUnoArgs, _uno_Any * * ppUnoExc) Line 214 mscx_uno.dll!unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const _typelib_TypeDescription * pMemberTD, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 430 binaryurplo.dll!binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny * returnValue, std::vector<binaryurp::BinaryAny,std::allocator<binaryurp::BinaryAny>> * outArguments) Line 239 binaryurplo.dll!binaryurp::IncomingRequest::execute() Line 79 binaryurplo.dll!request(void * pThreadSpecificData) Line 84 cppu3.dll!cppu_threadpool::JobQueue::enter(const void * nDisposeId, bool bReturnWhenNoJob) Line 101 cppu3.dll!cppu_threadpool::ORequestThread::run() Line 165 cppu3.dll!threadFunc(void * param) Line 190 sal3.dll!oslWorkerWrapperFunction(void * pData) Line 67 Main thread, doing an idle layout of the same document: emboleobj.dll!OleComponent::SetExtent(const com::sun::star::awt::Size & aVisAreaSize, __int64 nAspect) Line 1099 emboleobj.dll!OleEmbeddedObject::setVisualAreaSize(__int64 nAspect, const com::sun::star::awt::Size & aSize) Line 138 swlo.dll!SwWrtShell::CalcAndSetScale(svt::EmbeddedObjectRef & xObj, const SwRect * pFlyPrtRect, const SwRect * pFlyFrameRect, const bool bNoTextFramePrtAreaChanged) Line 777 swlo.dll!SwContentNotify::ImplDestroy() Line 926 swlo.dll!SwContentNotify::~SwContentNotify() Line 1037 swlo.dll!SwNoTextFrame::MakeAll(OutputDevice * pRenderContext) Line 584 swlo.dll!SwFrame::OptPrepareMake() Line 412 swlo.dll!SwFrame::OptCalc() Line 1110 swlo.dll!SwLayAction::FormatContent_(const SwContentFrame * pContent, const SwPageFrame * pPage) Line 1969 swlo.dll!SwLayAction::FormatFlyContent(const SwFlyFrame * pFly) Line 1994 swlo.dll!SwObjectFormatter::FormatObj_(SwAnchoredObject & _rAnchoredObj) Line 312 swlo.dll!SwObjectFormatterTextFrame::DoFormatObj(SwAnchoredObject & _rAnchoredObj, const bool _bCheckForMovedFwd) Line 133 swlo.dll!SwObjectFormatter::FormatObjsAtFrame_(SwTextFrame * _pMasterTextFrame) Line 414 swlo.dll!SwObjectFormatterTextFrame::DoFormatObjs() Line 348 swlo.dll!SwObjectFormatter::FormatObjsAtFrame(SwFrame & _rAnchorFrame, const SwPageFrame & _rPageFrame, SwLayAction * _pLayAction) Line 160 swlo.dll!SwLayAction::FormatContent(SwPageFrame * pPage) Line 1802 swlo.dll!SwLayAction::InternalAction(OutputDevice * pRenderContext) Line 607 swlo.dll!SwLayAction::Action(OutputDevice * pRenderContext) Line 390 swlo.dll!SwLayIdle::SwLayIdle(SwRootFrame * pRt, SwViewShellImp * pI) Line 2372 swlo.dll!SwViewShell::LayoutIdle() Line 827 swlo.dll!sw::DocumentTimerManager::DoIdleJobs(Timer * __formal) Line 176 swlo.dll!sw::DocumentTimerManager::LinkStubDoIdleJobs(void * instance, Timer * data) Line 156 vcllo.dll!Link<Timer *,void>::Call(Timer * data) Line 111 vcllo.dll!Timer::Invoke() Line 75 vcllo.dll!Scheduler::CallbackTaskScheduling() Line 509 vcllo.dll!SalTimer::CallCallback() Line 53 vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer() Line 169 vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 525 vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 581 vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 385 vcllo.dll!Application::Yield() Line 473 vcllo.dll!Application::Execute() Line 361 sofficeapp.dll!desktop::Desktop::Main() Line 1652 vcllo.dll!ImplSVMain() Line 229 vcllo.dll!SVMain() Line 262 sofficeapp.dll!soffice_main() Line 121 soffice.bin!sal_main() Line 51 soffice.bin!main(int argc, char * * argv) Line 49 soffice.bin!invoke_main() Line 79 soffice.bin!__scrt_common_main_seh() Line 288 soffice.bin!__scrt_common_main() Line 331 soffice.bin!mainCRTStartup(void * __formal) Line 17 Change-Id: I92102a9cd11ccde307b070ebc1984eb3d17d65bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171856 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-08-14dubious to enable/disable help button based on IsContextHelpEnabledCaolán McNamara
in just the SingleTabController, which is a specific subset of all dialogs, the case of a dialog that hosts a page typically seen in a multi-table dialog. Why should such a dialog have no help, while its sibling containing the same page alongside others would have help, or vice-versa. Change-Id: I3f54c0088e30a396e83e990510ebe7f1f3bc7bda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171848 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-14cool#9699 - Don't show Help button when there is no helpHubert Figuière
The SfxSingleTabDialogController was explictely showing the Help button even if it was previously hidden by the VclBuilder due to lack of Help URL in Collabora Online This was the case in the spelling option dialog. See https://github.com/CollaboraOnline/online/issues/9699 Signed-off-by: Hubert Figuière <hub@collabora.com> Change-Id: I4454f3d1f0c097faeebf912c3282335fed67ec84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171697 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171847 Tested-by: Jenkins
2024-08-08ONLINE: Add Invert document background color command.Gülşah Köse
Change-Id: Ia8868a80e4eba9a9a1c0b31077d9eca0c5b00466 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171633 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-08-06cid#555593 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555849 COPY_INSTEAD_OF_MOVE cid#1555936 COPY_INSTEAD_OF_MOVE cid#1555951 COPY_INSTEAD_OF_MOVE cid#1555955 COPY_INSTEAD_OF_MOVE cid#1555960 COPY_INSTEAD_OF_MOVE cid#1555964 COPY_INSTEAD_OF_MOVE cid#1555965 COPY_INSTEAD_OF_MOVE cid#1555975 COPY_INSTEAD_OF_MOVE cid#1555979 COPY_INSTEAD_OF_MOVE cid#1555987 COPY_INSTEAD_OF_MOVE cid#1555990 COPY_INSTEAD_OF_MOVE cid#1555991 COPY_INSTEAD_OF_MOVE cid#1556002 COPY_INSTEAD_OF_MOVE cid#1556008 COPY_INSTEAD_OF_MOVE cid#1556011 COPY_INSTEAD_OF_MOVE cid#1556015 COPY_INSTEAD_OF_MOVE cid#1556017 COPY_INSTEAD_OF_MOVE cid#1556023 COPY_INSTEAD_OF_MOVE Change-Id: I8ab99d8e52a1780173a4272c59d408432c29de9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171572 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-25tdf#157233 - A11y: Add global Accessibility check options forBalazs Varga
managing which a11y issue should be checked. In default mode all the a11y issues are checked. Change-Id: Ib01e7d76e74b0b9cc9df259295edbee135b1c8a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170324 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-07-24tdf#159040: add sign with default certificate to save dialogSarper Akdemir
Include X.509 certificates under Tools->Options->UserData among the keys for signing. Add a new checkbox to Save file dialog, to sign with that selected key easily. The checkbox is disabled if there's no matching key found. Change-Id: I9fc16790c479819cd1f35bcad040d0ebc7c4bdef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170619 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-07-12cid#1555513 silence Use of auto that causes a copyCaolán McNamara
Change-Id: I9c079460215ca2c62126a04caec2b1246dff0f46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170411 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-11Don't save bullet changes when dialog was cancelledSamuel Mehrbrodt
Change-Id: Ia2a7feb2f47a59f7c693e2023f9c2c8b3b934f81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170336 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Tested-by: Jenkins
2024-07-09loplugin:unusedenumconstantsNoel Grandin
Change-Id: Ifd22f5cc618137d715f78f0a04550256987752ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170186 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-06-28Resolves tdf#115665 Format in the CTRL+H search affectsJim Raykowski
the CTRL+F search Change-Id: I51ccd2186c47a91958c262efac9a1514b9c3b138 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169606 Reviewed-by: Jim Raykowski <raykowj@gmail.com> Tested-by: Jenkins
2024-06-28tdf#33603: fix notespane (side/tool)bar interactionsSarper Akdemir
Introduces OverridingShells that when set, makes the view act like the MainViewShell. The main use case is having more then one ViewShell in a single window, where context (toolbars, sidebars etc.) can jump in between different ViewShells. Uses OverridingShells to enable NotesPane to react ToolBarShells. Accessing the functionality of ToolBarShells without the previous hacks with slot forwarding. Change-Id: Icc9721d7f54097025bc9dc7ef7069aed856e6d96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169658 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-06-27tdf#159925 - A11Y sidebar: Check for missing hyperlink nameBalazs Varga
Check if the hyperlink have missing name and add a fix button to fix the warning. Change-Id: I3a69490aa81cf0ed9d0edb04eaa3401e4b47eb7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169508 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-06-20loplugin:unusedmethodsNoel Grandin
Change-Id: Ia216da9bd7764f2d21aaee761a02eafda88d892e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169257 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-06-20tdf#159906 - A11Y: Add new direct character formatting group levelBalazs Varga
for Formatted warnings and keep them not expanded (default) to avoid to many visible warning message on the sidebar. Change-Id: Ic251909d793198c3c4ce5e132b763c15ac1c9a9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169110 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-06-20tdf#159835 sfx2: Keep sidebar menu up to dateMichael Weghorn
No longer update the menu for the menu button in the sidebar in the handler that gets called when the button gets clicked, but continually keep the menu up to date instead. This ensures that the menu is up-to-date when it gets shown. Updating the menu in the button handler is too late since commit f075fa01cb4f74185f13eb0a8d7f84cf1f47af49 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Aug 22 10:26:32 2023 +0200 tdf#141101 tdf#101886 a11y: Restore previous focus on col/line popup close , as the handler is now no more called before the menu gets shown. Do the update in method `TabBar::UpdateMenus` instead and call that one whenever items change or the sidebar gets docked/undocked, as menu entries are shown for the items and for (un)docking. This makes the menu show all entries again when opened the first time after starting Writer, which was no longer the case after the above-mentioned commmit. Change-Id: I9a7e341e88d2de5f34e8f85ebada3ff2ebf6b47d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169196 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-06-20tdf#159835 sfx2 Connect SidebarController menu handlers earlierMichael Weghorn
Instead of connecting the SidebarController handlers for handling activation of `TabBar` menu items every time in `TabBar::OnToolboxClicked` (which is the handler that gets called when clicking the menu button), do so once in the `TabBar` ctor. This also ensures that the handlers are connected before the menu shows for the first time, which is no longer true for the previous approach since commit f075fa01cb4f74185f13eb0a8d7f84cf1f47af49 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Aug 22 10:26:32 2023 +0200 tdf#141101 tdf#101886 a11y: Restore previous focus on col/line popup close Now, clicking on the sidebar menu and selecting the "Undock" entry works to undock the first time, not only when opening the menu for the second time. Populating all menu entries before the menu gets opened for the first time still needs to be implemented separately. Change-Id: I7e5d5e511c2ce2c7304e8f88676970d76e6319df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169193 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-06-18tdf#159835 sfx2: Simplify TabBar::OnToolboxClickedMichael Weghorn
Now that the logic from `SidebarController::PopulatePopupMenus` has been moved here in Change-Id: I8236f2467239e6a2f485d468656e961478eeb09c Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jun 17 13:35:12 2024 +0200 tdf#159835 sfx2: Move logic to populate sidebar menus to TabBar as well, simplify `TabBar::OnToolboxClicked`: No longer use one loop to build a vector of entries and another to process these, but use a single loop for that instead. Drop the now unused `DeckMenuData` class. Change-Id: I884f3b70bb4d85b9a52421e9de6042cda80cfa0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169006 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-06-18tdf#159835 sfx2: Move logic to populate sidebar menus to TabBarMichael Weghorn
Move the logic to populate the menus from `SidebarController::PopulatePopupMenus` (called by `SidebarController::ShowPopupMenu`) to `TabBar::OnToolboxClicked`. The latter called `SidebarController::ShowPopupMenu`. (In a first step, take over the existing implementation but leave further changes for following commits.) `TabBar::OnToolboxClicked` already collects all the deck data relevant for the menus and the menus are members of that class, so it seems more straighforward to populate the menus there right away. The only information needed from `SidebarController` is whether the sidebar is docked or not, so add a new method `SidebarController::IsDocked` to retrieve that information. Rename `SidebarController::ShowPopupMenu` to `SidebarController::ConnectMenuActivateHandlers` as it only connects the signals now, and rename `PopupMenuProvider` to `PopupMenuSignalConnectFunction` accordingly. This commit does some refactoring in preparation of fixing tdf#159835, no change in behavior intended (yet). Change-Id: I8236f2467239e6a2f485d468656e961478eeb09c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169005 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-06-18tdf#159835 sfx2: Use reference instead of pointerMichael Weghorn
This e.g. makes it clear that this is never null. Also use an `m` prefix for the class member. Change-Id: Ia66245f17e7f0ca9e57750e8606c8ccc1387eb97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169004 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-06-18Add SfxItemType to SfxPoolItemOliver Specht
The SfxPoolItem has a new member SfxItemType m_eItemType to compare types based on enums instead of typeinfo() which consumes a lot of time e.g. while AutoFormat is running Change-Id: I033ce67bc9a28ee4790f162380314de85fb4154e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166452 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2024-06-13Let LinkManager::UpdateAllLinks honor isUntrustedRefererStephan Bergmann
Change-Id: I3714061376afaf1186e4f7cfe5b28bfb54aa7a99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168789 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-06-12remove ability to trust not validated macro signatures in high securitySarper Akdemir
Giving the user the option to determine if they should trust an invalid signature in HIGH macro security doesn't make sense. CommonName of the signature is the most prominent feature presented and the CommonName of a certificate can be easily forged for an invalid signature, tricking the user into accepting an invalid signature. in the HIGH macro security setting only show the pop-up to enable/disable signed macro if the certificate signature can be validated. Additionally present a ViewSignatures button in the Macro Disabled infobar, so that the user can inspect what are the invalid signatures and why (wihtout the ability of enabling macros). Change-Id: Ia766fb701660160ee5dc9f6e077f4012a44ce721 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168667 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-06-06the remaining Help::GetHelpText calls don't want their parent as fallbackCaolán McNamara
so we can drop the hierarchical search these probably do nothing in the absence of the classic help. fpicker case might benefit from moving some a11y translations out of help into core. Change-Id: I01b8d0c7cc1a1b3697d3332e330c6b4654e76af1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168507 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-06-04sfx2: use SAL_RET_MAYBENULL in GetDispatcher() and GetFrame()Xisco Fauli
Change-Id: Ic9876dbdd0dc0ce887a6eb135bd411f8e3dc9e12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168288 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-29Resolves tdf#160937 - Improve dialog size for document propertiesHeiko Tietze
linefragment.ui and documentinfopage.ui modified to keep the usual dialog dimension Change-Id: I1777e4094e584d676a48855717827aaed413e251 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168139 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-05-27sfx2: use SAL_RET_MAYBENULL in GetFrameWeld()Xisco Fauli
Change-Id: I78c4d190f8fcb96abaad267b19ab6cb3732a1807 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168112 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-23sfx2: use SAL_RET_MAYBENULL in GetBindings() and GetShell()Xisco Fauli
after 9eb083ab732512c3ab64007c3be1c54be97172f6 "check GetShell" Change-Id: I0dcef57019fde7639ddbb981cbd41c13f857b4af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167905 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-05-22tdf#161209 - Reverts WhatsNew/Welcome dialogHeiko Tietze
dd889b290304b73f96a9a8e6e0f144d3aa2ba7e1 Change-Id: Idf0594c546e4d9ca263272ed1534b27948e8e930 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167956 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
2024-05-22sfx2: bGlobalOnly is always falseXisco Fauli
Change-Id: Iaba1a77ae0ac7537f1dbf05fa097b3235b36f64d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167921 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-18lok: dump more SfxViewShell state, and LOK notifier state on Windows.Michael Meeks
This should help to associate the right view-ids, with the right windows, and help to catch any stray / lingering windows from closed sessions - hopefully. Change-Id: I197a3280d5d2aeddd356ee037c51e4887f43278b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167765 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 8d979fae0c435b820302c76fcfdc2642b4820360) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167684 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>