include/o3tl/cow_wrapper.hxx | 3 ++- sw/source/ui/dbui/dbinsdlg.cxx | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 7 deletions(-)
New commits: commit bb0e9dd57e7ca0f346ac1102139edaec4e6b3790 Author: Michael Stahl <mst...@redhat.com> Date: Tue Sep 20 11:25:01 2016 +0200 tdf#101164 sw: Insert Database Columns dialog: expect selection ... as bookmarks, not raw row indexes. Bookmarks is what FmXGridPeer::getSelection() / FmGridControl::getSelectionBookmarks() always produce, and it's unclear to me if there even is a case where something other than a bookmark ends up pasted into Writer. The only case where dbaccess creates a selection that doesn't contain bookmarks is in SbaGridControl::implTransferSelectedRows() if no rows are selected but i haven't figured out how to reach that state. (regression in OOo 3.3) Change-Id: Ib45787bc002447338df775102790843f2cb1dd3b diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx index c0214de..b9bbe1c 100644 --- a/sw/source/ui/dbui/dbinsdlg.cxx +++ b/sw/source/ui/dbui/dbinsdlg.cxx @@ -28,6 +28,7 @@ #include <com/sun/star/sdbc/XRow.hpp> #include <com/sun/star/sdbcx/XTablesSupplier.hpp> #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> +#include <com/sun/star/sdbcx/XRowLocate.hpp> #include <com/sun/star/sdb/XQueriesSupplier.hpp> #include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/sdb/XColumn.hpp> @@ -994,6 +995,14 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection, Reference< XColumnsSupplier > xColsSupp( xResultSet, UNO_QUERY ); Reference <XNameAccess> xCols = xColsSupp->getColumns(); + static bool isSelectionBookmarks = true; // TODO is this always true here? + uno::Reference<sdbcx::XRowLocate> xRowLocate; + if (isSelectionBookmarks) + { + xRowLocate.set(xResultSet, uno::UNO_QUERY); + assert(xRowLocate.is()); + } + do{ // middle checked loop!! if( bAsTable ) // Daten als Tabelle einfuegen { @@ -1071,9 +1080,16 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection, { if(pSelection) { - sal_Int32 nPos = 0; - pSelection[i] >>= nPos; - bBreak = !xResultSet->absolute(nPos); + if (isSelectionBookmarks) + { + bBreak = !xRowLocate->moveToBookmark(pSelection[i]); + } + else + { + sal_Int32 nPos = 0; + pSelection[i] >>= nPos; + bBreak = !xResultSet->absolute(nPos); + } } else if(!i) bBreak = !xResultSet->first(); @@ -1264,9 +1280,16 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection, { if(pSelection) { - sal_Int32 nPos = 0; - pSelection[i] >>= nPos; - bBreak = !xResultSet->absolute(nPos); + if (isSelectionBookmarks) + { + bBreak = !xRowLocate->moveToBookmark(pSelection[i]); + } + else + { + sal_Int32 nPos = 0; + pSelection[i] >>= nPos; + bBreak = !xResultSet->absolute(nPos); + } } else if(!i) bBreak = !xResultSet->first(); commit 984790f15d935f986fd0f5ed92f6a63c17eace35 Author: Michael Stahl <mst...@redhat.com> Date: Fri Sep 16 22:45:33 2016 +0200 tdf#101164 sw: Insert Database Columns dialog: ensure one of ... ... the radio buttons is active by default, in case there's no configuration to read the state from yet. Change-Id: If1c0462eb5cb9ea5177f1d5a8953b34fabd0829c diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx index 6145cde..c0214de 100644 --- a/sw/source/ui/dbui/dbinsdlg.cxx +++ b/sw/source/ui/dbui/dbinsdlg.cxx @@ -363,6 +363,10 @@ SwInsertDBColAutoPilot::SwInsertDBColAutoPilot( SwView& rView, m_pIbDbcolAllFrom->Enable( false ); } + // by default, select header button + m_pRbHeadlColnms->Check(true); + m_pRbHeadlEmpty->Check(false); + m_pRbAsTable->SetClickHdl( LINK(this, SwInsertDBColAutoPilot, PageHdl )); m_pRbAsField->SetClickHdl( LINK(this, SwInsertDBColAutoPilot, PageHdl )); m_pRbAsText->SetClickHdl( LINK(this, SwInsertDBColAutoPilot, PageHdl )); commit 14bcb68cbbd23db8705d40dd116d3970a00b08e7 Author: Michael Stahl <mst...@redhat.com> Date: Mon Sep 19 17:49:11 2016 +0200 o3tl: replace yet another sal_Size with std::size_t Change-Id: I3f6a401d6d5ed7b44a71dc8bda559dcc4d57ee32 diff --git a/include/o3tl/cow_wrapper.hxx b/include/o3tl/cow_wrapper.hxx index 425a166..a80241e 100644 --- a/include/o3tl/cow_wrapper.hxx +++ b/include/o3tl/cow_wrapper.hxx @@ -23,6 +23,7 @@ #include <osl/interlck.h> #include <utility> +#include <cstddef> namespace o3tl { @@ -34,7 +35,7 @@ namespace o3tl */ struct UnsafeRefCountingPolicy { - typedef sal_Size ref_count_t; + typedef std::size_t ref_count_t; static void incrementCount( ref_count_t& rCount ) { ++rCount; } static bool decrementCount( ref_count_t& rCount ) { return --rCount != 0; } }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits