[Libreoffice-commits] core.git: include/vcl sw/source vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Thu Mar 26 08:45:46 UTC 2020


 include/vcl/weldutils.hxx          |    2 ++
 sw/source/uibase/utlui/content.cxx |   16 ++--------------
 vcl/source/window/builder.cxx      |   19 +++++++++++++++++++
 3 files changed, 23 insertions(+), 14 deletions(-)

New commits:
commit dbaac810a59a391e6ba5c52c6b6b38088cc1ace7
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Mar 25 16:44:46 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Thu Mar 26 09:45:03 2020 +0100

    extract GetAbsPos for reuse
    
    Change-Id: Ida6b70f4166f8b1e19990300a5856ee54556a9f8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91065
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/vcl/weldutils.hxx b/include/vcl/weldutils.hxx
index fdc9e8cf30d6..077dab0fa414 100644
--- a/include/vcl/weldutils.hxx
+++ b/include/vcl/weldutils.hxx
@@ -152,6 +152,8 @@ public:
         m_aPaintListeners.removeInterface(rListener);
     }
 };
+
+VCL_DLLPUBLIC size_t GetAbsPos(const weld::TreeView& rTreeView, const weld::TreeIter& rIter);
 }
 
 #endif
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index cfa216925470..49f936959429 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -31,6 +31,7 @@
 #include <vcl/commandevent.hxx>
 #include <vcl/help.hxx>
 #include <vcl/settings.hxx>
+#include <vcl/weldutils.hxx>
 #include <sot/formats.hxx>
 #include <uiitems.hxx>
 #include <fmtinfmt.hxx>
@@ -1755,20 +1756,7 @@ namespace
 
 size_t SwContentTree::GetAbsPos(const weld::TreeIter& rIter)
 {
-    size_t nAbsPos = 0;
-
-    std::unique_ptr<weld::TreeIter> xEntry(m_xTreeView->make_iterator(&rIter));
-    if (!m_xTreeView->get_iter_first(*xEntry))
-        xEntry.reset();
-
-    while (xEntry && m_xTreeView->iter_compare(*xEntry, rIter) != 0)
-    {
-        if (!m_xTreeView->iter_next(*xEntry))
-            xEntry.reset();
-        nAbsPos++;
-    }
-
-    return nAbsPos;
+    return weld::GetAbsPos(*m_xTreeView, rIter);
 }
 
 size_t SwContentTree::GetEntryCount() const
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index f9329cbecc52..f3ed31051d94 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -51,6 +51,7 @@
 #include <vcl/settings.hxx>
 #include <slider.hxx>
 #include <vcl/weld.hxx>
+#include <vcl/weldutils.hxx>
 #include <vcl/commandinfoprovider.hxx>
 #include <iconview.hxx>
 #include <svdata.hxx>
@@ -422,6 +423,24 @@ namespace weld
         int nHeight = nRows == -1 ? -1 : m_xTreeView->get_height_rows(nRows);
         m_xTreeView->set_size_request(m_xTreeView->get_size_request().Width(), nHeight);
     }
+
+    size_t GetAbsPos(const weld::TreeView& rTreeView, const weld::TreeIter& rIter)
+    {
+        size_t nAbsPos = 0;
+
+        std::unique_ptr<weld::TreeIter> xEntry(rTreeView.make_iterator(&rIter));
+        if (!rTreeView.get_iter_first(*xEntry))
+            xEntry.reset();
+
+        while (xEntry && rTreeView.iter_compare(*xEntry, rIter) != 0)
+        {
+            if (!rTreeView.iter_next(*xEntry))
+                xEntry.reset();
+            nAbsPos++;
+        }
+
+        return nAbsPos;
+    }
 }
 
 VclBuilder::VclBuilder(vcl::Window* pParent, const OUString& sUIDir, const OUString& sUIFile,


More information about the Libreoffice-commits mailing list