summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dbaccess/source/core/api/KeySet.cxx2
-rw-r--r--dbaccess/source/core/misc/dsntypes.cxx10
-rw-r--r--dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx6
-rw-r--r--[-rwxr-xr-x]dbaccess/source/ui/dlg/admincontrols.cxx0
-rw-r--r--reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx29
-rw-r--r--reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx1
6 files changed, 32 insertions, 16 deletions
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx
index 1be6dffa6a75..f028dba66ae0 100644
--- a/dbaccess/source/core/api/KeySet.cxx
+++ b/dbaccess/source/core/api/KeySet.cxx
@@ -327,8 +327,8 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
if ( sOldFilter.getLength() )
{
FilterCreator aFilterCreator;
- aFilterCreator.append( aFilter.makeStringAndClear() );
aFilterCreator.append( sOldFilter );
+ aFilterCreator.append( aFilter.makeStringAndClear() );
aFilter = aFilterCreator.getComposedAndClear();
}
xAnalyzer->setFilter(aFilter.makeStringAndClear());
diff --git a/dbaccess/source/core/misc/dsntypes.cxx b/dbaccess/source/core/misc/dsntypes.cxx
index 672b88c810d4..90294dd59869 100644
--- a/dbaccess/source/core/misc/dsntypes.cxx
+++ b/dbaccess/source/core/misc/dsntypes.cxx
@@ -185,7 +185,7 @@ String ODsnTypeCollection::getMediaType(const ::rtl::OUString& _sURL) const
// -----------------------------------------------------------------------------
String ODsnTypeCollection::getDatasourcePrefixFromMediaType(const ::rtl::OUString& _sMediaType,const ::rtl::OUString& _sExtension)
{
- String sURL;
+ String sURL, sFallbackURL;
const uno::Sequence< ::rtl::OUString > aURLs = m_aDriverConfig.getURLs();
const ::rtl::OUString* pIter = aURLs.getConstArray();
const ::rtl::OUString* pEnd = pIter + aURLs.getLength();
@@ -195,13 +195,19 @@ String ODsnTypeCollection::getDatasourcePrefixFromMediaType(const ::rtl::OUStrin
if ( aFeatures.getOrDefault("MediaType",::rtl::OUString()) == _sMediaType )
{
const ::rtl::OUString sFileExtension = aFeatures.getOrDefault("Extension",::rtl::OUString());
- if ( (sFileExtension.getLength() && _sExtension == sFileExtension ) || !sFileExtension.getLength() || !_sExtension.getLength() )
+ if ( _sExtension == sFileExtension )
{
sURL = *pIter;
break;
}
+ if ( !sFileExtension.getLength() && _sExtension.getLength() )
+ sFallbackURL = *pIter;
}
} // for(;pIter != pEnd;++pIter )
+
+ if ( !sURL.Len() && sFallbackURL.Len() )
+ sURL = sFallbackURL;
+
sURL.EraseTrailingChars('*');
return sURL;
}
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
index 35b4b84e8b90..edfb331d5b59 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
@@ -102,7 +102,11 @@ OXMLFileBasedDatabase::OXMLFileBasedDatabase( ODBFilter& rImport,
rtl::OUString sFileName = aPathOptions.SubstituteVariable(sValue);
if ( sValue == sFileName )
{
- sLocation = ::svt::OFileNotation(rImport.GetAbsoluteReference(sValue)).get( ::svt::OFileNotation::N_SYSTEM );
+ const sal_Int32 nFileNameLength = sFileName.getLength();
+ if ( ( nFileNameLength > 0 ) && ( sFileName.getStr()[ nFileNameLength - 1 ] == '/' ) )
+ sFileName = sFileName.copy( 0, nFileNameLength - 1 );
+
+ sLocation = ::svt::OFileNotation( rImport.GetAbsoluteReference( sFileName ) ).get( ::svt::OFileNotation::N_SYSTEM );
}
if ( sLocation.getLength() == 0 )
diff --git a/dbaccess/source/ui/dlg/admincontrols.cxx b/dbaccess/source/ui/dlg/admincontrols.cxx
index 5139b1e77895..5139b1e77895 100755..100644
--- a/dbaccess/source/ui/dlg/admincontrols.cxx
+++ b/dbaccess/source/ui/dlg/admincontrols.cxx
diff --git a/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx b/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx
index 4cf7c9c5abc9..930c7cb8ad12 100644
--- a/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx
+++ b/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx
@@ -33,6 +33,7 @@
#include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/chart2/data/DatabaseDataProvider.hpp>
#include <com/sun/star/chart2/data/XDataReceiver.hpp>
+#include <com/sun/star/chart/ChartDataRowSource.hpp>
#include <com/sun/star/reflection/XProxyFactory.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
#include <comphelper/sequence.hxx>
@@ -59,7 +60,6 @@ using namespace ::xmloff::token;
ImportDocumentHandler::ImportDocumentHandler(uno::Reference< uno::XComponentContext > const & context) :
m_xContext(context)
- ,m_bOnlyOnce(true)
{
}
// -----------------------------------------------------------------------------
@@ -124,7 +124,24 @@ void SAL_CALL ImportDocumentHandler::endDocument() throw (uno::RuntimeException,
m_xDelegatee->endDocument();
uno::Reference< chart2::data::XDataReceiver > xReceiver(m_xModel,uno::UNO_QUERY_THROW);
if ( xReceiver.is() )
+ {
xReceiver->attachDataProvider(m_xDatabaseDataProvider.get());
+ // this fills the chart again
+ uno::Sequence< beans::PropertyValue > aArgs( 4 );
+ aArgs[0] = beans::PropertyValue(
+ ::rtl::OUString::createFromAscii("CellRangeRepresentation"), -1,
+ uno::makeAny( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("all")) ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[1] = beans::PropertyValue(
+ ::rtl::OUString::createFromAscii("HasCategories"), -1,
+ uno::makeAny( sal_True ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[2] = beans::PropertyValue(
+ ::rtl::OUString::createFromAscii("FirstCellAsLabel"), -1,
+ uno::makeAny( sal_True ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[3] = beans::PropertyValue(
+ ::rtl::OUString::createFromAscii("DataRowSource"), -1,
+ uno::makeAny( chart::ChartDataRowSource_COLUMNS ), beans::PropertyState_DIRECT_VALUE );
+ xReceiver->setArguments( aArgs );
+ }
}
void SAL_CALL ImportDocumentHandler::startElement(const ::rtl::OUString & _sName, const uno::Reference< xml::sax::XAttributeList > & _xAttrList) throw (uno::RuntimeException, xml::sax::SAXException)
@@ -257,16 +274,6 @@ void SAL_CALL ImportDocumentHandler::startElement(const ::rtl::OUString & _sName
}
} // for(;pArgIter != pArgEnd;++pArgIter)
- if ( m_bOnlyOnce )
- {
- try
- {
- m_xDatabaseDataProvider->createDataSource(m_aArguments);
- m_bOnlyOnce = false;
- }
- catch(uno::Exception)
- {}
- } // if ( m_bOnlyOnce )
SvXMLAttributeList* pList = new SvXMLAttributeList();
xNewAttribs = pList;
diff --git a/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx b/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx
index 068fac8cb5f9..69772a71674d 100644
--- a/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx
+++ b/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx
@@ -100,7 +100,6 @@ private:
::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDatabaseDataProvider > m_xDatabaseDataProvider;
::std::auto_ptr<SvXMLTokenMap> m_pReportElemTokenMap;
- bool m_bOnlyOnce;
};
// -----------------------------------------------------------------------------
} // namespace rptxml