summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2009-01-06 16:18:24 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2009-01-06 16:18:24 +0000
commit56bfd8ec819cc24bcc7c142906609656aa5178a0 (patch)
tree393ebe34a8207dc91ab8737b57d3fae9deada260 /comphelper
parent4e1fd2fa161708049f1c3b6039659d0bf4f4539e (diff)
CWS-TOOLING: integrate CWS mav43
2008-12-17 14:42:56 +0100 tbo r265602 : #i97269# changed hid.lst and etab.win 2008-12-15 15:36:04 +0100 mav r265508 : #i95809# remove the stream as well 2008-12-12 13:20:09 +0100 mav r265411 : #i95809# small fixes 2008-12-12 13:12:07 +0100 mav r265410 : #i95809# fix streams handling 2008-12-12 10:45:29 +0100 mav r265397 : #i95809# close the stream if there is no storage 2008-12-12 10:24:38 +0100 mav r265396 : #i95809# close the stream if there is no temporary file 2008-12-12 00:56:13 +0100 mav r265383 : #i95809# adopt for linux 2008-12-12 00:51:25 +0100 mav r265382 : #i95809# adopt for linux 2008-12-12 00:38:31 +0100 mav r265381 : #i95809# check timestamp only if fs locking not active 2008-12-12 00:35:32 +0100 mav r265380 : #i95809# small fixes 2008-12-12 00:29:33 +0100 mav r265379 : #i95809# small fixes 2008-12-11 22:30:15 +0100 mav r265374 : #i97092# allow to use default master password 2008-12-11 22:20:56 +0100 mav r265372 : #i95809# avoid storage closing 2008-12-11 21:11:37 +0100 mav r265368 : #i97092# do not publish for now 2008-12-11 21:08:22 +0100 mav r265366 : #i95809# fix typo 2008-12-11 21:06:49 +0100 mav r265364 : #i95809# small fixes 2008-12-11 21:05:13 +0100 mav r265363 : #i95809# small fixes 2008-12-11 20:40:05 +0100 mav r265360 : #i95809# show warning if the document was touched 2008-12-11 20:39:44 +0100 mav r265359 : #i95809# show warning if the document was touched 2008-12-11 19:54:45 +0100 mav r265355 : #i95809# small fixes 2008-12-11 19:42:52 +0100 mav r265353 : #i95809# small fixes 2008-12-11 19:30:30 +0100 mav r265351 : #i95809# small fixes 2008-12-11 19:16:40 +0100 mav r265349 : #i95809# small fixes 2008-12-11 19:05:56 +0100 mav r265348 : #i95809# small fixes 2008-12-11 18:26:03 +0100 mav r265346 : #i95809# ignore the exception 2008-12-11 18:19:28 +0100 mav r265345 : #i95809# pure imput stream in case of local file URL means opening of document readonly 2008-12-11 17:41:56 +0100 mav r265341 : #i95809# unfortunately SfxMedium can not take the decision 2008-12-11 17:37:07 +0100 mav r265340 : #i95809# fix typo 2008-12-11 17:33:47 +0100 mav r265339 : #i95809# pure imput stream in case of local file URL means opening of document readonly 2008-12-11 16:12:26 +0100 mav r265330 : #i95809# let dialogs look better 2008-12-11 15:50:43 +0100 mav r265322 : #i97092# allow to use default master password 2008-12-11 13:35:39 +0100 mav r265295 : #i97092# allow to use default master password 2008-12-11 13:04:28 +0100 mav r265290 : #i97092# allow to use default master password 2008-12-11 12:34:52 +0100 mav r265284 : #i97092# allow to use default master password 2008-12-11 11:21:33 +0100 mav r265267 : #i95809# adopt for linux 2008-12-11 10:25:22 +0100 mav r265255 : #i97092# allow to use default master password 2008-12-11 10:24:35 +0100 mav r265254 : #i97092# allow to use default master password 2008-12-10 17:02:32 +0100 pb r265207 : fix: #i97092# more info text 2008-12-10 16:40:53 +0100 mav r265205 : #i95809# integrate new file locking UI in sfx workflow 2008-12-10 16:38:55 +0100 mav r265204 : #i95809# allow to ignore own lock on saving 2008-12-10 14:52:12 +0100 pb r265192 : fix: #i97092# new master password behavior 2008-12-10 14:51:22 +0100 pb r265191 : fix: #i97092# new master password bahavior 2008-12-10 14:49:46 +0100 pb r265189 : fix: #i97092# new master password bahavior 2008-12-10 10:55:19 +0100 mav r265155 : #i95809# allow to ignore own lock on saving 2008-12-09 17:47:51 +0100 mav r265124 : #i95809# allow to ignore own lock on saving 2008-12-07 11:24:57 +0100 mav r264949 : #i95809# let the request be derived from IOException 2008-12-05 18:31:35 +0100 mav r264915 : #i95809# use the locking related dialogs from InteractionHandler 2008-12-04 18:33:36 +0100 mav r264867 : #i95809# the requests for the new locking UI 2008-12-04 10:26:52 +0100 pb r264822 : fix: #i95809# new message boxes for locking 2008-12-04 10:23:51 +0100 pb r264821 : fix: #i95809# STR_OPENLOCKED_UNKNOWNUSER replaced by STR_UNKNOWNUSER 2008-12-04 10:18:23 +0100 pb r264820 : fix: #i95809# new message boxes for locking 2008-12-04 10:15:56 +0100 pb r264819 : fix: #i95809# new message boxes for locking 2008-12-03 16:06:46 +0100 mav r264796 : #i95809# system file locking support 2008-12-02 16:19:30 +0100 mav r264717 : #i95809# system file locking support 2008-12-02 16:07:10 +0100 mav r264716 : #i95809# system file locking support 2008-12-02 15:58:53 +0100 mav r264714 : #i95809# change the name 2008-12-02 15:58:06 +0100 mav r264713 : #i95809# do not allow to change ReadOnly flag in TypeDetection 2008-12-02 15:56:00 +0100 mav r264712 : #i95809# system file locking support 2008-12-02 15:43:20 +0100 mav r264708 : #i95809# change the name 2008-12-02 15:38:08 +0100 mav r264706 : #i95809# an options to control system file locking usage
Diffstat (limited to 'comphelper')
-rw-r--r--comphelper/inc/comphelper/mediadescriptor.hxx44
-rw-r--r--comphelper/source/misc/mediadescriptor.cxx35
2 files changed, 70 insertions, 9 deletions
diff --git a/comphelper/inc/comphelper/mediadescriptor.hxx b/comphelper/inc/comphelper/mediadescriptor.hxx
index f1a05de9de5a..5cd36d2e687b 100644
--- a/comphelper/inc/comphelper/mediadescriptor.hxx
+++ b/comphelper/inc/comphelper/mediadescriptor.hxx
@@ -151,16 +151,31 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap
A might existing InteractionHandler will be used automaticly,
to solve problems!
- @param bLockFile
- specifies whether the file should be locked
+ In case of local file the system file locking is used.
@return TRUE, if the stream was already part of the descriptor or could
be created as new item. FALSE otherwhise.
*/
- // HACK: IT SHOULD BE ONLY ONE METHOD, THE TEMPORARY SOLUTION ALLOWS TO AVOID INCOMPATIBLE BUILD
- sal_Bool addInputStream_Impl( sal_Bool bLockFile );
sal_Bool addInputStream();
- sal_Bool addInputStreamNoLock();
+
+ //---------------------------------------
+ /** @short it checks if the descriptor already has a valid
+ InputStream item and creates a new one, if not.
+
+ @descr This method uses the current items of this MediaDescriptor,
+ to open the stream (as e.g. URL, ReadOnly, PostData etcpp.).
+ It creates a seekable stream and put it into the descriptor.
+
+ A might existing InteractionHandler will be used automaticly,
+ to solve problems!
+
+ In case of local file the system file locking is used based on
+ configuration settings.
+
+ @return TRUE, if the stream was already part of the descriptor or could
+ be created as new item. FALSE otherwhise.
+ */
+ sal_Bool addInputStreamOwnLock();
//---------------------------------------
/** @short it checks if the descriptor describes a readonly stream.
@@ -248,6 +263,25 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap
the "normalized" URL (e.g. without jumpmark)
*/
COMPHELPER_DLLPRIVATE ::rtl::OUString impl_normalizeURL(const ::rtl::OUString& sURL);
+
+ //---------------------------------------
+ /** @short it checks if the descriptor already has a valid
+ InputStream item and creates a new one, if not.
+
+ @descr This method uses the current items of this MediaDescriptor,
+ to open the stream (as e.g. URL, ReadOnly, PostData etcpp.).
+ It creates a seekable stream and put it into the descriptor.
+
+ A might existing InteractionHandler will be used automaticly,
+ to solve problems!
+
+ @param bLockFile
+ specifies whether the file should be locked
+
+ @return TRUE, if the stream was already part of the descriptor or could
+ be created as new item. FALSE otherwhise.
+ */
+ COMPHELPER_DLLPRIVATE sal_Bool impl_addInputStream( sal_Bool bLockFile );
};
} // namespace comphelper
diff --git a/comphelper/source/misc/mediadescriptor.cxx b/comphelper/source/misc/mediadescriptor.cxx
index fe2a5a3801fe..da0dd71a5520 100644
--- a/comphelper/source/misc/mediadescriptor.cxx
+++ b/comphelper/source/misc/mediadescriptor.cxx
@@ -86,11 +86,14 @@
#include <com/sun/star/uri/XUriReference.hpp>
#endif
#include <com/sun/star/ucb/PostCommandArgument2.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+
#include <ucbhelper/interceptedinteraction.hxx>
#include <ucbhelper/content.hxx>
#include <ucbhelper/commandenvironment.hxx>
#include <ucbhelper/activedatasink.hxx>
#include <comphelper/processfactory.hxx>
+#include <comphelper/configurationhelper.hxx>
#if OSL_DEBUG_LEVEL>0
#ifndef _RTL_USTRBUF_HXX_
@@ -501,15 +504,39 @@ sal_Bool MediaDescriptor::isStreamReadOnly() const
-----------------------------------------------*/
sal_Bool MediaDescriptor::addInputStream()
{
- return addInputStream_Impl( sal_True );
+ return impl_addInputStream( sal_True );
}
-sal_Bool MediaDescriptor::addInputStreamNoLock()
+/*-----------------------------------------------*/
+sal_Bool MediaDescriptor::addInputStreamOwnLock()
{
- return addInputStream_Impl( sal_False );
+ // Own lock file implementation
+
+ sal_Bool bUseLock = sal_True; // the system file locking is used per default
+ try
+ {
+
+ css::uno::Reference< css::uno::XInterface > xCommonConfig = ::comphelper::ConfigurationHelper::openConfig(
+ ::comphelper::getProcessServiceFactory(),
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.Common" ) ),
+ ::comphelper::ConfigurationHelper::E_STANDARD );
+ if ( !xCommonConfig.is() )
+ throw css::uno::RuntimeException();
+
+ ::comphelper::ConfigurationHelper::readRelativeKey(
+ xCommonConfig,
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Misc/" ) ),
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UseDocumentSystemFileLocking" ) ) ) >>= bUseLock;
+ }
+ catch( const css::uno::Exception& )
+ {
+ }
+
+ return impl_addInputStream( bUseLock );
}
-sal_Bool MediaDescriptor::addInputStream_Impl( sal_Bool bLockFile )
+/*-----------------------------------------------*/
+sal_Bool MediaDescriptor::impl_addInputStream( sal_Bool bLockFile )
{
// check for an already existing stream item first
const_iterator pIt = find(MediaDescriptor::PROP_INPUTSTREAM());