rework treeview initial toggle button col to be like expander col
cause this assumption is baked into the vcl one making it hard
to adapt remaining cases
Change-Id: I75dd5264c65b1ffbf4d26c9a86f6d4d08b400d90
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95622
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index 3c9d64a..c94cfe7 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 3b65007..7aeae82 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 77a40f0..d36c238 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 c40c07d..90f4210 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;
int 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(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 b8c3a8d..7354f1c 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 5efa328..0854044 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 412ecf3..e7cea5f 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 34e93ed..25fadc4 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 bd12157..249a116 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 2a68293..5135017 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 7b9fe84..afd25c1 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 3b491da..630f5e0 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 d6e724f..d0bb9ff 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 d9a54e0..16d30cf 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 da4aeb8..c925dab 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 4f1c0f3..807f0cd 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 45ca15d..35abba5 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,10 +128,17 @@
<property name="title" translatable="yes" context="applyautofmtpage|m">[M]</property>
<property name="alignment">0.5</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer0"/>
<attributes>
<attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer1"/>
<attributes>
<attribute name="visible">4</attribute>
<attribute name="active">0</attribute>
<attribute name="visible">6</attribute>
<attribute name="active">1</attribute>
</attributes>
</child>
</object>
@@ -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 57a8869..61ca9e4 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 75642d9..de5a0d0 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 e89bc10..cfa87f1 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 0f1e730..33ceed5 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 44baae1..f585793 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 3101278..f93b9df 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 52524bd..b6a8295 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 f608f85..2ec45c9 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 8b91b35..2fa7195 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 58a6bba..30b3f74 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 83ad642..75ff6e3 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 cb161d6..5d65f4e 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 8655b52..f3fc52a 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 5e92b42..44d5660 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 e73bcc4..5413b00 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 78fb46d..ed23b10 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 909e205..a1718ac 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 e22647b..5c20611 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 8be4045..13a1101 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 b5e1a1a..9a5d934 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 cbdb3c9..3fc5120 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 3ea87a0..7867447 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);
return get_toggle(rVclIter.iter, col);
}
virtual void set_toggle_columns_as_radio() override
virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override
{
m_bTogglesAsRadio = true;
}
assert(n_children() == 0 && "tree must be empty");
m_bTogglesAsRadio = eType == weld::ColumnToggleType::Radio;
void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col)
{
++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;
}
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 64237971..da66005 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);
}