12#include <document.hxx>
29 std::unique_ptr<weld::Container>
mxGrid;
58 return static_cast<SCCOL>(nCol - 1 );
65 : mxBuilder(
Application::CreateBuilder(pParent, rUIFile))
66 , mxGrid(mxBuilder->weld_container(
"grid"))
67 , mpContainer(pParent)
81 const char* aTransformationName;
85MenuData aTransformationData[] = {
103 std::unique_ptr<weld::Entry> mxColumnNums;
104 std::unique_ptr<weld::Button> mxDelete;
105 std::function<void(sal_uInt32&)> maDeleteTransformation;
109 ScDeleteColumnTransformationControl(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 aIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
115ScDeleteColumnTransformationControl::ScDeleteColumnTransformationControl(
116 const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
118 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
119 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
120 , maDeleteTransformation(
std::move(aDeleteTransformation))
123 mxDelete->connect_clicked(
LINK(
this,ScDeleteColumnTransformationControl, DeleteHdl));
126std::shared_ptr<sc::DataTransformation> ScDeleteColumnTransformationControl::getTransformation()
128 OUString aColumnString = mxColumnNums->get_text();
130 std::set<SCCOL> ColNums;
131 for (
const auto& rColStr : aSplitColumns)
133 sal_Int32 nCol = rColStr.toInt32();
137 if (nCol > mpDoc->
MaxCol())
141 ColNums.insert(nCol - 1);
144 return std::make_shared<sc::ColumnRemoveTransformation>(std::move(ColNums));
150 std::unique_ptr<weld::Entry> mxSeparator;
151 std::unique_ptr<weld::Entry> mxNumColumns;
152 std::unique_ptr<weld::Button> mxDelete;
153 std::function<void(sal_uInt32&)> maDeleteTransformation;
157 ScSplitColumnTransformationControl(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
163ScSplitColumnTransformationControl::ScSplitColumnTransformationControl(
165 std::function<
void(sal_uInt32&)> aDeleteTransformation)
167 , mxSeparator(mxBuilder->weld_entry(
"ed_separator"))
168 , mxNumColumns(mxBuilder->weld_entry(
"num_cols"))
169 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
170 , maDeleteTransformation(
std::move(aDeleteTransformation))
173 mxDelete->connect_clicked(
LINK(
this,ScSplitColumnTransformationControl, DeleteHdl));
176std::shared_ptr<sc::DataTransformation> ScSplitColumnTransformationControl::getTransformation()
178 OUString aSeparator = mxSeparator->get_text();
179 sal_Unicode cSeparator = aSeparator.isEmpty() ?
',' : aSeparator[0];
180 OUString aColStr = mxNumColumns->get_text();
182 sal_Int32 nCol = aColStr.toInt32();
183 if (nCol > 0 && nCol <= mpDoc->MaxCol())
185 return std::make_shared<sc::SplitColumnTransformation>(
mnCol, cSeparator);
191 std::unique_ptr<weld::Entry> mxSeparator;
192 std::unique_ptr<weld::Entry> mxEdColumns;
193 std::unique_ptr<weld::Button> mxDelete;
194 std::function<void(sal_uInt32&)> maDeleteTransformation;
198 ScMergeColumnTransformationControl(
const ScDocument *pDoc,
weld::Container* pParent,
SCCOL nStartCol,
SCCOL nEndCol, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
204ScMergeColumnTransformationControl::ScMergeColumnTransformationControl(
206 std::function<
void(sal_uInt32&)> aDeleteTransformation)
208 , mxSeparator(mxBuilder->weld_entry(
"ed_separator"))
209 , mxEdColumns(mxBuilder->weld_entry(
"ed_columns"))
210 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
211 , maDeleteTransformation(
std::move(aDeleteTransformation))
214 mxDelete->connect_clicked(
LINK(
this,ScMergeColumnTransformationControl, DeleteHdl));
219 aBuffer.append(
static_cast<sal_Int32
>(nStartCol + 1));
220 for (
SCCOL nCol = nStartCol + 1; nCol <= nEndCol; ++nCol)
222 aBuffer.append(
";" + OUString::number(nCol + 1));
225 mxEdColumns->set_text(
aBuffer.makeStringAndClear());
228std::shared_ptr<sc::DataTransformation> ScMergeColumnTransformationControl::getTransformation()
230 OUString aColumnString = mxEdColumns->get_text();
232 std::set<SCCOL> aMergedColumns;
233 for (
const auto& rColStr : aSplitColumns)
235 sal_Int32 nCol = rColStr.toInt32();
239 if (nCol > mpDoc->
MaxCol())
243 aMergedColumns.insert(nCol - 1);
245 return std::make_shared<sc::MergeColumnTransformation>(std::move(aMergedColumns), mxSeparator->get_text());
251 std::unique_ptr<weld::ComboBox> mxType;
252 std::unique_ptr<weld::Entry> mxEdColumns;
253 std::unique_ptr<weld::Button> mxDelete;
254 std::function<void(sal_uInt32&)> maDeleteTransformation;
258 ScSortTransformationControl(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
264ScSortTransformationControl::ScSortTransformationControl(
265 const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
267 , mxType(mxBuilder->weld_combo_box(
"ed_ascending"))
268 , mxEdColumns(mxBuilder->weld_entry(
"ed_columns"))
269 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
270 , maDeleteTransformation(
std::move(aDeleteTransformation))
273 mxDelete->connect_clicked(
LINK(
this,ScSortTransformationControl, DeleteHdl));
276std::shared_ptr<sc::DataTransformation> ScSortTransformationControl::getTransformation()
278 OUString aColStr = mxEdColumns->get_text();
279 bool aIsAscending = mxType->get_active();
281 sal_Int32 nCol = aColStr.toInt32();
282 if (nCol > 0 && nCol <= mpDoc->MaxCol())
287 aSortParam.
nRow2=getLastRow(*mpDoc);
289 aSortParam.
nCol2=getLastCol(*mpDoc);
292 aSortParam.
maKeyState[0].bAscending = aIsAscending;
293 return std::make_shared<sc::SortTransformation>(aSortParam);
299 std::unique_ptr<weld::Entry> mxColumnNums;
300 std::unique_ptr<weld::ComboBox> mxType;
301 std::unique_ptr<weld::Button> mxDelete;
302 std::function<void(sal_uInt32&)> maDeleteTransformation;
306 ScColumnTextTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
312ScColumnTextTransformation::ScColumnTextTransformation(
313 const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
315 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
316 , mxType(mxBuilder->weld_combo_box(
"ed_lst"))
317 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
318 , maDeleteTransformation(
std::move(aDeleteTransformation))
321 mxDelete->connect_clicked(
LINK(
this,ScColumnTextTransformation, DeleteHdl));
324std::shared_ptr<sc::DataTransformation> ScColumnTextTransformation::getTransformation()
326 OUString aColumnString = mxColumnNums->get_text();
328 std::set<SCCOL> aColumns;
329 for (
const auto& rColStr : aSplitColumns)
331 sal_Int32 nCol = rColStr.toInt32();
335 if (nCol > mpDoc->
MaxCol())
339 aColumns.insert(nCol - 1);
342 sal_Int32
nPos = mxType->get_active();
363 std::unique_ptr<weld::Entry> mxColumnNums;
364 std::unique_ptr<weld::ComboBox> mxType;
365 std::unique_ptr<weld::Button> mxDelete;
366 std::function<void(sal_uInt32&)> maDeleteTransformation;
370 ScAggregateFunction(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
377 std::function<
void(sal_uInt32&)> aDeleteTransformation)
379 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
380 , mxType(mxBuilder->weld_combo_box(
"ed_lst"))
381 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
382 , maDeleteTransformation(
std::move(aDeleteTransformation))
385 mxDelete->connect_clicked(
LINK(
this,ScAggregateFunction, DeleteHdl));
388std::shared_ptr<sc::DataTransformation> ScAggregateFunction::getTransformation()
390 OUString aColumnString = mxColumnNums->get_text();
391 sal_Int32
nPos = mxType->get_active();
393 std::set<SCCOL> aColumns;
394 for (
const auto& rColStr : aSplitColumns)
396 sal_Int32 nCol = rColStr.toInt32();
400 if (nCol > mpDoc->
MaxCol())
404 aColumns.insert(nCol - 1);
426 std::unique_ptr<weld::Entry> mxColumnNums;
427 std::unique_ptr<weld::ComboBox> mxType;
428 std::unique_ptr<weld::Button> mxDelete;
429 std::function<void(sal_uInt32&)> maDeleteTransformation;
433 ScNumberTransformation(
const ScDocument *pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
439ScNumberTransformation::ScNumberTransformation(
440 const ScDocument *pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
442 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
443 , mxType(mxBuilder->weld_combo_box(
"ed_lst"))
444 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
445 , maDeleteTransformation(
std::move(aDeleteTransformation))
448 mxDelete->connect_clicked(
LINK(
this,ScNumberTransformation, DeleteHdl));
451std::shared_ptr<sc::DataTransformation> ScNumberTransformation::getTransformation()
453 OUString aColumnString = mxColumnNums->get_text();
454 sal_Int32
nPos = mxType->get_active();
456 std::set<SCCOL> aColumns;
457 for (
const auto& rColStr : aSplitColumns)
459 sal_Int32 nCol = rColStr.toInt32();
463 if (nCol > mpDoc->
MaxCol())
467 aColumns.insert(nCol - 1);
507 std::unique_ptr<weld::Entry> mxColumnNums;
508 std::unique_ptr<weld::Entry> mxReplaceString;
509 std::unique_ptr<weld::Button> mxDelete;
510 std::function<void(sal_uInt32&)> maDeleteTransformation;
515 ScReplaceNullTransformation(
const ScDocument *pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
521ScReplaceNullTransformation::ScReplaceNullTransformation(
const ScDocument *pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
523 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
524 , mxReplaceString(mxBuilder->weld_entry(
"ed_str"))
525 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
526 , maDeleteTransformation(
std::move(aDeleteTransformation))
529 mxDelete->connect_clicked(
LINK(
this,ScReplaceNullTransformation, DeleteHdl));
533std::shared_ptr<sc::DataTransformation> ScReplaceNullTransformation::getTransformation()
535 OUString aColumnString = mxColumnNums->get_text();
536 OUString aReplaceWithString = mxReplaceString->get_text();
538 std::set<SCCOL> aColumns;
539 for (
const auto& rColStr : aSplitColumns)
541 sal_Int32 nCol = rColStr.toInt32();
545 if (nCol > mpDoc->
MaxCol())
549 aColumns.insert(nCol - 1);
552 return std::make_shared<sc::ReplaceNullTransformation>(std::move(aColumns),aReplaceWithString);
558 std::unique_ptr<weld::Entry> mxColumnNums;
559 std::unique_ptr<weld::ComboBox> mxType;
560 std::unique_ptr<weld::Button> mxDelete;
561 std::function<void(sal_uInt32&)> maDeleteTransformation;
566 ScDateTimeTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
572ScDateTimeTransformation::ScDateTimeTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation)
574 , mxColumnNums(mxBuilder->weld_entry(
"ed_columns"))
575 , mxType(mxBuilder->weld_combo_box(
"ed_lst"))
576 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
577 , maDeleteTransformation(
std::move(aDeleteTransformation))
580 mxDelete->connect_clicked(
LINK(
this,ScDateTimeTransformation, DeleteHdl));
583std::shared_ptr<sc::DataTransformation> ScDateTimeTransformation::getTransformation()
585 OUString aColumnString = mxColumnNums->get_text();
586 sal_Int32
nPos = mxType->get_active();
588 std::set<SCCOL> aColumns;
589 for (
const auto& rColStr : aSplitColumns)
591 sal_Int32 nCol = rColStr.toInt32();
595 if (nCol > mpDoc->
MaxCol())
599 aColumns.insert(nCol - 1);
649 std::unique_ptr<weld::Entry> mxFindString;
650 std::unique_ptr<weld::Entry> mxReplaceString;
651 std::unique_ptr<weld::Entry> mxEdColumns;
652 std::unique_ptr<weld::Button> mxDelete;
653 std::function<void(sal_uInt32&)> maDeleteTransformation;
657 ScFindReplaceTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
663ScFindReplaceTransformation::ScFindReplaceTransformation(
665 std::function<
void(sal_uInt32&)> aDeleteTransformation)
667 , mxFindString(mxBuilder->weld_entry(
"ed_find"))
668 , mxReplaceString(mxBuilder->weld_entry(
"ed_replace"))
669 , mxEdColumns(mxBuilder->weld_entry(
"ed_columns"))
670 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
671 , maDeleteTransformation(
std::move(aDeleteTransformation))
674 mxDelete->connect_clicked(
LINK(
this, ScFindReplaceTransformation, DeleteHdl));
677std::shared_ptr<sc::DataTransformation> ScFindReplaceTransformation::getTransformation()
679 OUString aColStr = mxEdColumns->get_text();
681 sal_Int32 nCol = aColStr.toInt32();
682 if (nCol > 0 && nCol <= mpDoc->MaxCol())
684 return std::make_shared<sc::FindReplaceTransformation>(aColumn, mxFindString->get_text(), mxReplaceString->get_text());
690 std::unique_ptr<weld::Entry> mxFindString;
691 std::unique_ptr<weld::Entry> mxEdColumns;
692 std::unique_ptr<weld::Button> mxDelete;
693 std::function<void(sal_uInt32&)> maDeleteTransformation;
697 ScDeleteRowTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
703ScDeleteRowTransformation::ScDeleteRowTransformation(
705 std::function<
void(sal_uInt32&)> aDeleteTransformation)
707 , mxFindString(mxBuilder->weld_entry(
"ed_find"))
708 , mxEdColumns(mxBuilder->weld_entry(
"ed_columns"))
709 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
710 , maDeleteTransformation(
std::move(aDeleteTransformation))
713 mxDelete->connect_clicked(
LINK(
this, ScDeleteRowTransformation, DeleteHdl));
716std::shared_ptr<sc::DataTransformation> ScDeleteRowTransformation::getTransformation()
718 OUString aColStr = mxEdColumns->get_text();
720 sal_Int32 nCol = aColStr.toInt32();
721 if (nCol > 0 && nCol <= mpDoc->MaxCol())
723 return std::make_shared<sc::DeleteRowTransformation>(aColumn, mxFindString->get_text());
729 std::unique_ptr<weld::Entry> mxRow;
730 std::unique_ptr<weld::Entry> nxRow;
731 std::unique_ptr<weld::Button> mxDelete;
732 std::function<void(sal_uInt32&)> maDeleteTransformation;
736 ScSwapRowsTransformation(
const ScDocument* pDoc,
weld::Container* pParent, sal_uInt32 nIndex, std::function<
void(sal_uInt32&)> aDeleteTransformation);
742ScSwapRowsTransformation::ScSwapRowsTransformation(
744 std::function<
void(sal_uInt32&)> aDeleteTransformation)
746 , mxRow(mxBuilder->weld_entry(
"ed_row1"))
747 , nxRow(mxBuilder->weld_entry(
"ed_row2"))
748 , mxDelete(mxBuilder->weld_button(
"ed_delete"))
749 , maDeleteTransformation(
std::move(aDeleteTransformation))
752 mxDelete->connect_clicked(
LINK(
this, ScSwapRowsTransformation, DeleteHdl));
755std::shared_ptr<sc::DataTransformation> ScSwapRowsTransformation::getTransformation()
757 OUString aRowStr = mxRow->get_text();
758 OUString bRowStr = nxRow->get_text();
761 sal_Int32 mRow = aRowStr.toInt32();
762 sal_Int32 nRow = bRowStr.toInt32();
763 if (mRow > 0 && mRow <= mpDoc->MaxRow())
765 if (nRow > 0 && nRow <= mpDoc->MaxRow())
767 return std::make_shared<sc::SwapRowsTransformation>(aRow, bRow);
774 : GenericDialogController(pParent,
"modules/scalc/ui/dataproviderdlg.ui",
"dataproviderdlg")
775 , mxDoc(
std::move(pDoc))
776 , mxBox(m_xBuilder->weld_container(
"data_table"))
777 , m_xTableParent(mxBox->CreateChildFrame())
779 , mxDBRanges(m_xBuilder->weld_combo_box(
"select_db_range"))
780 , mxOKBtn(m_xBuilder->weld_button(
"okay"))
781 , mxCancelBtn(m_xBuilder->weld_button(
"cancel"))
782 , mxAddTransformationBtn(m_xBuilder->weld_button(
"add_transformation"))
783 , mxScroll(m_xBuilder->weld_scrolled_window(
"scroll"))
784 , mxTransformationList(m_xBuilder->weld_container(
"transformation_ctrl"))
785 , mxTransformationBox(m_xBuilder->weld_combo_box(
"transformation_box"))
786 , mxProviderList(m_xBuilder->weld_combo_box(
"provider_lst"))
787 , mxEditURL(m_xBuilder->weld_entry(
"ed_url"))
788 , mxEditID(m_xBuilder->weld_entry(
"ed_id"))
789 , mxApplyBtn(m_xBuilder->weld_button(
"apply"))
790 , mxBrowseBtn(m_xBuilder->weld_button(
"browse"))
791 , maIdle(
"ScDataProviderDlg maIdle")
800 for (
auto& rNamedDB : rNamedDBs)
805 for (
const auto&
i : aTransformationData)
811 bool bSuccess =
mxDoc->GetDBCollection()->getNamedDBs().insert(std::unique_ptr<ScDBData>(
pDBData));
815 for (
const auto& rDataProvider : aDataProvider)
849 mxScroll->vadjustment_set_value(mxScroll->vadjustment_get_upper());
864 OUString transformation_string = mxTransformationBox->get_active_text();
865 for (
auto&
i: aTransformationData)
867 if (transformation_string == OUString::createFromAscii(
i.aTransformationName))
893 updateApplyBtn(
true);
894 import(*mxDoc,
true);
904 mxEditURL->set_text(aFileDialog.
GetPath());
910 mxAddTransformationBtn->set_sensitive(
true);
911 mxAddTransformationBtn->set_tooltip_text(msAddTransformationToolTip);
920 OUString aID =
mxEditID->get_text();
928 bValid &= !
mxEditURL->get_text().isEmpty();
959 SCCOL nStartCol = -1;
961 mxTable->getColRange(nStartCol, nEndCol);
1022bool hasDBName(
const OUString& rName,
ScDBCollection* pDBCollection)
1059 (*itr)->updateIndex(
nIndex++);
1067 maDeleteTransformation(
mnIndex);
1072 maDeleteTransformation(
mnIndex);
1077 maDeleteTransformation(
mnIndex);
1082 maDeleteTransformation(
mnIndex);
1087 maDeleteTransformation(
mnIndex);
1092 maDeleteTransformation(
mnIndex);
1097 maDeleteTransformation(
mnIndex);
1102 maDeleteTransformation(
mnIndex);
1107 maDeleteTransformation(
mnIndex);
1112 maDeleteTransformation(
mnIndex);
1117 maDeleteTransformation(
mnIndex);
1122 maDeleteTransformation(
mnIndex);
Reference< XExecutableDialog > m_xDialog
OUString uppercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
ScDBData * findByUpperName(const OUString &rName)
const OUString & GetName() const
void deleteRowTransformation()
std::unique_ptr< weld::ComboBox > mxDBRanges
VclPtr< ScDataTableView > mxTable
void numberTransformation()
void import(ScDocument &rDoc, bool bInternal=false)
std::unique_ptr< weld::Entry > mxEditURL
virtual ~ScDataProviderDlg() override
css::uno::Reference< css::awt::XWindow > m_xTableParent
ScDataProviderDlg(weld::Window *pWindow, std::shared_ptr< ScDocument > pDoc, const ScDocument *pDocument)
std::unique_ptr< weld::Button > mxAddTransformationBtn
std::unique_ptr< weld::Container > mxBox
std::unique_ptr< weld::Container > mxTransformationList
std::unique_ptr< weld::Entry > mxEditID
std::unique_ptr< weld::Button > mxOKBtn
void swapRowsTransformation()
sc::ExternalDataSource getDataSource(ScDocument *pDoc)
OUString msAddTransformationToolTip
std::vector< std::unique_ptr< ScDataTransformationBaseControl > > maControls
std::unique_ptr< weld::Button > mxBrowseBtn
std::unique_ptr< weld::ComboBox > mxProviderList
std::unique_ptr< weld::Button > mxCancelBtn
std::unique_ptr< weld::Button > mxApplyBtn
void findReplaceTransformation()
void textTransformation()
void sortTransformation()
void updateApplyBtn(bool bValidConfig)
void deletefromList(sal_uInt32 nIndex)
void dateTimeTransformation()
std::shared_ptr< ScDocument > mxDoc
void replaceNullTransformation()
std::unique_ptr< weld::ComboBox > mxTransformationBox
SC_DLLPUBLIC SCCOL MaxCol() const
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC SCROW GetLastDataRow(SCTAB nTab, SCCOL nCol1, SCCOL nCol2, SCROW nLastRow) const
Return the last non-empty row position in given columns that's no greater than the initial last row p...
SC_DLLPUBLIC sc::ExternalDataMapper & GetExternalDataMapper()
SC_DLLPUBLIC ScDBCollection * GetDBCollection() const
SC_DLLPUBLIC CellType GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab) const
static SC_DLLPUBLIC const CharClass & getCharClass()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void SetPriority(TaskPriority ePriority)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
static std::vector< OUString > getDataProviders()
void insertDataSource(const ExternalDataSource &rSource)
void setID(const OUString &rID)
void refresh(ScDocument *pDoc, bool bDeterministic=false)
OUString getDBName() const
void setDBData(const OUString &rDBName)
void AddDataTransformation(const std::shared_ptr< sc::DataTransformation > &mpDataTransformation)
void SetContext(Context _eNewContext)
virtual void move(weld::Widget *pWidget, weld::Container *pNewParent)=0
IMPL_LINK_NOARG(ScDataProviderDlg, ScrollToEnd, Timer *, void)
DECL_LINK(CheckNameHdl, SvxNameDialog &, bool)
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
std::vector< OUString > split(std::u16string_view rStr, sal_Unicode cSeparator)
::std::vector< ScSortKeyState > maKeyState
std::unique_ptr< char[]> aBuffer