summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-05 16:11:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-06-08 20:21:35 +0200
commitcd384e2d31f74223948ea70d8aa3c318d3ceeb50 (patch)
tree49ae5191c2bd4b13c3cd547951933fbc37cda0fa
parentc3669c8bd62ecf5eaa6b5e95289825bc11b2688a (diff)
rework treeview initial toggle button col to be like expander col
cause this assumption is baked into the vcl one making it hard to adapt remaining cases Change-Id: I75dd5264c65b1ffbf4d26c9a86f6d4d08b400d90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95622 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--basctl/source/basicide/moduldl2.cxx8
-rw-r--r--basctl/source/basicide/moduldlg.cxx1
-rw-r--r--basctl/source/dlged/managelang.cxx10
-rw-r--r--cui/source/customize/SvxMenuConfigPage.cxx24
-rw-r--r--cui/source/customize/SvxNotebookbarConfigPage.cxx40
-rw-r--r--cui/source/customize/SvxToolbarConfigPage.cxx49
-rw-r--r--cui/source/customize/cfg.cxx28
-rw-r--r--cui/source/dialogs/hangulhanjadlg.cxx10
-rw-r--r--cui/source/dialogs/multipat.cxx23
-rw-r--r--cui/source/dialogs/srchxtra.cxx10
-rw-r--r--cui/source/inc/cfg.hxx9
-rw-r--r--cui/source/options/certpath.cxx26
-rw-r--r--cui/source/options/fontsubs.cxx36
-rw-r--r--cui/source/options/optjava.cxx7
-rw-r--r--cui/source/options/optlingu.cxx123
-rw-r--r--cui/source/tabpages/autocdlg.cxx78
-rw-r--r--cui/uiconfig/ui/applyautofmtpage.ui25
-rw-r--r--cui/uiconfig/ui/applylocalizedpage.ui23
-rw-r--r--cui/uiconfig/ui/certdialog.ui14
-rw-r--r--cui/uiconfig/ui/menuassignpage.ui14
-rw-r--r--cui/uiconfig/ui/multipathdialog.ui9
-rw-r--r--cui/uiconfig/ui/optadvancedpage.ui26
-rw-r--r--cui/uiconfig/ui/optfltrembedpage.ui27
-rw-r--r--cui/uiconfig/ui/optfontspage.ui8
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx46
-rw-r--r--dbaccess/source/ui/dlg/tablespage.cxx6
-rw-r--r--dbaccess/source/ui/inc/tabletree.hxx1
-rw-r--r--dbaccess/source/ui/misc/WNameMatch.cxx14
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedialog.cxx14
-rw-r--r--include/vcl/weld.hxx40
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.cxx12
-rw-r--r--sc/source/ui/dbgui/pvfundlg.cxx14
-rw-r--r--sc/source/ui/dbgui/tpsubt.cxx18
-rw-r--r--sc/source/ui/miscdlgs/protectiondlg.cxx16
-rw-r--r--sc/source/ui/miscdlgs/solveroptions.cxx20
-rw-r--r--sw/source/ui/config/optcomp.cxx24
-rw-r--r--sw/source/ui/config/optload.cxx30
-rw-r--r--sw/source/ui/index/cnttab.cxx15
-rw-r--r--vcl/source/app/salvtables.cxx241
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx62
40 files changed, 616 insertions, 585 deletions
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index 3c9d64a01854..c94cfe753c96 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -648,8 +648,8 @@ void LibPage::InsertLib()
weld::TreeView& rView = xLibDlg->GetLibBox();
rView.append();
const int nRow = rView.n_children() - 1;
- rView.set_toggle(nRow, TRISTATE_TRUE, 0);
- rView.set_text(nRow, aLibName, 1);
+ rView.set_toggle(nRow, TRISTATE_TRUE);
+ rView.set_text(nRow, aLibName, 0);
rView.set_cursor(rView.find_text(aLibName));
}
}
@@ -682,9 +682,9 @@ void LibPage::InsertLib()
weld::TreeView& rView = xLibDlg->GetLibBox();
for (int nLib = 0, nChildren = rView.n_children(); nLib < nChildren; ++nLib)
{
- if (rView.get_toggle(nLib, 0) == TRISTATE_TRUE)
+ if (rView.get_toggle(nLib) == TRISTATE_TRUE)
{
- OUString aLibName(rView.get_text(nLib, 1));
+ OUString aLibName(rView.get_text(nLib));
Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY );
Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY );
diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx
index 3b650078fa4d..7aeae822a7bb 100644
--- a/basctl/source/basicide/moduldlg.cxx
+++ b/basctl/source/basicide/moduldlg.cxx
@@ -897,6 +897,7 @@ LibDialog::LibDialog(weld::Window* pParent)
{
m_xLibBox->set_size_request(m_xLibBox->get_approximate_digit_width() * 28,
m_xLibBox->get_height_rows(8));
+ m_xLibBox->enable_toggle_buttons(weld::ColumnToggleType::Check);
// tdf#93476 The libraries should be listed alphabetically
m_xLibBox->make_sorted();
}
diff --git a/basctl/source/dlged/managelang.cxx b/basctl/source/dlged/managelang.cxx
index 77a40f031c80..d36c23803e7a 100644
--- a/basctl/source/dlged/managelang.cxx
+++ b/basctl/source/dlged/managelang.cxx
@@ -226,9 +226,7 @@ SetDefaultLanguageDialog::SetDefaultLanguageDialog(weld::Window* pParent, std::s
{
m_xLanguageLB->set_size_request(-1, m_xLanguageLB->get_height_rows(10));
m_xCheckLangLB->set_size_request(-1, m_xCheckLangLB->get_height_rows(10));
- std::vector<int> aWidths;
- aWidths.push_back(m_xCheckLangLB->get_checkbox_column_width());
- m_xCheckLangLB->set_column_fixed_widths(aWidths);
+ m_xCheckLangLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
if (m_xLocalizationMgr->isLibraryLocalized())
{
@@ -270,8 +268,8 @@ void SetDefaultLanguageDialog::FillLanguageBox()
LanguageType eLang = m_xLanguageCB->get_id(j);
m_xCheckLangLB->append();
const int nRow = m_xCheckLangLB->n_children() - 1;
- m_xCheckLangLB->set_toggle(nRow, TRISTATE_FALSE, 0);
- m_xCheckLangLB->set_text(nRow, m_xLanguageCB->get_text(j), 1);
+ m_xCheckLangLB->set_toggle(nRow, TRISTATE_FALSE);
+ m_xCheckLangLB->set_text(nRow, m_xLanguageCB->get_text(j), 0);
m_xCheckLangLB->set_id(nRow, OUString::number(eLang.get()));
}
m_xLanguageCB.reset();
@@ -304,7 +302,7 @@ Sequence< Locale > SetDefaultLanguageDialog::GetLocales() const
const sal_Int32 nCount = m_xCheckLangLB->n_children();
for (sal_Int32 i = 0; i < nCount; ++i)
{
- if (m_xCheckLangLB->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (m_xCheckLangLB->get_toggle(i) == TRISTATE_TRUE)
{
LanguageType eType(m_xCheckLangLB->get_id(i).toUInt32());
aLocaleSeq.push_back(LanguageTag::convertToLocale(eType));
diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index c40c07dd3ce6..90f421013fba 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -115,22 +115,10 @@ IMPL_LINK(SvxMenuConfigPage, MenuEntriesSizeAllocHdl, const Size&, rSize, void)
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
std::vector<int> aWidths;
- int nExpectedSize = 16;
-
int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
- int nMargin = nStandardImageColWidth - nExpectedSize;
- if (nMargin < 16)
- nMargin = 16;
-
- if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
- nExpectedSize = 24;
- else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
- nExpectedSize = 32;
-
- int nImageColWidth = nExpectedSize + nMargin;
+ int nMargin = 16;
- aWidths.push_back(nImageColWidth);
- aWidths.push_back(rSize.Width() - (nImageColWidth + nStandardImageColWidth));
+ aWidths.push_back(rSize.Width() - (nMargin + nStandardImageColWidth));
rTreeView.set_column_fixed_widths(aWidths);
}
@@ -279,7 +267,7 @@ void SvxMenuConfigPage::SelectElement()
auto const& entry = (*pEntries)[nIdx];
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
rTreeView.set_id(rIter, sId);
- InsertEntryIntoUI(entry, rTreeView, rIter, 0);
+ InsertEntryIntoUI(entry, rTreeView, rIter, true);
});
}
@@ -369,7 +357,7 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, AddCommandHdl, weld::Button&, void )
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
SvxConfigEntry* pEntry =
reinterpret_cast<SvxConfigEntry*>(rTreeView.get_id(nPos).toInt64());
- InsertEntryIntoUI(pEntry, rTreeView, nPos, 0);
+ InsertEntryIntoUI(pEntry, rTreeView, nPos, true);
}
IMPL_LINK_NOARG( SvxMenuConfigPage, RemoveCommandHdl, weld::Button&, void )
@@ -389,7 +377,7 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
SvxConfigEntry* pNewEntryData = new SvxConfigEntry;
pNewEntryData->SetUserDefined();
int nPos = AppendEntry(pNewEntryData, -1);
- InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, 0);
+ InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, true);
}
else if (rIdent == "insertsubmenu")
{
@@ -410,7 +398,7 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
pNewEntryData->SetUserDefined();
int nPos = AppendEntry(pNewEntryData, -1);
- InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, 0);
+ InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, true);
ReloadTopLevelListBox();
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx
index b8c3a8d72a49..7354f1c821ba 100644
--- a/cui/source/customize/SvxNotebookbarConfigPage.cxx
+++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx
@@ -124,29 +124,10 @@ SvxNotebookbarConfigPage::SvxNotebookbarConfigPage(weld::Container* pPage,
new SvxNotebookbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
m_xDropTargetHelper.reset(
new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
- std::vector<int> aWidths;
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
Size aSize(m_xFunctions->get_size_request());
rTreeView.set_size_request(aSize.Width(), aSize.Height());
- int nExpectedSize = 16;
-
- int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
- int nMargin = nStandardImageColWidth - nExpectedSize;
- if (nMargin < 16)
- nMargin = 16;
-
- if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
- nExpectedSize = 24;
- else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
- nExpectedSize = 32;
-
- int nImageColWidth = nExpectedSize + nMargin;
-
- aWidths.push_back(nStandardImageColWidth);
- aWidths.push_back(nImageColWidth);
- rTreeView.set_column_fixed_widths(aWidths);
-
rTreeView.set_hexpand(true);
rTreeView.set_vexpand(true);
rTreeView.set_help_id(HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS);
@@ -219,7 +200,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
const OUString& sUIItemId,
const OUString& sUIItemCommand,
weld::TreeView& rTreeView,
- weld::TreeIter& rIter, int nStartCol)
+ weld::TreeIter& rIter)
{
css::uno::Reference<css::container::XNameAccess> m_xCommandToLabelMap;
uno::Reference<uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext();
@@ -249,7 +230,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
if (sClassId == "GtkSeparatorMenuItem" || sClassId == "GtkSeparator")
{
- rTreeView.set_text(rIter, "--------------------------------------------", nStartCol + 1);
+ rTreeView.set_text(rIter, "--------------------------------------------", 0);
}
else
{
@@ -257,8 +238,8 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
aName = sUIItemId;
auto xImage = GetSaveInData()->GetImage(sUIItemCommand);
if (xImage.is())
- rTreeView.set_image(rIter, xImage, nStartCol);
- rTreeView.set_text(rIter, aName, nStartCol + 1);
+ rTreeView.set_image(rIter, xImage, -1);
+ rTreeView.set_text(rIter, aName, 0);
rTreeView.set_id(rIter, sUIItemId);
}
}
@@ -465,15 +446,15 @@ void SvxNotebookbarConfigPage::SelectElement()
{
if (aEntries[nIdx].sVisibleValue == "True")
{
- rTreeView.set_toggle(rIter, TRISTATE_TRUE, 0);
+ rTreeView.set_toggle(rIter, TRISTATE_TRUE);
}
else
{
- rTreeView.set_toggle(rIter, TRISTATE_FALSE, 0);
+ rTreeView.set_toggle(rIter, TRISTATE_FALSE);
}
}
InsertEntryIntoNotebookbarTabUI(aEntries[nIdx].sClassId, aEntries[nIdx].sDisplayName,
- aEntries[nIdx].sActionName, rTreeView, rIter, 1);
+ aEntries[nIdx].sActionName, rTreeView, rIter);
});
aEntries.clear();
@@ -532,7 +513,7 @@ void SvxNotebookbarEntriesListBox::ChangedVisibility(int nRow)
OUString sNotebookbarInterface = getFileName(m_pPage->GetFileName());
OUString sVisible;
- if (m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE)
+ if (m_xControl->get_toggle(nRow) == TRISTATE_TRUE)
sVisible = "True";
else
sVisible = "False";
@@ -556,9 +537,8 @@ IMPL_LINK(SvxNotebookbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent,
if (rKeyEvent.GetKeyCode() == KEY_SPACE)
{
int nRow = m_xControl->get_selected_index();
- m_xControl->set_toggle(
- nRow, m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE,
- 0);
+ m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow) == TRISTATE_TRUE ? TRISTATE_FALSE
+ : TRISTATE_TRUE);
ChangedVisibility(nRow);
return true;
}
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index 5efa3283498b..08540446e7ff 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -53,29 +53,10 @@ SvxToolbarConfigPage::SvxToolbarConfigPage(weld::Container* pPage, weld::DialogC
m_xContentsListBox.reset(new SvxToolbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
m_xDropTargetHelper.reset(new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
- std::vector<int> aWidths;
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
Size aSize(m_xFunctions->get_size_request());
rTreeView.set_size_request(aSize.Width(), aSize.Height());
- int nExpectedSize = 16;
-
- int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
- int nMargin = nStandardImageColWidth - nExpectedSize;
- if (nMargin < 16)
- nMargin = 16;
-
- if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
- nExpectedSize = 24;
- else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
- nExpectedSize = 32;
-
- int nImageColWidth = nExpectedSize + nMargin;
-
- aWidths.push_back(nStandardImageColWidth);
- aWidths.push_back(nImageColWidth);
- rTreeView.set_column_fixed_widths(aWidths);
-
rTreeView.set_hexpand(true);
rTreeView.set_vexpand(true);
rTreeView.set_help_id( HID_SVX_CONFIG_TOOLBAR_CONTENTS );
@@ -467,7 +448,7 @@ IMPL_LINK(SvxToolbarConfigPage, InsertHdl, const OString&, rIdent, void)
pNewEntryData->SetUserDefined();
int nPos = AppendEntry(pNewEntryData, -1);
- InsertEntryIntoUI(pNewEntryData, m_xContentsListBox->get_widget(), nPos, 1);
+ InsertEntryIntoUI(pNewEntryData, m_xContentsListBox->get_widget(), nPos);
static_cast<ToolbarSaveInData*>( GetSaveInData())->ApplyToolbar( pToolbar );
@@ -516,7 +497,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
else
pEntry->SetName( aNewName );
- m_xContentsListBox->set_text(nActEntry, aNewName, 2);
+ m_xContentsListBox->set_text(nActEntry, aNewName, 0);
bNeedsApply = true;
}
}
@@ -564,8 +545,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
m_xContentsListBox->insert(nActEntry, sId);
- m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+ m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
m_xContentsListBox->select(nActEntry);
m_xContentsListBox->scroll_to_row(nActEntry);
@@ -604,8 +585,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
m_xContentsListBox->insert(nActEntry, sId);
- m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+ m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
m_xContentsListBox->select(nActEntry);
m_xContentsListBox->scroll_to_row(nActEntry);
@@ -638,7 +619,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
{
pEntry->SetName( aSystemName );
m_xContentsListBox->set_text(
- nActEntry, SvxConfigPageHelper::stripHotKey(aSystemName), 2);
+ nActEntry, SvxConfigPageHelper::stripHotKey(aSystemName), 0);
bNeedsApply = true;
}
@@ -661,8 +642,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
m_xContentsListBox->insert(nActEntry, sId);
m_xContentsListBox->set_toggle(nActEntry,
- pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+ pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
m_xContentsListBox->select(nActEntry);
m_xContentsListBox->scroll_to_row(nActEntry);
@@ -793,8 +774,8 @@ void SvxToolbarConfigPage::SelectElement()
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
m_xContentsListBox->insert(i, sId);
if (entry->IsBinding() && !entry->IsSeparator())
- m_xContentsListBox->set_toggle(i, entry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- InsertEntryIntoUI(entry, m_xContentsListBox->get_widget(), i, 1);
+ m_xContentsListBox->set_toggle(i, entry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ InsertEntryIntoUI(entry, m_xContentsListBox->get_widget(), i);
++i;
}
@@ -820,10 +801,10 @@ void SvxToolbarConfigPage::AddFunction(int nTarget)
if ( pEntry->IsBinding() ) //TODO sep ?
{
pEntry->SetVisible(true);
- m_xContentsListBox->set_toggle(nNewLBEntry, TRISTATE_TRUE, 0);
+ m_xContentsListBox->set_toggle(nNewLBEntry, TRISTATE_TRUE);
}
- InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nNewLBEntry, 1);
+ InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nNewLBEntry);
// Changes are not visible on the toolbar until this point
// TODO: Figure out a way to show the changes on the toolbar, but revert if
@@ -854,7 +835,7 @@ void SvxToolbarEntriesListBox::ChangedVisibility(int nRow)
if (pEntryData->IsBinding())
{
- pEntryData->SetVisible(m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE);
+ pEntryData->SetVisible(m_xControl->get_toggle(nRow) == TRISTATE_TRUE);
SvxConfigEntry* pToolbar = m_pPage->GetTopLevelSelection();
@@ -879,7 +860,7 @@ IMPL_LINK(SvxToolbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, boo
SvxConfigEntry* pEntryData = reinterpret_cast<SvxConfigEntry*>(m_xControl->get_id(nRow).toInt64());
if (pEntryData->IsBinding() && !pEntryData->IsSeparator())
{
- m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE, 0);
+ m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE);
ChangedVisibility(nRow);
}
return true;
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 412ecf3fe5f6..e7cea5f48d97 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -926,6 +926,7 @@ SvxMenuEntriesListBox::SvxMenuEntriesListBox(std::unique_ptr<weld::TreeView> xCo
, m_xDropDown(m_xControl->create_virtual_device())
, m_pPage(pPg)
{
+ m_xControl->enable_toggle_buttons(weld::ColumnToggleType::Check);
CreateDropDown();
m_xControl->connect_key_press(LINK(this, SvxMenuEntriesListBox, KeyInputHdl));
}
@@ -1507,7 +1508,8 @@ int SvxConfigPage::AppendEntry(
namespace
{
- template<typename itertype> void TmplInsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, itertype& rIter, int nStartCol, SaveInData* pSaveInData, VirtualDevice& rDropDown)
+ template<typename itertype> void TmplInsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, itertype& rIter, SaveInData* pSaveInData,
+ VirtualDevice& rDropDown, bool bMenu)
{
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pNewEntryData)));
@@ -1515,37 +1517,37 @@ namespace
if (pNewEntryData->IsSeparator())
{
- rTreeView.set_text(rIter, "----------------------------------", nStartCol + 1);
+ rTreeView.set_text(rIter, "----------------------------------", 0);
}
else
{
auto xImage = pSaveInData->GetImage(pNewEntryData->GetCommand());
if (xImage.is())
- rTreeView.set_image(rIter, xImage, nStartCol);
+ rTreeView.set_image(rIter, xImage, -1);
OUString aName = SvxConfigPageHelper::stripHotKey( pNewEntryData->GetName() );
- rTreeView.set_text(rIter, aName, nStartCol + 1);
+ rTreeView.set_text(rIter, aName, 0);
}
- if (nStartCol == 0) // menus
+ if (bMenu) // menus
{
if (pNewEntryData->IsPopup() || pNewEntryData->GetStyle() & css::ui::ItemStyle::DROP_DOWN)
- rTreeView.set_image(rIter, rDropDown, nStartCol + 2);
+ rTreeView.set_image(rIter, rDropDown, 1);
else
- rTreeView.set_image(rIter, css::uno::Reference<css::graphic::XGraphic>(), nStartCol + 2);
+ rTreeView.set_image(rIter, css::uno::Reference<css::graphic::XGraphic>(), 1);
}
}
}
-void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, int nPos, int nStartCol)
+void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, int nPos, bool bMenu)
{
- TmplInsertEntryIntoUI<int>(pNewEntryData, rTreeView, nPos, nStartCol,
- GetSaveInData(), m_xContentsListBox->get_dropdown_image());
+ TmplInsertEntryIntoUI<int>(pNewEntryData, rTreeView, nPos, GetSaveInData(),
+ m_xContentsListBox->get_dropdown_image(), bMenu);
}
-void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, weld::TreeIter& rIter, int nStartCol)
+void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, weld::TreeIter& rIter, bool bMenu)
{
- TmplInsertEntryIntoUI<weld::TreeIter>(pNewEntryData, rTreeView, rIter, nStartCol,
- GetSaveInData(), m_xContentsListBox->get_dropdown_image());
+ TmplInsertEntryIntoUI<weld::TreeIter>(pNewEntryData, rTreeView, rIter, GetSaveInData(),
+ m_xContentsListBox->get_dropdown_image(), bMenu);
}
IMPL_LINK(SvxConfigPage, MoveHdl, weld::Button&, rButton, void)
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx
index 34e93ed378dc..25fadc445c5b 100644
--- a/cui/source/dialogs/hangulhanjadlg.cxx
+++ b/cui/source/dialogs/hangulhanjadlg.cxx
@@ -761,7 +761,7 @@ namespace svx
DBG_ASSERT( xDict.is(), "-HangulHanjaOptionsDialog::OkHdl(): someone is evaporated..." );
- bool bActive = m_xDictsLB->get_toggle(n, 0) == TRISTATE_TRUE;
+ bool bActive = m_xDictsLB->get_toggle(n) == TRISTATE_TRUE;
xDict->setActive( bActive );
Reference< util::XFlushable > xFlush( xDict, uno::UNO_QUERY );
if( xFlush.is() )
@@ -890,9 +890,7 @@ namespace svx
m_xDictsLB->set_size_request(m_xDictsLB->get_approximate_digit_width() * 32,
m_xDictsLB->get_height_rows(5));
- std::vector<int> aWidths;
- aWidths.push_back(m_xDictsLB->get_checkbox_column_width());
- m_xDictsLB->set_column_fixed_widths(aWidths);
+ m_xDictsLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xDictsLB->connect_changed( LINK( this, HangulHanjaOptionsDialog, DictsLB_SelectHdl ) );
@@ -927,8 +925,8 @@ namespace svx
{
m_xDictsLB->append();
int nRow = m_xDictsLB->n_children() - 1;
- m_xDictsLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xDictsLB->set_text(nRow, rName, 1);
+ m_xDictsLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xDictsLB->set_text(nRow, rName, 0);
m_xDictsLB->set_id(nRow, rName);
}
diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx
index bd121578c3bb..249a116b1d5e 100644
--- a/cui/source/dialogs/multipat.cxx
+++ b/cui/source/dialogs/multipat.cxx
@@ -57,7 +57,7 @@ IMPL_LINK_NOARG(SvxPathSelectDialog, SelectHdl_Impl, weld::TreeView&, void)
void SvxMultiPathDialog::HandleEntryChecked(int nRow)
{
m_xRadioLB->select(nRow);
- bool bChecked = m_xRadioLB->get_toggle(nRow, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xRadioLB->get_toggle(nRow) == TRISTATE_TRUE;
if (bChecked)
{
// we have radio button behavior -> so uncheck the other entries
@@ -65,7 +65,7 @@ void SvxMultiPathDialog::HandleEntryChecked(int nRow)
for (int i = 0; i < nCount; ++i)
{
if (i != nRow)
- m_xRadioLB->set_toggle(i, TRISTATE_FALSE, 0);
+ m_xRadioLB->set_toggle(i, TRISTATE_FALSE);
}
}
}
@@ -79,8 +79,8 @@ void SvxMultiPathDialog::AppendEntry(const OUString& rText, const OUString& rId)
{
m_xRadioLB->append();
const int nRow = m_xRadioLB->n_children() - 1;
- m_xRadioLB->set_toggle(nRow, TRISTATE_FALSE, 0);
- m_xRadioLB->set_text(nRow, rText, 1);
+ m_xRadioLB->set_toggle(nRow, TRISTATE_FALSE);
+ m_xRadioLB->set_text(nRow, rText, 0);
m_xRadioLB->set_id(nRow, rId);
}
@@ -147,7 +147,7 @@ IMPL_LINK_NOARG(SvxPathSelectDialog, AddHdl_Impl, weld::Button&, void)
IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl, weld::Button&, void)
{
int nPos = m_xRadioLB->get_selected_index();
- bool bChecked = m_xRadioLB->get_toggle(nPos, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xRadioLB->get_toggle(nPos) == TRISTATE_TRUE;
m_xRadioLB->remove(nPos);
int nCnt = m_xRadioLB->n_children();
if (nCnt)
@@ -158,7 +158,7 @@ IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl, weld::Button&, void)
nPos = nCnt;
if (bChecked)
{
- m_xRadioLB->set_toggle(nPos, TRISTATE_TRUE, 0);
+ m_xRadioLB->set_toggle(nPos, TRISTATE_TRUE);
HandleEntryChecked(nPos);
}
m_xRadioLB->select(nPos);
@@ -193,13 +193,10 @@ SvxMultiPathDialog::SvxMultiPathDialog(weld::Window* pParent)
{
m_xRadioLB->set_size_request(m_xRadioLB->get_approximate_digit_width() * 60,
m_xRadioLB->get_text_height() * 10);
-
- std::vector<int> aWidths;
- aWidths.push_back(m_xRadioLB->get_checkbox_column_width());
- m_xRadioLB->set_column_fixed_widths(aWidths);
- m_xRadioLB->set_toggle_columns_as_radio();
+ m_xRadioLB->enable_toggle_buttons(weld::ColumnToggleType::Radio);
m_xRadioLB->connect_toggled(LINK(this, SvxMultiPathDialog, CheckHdl_Impl));
m_xRadioLB->connect_changed(LINK(this, SvxMultiPathDialog, SelectHdl_Impl));
+
m_xAddBtn->connect_clicked(LINK(this, SvxMultiPathDialog, AddHdl_Impl));
m_xDelBtn->connect_clicked(LINK(this, SvxMultiPathDialog, DelHdl_Impl));
@@ -234,7 +231,7 @@ OUString SvxMultiPathDialog::GetPath() const
OUString sWritable;
for (int i = 0, nCount = m_xRadioLB->n_children(); i < nCount; ++i)
{
- if (m_xRadioLB->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (m_xRadioLB->get_toggle(i) == TRISTATE_TRUE)
sWritable = m_xRadioLB->get_id(i);
else
{
@@ -286,7 +283,7 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath )
if (nCount)
{
- m_xRadioLB->set_toggle(nCount - 1, TRISTATE_TRUE, 0);
+ m_xRadioLB->set_toggle(nCount - 1, TRISTATE_TRUE);
HandleEntryChecked(nCount - 1);
}
}
diff --git a/cui/source/dialogs/srchxtra.cxx b/cui/source/dialogs/srchxtra.cxx
index 2a68293f00cf..513501700970 100644
--- a/cui/source/dialogs/srchxtra.cxx
+++ b/cui/source/dialogs/srchxtra.cxx
@@ -114,9 +114,7 @@ SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
m_xAttrLB->set_size_request(m_xAttrLB->get_approximate_digit_width() * 50,
m_xAttrLB->get_height_rows(12));
- std::vector<int> aWidths;
- aWidths.push_back(m_xAttrLB->get_checkbox_column_width());
- m_xAttrLB->set_column_fixed_widths(aWidths);
+ m_xAttrLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xOKBtn->connect_clicked(LINK( this, SvxSearchAttributeDialog, OKHdl));
@@ -150,8 +148,8 @@ SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
{
m_xAttrLB->append();
const int nRow = m_xAttrLB->n_children() - 1;
- m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 1);
+ m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 0);
m_xAttrLB->set_id(nRow, OUString::number(nSlot));
}
else
@@ -176,7 +174,7 @@ IMPL_LINK_NOARG(SvxSearchAttributeDialog, OKHdl, weld::Button&, void)
for (int i = 0, nCount = m_xAttrLB->n_children(); i < nCount; ++i)
{
sal_uInt16 nSlot = m_xAttrLB->get_id(i).toUInt32();
- bool bChecked = m_xAttrLB->get_toggle(i, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xAttrLB->get_toggle(i) == TRISTATE_TRUE;
sal_uInt16 j;
for ( j = rList.Count(); j; )
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index 7b9fe841620a..afd25c1238a3 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -338,7 +338,7 @@ public:
void set_dropdown(int row, int col) { m_xControl->set_image(row, *m_xDropDown, col); }
void set_id(int row, const OUString& rId) { m_xControl->set_id(row, rId); }
void clear() { m_xControl->clear(); } //need frees ?
- void set_toggle(int row, TriState eState, int col) { m_xControl->set_toggle(row, eState, col); }
+ void set_toggle(int row, TriState eState) { m_xControl->set_toggle(row, eState); }
void scroll_to_row(int pos) { m_xControl->scroll_to_row(pos); }
void select(int pos) { m_xControl->select(pos); }
@@ -455,15 +455,14 @@ protected:
void InsertEntryIntoUI(SvxConfigEntry* pNewEntryData,
weld::TreeView& rTreeView, int nPos,
- int nStartCol);
+ bool bMenu = false);
void InsertEntryIntoUI(SvxConfigEntry* pNewEntryData,
weld::TreeView& rTreeView, weld::TreeIter& rIter,
- int nStartCol);
+ bool bMenu = false);
void InsertEntryIntoNotebookbarTabUI(const OUString& sClassId, const OUString& sUIItemId,
const OUString& sUIItemCommand,
- weld::TreeView& rTreeView, weld::TreeIter& rIter,
- int nStartCol);
+ weld::TreeView& rTreeView, weld::TreeIter& rIter);
SvxEntries* FindParentForChild( SvxEntries* pParentEntries,
SvxConfigEntry* pChildData );
diff --git a/cui/source/options/certpath.cxx b/cui/source/options/certpath.cxx
index 3b491dadaf89..630f5e0710fe 100644
--- a/cui/source/options/certpath.cxx
+++ b/cui/source/options/certpath.cxx
@@ -29,18 +29,12 @@ CertPathDialog::CertPathDialog(weld::Window* pParent)
, m_sAddDialogText(m_xBuilder->weld_label("certdir")->get_label())
, m_sManualLabel(m_xBuilder->weld_label("manual")->get_label())
{
- // these are just used to get translated strings
-
m_xCertPathList->set_size_request(m_xCertPathList->get_approximate_digit_width() * 70,
m_xCertPathList->get_height_rows(6));
- std::vector<int> aWidths;
- aWidths.push_back(m_xCertPathList->get_checkbox_column_width());
- aWidths.push_back(m_xCertPathList->get_approximate_digit_width() * 20);
- m_xCertPathList->set_column_fixed_widths(aWidths);
- m_xCertPathList->set_toggle_columns_as_radio();
-
+ m_xCertPathList->enable_toggle_buttons(weld::ColumnToggleType::Radio);
m_xCertPathList->connect_toggled(LINK(this, CertPathDialog, CheckHdl_Impl));
+
m_xManualButton->connect_clicked( LINK( this, CertPathDialog, ManualHdl_Impl ) );
m_xOKButton->connect_clicked( LINK( this, CertPathDialog, OKHdl_Impl ) );
@@ -159,7 +153,7 @@ IMPL_LINK(CertPathDialog, CheckHdl_Impl, const weld::TreeView::iter_col&, rRowCo
void CertPathDialog::HandleEntryChecked(int nRow)
{
- const bool bChecked = m_xCertPathList->get_toggle(nRow, 0) == TRISTATE_TRUE;
+ const bool bChecked = m_xCertPathList->get_toggle(nRow) == TRISTATE_TRUE;
if (bChecked)
{
// we have radio button behavior -> so uncheck the other entries
@@ -168,7 +162,7 @@ void CertPathDialog::HandleEntryChecked(int nRow)
for (int i = 0; i < nCount; ++i)
{
if (i != nRow)
- m_xCertPathList->set_toggle(i, TRISTATE_FALSE, 0);
+ m_xCertPathList->set_toggle(i, TRISTATE_FALSE);
}
}
}
@@ -182,12 +176,12 @@ void CertPathDialog::AddCertPath(const OUString &rProfile, const OUString &rPath
//already exists, just select the original one
if (sCertPath == rPath)
{
- const bool bWantSelected = bSelect || m_xCertPathList->get_toggle(i, 0);
- m_xCertPathList->set_toggle(i, bWantSelected ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ const bool bWantSelected = bSelect || m_xCertPathList->get_toggle(i);
+ m_xCertPathList->set_toggle(i, bWantSelected ? TRISTATE_TRUE : TRISTATE_FALSE);
HandleEntryChecked(i);
return;
}
- else if (m_xCertPathList->get_text(i, 1) == rProfile)
+ else if (m_xCertPathList->get_text(i, 0) == rProfile)
nRow = i;
}
@@ -199,9 +193,9 @@ void CertPathDialog::AddCertPath(const OUString &rProfile, const OUString &rPath
m_xCertPathList->append();
nRow = m_xCertPathList->n_children() - 1;
}
- m_xCertPathList->set_toggle(nRow, bSelect ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xCertPathList->set_text(nRow, rProfile, 1);
- m_xCertPathList->set_text(nRow, rPath, 2);
+ m_xCertPathList->set_toggle(nRow, bSelect ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xCertPathList->set_text(nRow, rProfile, 0);
+ m_xCertPathList->set_text(nRow, rPath, 1);
m_xCertPathList->set_id(nRow, rPath);
HandleEntryChecked(nRow);
}
diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx
index d6e724fa4a95..d0bb9ffac941 100644
--- a/cui/source/options/fontsubs.cxx
+++ b/cui/source/options/fontsubs.cxx
@@ -54,14 +54,15 @@ SvxFontSubstTabPage::SvxFontSubstTabPage(weld::Container* pPage, weld::DialogCon
m_xCheckLB->set_size_request(m_xCheckLB->get_approximate_digit_width() * 60,
m_xCheckLB->get_height_rows(8));
+ m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xCheckLB->set_help_id(HID_OFA_FONT_SUBST_CLB);
m_xCheckLB->set_selection_mode(SelectionMode::Multiple);
setColSizes(m_xCheckLB->get_size_request());
m_xCheckLB->connect_size_allocate(LINK(this, SvxFontSubstTabPage, ResizeHdl));
+ m_xCheckLB->set_centered_column(0);
m_xCheckLB->set_centered_column(1);
- m_xCheckLB->set_centered_column(2);
Link<weld::ComboBox&,void> aLink2(LINK(this, SvxFontSubstTabPage, SelectComboBoxHdl));
Link<weld::Button&,void> aClickLink(LINK(this, SvxFontSubstTabPage, ClickHdl));
@@ -114,15 +115,14 @@ IMPL_LINK(SvxFontSubstTabPage, HeaderBarClick, int, nColumn, void)
void SvxFontSubstTabPage::setColSizes(const Size& rSize)
{
- int nW1 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(3)).Width();
- int nW2 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(4)).Width();
+ int nW1 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(2)).Width();
+ int nW2 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(3)).Width();
int nMax = std::max( nW1, nW2 ) + 6; // width of the longest header + a little offset
int nMin = m_xCheckLB->get_checkbox_column_width();
nMax = std::max(nMax, nMin);
const int nDoubleMax = 2*nMax;
const int nRest = rSize.Width() - nDoubleMax;
std::vector<int> aWidths;
- aWidths.push_back(1); // just abandon the built-in column for checkbuttons and use another
aWidths.push_back(nMax);
aWidths.push_back(nMax);
aWidths.push_back(nRest/2);
@@ -152,10 +152,10 @@ bool SvxFontSubstTabPage::FillItemSet( SfxItemSet* )
m_xCheckLB->all_foreach([this](weld::TreeIter& rIter) {
SubstitutionStruct aAdd;
- aAdd.sFont = m_xCheckLB->get_text(rIter, 3);
- aAdd.sReplaceBy = m_xCheckLB->get_text(rIter, 4);
- aAdd.bReplaceAlways = m_xCheckLB->get_toggle(rIter, 1);
- aAdd.bReplaceOnScreenOnly = m_xCheckLB->get_toggle(rIter, 2);
+ aAdd.sFont = m_xCheckLB->get_text(rIter, 2);
+ aAdd.sReplaceBy = m_xCheckLB->get_text(rIter, 3);
+ aAdd.bReplaceAlways = m_xCheckLB->get_toggle(rIter, 0);
+ aAdd.bReplaceOnScreenOnly = m_xCheckLB->get_toggle(rIter, 1);
m_xConfig->AddSubstitution(aAdd);
return false;
});
@@ -215,17 +215,17 @@ void SvxFontSubstTabPage::Reset( const SfxItemSet* )
{
m_xCheckLB->append(xIter.get());
const SubstitutionStruct* pSubs = m_xConfig->GetSubstitution(i);
- m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
- m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 2);
- m_xCheckLB->set_text(*xIter, pSubs->sFont, 3);
- m_xCheckLB->set_text(*xIter, pSubs->sReplaceBy, 4);
+ m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
+ m_xCheckLB->set_text(*xIter, pSubs->sFont, 2);
+ m_xCheckLB->set_text(*xIter, pSubs->sReplaceBy, 3);
}
m_xCheckLB->thaw();
m_xCheckLB->make_sorted();
- m_xCheckLB->set_sort_column(3);
- m_xCheckLB->set_sort_indicator(TRISTATE_TRUE, 3);
+ m_xCheckLB->set_sort_column(2);
+ m_xCheckLB->set_sort_indicator(TRISTATE_TRUE, 2);
CheckEnable();
@@ -297,7 +297,7 @@ void SvxFontSubstTabPage::SelectHdl(const weld::Widget* pWin)
if (nPos != -1)
{
// change entry
- m_xCheckLB->set_text(nPos, m_xFont2CB->get_active_text(), 4);
+ m_xCheckLB->set_text(nPos, m_xFont2CB->get_active_text(), 3);
m_xCheckLB->select(nPos);
}
else
@@ -308,10 +308,10 @@ void SvxFontSubstTabPage::SelectHdl(const weld::Widget* pWin)
std::unique_ptr<weld::TreeIter> xIter(m_xCheckLB->make_iterator());
m_xCheckLB->append(xIter.get());
+ m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 0);
m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 1);
- m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 2);
- m_xCheckLB->set_text(*xIter, sFont1, 3);
- m_xCheckLB->set_text(*xIter, sFont2, 4);
+ m_xCheckLB->set_text(*xIter, sFont1, 2);
+ m_xCheckLB->set_text(*xIter, sFont2, 3);
m_xCheckLB->select(*xIter);
}
}
diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index d9a54e0f250d..16d30cf5bdce 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -88,15 +88,16 @@ SvxJavaOptionsPage::SvxJavaOptionsPage(weld::Container* pPage, weld::DialogContr
m_xJavaList->set_size_request(m_xJavaList->get_approximate_digit_width() * 30,
m_xJavaList->get_height_rows(8));
+ m_xJavaList->enable_toggle_buttons(weld::ColumnToggleType::Radio);
+ m_xJavaList->connect_toggled( LINK( this, SvxJavaOptionsPage, CheckHdl_Impl ) );
+ m_xJavaList->connect_changed( LINK( this, SvxJavaOptionsPage, SelectHdl_Impl ) );
+
std::vector<int> aWidths;
aWidths.push_back(m_xJavaList->get_checkbox_column_width());
aWidths.push_back(m_xJavaList->get_pixel_size("Sun Microsystems Inc.").Width());
m_xJavaList->set_column_fixed_widths(aWidths);
- m_xJavaList->set_toggle_columns_as_radio();
m_xJavaEnableCB->connect_clicked( LINK( this, SvxJavaOptionsPage, EnableHdl_Impl ) );
- m_xJavaList->connect_toggled( LINK( this, SvxJavaOptionsPage, CheckHdl_Impl ) );
- m_xJavaList->connect_changed( LINK( this, SvxJavaOptionsPage, SelectHdl_Impl ) );
m_xAddBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, AddHdl_Impl ) );
m_xParameterBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, ParameterHdl_Impl ) );
m_xClassPathBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, ClassPathHdl_Impl ) );
diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx
index da4aeb831603..c925daba276d 100644
--- a/cui/source/options/optlingu.cxx
+++ b/cui/source/options/optlingu.cxx
@@ -849,12 +849,9 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController*
, m_xLinguOptionsEditPB(m_xBuilder->weld_button("linguoptionsedit"))
, m_xMoreDictsLink(m_xBuilder->weld_link_button("moredictslink"))
{
- std::vector<int> aWidths;
- aWidths.push_back(m_xLinguModulesCLB->get_checkbox_column_width());
-
- m_xLinguModulesCLB->set_column_fixed_widths(aWidths);
- m_xLinguDicsCLB->set_column_fixed_widths(aWidths);
- m_xLinguOptionsCLB->set_column_fixed_widths(aWidths);
+ m_xLinguModulesCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
+ m_xLinguDicsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
+ m_xLinguOptionsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xLinguModulesCLB->connect_changed( LINK( this, SvxLinguTabPage, SelectHdl_Impl ));
m_xLinguModulesCLB->connect_row_activated(LINK(this, SvxLinguTabPage, BoxDoubleClickHdl_Impl));
@@ -994,7 +991,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
DicUserData aData(m_xLinguDicsCLB->get_id(i).toUInt32());
if (aData.GetEntryId() < nDics)
{
- bool bChecked = m_xLinguDicsCLB->get_toggle(i, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xLinguDicsCLB->get_toggle(i) == TRISTATE_TRUE;
uno::Reference< XDictionary > xDic( aDics.getConstArray()[ i ] );
if (xDic.is())
{
@@ -1027,7 +1024,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
Any aAny;
if (aData.IsCheckable())
{
- bool bChecked = m_xLinguOptionsCLB->get_toggle(j, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xLinguOptionsCLB->get_toggle(j) == TRISTATE_TRUE;
aAny <<= bChecked;
}
else if (aData.HasNumericValue())
@@ -1052,7 +1049,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
}
// automatic spell checking
- bool bNewAutoCheck = m_xLinguOptionsCLB->get_toggle(EID_SPELL_AUTO, 0) == TRISTATE_TRUE;
+ bool bNewAutoCheck = m_xLinguOptionsCLB->get_toggle(EID_SPELL_AUTO) == TRISTATE_TRUE;
const SfxPoolItem* pOld = GetOldItem( *rCoreSet, SID_AUTOSPELL_CHECK );
if ( !pOld || static_cast<const SfxBoolItem*>(pOld)->GetValue() != bNewAutoCheck )
{
@@ -1096,8 +1093,8 @@ void SvxLinguTabPage::AddDicBoxEntry(
int nEntry = m_xLinguDicsCLB->n_children() - 1;
DicUserData aData( GetDicUserData( rxDic, nIdx ) );
m_xLinguDicsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
- m_xLinguDicsCLB->set_toggle(nEntry, aData.IsChecked() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguDicsCLB->set_text(nEntry, aTxt, 1); // append at end
+ m_xLinguDicsCLB->set_toggle(nEntry, aData.IsChecked() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguDicsCLB->set_text(nEntry, aTxt, 0); // append at end
m_xLinguDicsCLB->thaw();
}
@@ -1139,8 +1136,8 @@ void SvxLinguTabPage::UpdateModulesBox_Impl()
const ServiceInfo_Impl &rInfo = rAllDispSrvcArr[i];
m_xLinguModulesCLB->append();
m_xLinguModulesCLB->set_id(i, OUString::number(reinterpret_cast<sal_Int64>(&rInfo)));
- m_xLinguModulesCLB->set_toggle(i, rInfo.bConfigured ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguModulesCLB->set_text(i, rInfo.sDisplayName, 1);
+ m_xLinguModulesCLB->set_toggle(i, rInfo.bConfigured ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguModulesCLB->set_text(i, rInfo.sDisplayName, 0);
}
if (nDispSrvcCount)
{
@@ -1179,8 +1176,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
if (pItem)
bVal = static_cast<const SfxBoolItem *>(pItem)->GetValue();
nUserData = OptionsUserData( EID_SPELL_AUTO, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sSpellAuto, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sSpellAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1188,8 +1185,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_GRAMMAR_AUTO ) >>= bVal;
nUserData = OptionsUserData( EID_GRAMMAR_AUTO, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sGrammarAuto, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sGrammarAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1197,8 +1194,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_SPELL_UPPER_CASE ) >>= bVal;
nUserData = OptionsUserData( EID_CAPITAL_WORDS, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sCapitalWords, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sCapitalWords, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1206,8 +1203,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_SPELL_WITH_DIGITS ) >>= bVal;
nUserData = OptionsUserData( EID_WORDS_WITH_DIGITS, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sWordsWithDigits, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sWordsWithDigits, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1215,8 +1212,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_SPELL_SPECIAL ) >>= bVal;
nUserData = OptionsUserData( EID_SPELL_SPECIAL, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sSpellSpecial, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sSpellSpecial, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1224,7 +1221,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_HYPH_MIN_WORD_LENGTH ) >>= nVal;
nUserData = OptionsUserData( EID_NUM_MIN_WORDLEN, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
- m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
nUPN_HYPH_MIN_WORD_LENGTH = nEntry;
@@ -1240,7 +1237,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
if (pHyp)
nVal = static_cast<sal_Int16>(pHyp->GetMinLead());
nUserData = OptionsUserData( EID_NUM_PRE_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
- m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
nUPN_HYPH_MIN_LEADING = nEntry;
@@ -1251,7 +1248,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
if (pHyp)
nVal = static_cast<sal_Int16>(pHyp->GetMinTrail());
nUserData = OptionsUserData( EID_NUM_POST_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
- m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
nUPN_HYPH_MIN_TRAILING = nEntry;
@@ -1260,8 +1257,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_HYPH_AUTO ) >>= bVal;
nUserData = OptionsUserData( EID_HYPH_AUTO, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sHyphAuto, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sHyphAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->append();
@@ -1269,8 +1266,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
aLngCfg.GetProperty( UPN_IS_HYPH_SPECIAL ) >>= bVal;
nUserData = OptionsUserData( EID_HYPH_SPECIAL, false, 0, true, bVal).GetUserData();
- m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLinguOptionsCLB->set_text(nEntry, sHyphSpecial, 1);
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sHyphSpecial, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
m_xLinguOptionsCLB->thaw();
@@ -1312,15 +1309,15 @@ IMPL_LINK(SvxLinguTabPage, ModulesBoxCheckButtonHdl_Impl, const weld::TreeView::
{
if (!pLinguData)
return;
- pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(rRowCol.first, 1),
- m_xLinguModulesCLB->get_toggle(rRowCol.first, 0) == TRISTATE_TRUE);
+ pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(rRowCol.first),
+ m_xLinguModulesCLB->get_toggle(rRowCol.first) == TRISTATE_TRUE);
}
IMPL_LINK(SvxLinguTabPage, DicsBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void)
{
const uno::Reference<XDictionary> &rDic = aDics.getConstArray()[m_xLinguDicsCLB->get_iter_index_in_parent(rRowCol.first)];
if (LinguMgr::GetIgnoreAllList() == rDic)
- m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE, 0);
+ m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE);
}
IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
@@ -1473,11 +1470,11 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
aData.SetNumericValue( static_cast<sal_uInt8>(nVal) ); //! sets IsModified !
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
if (nEntry == nUPN_HYPH_MIN_WORD_LENGTH)
- m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 0);
else if (nEntry == nUPN_HYPH_MIN_LEADING)
- m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 0);
else if (nEntry == nUPN_HYPH_MIN_TRAILING)
- m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 1);
+ m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
}
}
@@ -1556,9 +1553,7 @@ SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& r
m_xModulesCLB->set_size_request(m_xModulesCLB->get_approximate_digit_width() * 40,
m_xModulesCLB->get_height_rows(12));
- std::vector<int> aWidths;
- aWidths.push_back(m_xModulesCLB->get_checkbox_column_width());
- m_xModulesCLB->set_column_fixed_widths(aWidths);
+ m_xModulesCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
pDefaultLinguData.reset( new SvxLinguData_Impl( rLinguData ) );
@@ -1639,7 +1634,7 @@ IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const weld::TreeView::iter
pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
if (!pData->IsParent() && pData->GetType() == TYPE_HYPH && i != nPos)
{
- m_xModulesCLB->set_toggle(i, TRISTATE_FALSE, 0);
+ m_xModulesCLB->set_toggle(i, TRISTATE_FALSE);
}
}
}
@@ -1696,8 +1691,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
OUString* pChange = aChange.getArray();
pChange[nStart] = pData->GetImplName();
bChanged |= pData->GetIndex() != nLocalIndex ||
- static_cast<TriState>(pData->IsChecked()) != m_xModulesCLB->get_toggle(i, 0);
- if (m_xModulesCLB->get_toggle(i, 0))
+ static_cast<TriState>(pData->IsChecked()) != m_xModulesCLB->get_toggle(i);
+ if (m_xModulesCLB->get_toggle(i))
nStart++;
++nLocalIndex;
}
@@ -1728,8 +1723,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pUserData)));
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_text(nRow, sSpell, 1);
- m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+ m_xModulesCLB->set_text(nRow, sSpell, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
Sequence< OUString > aNames( rLinguData.GetSortedImplNames( eCurLanguage, TYPE_SPELL ) );
@@ -1765,9 +1760,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xModulesCLB->set_text(nRow, aTxt, 1);
- m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+ m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xModulesCLB->set_text(nRow, aTxt, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, false, 0);
++nRow;
}
}
@@ -1778,8 +1773,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_text(nRow, sGrammar, 1);
- m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+ m_xModulesCLB->set_text(nRow, sGrammar, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_GRAMMAR );
@@ -1816,9 +1811,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xModulesCLB->set_text(nRow, aTxt, 1);
- m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+ m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xModulesCLB->set_text(nRow, aTxt, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, false, 0);
++nRow;
}
}
@@ -1829,8 +1824,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_text(nRow, sHyph, 1);
- m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+ m_xModulesCLB->set_text(nRow, sHyph, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_HYPH );
@@ -1866,9 +1861,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xModulesCLB->set_text(nRow, aTxt, 1);
- m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+ m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xModulesCLB->set_text(nRow, aTxt, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, false, 0);
++nRow;
}
}
@@ -1879,8 +1874,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_text(nRow, sThes, 1);
- m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+ m_xModulesCLB->set_text(nRow, sThes, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_THES );
@@ -1916,9 +1911,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
- m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xModulesCLB->set_text(nRow, aTxt, 1);
- m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+ m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xModulesCLB->set_text(nRow, aTxt, 0);
+ m_xModulesCLB->set_text_emphasis(nRow, false, 0);
++nRow;
}
}
@@ -1937,7 +1932,7 @@ IMPL_LINK( SvxEditModulesDlg, UpDownHdl_Impl, weld::Button&, rBtn, void )
OUString sId(m_xModulesCLB->get_id(nCurPos));
OUString sStr(m_xModulesCLB->get_text(nCurPos));
- bool bIsChecked = m_xModulesCLB->get_toggle(nCurPos, nCurPos);
+ bool bIsChecked = m_xModulesCLB->get_toggle(nCurPos);
m_xModulesCLB->remove(nCurPos);
@@ -1945,7 +1940,7 @@ IMPL_LINK( SvxEditModulesDlg, UpDownHdl_Impl, weld::Button&, rBtn, void )
m_xModulesCLB->insert_text(nDestPos, sStr);
m_xModulesCLB->set_id(nDestPos, sId);
- m_xModulesCLB->set_toggle(nDestPos, bIsChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xModulesCLB->set_toggle(nDestPos, bIsChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xModulesCLB->thaw();
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 4f1c0f3632e0..807f0cd2d284 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -189,9 +189,7 @@ OfaAutocorrOptionsPage::OfaAutocorrOptionsPage(weld::Container* pPage, weld::Dia
, m_sAccidentalCaps(CuiResId(RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
, m_xCheckLB(m_xBuilder->weld_tree_view("checklist"))
{
- std::vector<int> aWidths;
- aWidths.push_back(m_xCheckLB->get_checkbox_column_width());
- m_xCheckLB->set_column_fixed_widths(aWidths);
+ m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xCheckLB->set_size_request(-1, m_xCheckLB->get_height_rows(10));
}
@@ -215,14 +213,14 @@ bool OfaAutocorrOptionsPage::FillItemSet( SfxItemSet* )
ACFlags nFlags = pAutoCorrect->GetFlags();
int nPos = 0;
- pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
bool bReturn = nFlags != pAutoCorrect->GetFlags();
if(bReturn )
@@ -243,8 +241,8 @@ void OfaAutocorrOptionsPage::InsertEntry(const OUString& rTxt)
{
m_xCheckLB->append();
const int nRow = m_xCheckLB->n_children() - 1;
- m_xCheckLB->set_toggle(nRow, TRISTATE_FALSE, CBCOL_FIRST);
- m_xCheckLB->set_text(nRow, rTxt, 1);
+ m_xCheckLB->set_toggle(nRow, TRISTATE_FALSE);
+ m_xCheckLB->set_text(nRow, rTxt, 0);
}
void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
@@ -265,14 +263,14 @@ void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
InsertEntry(m_sAccidentalCaps);
int nPos = 0;
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::Autocorrect) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartWord) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartSentence) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
- m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::Autocorrect) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartWord) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartSentence) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->thaw();
}
@@ -374,6 +372,7 @@ OfaSwAutoFmtOptionsPage::OfaSwAutoFmtOptionsPage(weld::Container* pPage, weld::D
{
m_xCheckLB->connect_changed(LINK(this, OfaSwAutoFmtOptionsPage, SelectHdl));
m_xCheckLB->connect_row_activated(LINK(this, OfaSwAutoFmtOptionsPage, DoubleClickEditHdl));
+ m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
std::vector<int> aWidths;
aWidths.push_back(m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(0)).Width() * 2);
@@ -1578,6 +1577,7 @@ OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController*
if ( bShowSWOptions )
{
+ m_xSwCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
std::vector<int> aWidths;
aWidths.push_back(m_xSwCheckLB->get_pixel_size(m_xSwCheckLB->get_column_title(0)).Width() * 2);
aWidths.push_back(m_xSwCheckLB->get_pixel_size(m_xSwCheckLB->get_column_title(1)).Width() * 2);
@@ -1586,9 +1586,7 @@ OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController*
}
else
{
- std::vector<int> aWidths;
- aWidths.push_back(m_xSwCheckLB->get_checkbox_column_width());
- m_xCheckLB->set_column_fixed_widths(aWidths);
+ m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xSwCheckLB->hide();
}
@@ -1619,9 +1617,9 @@ bool OfaQuoteTabPage::FillItemSet( SfxItemSet* )
if (m_xCheckLB->get_visible())
{
int nPos = 0;
- pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
- pAutoCorrect->SetAutoCorrFlag(ACFlags::TransliterateRTL, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::TransliterateRTL, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
}
bool bModified = false;
@@ -1723,14 +1721,16 @@ void OfaQuoteTabPage::Reset( const SfxItemSet* )
m_xCheckLB->freeze();
m_xCheckLB->clear();
- CreateEntry(*m_xCheckLB, sNonBrkSpace, CBCOL_FIRST, 1);
- CreateEntry(*m_xCheckLB, sOrdinal, CBCOL_FIRST, 1);
- CreateEntry(*m_xCheckLB, sTransliterateRTL, CBCOL_FIRST, 1);
-
int nPos = 0;
- m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::AddNonBrkSpace) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
- m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::ChgOrdinalNumber) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
- m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::TransliterateRTL) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
+ m_xCheckLB->append();
+ m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::AddNonBrkSpace) ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos++, sNonBrkSpace, 0);
+ m_xCheckLB->append();
+ m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::ChgOrdinalNumber) ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos++, sOrdinal, 0);
+ m_xCheckLB->append();
+ m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::TransliterateRTL) ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos++, sTransliterateRTL, 0);
m_xCheckLB->thaw();
}
@@ -2134,9 +2134,7 @@ OfaSmartTagOptionsTabPage::OfaSmartTagOptionsTabPage(weld::Container* pPage, wel
m_xSmartTagTypesLB->set_size_request(m_xSmartTagTypesLB->get_approximate_digit_width() * 50,
m_xSmartTagTypesLB->get_height_rows(6));
- std::vector<int> aWidths;
- aWidths.push_back(m_xSmartTagTypesLB->get_checkbox_column_width());
- m_xSmartTagTypesLB->set_column_fixed_widths(aWidths);
+ m_xSmartTagTypesLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
// set the handlers:
m_xMainCB->connect_toggled(LINK(this, OfaSmartTagOptionsTabPage, CheckHdl));
@@ -2218,8 +2216,8 @@ void OfaSmartTagOptionsTabPage::FillListBox( const SmartTagMgr& rSmartTagMgr )
m_xSmartTagTypesLB->append();
const int nRow = m_xSmartTagTypesLB->n_children() - 1;
const bool bCheck = rSmartTagMgr.IsSmartTagTypeEnabled( aSmartTagType );
- m_xSmartTagTypesLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
- m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 1);
+ m_xSmartTagTypesLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 0);
m_xSmartTagTypesLB->set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(new ImplSmartTagLBUserData(aSmartTagType, xRec, j))));
}
}
@@ -2293,7 +2291,7 @@ bool OfaSmartTagOptionsTabPage::FillItemSet( SfxItemSet* )
for (int i = 0; i < nCount; ++i)
{
const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i).toInt64());
- const bool bChecked = m_xSmartTagTypesLB->get_toggle(i, CBCOL_FIRST) == TRISTATE_TRUE;
+ const bool bChecked = m_xSmartTagTypesLB->get_toggle(i) == TRISTATE_TRUE;
const bool bIsCurrentlyEnabled = pSmartTagMgr->IsSmartTagTypeEnabled( pUserData->maSmartTagType );
bModifiedSmartTagTypes = bModifiedSmartTagTypes || ( !bChecked != !bIsCurrentlyEnabled );
diff --git a/cui/uiconfig/ui/applyautofmtpage.ui b/cui/uiconfig/ui/applyautofmtpage.ui
index 45ca15dd7788..35abba54df6f 100644
--- a/cui/uiconfig/ui/applyautofmtpage.ui
+++ b/cui/uiconfig/ui/applyautofmtpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkTreeStore" id="liststore1">
@@ -8,6 +8,8 @@
<column type="gboolean"/>
<!-- column-name check2 -->
<column type="gboolean"/>
+ <!-- column-name check3 -->
+ <column type="gboolean"/>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name id -->
@@ -16,10 +18,14 @@
<column type="gboolean"/>
<!-- column-name checkvis2 -->
<column type="gboolean"/>
+ <!-- column-name checkvis3 -->
+ <column type="gboolean"/>
<!-- column-name checktri1 -->
<column type="gboolean"/>
<!-- column-name checktri2 -->
<column type="gboolean"/>
+ <!-- column-name checktri3 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkBox" id="ApplyAutoFmtPage">
@@ -122,12 +128,19 @@
<property name="title" translatable="yes" context="applyautofmtpage|m">[M]</property>
<property name="alignment">0.5</property>
<child>
- <object class="GtkCellRendererToggle" id="cellrenderer1"/>
+ <object class="GtkCellRendererToggle" id="cellrenderer0"/>
<attributes>
- <attribute name="visible">4</attribute>
+ <attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer1"/>
+ <attributes>
+ <attribute name="visible">6</attribute>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
</object>
</child>
<child>
@@ -139,8 +152,8 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer2"/>
<attributes>
- <attribute name="visible">5</attribute>
- <attribute name="active">1</attribute>
+ <attribute name="visible">7</attribute>
+ <attribute name="active">2</attribute>
</attributes>
</child>
</object>
@@ -152,7 +165,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer3"/>
<attributes>
- <attribute name="text">2</attribute>
+ <attribute name="text">3</attribute>
</attributes>
</child>
</object>
diff --git a/cui/uiconfig/ui/applylocalizedpage.ui b/cui/uiconfig/ui/applylocalizedpage.ui
index 57a8869834ae..61ca9e4d4300 100644
--- a/cui/uiconfig/ui/applylocalizedpage.ui
+++ b/cui/uiconfig/ui/applylocalizedpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkTreeStore" id="liststore1">
@@ -8,6 +8,8 @@
<column type="gboolean"/>
<!-- column-name check2 -->
<column type="gboolean"/>
+ <!-- column-name check3 -->
+ <column type="gboolean"/>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name id -->
@@ -16,10 +18,14 @@
<column type="gboolean"/>
<!-- column-name checkvis2 -->
<column type="gboolean"/>
+ <!-- column-name checkvis3 -->
+ <column type="gboolean"/>
<!-- column-name checktri1 -->
<column type="gboolean"/>
<!-- column-name checktri2 -->
<column type="gboolean"/>
+ <!-- column-name checktri3 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkTreeStore" id="liststore2">
@@ -86,10 +92,17 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer1"/>
<attributes>
- <attribute name="visible">4</attribute>
+ <attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer9"/>
+ <attributes>
+ <attribute name="visible">6</attribute>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
</object>
</child>
<child>
@@ -101,8 +114,8 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer2"/>
<attributes>
- <attribute name="visible">5</attribute>
- <attribute name="active">1</attribute>
+ <attribute name="visible">7</attribute>
+ <attribute name="active">2</attribute>
</attributes>
</child>
</object>
@@ -114,7 +127,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer3"/>
<attributes>
- <attribute name="text">2</attribute>
+ <attribute name="text">3</attribute>
</attributes>
</child>
</object>
diff --git a/cui/uiconfig/ui/certdialog.ui b/cui/uiconfig/ui/certdialog.ui
index 75642d980c2e..de5a0d085e51 100644
--- a/cui/uiconfig/ui/certdialog.ui
+++ b/cui/uiconfig/ui/certdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkTreeStore" id="liststore1">
@@ -26,7 +26,7 @@
<property name="default_width">0</property>
<property name="type_hint">normal</property>
<property name="skip_pager_hint">True</property>
- <child>
+ <child type="titlebar">
<placeholder/>
</child>
<child internal-child="vbox">
@@ -193,6 +193,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
<property name="search_column">0</property>
@@ -204,7 +205,7 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn4">
<property name="resizable">True</property>
<property name="spacing">6</property>
- <property name="alignment">0.5</property>
+ <property name="title" translatable="yes" context="certdialog|profile">Profile</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5">
<property name="radio">True</property>
@@ -214,13 +215,6 @@
<attribute name="active">0</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn5">
- <property name="resizable">True</property>
- <property name="spacing">6</property>
- <property name="title" translatable="yes" context="certdialog|profile">Profile</property>
<child>
<object class="GtkCellRendererText" id="cellrenderer4"/>
<attributes>
diff --git a/cui/uiconfig/ui/menuassignpage.ui b/cui/uiconfig/ui/menuassignpage.ui
index e89bc1093739..cfa87f1cf95e 100644
--- a/cui/uiconfig/ui/menuassignpage.ui
+++ b/cui/uiconfig/ui/menuassignpage.ui
@@ -557,22 +557,12 @@
<attribute name="active">0</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn9">
- <property name="spacing">6</property>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext9"/>
<attributes>
<attribute name="pixbuf">1</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn10">
- <property name="spacing">6</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext10"/>
<attributes>
@@ -620,10 +610,6 @@
<attribute name="pixbuf">0</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn33">
<child>
<object class="GtkCellRendererText" id="cellrenderertext22"/>
<attributes>
diff --git a/cui/uiconfig/ui/multipathdialog.ui b/cui/uiconfig/ui/multipathdialog.ui
index 0f1e73094e20..33ceed50e468 100644
--- a/cui/uiconfig/ui/multipathdialog.ui
+++ b/cui/uiconfig/ui/multipathdialog.ui
@@ -181,7 +181,7 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn4">
<property name="resizable">True</property>
<property name="spacing">6</property>
- <property name="alignment">0.5</property>
+ <property name="title" translatable="yes" context="multipathdialog|pathlist">Path list</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5">
<property name="radio">True</property>
@@ -191,13 +191,6 @@
<attribute name="active">0</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn5">
- <property name="resizable">True</property>
- <property name="spacing">6</property>
- <property name="title" translatable="yes" context="multipathdialog|pathlist">Path list</property>
<child>
<object class="GtkCellRendererText" id="cellrenderer4"/>
<attributes>
diff --git a/cui/uiconfig/ui/optadvancedpage.ui b/cui/uiconfig/ui/optadvancedpage.ui
index 44baae1aa330..f5857937b478 100644
--- a/cui/uiconfig/ui/optadvancedpage.ui
+++ b/cui/uiconfig/ui/optadvancedpage.ui
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkTreeStore" id="liststore1">
<columns>
<!-- column-name check1 -->
<column type="gboolean"/>
+ <!-- column-name check2 -->
+ <column type="gboolean"/>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name text2 -->
@@ -14,8 +16,12 @@
<column type="gchararray"/>
<!-- column-name checkvis1 -->
<column type="gboolean"/>
+ <!-- column-name checkvis2 -->
+ <column type="gboolean"/>
<!-- column-name checktri1 -->
<column type="gboolean"/>
+ <!-- column-name checktri2 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkBox" id="OptAdvancedPage">
@@ -194,10 +200,19 @@
<property name="radio">True</property>
</object>
<attributes>
- <attribute name="visible">4</attribute>
+ <attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer9">
+ <property name="radio">True</property>
+ </object>
+ <attributes>
+ <attribute name="visible">6</attribute>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
</object>
</child>
<child>
@@ -208,7 +223,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer4"/>
<attributes>
- <attribute name="text">1</attribute>
+ <attribute name="text">2</attribute>
</attributes>
</child>
</object>
@@ -221,7 +236,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer1"/>
<attributes>
- <attribute name="text">2</attribute>
+ <attribute name="text">3</attribute>
</attributes>
</child>
</object>
@@ -275,6 +290,9 @@
<property name="top_attach">0</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="left_attach">0</property>
diff --git a/cui/uiconfig/ui/optfltrembedpage.ui b/cui/uiconfig/ui/optfltrembedpage.ui
index 310127847c0f..f93b9df1402a 100644
--- a/cui/uiconfig/ui/optfltrembedpage.ui
+++ b/cui/uiconfig/ui/optfltrembedpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkTreeStore" id="liststore1">
@@ -8,18 +8,24 @@
<column type="gboolean"/>
<!-- column-name check2 -->
<column type="gboolean"/>
+ <!-- column-name check3 -->
+ <column type="gboolean"/>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name id -->
<column type="gchararray"/>
<!-- column-name checkvis1 -->
<column type="gboolean"/>
- <!-- column-name checktri1 -->
- <column type="gboolean"/>
<!-- column-name checkvis2 -->
<column type="gboolean"/>
+ <!-- column-name checkvis3 -->
+ <column type="gboolean"/>
+ <!-- column-name checktri1 -->
+ <column type="gboolean"/>
<!-- column-name checktri2 -->
<column type="gboolean"/>
+ <!-- column-name checktri3 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkGrid" id="OptFilterPage">
@@ -84,10 +90,17 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5"/>
<attributes>
- <attribute name="visible">4</attribute>
+ <attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer8"/>
+ <attributes>
+ <attribute name="visible">6</attribute>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
</object>
</child>
<child>
@@ -99,8 +112,8 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer7"/>
<attributes>
- <attribute name="visible">4</attribute>
- <attribute name="active">1</attribute>
+ <attribute name="visible">7</attribute>
+ <attribute name="active">2</attribute>
</attributes>
</child>
</object>
@@ -112,7 +125,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer4"/>
<attributes>
- <attribute name="text">2</attribute>
+ <attribute name="text">3</attribute>
</attributes>
</child>
</object>
diff --git a/cui/uiconfig/ui/optfontspage.ui b/cui/uiconfig/ui/optfontspage.ui
index 52524bd1a284..b6a82951a57d 100644
--- a/cui/uiconfig/ui/optfontspage.ui
+++ b/cui/uiconfig/ui/optfontspage.ui
@@ -137,6 +137,7 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="resizable">True</property>
<property name="spacing">6</property>
+ <property name="title" translatable="yes" context="optfontspage|always">Always</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer1"/>
<attributes>
@@ -144,13 +145,6 @@
<attribute name="active">0</attribute>
</attributes>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn4">
- <property name="resizable">True</property>
- <property name="spacing">6</property>
- <property name="title" translatable="yes" context="optfontspage|always">Always</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5"/>
<attributes>
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
index f608f850ceb4..2ec45c9b756a 100644
--- a/dbaccess/source/ui/control/tabletree.cxx
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -68,9 +68,9 @@ TableTreeListBox::TableTreeListBox(std::unique_ptr<weld::TreeView> xTreeView)
, m_bVirtualRoot(false)
, m_bNoEmptyFolders(false)
, m_bShowToggles(true)
- , m_nTextColumn(1)
, m_xTreeView(std::move(xTreeView))
{
+ m_xTreeView->enable_toggle_buttons(weld::ColumnToggleType::Check);
}
void OTableTreeListBox::implSetDefaultImages()
@@ -359,7 +359,6 @@ void OTableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConn
void TableTreeListBox::DisableCheckButtons()
{
m_bShowToggles = false;
- m_nTextColumn = 0;
}
void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConnection, const TNames& _rTables )
@@ -389,8 +388,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
m_xTreeView->insert(nullptr, -1, nullptr, &sId, nullptr, nullptr, false, xRet.get());
m_xTreeView->set_image(*xRet, sImageId, -1);
if (m_bShowToggles)
- m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE, 0);
- m_xTreeView->set_text(*xRet, sRootEntryText, m_nTextColumn);
+ m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE);
+ m_xTreeView->set_text(*xRet, sRootEntryText, 0);
+ m_xTreeView->set_text_emphasis(*xRet, false, 0);
}
if ( _rTables.empty() )
@@ -434,8 +434,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
m_xTreeView->insert(xRootEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xRet.get());
m_xTreeView->set_image(*xRet, sImageId, -1);
if (m_bShowToggles)
- m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE, 0);
- m_xTreeView->set_text(*xRet, folderName, m_nTextColumn);
+ m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE);
+ m_xTreeView->set_text(*xRet, folderName, 0);
+ m_xTreeView->set_text_emphasis(*xRet, false, 0);
}
}
}
@@ -451,14 +452,14 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
bool TableTreeListBox::isWildcardChecked(const weld::TreeIter& rEntry)
{
- return m_xTreeView->get_text_emphasis(rEntry, m_nTextColumn);
+ return m_xTreeView->get_text_emphasis(rEntry, 0);
}
void TableTreeListBox::checkWildcard(weld::TreeIter& rEntry)
{
if (!m_bShowToggles)
return;
- m_xTreeView->set_toggle(rEntry, TRISTATE_TRUE, 0);
+ m_xTreeView->set_toggle(rEntry, TRISTATE_TRUE);
checkedButton_noBroadcast(rEntry);
}
@@ -489,7 +490,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
{
if (!m_bShowToggles)
return;
- TriState eState = m_xTreeView->get_toggle(rEntry, 0);
+ TriState eState = m_xTreeView->get_toggle(rEntry);
OSL_ENSURE(TRISTATE_INDET != eState, "OTableTreeListBox::CheckButtonHdl: user action which lead to TRISTATE?");
if (m_xTreeView->iter_has_child(rEntry)) // if it has children, check those too
@@ -500,7 +501,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
bool bSiblingEntry = m_xTreeView->iter_next_sibling(*xSiblingEntry);
while (bChildEntry && (!bSiblingEntry || !xChildEntry->equal(*xSiblingEntry)))
{
- m_xTreeView->set_toggle(*xChildEntry, eState, 0);
+ m_xTreeView->set_toggle(*xChildEntry, eState);
bChildEntry = m_xTreeView->iter_next(*xChildEntry);
}
}
@@ -508,7 +509,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
if (m_xTreeView->is_selected(rEntry))
{
m_xTreeView->selected_foreach([this, eState](weld::TreeIter& rSelected){
- m_xTreeView->set_toggle(rSelected, eState, 0);
+ m_xTreeView->set_toggle(rSelected, eState);
if (m_xTreeView->iter_has_child(rSelected)) // if it has children, check those too
{
std::unique_ptr<weld::TreeIter> xChildEntry(m_xTreeView->make_iterator(&rSelected));
@@ -517,7 +518,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
bool bSiblingEntry = m_xTreeView->iter_next_sibling(*xSiblingEntry);
while (bChildEntry && (!bSiblingEntry || !xChildEntry->equal(*xSiblingEntry)))
{
- m_xTreeView->set_toggle(*xChildEntry, eState, 0);
+ m_xTreeView->set_toggle(*xChildEntry, eState);
bChildEntry = m_xTreeView->iter_next(*xChildEntry);
}
}
@@ -572,7 +573,7 @@ void TableTreeListBox::implEmphasize(const weld::TreeIter& rEntry, bool _bChecke
|| bAllObjectsEntryAffected // or it is the "all objects" entry
)
{
- m_xTreeView->set_text_emphasis(rEntry, _bChecked, m_nTextColumn);
+ m_xTreeView->set_text_emphasis(rEntry, _bChecked, 0);
}
if (_bUpdateDescendants)
@@ -710,8 +711,9 @@ void TableTreeListBox::implAddEntry(
m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xFolder.get());
m_xTreeView->set_image(*xFolder, sImageId, -1);
if (m_bShowToggles)
- m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE, 0);
- m_xTreeView->set_text(*xFolder, rFirstName, m_nTextColumn);
+ m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE);
+ m_xTreeView->set_text(*xFolder, rFirstName, 0);
+ m_xTreeView->set_text_emphasis(*xFolder, false, 0);
}
xParentEntry = std::move(xFolder);
}
@@ -727,8 +729,9 @@ void TableTreeListBox::implAddEntry(
m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xFolder.get());
m_xTreeView->set_image(*xFolder, sImageId, -1);
if (m_bShowToggles)
- m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE, 0);
- m_xTreeView->set_text(*xFolder, rSecondName, m_nTextColumn);
+ m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE);
+ m_xTreeView->set_text(*xFolder, rSecondName, 0);
+ m_xTreeView->set_text_emphasis(*xFolder, false, 0);
}
xParentEntry = std::move(xFolder);
}
@@ -745,8 +748,9 @@ void TableTreeListBox::implAddEntry(
m_xTreeView->set_image(*xEntry, sImageId, -1);
}
if (m_bShowToggles)
- m_xTreeView->set_toggle(*xEntry, TRISTATE_FALSE, 0);
- m_xTreeView->set_text(*xEntry, sName, m_nTextColumn);
+ m_xTreeView->set_toggle(*xEntry, TRISTATE_FALSE);
+ m_xTreeView->set_text(*xEntry, sName, 0);
+ m_xTreeView->set_text_emphasis(*xEntry, false, 0);
}
NamedDatabaseObject OTableTreeListBox::describeObject( SvTreeListEntry* _pEntry )
@@ -935,7 +939,7 @@ TriState TableTreeListBox::implDetermineState(weld::TreeIter& rEntry)
if (!m_bShowToggles)
return TRISTATE_FALSE;
- TriState eState = m_xTreeView->get_toggle(rEntry, 0);
+ TriState eState = m_xTreeView->get_toggle(rEntry);
if (!m_xTreeView->iter_has_child(rEntry))
// nothing to do in this bottom-up routine if there are no children ...
return eState;
@@ -996,7 +1000,7 @@ TriState TableTreeListBox::implDetermineState(weld::TreeIter& rEntry)
}
// finally set the entry to the state we just determined
- m_xTreeView->set_toggle(rEntry, eState, 0);
+ m_xTreeView->set_toggle(rEntry, eState);
return eState;
}
diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx
index 8b91b354be37..2fa719517a91 100644
--- a/dbaccess/source/ui/dlg/tablespage.cxx
+++ b/dbaccess/source/ui/dlg/tablespage.cxx
@@ -138,7 +138,7 @@ namespace dbaui
std::unique_ptr<weld::TreeIter> xEntry(m_xTablesList->GetEntryPosByName(sName, xSchema ? xSchema.get() : (xCatalog ? xCatalog.get() : xRootEntry.get())));
if (xEntry)
- m_xTablesList->GetWidget().set_toggle(*xEntry, TRISTATE_TRUE, 0);
+ m_xTablesList->GetWidget().set_toggle(*xEntry, TRISTATE_TRUE);
}
m_xTablesList->CheckButtons();
}
@@ -299,7 +299,7 @@ namespace dbaui
{
do
{
- m_xTablesList->GetWidget().set_toggle(*xEntry, _bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xTablesList->GetWidget().set_toggle(*xEntry, _bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
}
while (m_xTablesList->GetWidget().iter_next(*xEntry));
}
@@ -350,7 +350,7 @@ namespace dbaui
std::unique_ptr<weld::TreeIter> xSchema;
std::unique_ptr<weld::TreeIter> xCatalog;
- if (m_xTablesList->GetWidget().get_toggle(*xEntry, 0) == TRISTATE_TRUE && !m_xTablesList->GetWidget().iter_has_child(*xEntry))
+ if (m_xTablesList->GetWidget().get_toggle(*xEntry) == TRISTATE_TRUE && !m_xTablesList->GetWidget().iter_has_child(*xEntry))
{ // checked and a leaf, which means it's no catalog, no schema, but a real table
OUStringBuffer sComposedName;
OUString sCatalog;
diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx
index 58a6bba4322e..30b3f742f591 100644
--- a/dbaccess/source/ui/inc/tabletree.hxx
+++ b/dbaccess/source/ui/inc/tabletree.hxx
@@ -143,7 +143,6 @@ class TableTreeListBox
bool m_bVirtualRoot; // should the first entry be visible
bool m_bNoEmptyFolders; // should empty catalogs/schematas be prevented from being displayed?
bool m_bShowToggles; // show toggle buttons
- int m_nTextColumn; // column text is in, depends on if toggles are shown
std::unique_ptr<weld::TreeView> m_xTreeView;
public:
diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx
index 83ad642d887a..75ff6e3372f1 100644
--- a/dbaccess/source/ui/misc/WNameMatch.cxx
+++ b/dbaccess/source/ui/misc/WNameMatch.cxx
@@ -58,9 +58,7 @@ OWizNameMatching::OWizNameMatching(weld::Container* pPage, OCopyTableWizard* pWi
m_xAll->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl));
m_xNone->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl));
- std::vector<int> aWidths;
- aWidths.push_back(m_xCTRL_LEFT->get_checkbox_column_width());
- m_xCTRL_LEFT->set_column_fixed_widths(aWidths);
+ m_xCTRL_LEFT->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xCTRL_LEFT->connect_changed(LINK(this,OWizNameMatching,TableListClickHdl));
m_xCTRL_RIGHT->connect_changed(LINK(this,OWizNameMatching,TableListRightSelectHdl));
@@ -132,7 +130,7 @@ bool OWizNameMatching::LeavePage()
++nPos;
}
- if (m_xCTRL_LEFT->get_toggle(*xLeftEntry, 0) == TRISTATE_TRUE)
+ if (m_xCTRL_LEFT->get_toggle(*xLeftEntry) == TRISTATE_TRUE)
{
OFieldDescription* pDestField = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(*xRightEntry).toInt64());
OSL_ENSURE(pDestField,"OWizNameMatching: OColumn can not be null!");
@@ -301,7 +299,7 @@ IMPL_LINK(OWizNameMatching, AllNoneClickHdl, weld::Button&, rButton, void)
{
bool bAll = &rButton == m_xAll.get();
m_xCTRL_LEFT->all_foreach([this, bAll](weld::TreeIter& rEntry){
- m_xCTRL_LEFT->set_toggle(rEntry, bAll ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xCTRL_LEFT->set_toggle(rEntry, bAll ? TRISTATE_TRUE : TRISTATE_FALSE);
return false;
});
}
@@ -312,17 +310,15 @@ void OWizNameMatching::FillListBox(weld::TreeView& rTreeView, const ODatabaseExp
int nRow(0);
- const int nTextCol = bCheckButtons ? 1 : 0;
-
for (auto const& elem : rList)
{
rTreeView.append();
if (bCheckButtons)
{
bool bChecked = !elem->second->IsAutoIncrement();
- rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
}
- rTreeView.set_text(nRow, elem->first, nTextCol);
+ rTreeView.set_text(nRow, elem->first, 0);
rTreeView.set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(elem->second)));
++nRow;
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
index cb161d631809..5d65f4e7c618 100644
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
@@ -455,9 +455,7 @@ UpdateDialog::UpdateDialog(
m_xDescriptions->set_size_request(nWidth, nHeight);
m_xUpdates->set_size_request(nWidth, nHeight);
- std::vector<int> aWidths;
- aWidths.push_back(m_xUpdates->get_checkbox_column_width());
- m_xUpdates->set_column_fixed_widths(aWidths);
+ m_xUpdates->enable_toggle_buttons(weld::ColumnToggleType::Check);
OSL_ASSERT(updateData != nullptr);
@@ -492,7 +490,7 @@ IMPL_LINK(UpdateDialog, entryToggled, const weld::TreeView::iter_col&, rRowCol,
// 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(rRowCol.first, TRISTATE_FALSE, 0);
+ m_xUpdates->set_toggle(rRowCol.first, TRISTATE_FALSE);
enableOk();
}
@@ -501,8 +499,8 @@ void UpdateDialog::insertItem(UpdateDialog::Index *pEntry, bool bEnabledCheckBox
{
int nEntry = m_xUpdates->n_children();
m_xUpdates->append();
- m_xUpdates->set_toggle(nEntry, bEnabledCheckBox ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xUpdates->set_text(nEntry, pEntry->m_aName, 1);
+ m_xUpdates->set_toggle(nEntry, bEnabledCheckBox ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xUpdates->set_text(nEntry, pEntry->m_aName, 0);
m_xUpdates->set_id(nEntry, OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
}
@@ -587,7 +585,7 @@ void UpdateDialog::enableOk() {
if (!m_xChecking->get_visible()) {
int nChecked = 0;
for (int i = 0, nCount = m_xUpdates->n_children(); i < nCount; ++i) {
- if (m_xUpdates->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (m_xUpdates->get_toggle(i) == TRISTATE_TRUE)
++nChecked;
}
m_xOk->set_sensitive(nChecked != 0);
@@ -987,7 +985,7 @@ IMPL_LINK_NOARG(UpdateDialog, okHandler, weld::Button&, void)
UpdateDialog::Index const * p =
reinterpret_cast< UpdateDialog::Index const * >(
m_xUpdates->get_id(i).toInt64());
- if (p->m_eKind == ENABLED_UPDATE && m_xUpdates->get_toggle(i, 0) == TRISTATE_TRUE) {
+ if (p->m_eKind == ENABLED_UPDATE && m_xUpdates->get_toggle(i) == TRISTATE_TRUE) {
m_updateData.push_back( m_enabledUpdates[ p->m_nIndex ] );
}
}
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 8655b5282a79..f3fc52a9db3a 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -747,6 +747,12 @@ public:
virtual void set_mru_entries(const OUString& rEntries) = 0;
};
+enum class ColumnToggleType
+{
+ Check,
+ Radio
+};
+
class VCL_DLLPUBLIC TreeIter
{
private:
@@ -759,6 +765,11 @@ public:
virtual ~TreeIter() {}
};
+/* Model column indexes are considered to begin at 0, but with special columns
+ before index 0. A expander image column (and an additional optional toggle
+ button column when enable_toggle_buttons is used). Column index -1 is
+ reserved to access those columns.
+*/
class VCL_DLLPUBLIC TreeView : virtual public Container
{
public:
@@ -899,8 +910,7 @@ public:
*/
void connect_row_activated(const Link<TreeView&, bool>& rLink) { m_aRowActivatedHdl = rLink; }
- // 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
+ // Argument is a pair of iter, col describing the toggled node
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; }
@@ -909,18 +919,28 @@ public:
virtual OUString get_selected_text() const = 0;
virtual OUString get_selected_id() const = 0;
+ // call before inserting any content and connecting to toggle signals,
+ // an pre-inserted checkbutton column will exist at the start of every row
+ // inserted after this call which can be accessed with col index -1
+ virtual void enable_toggle_buttons(ColumnToggleType eType) = 0;
+
//by index
virtual int get_selected_index() const = 0;
//Don't select when frozen, select after thaw. Note selection doesn't survive a freeze.
virtual void select(int pos) = 0;
virtual void unselect(int pos) = 0;
virtual void remove(int pos) = 0;
+ // col index -1 gets the first text column
virtual OUString get_text(int row, int col = -1) const = 0;
+ // col index -1 sets the first text column
virtual void set_text(int row, const OUString& rText, int col = -1) = 0;
+ // col index -1 sets the first text column
virtual void set_sensitive(int row, bool bSensitive, int col = -1) = 0;
virtual void set_id(int row, const OUString& rId) = 0;
- virtual void set_toggle(int row, TriState eState, int col) = 0;
- virtual TriState get_toggle(int row, int col) const = 0;
+ // col index -1 sets the expander toggle, enable_toggle_buttons must have been called to create that column
+ virtual void set_toggle(int row, TriState eState, int col = -1) = 0;
+ // col index -1 gets the expander toggle, enable_toggle_buttons must have been called to create that column
+ virtual TriState get_toggle(int row, int col = -1) const = 0;
// col index -1 sets the expander image
virtual void set_image(int row, const OUString& rImage, int col = -1) = 0;
// col index -1 sets the expander image
@@ -1015,13 +1035,18 @@ public:
virtual void set_extra_row_indent(const TreeIter& rIter, int nIndentLevel) = 0;
virtual void expand_row(const TreeIter& rIter) = 0;
virtual void collapse_row(const TreeIter& rIter) = 0;
+ // col index -1 sets the first text column
virtual void set_text(const TreeIter& rIter, const OUString& rStr, int col = -1) = 0;
+ // col index -1 sets the first text column
virtual void set_sensitive(const TreeIter& rIter, bool bSensitive, int col = -1) = 0;
virtual void set_text_emphasis(const TreeIter& rIter, bool bOn, int col) = 0;
virtual bool get_text_emphasis(const TreeIter& rIter, int col) const = 0;
virtual void set_text_align(const TreeIter& rIter, double fAlign, int col) = 0;
- virtual void set_toggle(const TreeIter& rIter, TriState bOn, int col) = 0;
- virtual TriState get_toggle(const TreeIter& rIter, int col) const = 0;
+ // col index -1 sets the expander toggle, enable_toggle_buttons must have been called to create that column
+ virtual void set_toggle(const TreeIter& rIter, TriState bOn, int col = -1) = 0;
+ // col index -1 gets the expander toggle, enable_toggle_buttons must have been called to create that column
+ virtual TriState get_toggle(const TreeIter& rIter, int col = -1) const = 0;
+ // col index -1 gets the first text column
virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0;
virtual void set_id(const TreeIter& rIter, const OUString& rId) = 0;
virtual OUString get_id(const TreeIter& rIter) const = 0;
@@ -1138,9 +1163,6 @@ public:
// remove the selected nodes
virtual void remove_selection() = 0;
- // call before inserting any content
- virtual void set_toggle_columns_as_radio() = 0;
-
virtual void vadjustment_set_value(int value) = 0;
virtual int vadjustment_get_value() const = 0;
diff --git a/sc/source/ui/dbgui/dpgroupdlg.cxx b/sc/source/ui/dbgui/dpgroupdlg.cxx
index 5e92b4228dea..44d5660cd793 100644
--- a/sc/source/ui/dbgui/dpgroupdlg.cxx
+++ b/sc/source/ui/dbgui/dpgroupdlg.cxx
@@ -216,17 +216,15 @@ ScDPDateGroupDlg::ScDPDateGroupDlg(weld::Window* pParent,
maStartHelper.SetValue( rInfo.mbAutoStart, rInfo.mfStart );
maEndHelper.SetValue( rInfo.mbAutoEnd, rInfo.mfEnd );
- std::vector<int> aWidths;
- aWidths.push_back(mxLbUnits->get_checkbox_column_width());
- mxLbUnits->set_column_fixed_widths(aWidths);
+ mxLbUnits->enable_toggle_buttons(weld::ColumnToggleType::Check);
if( nDatePart == 0 )
nDatePart = css::sheet::DataPilotFieldGroupBy::MONTHS;
for (size_t nIdx = 0; nIdx < SAL_N_ELEMENTS(aDatePartResIds); ++nIdx)
{
mxLbUnits->append();
- mxLbUnits->set_toggle(nIdx, (nDatePart & spnDateParts[ nIdx ]) ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- mxLbUnits->set_text(nIdx, ScResId(aDatePartResIds[nIdx]), 1);
+ mxLbUnits->set_toggle(nIdx, (nDatePart & spnDateParts[ nIdx ]) ? TRISTATE_TRUE : TRISTATE_FALSE);
+ mxLbUnits->set_text(nIdx, ScResId(aDatePartResIds[nIdx]), 0);
}
if( rInfo.mbDateValues )
@@ -296,7 +294,7 @@ sal_Int32 ScDPDateGroupDlg::GetDatePart() const
// return listbox contents for "units" mode
sal_Int32 nDatePart = 0;
for (int nIdx = 0, nCount = mxLbUnits->n_children(); nIdx < nCount; ++nIdx )
- if (mxLbUnits->get_toggle(nIdx, 0) == TRISTATE_TRUE)
+ if (mxLbUnits->get_toggle(nIdx) == TRISTATE_TRUE)
nDatePart |= spnDateParts[ nIdx ];
return nDatePart;
}
@@ -328,7 +326,7 @@ namespace
{
for (int i = 0; i < rView.n_children(); ++i)
{
- if (rView.get_toggle(i, 0) == TRISTATE_TRUE)
+ if (rView.get_toggle(i) == TRISTATE_TRUE)
return true;
}
return false;
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index e73bcc4c8085..5413b009a1a2 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -94,13 +94,13 @@ bool lclFillListBox(weld::TreeView& rLBox, const vector<ScDPLabelData::Member>&
{
rLBox.append();
int pos = rLBox.n_children() - 1;
- rLBox.set_toggle(pos, TRISTATE_FALSE, 0);
+ rLBox.set_toggle(pos, TRISTATE_FALSE);
OUString aName = rMember.getDisplayName();
if (!aName.isEmpty())
- rLBox.set_text(pos, aName, 1);
+ rLBox.set_text(pos, aName, 0);
else
{
- rLBox.set_text(pos, ScResId(STR_EMPTYDATA), 1);
+ rLBox.set_text(pos, ScResId(STR_EMPTYDATA), 0);
bEmpty = true;
}
}
@@ -628,9 +628,7 @@ ScDPSubtotalOptDlg::ScDPSubtotalOptDlg(weld::Window* pParent, ScDPObject& rDPObj
, mrDPObj(rDPObj)
, maLabelData(rLabelData)
{
- std::vector<int> aWidths;
- aWidths.push_back(m_xLbHide->get_checkbox_column_width());
- m_xLbHide->set_column_fixed_widths(aWidths);
+ m_xLbHide->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xLbSortBy->set_size_request(m_xLbSortBy->get_approximate_digit_width() * 18, -1);
m_xLbHide->set_size_request(-1, m_xLbHide->get_height_rows(5));
@@ -683,7 +681,7 @@ void ScDPSubtotalOptDlg::FillLabelData( ScDPLabelData& rLabelData ) const
rLabelData.maMembers = maLabelData.maMembers;
int nVisCount = m_xLbHide->n_children();
for (int nPos = 0; nPos < nVisCount; ++nPos)
- rLabelData.maMembers[nPos].mbVisible = m_xLbHide->get_toggle(nPos, 0) == TRISTATE_FALSE;
+ rLabelData.maMembers[nPos].mbVisible = m_xLbHide->get_toggle(nPos) == TRISTATE_FALSE;
// *** HIERARCHY ***
@@ -791,7 +789,7 @@ void ScDPSubtotalOptDlg::InitHideListBox()
lclFillListBox(*m_xLbHide, maLabelData.maMembers);
size_t n = maLabelData.maMembers.size();
for (size_t i = 0; i < n; ++i)
- m_xLbHide->set_toggle(i, maLabelData.maMembers[i].mbVisible ? TRISTATE_FALSE : TRISTATE_TRUE, 0);
+ m_xLbHide->set_toggle(i, maLabelData.maMembers[i].mbVisible ? TRISTATE_FALSE : TRISTATE_TRUE);
bool bEnable = m_xLbHide->n_children() > 0;
m_xHideFrame->set_sensitive(bEnable);
}
diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx
index 78fb46dd75e6..ed23b10017a6 100644
--- a/sc/source/ui/dbgui/tpsubt.cxx
+++ b/sc/source/ui/dbgui/tpsubt.cxx
@@ -57,9 +57,7 @@ ScTpSubTotalGroup::ScTpSubTotalGroup(weld::Container* pPage, weld::DialogControl
mxLbColumns->set_size_request(-1, nHeight);
mxLbFunctions->set_size_request(-1, nHeight);
- std::vector<int> aWidths;
- aWidths.push_back(mxLbColumns->get_checkbox_column_width());
- mxLbColumns->set_column_fixed_widths(aWidths);
+ mxLbColumns->enable_toggle_buttons(weld::ColumnToggleType::Check);
Init();
}
@@ -102,7 +100,7 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo,
// first we have to clear the listboxes...
for (int nLbEntry = 0, nCount = mxLbColumns->n_children(); nLbEntry < nCount; ++nLbEntry)
{
- mxLbColumns->set_toggle(nLbEntry, TRISTATE_FALSE, 0);
+ mxLbColumns->set_toggle(nLbEntry, TRISTATE_FALSE);
mxLbColumns->set_id(nLbEntry, "0");
}
mxLbFunctions->select(0);
@@ -125,7 +123,7 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo,
{
sal_uInt16 nCheckPos = GetFieldSelPos( pSubTotals[i] );
- mxLbColumns->set_toggle(nCheckPos, TRISTATE_TRUE, 0);
+ mxLbColumns->set_toggle(nCheckPos, TRISTATE_TRUE);
mxLbColumns->set_id(nCheckPos, OUString::number(FuncToLbPos(pFunctions[i])));
if (i == 0 || nCheckPos < nFirstChecked)
@@ -151,7 +149,7 @@ namespace
int nRet = 0;
for (sal_Int32 i=0, nEntryCount = rTreeView.n_children(); i < nEntryCount; ++i)
{
- if (rTreeView.get_toggle(i, 0) == TRISTATE_TRUE)
+ if (rTreeView.get_toggle(i) == TRISTATE_TRUE)
++nRet;
}
return nRet;
@@ -211,7 +209,7 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo,
for ( sal_Int32 i=0, nCheck=0; i<nEntryCount; i++ )
{
- if (mxLbColumns->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (mxLbColumns->get_toggle(i) == TRISTATE_TRUE)
{
OSL_ENSURE( nCheck <= nCheckCount,
"Range error :-(" );
@@ -261,8 +259,8 @@ void ScTpSubTotalGroup::FillListBoxes()
nFieldArr[i] = col;
mxLbGroup->insert_text(i+1, aFieldName);
mxLbColumns->insert(i);
- mxLbColumns->set_toggle(i, TRISTATE_FALSE, 0);
- mxLbColumns->set_text(i, aFieldName, 1);
+ mxLbColumns->set_toggle(i, TRISTATE_FALSE);
+ mxLbColumns->set_text(i, aFieldName, 0);
mxLbColumns->set_id(i, "0");
i++;
}
@@ -359,7 +357,7 @@ void ScTpSubTotalGroup::SelectHdl(const weld::Widget *pLb)
else if ( pLb == mxLbFunctions.get() )
{
mxLbColumns->set_id(nColumn, OUString::number(nFunction));
- mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE, 0);
+ mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE);
}
}
}
diff --git a/sc/source/ui/miscdlgs/protectiondlg.cxx b/sc/source/ui/miscdlgs/protectiondlg.cxx
index 909e205631b8..a1718ac985ed 100644
--- a/sc/source/ui/miscdlgs/protectiondlg.cxx
+++ b/sc/source/ui/miscdlgs/protectiondlg.cxx
@@ -59,9 +59,7 @@ ScTableProtectionDlg::ScTableProtectionDlg(weld::Window* pParent)
m_aDeleteColumns = m_xDeleteColumns->get_label();
m_aDeleteRows = m_xDeleteRows->get_label();
- std::vector<int> aWidths;
- aWidths.push_back(m_xOptionsListBox->get_checkbox_column_width());
- m_xOptionsListBox->set_column_fixed_widths(aWidths);
+ m_xOptionsListBox->enable_toggle_buttons(weld::ColumnToggleType::Check);
Init();
}
@@ -73,7 +71,7 @@ ScTableProtectionDlg::~ScTableProtectionDlg()
void ScTableProtectionDlg::SetDialogData(const ScTableProtection& rData)
{
for (size_t i = 0; i < aOptions.size(); ++i)
- m_xOptionsListBox->set_toggle(i, rData.isOptionEnabled(aOptions[i]) ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xOptionsListBox->set_toggle(i, rData.isOptionEnabled(aOptions[i]) ? TRISTATE_TRUE : TRISTATE_FALSE);
}
void ScTableProtectionDlg::WriteData(ScTableProtection& rData) const
@@ -84,15 +82,15 @@ void ScTableProtectionDlg::WriteData(ScTableProtection& rData) const
rData.setPassword(m_xPassword1Edit->get_text());
for (size_t i = 0; i < aOptions.size(); ++i)
- rData.setOption(aOptions[i], m_xOptionsListBox->get_toggle(i, 0) == TRISTATE_TRUE);
+ rData.setOption(aOptions[i], m_xOptionsListBox->get_toggle(i) == TRISTATE_TRUE);
}
void ScTableProtectionDlg::InsertEntry(const OUString& rTxt)
{
m_xOptionsListBox->append();
const int nRow = m_xOptionsListBox->n_children() - 1;
- m_xOptionsListBox->set_toggle(nRow, TRISTATE_FALSE, 0);
- m_xOptionsListBox->set_text(nRow, rTxt, 1);
+ m_xOptionsListBox->set_toggle(nRow, TRISTATE_FALSE);
+ m_xOptionsListBox->set_text(nRow, rTxt, 0);
}
void ScTableProtectionDlg::Init()
@@ -115,8 +113,8 @@ void ScTableProtectionDlg::Init()
InsertEntry(m_aDeleteColumns);
InsertEntry(m_aDeleteRows);
- m_xOptionsListBox->set_toggle(0, TRISTATE_TRUE, 0);
- m_xOptionsListBox->set_toggle(1, TRISTATE_TRUE, 0);
+ m_xOptionsListBox->set_toggle(0, TRISTATE_TRUE);
+ m_xOptionsListBox->set_toggle(1, TRISTATE_TRUE);
m_xOptionsListBox->thaw();
diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx
index e22647b3d5f9..5c20611954d3 100644
--- a/sc/source/ui/miscdlgs/solveroptions.cxx
+++ b/sc/source/ui/miscdlgs/solveroptions.cxx
@@ -70,9 +70,7 @@ ScSolverOptionsDialog::ScSolverOptionsDialog(weld::Window* pParent,
m_xLbSettings->set_size_request(m_xLbSettings->get_approximate_digit_width() * 32,
m_xLbSettings->get_height_rows(6));
- std::vector<int> aWidths;
- aWidths.push_back(m_xLbSettings->get_checkbox_column_width());
- m_xLbSettings->set_column_fixed_widths(aWidths);
+ m_xLbSettings->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xLbEngine->connect_changed( LINK( this, ScSolverOptionsDialog, EngineSelectHdl ) );
@@ -138,7 +136,7 @@ const uno::Sequence<beans::PropertyValue>& ScSolverOptionsDialog::GetProperties(
rValue <<= pStringItem->GetIntValue();
}
else
- rValue <<= m_xLbSettings->get_toggle(nEntryPos, 0) == TRISTATE_TRUE;
+ rValue <<= m_xLbSettings->get_toggle(nEntryPos) == TRISTATE_TRUE;
}
}
else
@@ -194,13 +192,13 @@ void ScSolverOptionsDialog::FillListBox()
if ( eClass == uno::TypeClass_BOOLEAN )
{
// check box entry
- m_xLbSettings->set_toggle(nPos, ScUnoHelpFunctions::GetBoolFromAny(aValue) ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xLbSettings->set_text(nPos, aVisName, 1);
+ m_xLbSettings->set_toggle(nPos, ScUnoHelpFunctions::GetBoolFromAny(aValue) ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLbSettings->set_text(nPos, aVisName, 0);
}
else
{
// value entry
- m_xLbSettings->set_text(nPos, aVisName, 1);
+ m_xLbSettings->set_text(nPos, aVisName, 0);
m_aOptions.emplace_back(new ScSolverOptionsString(aVisName));
if (eClass == uno::TypeClass_DOUBLE)
{
@@ -213,7 +211,7 @@ void ScSolverOptionsDialog::FillListBox()
rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
ScGlobal::getLocaleDataPtr()->getNumDecimalSep()[0], true );
- m_xLbSettings->set_text(nPos, sTxt, 1);
+ m_xLbSettings->set_text(nPos, sTxt, 0);
}
else
{
@@ -223,7 +221,7 @@ void ScSolverOptionsDialog::FillListBox()
OUString sTxt = aVisName + ": " + OUString::number(nIntValue);
- m_xLbSettings->set_text(nPos, sTxt, 1);
+ m_xLbSettings->set_text(nPos, sTxt, 0);
}
m_xLbSettings->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(m_aOptions.back().get())));
}
@@ -261,7 +259,7 @@ void ScSolverOptionsDialog::EditOption()
rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
ScGlobal::getLocaleDataPtr()->getNumDecimalSep()[0], true );
- m_xLbSettings->set_text(nEntry, sTxt, 1);
+ m_xLbSettings->set_text(nEntry, sTxt, 0);
}
m_xValDialog.reset();
});
@@ -279,7 +277,7 @@ void ScSolverOptionsDialog::EditOption()
OUString sTxt(pStringItem->GetText() + ": ");
sTxt += OUString::number(pStringItem->GetIntValue());
- m_xLbSettings->set_text(nEntry, sTxt, 1);
+ m_xLbSettings->set_text(nEntry, sTxt, 0);
}
m_xIntDialog.reset();
});
diff --git a/sw/source/ui/config/optcomp.cxx b/sw/source/ui/config/optcomp.cxx
index 8be4045f154c..13a11016f681 100644
--- a/sw/source/ui/config/optcomp.cxx
+++ b/sw/source/ui/config/optcomp.cxx
@@ -61,10 +61,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia
, m_xGlobalOptionsCLB(m_xBuilder->weld_tree_view("globaloptioncheckbox"))
, m_xDefaultPB(m_xBuilder->weld_button("default"))
{
- std::vector<int> aWidths;
- aWidths.push_back(m_xOptionsLB->get_checkbox_column_width());
- m_xOptionsLB->set_column_fixed_widths(aWidths);
- m_xGlobalOptionsCLB->set_column_fixed_widths(aWidths);
+ m_xOptionsLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
+ m_xGlobalOptionsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
int nPos = 0;
for ( int i = static_cast<int>(SvtCompatibilityEntry::Index::Module) + 1; i < static_cast<int>(SvtCompatibilityEntry::Index::INVALID); ++i )
@@ -73,8 +71,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia
const OUString sEntry = m_xFormattingLB->get_text(nCoptIdx);
m_xOptionsLB->append();
- m_xOptionsLB->set_toggle(nPos, TRISTATE_FALSE, 0);
- m_xOptionsLB->set_text(nPos, sEntry, 1);
+ m_xOptionsLB->set_toggle(nPos, TRISTATE_FALSE);
+ m_xOptionsLB->set_text(nPos, sEntry, 0);
++nPos;
}
@@ -88,8 +86,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia
m_xGlobalOptionsCLB->append();
const bool bChecked = m_aViewConfigItem.HasMSOCompatibleFormsMenu();
- m_xGlobalOptionsCLB->set_toggle(0, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xGlobalOptionsCLB->set_text(0, m_xGlobalOptionsLB->get_text(0), 1);
+ m_xGlobalOptionsCLB->set_toggle(0, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xGlobalOptionsCLB->set_text(0, m_xGlobalOptionsLB->get_text(0), 0);
m_xGlobalOptionsLB->clear();
@@ -279,7 +277,7 @@ IMPL_LINK_NOARG(SwCompatibilityOptPage, UseAsDefaultHdl, weld::Button&, void)
const sal_Int32 nCount = m_xOptionsLB->n_children();
for ( sal_Int32 i = 0; i < nCount; ++i )
{
- bool bChecked = m_xOptionsLB->get_toggle(i, 0);
+ bool bChecked = m_xOptionsLB->get_toggle(i);
int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */
pItem->setValue<bool>( SvtCompatibilityEntry::Index(nCoptIdx), bChecked );
@@ -297,7 +295,7 @@ void SwCompatibilityOptPage::SetCurrentOptions( sal_uInt32 nOptions )
for (int i = 0; i < nCount; ++i)
{
bool bChecked = ( ( nOptions & 0x00000001 ) == 0x00000001 );
- m_xOptionsLB->set_toggle(i, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xOptionsLB->set_toggle(i, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
nOptions = nOptions >> 1;
}
}
@@ -351,7 +349,7 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* )
for (int i = 0; i < nCount; ++i)
{
- bool bChecked = m_xOptionsLB->get_toggle(i, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xOptionsLB->get_toggle(i) == TRISTATE_TRUE;
bool bSavedChecked = ( ( nSavedOptions & 0x00000001 ) == 0x00000001 );
if ( bChecked != bSavedChecked )
{
@@ -431,7 +429,7 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* )
if ( bModified )
WriteOptions();
- bool bNewMSFormsMenuOption = m_xGlobalOptionsCLB->get_toggle(0, 0);
+ bool bNewMSFormsMenuOption = m_xGlobalOptionsCLB->get_toggle(0);
if (m_bSavedMSFormsMenuOption != bNewMSFormsMenuOption)
{
m_aViewConfigItem.SetMSOCompatibleFormsMenu(bNewMSFormsMenuOption);
@@ -460,7 +458,7 @@ void SwCompatibilityOptPage::Reset( const SfxItemSet* )
SetCurrentOptions( nOptions );
m_nSavedOptions = nOptions;
- m_xGlobalOptionsCLB->set_toggle(0, m_aViewConfigItem.HasMSOCompatibleFormsMenu() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xGlobalOptionsCLB->set_toggle(0, m_aViewConfigItem.HasMSOCompatibleFormsMenu() ? TRISTATE_TRUE : TRISTATE_FALSE);
m_bSavedMSFormsMenuOption = m_aViewConfigItem.HasMSOCompatibleFormsMenu();
}
diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx
index b5e1a1aa0bc3..9a5d934367a7 100644
--- a/sw/source/ui/config/optload.cxx
+++ b/sw/source/ui/config/optload.cxx
@@ -459,9 +459,7 @@ SwCaptionOptPage::SwCaptionOptPage(weld::Container* pPage, weld::DialogControlle
{
m_xCategoryBox->connect_entry_insert_text(LINK(this, SwCaptionOptPage, TextFilterHdl));
- std::vector<int> aWidths;
- aWidths.push_back(m_xCheckLB->get_checkbox_column_width());
- m_xCheckLB->set_column_fixed_widths(aWidths);
+ m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_ABB, m_sIllustration);
SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_TABLE, m_sTable);
@@ -554,7 +552,7 @@ bool SwCaptionOptPage::FillItemSet( SfxItemSet* )
int nCheckCount = 0;
for (int i = 0, nCount = m_xCheckLB->n_children(); i < nCount; ++i)
{
- if (m_xCheckLB->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (m_xCheckLB->get_toggle(i) == TRISTATE_TRUE)
++nCheckCount;
InsCaptionOpt* pData = reinterpret_cast<InsCaptionOpt*>(m_xCheckLB->get_id(i).toInt64());
bRet |= pModOpt->SetCapOption(bHTMLMode, pData);
@@ -582,16 +580,16 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
// Writer objects
int nPos = 0;
m_xCheckLB->append();
- m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0);
- m_xCheckLB->set_text(nPos, m_sSWTable, 1);
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos, m_sSWTable, 0);
SetOptions(nPos++, TABLE_CAP);
m_xCheckLB->append();
- m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0);
- m_xCheckLB->set_text(nPos, m_sSWFrame, 1);
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos, m_sSWFrame, 0);
SetOptions(nPos++, FRAME_CAP);
m_xCheckLB->append();
- m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0);
- m_xCheckLB->set_text(nPos, m_sSWGraphic, 1);
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos, m_sSWGraphic, 0);
SetOptions(nPos++, GRAPHIC_CAP);
// get Productname and -version
@@ -615,8 +613,8 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
// don't show product version
sClass = sClass.replaceFirst( sComplete, sWithoutVersion );
m_xCheckLB->append();
- m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0);
- m_xCheckLB->set_text(nPos, sClass, 1);
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
+ m_xCheckLB->set_text(nPos, sClass, 0);
SetOptions( nPos++, OLE_CAP, &rOleId );
}
m_xLbCaptionOrder->set_active(
@@ -635,7 +633,7 @@ void SwCaptionOptPage::SetOptions(const sal_uLong nPos,
{
InsCaptionOpt* pIns = new InsCaptionOpt(*pOpt);
m_xCheckLB->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(pIns)));
- m_xCheckLB->set_toggle(nPos, pOpt->UseCaption() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xCheckLB->set_toggle(nPos, pOpt->UseCaption() ? TRISTATE_TRUE : TRISTATE_FALSE);
}
else
{
@@ -657,7 +655,7 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry)
{
if (nSelEntry != -1)
{
- bool bChecked = m_xCheckLB->get_toggle(nSelEntry, 0) == TRISTATE_TRUE;
+ bool bChecked = m_xCheckLB->get_toggle(nSelEntry) == TRISTATE_TRUE;
m_xSettingsGroup->set_sensitive(bChecked);
bool bNumSep = bChecked && m_xLbCaptionOrder->get_active() == 1;
@@ -780,7 +778,7 @@ void SwCaptionOptPage::SaveEntry(int nEntry)
InsCaptionOpt* pOpt = reinterpret_cast<InsCaptionOpt*>(m_xCheckLB->get_id(nEntry).toInt64());
- pOpt->UseCaption() = m_xCheckLB->get_toggle(nEntry, 0) == TRISTATE_TRUE;
+ pOpt->UseCaption() = m_xCheckLB->get_toggle(nEntry) == TRISTATE_TRUE;
const OUString aName(m_xCategoryBox->get_active_text());
if (aName == m_sNone)
pOpt->SetCategory("");
@@ -845,7 +843,7 @@ IMPL_LINK(SwCaptionOptPage, OrderHdl, weld::ComboBox&, rBox, void)
bool bChecked = false;
if (nSelEntry != -1)
{
- bChecked = m_xCheckLB->get_toggle(nSelEntry, 0) == TRISTATE_TRUE;
+ bChecked = m_xCheckLB->get_toggle(nSelEntry) == TRISTATE_TRUE;
}
int nPos = rBox.get_active();
diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
index cbdb3c995196..3fc5120696ed 100644
--- a/sw/source/ui/index/cnttab.cxx
+++ b/sw/source/ui/index/cnttab.cxx
@@ -498,8 +498,9 @@ SwAddStylesDlg_Impl::SwAddStylesDlg_Impl(weld::Window* pParent,
m_xOk->connect_clicked(LINK(this, SwAddStylesDlg_Impl, OkHdl));
m_xLeftPB->connect_clicked(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl));
m_xRightPB->connect_clicked(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl));
+
m_xHeaderTree->connect_size_allocate(LINK(this, SwAddStylesDlg_Impl, TreeSizeAllocHdl));
- m_xHeaderTree->set_toggle_columns_as_radio();
+ m_xHeaderTree->enable_toggle_buttons(weld::ColumnToggleType::Radio);
m_xHeaderTree->connect_toggled(LINK(this, SwAddStylesDlg_Impl, RadioToggleOnHdl));
std::vector<int> aWidths;
@@ -744,16 +745,14 @@ SwTOXSelectTabPage::SwTOXSelectTabPage(weld::Container* pPage, weld::DialogContr
sAddStyleContent = m_xAddStylesCB->get_label();
- std::vector<int> aWidths;
- aWidths.push_back(m_xFromObjCLB->get_checkbox_column_width());
- m_xFromObjCLB->set_column_fixed_widths(aWidths);
+ m_xFromObjCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
for (size_t i = 0; i < SAL_N_ELEMENTS(RES_SRCTYPES); ++i)
{
OUString sId(OUString::number(static_cast<sal_uInt32>(RES_SRCTYPES[i].second)));
m_xFromObjCLB->append();
- m_xFromObjCLB->set_toggle(i, TRISTATE_FALSE, 0);
- m_xFromObjCLB->set_text(i, SwResId(RES_SRCTYPES[i].first), 1);
+ m_xFromObjCLB->set_toggle(i, TRISTATE_FALSE);
+ m_xFromObjCLB->set_text(i, SwResId(RES_SRCTYPES[i].first), 0);
m_xFromObjCLB->set_id(i, sId);
}
m_xFromObjCLB->set_size_request(-1, std::max<int>(m_xFromObjCLB->get_preferred_size().Height(),
@@ -966,7 +965,7 @@ void SwTOXSelectTabPage::ApplyTOXDescription()
for (int nFromObj = 0, nCount = m_xFromObjCLB->n_children(); nFromObj < nCount; ++nFromObj)
{
SwTOOElements nData = static_cast<SwTOOElements>(m_xFromObjCLB->get_id(nFromObj).toInt32());
- m_xFromObjCLB->set_toggle(nFromObj, bool(nData & nOLEData) ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xFromObjCLB->set_toggle(nFromObj, bool(nData & nOLEData) ? TRISTATE_TRUE : TRISTATE_FALSE);
}
}
else if(TOX_AUTHORITIES == aCurType.eType)
@@ -1061,7 +1060,7 @@ void SwTOXSelectTabPage::FillTOXDescription()
SwTOOElements nOLEData = SwTOOElements::NONE;
for (int i = 0, nCount = m_xFromObjCLB->n_children(); i < nCount; ++i)
{
- if (m_xFromObjCLB->get_toggle(i, 0) == TRISTATE_TRUE)
+ if (m_xFromObjCLB->get_toggle(i) == TRISTATE_TRUE)
{
SwTOOElements nData = static_cast<SwTOOElements>(m_xFromObjCLB->get_id(i).toInt32());
nOLEData |= nData;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 3ea87a0c0e76..786744707342 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3156,33 +3156,6 @@ struct SalInstanceTreeIter : public weld::TreeIter
SvTreeListEntry* iter;
};
-TriState get_toggle(SvTreeListEntry* pEntry, int col)
-{
- ++col; //skip dummy/expander column
-
- if (static_cast<size_t>(col) == pEntry->ItemCount())
- return TRISTATE_FALSE;
-
- assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
- SvLBoxItem& rItem = pEntry->GetItem(col);
- assert(dynamic_cast<SvLBoxButton*>(&rItem));
- SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem);
- if (rToggle.IsStateTristate())
- return TRISTATE_INDET;
- else if (rToggle.IsStateChecked())
- return TRISTATE_TRUE;
- return TRISTATE_FALSE;
-}
-
-bool get_text_emphasis(SvTreeListEntry* pEntry, int col)
-{
- ++col; //skip dummy/expander column
-
- assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
- SvLBoxItem& rItem = pEntry->GetItem(col);
- assert(dynamic_cast<SvLBoxString*>(&rItem));
- return static_cast<SvLBoxString&>(rItem).IsEmphasized();
-}
}
class SalInstanceTreeView;
@@ -3226,6 +3199,25 @@ private:
DECL_LINK(CustomRenderHdl, svtree_render_args, void);
DECL_LINK(CustomMeasureHdl, svtree_measure_args, Size);
+ // Each row has a cell for the expander image, (and an optional cell for a
+ // checkbutton if enable_toggle_buttons has been called) which preceed
+ // index 0
+ int to_internal_model(int col) const
+ {
+ if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN)
+ ++col; // skip checkbutton column
+ ++col; //skip expander column
+ return col;
+ }
+
+ int to_external_model(int col) const
+ {
+ if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN)
+ --col; // skip checkbutton column
+ --col; //skip expander column
+ return col;
+ }
+
bool IsDummyEntry(SvTreeListEntry* pEntry) const
{
return m_xTreeView->GetEntryText(pEntry).trim() == "<dummy>";
@@ -3280,6 +3272,10 @@ private:
SvTreeListEntry* pEntry = new SvTreeListEntry;
if (bIsSeparator)
pEntry->SetFlags(pEntry->GetFlags() | SvTLEntryFlags::IS_SEPARATOR);
+
+ if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN)
+ AddStringItem(pEntry, "", -1);
+
if (pIconName || pImageSurface)
{
Image aImage(pIconName ? createImage(*pIconName) : createImage(*pImageSurface));
@@ -3317,6 +3313,105 @@ private:
enable_notify_events();
}
+ void update_checkbutton_column_width(SvTreeListEntry* pEntry)
+ {
+ SvViewDataEntry* pViewData = m_xTreeView->GetViewDataEntry(pEntry);
+ m_xTreeView->InitViewData(pViewData, pEntry);
+ if (!m_bDisableCheckBoxAutoWidth)
+ m_xTreeView->CheckBoxInserted(pEntry);
+ }
+
+ void do_set_toggle(SvTreeListEntry* pEntry, TriState eState, int col)
+ {
+ assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
+ // if its the placeholder to allow a blank column, replace it now
+ if (pEntry->GetItem(col).GetType() != SvLBoxItemType::Button)
+ {
+ SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData;
+ pEntry->ReplaceItem(std::make_unique<SvLBoxButton>(pData), 0);
+ update_checkbutton_column_width(pEntry);
+
+ }
+ SvLBoxItem& rItem = pEntry->GetItem(col);
+ assert(dynamic_cast<SvLBoxButton*>(&rItem));
+ switch (eState)
+ {
+ case TRISTATE_TRUE:
+ static_cast<SvLBoxButton&>(rItem).SetStateChecked();
+ break;
+ case TRISTATE_FALSE:
+ static_cast<SvLBoxButton&>(rItem).SetStateUnchecked();
+ break;
+ case TRISTATE_INDET:
+ static_cast<SvLBoxButton&>(rItem).SetStateTristate();
+ break;
+ }
+
+ m_xTreeView->ModelHasEntryInvalidated(pEntry);
+ }
+
+ static TriState do_get_toggle(SvTreeListEntry* pEntry, int col)
+ {
+ if (static_cast<size_t>(col) == pEntry->ItemCount())
+ return TRISTATE_FALSE;
+
+ assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
+ SvLBoxItem& rItem = pEntry->GetItem(col);
+ assert(dynamic_cast<SvLBoxButton*>(&rItem));
+ SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem);
+ if (rToggle.IsStateTristate())
+ return TRISTATE_INDET;
+ else if (rToggle.IsStateChecked())
+ return TRISTATE_TRUE;
+ return TRISTATE_FALSE;
+ }
+
+ TriState get_toggle(SvTreeListEntry* pEntry, int col) const
+ {
+ if (col == -1)
+ {
+ assert(m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN);
+ return do_get_toggle(pEntry, 0);
+ }
+ col = to_internal_model(col);
+ return do_get_toggle(pEntry, col);
+ }
+
+ void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col)
+ {
+ if (col == -1)
+ {
+ assert(m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN);
+ do_set_toggle(pEntry, eState, 0);
+ return;
+ }
+
+ col = to_internal_model(col);
+
+ // blank out missing entries
+ for (int i = pEntry->ItemCount(); i < col; ++i)
+ AddStringItem(pEntry, "", i - 1);
+
+ if (static_cast<size_t>(col) == pEntry->ItemCount())
+ {
+ SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData;
+ pEntry->AddItem(std::make_unique<SvLBoxButton>(pData));
+ update_checkbutton_column_width(pEntry);
+ }
+
+ do_set_toggle(pEntry, eState, col);
+ }
+
+ bool get_text_emphasis(SvTreeListEntry* pEntry, int col) const
+ {
+ col = to_internal_model(col);
+
+ assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
+ SvLBoxItem& rItem = pEntry->GetItem(col);
+ assert(dynamic_cast<SvLBoxString*>(&rItem));
+ return static_cast<SvLBoxString&>(rItem).IsEmphasized();
+ }
+
public:
SalInstanceTreeView(SvTabListBox* pTreeView, SalInstanceBuilder* pBuilder, bool bTakeOwnership)
: SalInstanceContainer(pTreeView, pBuilder, bTakeOwnership)
@@ -3522,6 +3617,8 @@ public:
for (int i = 0; i < nSourceCount; ++i)
{
aVclIter.iter = new SvTreeListEntry;
+ if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN)
+ AddStringItem(aVclIter.iter, "", -1);
aVclIter.iter->AddItem(std::make_unique<SvLBoxContextBmp>(aDummy, aDummy, false));
m_xTreeView->Insert(aVclIter.iter, nullptr, TREELIST_APPEND);
func(aVclIter, i);
@@ -3694,12 +3791,12 @@ public:
return aRows;
}
- static OUString get_text(SvTreeListEntry* pEntry, int col)
+ OUString get_text(SvTreeListEntry* pEntry, int col) const
{
if (col == -1)
return SvTabListBox::GetEntryText(pEntry, 0);
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
if (static_cast<size_t>(col) == pEntry->ItemCount())
return OUString();
@@ -3724,7 +3821,7 @@ public:
return;
}
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
// blank out missing entries
for (int i = pEntry->ItemCount(); i < col; ++i)
@@ -3774,7 +3871,7 @@ public:
return;
}
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
SvLBoxItem& rItem = pEntry->GetItem(col);
@@ -3800,72 +3897,24 @@ public:
virtual TriState get_toggle(int pos, int col) const override
{
SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
- return ::get_toggle(pEntry, col);
+ return get_toggle(pEntry, col);
}
virtual TriState get_toggle(const weld::TreeIter& rIter, int col) const override
{
const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter);
- return ::get_toggle(rVclIter.iter, col);
- }
-
- virtual void set_toggle_columns_as_radio() override
- {
- m_bTogglesAsRadio = true;
+ return get_toggle(rVclIter.iter, col);
}
- void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col)
+ virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override
{
- ++col; //skip dummy/expander column
-
- // blank out missing entries
- for (int i = pEntry->ItemCount(); i < col; ++i)
- AddStringItem(pEntry, "", i - 1);
-
- if (static_cast<size_t>(col) == pEntry->ItemCount())
- {
- SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData;
-
- // if we want to have the implicit auto-sizing of the checkbox
- // column we need to call EnableCheckButton and CheckBoxInserted to
- // let it figure out that width. But we don't want to override any
- // explicitly set column width, so disable this if we've set
- // explicit column widths
- if (!m_bDisableCheckBoxAutoWidth)
- {
- if (!(m_xTreeView->GetTreeFlags() & SvTreeFlags::CHKBTN))
- {
- m_xTreeView->EnableCheckButton(pData);
- // EnableCheckButton clobbered this, restore it
- pData->SetLink(LINK(this, SalInstanceTreeView, ToggleHdl));
- }
- }
-
- pEntry->AddItem(std::make_unique<SvLBoxButton>(pData));
- SvViewDataEntry* pViewData = m_xTreeView->GetViewDataEntry(pEntry);
- m_xTreeView->InitViewData(pViewData, pEntry);
-
- if (!m_bDisableCheckBoxAutoWidth)
- m_xTreeView->CheckBoxInserted(pEntry);
- }
-
- assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
- SvLBoxItem& rItem = pEntry->GetItem(col);
- assert(dynamic_cast<SvLBoxButton*>(&rItem));
- switch (eState)
- {
- case TRISTATE_TRUE:
- static_cast<SvLBoxButton&>(rItem).SetStateChecked();
- break;
- case TRISTATE_FALSE:
- static_cast<SvLBoxButton&>(rItem).SetStateUnchecked();
- break;
- case TRISTATE_INDET:
- static_cast<SvLBoxButton&>(rItem).SetStateTristate();
- break;
- }
+ assert(n_children() == 0 && "tree must be empty");
+ m_bTogglesAsRadio = eType == weld::ColumnToggleType::Radio;
- m_xTreeView->ModelHasEntryInvalidated(pEntry);
+ SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData;
+ m_xTreeView->EnableCheckButton(pData);
+ // EnableCheckButton clobbered this, restore it
+ pData->SetLink(LINK(this, SalInstanceTreeView, ToggleHdl));
}
virtual void set_toggle(int pos, TriState eState, int col) override
@@ -3889,7 +3938,7 @@ public:
void set_text_emphasis(SvTreeListEntry* pEntry, bool bOn, int col)
{
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
SvLBoxItem& rItem = pEntry->GetItem(col);
@@ -3914,18 +3963,18 @@ public:
virtual bool get_text_emphasis(const weld::TreeIter& rIter, int col) const override
{
const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter);
- return ::get_text_emphasis(rVclIter.iter, col);
+ return get_text_emphasis(rVclIter.iter, col);
}
virtual bool get_text_emphasis(int pos, int col) const override
{
SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
- return ::get_text_emphasis(pEntry, col);
+ return get_text_emphasis(pEntry, col);
}
void set_text_align(SvTreeListEntry* pEntry, double fAlign, int col)
{
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount());
SvLBoxItem& rItem = pEntry->GetItem(col);
@@ -3972,7 +4021,7 @@ public:
return;
}
- ++col; //skip dummy/expander column
+ col = to_internal_model(col);
// blank out missing entries
for (int i = pEntry->ItemCount(); i < col; ++i)
@@ -4659,9 +4708,7 @@ IMPL_LINK(SalInstanceTreeView, CompareHdl, const SvSortData&, rSortData, sal_Int
if (m_nSortColumn != -1)
{
- size_t col = m_nSortColumn;
-
- ++col; //skip dummy/expander column
+ size_t col = to_internal_model(m_nSortColumn);
if (col < pLHS->ItemCount())
{
@@ -4740,7 +4787,7 @@ IMPL_LINK(SalInstanceTreeView, ToggleHdl, SvLBoxButtonData*, pData, void)
SvLBoxItem& rItem = pEntry->GetItem(i);
if (&rItem == pBox)
{
- int nCol = i - 1; // less dummy/expander column
+ int nCol = to_external_model(i);
signal_toggled(iter_col(SalInstanceTreeIter(pEntry), nCol));
break;
}
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 642379718e60..da66005a8a9e 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -9112,6 +9112,7 @@ private:
gint m_nTextCol;
gint m_nTextView;
gint m_nImageCol;
+ gint m_nExpanderToggleCol;
gint m_nExpanderImageCol;
gint m_nIdCol;
int m_nPendingVAdjustment;
@@ -9532,21 +9533,25 @@ private:
}
// The outside concept of a column maps to a gtk CellRenderer, rather than
- // a TreeViewColumn. If the first TreeViewColumn has two CellRenderers, and
- // the first CellRenderer is an image, that CellRenderer is considered to
- // be index -1.
+ // a TreeViewColumn. If the first TreeViewColumn has a leading Toggle Renderer
+ // and/or a leading Image Renderer, those are considered special expander
+ // columns and preceed index 0 and can be accessed via outside index -1
int to_external_model(int modelcol) const
{
- if (m_nExpanderImageCol == -1)
- return modelcol;
- return modelcol - 1;
+ if (m_nExpanderToggleCol != -1)
+ --modelcol;
+ if (m_nExpanderImageCol != -1)
+ --modelcol;
+ return modelcol;
}
int to_internal_model(int modelcol) const
{
- if (m_nExpanderImageCol == -1)
- return modelcol;
- return modelcol + 1;
+ if (m_nExpanderToggleCol != -1)
+ ++modelcol;
+ if (m_nExpanderImageCol != -1)
+ ++modelcol;
+ return modelcol;
}
void set_column_editable(int nCol, bool bEditable)
@@ -9783,6 +9788,7 @@ public:
, m_nTextCol(-1)
, m_nTextView(-1)
, m_nImageCol(-1)
+ , m_nExpanderToggleCol(-1)
, m_nExpanderImageCol(-1)
, m_nPendingVAdjustment(-1)
, m_nChangedSignalId(g_signal_connect(gtk_tree_view_get_selection(pTreeView), "changed",
@@ -9798,9 +9804,9 @@ public:
, m_pChangeEvent(nullptr)
{
/* The outside concept of a column maps to a gtk CellRenderer, rather than
- a TreeViewColumn. If the first TreeViewColumn has two CellRenderers, and
- the first CellRenderer is an image, that CellRenderer is considered to
- be index -1.
+ a TreeViewColumn. If the first TreeViewColumn has a leading Toggle Renderer
+ and/or a leading Image Renderer, those are considered special expander
+ columns and preceed index 0 and can be accessed via outside index -1
*/
m_pColumns = gtk_tree_view_get_columns(m_pTreeView);
int nIndex(0);
@@ -9830,6 +9836,9 @@ public:
}
else if (GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer))
{
+ const bool bExpander = nIndex == 0 || (nIndex == 1 && m_nExpanderImageCol == 0);
+ if (bExpander)
+ m_nExpanderToggleCol = nIndex;
g_signal_connect(G_OBJECT(pCellRenderer), "toggled", G_CALLBACK(signalCellToggled), this);
m_aToggleVisMap[nIndex] = -1;
m_aToggleTriStateMap[nIndex] = -1;
@@ -10379,7 +10388,11 @@ public:
virtual TriState get_toggle(int pos, int col) const override
{
- col = to_internal_model(col);
+ if (col == -1)
+ col = m_nExpanderToggleCol;
+ else
+ col = to_internal_model(col);
+
if (get_bool(pos, m_aToggleTriStateMap.find(col)->second))
return TRISTATE_INDET;
return get_bool(pos, col) ? TRISTATE_TRUE : TRISTATE_FALSE;
@@ -10387,7 +10400,11 @@ public:
virtual TriState get_toggle(const weld::TreeIter& rIter, int col) const override
{
- col = to_internal_model(col);
+ if (col == -1)
+ col = m_nExpanderToggleCol;
+ else
+ col = to_internal_model(col);
+
const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter);
if (get_bool(rGtkIter.iter, m_aToggleTriStateMap.find(col)->second))
return TRISTATE_INDET;
@@ -10396,7 +10413,11 @@ public:
virtual void set_toggle(int pos, TriState eState, int col) override
{
- col = to_internal_model(col);
+ if (col == -1)
+ col = m_nExpanderToggleCol;
+ else
+ col = to_internal_model(col);
+
// checkbuttons are invisible until toggled on or off
set(pos, m_aToggleVisMap[col], true);
if (eState == TRISTATE_INDET)
@@ -10411,7 +10432,12 @@ public:
virtual void set_toggle(const weld::TreeIter& rIter, TriState eState, int col) override
{
const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter);
- col = to_internal_model(col);
+
+ if (col == -1)
+ col = m_nExpanderToggleCol;
+ else
+ col = to_internal_model(col);
+
// checkbuttons are invisible until toggled on or off
set(rGtkIter.iter, m_aToggleVisMap[col], true);
if (eState == TRISTATE_INDET)
@@ -10423,7 +10449,7 @@ public:
}
}
- virtual void set_toggle_columns_as_radio() override
+ virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override
{
for (GList* pEntry = g_list_first(m_pColumns); pEntry; pEntry = g_list_next(pEntry))
{
@@ -10435,7 +10461,7 @@ public:
if (!GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer))
continue;
GtkCellRendererToggle* pToggle = GTK_CELL_RENDERER_TOGGLE(pCellRenderer);
- gtk_cell_renderer_toggle_set_radio(pToggle, true);
+ gtk_cell_renderer_toggle_set_radio(pToggle, eType == weld::ColumnToggleType::Radio);
}
g_list_free(pRenderers);
}