LibreOffice Module sc (master)  1
dataproviderdlg.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #pragma once
11 
12 #include <sal/config.h>
13 
14 #include <com/sun/star/awt/XWindow.hpp>
15 #include <vcl/idle.hxx>
16 #include <vcl/weld.hxx>
17 #include "datatableview.hxx"
18 #include <memory>
19 
20 class ScDocument;
23 class ScDBData;
24 
26 {
27 private:
28  std::shared_ptr<ScDocument> mxDoc;
29  std::unique_ptr<weld::Menu> mxStartMenu;
30  std::unique_ptr<weld::Menu> mxColumnMenu;
31  std::unique_ptr<weld::Container> mxBox;
32  css::uno::Reference<css::awt::XWindow> m_xTableParent;
34  std::unique_ptr<weld::ScrolledWindow> mxScroll;
35  std::unique_ptr<weld::Container> mxList;
36  std::unique_ptr<ScDataProviderBaseControl> mxDataProviderCtrl;
37  std::unique_ptr<weld::ComboBox> mxDBRanges;
38 
39  std::vector<std::unique_ptr<ScDataTransformationBaseControl>> maControls;
40 
42 
43  sal_uInt32 mnIndex;
45 
46  void InitMenu();
47 
48  DECL_LINK(StartMenuHdl, const OString&, void);
49  DECL_LINK(ColumnMenuHdl, const OString&, void);
50  DECL_LINK(ImportHdl, ScDataProviderBaseControl*, void);
51  DECL_LINK(ScrollToEnd, Timer*, void);
52 
53 public:
54  ScDataProviderDlg(weld::Window* pWindow, std::shared_ptr<ScDocument> pDoc,
55  const ScDocument* pDocument);
56  virtual ~ScDataProviderDlg() override;
57 
58  void applyAndQuit();
59  void cancelAndQuit();
60 
61  void deleteColumn();
62  void splitColumn();
63  void mergeColumns();
64  void textTransformation();
65  void sortTransformation();
66  void aggregateFunction();
67  void numberTransformation();
68  void deletefromList(sal_uInt32 nIndex);
71 
72  void import(ScDocument& rDoc, bool bInternal = false);
73 };
74 
75 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::unique_ptr< ScDataProviderBaseControl > mxDataProviderCtrl
std::shared_ptr< ScDocument > mxDoc
std::unique_ptr< weld::ScrolledWindow > mxScroll
std::unique_ptr< weld::Menu > mxColumnMenu
std::unique_ptr< weld::Container > mxBox
std::unique_ptr< weld::Menu > mxStartMenu
css::uno::Reference< css::awt::XWindow > m_xTableParent
void deletefromList(sal_uInt32 nIndex)
virtual ~ScDataProviderDlg() override
ScDataProviderDlg(weld::Window *pWindow, std::shared_ptr< ScDocument > pDoc, const ScDocument *pDocument)
std::unique_ptr< weld::ComboBox > mxDBRanges
VclPtr< ScDataTableView > mxTable
std::vector< std::unique_ptr< ScDataTransformationBaseControl > > maControls
std::unique_ptr< weld::Container > mxList
DECL_LINK(StartMenuHdl, const OString &, void)