summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2009-01-21 15:28:14 +0000
committerVladimir Glazounov <vg@openoffice.org>2009-01-21 15:28:14 +0000
commit534a874435a3d932ae29aa43dbea6aaf6a8c350f (patch)
tree524dfe69d3468a1b3b4fb0beaf95856cc9a49867 /sfx2
parent804e334b942039ac568658440e31e069779699a4 (diff)
CWS-TOOLING: integrate CWS fwk95
2009-01-15 13:24:14 +0100 cd r266366 : #i96390# Change method name to use UNO AWT style for mnemonics 2009-01-15 13:23:30 +0100 cd r266365 : #i96390# Change method name to use UNO AWT style for mnemonics 2009-01-12 17:25:13 +0100 cd r266174 : #i97983# Check pointer returned by dynamic_cast 2009-01-12 15:31:40 +0100 cd r266162 : #i97983# Create toolkit popup menus via service manager instead of implementation class 2008-12-11 15:04:34 +0100 cd r265305 : #i95863# Remove user defined properties 2008-12-11 14:56:45 +0100 cd r265302 : #i95606# Update documentation for textfields 2008-12-11 10:06:20 +0100 cd r265250 : #i96390# Fix warning on Solaris compiler 2008-12-09 17:27:32 +0100 cd r265119 : CWS-TOOLING: rebase CWS fwk95 to trunk@264807 (milestone: DEV300:m37) 2008-12-01 13:29:43 +0100 cd r264597 : #i96390# New interfaces and structures for complete UNO AWT menu API 2008-12-01 13:25:22 +0100 cd r264596 : #i96390# Added implementation of the new UNO AWT interfaces and structures for menus 2008-11-28 13:55:19 +0100 cd r264553 : #i96640# Fixed wrong property type for MenuBarCloser 2008-11-28 13:53:56 +0100 cd r264552 : #i96621# Fixed ambiguous usage of && and || 2008-11-18 16:05:45 +0100 cd r263781 : #i95316# Initialize SvtTabAppearanceCfg to enable system settings changed notiifcation code 2008-11-18 16:05:43 +0100 cd r263780 : #i96155# Fix wrong statement to check for enabled argument 2008-10-20 16:54:37 +0200 cd r262328 : #i10000# migrate CWS fwk95 to SVN.
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/inc/sfx2/dinfdlg.hxx21
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx56
-rw-r--r--sfx2/source/doc/objserv.cxx23
-rw-r--r--sfx2/source/doc/sfxbasemodel.cxx33
4 files changed, 48 insertions, 85 deletions
diff --git a/sfx2/inc/sfx2/dinfdlg.hxx b/sfx2/inc/sfx2/dinfdlg.hxx
index f556bf347e..67fb4bcbb0 100644
--- a/sfx2/inc/sfx2/dinfdlg.hxx
+++ b/sfx2/inc/sfx2/dinfdlg.hxx
@@ -54,22 +54,12 @@ namespace com { namespace sun { namespace star {
class XPropertyContainer;
}
namespace document {
- class XDocumentInfo;
class XDocumentProperties;
}
} } }
-struct CustomProperty
-{
- ::rtl::OUString m_sName;
- com::sun::star::uno::Any m_aValue;
-
- CustomProperty( const ::rtl::OUString& sName, const com::sun::star::uno::Any& rValue ) :
- m_sName( sName ), m_aValue( rValue ) {}
+struct CustomProperty;
- inline bool operator==( const CustomProperty& rProp )
- { return m_sName.equals( rProp.m_sName ) && m_aValue == rProp.m_aValue; }
-};
// class SfxDocumentInfoItem ---------------------------------------------
@@ -103,23 +93,18 @@ private:
public:
TYPEINFO();
SfxDocumentInfoItem();
-//FIXME: remove XDocumentInfo when implementing "Custom" tab
SfxDocumentInfoItem( const String &rFileName,
const ::com::sun::star::uno::Reference<
::com::sun::star::document::XDocumentProperties> & i_xDocProps,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::document::XDocumentInfo> & i_xDocInfo,
sal_Bool bUseUserData );
SfxDocumentInfoItem( const SfxDocumentInfoItem& );
virtual ~SfxDocumentInfoItem();
-//FIXME: remove XDocumentInfo when implementing "Custom" tab
/// update i_xDocProps with the data in this object
void updateDocumentInfo(
const ::com::sun::star::uno::Reference<
- ::com::sun::star::document::XDocumentProperties> & i_xDocProps,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::document::XDocumentInfo> & i_xDocInfo) const;
+ ::com::sun::star::document::XDocumentProperties> & i_xDocProps)
+ const;
sal_Bool isAutoloadEnabled() const { return m_isAutoloadEnabled; }
void setAutoloadEnabled(sal_Bool i_val) { m_isAutoloadEnabled = i_val; }
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 4fd74cc5e4..632645dd8a 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -36,9 +36,7 @@
#include <vcl/svapp.hxx>
#include <sfx2/filedlghelper.hxx>
#include <unotools/localedatawrapper.hxx>
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
#include <comphelper/processfactory.hxx>
-#endif
#include <svtools/urihelper.hxx>
#include <svtools/useroptions.hxx>
#include <svtools/imagemgr.hxx>
@@ -48,9 +46,7 @@
#include <comphelper/string.hxx>
#include <comphelper/processfactory.hxx>
-#ifndef _COM_SUN_STAR_SECURITY_DOCUMENTSIGNATURESINFORMATION_HPP_
#include <com/sun/star/security/DocumentSignatureInformation.hpp>
-#endif
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <unotools/localedatawrapper.hxx>
#include <svtools/syslocale.hxx>
@@ -60,7 +56,6 @@
#include <com/sun/star/beans/XPropertyContainer.hpp>
#include <com/sun/star/util/Date.hpp>
#include <com/sun/star/document/XDocumentProperties.hpp>
-#include <com/sun/star/document/XDocumentInfo.hpp>
#include <vcl/timer.hxx>
#include <sfx2/dinfdlg.hxx>
@@ -86,9 +81,20 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
-// The number of user defined fields handled by the dialog
-// There are exactly 4. No more, no less.
-#define FOUR 4
+
+struct CustomProperty
+{
+ ::rtl::OUString m_sName;
+ com::sun::star::uno::Any m_aValue;
+
+ CustomProperty( const ::rtl::OUString& sName,
+ const com::sun::star::uno::Any& rValue ) :
+ m_sName( sName ), m_aValue( rValue ) {}
+
+ inline bool operator==( const CustomProperty& rProp )
+ { return m_sName.equals( rProp.m_sName ) && m_aValue == rProp.m_aValue; }
+};
+
static
bool operator==(const util::DateTime &i_rLeft, const util::DateTime &i_rRight)
@@ -227,7 +233,6 @@ SfxDocumentInfoItem::SfxDocumentInfoItem()
SfxDocumentInfoItem::SfxDocumentInfoItem( const String& rFile,
const uno::Reference<document::XDocumentProperties>& i_xDocProps,
- const uno::Reference<document::XDocumentInfo>& i_xDocInfo,
sal_Bool bIs )
: SfxStringItem( SID_DOCINFO, rFile )
, m_AutoloadDelay( i_xDocProps->getAutoloadSecs() )
@@ -252,11 +257,6 @@ SfxDocumentInfoItem::SfxDocumentInfoItem( const String& rFile,
, bDeleteUserData( sal_False )
, bIsUseUserData( bIs )
{
- for (sal_Int16 i = 0; i < FOUR; ++i) {
- m_UserDefinedFieldTitles[i] = i_xDocInfo->getUserFieldName(i);
- m_UserDefinedFieldValues[i] = i_xDocInfo->getUserFieldValue(i);
- }
-
try
{
Reference< beans::XPropertyContainer > xContainer = i_xDocProps->getUserDefinedProperties();
@@ -306,7 +306,7 @@ SfxDocumentInfoItem::SfxDocumentInfoItem( const SfxDocumentInfoItem& rItem )
, bDeleteUserData( rItem.bDeleteUserData )
, bIsUseUserData( rItem.bIsUseUserData )
{
- for (size_t i = 0; i < FOUR; ++i) {
+ for (size_t i = 0; i < 4; ++i) {
m_UserDefinedFieldTitles[i] = rItem.getUserDefinedFieldTitle(i);
m_UserDefinedFieldValues[i] = rItem.getUserDefinedFieldValue(i);
}
@@ -343,19 +343,7 @@ int SfxDocumentInfoItem::operator==( const SfxPoolItem& rItem) const
const SfxDocumentInfoItem& rInfoItem(
static_cast<const SfxDocumentInfoItem&>(rItem));
- bool bEqual = m_aCustomProperties.size() == rInfoItem.m_aCustomProperties.size();
- if ( bEqual )
- {
- for ( sal_uInt32 i = 0; i < m_aCustomProperties.size(); i++ )
- {
- bEqual = *m_aCustomProperties[i] == *rInfoItem.m_aCustomProperties[i];
- if ( !bEqual )
- break;
- }
- }
-
return
- bEqual != false &&
m_AutoloadDelay == rInfoItem.m_AutoloadDelay &&
m_AutoloadURL == rInfoItem.m_AutoloadURL &&
m_isAutoloadEnabled == rInfoItem.m_isAutoloadEnabled &&
@@ -372,10 +360,9 @@ int SfxDocumentInfoItem::operator==( const SfxPoolItem& rItem) const
m_Keywords == rInfoItem.m_Keywords &&
m_Subject == rInfoItem.m_Subject &&
m_Title == rInfoItem.m_Title &&
- std::equal(m_UserDefinedFieldTitles, m_UserDefinedFieldTitles+FOUR,
- rInfoItem.m_UserDefinedFieldTitles) &&
- std::equal(m_UserDefinedFieldValues, m_UserDefinedFieldValues+FOUR,
- rInfoItem.m_UserDefinedFieldValues);
+ m_aCustomProperties.size() == rInfoItem.m_aCustomProperties.size() &&
+ std::equal(m_aCustomProperties.begin(), m_aCustomProperties.end(),
+ rInfoItem.m_aCustomProperties.begin());
}
//------------------------------------------------------------------------
@@ -398,8 +385,7 @@ void SfxDocumentInfoItem::resetUserData(const ::rtl::OUString & i_rAuthor)
//------------------------------------------------------------------------
void SfxDocumentInfoItem::updateDocumentInfo(
- const uno::Reference<document::XDocumentProperties>& i_xDocProps,
- const uno::Reference<document::XDocumentInfo>& i_xDocInfo) const
+ const uno::Reference<document::XDocumentProperties>& i_xDocProps) const
{
if (isAutoloadEnabled()) {
i_xDocProps->setAutoloadSecs(getAutoloadDelay());
@@ -423,10 +409,6 @@ void SfxDocumentInfoItem::updateDocumentInfo(
::comphelper::string::convertCommaSeparated(getKeywords()));
i_xDocProps->setSubject(getSubject());
i_xDocProps->setTitle(getTitle());
- for ( sal_Int16 i = 0; i < FOUR; ++i ) {
- i_xDocInfo->setUserFieldName(i, getUserDefinedFieldTitle(i));
- i_xDocInfo->setUserFieldValue(i, getUserDefinedFieldValue(i));
- }
try
{
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index da44a25408..8881ce5bf5 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -51,15 +51,11 @@
#include <comphelper/processfactory.hxx>
#include <com/sun/star/security/CertificateValidity.hpp>
-#ifndef _COM_SUN_STAR_SECURITY_DOCUMENTSIGNATURESINFORMATION_HPP_
#include <com/sun/star/security/DocumentSignatureInformation.hpp>
-#endif
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <tools/urlobj.hxx>
#include <svtools/whiter.hxx>
-#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
-#endif
#include <svtools/intitem.hxx>
#include <svtools/eitem.hxx>
#include <vcl/wrkwin.hxx>
@@ -106,13 +102,9 @@
#include <com/sun/star/document/XDocumentSubStorageSupplier.hpp>
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/document/XDocumentInfo.hpp>
-#include <com/sun/star/document/XDocumentInfoSupplier.hpp>
#include <com/sun/star/document/XDocumentProperties.hpp>
-#ifndef _SFX_HELPID_HRC
#include "helpid.hrc"
-#endif
#include "guisaveas.hxx"
@@ -423,10 +415,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
if ( pDocInfItem )
{
// parameter, e.g. from replayed macro
- uno::Reference<document::XDocumentInfoSupplier> xDIS(
- GetModel(), uno::UNO_QUERY_THROW);
- pDocInfItem->updateDocumentInfo(getDocProperties(),
- xDIS->getDocumentInfo());
+ pDocInfItem->updateDocumentInfo(getDocProperties());
SetUseUserData( pDocInfItem->IsUseUserData() );
}
else
@@ -467,10 +456,8 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
aTitle = GetTitle();
}
- uno::Reference<document::XDocumentInfoSupplier> xDIS(
- GetModel(), uno::UNO_QUERY_THROW);
SfxDocumentInfoItem aDocInfoItem( aURL, getDocProperties(),
- xDIS->getDocumentInfo(), IsUseUserData() );
+ IsUseUserData() );
if ( !GetSlotState( SID_DOCTEMPLATE ) )
// templates not supported
aDocInfoItem.SetTemplate(FALSE);
@@ -491,14 +478,12 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
if ( pDocInfoItem )
{
// user has done some changes to DocumentInfo
- pDocInfoItem->updateDocumentInfo(getDocProperties(),
- xDIS->getDocumentInfo());
+ pDocInfoItem->updateDocumentInfo(getDocProperties());
SetUseUserData( ((const SfxDocumentInfoItem *)pDocInfoItem)->IsUseUserData() );
// add data from dialog for possible recording purposes
rReq.AppendItem( SfxDocumentInfoItem( GetTitle(),
- getDocProperties(), xDIS->getDocumentInfo(),
- IsUseUserData() ) );
+ getDocProperties(), IsUseUserData() ) );
}
rReq.Done();
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 4793f8d074..a830b0067b 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -2632,17 +2632,28 @@ void SfxBaseModel::impl_store( const ::rtl::OUString& sURL
if ( bCopyTo )
{
xOldDocProps = getDocumentProperties();
- xOldDocInfo = getDocumentInfo();
- Reference<util::XCloneable> xCloneable(xOldDocInfo,
- UNO_QUERY_THROW);
- Reference<document::XDocumentInfo> xNewDocInfo(
- xCloneable->createClone(), UNO_QUERY_THROW);
- Reference<document::XDocumentPropertiesSupplier> xDPS(
- xNewDocInfo, UNO_QUERY_THROW);
- Reference<document::XDocumentProperties> xNewDocProps(
- xDPS->getDocumentProperties());
- m_pData->m_xDocumentProperties = xNewDocProps;
- m_pData->m_xDocumentInfo = xNewDocInfo;
+ if (m_pData->m_xDocumentInfo.is())
+ {
+ xOldDocInfo = getDocumentInfo();
+ const Reference<util::XCloneable> xCloneable(xOldDocInfo,
+ UNO_QUERY_THROW);
+ const Reference<document::XDocumentInfo> xNewDocInfo(
+ xCloneable->createClone(), UNO_QUERY_THROW);
+ const Reference<document::XDocumentPropertiesSupplier> xDPS(
+ xNewDocInfo, UNO_QUERY_THROW);
+ const Reference<document::XDocumentProperties> xNewDocProps(
+ xDPS->getDocumentProperties());
+ m_pData->m_xDocumentProperties = xNewDocProps;
+ m_pData->m_xDocumentInfo = xNewDocInfo;
+ }
+ else // try not to create DocumentInfo if it does not exist...
+ {
+ const Reference<util::XCloneable> xCloneable(xOldDocProps,
+ UNO_QUERY_THROW);
+ const Reference<document::XDocumentProperties> xNewDocProps(
+ xCloneable->createClone(), UNO_QUERY_THROW);
+ m_pData->m_xDocumentProperties = xNewDocProps;
+ }
}
sal_Bool bRet = m_pData->m_pObjectShell->APISaveAs_Impl( sURL, aParams );