summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}