diff options
28 files changed, 80 insertions, 108 deletions
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx index 584767d6af5a..3903a3366eb6 100644 --- a/cui/source/customize/SvxNotebookbarConfigPage.cxx +++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx @@ -546,9 +546,10 @@ void SvxNotebookbarEntriesListBox::ChangedVisibility(int nRow) sfx2::SfxNotebookBar::ReloadNotebookBar(sUIPath); } -IMPL_LINK(SvxNotebookbarEntriesListBox, CheckButtonHdl, const row_col&, rRowCol, void) +IMPL_LINK(SvxNotebookbarEntriesListBox, CheckButtonHdl, const weld::TreeView::iter_col&, rRowCol, + void) { - ChangedVisibility(rRowCol.first); + ChangedVisibility(m_xControl->get_iter_index_in_parent(rRowCol.first)); } IMPL_LINK(SvxNotebookbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, bool) diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx index 7bc2115b36fa..5efa3283498b 100644 --- a/cui/source/customize/SvxToolbarConfigPage.cxx +++ b/cui/source/customize/SvxToolbarConfigPage.cxx @@ -865,9 +865,9 @@ void SvxToolbarEntriesListBox::ChangedVisibility(int nRow) } } -IMPL_LINK(SvxToolbarEntriesListBox, CheckButtonHdl, const row_col&, rRowCol, void) +IMPL_LINK(SvxToolbarEntriesListBox, CheckButtonHdl, const weld::TreeView::iter_col&, rRowCol, void) { - ChangedVisibility(rRowCol.first); + ChangedVisibility(m_xControl->get_iter_index_in_parent(rRowCol.first)); } IMPL_LINK(SvxToolbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, bool) diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx index 48dc545f93ea..5b38d584d76f 100644 --- a/cui/source/dialogs/multipat.cxx +++ b/cui/source/dialogs/multipat.cxx @@ -70,9 +70,9 @@ void SvxMultiPathDialog::HandleEntryChecked(int nRow) } } -IMPL_LINK(SvxMultiPathDialog, CheckHdl_Impl, const row_col&, rRowCol, void) +IMPL_LINK(SvxMultiPathDialog, CheckHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void) { - HandleEntryChecked(rRowCol.first); + HandleEntryChecked(m_xRadioLB->get_iter_index_in_parent(rRowCol.first)); } void SvxMultiPathDialog::AppendEntry(const OUString& rText, const OUString& rId) diff --git a/cui/source/inc/SvxNotebookbarConfigPage.hxx b/cui/source/inc/SvxNotebookbarConfigPage.hxx index 47870949d9aa..7e417463ab30 100644 --- a/cui/source/inc/SvxNotebookbarConfigPage.hxx +++ b/cui/source/inc/SvxNotebookbarConfigPage.hxx @@ -75,8 +75,7 @@ public: class SvxNotebookbarEntriesListBox final : public SvxMenuEntriesListBox { void ChangedVisibility(int nRow); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckButtonHdl, const row_col&, void); + DECL_LINK(CheckButtonHdl, const weld::TreeView::iter_col&, void); DECL_LINK(KeyInputHdl, const KeyEvent&, bool); public: diff --git a/cui/source/inc/SvxToolbarConfigPage.hxx b/cui/source/inc/SvxToolbarConfigPage.hxx index 5902cdf4b268..00672453df1b 100644 --- a/cui/source/inc/SvxToolbarConfigPage.hxx +++ b/cui/source/inc/SvxToolbarConfigPage.hxx @@ -77,8 +77,7 @@ class SvxToolbarEntriesListBox final : public SvxMenuEntriesListBox { void ChangedVisibility(int nRow); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckButtonHdl, const row_col&, void); + DECL_LINK(CheckButtonHdl, const weld::TreeView::iter_col&, void); DECL_LINK(KeyInputHdl, const KeyEvent&, bool); public: diff --git a/cui/source/inc/multipat.hxx b/cui/source/inc/multipat.hxx index 67832c1e8cae..fcc60bb08693 100644 --- a/cui/source/inc/multipat.hxx +++ b/cui/source/inc/multipat.hxx @@ -44,8 +44,7 @@ private: DECL_LINK(AddHdl_Impl, weld::Button&, void); DECL_LINK(DelHdl_Impl, weld::Button&, void); DECL_LINK(SelectHdl_Impl, weld::TreeView&, void); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckHdl_Impl, const row_col&, void); + DECL_LINK(CheckHdl_Impl, const weld::TreeView::iter_col&, void); public: SvxMultiPathDialog(weld::Window* pParent); diff --git a/cui/source/inc/optlingu.hxx b/cui/source/inc/optlingu.hxx index bc12d3991daa..35d34eb101db 100644 --- a/cui/source/inc/optlingu.hxx +++ b/cui/source/inc/optlingu.hxx @@ -67,8 +67,7 @@ class SvxEditModulesDlg : public weld::GenericDialogController DECL_LINK( ClickHdl_Impl, weld::Button&, void ); DECL_LINK( BackHdl_Impl, weld::Button&, void ); DECL_LINK( LangSelectListBoxHdl_Impl, weld::ComboBox&, void ); - typedef std::pair<int, int> row_col; - DECL_LINK( BoxCheckButtonHdl_Impl, const row_col&, void ); + DECL_LINK( BoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, void ); void LangSelectHdl_Impl(const SvxLanguageBox* pBox); public: @@ -125,9 +124,8 @@ private: DECL_LINK( SelectHdl_Impl, weld::TreeView&, void ); DECL_LINK( ClickHdl_Impl, weld::Button&, void ); DECL_LINK( BoxDoubleClickHdl_Impl, weld::TreeView&, bool ); - typedef std::pair<int, int> row_col; - DECL_LINK( ModulesBoxCheckButtonHdl_Impl, const row_col&, void ); - DECL_LINK( DicsBoxCheckButtonHdl_Impl, const row_col&, void ); + DECL_LINK( ModulesBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, void ); + DECL_LINK( DicsBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, void ); DECL_LINK( PostDblClickHdl_Impl, void *, void); void UpdateModulesBox_Impl(); diff --git a/cui/source/options/certpath.cxx b/cui/source/options/certpath.cxx index b98811dc4827..3f2359a5ac50 100644 --- a/cui/source/options/certpath.cxx +++ b/cui/source/options/certpath.cxx @@ -155,9 +155,9 @@ CertPathDialog::~CertPathDialog() { } -IMPL_LINK(CertPathDialog, CheckHdl_Impl, const row_col&, rRowCol, void) +IMPL_LINK(CertPathDialog, CheckHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void) { - HandleEntryChecked(rRowCol.first); + HandleEntryChecked(m_xCertPathList->get_iter_index_in_parent(rRowCol.first)); } void CertPathDialog::HandleEntryChecked(int nRow) diff --git a/cui/source/options/certpath.hxx b/cui/source/options/certpath.hxx index 7ab30955dff6..75d53ae10100 100644 --- a/cui/source/options/certpath.hxx +++ b/cui/source/options/certpath.hxx @@ -20,8 +20,7 @@ class CertPathDialog : public weld::GenericDialogController OUString m_sManualLabel; OUString m_sManualPath; - typedef std::pair<int, int> row_col; - DECL_LINK(CheckHdl_Impl, const row_col&, void); + DECL_LINK(CheckHdl_Impl, const weld::TreeView::iter_col&, void); DECL_LINK(ManualHdl_Impl, weld::Button&, void); DECL_LINK(OKHdl_Impl, weld::Button&, void); diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx index 0eeaec393c6d..2d4df6cb3069 100644 --- a/cui/source/options/optjava.cxx +++ b/cui/source/options/optjava.cxx @@ -141,9 +141,9 @@ IMPL_LINK_NOARG(SvxJavaOptionsPage, EnableHdl_Impl, weld::Button&, void) m_xJavaList->set_sensitive(bEnable); } -IMPL_LINK(SvxJavaOptionsPage, CheckHdl_Impl, const row_col&, rRowCol, void) +IMPL_LINK(SvxJavaOptionsPage, CheckHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void) { - HandleCheckEntry(rRowCol.first); + HandleCheckEntry(m_xJavaList->get_iter_index_in_parent(rRowCol.first)); } IMPL_LINK_NOARG(SvxJavaOptionsPage, SelectHdl_Impl, weld::TreeView&, void) diff --git a/cui/source/options/optjava.hxx b/cui/source/options/optjava.hxx index f117746ebeec..0bfae107948f 100644 --- a/cui/source/options/optjava.hxx +++ b/cui/source/options/optjava.hxx @@ -82,8 +82,7 @@ private: std::unique_ptr<weld::Widget> m_xJavaFrame; DECL_LINK(EnableHdl_Impl, weld::Button&, void); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckHdl_Impl, const row_col&, void); + DECL_LINK(CheckHdl_Impl, const weld::TreeView::iter_col&, void); DECL_LINK(SelectHdl_Impl, weld::TreeView&, void); DECL_LINK(AddHdl_Impl, weld::Button&, void); DECL_LINK(ParameterHdl_Impl, weld::Button&, void); diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx index 3a45faab808e..525a2607824f 100644 --- a/cui/source/options/optlingu.cxx +++ b/cui/source/options/optlingu.cxx @@ -1302,21 +1302,19 @@ IMPL_LINK_NOARG(SvxLinguTabPage, PostDblClickHdl_Impl, void*, void) ClickHdl_Impl(*m_xLinguModulesEditPB); } -IMPL_LINK(SvxLinguTabPage, ModulesBoxCheckButtonHdl_Impl, const row_col&, rRowCol, void) +IMPL_LINK(SvxLinguTabPage, ModulesBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void) { if (!pLinguData) return; - auto nPos = rRowCol.first; - pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(nPos, 1), - m_xLinguModulesCLB->get_toggle(nPos, 0) == TRISTATE_TRUE); + pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(rRowCol.first, 1), + m_xLinguModulesCLB->get_toggle(rRowCol.first, 0) == TRISTATE_TRUE); } -IMPL_LINK(SvxLinguTabPage, DicsBoxCheckButtonHdl_Impl, const row_col&, rRowCol, void) +IMPL_LINK(SvxLinguTabPage, DicsBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void) { - auto nPos = rRowCol.first; - const uno::Reference<XDictionary> &rDic = aDics.getConstArray()[ nPos ]; + const uno::Reference<XDictionary> &rDic = aDics.getConstArray()[m_xLinguDicsCLB->get_iter_index_in_parent(rRowCol.first)]; if (LinguMgr::GetIgnoreAllList() == rDic) - m_xLinguDicsCLB->set_toggle(nPos, TRISTATE_TRUE, 0); + m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE, 0); } IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void) @@ -1621,15 +1619,15 @@ IMPL_LINK( SvxEditModulesDlg, SelectHdl_Impl, weld::TreeView&, rBox, void ) m_xPrioDownPB->set_sensitive(!bDisableDown); } -IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const row_col&, rRowCol, void ) +IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void ) { - auto nPos = rRowCol.first; - ModuleUserData_Impl* pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(nPos).toInt64()); + ModuleUserData_Impl* pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(rRowCol.first).toInt64()); if (pData->IsParent() || pData->GetType() != TYPE_HYPH) return; // make hyphenator checkboxes function as radio-buttons // (at most one box may be checked) + auto nPos = m_xModulesCLB->get_iter_index_in_parent(rRowCol.first); for (int i = 0, nEntryCount = m_xModulesCLB->n_children(); i < nEntryCount; ++i) { pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64()); diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx index b3170487ed32..a1e3d872e840 100644 --- a/dbaccess/source/ui/control/tabletree.cxx +++ b/dbaccess/source/ui/control/tabletree.cxx @@ -485,7 +485,7 @@ void OTableTreeListBox::checkedButton_noBroadcast(SvTreeListEntry* _pEntry) implEmphasize(_pEntry, SvButtonState::Checked == eState); } -void TableTreeListBox::checkedButton_noBroadcast(weld::TreeIter& rEntry) +void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry) { if (!m_bShowToggles) return; @@ -564,7 +564,7 @@ void OTableTreeListBox::implEmphasize(SvTreeListEntry* _pEntry, bool _bChecked, } } -void TableTreeListBox::implEmphasize(weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants, bool _bUpdateAncestors) +void TableTreeListBox::implEmphasize(const weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants, bool _bUpdateAncestors) { // special emphasizing handling for the "all objects" entry bool bAllObjectsEntryAffected = haveVirtualRoot() && (getAllObjectsEntry()->equal(rEntry)); diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx index 586cf77bf8a4..eb39f0b27bf7 100644 --- a/dbaccess/source/ui/dlg/tablespage.cxx +++ b/dbaccess/source/ui/dlg/tablespage.cxx @@ -330,12 +330,9 @@ namespace dbaui return nResult; } - IMPL_LINK_NOARG(OTableSubscriptionPage, OnTreeEntryChecked, const row_col&, void) + IMPL_LINK(OTableSubscriptionPage, OnTreeEntryChecked, const weld::TreeView::iter_col&, rRowCol, void) { - weld::TreeView& rTreeView = m_xTablesList->GetWidget(); - std::unique_ptr<weld::TreeIter> xEntry(rTreeView.make_iterator()); - if (rTreeView.get_cursor(xEntry.get())) - m_xTablesList->checkedButton_noBroadcast(*xEntry); + m_xTablesList->checkedButton_noBroadcast(rRowCol.first); callModifiedHdl(); } diff --git a/dbaccess/source/ui/dlg/tablespage.hxx b/dbaccess/source/ui/dlg/tablespage.hxx index 0eb1273d1eb7..34618a0432be 100644 --- a/dbaccess/source/ui/dlg/tablespage.hxx +++ b/dbaccess/source/ui/dlg/tablespage.hxx @@ -54,8 +54,7 @@ namespace dbaui virtual void fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override; virtual void fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override; - typedef std::pair<int, int> row_col; - DECL_LINK(OnTreeEntryChecked, const row_col&, void); + DECL_LINK(OnTreeEntryChecked, const weld::TreeView::iter_col&, void); /** check the tables in <member>m_aTablesList</member> according to <arg>_rTables</arg> */ diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx index 9be6310cd59f..58a6bba4322e 100644 --- a/dbaccess/source/ui/inc/tabletree.hxx +++ b/dbaccess/source/ui/inc/tabletree.hxx @@ -200,11 +200,11 @@ public: void CheckButtons(); // make the button states consistent (bottom-up) - void checkedButton_noBroadcast(weld::TreeIter& rEntry); + void checkedButton_noBroadcast(const weld::TreeIter& rEntry); private: TriState implDetermineState(weld::TreeIter& rEntry); - void implEmphasize(weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants = true, bool _bUpdateAncestors = true); + void implEmphasize(const weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants = true, bool _bUpdateAncestors = true); /** adds the given entry to our list @precond diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx index 60a0337119d5..cb161d631809 100644 --- a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx +++ b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx @@ -487,14 +487,12 @@ short UpdateDialog::run() { return nRet; } -IMPL_LINK(UpdateDialog, entryToggled, const row_col&, rRowCol, void) +IMPL_LINK(UpdateDialog, entryToggled, const weld::TreeView::iter_col&, rRowCol, void) { - int nRow = rRowCol.first; - // error's can't be enabled const UpdateDialog::Index* p = reinterpret_cast<UpdateDialog::Index const *>(m_xUpdates->get_id(rRowCol.first).toInt64()); if (p->m_eKind == SPECIFIC_ERROR) - m_xUpdates->set_toggle(nRow, TRISTATE_FALSE, 0); + m_xUpdates->set_toggle(rRowCol.first, TRISTATE_FALSE, 0); enableOk(); } diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx index 291f028504c4..dd3ae621a5a5 100644 --- a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx +++ b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx @@ -127,8 +127,7 @@ private: DECL_LINK(allHandler, weld::ToggleButton&, void); DECL_LINK(okHandler, weld::Button&, void); DECL_LINK(closeHandler, weld::Button&, void); - typedef std::pair<int, int> row_col; - DECL_LINK(entryToggled, const row_col&, void); + DECL_LINK(entryToggled, const weld::TreeView::iter_col&, void); css::uno::Reference< css::uno::XComponentContext > m_context; OUString m_none; diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index cad56785acb2..58309c9e49ef 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -618,9 +618,7 @@ protected: void signal_custom_render(vcl::RenderContext& rDevice, const tools::Rectangle& rRect, bool bSelected, const OUString& rId) { - m_aRenderHdl.Call( - std::tuple<vcl::RenderContext&, const tools::Rectangle, bool, const OUString&>( - rDevice, rRect, bSelected, rId)); + m_aRenderHdl.Call(render_args(rDevice, rRect, bSelected, rId)); } Link<vcl::RenderContext&, Size> m_aGetSizeHdl; @@ -761,6 +759,14 @@ public: class VCL_DLLPUBLIC TreeView : virtual public Container { +public: + typedef std::pair<const TreeIter&, int> iter_col; + typedef std::pair<const TreeIter&, OUString> iter_string; + // OUString is the id of the row, it may be null to measure the height of a generic line + typedef std::pair<vcl::RenderContext&, const OUString&> get_size_args; + typedef std::tuple<vcl::RenderContext&, const tools::Rectangle&, bool, const OUString&> + render_args; + private: OUString m_sSavedValue; @@ -768,9 +774,9 @@ protected: Link<TreeView&, void> m_aChangeHdl; Link<TreeView&, bool> m_aRowActivatedHdl; Link<int, void> m_aColumnClickedHdl; - Link<const std::pair<int, int>&, void> m_aRadioToggleHdl; + Link<const iter_col&, void> m_aRadioToggleHdl; Link<const TreeIter&, bool> m_aEditingStartedHdl; - Link<const std::pair<const TreeIter&, OUString>&, bool> m_aEditingDoneHdl; + Link<const iter_string&, bool> m_aEditingDoneHdl; // if handler returns false, the expansion of the row is refused Link<const TreeIter&, bool> m_aExpandingHdl; // if handler returns false, the collapse of the row is refused @@ -784,12 +790,6 @@ protected: Link<bool&, bool> m_aDragBeginHdl; std::function<int(const weld::TreeIter&, const weld::TreeIter&)> m_aCustomSort; -public: - // OUString is the id of the row, it may be null to measure the height of a generic line - typedef std::pair<vcl::RenderContext&, const OUString&> get_size_args; - typedef std::tuple<vcl::RenderContext&, const tools::Rectangle&, bool, const OUString&> - render_args; - protected: std::vector<int> m_aRadioIndexes; @@ -807,12 +807,11 @@ protected: void signal_visible_range_changed() { m_aVisibleRangeChangedHdl.Call(*this); } void signal_model_changed() { m_aModelChangedHdl.Call(*this); } - // arg is pair<row,col> - void signal_toggled(const std::pair<int, int>& rRowCol) { m_aRadioToggleHdl.Call(rRowCol); } + void signal_toggled(const iter_col& rIterCol) { m_aRadioToggleHdl.Call(rIterCol); } bool signal_editing_started(const TreeIter& rIter) { return m_aEditingStartedHdl.Call(rIter); } - bool signal_editing_done(const std::pair<const TreeIter&, OUString>& rIterText) + bool signal_editing_done(const iter_string& rIterText) { return m_aEditingDoneHdl.Call(rIterText); } @@ -824,15 +823,13 @@ protected: void signal_custom_render(vcl::RenderContext& rDevice, const tools::Rectangle& rRect, bool bSelected, const OUString& rId) { - m_aRenderHdl.Call( - std::tuple<vcl::RenderContext&, const tools::Rectangle, bool, const OUString&>( - rDevice, rRect, bSelected, rId)); + m_aRenderHdl.Call(render_args(rDevice, rRect, bSelected, rId)); } Link<get_size_args, Size> m_aGetSizeHdl; Size signal_custom_get_size(vcl::RenderContext& rDevice, const OUString& rId) { - return m_aGetSizeHdl.Call(std::pair<vcl::RenderContext&, const OUString&>(rDevice, rId)); + return m_aGetSizeHdl.Call(get_size_args(rDevice, rId)); } public: @@ -901,10 +898,7 @@ public: // Argument is a pair of row, col describing the node in non-tree mode. // If in tree mode, then retrieve the toggled node with get_cursor - void connect_toggled(const Link<const std::pair<int, int>&, void>& rLink) - { - m_aRadioToggleHdl = rLink; - } + void connect_toggled(const Link<const iter_col&, void>& rLink) { m_aRadioToggleHdl = rLink; } void connect_column_clicked(const Link<int, void>& rLink) { m_aColumnClickedHdl = rLink; } void connect_model_changed(const Link<TreeView&, void>& rLink) { m_aModelChangedHdl = rLink; } @@ -1063,9 +1057,8 @@ public: // rStartLink returns true to allow editing, false to disallow // rEndLink returns true to accept the edit, false to reject - virtual void - connect_editing(const Link<const TreeIter&, bool>& rStartLink, - const Link<const std::pair<const TreeIter&, OUString>&, bool>& rEndLink) + virtual void connect_editing(const Link<const TreeIter&, bool>& rStartLink, + const Link<const iter_string&, bool>& rEndLink) { assert(rStartLink.IsSet() == rEndLink.IsSet() && "should be both on or both off"); m_aEditingStartedHdl = rStartLink; diff --git a/sc/source/ui/dbgui/dpgroupdlg.cxx b/sc/source/ui/dbgui/dpgroupdlg.cxx index adbcee0f1874..5e92b4228dea 100644 --- a/sc/source/ui/dbgui/dpgroupdlg.cxx +++ b/sc/source/ui/dbgui/dpgroupdlg.cxx @@ -318,7 +318,7 @@ IMPL_LINK(ScDPDateGroupDlg, ClickHdl, weld::Button&, rButton, void) mxLbUnits->set_sensitive(true); mxLbUnits->grab_focus(); // disable OK button if no date part selected - CheckHdl(row_col(0, 0)); + Check(); } } @@ -335,10 +335,16 @@ namespace } } -IMPL_LINK_NOARG(ScDPDateGroupDlg, CheckHdl, const row_col&, void) +IMPL_LINK_NOARG(ScDPDateGroupDlg, CheckHdl, const weld::TreeView::iter_col&, void) +{ + Check(); +} + +void ScDPDateGroupDlg::Check() { // enable/disable OK button on modifying check list box mxBtnOk->set_sensitive(HasCheckedEntryCount(*mxLbUnits)); } + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx index 684095e04163..78fb46dd75e6 100644 --- a/sc/source/ui/dbgui/tpsubt.cxx +++ b/sc/source/ui/dbgui/tpsubt.cxx @@ -364,7 +364,7 @@ void ScTpSubTotalGroup::SelectHdl(const weld::Widget *pLb) } } -IMPL_LINK( ScTpSubTotalGroup, CheckHdl, const row_col&, rRowCol, void ) +IMPL_LINK( ScTpSubTotalGroup, CheckHdl, const weld::TreeView::iter_col&, rRowCol, void ) { mxLbColumns->select(rRowCol.first); SelectHdl(mxLbColumns.get()); diff --git a/sc/source/ui/inc/dpgroupdlg.hxx b/sc/source/ui/inc/dpgroupdlg.hxx index d1b36587732f..7c7ca994f2cd 100644 --- a/sc/source/ui/inc/dpgroupdlg.hxx +++ b/sc/source/ui/inc/dpgroupdlg.hxx @@ -117,10 +117,9 @@ public: private: DECL_LINK(ClickHdl, weld::Button&, void); + DECL_LINK(CheckHdl, const weld::TreeView::iter_col&, void); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckHdl, const row_col&, void); - + void Check(); private: std::unique_ptr<weld::RadioButton> mxRbAutoStart; std::unique_ptr<weld::RadioButton> mxRbManStart; diff --git a/sc/source/ui/inc/tpsubt.hxx b/sc/source/ui/inc/tpsubt.hxx index f4e52a5a6517..d5a2ca023eed 100644 --- a/sc/source/ui/inc/tpsubt.hxx +++ b/sc/source/ui/inc/tpsubt.hxx @@ -68,8 +68,7 @@ private: // Handler ------------------------ DECL_LINK( SelectListBoxHdl, weld::ComboBox&, void ); DECL_LINK( SelectTreeListBoxHdl, weld::TreeView&, void ); - typedef std::pair<int, int> row_col; - DECL_LINK(CheckHdl, const row_col&, void); + DECL_LINK(CheckHdl, const weld::TreeView::iter_col&, void); void SelectHdl(const weld::Widget*); }; diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx index 97f24f093336..b5e1a1aa0bc3 100644 --- a/sw/source/ui/config/optload.cxx +++ b/sw/source/ui/config/optload.cxx @@ -768,9 +768,9 @@ IMPL_LINK_NOARG(SwCaptionOptPage, ShowEntryHdl, weld::TreeView&, void) m_nPrevSelectedEntry = m_xCheckLB->get_selected_index(); } -IMPL_LINK(SwCaptionOptPage, ToggleEntryHdl, const row_col&, rRowCol, void) +IMPL_LINK(SwCaptionOptPage, ToggleEntryHdl, const weld::TreeView::iter_col&, rRowCol, void) { - UpdateEntry(rRowCol.first); + UpdateEntry(m_xCheckLB->get_iter_index_in_parent(rRowCol.first)); } void SwCaptionOptPage::SaveEntry(int nEntry) diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx index f428406b27b4..91e41c7a8b2e 100644 --- a/sw/source/ui/index/cnttab.cxx +++ b/sw/source/ui/index/cnttab.cxx @@ -478,8 +478,7 @@ class SwAddStylesDlg_Impl : public SfxDialogController DECL_LINK(LeftRightHdl, weld::Button&, void); DECL_LINK(KeyInput, const KeyEvent&, bool); DECL_LINK(TreeSizeAllocHdl, const Size&, void); - typedef std::pair<int, int> row_col; - DECL_LINK(RadioToggleOnHdl, const row_col&, void); + DECL_LINK(RadioToggleOnHdl, const weld::TreeView::iter_col&, void); public: SwAddStylesDlg_Impl(weld::Window* pParent, SwWrtShell const & rWrtSh, OUString rStringArr[]); @@ -596,7 +595,7 @@ IMPL_LINK(SwAddStylesDlg_Impl, TreeSizeAllocHdl, const Size&, rSize, void) m_xHeaderTree->set_column_fixed_widths(aWidths); } -IMPL_LINK(SwAddStylesDlg_Impl, RadioToggleOnHdl, const row_col&, rRowCol, void) +IMPL_LINK(SwAddStylesDlg_Impl, RadioToggleOnHdl, const weld::TreeView::iter_col&, rRowCol, void) { for (sal_uInt16 i = 0; i <= MAXLEVEL; ++i) { diff --git a/sw/source/uibase/inc/optload.hxx b/sw/source/uibase/inc/optload.hxx index 1db4fcbf59e5..22fef4bcd5ea 100644 --- a/sw/source/uibase/inc/optload.hxx +++ b/sw/source/uibase/inc/optload.hxx @@ -164,15 +164,13 @@ private: std::unique_ptr<weld::CheckButton> m_xApplyBorderCB; std::unique_ptr<weld::CustomWeld> m_xPreview; - typedef std::pair<int, int> row_col; - DECL_LINK(SelectHdl, weld::ComboBox&, void); DECL_LINK(SelectListBoxHdl, weld::ComboBox&, void); DECL_LINK(ModifyEntryHdl, weld::Entry&, void); DECL_LINK(ModifyComboHdl, weld::ComboBox&, void); DECL_LINK(OrderHdl, weld::ComboBox&, void ); DECL_LINK(ShowEntryHdl, weld::TreeView&, void); - DECL_LINK(ToggleEntryHdl, const row_col&, void); + DECL_LINK(ToggleEntryHdl, const weld::TreeView::iter_col&, void); DECL_LINK(TextFilterHdl, OUString&, bool); void ModifyHdl(); diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 6a8042ba2b1c..6057ffbe6dd6 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3917,7 +3917,7 @@ public: virtual void connect_editing( const Link<const weld::TreeIter&, bool>& rStartLink, - const Link<const std::pair<const weld::TreeIter&, OUString>&, bool>& rEndLink) override + const Link<const iter_string&, bool>& rEndLink) override { m_xTreeView->EnableInplaceEditing(rStartLink.IsSet() || rEndLink.IsSet()); weld::TreeView::connect_editing(rStartLink, rEndLink); @@ -4697,8 +4697,7 @@ IMPL_LINK(SalInstanceTreeView, ToggleHdl, SvLBoxButtonData*, pData, void) m_xTreeView->Select(pEntry, true); } - // toggled signal handlers can query get_cursor to get which - // node was clicked + // additionally set the cursor into the row the toggled element is in m_xTreeView->pImpl->m_pCursor = pEntry; for (int i = 1, nCount = pEntry->ItemCount(); i < nCount; ++i) @@ -4706,9 +4705,8 @@ IMPL_LINK(SalInstanceTreeView, ToggleHdl, SvLBoxButtonData*, pData, void) SvLBoxItem& rItem = pEntry->GetItem(i); if (&rItem == pBox) { - int nRow = SvTreeList::GetRelPos(pEntry); int nCol = i - 1; // less dummy/expander column - signal_toggled(std::make_pair(nRow, nCol)); + signal_toggled(iter_col(SalInstanceTreeIter(pEntry), nCol)); break; } } @@ -4806,7 +4804,7 @@ IMPL_LINK(SalInstanceTreeView, EditingEntryHdl, SvTreeListEntry*, pEntry, bool) IMPL_LINK(SalInstanceTreeView, EditedEntryHdl, IterString, rIterString, bool) { - return signal_editing_done(std::pair<const weld::TreeIter&, OUString>( + return signal_editing_done(iter_string( SalInstanceTreeIter(rIterString.first), rIterString.second)); } diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 3b25934e4002..57a2973743a3 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -9383,8 +9383,7 @@ private: { GtkTreePath *tree_path = gtk_tree_path_new_from_string(path); - // toggled signal handlers can query get_cursor to get which - // node was clicked + // additionally set the cursor into the row the toggled element is in gtk_tree_view_set_cursor(m_pTreeView, tree_path, nullptr, false); GtkTreeModel *pModel = GTK_TREE_MODEL(m_pTreeStore); @@ -9396,13 +9395,9 @@ private: bRet = !bRet; gtk_tree_store_set(m_pTreeStore, &iter, nCol, bRet, -1); - gint depth; - gint* indices = gtk_tree_path_get_indices_with_depth(tree_path, &depth); - int nRow = indices[depth-1]; - set(iter, m_aToggleTriStateMap[nCol], false); - signal_toggled(std::make_pair(nRow, nCol)); + signal_toggled(iter_col(GtkInstanceTreeIter(iter), nCol)); gtk_tree_path_free(tree_path); } @@ -9453,7 +9448,7 @@ private: gtk_tree_path_free(tree_path); OUString sText(pNewText, pNewText ? strlen(pNewText) : 0, RTL_TEXTENCODING_UTF8); - if (signal_editing_done(std::pair<const weld::TreeIter&, OUString>(aGtkIter, sText))) + if (signal_editing_done(iter_string(aGtkIter, sText))) { void* pData = g_object_get_data(G_OBJECT(pCell), "g-lo-CellIndex"); set(aGtkIter.iter, reinterpret_cast<sal_IntPtr>(pData), sText); |