summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-05 16:11:39 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2020-11-30 18:19:52 +0100
commit44f5cdc14537d244c254f7201f2f8da483cc4727 (patch)
treebc48152222c91d0c93617b3a8836dae96af72e8e /dbaccess
parent3826d521852f408f4679837d94288d97ab13e0b4 (diff)
rework treeview initial toggle button col to be like expander col
cause this assumption is baked into the vcl one making it hard to adapt remaining cases Change-Id: I75dd5264c65b1ffbf4d26c9a86f6d4d08b400d90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95622 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106874 Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx50
-rw-r--r--dbaccess/source/ui/dlg/tablespage.cxx13
-rw-r--r--dbaccess/source/ui/dlg/tablespage.hxx3
-rw-r--r--dbaccess/source/ui/inc/tabletree.hxx5
-rw-r--r--dbaccess/source/ui/misc/WNameMatch.cxx14
5 files changed, 40 insertions, 45 deletions
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
index e34cd4918e2e..ad05e2e775df 100644
--- a/dbaccess/source/ui/control/tabletree.cxx
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -75,9 +75,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()
@@ -366,7 +366,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 )
@@ -396,8 +395,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
m_xTreeView->insert(nullptr, -1, nullptr, &sId, nullptr, 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() )
@@ -441,8 +441,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
m_xTreeView->insert(xRootEntry.get(), -1, nullptr, &sId, nullptr, 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);
}
}
}
@@ -458,14 +459,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);
}
@@ -492,11 +493,11 @@ void OTableTreeListBox::checkedButton_noBroadcast(SvTreeListEntry* _pEntry)
implEmphasize(_pEntry, SvButtonState::Checked == eState);
}
-void TableTreeListBox::checkedButton_noBroadcast(weld::TreeIter& rEntry)
+void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
{
if (!m_bShowToggles)
return;
- 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
@@ -507,7 +508,7 @@ void TableTreeListBox::checkedButton_noBroadcast(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);
}
}
@@ -515,7 +516,7 @@ void TableTreeListBox::checkedButton_noBroadcast(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));
@@ -524,7 +525,7 @@ void TableTreeListBox::checkedButton_noBroadcast(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);
}
}
@@ -571,7 +572,7 @@ void OTableTreeListBox::implEmphasize(SvTreeListEntry* _pEntry, bool _bChecked,
}
}
-void TableTreeListBox::implEmphasize(weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants, bool _bUpdateAncestors)
+void TableTreeListBox::implEmphasize(const weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants, bool _bUpdateAncestors)
{
// special emphasizing handling for the "all objects" entry
bool bAllObjectsEntryAffected = haveVirtualRoot() && (getAllObjectsEntry()->equal(rEntry));
@@ -579,7 +580,7 @@ void TableTreeListBox::implEmphasize(weld::TreeIter& rEntry, bool _bChecked, boo
|| 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)
@@ -717,8 +718,9 @@ void TableTreeListBox::implAddEntry(
m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, 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);
}
@@ -734,8 +736,9 @@ void TableTreeListBox::implAddEntry(
m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, 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);
}
@@ -752,8 +755,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 )
@@ -942,7 +946,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;
@@ -1003,7 +1007,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 55e8fd4de580..cde6cf637318 100644
--- a/dbaccess/source/ui/dlg/tablespage.cxx
+++ b/dbaccess/source/ui/dlg/tablespage.cxx
@@ -152,7 +152,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();
}
@@ -317,7 +317,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));
}
@@ -344,12 +344,9 @@ namespace dbaui
return nResult;
}
- IMPL_LINK_NOARG(OTableSubscriptionPage, OnTreeEntryChecked, const row_col&, void)
+ IMPL_LINK(OTableSubscriptionPage, OnTreeEntryChecked, const weld::TreeView::iter_col&, rRowCol, void)
{
- weld::TreeView& rTreeView = m_xTablesList->GetWidget();
- std::unique_ptr<weld::TreeIter> xEntry(rTreeView.make_iterator());
- if (rTreeView.get_cursor(xEntry.get()))
- m_xTablesList->checkedButton_noBroadcast(*xEntry);
+ m_xTablesList->checkedButton_noBroadcast(rRowCol.first);
callModifiedHdl();
}
@@ -371,7 +368,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/dlg/tablespage.hxx b/dbaccess/source/ui/dlg/tablespage.hxx
index 15e647dc0bc1..f6f102d2a9ff 100644
--- a/dbaccess/source/ui/dlg/tablespage.hxx
+++ b/dbaccess/source/ui/dlg/tablespage.hxx
@@ -55,8 +55,7 @@ namespace dbaui
virtual void fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override;
virtual void fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override;
- typedef std::pair<int, int> row_col;
- DECL_LINK(OnTreeEntryChecked, const row_col&, void);
+ DECL_LINK(OnTreeEntryChecked, const weld::TreeView::iter_col&, void);
/** check the tables in <member>m_aTablesList</member> according to <arg>_rTables</arg>
*/
diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx
index 5df47663a8da..cd0ffa622731 100644
--- a/dbaccess/source/ui/inc/tabletree.hxx
+++ b/dbaccess/source/ui/inc/tabletree.hxx
@@ -146,7 +146,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:
@@ -203,11 +202,11 @@ public:
void CheckButtons(); // make the button states consistent (bottom-up)
- void checkedButton_noBroadcast(weld::TreeIter& rEntry);
+ void checkedButton_noBroadcast(const weld::TreeIter& rEntry);
private:
TriState implDetermineState(weld::TreeIter& rEntry);
- void implEmphasize(weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants = true, bool _bUpdateAncestors = true);
+ void implEmphasize(const weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants = true, bool _bUpdateAncestors = true);
/** adds the given entry to our list
@precond
diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx
index a48ad89ef231..78c8e6539db1 100644
--- a/dbaccess/source/ui/misc/WNameMatch.cxx
+++ b/dbaccess/source/ui/misc/WNameMatch.cxx
@@ -59,9 +59,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));
@@ -133,7 +131,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!");
@@ -302,7 +300,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;
});
}
@@ -313,17 +311,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;
}