10 #undef SC_DLLIMPLEMENTATION
20 : GenericDialogController(pParent,
"modules/scalc/ui/dataform.ui",
"DataFormDialog")
21 , pTabViewShell(pTabViewShellOri)
29 , m_xBtnNew(m_xBuilder->weld_button(
"new"))
30 , m_xBtnDelete(m_xBuilder->weld_button(
"delete"))
31 , m_xBtnRestore(m_xBuilder->weld_button(
"restore"))
32 , m_xBtnPrev(m_xBuilder->weld_button(
"prev"))
33 , m_xBtnNext(m_xBuilder->weld_button(
"next"))
34 , m_xBtnClose(m_xBuilder->weld_button(
"close"))
35 , m_xSlider(m_xBuilder->weld_scrolled_window(
"scrollbar", true))
36 , m_xGrid(m_xBuilder->weld_container(
"grid"))
37 , m_xFixedText(m_xBuilder->weld_label(
"label"))
59 bool bNoSelection(
false);
72 if (aColName.isEmpty() && nColWidth)
88 if (aColName.isEmpty() && nColWidth)
112 if (aColName.isEmpty())
127 if (aColName.isEmpty())
145 sal_Int32 nGridRow = 0;
226 m_xBtnRestore->set_sensitive(
true);
231 ScViewData& rViewData = pTabViewShell->GetViewData();
236 bool bHasData = std::any_of(m_aEntries.begin(), m_aEntries.end(),
237 [](
const std::unique_ptr<ScDataFormFragment>& rElem) {
return (rElem !=
nullptr) && (!rElem->m_xEdit->get_text().isEmpty()); });
242 pTabViewShell->DataFormPutData(nCurrentRow, nStartRow, nStartCol, nEndRow, nEndCol, m_aEntries, aColLength);
244 if (nCurrentRow >= nEndRow + 2)
247 m_xSlider->vadjustment_set_upper(nEndRow - nStartRow + 1);
259 if ( nCurrentRow > nStartRow +1 )
271 if ( nCurrentRow <= nEndRow)
289 ScViewData& rViewData = pTabViewShell->GetViewData();
294 ScRange aRange(nStartCol, nCurrentRow, nTab, nEndCol, nCurrentRow, nTab);
295 pDoc->DeleteRow(aRange);
313 auto nOffset = m_xSlider->vadjustment_get_value();
314 nCurrentRow = nStartRow + nOffset + 1;
343 : m_xBuilder(
Application::CreateBuilder(pGrid,
"modules/scalc/ui/dataformfragment.ui"))
344 ,
m_xLabel(m_xBuilder->weld_label(
"label"))
345 , m_xEdit(m_xBuilder->weld_entry(
"entry"))
348 m_xLabel->set_grid_top_attach(nLine);
350 m_xEdit->set_grid_left_attach(1);
351 m_xEdit->set_grid_top_attach(nLine);
#define LINK(Instance, Class, Member)
ScDocShell * GetDocShell() const
void SetDocumentModified()
ScDocument & GetDocument() const
std::unique_ptr< weld::Label > m_xLabel
virtual SfxUndoManager * GetUndoManager() override
#define MAX_DATAFORM_ROWS
IMPL_LINK(ScDataFormDlg, Impl_DataModifyHdl, weld::Entry &, rEdit, void)
SC_DLLPUBLIC OUString GetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScInterpreterContext *pContext=nullptr) const
ScViewData & GetViewData()
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
#define MAX_DATAFORM_COLS
bool get_value_changed_from_saved() const
Reference< XExecutableDialog > m_xDialog
IMPL_LINK_NOARG(ScDataFormDlg, Impl_NewHdl, weld::Button &, void)
SC_DLLPUBLIC sal_uInt16 GetColWidth(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const