summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--accessibility/source/extended/textwindowaccessibility.cxx12
-rw-r--r--accessibility/source/standard/vclxaccessiblelistboxlist.cxx335
-rwxr-xr-xcui/source/dialogs/thesdlg.cxx64
-rwxr-xr-xcui/source/dialogs/thesdlg.src6
-rwxr-xr-xcui/source/dialogs/thesdlg_impl.hxx27
-rwxr-xr-x[-rw-r--r--]cui/source/options/optdict.cxx1
-rw-r--r--cui/source/options/treeopt.cxx1
-rw-r--r--forms/source/component/ImageControl.cxx11
-rw-r--r--forms/source/component/ImageControl.hxx2
-rw-r--r--forms/source/component/imgprod.cxx45
-rw-r--r--forms/source/component/imgprod.hxx22
-rw-r--r--setup_native/scripts/admin.pl6
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.cxx6
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx2
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crtbin0 -> 591 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crtbin0 -> 620 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crtbin0 -> 637 bytes
-rw-r--r--xmlsecurity/test_docs/certs/p12/Root_11.p12bin0 -> 1797 bytes
-rw-r--r--xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12bin0 -> 1605 bytes
-rw-r--r--xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12bin0 -> 1732 bytes
-rw-r--r--xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12bin0 -> 1714 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_multivalue_rdn.odtbin0 -> 9272 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odtbin0 -> 9299 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odtbin0 -> 9313 bytes
-rw-r--r--[-rwxr-xr-x]xmlsecurity/test_docs/test_description.odtbin24746 -> 25782 bytes
25 files changed, 113 insertions, 427 deletions
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index 89e6287da..49dd197f9 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1989,10 +1989,14 @@ void Document::handleParagraphNotifications()
determineVisibleRange();
notifyVisibleRangeChanges(aOldVisibleBegin, aOldVisibleEnd,
m_xParagraphs->end());
- Paragraphs::iterator aIt(m_xParagraphs->begin() + n);
- ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
- if (xParagraph.is())
- xParagraph->textChanged();
+
+ if (n < m_xParagraphs->size())
+ {
+ Paragraphs::iterator aIt(m_xParagraphs->begin() + n);
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
+ if (xParagraph.is())
+ xParagraph->textChanged();
+ }
break;
}
default:
diff --git a/accessibility/source/standard/vclxaccessiblelistboxlist.cxx b/accessibility/source/standard/vclxaccessiblelistboxlist.cxx
deleted file mode 100644
index b88d19247..000000000
--- a/accessibility/source/standard/vclxaccessiblelistboxlist.cxx
+++ /dev/null
@@ -1,335 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_accessibility.hxx"
-#include <accessibility/standard/vclxaccessiblelistboxlist.hxx>
-#include <accessibility/standard/vclxaccessiblelistitem.hxx>
-#include <accessibility/helper/listboxhelper.hxx>
-
-#include <algorithm>
-
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <tools/debug.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl/unohelp.hxx>
-
-#include <toolkit/awt/vclxwindow.hxx>
-#include <toolkit/helper/convert.hxx>
-
-#include <comphelper/sequence.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::accessibility;
-
-
-namespace
-{
- void checkSelection_Impl( sal_Int32 _nIndex, const ListBox& _rListBox, sal_Bool bSelected )
- throw (::com::sun::star::lang::IndexOutOfBoundsException)
- {
- sal_Int32 nCount = bSelected ? (sal_Int32)_rListBox.GetSelectEntryCount()
- : (sal_Int32)_rListBox.GetEntryCount();
- if ( _nIndex < 0 || _nIndex >= nCount )
- throw ::com::sun::star::lang::IndexOutOfBoundsException();
- }
-}
-
-
-VCLXAccessibleListBoxList::VCLXAccessibleListBoxList (VCLXWindow* pVCLWindow,
- BoxType aBoxType,const Reference< XAccessible >& _xParent)
- : VCLXAccessibleList (pVCLWindow, aBoxType, _xParent)
-{
-}
-
-
-
-
-VCLXAccessibleListBoxList::~VCLXAccessibleListBoxList (void)
-{
-}
-
-
-
-
-void VCLXAccessibleListBoxList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
-{
- switch ( rVclWindowEvent.GetId() )
- {
- case VCLEVENT_LISTBOX_SCROLLED:
- UpdateEntryRange_Impl();
- break;
-
- case VCLEVENT_LISTBOX_SELECT:
- if ( !m_bDisableProcessEvent )
- UpdateSelection_Impl();
- break;
-
- default:
- VCLXAccessibleList::ProcessWindowEvent (rVclWindowEvent);
- }
-}
-
-IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleListBoxList, VCLXAccessibleList, VCLXAccessibleListBoxList_BASE)
-IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleListBoxList, VCLXAccessibleList, VCLXAccessibleListBoxList_BASE)
-
-
-
-//===== XServiceInfo ========================================================
-
-::rtl::OUString VCLXAccessibleListBoxList::getImplementationName (void)
- throw (RuntimeException)
-{
- return ::rtl::OUString::createFromAscii("com.sun.star.comp.toolkit.AccessibleListBoxList");
-}
-
-
-
-
-Sequence< ::rtl::OUString > VCLXAccessibleListBoxList::getSupportedServiceNames (void)
- throw (RuntimeException)
-{
- Sequence< ::rtl::OUString > aNames = VCLXAccessibleList::getSupportedServiceNames();
- sal_Int32 nLength = aNames.getLength();
- aNames.realloc( nLength + 1 );
- aNames[nLength] = ::rtl::OUString::createFromAscii(
- "com.sun.star.accessibility.AccessibleListBoxList");
- return aNames;
-}
-// -----------------------------------------------------------------------------
-
-void VCLXAccessibleListBoxList::UpdateSelection_Impl()
-{
- uno::Any aOldValue, aNewValue;
-
- {
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
- Reference< XAccessible > xNewAcc;
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- USHORT nPos = 0;
- ListItems::iterator aEnd = m_aAccessibleChildren.end();
- for ( ListItems::iterator aIter = m_aAccessibleChildren.begin();
- aIter != aEnd; ++aIter,++nPos)
- {
- if ( aIter->is() )
- {
- VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( aIter->get() );
- // Retrieve the item's index from the list entry.
- BOOL bNowSelected = pListBox->IsEntryPosSelected (nPos);
-
- if ( bNowSelected && !pItem->IsSelected() )
- {
- xNewAcc = *aIter;
- aNewValue <<= xNewAcc;
- m_nLastSelectedPos = nPos;
- }
-
- pItem->SetSelected( bNowSelected );
- }
- else
- { // it could happen that a child was not created before
- checkEntrySelected(pListBox,nPos,aNewValue,xNewAcc);
- }
- }
-
- USHORT nCount = pListBox->GetEntryCount();
- if ( nPos < nCount ) // here we have to check the if any other listbox entry is selected
- {
- for (; nPos < nCount && !checkEntrySelected(pListBox,nPos,aNewValue,xNewAcc) ;++nPos )
- ;
- }
- }
-
- if ( xNewAcc.is() && pListBox->HasFocus() )
- {
- if ( m_nLastSelectedPos != LISTBOX_ENTRY_NOTFOUND )
- aOldValue <<= getAccessibleChild( (sal_Int32)m_nLastSelectedPos );
- aNewValue <<= xNewAcc;
- }
- }
-
- if ( aNewValue.hasValue() || aOldValue.hasValue() )
- NotifyAccessibleEvent(
- AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
- aOldValue,
- aNewValue );
-
- NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
-}
-
-// -----------------------------------------------------------------------------
-// XAccessibleSelection
-// -----------------------------------------------------------------------------
-void SAL_CALL VCLXAccessibleListBoxList::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
-{
- sal_Bool bNotify = sal_False;
-
- {
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- checkSelection_Impl( nChildIndex, *pListBox, sal_False );
- pListBox->SelectEntryPos( (USHORT)nChildIndex, TRUE );
- // call the select handler, don't handle events in this time
- m_bDisableProcessEvent = true;
- pListBox->Select();
- m_bDisableProcessEvent = false;
- bNotify = sal_True;
- }
- }
-
- if ( bNotify )
- UpdateSelection_Impl();
-}
-// -----------------------------------------------------------------------------
-sal_Bool SAL_CALL VCLXAccessibleListBoxList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
-{
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- sal_Bool bRet = sal_False;
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- checkSelection_Impl( nChildIndex, *pListBox, sal_False );
- bRet = pListBox->IsEntryPosSelected( (USHORT)nChildIndex );
- }
- return bRet;
-}
-// -----------------------------------------------------------------------------
-void SAL_CALL VCLXAccessibleListBoxList::clearAccessibleSelection( ) throw (RuntimeException)
-{
- sal_Bool bNotify = sal_False;
-
- {
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- pListBox->SetNoSelection();
- bNotify = sal_True;
- }
- }
-
- if ( bNotify )
- UpdateSelection_Impl();
-}
-// -----------------------------------------------------------------------------
-void SAL_CALL VCLXAccessibleListBoxList::selectAllAccessibleChildren( ) throw (RuntimeException)
-{
- sal_Bool bNotify = sal_False;
-
- {
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- USHORT nCount = pListBox->GetEntryCount();
- for ( USHORT i = 0; i < nCount; ++i )
- pListBox->SelectEntryPos( i, TRUE );
- // call the select handler, don't handle events in this time
- m_bDisableProcessEvent = true;
- pListBox->Select();
- m_bDisableProcessEvent = false;
- bNotify = sal_True;
- }
- }
-
- if ( bNotify )
- UpdateSelection_Impl();
-}
-// -----------------------------------------------------------------------------
-sal_Int32 SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChildCount( ) throw (RuntimeException)
-{
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- sal_Int32 nCount = 0;
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- nCount = pListBox->GetSelectEntryCount();
- return nCount;
-}
-// -----------------------------------------------------------------------------
-Reference< XAccessible > SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
-{
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- checkSelection_Impl( nSelectedChildIndex, *pListBox, sal_True );
- return getAccessibleChild( (sal_Int32)pListBox->GetSelectEntryPos( (USHORT)nSelectedChildIndex ) );
- }
-
- return NULL;
-}
-// -----------------------------------------------------------------------------
-void SAL_CALL VCLXAccessibleListBoxList::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
-{
- sal_Bool bNotify = sal_False;
-
- {
- vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
- ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
- if ( pListBox )
- {
- checkSelection_Impl( nSelectedChildIndex, *pListBox, sal_False );
- pListBox->SelectEntryPos( (USHORT)nSelectedChildIndex, FALSE );
- // call the select handler, don't handle events in this time
- m_bDisableProcessEvent = true;
- pListBox->Select();
- m_bDisableProcessEvent = false;
- bNotify = sal_True;
- }
- }
-
- if ( bNotify )
- UpdateSelection_Impl();
-}
-// -----------------------------------------------------------------------------
-
diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx
index 752a84dac..c069e973d 100755
--- a/cui/source/dialogs/thesdlg.cxx
+++ b/cui/source/dialogs/thesdlg.cxx
@@ -172,12 +172,21 @@ void ReplaceEdit_Impl::SetText( const XubString& rStr, const Selection& rNewSele
// class ThesaurusAlternativesCtrl_Impl ----------------------------------
+AlternativesString_Impl::AlternativesString_Impl(
+ ThesaurusAlternativesCtrl_Impl &rControl,
+ SvLBoxEntry* pEntry, USHORT nFlags, const String& rStr ) :
+ //
+ SvLBoxString( pEntry, nFlags, rStr ),
+ m_rControlImpl( rControl )
+{
+}
+
void AlternativesString_Impl::Paint(
const Point& rPos,
SvLBox& rDev, USHORT,
SvLBoxEntry* pEntry )
{
- AlternativesUserData_Impl* pData = (AlternativesUserData_Impl*)pEntry->GetUserData();
+ AlternativesExtraData* pData = m_rControlImpl.GetExtraData( pEntry );
Point aPos( rPos );
Font aOldFont( rDev.GetFont());
if (pData && pData->IsHeader())
@@ -207,14 +216,40 @@ ThesaurusAlternativesCtrl_Impl::ThesaurusAlternativesCtrl_Impl(
ThesaurusAlternativesCtrl_Impl::~ThesaurusAlternativesCtrl_Impl()
{
- ClearUserData();
+ ClearExtraData();
+}
+
+
+void ThesaurusAlternativesCtrl_Impl::ClearExtraData()
+{
+ UserDataMap_t aEmpty;
+ m_aUserData.swap( aEmpty );
+}
+
+
+void ThesaurusAlternativesCtrl_Impl::SetExtraData(
+ const SvLBoxEntry *pEntry,
+ const AlternativesExtraData &rData )
+{
+ if (!pEntry)
+ return;
+
+ UserDataMap_t::iterator aIt( m_aUserData.find( pEntry ) );
+ if (aIt != m_aUserData.end())
+ aIt->second = rData;
+ else
+ m_aUserData[ pEntry ] = rData;
}
-void ThesaurusAlternativesCtrl_Impl::ClearUserData()
+AlternativesExtraData * ThesaurusAlternativesCtrl_Impl::GetExtraData(
+ const SvLBoxEntry *pEntry )
{
- for (USHORT i = 0; i < GetEntryCount(); ++i)
- delete (AlternativesUserData_Impl*)GetEntry(i)->GetUserData();
+ AlternativesExtraData *pRes = NULL;
+ UserDataMap_t::iterator aIt( m_aUserData.find( pEntry ) );
+ if (aIt != m_aUserData.end())
+ pRes = &aIt->second;
+ return pRes;
}
@@ -230,10 +265,9 @@ SvLBoxEntry * ThesaurusAlternativesCtrl_Impl::AddEntry( sal_Int32 nVal, const St
pEntry->AddItem( new SvLBoxString( pEntry, 0, String() ) ); // add empty column
aText += rText;
pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), 0 ) ); // otherwise crash
- pEntry->AddItem( new AlternativesString_Impl( pEntry, 0, aText ) );
+ pEntry->AddItem( new AlternativesString_Impl( *this, pEntry, 0, aText ) );
- AlternativesUserData_Impl* pUserData = new AlternativesUserData_Impl( rText, bIsHeader );
- pEntry->SetUserData( pUserData );
+ SetExtraData( pEntry, AlternativesExtraData( rText, bIsHeader ) );
GetModel()->Insert( pEntry );
if (bIsHeader)
@@ -365,7 +399,7 @@ bool SvxThesaurusDialog_Impl::UpdateAlternativesBox_Impl()
m_pAlternativesCT->SetUpdateMode( FALSE );
// clear old user data of control before creating new ones via AddEntry below
- m_pAlternativesCT->ClearUserData();
+ m_pAlternativesCT->ClearExtraData();
m_pAlternativesCT->Clear();
for (sal_Int32 i = 0; i < nMeanings; ++i)
@@ -468,9 +502,9 @@ IMPL_LINK( SvxThesaurusDialog_Impl, AlternativesSelectHdl_Impl, SvxCheckListBox
SvLBoxEntry *pEntry = pBox ? pBox->GetCurEntry() : NULL;
if (pEntry)
{
- AlternativesUserData_Impl * pData = (AlternativesUserData_Impl *) pEntry->GetUserData();
+ AlternativesExtraData * pData = m_pAlternativesCT->GetExtraData( pEntry );
String aStr;
- if (!pData->IsHeader())
+ if (pData && !pData->IsHeader())
{
aStr = pData->GetText();
GetReplaceEditString( aStr );
@@ -486,9 +520,9 @@ IMPL_LINK( SvxThesaurusDialog_Impl, AlternativesDoubleClickHdl_Impl, SvxCheckLis
SvLBoxEntry *pEntry = pBox ? pBox->GetCurEntry() : NULL;
if (pEntry)
{
- AlternativesUserData_Impl * pData = (AlternativesUserData_Impl *) pEntry->GetUserData();
+ AlternativesExtraData * pData = m_pAlternativesCT->GetExtraData( pEntry );
String aStr;
- if (!pData->IsHeader())
+ if (pData && !pData->IsHeader())
{
aStr = pData->GetText();
GetReplaceEditString( aStr );
@@ -509,8 +543,8 @@ IMPL_LINK( SvxThesaurusDialog_Impl, AlternativesDoubleClickHdl_Impl, SvxCheckLis
IMPL_STATIC_LINK( SvxThesaurusDialog_Impl, SelectFirstHdl_Impl, SvxCheckListBox *, pBox )
{
(void) pThis;
- if (pBox && pBox->GetEntryCount() > 0)
- pBox->SelectEntryPos( 0 );
+ if (pBox && pBox->GetEntryCount() >= 2)
+ pBox->SelectEntryPos( 1 ); // pos 0 is a 'header' that is not selectable
return 0;
}
diff --git a/cui/source/dialogs/thesdlg.src b/cui/source/dialogs/thesdlg.src
index e96406f8e..058435d3f 100755
--- a/cui/source/dialogs/thesdlg.src
+++ b/cui/source/dialogs/thesdlg.src
@@ -59,7 +59,7 @@ ModalDialog RID_SVXDLG_THESAURUS
{
Pos = MAP_APPFONT ( 24 , 5 ) ;
Size = MAP_APPFONT ( 143 , 8 ) ;
- Text [ en-US ] = "Current ~word" ;
+ Text [ en-US ] = "~Current word" ;
LEFT = TRUE ;
};
ComboBox CB_WORD
@@ -95,7 +95,7 @@ ModalDialog RID_SVXDLG_THESAURUS
{
Pos = MAP_APPFONT ( 5 , 173 ) ;
Size = MAP_APPFONT ( 255 , 8 ) ;
- Text [ en-US ] = "Replace ~with" ;
+ Text [ en-US ] = "~Replace with" ;
LEFT = TRUE ;
};
Edit ED_REPL
@@ -120,7 +120,7 @@ ModalDialog RID_SVXDLG_THESAURUS
{
Pos = MAP_APPFONT ( 105 , 210 ) ;
Size = MAP_APPFONT ( 60 , 14 ) ;
- Text [ en-US ] = "~Replace" ;
+ Text [ en-US ] = "Replace" ;
DefButton = TRUE ;
};
CancelButton BTN_THES_CANCEL
diff --git a/cui/source/dialogs/thesdlg_impl.hxx b/cui/source/dialogs/thesdlg_impl.hxx
index cc10964c4..d92039e7a 100755
--- a/cui/source/dialogs/thesdlg_impl.hxx
+++ b/cui/source/dialogs/thesdlg_impl.hxx
@@ -51,11 +51,16 @@
#include <com/sun/star/linguistic2/XMeaning.hpp>
#include <stack>
+#include <map>
#include <algorithm>
using namespace ::com::sun::star;
using ::rtl::OUString;
+class SvLBoxEntry;
+class ThesaurusAlternativesCtrl_Impl;
+
+
// class LookUpComboBox_Impl --------------------------------------------------
class LookUpComboBox_Impl : public ComboBox
@@ -105,17 +110,14 @@ public:
// class ThesaurusAlternativesCtrl_Impl ----------------------------------
-class AlternativesUserData_Impl
+class AlternativesExtraData
{
String sText;
bool bHeader;
- // disable copy c-tor and assignment operator
- AlternativesUserData_Impl( const AlternativesUserData_Impl & );
- AlternativesUserData_Impl & operator = ( const AlternativesUserData_Impl & );
-
public:
- AlternativesUserData_Impl( const String &rText, bool bIsHeader ) :
+ AlternativesExtraData() : bHeader( false ) {}
+ AlternativesExtraData( const String &rText, bool bIsHeader ) :
sText(rText),
bHeader(bIsHeader)
{
@@ -128,10 +130,11 @@ public:
class AlternativesString_Impl : public SvLBoxString
{
+ ThesaurusAlternativesCtrl_Impl & m_rControlImpl;
public:
- AlternativesString_Impl( SvLBoxEntry* pEntry, USHORT nFlags, const String& rStr )
- : SvLBoxString( pEntry, nFlags, rStr ) {}
+ AlternativesString_Impl( ThesaurusAlternativesCtrl_Impl &rControl,
+ SvLBoxEntry* pEntry, USHORT nFlags, const String& rStr );
virtual void Paint( const Point& rPos, SvLBox& rDev, USHORT nFlags, SvLBoxEntry* pEntry);
};
@@ -142,6 +145,9 @@ class ThesaurusAlternativesCtrl_Impl :
{
SvxThesaurusDialog_Impl & m_rDialogImpl;
+ typedef std::map< const SvLBoxEntry *, AlternativesExtraData > UserDataMap_t;
+ UserDataMap_t m_aUserData;
+
// disable copy c-tor and assignment operator
ThesaurusAlternativesCtrl_Impl( const ThesaurusAlternativesCtrl_Impl & );
ThesaurusAlternativesCtrl_Impl & operator = ( const ThesaurusAlternativesCtrl_Impl & );
@@ -152,7 +158,10 @@ public:
SvLBoxEntry * AddEntry( sal_Int32 nVal, const String &rText, bool bIsHeader );
- void ClearUserData();
+
+ void ClearExtraData();
+ void SetExtraData( const SvLBoxEntry *pEntry, const AlternativesExtraData &rData );
+ AlternativesExtraData * GetExtraData( const SvLBoxEntry *pEntry );
virtual void KeyInput( const KeyEvent& rKEvt );
virtual void Paint( const Rectangle& rRect );
diff --git a/cui/source/options/optdict.cxx b/cui/source/options/optdict.cxx
index 100866b73..f18439b3d 100644..100755
--- a/cui/source/options/optdict.cxx
+++ b/cui/source/options/optdict.cxx
@@ -168,6 +168,7 @@ IMPL_LINK( SvxNewDictionaryDialog, OKHdl_Impl, Button *, EMPTYARG )
String aURL( linguistic::GetWritableDictionaryURL( sDict ) );
xNewDic = Reference< XDictionary > (
xDicList->createDictionary( sDict, aLocale, eType, aURL ) , UNO_QUERY );
+ xNewDic->setActive( sal_True );
}
DBG_ASSERT(xNewDic.is(), "NULL pointer");
}
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index 257d44d98..253ef5f42 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -40,6 +40,7 @@
#include <com/sun/star/frame/XLoadable.hpp>
#include <tools/rcid.h>
#include <tools/shl.hxx>
+#include <tools/urlobj.hxx>
#include <comphelper/processfactory.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
diff --git a/forms/source/component/ImageControl.cxx b/forms/source/component/ImageControl.cxx
index a69ec26a6..da88d6bc0 100644
--- a/forms/source/component/ImageControl.cxx
+++ b/forms/source/component/ImageControl.cxx
@@ -190,6 +190,7 @@ void OImageControlModel::implConstruct()
{
m_pImageProducer = new ImageProducer;
m_xImageProducer = m_pImageProducer;
+ m_pImageProducer->SetDoneHdl( LINK( this, OImageControlModel, OnImageImportDone ) );
}
//------------------------------------------------------------------
@@ -630,6 +631,16 @@ void SAL_CALL OImageControlModel::startProduction( ) throw (RuntimeException)
GetImageProducer()->startProduction();
}
+//------------------------------------------------------------------------------
+IMPL_LINK( OImageControlModel, OnImageImportDone, ::Graphic*, i_pGraphic )
+{
+ ENSURE_OR_RETURN( i_pGraphic, "OImageControlModel::OnImageImportDone: illegal graphic!", 0L );
+ setPropertyValue(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Graphic" ) ),
+ makeAny( Image( i_pGraphic->GetBitmapEx() ).GetXGraphic() )
+ );
+ return 1L;
+}
//==================================================================
// OImageControlControl
diff --git a/forms/source/component/ImageControl.hxx b/forms/source/component/ImageControl.hxx
index 3caa4cc82..8099fed51 100644
--- a/forms/source/component/ImageControl.hxx
+++ b/forms/source/component/ImageControl.hxx
@@ -140,6 +140,8 @@ protected:
bound field, or the control itself if there is no bound field
*/
sal_Bool impl_updateStreamForURL_lck( const ::rtl::OUString& _rURL, ValueChangeInstigator _eInstigator );
+
+ DECL_LINK( OnImageImportDone, ::Graphic* );
};
//==================================================================
diff --git a/forms/source/component/imgprod.cxx b/forms/source/component/imgprod.cxx
index 1aab51738..60143f9ed 100644
--- a/forms/source/component/imgprod.cxx
+++ b/forms/source/component/imgprod.cxx
@@ -190,11 +190,7 @@ ErrCode ImgProdLockBytes::Stat( SvLockBytesStat* pStat, SvLockBytesStatFlag eFla
ImageProducer::ImageProducer() :
mpStm ( NULL ),
- mpFilter ( NULL ),
- mnStatus ( 0UL ),
- mbConsInit ( sal_False ),
- mnLastError ( 0UL ),
- mbAsync ( sal_False )
+ mbConsInit ( sal_False )
{
mpGraphic = new Graphic;
DBG_ASSERT( Application::GetFilterHdl().IsSet(), "ImageProducer::ImageProducer(): No filter handler set" );
@@ -207,9 +203,6 @@ ImageProducer::~ImageProducer()
delete mpGraphic;
mpGraphic = NULL;
- delete mpFilter;
- mpFilter = NULL;
-
delete mpStm;
mpStm = NULL;
@@ -261,7 +254,6 @@ void ImageProducer::SetImage( const ::rtl::OUString& rPath )
maURL = rPath;
mpGraphic->Clear();
mbConsInit = sal_False;
- mbAsync = sal_False;
delete mpStm;
if ( ::svt::GraphicAccess::isSupportedURL( maURL ) )
@@ -284,7 +276,6 @@ void ImageProducer::SetImage( SvStream& rStm )
maURL = ::rtl::OUString();
mpGraphic->Clear();
mbConsInit = sal_False;
- mbAsync = sal_False;
delete mpStm;
mpStm = new SvStream( new ImgProdLockBytes( &rStm, sal_False ) );
@@ -297,7 +288,6 @@ void ImageProducer::setImage( ::com::sun::star::uno::Reference< ::com::sun::star
maURL = ::rtl::OUString();
mpGraphic->Clear();
mbConsInit = sal_False;
- mbAsync = sal_False;
delete mpStm;
if( rInputStmRef.is() )
@@ -318,9 +308,7 @@ void ImageProducer::NewDataAvailable()
void ImageProducer::startProduction() throw(::com::sun::star::uno::RuntimeException)
{
- ResetLastError();
-
- if( maConsList.Count() )
+ if( maConsList.Count() || maDoneHdl.IsSet() )
{
bool bNotifyEmptyGraphics = false;
@@ -331,8 +319,8 @@ void ImageProducer::startProduction() throw(::com::sun::star::uno::RuntimeExcept
// graphic is cleared if a new Stream is set
if( ( mpGraphic->GetType() == GRAPHIC_NONE ) || mpGraphic->GetContext() )
{
- if( !ImplImportGraphic( *mpGraphic ) && maErrorHdl.IsSet() )
- maErrorHdl.Call( this );
+ if ( ImplImportGraphic( *mpGraphic ) && maDoneHdl.IsSet() )
+ maDoneHdl.Call( mpGraphic );
}
if( mpGraphic->GetType() != GRAPHIC_NONE )
@@ -371,33 +359,16 @@ void ImageProducer::startProduction() throw(::com::sun::star::uno::RuntimeExcept
sal_Bool ImageProducer::ImplImportGraphic( Graphic& rGraphic )
{
- USHORT nFilter = GRFILTER_FORMAT_DONTKNOW;
- short nRet;
- sal_Bool bRet = sal_False;
-
if( ERRCODE_IO_PENDING == mpStm->GetError() )
mpStm->ResetError();
mpStm->Seek( 0UL );
- if( mpFilter )
- nRet = mpFilter->ImportGraphic( rGraphic, String(), *mpStm, nFilter );
- else
- {
- if( GraphicConverter::Import( *mpStm, rGraphic ) == ERRCODE_NONE )
- nRet = GRFILTER_OK;
- else
- nRet = GRFILTER_FILTERERROR;
- }
+ sal_Bool bRet = GraphicConverter::Import( *mpStm, rGraphic ) == ERRCODE_NONE;
if( ERRCODE_IO_PENDING == mpStm->GetError() )
mpStm->ResetError();
- if( nRet == GRFILTER_OK )
- bRet = sal_True;
- else
- mnLastError = nRet;
-
return bRet;
}
@@ -405,10 +376,6 @@ sal_Bool ImageProducer::ImplImportGraphic( Graphic& rGraphic )
void ImageProducer::ImplUpdateData( const Graphic& rGraphic )
{
- // asynchronous?
- if( mpGraphic->GetContext() )
- mbAsync = sal_True;
-
ImplInitConsumer( rGraphic );
if( mbConsInit && maConsList.Count() )
@@ -425,7 +392,7 @@ void ImageProducer::ImplUpdateData( const Graphic& rGraphic )
// iterate through interfaces
for( pCons = aTmp.First(); pCons; pCons = aTmp.Next() )
- ( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons )->complete( mnStatus = ::com::sun::star::awt::ImageStatus::IMAGESTATUS_STATICIMAGEDONE, this );
+ ( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons )->complete( ::com::sun::star::awt::ImageStatus::IMAGESTATUS_STATICIMAGEDONE, this );
// delete interfaces in temporary list
for( pCons = aTmp.First(); pCons; pCons = aTmp.Next() )
diff --git a/forms/source/component/imgprod.hxx b/forms/source/component/imgprod.hxx
index b81510e39..25e9f6f9d 100644
--- a/forms/source/component/imgprod.hxx
+++ b/forms/source/component/imgprod.hxx
@@ -64,20 +64,9 @@ private:
List maConsList;
Graphic* mpGraphic;
SvStream* mpStm;
- GraphicFilter* mpFilter;
sal_uInt32 mnTransIndex;
- sal_uInt32 mnStatus;
sal_Bool mbConsInit;
- sal_Bool mbStmDel;
- Link maErrorHdl;
- sal_uInt32 mnLastError;
-
- sal_uInt32 mnExtra2;
-
- sal_Bool mbAsync;
- sal_Bool mbExtra1;
- sal_Bool mbExtra2;
- sal_Bool mbExtra3;
+ Link maDoneHdl;
sal_Bool ImplImportGraphic( Graphic& rGraphic );
void ImplUpdateData( const Graphic& rGraphic );
@@ -92,14 +81,11 @@ public:
void SetImage( const ::rtl::OUString& rPath );
void SetImage( SvStream& rStm );
- void SetErrorHandler( const Link& rErrorHdl ) { maErrorHdl = rErrorHdl; }
- const Link& GetErrorHandler() const { return maErrorHdl; }
-
- sal_uInt32 GetLastError() const { return mnLastError; }
- void ResetLastError() { mnLastError = 0; }
-
void NewDataAvailable();
+ void SetDoneHdl( const Link& i_rHdl ) { maDoneHdl = i_rHdl; }
+ const Link& GetDoneHdl() const { return maDoneHdl; }
+
// ::com::sun::star::uno::XInterface
::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
void SAL_CALL acquire() throw() { OWeakObject::acquire(); }
diff --git a/setup_native/scripts/admin.pl b/setup_native/scripts/admin.pl
index 62a94fb3b..19cc05f1c 100644
--- a/setup_native/scripts/admin.pl
+++ b/setup_native/scripts/admin.pl
@@ -784,6 +784,12 @@ sub create_directory_structure
my @startparents = ("TARGETDIR", "INSTALLLOCATION");
foreach $dir (@startparents) { create_directory_tree($dir, \%fullpathhash, $targetdir, $dirhash); }
+
+ # Also adding the pathes of the startparents
+ foreach $dir (@startparents)
+ {
+ if ( ! exists($fullpathhash{$dir}) ) { $fullpathhash{$dir} = $targetdir; }
+ }
return \%fullpathhash;
}
diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx
index e2f7b1413..635b8dd3c 100644
--- a/xmlsecurity/source/dialogs/resourcemanager.cxx
+++ b/xmlsecurity/source/dialogs/resourcemanager.cxx
@@ -149,7 +149,7 @@ namespace XmlSec
*/
#ifdef WNT
vector< pair< OUString, OUString> > parseDN(const OUString& rRawString)
- {
+{
vector< pair<OUString, OUString> > retVal;
bool bInEscape = false;
bool bInValue = false;
@@ -197,7 +197,7 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString)
bInEscape = false;
}
}
- else if (c == ',')
+ else if (c == ',' || c == '+')
{
//The comma separate the attribute value pairs.
//If the comma is not part of a value (the value would then be enclosed in '"'),
@@ -292,7 +292,7 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString)
bInEscape = false;
}
}
- else if (c == ',')
+ else if (c == ',' || c == '+')
{
//The comma separate the attribute value pairs.
//If the comma is not part of a value (the value would then be enclosed in '"'),
diff --git a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx
index d4c0689e5..f5948d624 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx
@@ -107,7 +107,7 @@ findTypeInDN(const OUString& rRawString, const OUString& sTypeName)
bInEscape = false;
}
}
- else if (c == ',')
+ else if (c == ',' || c == '+')
{
//The comma separate the attribute value pairs.
//If the comma is not part of a value (the value would then be enclosed in '"'),
diff --git a/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt
new file mode 100755
index 000000000..dc28470c8
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/end_certs/User_32_Root_11.crt
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt
new file mode 100755
index 000000000..df9d81d8d
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/end_certs/User_33_Root_11.crt
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt b/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt
new file mode 100755
index 000000000..018da383d
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/end_certs/User_34_Root_11.crt
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/p12/Root_11.p12 b/xmlsecurity/test_docs/certs/p12/Root_11.p12
new file mode 100644
index 000000000..7df592643
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/p12/Root_11.p12
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12
new file mode 100644
index 000000000..17e22f7a5
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/p12/User_32_Root_11.p12
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12
new file mode 100644
index 000000000..5982532a9
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/p12/User_33_Root_11.p12
Binary files differ
diff --git a/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12 b/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12
new file mode 100644
index 000000000..4c00b21d4
--- /dev/null
+++ b/xmlsecurity/test_docs/certs/p12/User_34_Root_11.p12
Binary files differ
diff --git a/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt b/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt
new file mode 100755
index 000000000..4d34bc0f5
--- /dev/null
+++ b/xmlsecurity/test_docs/documents/dn_multivalue_rdn.odt
Binary files differ
diff --git a/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt
new file mode 100755
index 000000000..798f25a35
--- /dev/null
+++ b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn.odt
Binary files differ
diff --git a/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt
new file mode 100755
index 000000000..591f9aa4d
--- /dev/null
+++ b/xmlsecurity/test_docs/documents/dn_single_multivalue_rdn_with_quoting.odt
Binary files differ
diff --git a/xmlsecurity/test_docs/test_description.odt b/xmlsecurity/test_docs/test_description.odt
index 9c2eff18d..45bbb5b0d 100755..100644
--- a/xmlsecurity/test_docs/test_description.odt
+++ b/xmlsecurity/test_docs/test_description.odt
Binary files differ