LibreOffice Module fpicker (master) 1
RemoteFilesDialog.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 "autocmpledit.hxx"
13#include <svtools/place.hxx>
14
16
17#include <vcl/svapp.hxx>
18
19#include <com/sun/star/beans/StringPair.hpp>
20#include <com/sun/star/uno/Sequence.hxx>
21#include <com/sun/star/task/XPasswordContainer2.hpp>
22
23#include <vector>
24
25#include "asyncfilepicker.hxx"
26#include "fpdialogbase.hxx"
27#include "breadcrumb.hxx"
28#include "fileview.hxx"
29#include "foldertree.hxx"
30
31using namespace ::com::sun::star::beans;
32using namespace ::com::sun::star::task;
33using namespace ::com::sun::star::uno;
34using namespace ::com::sun::star::ui::dialogs;
35
37{
40};
41
43{
46};
47
48typedef std::shared_ptr< Place > ServicePtr;
49
51{
52public:
54 virtual ~RemoteFilesDialog() override;
55
56 virtual short run() override;
57
58 // SvtFileDialog_Base
59
60 virtual SvtFileView* GetView() override;
61
62 virtual void SetHasFilename( bool ) override;
63 virtual void SetDenyList( const css::uno::Sequence< OUString >& rDenyList ) override;
64 virtual const css::uno::Sequence< OUString >& GetDenyList() const override;
65 virtual void SetStandardDir( const OUString& rStdDir ) override;
66 virtual const OUString& GetStandardDir() const override;
67 virtual void SetPath( const OUString& rNewURL ) override;
68 virtual const OUString& GetPath() override;
69 virtual std::vector<OUString> GetPathList() const override;
70 virtual bool ContentIsFolder( const OUString& rURL ) override;
71 bool ContentIsDocument(const OUString& rURL);
72
73 virtual OUString getCurrentFileText() const override;
74 virtual void setCurrentFileText( const OUString& rText, bool bSelectAll = false ) override;
75
76 virtual void AddFilter( const OUString& rFilter, const OUString& rType ) override;
77 virtual void AddFilterGroup( const OUString& _rFilter,
78 const css::uno::Sequence< css::beans::StringPair >& rFilters ) override;
79 virtual OUString GetCurFilter() const override;
80 virtual void SetCurFilter( const OUString& rFilter ) override;
81 virtual void FilterSelect() override;
82
83 virtual void SetFileCallback( ::svt::IFilePickerListener *pNotifier ) override;
84 virtual void onAsyncOperationStarted() override;
85 virtual void onAsyncOperationFinished() override;
86 virtual void UpdateControls( const OUString& rURL ) override;
87
88 virtual void EnableAutocompletion( bool = true) override;
89
90 virtual sal_Int32 getAvailableWidth() override;
91 virtual sal_Int32 getAvailableHeight() override;
92
93 virtual void setImage( const css::uno::Any& rImage ) override;
94
95 virtual bool getShowState() override;
96
97 virtual weld::Widget* getControl( sal_Int16 nControlId, bool bLabelControl = false ) const override;
98 virtual void enableControl( sal_Int16 nControlId, bool bEnable ) override;
99 virtual OUString getCurFilter( ) const override;
100
101private:
102 Reference< XComponentContext > m_xContext;
103 Reference< XPasswordContainer2 > m_xMasterPasswd;
104
110
111 OUString m_sIniKey;
112
114
115 OUString m_sPath;
116 OUString m_sStdDir;
117 OUString m_sRootLabel;
120
122
123 css::uno::Sequence< OUString > m_aDenyList;
124
125 std::unique_ptr<weld::Button> m_xOk_btn;
126 std::unique_ptr<weld::Button> m_xCancel_btn;
127 std::unique_ptr<weld::MenuButton> m_xManageServices;
128 std::unique_ptr<weld::ComboBox> m_xServices_lb;
129 std::unique_ptr<weld::Container> m_xPathContainer;
130 std::unique_ptr<Breadcrumb> m_xPath;
131 std::unique_ptr<weld::Button> m_xNewFolder;
132 std::unique_ptr<weld::ToggleButton> m_xListView_btn;
133 std::unique_ptr<weld::ToggleButton> m_xIconView_btn;
134 std::unique_ptr<FolderTree> m_xTreeView;
135 std::unique_ptr<SvtFileView> m_xFileView;
136 std::unique_ptr<weld::Container> m_xContainer;
137 std::unique_ptr<weld::ComboBox> m_xFilter_lb;
138 std::unique_ptr<AutocompleteEdit> m_xName_ed;
139
140 std::vector< ServicePtr > m_aServices;
141 std::vector< std::pair< OUString, OUString > > m_aFilters;
142
143 void InitSize();
144
145 void FillServicesListbox();
146
147 /* If failure returns < 0 */
149
150 void OpenURL( OUString const & sURL );
151
152 OUString AddFileExtension(const OUString& rFileName);
153
154 void EnableExtraMenuItems(bool bEnable);
155 void EnableControls();
156 void DisableControls();
157
158 void SavePassword(const OUString& rURL, const OUString& rUser,
159 const OUString& rPassword, bool bPersistent);
160
161 void AddService();
162
163 DECL_LINK ( SelectServiceHdl, weld::ComboBox&, void );
164 DECL_LINK ( EditServiceMenuHdl, const OUString&, void );
165
166 DECL_LINK( DoubleClickHdl, SvtFileView*, bool );
167 DECL_LINK( SelectHdl, SvtFileView*, void );
168
169 DECL_LINK( FileNameGetFocusHdl, weld::Widget&, void );
170 DECL_LINK( FileNameModifyHdl, weld::Entry&, void );
171
172 DECL_LINK( SelectFilterHdl, weld::ComboBox&, void );
173
174 DECL_LINK( TreeSelectHdl, weld::TreeView&, void );
175
176 DECL_LINK( SelectBreadcrumbHdl, Breadcrumb*, bool );
177
178 DECL_LINK( NewFolderHdl, weld::Button&, void );
179 DECL_LINK( IconViewHdl, weld::Button&, void );
180 DECL_LINK( ListViewHdl, weld::Button&, void );
181
182 DECL_LINK( OkHdl, weld::Button&, void );
183 DECL_LINK( CancelHdl, weld::Button&, void );
184};
185
186/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_Int16 nControlId
SvtRemoteDlgType
@ REMOTEDLG_TYPE_PATHDLG
@ REMOTEDLG_TYPE_FILEDLG
SvtRemoteDlgMode
@ REMOTEDLG_MODE_SAVE
@ REMOTEDLG_MODE_OPEN
std::shared_ptr< Place > ServicePtr
DECL_LINK(IconViewHdl, weld::Button &, void)
DECL_LINK(ListViewHdl, weld::Button &, void)
void EnableExtraMenuItems(bool bEnable)
virtual bool getShowState() override
DECL_LINK(FileNameGetFocusHdl, weld::Widget &, void)
std::vector< ServicePtr > m_aServices
OUString AddFileExtension(const OUString &rFileName)
DECL_LINK(SelectHdl, SvtFileView *, void)
void OpenURL(OUString const &sURL)
std::unique_ptr< weld::ComboBox > m_xFilter_lb
DECL_LINK(EditServiceMenuHdl, const OUString &, void)
DECL_LINK(SelectFilterHdl, weld::ComboBox &, void)
std::unique_ptr< weld::ToggleButton > m_xIconView_btn
virtual void onAsyncOperationFinished() override
virtual OUString getCurFilter() const override
std::unique_ptr< weld::Container > m_xContainer
std::unique_ptr< weld::Button > m_xNewFolder
virtual OUString GetCurFilter() const override
virtual const css::uno::Sequence< OUString > & GetDenyList() const override
virtual void EnableAutocompletion(bool=true) override
DECL_LINK(CancelHdl, weld::Button &, void)
void SavePassword(const OUString &rURL, const OUString &rUser, const OUString &rPassword, bool bPersistent)
std::unique_ptr< weld::Button > m_xCancel_btn
std::unique_ptr< weld::Container > m_xPathContainer
virtual void onAsyncOperationStarted() override
virtual void SetDenyList(const css::uno::Sequence< OUString > &rDenyList) override
virtual const OUString & GetStandardDir() const override
virtual void AddFilter(const OUString &rFilter, const OUString &rType) override
css::uno::Sequence< OUString > m_aDenyList
Reference< XComponentContext > m_xContext
DECL_LINK(SelectBreadcrumbHdl, Breadcrumb *, bool)
std::unique_ptr< SvtFileView > m_xFileView
DECL_LINK(FileNameModifyHdl, weld::Entry &, void)
std::vector< std::pair< OUString, OUString > > m_aFilters
std::unique_ptr< FolderTree > m_xTreeView
virtual std::vector< OUString > GetPathList() const override
virtual void SetCurFilter(const OUString &rFilter) override
virtual void setImage(const css::uno::Any &rImage) override
virtual void enableControl(sal_Int16 nControlId, bool bEnable) override
virtual sal_Int32 getAvailableHeight() override
virtual short run() override
bool ContentIsDocument(const OUString &rURL)
virtual weld::Widget * getControl(sal_Int16 nControlId, bool bLabelControl=false) const override
::rtl::Reference< ::svt::AsyncPickerAction > m_pCurrentAsyncAction
std::unique_ptr< AutocompleteEdit > m_xName_ed
std::unique_ptr< Breadcrumb > m_xPath
virtual void SetPath(const OUString &rNewURL) override
virtual void SetStandardDir(const OUString &rStdDir) override
virtual const OUString & GetPath() override
virtual void UpdateControls(const OUString &rURL) override
virtual void AddFilterGroup(const OUString &_rFilter, const css::uno::Sequence< css::beans::StringPair > &rFilters) override
virtual void SetHasFilename(bool) override
virtual OUString getCurrentFileText() const override
std::unique_ptr< weld::ComboBox > m_xServices_lb
virtual void setCurrentFileText(const OUString &rText, bool bSelectAll=false) override
virtual void SetFileCallback(::svt::IFilePickerListener *pNotifier) override
std::unique_ptr< weld::Button > m_xOk_btn
std::unique_ptr< weld::MenuButton > m_xManageServices
Reference< XPasswordContainer2 > m_xMasterPasswd
virtual SvtFileView * GetView() override
SvtRemoteDlgMode m_eMode
RemoteFilesDialog(weld::Window *pParent, PickerFlags nBits)
DECL_LINK(TreeSelectHdl, weld::TreeView &, void)
DECL_LINK(DoubleClickHdl, SvtFileView *, bool)
virtual bool ContentIsFolder(const OUString &rURL) override
DECL_LINK(OkHdl, weld::Button &, void)
virtual ~RemoteFilesDialog() override
virtual sal_Int32 getAvailableWidth() override
DECL_LINK(NewFolderHdl, weld::Button &, void)
DECL_LINK(SelectServiceHdl, weld::ComboBox &, void)
virtual void FilterSelect() override
SvtRemoteDlgType m_eType
std::unique_ptr< weld::ToggleButton > m_xListView_btn
PickerFlags