/* -*- 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/. */ #pragma once #include #include #include #include #include class Place; class DetailsContainer; class UNLESS_MERGELIBS(SVT_DLLPUBLIC) PlaceEditDialog final : public weld::GenericDialogController { private: std::shared_ptr m_xCurrentDetails; /** Vector holding the details UI control for each server type. The elements in this vector need to match the order in the type listbox, e.g. the m_aDetailsContainer[0] will be shown for the type corresponding to entry 0 in the listbox. */ std::vector> m_aDetailsContainers; sal_Int32 m_nCurrentType; bool m_bLabelChanged; bool m_bShowPassword; public: std::unique_ptr m_xEDServerName; std::unique_ptr m_xLBServerType; std::unique_ptr m_xEDUsername; std::unique_ptr m_xFTUsernameLabel; std::unique_ptr m_xBTOk; std::unique_ptr m_xBTCancel; std::unique_ptr m_xBTDelete; std::unique_ptr m_xBTRepoRefresh; std::unique_ptr m_xCBPassword; std::unique_ptr m_xEDPassword; std::unique_ptr m_xFTPasswordLabel; std::unique_ptr m_xTypeGrid; std::unique_ptr m_xRepositoryBox; std::unique_ptr m_xFTRepository; std::unique_ptr m_xLBRepository; std::unique_ptr m_xEDShare; std::unique_ptr m_xFTShare; std::unique_ptr m_xDetailsGrid; std::unique_ptr m_xHostBox; std::unique_ptr m_xEDHost; std::unique_ptr m_xFTHost; std::unique_ptr m_xEDPort; std::unique_ptr m_xFTPort; std::unique_ptr m_xEDRoot; std::unique_ptr m_xFTRoot; std::unique_ptr m_xCBDavs; public: PlaceEditDialog(weld::Window* pParent); PlaceEditDialog(weld::Window* pParent, const std::shared_ptr& rPlace); virtual ~PlaceEditDialog() override; // Returns a place instance with given information std::shared_ptr GetPlace(); OUString GetServerName() const { return m_xEDServerName->get_text(); } OUString GetServerUrl(); OUString GetPassword() const { return m_xEDPassword->get_text(); }; OUString GetUser() const { return m_xEDUsername->get_text(); }; bool IsRememberChecked() const { return m_xCBPassword->get_active(); } void ShowPasswordControl() { m_bShowPassword = true; } private: void InitDetails(); DECL_LINK(OKHdl, weld::Button&, void); DECL_LINK(DelHdl, weld::Button&, void); DECL_LINK(EditHdl, DetailsContainer*, void); DECL_LINK(ModifyHdl, weld::Entry&, void); void SelectType(bool bSkipSeparator); DECL_LINK(SelectTypeHdl, weld::ComboBox&, void); DECL_LINK(EditLabelHdl, weld::Entry&, void); DECL_LINK(EditUsernameHdl, weld::Entry&, void); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */