dbaccess/source/core/api/SingleSelectQueryComposer.cxx | 48 +++++++++-- sc/source/ui/Accessibility/AccessibleDocument.cxx | 19 ++-- sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx | 19 ++-- 3 files changed, 65 insertions(+), 21 deletions(-)
New commits: commit b66dc3cd84c7031a0df75e9d782edebbaca6fdf1 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Sep 22 09:50:10 2014 +0100 WaE: -Wodr, two different ScVisAreaChanged classes Change-Id: I036632dcc7a91eb43aac2bdc2dee7e3355227f24 diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx index 17fee2a..4c66e03 100644 --- a/sc/source/ui/Accessibility/AccessibleDocument.cxx +++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx @@ -1377,18 +1377,21 @@ sal_Int8 ScChildrenShapes::Compare(const ScAccessibleShapeData* pData1, return nResult; } -struct ScVisAreaChanged +namespace { - ScAccessibleDocument* mpAccDoc; - ScVisAreaChanged(ScAccessibleDocument* pAccDoc) : mpAccDoc(pAccDoc) {} - void operator() (const ScAccessibleShapeData* pAccShapeData) const + struct ScVisAreaChanged { - if (pAccShapeData && pAccShapeData->pAccShape) + ScAccessibleDocument* mpAccDoc; + ScVisAreaChanged(ScAccessibleDocument* pAccDoc) : mpAccDoc(pAccDoc) {} + void operator() (const ScAccessibleShapeData* pAccShapeData) const { - pAccShapeData->pAccShape->ViewForwarderChanged(::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA, mpAccDoc); + if (pAccShapeData && pAccShapeData->pAccShape) + { + pAccShapeData->pAccShape->ViewForwarderChanged(::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA, mpAccDoc); + } } - } -}; + }; +} void ScChildrenShapes::VisAreaChanged() const { diff --git a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx index d4d7251..bd2c99c 100644 --- a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx +++ b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx @@ -846,18 +846,21 @@ void ScShapeChildren::DataChanged() } } -struct ScVisAreaChanged +namespace { - const ScIAccessibleViewForwarder* mpViewForwarder; - ScVisAreaChanged(const ScIAccessibleViewForwarder* pViewForwarder) : mpViewForwarder(pViewForwarder) {} - void operator() (const ScShapeChild& rAccShapeData) const + struct ScVisAreaChanged { - if (rAccShapeData.mpAccShape) + const ScIAccessibleViewForwarder* mpViewForwarder; + ScVisAreaChanged(const ScIAccessibleViewForwarder* pViewForwarder) : mpViewForwarder(pViewForwarder) {} + void operator() (const ScShapeChild& rAccShapeData) const { - rAccShapeData.mpAccShape->ViewForwarderChanged(::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA, mpViewForwarder); + if (rAccShapeData.mpAccShape) + { + rAccShapeData.mpAccShape->ViewForwarderChanged(::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA, mpViewForwarder); + } } - } -}; + }; +} void ScShapeChildren::VisAreaChanged() const { commit 32b46b74f2c45e1dff3530162ddb207527574026 Author: Kay Schenk <ksch...@apache.org> Date: Thu Sep 18 22:49:12 2014 +0000 Resolves: #i121492# Base can not filter by dates Patch by: hanya Fixed date filter problems in table view. Now processes old style date format and "normal" for database as expected. (cherry picked from commit 79ff7fc76c74a012933230d6f3c37977eccc6398) Conflicts: dbaccess/source/core/api/SingleSelectQueryComposer.cxx Change-Id: I2ae1b50b9e85ff2c543aaea90894a7edd5bc7524 diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx index fbc8031..7b91232 100644 --- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx +++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx @@ -1452,7 +1452,44 @@ OUString OSingleSelectQueryComposer::getStatementPart( TGetParseNode& _aGetFunct namespace { - OUString lcl_getCondition(const Sequence< Sequence< PropertyValue > >& filter,const OPredicateInputController& i_aPredicateInputController,const Reference< XNameAccess >& i_xSelectColumns) + OUString lcl_getDecomposedColumnName(const OUString& rComposedName, const OUString& rQuoteString) + { + const sal_Int32 nQuoteLength = rQuoteString.getLength(); + OUString sName = rComposedName.trim(); + OUString sColumnName; + sal_Int32 nPos, nRPos = 0; + + for (;;) + { + nPos = sName.indexOf( rQuoteString, nRPos ); + if ( nPos >= 0 ) + { + nRPos = sName.indexOf( rQuoteString, nPos + nQuoteLength ); + if ( nRPos > nPos ) + { + if ( nRPos + nQuoteLength < sName.getLength() ) + { + nRPos += nQuoteLength; // -1 + 1 skip dot + } + else + { + sColumnName = sName.copy( nPos + nQuoteLength, nRPos - nPos - nQuoteLength ); + break; + } + } + else + break; + } + else + break; + } + return sColumnName.isEmpty() ? rComposedName : sColumnName; + } + + OUString lcl_getCondition(const Sequence< Sequence< PropertyValue > >& filter, + const OPredicateInputController& i_aPredicateInputController, + const Reference< XNameAccess >& i_xSelectColumns, + const OUString& rQuoteString) { OUStringBuffer sRet; const Sequence< PropertyValue >* pOrIter = filter.getConstArray(); @@ -1469,9 +1506,10 @@ namespace sRet.append(pAndIter->Name); OUString sValue; pAndIter->Value >>= sValue; - if ( i_xSelectColumns.is() && i_xSelectColumns->hasByName(pAndIter->Name) ) + const OUString sColumnName = lcl_getDecomposedColumnName( pAndIter->Name, rQuoteString ); + if ( i_xSelectColumns.is() && i_xSelectColumns->hasByName(sColumnName) ) { - Reference<XPropertySet> xColumn(i_xSelectColumns->getByName(pAndIter->Name),UNO_QUERY); + Reference<XPropertySet> xColumn(i_xSelectColumns->getByName(sColumnName),UNO_QUERY); sValue = i_aPredicateInputController.getPredicateValue(sValue,xColumn,true); } else @@ -1496,13 +1534,13 @@ namespace void SAL_CALL OSingleSelectQueryComposer::setStructuredFilter( const Sequence< Sequence< PropertyValue > >& filter ) throw (SQLException, ::com::sun::star::lang::IllegalArgumentException, RuntimeException, std::exception) { OPredicateInputController aPredicateInput(m_aContext, m_xConnection, &m_aParseContext); - setFilter(lcl_getCondition(filter,aPredicateInput,getColumns())); + setFilter(lcl_getCondition(filter, aPredicateInput, getColumns(), m_xMetaData->getIdentifierQuoteString())); } void SAL_CALL OSingleSelectQueryComposer::setStructuredHavingClause( const Sequence< Sequence< PropertyValue > >& filter ) throw (SQLException, RuntimeException, std::exception) { OPredicateInputController aPredicateInput(m_aContext, m_xConnection); - setHavingClause(lcl_getCondition(filter,aPredicateInput,getColumns())); + setHavingClause(lcl_getCondition(filter, aPredicateInput, getColumns(), m_xMetaData->getIdentifierQuoteString())); } void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropertySet >& column, bool andCriteria ,::std::mem_fun1_t<bool,OSingleSelectQueryComposer,const OUString& >& _aSetFunctor,sal_Int32 filterOperator)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits