summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorMikhail Voytenko <mav@openoffice.org>2011-01-06 14:57:12 +0100
committerMikhail Voytenko <mav@openoffice.org>2011-01-06 14:57:12 +0100
commit4446d50fc7278c1ca21dfe5852b86acd8a8cba05 (patch)
treed01c6525c9c3c0d4468559fb81250022d94a3990 /extensions
parentecf66d8aa3b1792e53d8b691a7b679fd47133ac9 (diff)
parentfcb659ae5ba83fe354842cf7bdefbdfb95894872 (diff)
removetooltypes01: rebase to DEV300_m96
Diffstat (limited to 'extensions')
-rw-r--r--extensions/prj/build.lst2
-rw-r--r--extensions/source/bibliography/datman.cxx2
-rw-r--r--extensions/source/bibliography/makefile.mk1
-rw-r--r--extensions/source/bibliography/menu.src6
-rw-r--r--extensions/source/macosx/spotlight/makefile.mk3
-rw-r--r--extensions/source/nsplugin/source/makefile.mk2
-rwxr-xr-xextensions/source/ole/oleobjw.cxx299
-rw-r--r--extensions/source/ole/oleobjw.hxx15
-rw-r--r--extensions/source/propctrlr/formcomponenthandler.cxx2
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.cxx2
-rw-r--r--extensions/source/propctrlr/standardcontrol.cxx2
-rw-r--r--extensions/source/scanner/sanedlg.cxx13
-rwxr-xr-xextensions/source/update/check/updatecheckconfig.cxx101
-rwxr-xr-x[-rw-r--r--]extensions/source/update/check/updatecheckconfig.hxx10
-rwxr-xr-x[-rw-r--r--]extensions/source/update/check/updateprotocol.cxx10
-rw-r--r--extensions/source/update/ui/updatecheckui.cxx2
16 files changed, 394 insertions, 78 deletions
diff --git a/extensions/prj/build.lst b/extensions/prj/build.lst
index e6a4e02a8096..f283da39a4af 100644
--- a/extensions/prj/build.lst
+++ b/extensions/prj/build.lst
@@ -1,4 +1,4 @@
-ex extensions : officecfg l10n rdbmaker svx SANE:sane TWAIN:twain np_sdk offuh stoc ZLIB:zlib NULL
+ex extensions : officecfg l10n rdbmaker svx SANE:sane TWAIN:twain np_sdk offuh stoc ZLIB:zlib CURL:curl LIBXSLT:libxslt NULL
ex extensions usr1 - all ex_mkout NULL
ex extensions\inc nmake - all ex_inc NULL
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index e338eeff3b2e..e903707a74ec 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -646,7 +646,7 @@ DBChangeDialog_Impl::DBChangeDialog_Impl(Window* pParent, BibDataManager* pMan )
aSelectionHB.Show();
aSelectionLB.SetTabs( &nTabs[0], MAP_PIXEL );
- aSelectionLB.SetWindowBits(WB_CLIPCHILDREN|WB_SORT);
+ aSelectionLB.SetStyle(aSelectionLB.GetStyle()|WB_CLIPCHILDREN|WB_SORT);
aSelectionLB.GetModel()->SetSortMode(SortAscending);
::rtl::OUString sActiveSource = pDatMan->getActiveDataSource();
diff --git a/extensions/source/bibliography/makefile.mk b/extensions/source/bibliography/makefile.mk
index e24c32237533..b681c6c90b19 100644
--- a/extensions/source/bibliography/makefile.mk
+++ b/extensions/source/bibliography/makefile.mk
@@ -54,7 +54,6 @@ SRS1NAME=$(TARGET)
SRC1FILES= bib.src \
datman.src \
sections.src \
- menu.src \
toolbar.src
RESLIB1NAME=bib
diff --git a/extensions/source/bibliography/menu.src b/extensions/source/bibliography/menu.src
index 0ccc8a1c7f41..a2a41ed06def 100644
--- a/extensions/source/bibliography/menu.src
+++ b/extensions/source/bibliography/menu.src
@@ -27,14 +27,8 @@
#include <svl/solar.hrc>
#include <svx/svxids.hrc>
-#ifndef _GLOBLMN_HRC
#include <svx/globlmn.hrc>
-#endif
-#ifndef _GLOBALACC_SRC
-#include <svx/globlac.hrc>
-#endif
#include "bibliography.hrc"
-
#include "bib.hrc"
/*
diff --git a/extensions/source/macosx/spotlight/makefile.mk b/extensions/source/macosx/spotlight/makefile.mk
index 3d1cb12d1dab..e7b15150bd03 100644
--- a/extensions/source/macosx/spotlight/makefile.mk
+++ b/extensions/source/macosx/spotlight/makefile.mk
@@ -74,8 +74,11 @@ ZIP1LIST = *
.INCLUDE : target.mk
+.IF "$(ZIP1TARGETN)"!=""
$(ZIP1TARGETN) : $(plistfiles) $(binaries) $(resources)
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
# Info.plist is just versioned and copied into the bundle
$(CONTENTS)$/%.plist : mdimporter/%.plist
$(MKDIRHIER) $(@:d)
diff --git a/extensions/source/nsplugin/source/makefile.mk b/extensions/source/nsplugin/source/makefile.mk
index 4f9be74348ab..5a0870b47194 100644
--- a/extensions/source/nsplugin/source/makefile.mk
+++ b/extensions/source/nsplugin/source/makefile.mk
@@ -77,7 +77,7 @@ SHL1STDLIBS+=$(SOLARLIBDIR)$/npunix.o
#.ENDIF #FREEBSD
.ENDIF #UNX
.IF "$(GUI)"=="WNT"
-SHL1OBJS+=$(SOLARLIBDIR)$/pathutils-slo.obj
+SHL1OBJS+=$(SOLARLIBDIR)$/pathutils-obj.obj
STDLIBS+=$(SOLARLIBDIR)$/npwin.obj
SHL1STDLIBS+= $(SHELL32LIB) $(SOLARLIBDIR)$/npwin.obj
diff --git a/extensions/source/ole/oleobjw.cxx b/extensions/source/ole/oleobjw.cxx
index 89cb5625bca3..949fb6c7c9b2 100755
--- a/extensions/source/ole/oleobjw.cxx
+++ b/extensions/source/ole/oleobjw.cxx
@@ -74,6 +74,7 @@ using namespace com::sun::star::lang;
using namespace com::sun::star::bridge;
using namespace com::sun::star::bridge::oleautomation;
using namespace com::sun::star::bridge::ModelDependent;
+using namespace ::com::sun::star;
#define JSCRIPT_ID_PROPERTY L"_environment"
#define JSCRIPT_ID L"jscript"
@@ -155,8 +156,8 @@ Any IUnknownWrapper_Impl::queryInterface(const Type& t)
if (t == getCppuType(static_cast<Reference<XInvocation>*>( 0)) && !m_spDispatch)
return Any();
- return WeakImplHelper6<XInvocation, XBridgeSupplier2,
- XInitialization, XAutomationObject, XDefaultProperty, XDefaultMethod>::queryInterface(t);
+ return WeakImplHelper7<XInvocation, XBridgeSupplier2,
+ XInitialization, XAutomationObject, XDefaultProperty, XDefaultMethod, XDirectInvocation>::queryInterface(t);
}
Reference<XIntrospectionAccess> SAL_CALL IUnknownWrapper_Impl::getIntrospection(void)
@@ -1174,7 +1175,7 @@ Any IUnknownWrapper_Impl::invokeWithDispIdUnoTlb(const OUString& sFunctionName,
- // --------------------------
+// --------------------------
// XInitialization
void SAL_CALL IUnknownWrapper_Impl::initialize( const Sequence< Any >& aArguments ) throw(Exception, RuntimeException)
{
@@ -1257,6 +1258,274 @@ void SAL_CALL IUnknownWrapper_Impl::initialize( const Sequence< Any >& aArgument
}
}
+// --------------------------
+// XDirectInvocation
+uno::Any SAL_CALL IUnknownWrapper_Impl::directInvoke( const ::rtl::OUString& aName, const uno::Sequence< uno::Any >& aParams )
+ throw (lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
+{
+ Any aResult;
+
+ if ( !m_spDispatch )
+ {
+ throw RuntimeException(
+ OUSTR("[automation bridge] The object does not have an IDispatch interface"),
+ Reference<XInterface>());
+ }
+
+ o2u_attachCurrentThread();
+ DISPID dispid;
+ if ( !getDispid( aName, &dispid ) )
+ throw IllegalArgumentException(
+ OUSTR( "[automation bridge] The object does not have a function or property " )
+ + aName, Reference<XInterface>(), 0);
+
+ CComVariant varResult;
+ ExcepInfo excepinfo;
+ unsigned int uArgErr = 0;
+ INVOKEKIND pInvkinds[2];
+ pInvkinds[0] = INVOKE_FUNC;
+ pInvkinds[1] = aParams.getLength() ? INVOKE_PROPERTYPUT : INVOKE_PROPERTYGET;
+ HRESULT hInvRes = E_FAIL;
+
+ // try Invoke first, if it does not work, try put/get property
+ for ( sal_Int32 nStep = 0; FAILED( hInvRes ) && nStep < 2; nStep++ )
+ {
+ DISPPARAMS dispparams = {NULL, NULL, 0, 0};
+
+ DISPID idPropertyPut = DISPID_PROPERTYPUT;
+ scoped_array<DISPID> arDispidNamedArgs;
+ scoped_array<CComVariant> ptrArgs;
+ scoped_array<CComVariant> ptrRefArgs; // referenced arguments
+ CComVariant * arArgs = NULL;
+ CComVariant * arRefArgs = NULL;
+ bool bVarargParam = false;
+
+ dispparams.cArgs = aParams.getLength();
+
+ // Determine the number of named arguments
+ for ( sal_Int32 nInd = 0; nInd < aParams.getLength(); nInd++ )
+ if ( aParams[nInd].getValueType() == getCppuType((NamedArgument*) 0) )
+ dispparams.cNamedArgs ++;
+
+ // fill the named arguments
+ if ( dispparams.cNamedArgs > 0
+ && !( dispparams.cNamedArgs == 1 && pInvkinds[nStep] == INVOKE_PROPERTYPUT ) )
+ {
+ int nSizeAr = dispparams.cNamedArgs + 1;
+ if ( pInvkinds[nStep] == INVOKE_PROPERTYPUT )
+ nSizeAr = dispparams.cNamedArgs;
+
+ scoped_array<OLECHAR*> saNames(new OLECHAR*[nSizeAr]);
+ OLECHAR ** pNames = saNames.get();
+ pNames[0] = const_cast<OLECHAR*>(reinterpret_cast<LPCOLESTR>(aName.getStr()));
+
+ int cNamedArg = 0;
+ for ( size_t nInd = 0; nInd < dispparams.cArgs; nInd++ )
+ {
+ if ( aParams[nInd].getValueType() == getCppuType((NamedArgument*) 0))
+ {
+ const NamedArgument& arg = *(NamedArgument const*)aParams[nInd].getValue();
+
+ //We put the parameter names in reverse order into the array,
+ //so we can use the DISPID array for DISPPARAMS::rgdispidNamedArgs
+ //The first name in the array is the method name
+ pNames[nSizeAr - 1 - cNamedArg++] = const_cast<OLECHAR*>(reinterpret_cast<LPCOLESTR>(arg.Name.getStr()));
+ }
+ }
+
+ arDispidNamedArgs.reset( new DISPID[nSizeAr] );
+ HRESULT hr = getTypeInfo()->GetIDsOfNames( pNames, nSizeAr, arDispidNamedArgs.get() );
+ if ( hr == E_NOTIMPL )
+ hr = m_spDispatch->GetIDsOfNames(IID_NULL, pNames, nSizeAr, LOCALE_USER_DEFAULT, arDispidNamedArgs.get() );
+
+ if ( SUCCEEDED( hr ) )
+ {
+ if ( pInvkinds[nStep] == DISPATCH_PROPERTYPUT )
+ {
+ DISPID* arIDs = arDispidNamedArgs.get();
+ arIDs[0] = DISPID_PROPERTYPUT;
+ dispparams.rgdispidNamedArgs = arIDs;
+ }
+ else
+ {
+ DISPID* arIDs = arDispidNamedArgs.get();
+ dispparams.rgdispidNamedArgs = & arIDs[1];
+ }
+ }
+ else if (hr == DISP_E_UNKNOWNNAME)
+ {
+ throw IllegalArgumentException(
+ OUSTR("[automation bridge]One of the named arguments is wrong!"),
+ Reference<XInterface>(), 0);
+ }
+ else
+ {
+ throw InvocationTargetException(
+ OUSTR("[automation bridge] ITypeInfo::GetIDsOfNames returned error ")
+ + OUString::valueOf((sal_Int32) hr, 16), Reference<XInterface>(), Any());
+ }
+ }
+
+ //Convert arguments
+ ptrArgs.reset(new CComVariant[dispparams.cArgs]);
+ ptrRefArgs.reset(new CComVariant[dispparams.cArgs]);
+ arArgs = ptrArgs.get();
+ arRefArgs = ptrRefArgs.get();
+
+ sal_Int32 nInd = 0;
+ try
+ {
+ sal_Int32 revIndex = 0;
+ for ( nInd = 0; nInd < sal_Int32(dispparams.cArgs); nInd++)
+ {
+ revIndex = dispparams.cArgs - nInd - 1;
+ arRefArgs[revIndex].byref = 0;
+ Any anyArg;
+ if ( nInd < aParams.getLength() )
+ anyArg = aParams.getConstArray()[nInd];
+
+ // Property Put arguments
+ if ( anyArg.getValueType() == getCppuType((PropertyPutArgument*)0) )
+ {
+ PropertyPutArgument arg;
+ anyArg >>= arg;
+ anyArg <<= arg.Value;
+ }
+ // named argument
+ if (anyArg.getValueType() == getCppuType((NamedArgument*) 0))
+ {
+ NamedArgument aNamedArgument;
+ anyArg >>= aNamedArgument;
+ anyArg <<= aNamedArgument.Value;
+ }
+
+ if ( nInd < aParams.getLength() && anyArg.getValueTypeClass() != TypeClass_VOID )
+ {
+ anyToVariant( &arArgs[revIndex], anyArg, VT_VARIANT );
+ }
+ else
+ {
+ arArgs[revIndex].vt = VT_ERROR;
+ arArgs[revIndex].scode = DISP_E_PARAMNOTFOUND;
+ }
+ }
+ }
+ catch (IllegalArgumentException & e)
+ {
+ e.ArgumentPosition = ::sal::static_int_cast< sal_Int16, sal_Int32 >( nInd );
+ throw;
+ }
+ catch (CannotConvertException & e)
+ {
+ e.ArgumentIndex = nInd;
+ throw;
+ }
+
+ dispparams.rgvarg = arArgs;
+ // invoking OLE method
+ DWORD localeId = LOCALE_USER_DEFAULT;
+ hInvRes = m_spDispatch->Invoke( dispid,
+ IID_NULL,
+ localeId,
+ ::sal::static_int_cast< WORD, INVOKEKIND >( pInvkinds[nStep] ),
+ &dispparams,
+ &varResult,
+ &excepinfo,
+ &uArgErr);
+ }
+
+ // converting return value and out parameter back to UNO
+ if ( SUCCEEDED( hInvRes ) )
+ variantToAny( &varResult, aResult, sal_False );
+ else
+ {
+ // map error codes to exceptions
+ OUString message;
+ switch ( hInvRes )
+ {
+ case S_OK:
+ break;
+ case DISP_E_BADPARAMCOUNT:
+ throw IllegalArgumentException(OUSTR("[automation bridge] Wrong "
+ "number of arguments. Object returned DISP_E_BADPARAMCOUNT."),
+ 0, 0);
+ break;
+ case DISP_E_BADVARTYPE:
+ throw RuntimeException(OUSTR("[automation bridge] One or more "
+ "arguments have the wrong type. Object returned "
+ "DISP_E_BADVARTYPE."), 0);
+ break;
+ case DISP_E_EXCEPTION:
+ message = OUSTR("[automation bridge]: ");
+ message += OUString(reinterpret_cast<const sal_Unicode*>(excepinfo.bstrDescription),
+ ::SysStringLen(excepinfo.bstrDescription));
+ throw InvocationTargetException(message, Reference<XInterface>(), Any());
+ break;
+ case DISP_E_MEMBERNOTFOUND:
+ message = OUSTR("[automation bridge]: A function with the name \"")
+ + aName + OUSTR("\" is not supported. Object returned "
+ "DISP_E_MEMBERNOTFOUND.");
+ throw IllegalArgumentException(message, 0, 0);
+ break;
+ case DISP_E_NONAMEDARGS:
+ throw IllegalArgumentException(OUSTR("[automation bridge] Object "
+ "returned DISP_E_NONAMEDARGS"),0, ::sal::static_int_cast< sal_Int16, unsigned int >( uArgErr ));
+ break;
+ case DISP_E_OVERFLOW:
+ throw CannotConvertException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[automation bridge] Call failed.")),
+ static_cast<XInterface*>(
+ static_cast<XWeak*>(this)), TypeClass_UNKNOWN, FailReason::OUT_OF_RANGE, uArgErr);
+ break;
+ case DISP_E_PARAMNOTFOUND:
+ throw IllegalArgumentException(OUSTR("[automation bridge]Call failed."
+ "Object returned DISP_E_PARAMNOTFOUND."),
+ 0, ::sal::static_int_cast< sal_Int16, unsigned int >( uArgErr ));
+ break;
+ case DISP_E_TYPEMISMATCH:
+ throw CannotConvertException(OUSTR("[automation bridge] Call failed. "
+ "Object returned DISP_E_TYPEMISMATCH"),
+ static_cast<XInterface*>(
+ static_cast<XWeak*>(this)) , TypeClass_UNKNOWN, FailReason::UNKNOWN, uArgErr);
+ break;
+ case DISP_E_UNKNOWNINTERFACE:
+ throw RuntimeException(OUSTR("[automation bridge] Call failed. "
+ "Object returned DISP_E_UNKNOWNINTERFACE."),0);
+ break;
+ case DISP_E_UNKNOWNLCID:
+ throw RuntimeException(OUSTR("[automation bridge] Call failed. "
+ "Object returned DISP_E_UNKNOWNLCID."),0);
+ break;
+ case DISP_E_PARAMNOTOPTIONAL:
+ throw CannotConvertException(OUSTR("[automation bridge] Call failed."
+ "Object returned DISP_E_PARAMNOTOPTIONAL"),
+ static_cast<XInterface*>(static_cast<XWeak*>(this)),
+ TypeClass_UNKNOWN, FailReason::NO_DEFAULT_AVAILABLE, uArgErr);
+ break;
+ default:
+ throw RuntimeException();
+ break;
+ }
+ }
+
+ return aResult;
+}
+
+::sal_Bool SAL_CALL IUnknownWrapper_Impl::hasMember( const ::rtl::OUString& aName )
+ throw (uno::RuntimeException)
+{
+ if ( ! m_spDispatch )
+ {
+ throw RuntimeException(
+ OUSTR("[automation bridge] The object does not have an IDispatch interface"),
+ Reference<XInterface>());
+ }
+
+ o2u_attachCurrentThread();
+ DISPID dispid;
+ return getDispid( aName, &dispid );
+}
+
+
// UnoConversionUtilities --------------------------------------------------------------------------------
Reference< XInterface > IUnknownWrapper_Impl::createUnoWrapperInstance()
{
@@ -1591,22 +1860,6 @@ Any IUnknownWrapper_Impl::invokeWithDispIdComTlb(const OUString& sFuncName,
throw IllegalArgumentException( buf.makeStringAndClear(),
Reference<XInterface>(), (sal_Int16) i);
}
- //make sure we get no void any for an in parameter. In StarBasic
- //this may be caused by
- // Dim arg
- // obj.func(arg)
- //A void any is allowed if the parameter is optional
- if ( ! (aFuncDesc->lprgelemdescParam[i].paramdesc.wParamFlags & PARAMFLAG_FOPT)
- && (i < nUnoArgs) && (paramFlags & PARAMFLAG_FIN) &&
- Params.getConstArray()[i].getValueTypeClass() == TypeClass_VOID)
- {
- OUStringBuffer buf(256);
- buf.appendAscii("ole automation bridge: The argument at position: ");
- buf.append(OUString::valueOf((sal_Int32) i));
- buf.appendAscii(" (index starts with 0) is uninitialized.");
- throw IllegalArgumentException( buf.makeStringAndClear(),
- Reference<XInterface>(), (sal_Int16) i);
- }
// Property Put arguments
if (anyArg.getValueType() == getCppuType((PropertyPutArgument*)0))
@@ -1719,12 +1972,16 @@ Any IUnknownWrapper_Impl::invokeWithDispIdComTlb(const OUString& sFuncName,
& aFuncDesc->lprgelemdescParam[i].paramdesc.
pparamdescex->varDefaultValue);
}
- else
+ else if (paramFlags & PARAMFLAG_FOPT)
{
- OSL_ASSERT(paramFlags & PARAMFLAG_FOPT);
arArgs[revIndex].vt = VT_ERROR;
arArgs[revIndex].scode = DISP_E_PARAMNOTFOUND;
}
+ else
+ {
+ arArgs[revIndex].vt = VT_EMPTY;
+ arArgs[revIndex].lVal = 0;
+ }
}
}
}
diff --git a/extensions/source/ole/oleobjw.hxx b/extensions/source/ole/oleobjw.hxx
index b990ac3af17d..fa796013946e 100644
--- a/extensions/source/ole/oleobjw.hxx
+++ b/extensions/source/ole/oleobjw.hxx
@@ -50,7 +50,7 @@
#endif
#include <cppuhelper/implbase3.hxx>
#include <cppuhelper/implbase4.hxx>
-#include <cppuhelper/implbase6.hxx>
+#include <cppuhelper/implbase7.hxx>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/bridge/oleautomation/XAutomationObject.hpp>
@@ -58,6 +58,7 @@
#include <com/sun/star/script/XDefaultProperty.hpp>
#include <com/sun/star/script/XDefaultMethod.hpp>
+#include <com/sun/star/script/XDirectInvocation.hpp>
#include <typelib/typedescription.hxx>
#include "unoconversionutilities.hxx"
@@ -81,7 +82,7 @@ typedef hash_multimap<OUString, unsigned int, hashOUString_Impl, equalOUString_I
// This class wraps an IDispatch and maps XInvocation calls to IDispatch calls on the wrapped object.
// If m_TypeDescription is set then this class represents an UNO interface implemented in a COM component.
// The interface is not a real interface in terms of an abstract class but is realized through IDispatch.
-class IUnknownWrapper_Impl : public WeakImplHelper6<XInvocation, XBridgeSupplier2, XInitialization, XAutomationObject, XDefaultProperty, XDefaultMethod>,
+class IUnknownWrapper_Impl : public WeakImplHelper7< XInvocation, XBridgeSupplier2, XInitialization, XAutomationObject, XDefaultProperty, XDefaultMethod, XDirectInvocation >,
public UnoConversionUtilities<IUnknownWrapper_Impl>
@@ -130,10 +131,18 @@ public:
// XInitialization
virtual void SAL_CALL initialize( const Sequence< Any >& aArguments )
throw(Exception, RuntimeException);
+
+ // XDefaultProperty
virtual ::rtl::OUString SAL_CALL getDefaultPropertyName( ) throw (::com::sun::star::uno::RuntimeException) { return m_sDefaultMember; }
-protected:
+
+ // XDefaultMethod
virtual ::rtl::OUString SAL_CALL getDefaultMethodName( ) throw (::com::sun::star::uno::RuntimeException) { return m_sDefaultMember; }
+ // XDirectInvocation
+ virtual ::com::sun::star::uno::Any SAL_CALL directInvoke( const ::rtl::OUString& aName, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aParams ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::script::CannotConvertException, ::com::sun::star::reflection::InvocationTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL hasMember( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+
+protected:
// ----------------------------------------------------------------------------
virtual Any invokeWithDispIdUnoTlb(const OUString& sFunctionName,
const Sequence< Any >& Params,
diff --git a/extensions/source/propctrlr/formcomponenthandler.cxx b/extensions/source/propctrlr/formcomponenthandler.cxx
index 99eabba56275..7ad5d944ce43 100644
--- a/extensions/source/propctrlr/formcomponenthandler.cxx
+++ b/extensions/source/propctrlr/formcomponenthandler.cxx
@@ -1342,7 +1342,7 @@ namespace pcr
if ( nPropId == PROPERTY_ID_MAXTEXTLEN )
aMinValue.Value = -1;
- else if ( ( nPropId == PROPERTY_ID_BOUNDCOLUMN ) || ( nPropId == PROPERTY_ID_VISIBLESIZE ) )
+ else if ( nPropId == PROPERTY_ID_VISIBLESIZE )
aMinValue.Value = 1;
else
aMinValue.Value = 0;
diff --git a/extensions/source/propctrlr/selectlabeldialog.cxx b/extensions/source/propctrlr/selectlabeldialog.cxx
index 8beb5c557785..5fbbe57dc11b 100644
--- a/extensions/source/propctrlr/selectlabeldialog.cxx
+++ b/extensions/source/propctrlr/selectlabeldialog.cxx
@@ -79,7 +79,7 @@ namespace pcr
m_aControlTree.SetSelectionMode( SINGLE_SELECTION );
m_aControlTree.SetDragDropMode( 0 );
m_aControlTree.EnableInplaceEditing( sal_False );
- m_aControlTree.SetWindowBits(WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HSCROLL);
+ m_aControlTree.SetStyle(m_aControlTree.GetStyle() | WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HSCROLL);
m_aControlTree.SetNodeBitmaps( m_aModelImages.GetImage( RID_SVXIMG_COLLAPSEDNODE ), m_aModelImages.GetImage( RID_SVXIMG_EXPANDEDNODE ) );
m_aControlTree.SetSelectHdl(LINK(this, OSelectLabelDialog, OnEntrySelected));
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index ca6e1090386f..b0dc9536d0e2 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -47,7 +47,7 @@
#include <svx/svxids.hrc>
#endif
#include <svx/drawitem.hxx>
-#include <xtable.hxx>
+#include <svx/xtable.hxx>
//==================================================================
#include <vcl/floatwin.hxx>
#include <svtools/svmedit.hxx>
diff --git a/extensions/source/scanner/sanedlg.cxx b/extensions/source/scanner/sanedlg.cxx
index 2889257a1f1c..7b4b258ea43f 100644
--- a/extensions/source/scanner/sanedlg.cxx
+++ b/extensions/source/scanner/sanedlg.cxx
@@ -120,12 +120,13 @@ SaneDlg::SaneDlg( Window* pParent, Sane& rSane ) :
Bitmap( SaneResId( RID_SCAN_BITMAP_PLUS ) ),
Bitmap( SaneResId( RID_SCAN_BITMAP_MINUS ) )
);
- maOptionBox.SetWindowBits( WB_HASLINES |
- WB_HASBUTTONS |
- WB_NOINITIALSELECTION |
- WB_HASBUTTONSATROOT |
- WB_HASLINESATROOT
- );
+ maOptionBox.SetStyle( maOptionBox.GetStyle()|
+ WB_HASLINES |
+ WB_HASBUTTONS |
+ WB_NOINITIALSELECTION |
+ WB_HASBUTTONSATROOT |
+ WB_HASLINESATROOT
+ );
FreeResource();
}
diff --git a/extensions/source/update/check/updatecheckconfig.cxx b/extensions/source/update/check/updatecheckconfig.cxx
index 9f78b33270c2..cca69db6ff33 100755
--- a/extensions/source/update/check/updatecheckconfig.cxx
+++ b/extensions/source/update/check/updatecheckconfig.cxx
@@ -32,10 +32,8 @@
#include "updatecheckconfig.hxx"
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertyState.hpp>
-
-#ifndef _COM_SUN_STAR_CONTAINER_CHANGESEVENT_HPP_
-#include <com/sun/star/beans/XPropertyState.hpp>
-#endif
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <osl/security.hxx>
#include <osl/time.h>
@@ -78,6 +76,8 @@ namespace uno = com::sun::star::uno ;
#define RELEASE_NOTE "ReleaseNote"
#define EXTENSION_PREFIX "Extension_"
+#define PROPERTY_VERSION UNISTRING("Version")
+
static const sal_Char * const aUpdateEntryProperties[] = {
UPDATE_VERSION,
UPDATE_BUILDID,
@@ -246,19 +246,19 @@ rtl::OUString UpdateCheckConfig::getAllUsersDirectory()
}
//------------------------------------------------------------------------------
-
-UpdateCheckConfig::UpdateCheckConfig(
- const uno::Reference<container::XNameContainer>& xContainer,
- const ::rtl::Reference< UpdateCheckConfigListener >& rListener
-) : m_xContainer(xContainer), m_rListener(rListener)
-{
-}
+UpdateCheckConfig::UpdateCheckConfig( const uno::Reference<container::XNameContainer>& xContainer,
+ const uno::Reference<container::XNameContainer>& xAvailableUpdates,
+ const uno::Reference<container::XNameContainer>& xIgnoredUpdates,
+ const ::rtl::Reference< UpdateCheckConfigListener >& rListener ) :
+ m_xContainer( xContainer ),
+ m_xAvailableUpdates( xAvailableUpdates ),
+ m_xIgnoredUpdates( xIgnoredUpdates ),
+ m_rListener( rListener )
+{}
//------------------------------------------------------------------------------
-
UpdateCheckConfig::~UpdateCheckConfig()
-{
-}
+{}
//------------------------------------------------------------------------------
@@ -295,7 +295,15 @@ UpdateCheckConfig::get(
UNISTRING("com.sun.star.configuration.ConfigurationUpdateAccess"), aArgumentList ),
uno::UNO_QUERY_THROW );
- return new UpdateCheckConfig( xContainer, rListener );
+ aProperty.Value = uno::makeAny( UNISTRING("/org.openoffice.Office.ExtensionManager/ExtensionUpdateData/IgnoredUpdates") );
+ aArgumentList[0] = uno::makeAny( aProperty );
+ uno::Reference< container::XNameContainer > xIgnoredExt( xConfigProvider->createInstanceWithArguments( UNISTRING("com.sun.star.configuration.ConfigurationUpdateAccess"), aArgumentList ), uno::UNO_QUERY_THROW );
+
+ aProperty.Value = uno::makeAny( UNISTRING("/org.openoffice.Office.ExtensionManager/ExtensionUpdateData/AvailableUpdates") );
+ aArgumentList[0] = uno::makeAny( aProperty );
+ uno::Reference< container::XNameContainer > xUpdateAvail( xConfigProvider->createInstanceWithArguments( UNISTRING("com.sun.star.configuration.ConfigurationUpdateAccess"), aArgumentList ), uno::UNO_QUERY_THROW );
+
+ return new UpdateCheckConfig( xContainer, xUpdateAvail, xIgnoredExt, rListener );
}
//------------------------------------------------------------------------------
@@ -627,6 +635,19 @@ UpdateCheckConfig::commitChanges()
}
}
}
+
+ xChangesBatch = uno::Reference< util::XChangesBatch > ( m_xAvailableUpdates, uno::UNO_QUERY );
+ if( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ {
+ util::ChangesSet aChangesSet = xChangesBatch->getPendingChanges();
+ xChangesBatch->commitChanges();
+ }
+ xChangesBatch = uno::Reference< util::XChangesBatch > ( m_xIgnoredUpdates, uno::UNO_QUERY );
+ if( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ {
+ util::ChangesSet aChangesSet = xChangesBatch->getPendingChanges();
+ xChangesBatch->commitChanges();
+ }
}
//------------------------------------------------------------------------------
@@ -654,40 +675,66 @@ UpdateCheckConfig::getPendingChanges( ) throw (uno::RuntimeException)
}
//------------------------------------------------------------------------------
-void UpdateCheckConfig::storeExtensionVersion( const rtl::OUString& rExtensionName,
+bool UpdateCheckConfig::storeExtensionVersion( const rtl::OUString& rExtensionName,
const rtl::OUString& rVersion )
{
- const rtl::OUString aExtName = UNISTRING( EXTENSION_PREFIX ) + rExtensionName;
- const uno::Any aValue = uno::makeAny( rVersion );
+ bool bNotify = true;
- if( m_xContainer->hasByName( aExtName ) )
- m_xContainer->replaceByName( aExtName, aValue );
+ if ( m_xAvailableUpdates->hasByName( rExtensionName ) )
+ uno::Reference< beans::XPropertySet >( m_xAvailableUpdates->getByName( rExtensionName ), uno::UNO_QUERY_THROW )->setPropertyValue( PROPERTY_VERSION, uno::Any( rVersion ) );
else
- m_xContainer->insertByName( aExtName, aValue );
+ {
+ uno::Reference< beans::XPropertySet > elem( uno::Reference< lang::XSingleServiceFactory >( m_xAvailableUpdates, uno::UNO_QUERY_THROW )->createInstance(), uno::UNO_QUERY_THROW );
+ elem->setPropertyValue( PROPERTY_VERSION, uno::Any( rVersion ) );
+ m_xAvailableUpdates->insertByName( rExtensionName, uno::Any( elem ) );
+ }
+
+ if ( m_xIgnoredUpdates->hasByName( rExtensionName ) )
+ {
+ ::rtl::OUString aIgnoredVersion;
+ uno::Any aValue( uno::Reference< beans::XPropertySet >( m_xIgnoredUpdates->getByName( rExtensionName ), uno::UNO_QUERY_THROW )->getPropertyValue( PROPERTY_VERSION ) );
+ aValue >>= aIgnoredVersion;
+ if ( aIgnoredVersion.getLength() == 0 ) // no version means ignore all updates
+ bNotify = false;
+ else if ( aIgnoredVersion == rVersion ) // the user wanted to ignore this update
+ bNotify = false;
+ }
commitChanges();
+
+ return bNotify;
}
//------------------------------------------------------------------------------
bool UpdateCheckConfig::checkExtensionVersion( const rtl::OUString& rExtensionName,
const rtl::OUString& rVersion )
{
- const rtl::OUString aExtName = UNISTRING( EXTENSION_PREFIX ) + rExtensionName;
-
- if( m_xContainer->hasByName( aExtName ) )
+ if ( m_xAvailableUpdates->hasByName( rExtensionName ) )
{
- uno::Any aValue = m_xContainer->getByName( aExtName );
- rtl::OUString aStoredVersion;
+ ::rtl::OUString aStoredVersion;
+ uno::Any aValue( uno::Reference< beans::XPropertySet >( m_xAvailableUpdates->getByName( rExtensionName ), uno::UNO_QUERY_THROW )->getPropertyValue( PROPERTY_VERSION ) );
aValue >>= aStoredVersion;
+ if ( m_xIgnoredUpdates->hasByName( rExtensionName ) )
+ {
+ ::rtl::OUString aIgnoredVersion;
+ uno::Any aValue2( uno::Reference< beans::XPropertySet >( m_xIgnoredUpdates->getByName( rExtensionName ), uno::UNO_QUERY_THROW )->getPropertyValue( PROPERTY_VERSION ) );
+ aValue2 >>= aIgnoredVersion;
+ if ( aIgnoredVersion.getLength() == 0 ) // no version means ignore all updates
+ return false;
+ else if ( aIgnoredVersion == aStoredVersion ) // the user wanted to ignore this update
+ return false;
+ // TODO: else delete ignored entry?
+ }
if ( isVersionGreater( rVersion, aStoredVersion ) )
return true;
else
{
- m_xContainer->removeByName( aExtName );
+ m_xAvailableUpdates->removeByName( rExtensionName );
commitChanges();
}
}
+
return false;
}
diff --git a/extensions/source/update/check/updatecheckconfig.hxx b/extensions/source/update/check/updatecheckconfig.hxx
index bc1fd0987b18..cf55a0787488 100644..100755
--- a/extensions/source/update/check/updatecheckconfig.hxx
+++ b/extensions/source/update/check/updatecheckconfig.hxx
@@ -93,8 +93,10 @@ class UpdateCheckConfig : public ::cppu::WeakImplHelper3<
::com::sun::star::util::XChangesBatch,
::com::sun::star::lang::XServiceInfo >
{
- UpdateCheckConfig(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xContainer,
- const ::rtl::Reference< UpdateCheckConfigListener >& rListener );
+ UpdateCheckConfig( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xContainer,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xAvailableUpdates,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xIgnoredUpdates,
+ const ::rtl::Reference< UpdateCheckConfigListener >& rListener );
virtual ~UpdateCheckConfig();
@@ -154,7 +156,7 @@ public:
static rtl::OUString getAllUsersDirectory();
// store and retrieve information about extensions
- void storeExtensionVersion( const rtl::OUString& rExtensionName,
+ bool storeExtensionVersion( const rtl::OUString& rExtensionName,
const rtl::OUString& rVersion );
bool checkExtensionVersion( const rtl::OUString& rExtensionName,
const rtl::OUString& rVersion );
@@ -205,6 +207,8 @@ private:
static bool isVersionGreater( const rtl::OUString& rVersion1, const rtl::OUString& rVersion2 );
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xContainer;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xAvailableUpdates;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xIgnoredUpdates;
const ::rtl::Reference< UpdateCheckConfigListener > m_rListener;
};
diff --git a/extensions/source/update/check/updateprotocol.cxx b/extensions/source/update/check/updateprotocol.cxx
index 5d51ea14cc6f..fa460ace702c 100644..100755
--- a/extensions/source/update/check/updateprotocol.cxx
+++ b/extensions/source/update/check/updateprotocol.cxx
@@ -255,16 +255,18 @@ checkForUpdates(
bool storeExtensionUpdateInfos( const uno::Reference< uno::XComponentContext > & rxContext,
const uno::Sequence< uno::Sequence< rtl::OUString > > &rUpdateInfos )
{
+ bool bNotify = false;
+
if ( rUpdateInfos.hasElements() )
{
rtl::Reference< UpdateCheckConfig > aConfig = UpdateCheckConfig::get( rxContext );
for ( sal_Int32 i = rUpdateInfos.getLength() - 1; i >= 0; i-- )
{
- aConfig->storeExtensionVersion( rUpdateInfos[i][0], rUpdateInfos[i][1] );
+ bNotify |= aConfig->storeExtensionVersion( rUpdateInfos[i][0], rUpdateInfos[i][1] );
}
}
- return rUpdateInfos.hasElements();
+ return bNotify;
}
//------------------------------------------------------------------------------
@@ -289,9 +291,9 @@ bool checkForExtensionUpdates( const uno::Reference< uno::XComponentContext > &
if ( !xInfoProvider.is() ) return false;
aUpdateList = xInfoProvider->isUpdateAvailable( ::rtl::OUString() );
- storeExtensionUpdateInfos( rxContext, aUpdateList );
+ bool bNotify = storeExtensionUpdateInfos( rxContext, aUpdateList );
- return aUpdateList.hasElements();
+ return bNotify;
}
//------------------------------------------------------------------------------
diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx
index a6fe8fb27d32..3456b58c778e 100644
--- a/extensions/source/update/ui/updatecheckui.cxx
+++ b/extensions/source/update/ui/updatecheckui.cxx
@@ -52,7 +52,7 @@
#include <vcl/outdev.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/lineinfo.hxx>
-#include <vcl/imagebtn.hxx>
+#include <vcl/button.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <sfx2/sfx.hrc>