summaryrefslogtreecommitdiff
path: root/uui/source
diff options
context:
space:
mode:
Diffstat (limited to 'uui/source')
-rw-r--r--uui/source/iahndl-locking.cxx42
-rw-r--r--uui/source/iahndl.cxx2
-rw-r--r--uui/source/iahndl.hxx2
-rw-r--r--uui/source/ids.hrc41
-rw-r--r--uui/source/lockcorrupt.cxx44
-rw-r--r--uui/source/lockcorrupt.hxx33
-rw-r--r--uui/source/lockcorrupt.src37
-rw-r--r--uui/source/lockfailed.cxx5
-rw-r--r--uui/source/lockfailed.src6
9 files changed, 179 insertions, 33 deletions
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: */