diff options
Diffstat (limited to 'uui')
-rw-r--r-- | uui/AllLangResTarget_uui.mk | 1 | ||||
-rw-r--r-- | uui/Library_uui.mk | 1 | ||||
-rw-r--r-- | uui/source/iahndl-locking.cxx | 42 | ||||
-rw-r--r-- | uui/source/iahndl.cxx | 2 | ||||
-rw-r--r-- | uui/source/iahndl.hxx | 2 | ||||
-rw-r--r-- | uui/source/ids.hrc | 41 | ||||
-rw-r--r-- | uui/source/lockcorrupt.cxx | 44 | ||||
-rw-r--r-- | uui/source/lockcorrupt.hxx | 33 | ||||
-rw-r--r-- | uui/source/lockcorrupt.src | 37 | ||||
-rw-r--r-- | uui/source/lockfailed.cxx | 5 | ||||
-rw-r--r-- | uui/source/lockfailed.src | 6 |
11 files changed, 181 insertions, 33 deletions
diff --git a/uui/AllLangResTarget_uui.mk b/uui/AllLangResTarget_uui.mk index 2cd36571b0e8..fe59c93c6201 100644 --- a/uui/AllLangResTarget_uui.mk +++ b/uui/AllLangResTarget_uui.mk @@ -25,6 +25,7 @@ $(eval $(call gb_SrsTarget_add_files,uui/res,\ uui/source/filechanged.src \ uui/source/ids.src \ uui/source/lockfailed.src \ + uui/source/lockcorrupt.src \ uui/source/nameclashdlg.src \ uui/source/openlocked.src \ uui/source/passworddlg.src \ diff --git a/uui/Library_uui.mk b/uui/Library_uui.mk index 6f3a8417ea78..6a2096b86632 100644 --- a/uui/Library_uui.mk +++ b/uui/Library_uui.mk @@ -49,6 +49,7 @@ $(eval $(call gb_Library_add_exception_objects,uui,\ uui/source/iahndl-ssl \ uui/source/interactionhandler \ uui/source/lockfailed \ + uui/source/lockcorrupt \ uui/source/logindlg \ uui/source/masterpasscrtdlg \ uui/source/masterpassworddlg \ diff --git a/uui/source/iahndl-locking.cxx b/uui/source/iahndl-locking.cxx index dfa051e8c0b1..6a1631462031 100644 --- a/uui/source/iahndl-locking.cxx +++ b/uui/source/iahndl-locking.cxx @@ -23,6 +23,7 @@ #include <com/sun/star/document/LockedDocumentRequest.hpp> #include <com/sun/star/document/LockedOnSavingRequest.hpp> #include <com/sun/star/document/LockFileIgnoreRequest.hpp> +#include <com/sun/star/document/LockFileCorruptRequest.hpp> #include <com/sun/star/document/OwnLockOnDocumentRequest.hpp> #include <com/sun/star/task/XInteractionApprove.hpp> #include <com/sun/star/task/XInteractionDisapprove.hpp> @@ -40,6 +41,7 @@ #include "alreadyopen.hxx" #include "filechanged.hxx" #include "lockfailed.hxx" +#include "lockcorrupt.hxx" #include "iahndl.hxx" @@ -172,11 +174,16 @@ handleChangedByOthersRequest_( } } +const sal_uInt16 UUI_DOC_CreateErrDlg = 0; +const sal_uInt16 UUI_DOC_CorruptErrDlg = 1; + + + void -handleLockFileIgnoreRequest_( +handleLockFileProblemRequest_( vcl::Window * pParent, uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & - rContinuations ) + rContinuations, sal_uInt16 nWhichDlg ) { uno::Reference< task::XInteractionApprove > xApprove; uno::Reference< task::XInteractionAbort > xAbort; @@ -192,8 +199,19 @@ handleLockFileIgnoreRequest_( if (!xManager.get()) return; - ScopedVclPtrInstance< LockFailedQueryBox > xDialog(pParent, xManager.get()); - sal_Int32 nResult = xDialog->Execute(); + sal_Int32 nResult; + + if (nWhichDlg == UUI_DOC_CreateErrDlg) + { + ScopedVclPtrInstance< LockFailedQueryBox > xDialog(pParent, xManager.get()); + nResult = xDialog->Execute(); + } + else + { + ScopedVclPtrInstance< LockCorruptQueryBox > xDialog(pParent, xManager.get()); + nResult = xDialog->Execute(); + } + if ( nResult == RET_OK ) xApprove->select(); @@ -267,8 +285,9 @@ UUIInteractionHelper::handleChangedByOthersRequest( return false; } + bool -UUIInteractionHelper::handleLockFileIgnoreRequest( +UUIInteractionHelper::handleLockFileProblemRequest( uno::Reference< task::XInteractionRequest > const & rRequest) { uno::Any aAnyRequest(rRequest->getRequest()); @@ -276,10 +295,19 @@ UUIInteractionHelper::handleLockFileIgnoreRequest( document::LockFileIgnoreRequest aLockFileIgnoreRequest; if (aAnyRequest >>= aLockFileIgnoreRequest ) { - handleLockFileIgnoreRequest_( getParentProperty(), - rRequest->getContinuations() ); + handleLockFileProblemRequest_( getParentProperty(), + rRequest->getContinuations(), UUI_DOC_CreateErrDlg ); return true; } + + document::LockFileCorruptRequest aLockFileCorruptRequest; + if (aAnyRequest >>= aLockFileCorruptRequest ) + { + handleLockFileProblemRequest_( getParentProperty(), + rRequest->getContinuations(), UUI_DOC_CorruptErrDlg ); + return true; + } + return false; } diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx index 0ee640216f98..5d0d55a909c2 100644 --- a/uui/source/iahndl.cxx +++ b/uui/source/iahndl.cxx @@ -807,7 +807,7 @@ UUIInteractionHelper::handleRequest_impl( if ( handleChangedByOthersRequest( rRequest ) ) return true; - if ( handleLockFileIgnoreRequest( rRequest ) ) + if ( handleLockFileProblemRequest( rRequest ) ) return true; task::DocumentMacroConfirmationRequest aMacroConfirmRequest; diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx index 175f928da837..877c216596dc 100644 --- a/uui/source/iahndl.hxx +++ b/uui/source/iahndl.hxx @@ -232,7 +232,7 @@ private: css::uno::Reference< css::task::XInteractionRequest > const & rRequest); - bool handleLockFileIgnoreRequest( + bool handleLockFileProblemRequest( css::uno::Reference< css::task::XInteractionRequest > const & rRequest); bool handleCustomRequest( diff --git a/uui/source/ids.hrc b/uui/source/ids.hrc index bc24f7fea1a3..635c708d3d8c 100644 --- a/uui/source/ids.hrc +++ b/uui/source/ids.hrc @@ -47,26 +47,29 @@ #define STR_ALREADYOPEN_OPEN_BTN (RID_UUI_START + 42) #define STR_LOCKFAILED_TITLE (RID_UUI_START + 43) #define STR_LOCKFAILED_MSG (RID_UUI_START + 44) -#define STR_LOCKFAILED_DONTSHOWAGAIN (RID_UUI_START + 45) -#define STR_TRYLATER_TITLE (RID_UUI_START + 46) -#define STR_TRYLATER_MSG (RID_UUI_START + 47) -#define STR_TRYLATER_RETRYSAVING_BTN (RID_UUI_START + 48) -#define STR_TRYLATER_SAVEAS_BTN (RID_UUI_START + 49) -#define STR_ALREADYOPEN_SAVE_MSG (RID_UUI_START + 50) -#define STR_ALREADYOPEN_RETRY_SAVE_BTN (RID_UUI_START + 51) -#define STR_ALREADYOPEN_SAVE_BTN (RID_UUI_START + 52) +#define STR_LOCKFAILED_OPENREADONLY_BTN (RID_UUI_START + 45) +#define STR_LOCKCORRUPT_TITLE (RID_UUI_START + 46) +#define STR_LOCKCORRUPT_MSG (RID_UUI_START + 47) +#define STR_LOCKCORRUPT_OPENREADONLY_BTN (RID_UUI_START + 48) +#define STR_TRYLATER_TITLE (RID_UUI_START + 49) +#define STR_TRYLATER_MSG (RID_UUI_START + 50) +#define STR_TRYLATER_RETRYSAVING_BTN (RID_UUI_START + 51) +#define STR_TRYLATER_SAVEAS_BTN (RID_UUI_START + 52) +#define STR_ALREADYOPEN_SAVE_MSG (RID_UUI_START + 53) +#define STR_ALREADYOPEN_RETRY_SAVE_BTN (RID_UUI_START + 54) +#define STR_ALREADYOPEN_SAVE_BTN (RID_UUI_START + 55) -#define STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE (RID_UUI_START + 54) -#define STR_ENTER_PASSWORD_TO_OPEN (RID_UUI_START + 56) -#define STR_ENTER_PASSWORD_TO_MODIFY (RID_UUI_START + 57) -#define STR_RENAME_OR_REPLACE (RID_UUI_START + 58) -#define STR_NAME_CLASH_RENAME_ONLY (RID_UUI_START + 59) -#define STR_SAME_NAME_USED (RID_UUI_START + 60) -#define STR_ENTER_SIMPLE_PASSWORD (RID_UUI_START + 61) -#define STR_CONFIRM_SIMPLE_PASSWORD (RID_UUI_START + 62) -#define STR_TITLE_CREATE_PASSWORD (RID_UUI_START + 63) -#define STR_TITLE_ENTER_PASSWORD (RID_UUI_START + 64) -#define STR_PASSWORD_MISMATCH (RID_UUI_START + 65) +#define STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE (RID_UUI_START + 56) +#define STR_ENTER_PASSWORD_TO_OPEN (RID_UUI_START + 57) +#define STR_ENTER_PASSWORD_TO_MODIFY (RID_UUI_START + 58) +#define STR_RENAME_OR_REPLACE (RID_UUI_START + 59) +#define STR_NAME_CLASH_RENAME_ONLY (RID_UUI_START + 60) +#define STR_SAME_NAME_USED (RID_UUI_START + 61) +#define STR_ENTER_SIMPLE_PASSWORD (RID_UUI_START + 62) +#define STR_CONFIRM_SIMPLE_PASSWORD (RID_UUI_START + 63) +#define STR_TITLE_CREATE_PASSWORD (RID_UUI_START + 64) +#define STR_TITLE_ENTER_PASSWORD (RID_UUI_START + 65) +#define STR_PASSWORD_MISMATCH (RID_UUI_START + 66) #define ERRCODE_UUI_IO_ABORT (ERRCODE_AREA_UUI + 0) #define ERRCODE_UUI_IO_ACCESSDENIED (ERRCODE_AREA_UUI + 1) diff --git a/uui/source/lockcorrupt.cxx b/uui/source/lockcorrupt.cxx new file mode 100644 index 000000000000..a22ad863ccc0 --- /dev/null +++ b/uui/source/lockcorrupt.cxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include "ids.hrc" +#include "lockcorrupt.hxx" + +#include <vcl/button.hxx> + +LockCorruptQueryBox::LockCorruptQueryBox( vcl::Window* pParent, ResMgr* pResMgr ) : + MessBox(pParent, 0, + ResId(STR_LOCKCORRUPT_TITLE, *pResMgr).toString(), + OUString() ) +{ + SetImage( ErrorBox::GetStandardImage() ); + + AddButton(ResId(STR_LOCKCORRUPT_OPENREADONLY_BTN, *pResMgr).toString(), RET_OK, + ButtonDialogFlags::Default | ButtonDialogFlags::OK | ButtonDialogFlags::Focus); + + AddButton( StandardButtonType::Cancel, RET_CANCEL, ButtonDialogFlags::Cancel ); + + SetMessText(ResId(STR_LOCKCORRUPT_MSG, *pResMgr ).toString()); +} + +LockCorruptQueryBox::~LockCorruptQueryBox() +{ +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/uui/source/lockcorrupt.hxx b/uui/source/lockcorrupt.hxx new file mode 100644 index 000000000000..b83d94084d8c --- /dev/null +++ b/uui/source/lockcorrupt.hxx @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef INCLUDED_UUI_SOURCE_LOCKCORRUPT_HXX +#define INCLUDED_UUI_SOURCE_LOCKCORRUPT_HXX + +#include <vcl/msgbox.hxx> + +class LockCorruptQueryBox : public MessBox +{ +public: + LockCorruptQueryBox( vcl::Window* pParent, ResMgr* pResMgr ); + virtual ~LockCorruptQueryBox() override; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/uui/source/lockcorrupt.src b/uui/source/lockcorrupt.src new file mode 100644 index 000000000000..e26535f3f925 --- /dev/null +++ b/uui/source/lockcorrupt.src @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#define __RSC + +#include "ids.hrc" + +String STR_LOCKCORRUPT_TITLE +{ + Text [ en-US ] = "Lock file is corrupted"; +}; +String STR_LOCKCORRUPT_MSG +{ + Text [ en-US ] = "The lock file is corrupted and probably empty. Opening the document read-only and closing it again removes the corrupted lock file."; +}; +String STR_LOCKCORRUPT_OPENREADONLY_BTN +{ + Text [ en-US ] = "Open ~Read-Only"; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/uui/source/lockfailed.cxx b/uui/source/lockfailed.cxx index 77ceb7e8d625..63ad3a76f2a0 100644 --- a/uui/source/lockfailed.cxx +++ b/uui/source/lockfailed.cxx @@ -29,11 +29,12 @@ LockFailedQueryBox::LockFailedQueryBox( vcl::Window* pParent, ResMgr* pResMgr ) { SetImage( ErrorBox::GetStandardImage() ); - AddButton( StandardButtonType::OK, RET_OK, ButtonDialogFlags::OK ); + AddButton(ResId(STR_LOCKFAILED_OPENREADONLY_BTN, *pResMgr).toString(), RET_OK, + ButtonDialogFlags::Default | ButtonDialogFlags::OK | ButtonDialogFlags::Focus); + AddButton( StandardButtonType::Cancel, RET_CANCEL, ButtonDialogFlags::Cancel ); SetMessText(ResId(STR_LOCKFAILED_MSG, *pResMgr ).toString()); - SetCheckBoxText(ResId(STR_LOCKFAILED_DONTSHOWAGAIN, *pResMgr).toString()); } LockFailedQueryBox::~LockFailedQueryBox() diff --git a/uui/source/lockfailed.src b/uui/source/lockfailed.src index 91b5bff7f559..5fa7ba5b3482 100644 --- a/uui/source/lockfailed.src +++ b/uui/source/lockfailed.src @@ -25,11 +25,11 @@ String STR_LOCKFAILED_TITLE }; String STR_LOCKFAILED_MSG { - Text [ en-US ] = "The file could not be locked for exclusive access by %PRODUCTNAME, due to missing permission to create a lock file on that file location."; + Text [ en-US ] = "The lock file could not be created for exclusive access by %PRODUCTNAME, due to missing permission to create a lock file on that file location or lack of free disk space."; }; -String STR_LOCKFAILED_DONTSHOWAGAIN +String STR_LOCKFAILED_OPENREADONLY_BTN { - Text [ en-US ] = "~Do not show this message again"; + Text [ en-US ] = "Open ~Read-Only"; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |