summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaume Pujantell <jaume.pujantell@collabora.com>2024-07-30 16:45:31 +0200
committerMiklos Vajna <vmiklos@collabora.com>2024-08-07 08:28:31 +0200
commit88219419bd99349453471272e9c59424c014826d (patch)
tree5cccee2791a7bb809ef65001841fc548c64159f6
parent3a6e28a489132afd12a9bee023c4ba94a3678e4e (diff)
cool#9704 calc jsdialog autofilter send disabled entry information
Added the code necessary to disable already filtered entries on jsdialog autofilter, like it is done on desktop UI. Change-Id: I095b7fe0054efcaff2717d05a2ab7bd1d8248b29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171246 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 2815d11bb608a933e14b799cc802825423426d28) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171530 Tested-by: Jenkins
-rw-r--r--include/vcl/toolkit/treelistbox.hxx1
-rw-r--r--vcl/inc/jsdialog/jsdialogbuilder.hxx5
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx20
-rw-r--r--vcl/source/treelist/svtabbx.cxx1
-rw-r--r--vcl/source/treelist/treelistbox.cxx12
5 files changed, 39 insertions, 0 deletions
diff --git a/include/vcl/toolkit/treelistbox.hxx b/include/vcl/toolkit/treelistbox.hxx
index f116b82efcb2..7d3213bfa1bc 100644
--- a/include/vcl/toolkit/treelistbox.hxx
+++ b/include/vcl/toolkit/treelistbox.hxx
@@ -563,6 +563,7 @@ public:
void SetCheckButtonState( SvTreeListEntry*, SvButtonState );
SvButtonState GetCheckButtonState( SvTreeListEntry* ) const;
+ bool GetCheckButtonEnabled(SvTreeListEntry* pEntry) const;
void SetEntryText(SvTreeListEntry*, const OUString& );
void SetExpandedEntryBmp( SvTreeListEntry* _pEntry, const Image& _rImage );
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index ee4105e5d7b4..28435d6536f1 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -774,6 +774,11 @@ public:
virtual void set_toggle(int pos, TriState eState, int col = -1) override;
virtual void set_toggle(const weld::TreeIter& rIter, TriState bOn, int col = -1) override;
+ using SalInstanceTreeView::set_sensitive;
+ /// pos is used differently here, it defines how many steps of iterator we need to perform to take entry
+ virtual void set_sensitive(int pos, bool bSensitive, int col = -1) override;
+ virtual void set_sensitive(const weld::TreeIter& rIter, bool bSensitive, int col = -1) override;
+
using SalInstanceTreeView::select;
/// pos is used differently here, it defines how many steps of iterator we need to perform to take entry
virtual void select(int pos) override;
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index aba9d5381855..8cc2d0f38c86 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -2056,6 +2056,26 @@ void JSTreeView::set_toggle(const weld::TreeIter& rIter, TriState bOn, int col)
sendUpdate();
}
+void JSTreeView::set_sensitive(int pos, bool bSensitive, int col)
+{
+ SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, 0);
+
+ while (pEntry && pos--)
+ pEntry = m_xTreeView->Next(pEntry);
+
+ if (pEntry)
+ {
+ SalInstanceTreeView::set_sensitive(pEntry, bSensitive, col);
+ sendUpdate();
+ }
+}
+
+void JSTreeView::set_sensitive(const weld::TreeIter& rIter, bool bSensitive, int col)
+{
+ SalInstanceTreeView::set_sensitive(rIter, bSensitive, col);
+ sendUpdate();
+}
+
void JSTreeView::select(int pos)
{
assert(m_xTreeView->IsUpdateMode() && "don't select when frozen");
diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx
index 9614c7493c90..7968635362ad 100644
--- a/vcl/source/treelist/svtabbx.cxx
+++ b/vcl/source/treelist/svtabbx.cxx
@@ -161,6 +161,7 @@ static void lcl_DumpEntryAndSiblings(tools::JsonWriter& rJsonWriter,
rJsonWriter.put("state", false);
else if (eCheckState == SvButtonState::Checked)
rJsonWriter.put("state", true);
+ rJsonWriter.put("enabled", pTabListBox->GetCheckButtonEnabled(pEntry));
}
if (pTabListBox->IsSelected(pEntry))
diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx
index a16758e3eaba..2984d1aeb38c 100644
--- a/vcl/source/treelist/treelistbox.cxx
+++ b/vcl/source/treelist/treelistbox.cxx
@@ -1707,6 +1707,18 @@ SvButtonState SvTreeListBox::GetCheckButtonState( SvTreeListEntry* pEntry ) cons
return eState;
}
+bool SvTreeListBox::GetCheckButtonEnabled(SvTreeListEntry* pEntry) const
+{
+ if (pEntry && (nTreeFlags & SvTreeFlags::CHKBTN))
+ {
+ SvLBoxButton* pItem
+ = static_cast<SvLBoxButton*>(pEntry->GetFirstItem(SvLBoxItemType::Button));
+ if (pItem)
+ return pItem->isEnable();
+ }
+ return false;
+}
+
void SvTreeListBox::CheckButtonHdl()
{
if ( pCheckButtonData )