21 #include <com/sun/star/task/InteractionHandler.hpp>
22 #include <com/sun/star/task/PasswordContainer.hpp>
23 #include <com/sun/star/task/UrlRecord.hpp>
24 #include <com/sun/star/task/XPasswordContainer2.hpp>
37 : GenericDialogController(pParent,
"cui/ui/storedwebconnectiondialog.ui",
"StoredWebConnectionDialog")
39 , m_xRemoveBtn(m_xBuilder->weld_button(
"remove"))
40 , m_xRemoveAllBtn(m_xBuilder->weld_button(
"removeall"))
41 , m_xChangeBtn(m_xBuilder->weld_button(
"change"))
42 , m_xPasswordsLB(m_xBuilder->weld_tree_view(
"logins"))
44 std::vector<int> aWidths;
45 aWidths.push_back(
m_xPasswordsLB->get_approximate_digit_width() * 50);
73 m_xPasswordsLB->set_sort_order(!m_xPasswordsLB->get_sort_order());
81 uno::Reference< task::XPasswordContainer2 > xMasterPasswd(
84 if ( xMasterPasswd->isPersistentStoringAllowed() )
86 uno::Reference< task::XInteractionHandler > xInteractionHandler =
89 const uno::Sequence< task::UrlRecord > aURLEntries = xMasterPasswd->getAllPersistent( xInteractionHandler );
91 for ( task::UrlRecord
const & urlEntry : aURLEntries )
93 for (
auto const & user : urlEntry.UserList )
104 const uno::Sequence< OUString > aUrls
105 = xMasterPasswd->getUrls(
true );
107 for ( OUString
const & url : aUrls )
115 catch( uno::Exception& )
124 int nEntry = m_xPasswordsLB->get_selected_index();
127 OUString
aURL = m_xPasswordsLB->get_text(nEntry, 0);
128 OUString aUserName = m_xPasswordsLB->get_text(nEntry, 1);
130 uno::Reference< task::XPasswordContainer2 > xPasswdContainer(
133 int nPos = m_xPasswordsLB->get_id(nEntry).toInt32();
136 xPasswdContainer->removePersistent( aURL, aUserName );
140 xPasswdContainer->removeUrl( aURL );
143 m_xPasswordsLB->remove(nEntry);
146 catch( uno::Exception& )
154 uno::Reference< task::XPasswordContainer2 > xPasswdContainer(
158 xPasswdContainer->removeAllPersistent();
160 const uno::Sequence< OUString > aUrls
161 = xPasswdContainer->getUrls(
true );
162 for ( OUString
const & url : aUrls )
163 xPasswdContainer->removeUrl( url );
165 m_xPasswordsLB->clear();
167 catch( uno::Exception& )
175 int nEntry = m_xPasswordsLB->get_selected_index();
178 OUString
aURL = m_xPasswordsLB->get_text(nEntry, 0);
179 OUString aUserName = m_xPasswordsLB->get_text(nEntry, 1);
182 = new ::comphelper::SimplePasswordRequest;
183 uno::Reference< task::XInteractionRequest > rRequest( pPasswordRequest );
185 uno::Reference< task::XInteractionHandler > xInteractionHandler =
187 xInteractionHandler->handle( rRequest );
191 OUString aNewPass = pPasswordRequest->
getPassword();
192 uno::Sequence<OUString> aPasswd { aNewPass };
194 uno::Reference< task::XPasswordContainer2 > xPasswdContainer(
196 xPasswdContainer->addPersistent(
197 aURL, aUserName, aPasswd, xInteractionHandler );
201 catch( uno::Exception& )
208 int nEntry = m_xPasswordsLB->get_selected_index();
211 m_xRemoveBtn->set_sensitive(
false);
212 m_xChangeBtn->set_sensitive(
false);
216 m_xRemoveBtn->set_sensitive(
true);
220 int nPos = m_xPasswordsLB->get_id(nEntry).toInt32();
221 m_xChangeBtn->set_sensitive(nPos <
m_nPos);
#define LINK(Instance, Class, Member)
std::unique_ptr< weld::Button > m_xRemoveAllBtn
std::unique_ptr< weld::Button > m_xRemoveBtn
std::unique_ptr< weld::Button > m_xChangeBtn
std::unique_ptr< weld::TreeView > m_xPasswordsLB
virtual ~WebConnectionInfoDialog() override
OUString getPassword() const
IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox &, rBox, void)
WebConnectionInfoDialog(weld::Window *pParent)
Reference< XExecutableDialog > m_xDialog
Reference< XComponentContext > getProcessComponentContext()
IMPL_LINK_NOARG(AccessibilityCheckEntry, GotoButtonClicked, weld::Button &, void)