[Libreoffice-commits] core.git: sc/source

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Sat Sep 26 19:43:48 UTC 2020


 sc/source/ui/inc/FilterFloatingWindow.hxx |   37 +++++++++++++++++
 sc/source/ui/inc/FilterListBox.hxx        |   65 ++++++++++++++++++++++++++++++
 sc/source/ui/inc/gridwin.hxx              |    3 -
 sc/source/ui/view/gridwin.cxx             |   63 +----------------------------
 4 files changed, 107 insertions(+), 61 deletions(-)

New commits:
commit 7f849f8cbc2ac6618e8b9cf61570942734318295
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue Sep 1 16:29:15 2020 +0200
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat Sep 26 21:43:00 2020 +0200

    sc: move FilterFloatingWindow and FilterListBox out of gridwin.cxx
    
    Change-Id: Ic6e4bb2be86f8c89ac1e5386eb78fe17036b4cc5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103404
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/sc/source/ui/inc/FilterFloatingWindow.hxx b/sc/source/ui/inc/FilterFloatingWindow.hxx
new file mode 100644
index 000000000000..71c13c62c864
--- /dev/null
+++ b/sc/source/ui/inc/FilterFloatingWindow.hxx
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/floatwin.hxx>
+
+class ScFilterFloatingWindow : public FloatingWindow
+{
+private:
+    bool m_bGridHadMouseCaptured;
+
+public:
+    ScFilterFloatingWindow(vcl::Window* pParent);
+    virtual ~ScFilterFloatingWindow() override;
+    virtual void dispose() override;
+
+    bool MouseWasCaptured() const { return m_bGridHadMouseCaptured; }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/FilterListBox.hxx b/sc/source/ui/inc/FilterListBox.hxx
new file mode 100644
index 000000000000..1a4685ff5656
--- /dev/null
+++ b/sc/source/ui/inc/FilterListBox.hxx
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/InterimItemWindow.hxx>
+
+class ScGridWindow;
+
+enum class ScFilterBoxMode
+{
+    DataSelect,
+    Scenario
+};
+
+class ScFilterListBox final : public InterimItemWindow
+{
+private:
+    std::unique_ptr<weld::TreeView> xTreeView;
+    VclPtr<ScGridWindow> pGridWin;
+    SCCOL nCol;
+    SCROW nRow;
+    bool bInit;
+    bool bCancelled;
+    sal_uLong nSel;
+    ScFilterBoxMode eMode;
+    ImplSVEvent* nAsyncSelectHdl;
+
+    DECL_LINK(SelectHdl, weld::TreeView&, bool);
+    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+    DECL_LINK(AsyncSelectHdl, void*, void);
+
+public:
+    ScFilterListBox(vcl::Window* pParent, ScGridWindow* pGrid, SCCOL nNewCol, SCROW nNewRow,
+                    ScFilterBoxMode eNewMode);
+    virtual ~ScFilterListBox() override;
+    virtual void dispose() override;
+
+    weld::TreeView& get_widget() { return *xTreeView; }
+
+    SCCOL GetCol() const { return nCol; }
+    SCROW GetRow() const { return nRow; }
+    ScFilterBoxMode GetMode() const { return eMode; }
+    void EndInit();
+    bool IsInInit() const { return bInit; }
+    void SetCancelled() { bCancelled = true; }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 1af32863045c..8a5a0a751f2f 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -31,6 +31,7 @@
 #include <memory>
 #include <vector>
 
+
 namespace editeng {
     struct MisspellRanges;
 }
@@ -46,7 +47,6 @@ struct ScTableInfo;
 class ScDPObject;
 class ScDPFieldButton;
 class ScOutputData;
-class ScFilterListBox;
 class SdrObject;
 class SdrEditView;
 class ScNoteMarker;
@@ -82,6 +82,7 @@ struct SpellCallbackInfo;
 // predefines
 namespace sdr::overlay { class OverlayObjectList; }
 
+class ScFilterListBox;
 class ScFilterFloatingWindow;
 
 class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSourceHelper
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index d0826b1fd45a..d2e6939b3826 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -37,7 +37,6 @@
 #include <sfx2/ipclient.hxx>
 #include <svl/stritem.hxx>
 #include <svl/sharedstringpool.hxx>
-#include <vcl/InterimItemWindow.hxx>
 #include <vcl/canvastools.hxx>
 #include <vcl/commandevent.hxx>
 #include <vcl/cursor.hxx>
@@ -139,19 +138,12 @@
 #include <vector>
 #include <boost/property_tree/json_parser.hpp>
 
+#include <FilterListBox.hxx>
+#include <FilterFloatingWindow.hxx>
+
 using namespace css;
 using namespace css::uno;
 
-namespace {
-
-enum class ScFilterBoxMode
-{
-    DataSelect,
-    Scenario
-};
-
-}
-
 struct ScGridWindow::MouseEventState
 {
     bool mbActivatePart;
@@ -188,39 +180,6 @@ bool ScGridWindow::VisibleRange::set(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCRO
     return bChanged;
 }
 
-class ScFilterListBox final : public InterimItemWindow
-{
-private:
-    std::unique_ptr<weld::TreeView> xTreeView;
-    VclPtr<ScGridWindow>   pGridWin;
-    SCCOL           nCol;
-    SCROW           nRow;
-    bool            bInit;
-    bool            bCancelled;
-    sal_uLong       nSel;
-    ScFilterBoxMode eMode;
-    ImplSVEvent* nAsyncSelectHdl;
-
-    DECL_LINK(SelectHdl, weld::TreeView&, bool);
-    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
-    DECL_LINK(AsyncSelectHdl, void*, void);
-
-public:
-    ScFilterListBox( vcl::Window* pParent, ScGridWindow* pGrid,
-                     SCCOL nNewCol, SCROW nNewRow, ScFilterBoxMode eNewMode );
-    virtual ~ScFilterListBox() override;
-    virtual void dispose() override;
-
-    weld::TreeView& get_widget() { return *xTreeView; }
-
-    SCCOL           GetCol() const          { return nCol; }
-    SCROW           GetRow() const          { return nRow; }
-    ScFilterBoxMode GetMode() const         { return eMode; }
-    void            EndInit();
-    bool            IsInInit() const        { return bInit; }
-    void            SetCancelled()          { bCancelled = true; }
-};
-
 //  ListBox in a FloatingWindow (pParent)
 ScFilterListBox::ScFilterListBox( vcl::Window* pParent, ScGridWindow* pGrid,
                                   SCCOL nNewCol, SCROW nNewRow, ScFilterBoxMode eNewMode ) :
@@ -316,22 +275,6 @@ IMPL_LINK_NOARG(ScFilterListBox, AsyncSelectHdl, void*, void)
     pGridWin->ClickExtern();
 }
 
-// use a System floating window for the above filter listbox
-class ScFilterFloatingWindow : public FloatingWindow
-{
-private:
-    bool m_bGridHadMouseCaptured;
-public:
-    ScFilterFloatingWindow(vcl::Window* pParent);
-    virtual ~ScFilterFloatingWindow() override;
-    virtual void dispose() override;
-
-    bool MouseWasCaptured() const
-    {
-        return m_bGridHadMouseCaptured;
-    }
-};
-
 ScFilterFloatingWindow::ScFilterFloatingWindow(vcl::Window* pParent)
     : FloatingWindow( pParent, WB_BORDER | WB_SYSTEMWINDOW ) // make it a system floater
     , m_bGridHadMouseCaptured(pParent->IsMouseCaptured())


More information about the Libreoffice-commits mailing list