diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2009-01-21 15:28:14 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2009-01-21 15:28:14 +0000 |
commit | 534a874435a3d932ae29aa43dbea6aaf6a8c350f (patch) | |
tree | 524dfe69d3468a1b3b4fb0beaf95856cc9a49867 /sfx2 | |
parent | 804e334b942039ac568658440e31e069779699a4 (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.hxx | 21 | ||||
-rw-r--r-- | sfx2/source/dialog/dinfdlg.cxx | 56 | ||||
-rw-r--r-- | sfx2/source/doc/objserv.cxx | 23 | ||||
-rw-r--r-- | sfx2/source/doc/sfxbasemodel.cxx | 33 |
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 ); |