1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_sw.hxx" 26 #ifdef SW_DLLIMPLEMENTATION 27 #undef SW_DLLIMPLEMENTATION 28 #endif 29 30 31 #include <swtypes.hxx> 32 #include <mailconfigpage.hxx> 33 #include <svtools/svmedit.hxx> 34 #include <svtools/stdctrl.hxx> 35 #include <svtools/svtabbx.hxx> 36 #include <svtools/headbar.hxx> 37 #include <mmconfigitem.hxx> 38 #include <mailmergehelper.hxx> 39 #ifndef _CMDID_H 40 #include <cmdid.h> 41 #endif 42 #include <vcl/svapp.hxx> 43 #include <comphelper/processfactory.hxx> 44 #include "com/sun/star/mail/MailServiceType.hpp" 45 #include "com/sun/star/mail/XMailService.hpp" 46 #include "com/sun/star/mail/MailServiceProvider.hpp" 47 #include <vcl/msgbox.hxx> 48 #include <globals.hrc> 49 #include <mailconfigpage.hrc> 50 #include <config.hrc> 51 #include <helpid.h> 52 53 using namespace ::com::sun::star; 54 using namespace ::com::sun::star::lang; 55 using namespace ::com::sun::star::mail; 56 using namespace ::com::sun::star::beans; 57 using ::rtl::OUString; 58 /*-- 06.05.2004 12:04:11--------------------------------------------------- 59 60 -----------------------------------------------------------------------*/ 61 class SwTestAccountSettingsDialog : public SfxModalDialog 62 { 63 FixedInfo m_aInfoFI; 64 65 HeaderBar m_aStatusHB; 66 SvTabListBox m_aStatusLB; 67 68 FixedInfo m_aErrorFI; 69 MultiLineEdit m_eErrorsED; 70 71 FixedLine m_aSeparatorFL; 72 PushButton m_aStopPB; 73 CancelButton m_aCancelPB; 74 HelpButton m_aHelpPB; 75 76 ImageList m_aImageList; 77 78 String m_sTask ; 79 String m_sStatus ; 80 String m_sEstablish ; 81 String m_sFindServer ; 82 String m_sCompleted ; 83 String m_sFailed ; 84 String m_sErrorNetwork; 85 String m_sErrorServer ; 86 87 SwMailConfigPage* m_pParent; 88 89 bool m_bStop; 90 91 void Test(); 92 DECL_LINK(StopHdl, PushButton*); 93 DECL_STATIC_LINK(SwTestAccountSettingsDialog, TestHdl, void*); 94 public: 95 SwTestAccountSettingsDialog(SwMailConfigPage* pParent); 96 ~SwTestAccountSettingsDialog(); 97 }; 98 /*-- 19.08.2004 14:27:33--------------------------------------------------- 99 100 -----------------------------------------------------------------------*/ 101 class SwAuthenticationSettingsDialog : public SfxModalDialog 102 { 103 CheckBox m_aAuthenticationCB; 104 105 RadioButton m_aSeparateAuthenticationRB; 106 RadioButton m_aSMTPAfterPOPRB; 107 108 FixedInfo m_aOutgoingServerFT; 109 FixedText m_aUserNameFT; 110 Edit m_aUserNameED; 111 FixedText m_aOutPasswordFT; 112 Edit m_aOutPasswordED; 113 114 FixedInfo m_aIncomingServerFT; 115 FixedText m_aServerFT; 116 Edit m_aServerED; 117 FixedText m_aPortFT; 118 NumericField m_aPortNF; 119 FixedText m_aProtocolFT; 120 RadioButton m_aPOP3RB; 121 RadioButton m_aIMAPRB; 122 FixedText m_aInUsernameFT; 123 Edit m_aInUsernameED; 124 FixedText m_aInPasswordFT; 125 Edit m_aInPasswordED; 126 127 FixedLine m_aSeparatorFL; 128 129 OKButton m_aOKPB; 130 CancelButton m_aCancelPB; 131 HelpButton m_aHelpPB; 132 133 SwMailMergeConfigItem& rConfigItem; 134 135 DECL_LINK( OKHdl_Impl, OKButton*); 136 DECL_LINK( CheckBoxHdl_Impl, CheckBox*); 137 DECL_LINK( RadioButtonHdl_Impl, RadioButton*); 138 139 140 public: 141 SwAuthenticationSettingsDialog(SwMailConfigPage* pParent, SwMailMergeConfigItem& rItem); 142 ~SwAuthenticationSettingsDialog(); 143 }; 144 145 /*-- 06.05.2004 10:59:40--------------------------------------------------- 146 147 -----------------------------------------------------------------------*/ 148 SwMailConfigPage::SwMailConfigPage( Window* pParent, const SfxItemSet& rSet ) : 149 SfxTabPage(pParent, SW_RES(TP_MAILCONFIG), rSet), 150 #ifdef MSC 151 #pragma warning (disable : 4355) 152 #endif 153 m_aIdentityFL( this, SW_RES( FL_IDENTITY)), 154 m_aDisplayNameFT( this, SW_RES( FT_DISPLAYNAME)), 155 m_aDisplayNameED( this, SW_RES( ED_DISPLAYNAME)), 156 m_aAddressFT( this, SW_RES( FT_ADDRESS)), 157 m_aAddressED( this, SW_RES( ED_ADDRESS)), 158 m_aReplyToCB( this, SW_RES( CB_REPLYTO)), 159 m_aReplyToFT( this, SW_RES( FT_REPLYTO)), 160 m_aReplyToED( this, SW_RES( ED_REPLYTO)), 161 m_aSMTPFL( this, SW_RES( FL_SMTP)), 162 m_aServerFT( this, SW_RES( FT_SERVER)), 163 m_aServerED( this, SW_RES( ED_SERVER)), 164 m_aPortFT( this, SW_RES( FT_PORT)), 165 m_aPortNF( this, SW_RES( NF_PORT)), 166 m_aSecureCB( this, SW_RES( CB_SECURE)), 167 m_aServerAuthenticationPB( this, SW_RES( PB_AUTHENTICATION )), 168 m_aSeparatorFL( this, SW_RES( FL_SEPARATOR )), 169 m_aTestPB( this, SW_RES( PB_TEST)), 170 #ifdef MSC 171 #pragma warning (default : 4355) 172 #endif 173 m_pConfigItem( new SwMailMergeConfigItem ) 174 { 175 FreeResource(); 176 m_aReplyToCB.SetClickHdl(LINK(this, SwMailConfigPage, ReplyToHdl)); 177 m_aServerAuthenticationPB.SetClickHdl(LINK(this, SwMailConfigPage, AuthenticationHdl)); 178 m_aTestPB.SetClickHdl(LINK(this, SwMailConfigPage, TestHdl)); 179 } 180 /*-- 06.05.2004 10:59:40--------------------------------------------------- 181 182 -----------------------------------------------------------------------*/ 183 SwMailConfigPage::~SwMailConfigPage() 184 { 185 delete m_pConfigItem; 186 } 187 /*-- 06.05.2004 10:59:40--------------------------------------------------- 188 189 -----------------------------------------------------------------------*/ 190 SfxTabPage* SwMailConfigPage::Create( Window* pParent, const SfxItemSet& rAttrSet) 191 { 192 return new SwMailConfigPage(pParent, rAttrSet); 193 } 194 /*-- 06.05.2004 10:59:41--------------------------------------------------- 195 196 -----------------------------------------------------------------------*/ 197 sal_Bool SwMailConfigPage::FillItemSet( SfxItemSet& /*rSet*/ ) 198 { 199 if(m_aDisplayNameED.GetText() != m_aDisplayNameED.GetSavedValue()) 200 m_pConfigItem->SetMailDisplayName(m_aDisplayNameED.GetText()); 201 if(m_aAddressED.GetText() != m_aAddressED.GetSavedValue()) 202 m_pConfigItem->SetMailAddress(m_aAddressED.GetText()); 203 String sReplyTo; 204 if( m_aReplyToCB.GetSavedValue() != m_aReplyToCB.IsChecked()) 205 m_pConfigItem->SetMailReplyTo(m_aReplyToCB.IsChecked()); 206 if(m_aReplyToED.GetText() != m_aReplyToED.GetSavedValue()) 207 m_pConfigItem->SetMailReplyTo(m_aReplyToED.GetText()); 208 if(m_aServerED.GetText() != m_aServerED.GetSavedValue()) 209 m_pConfigItem->SetMailServer(m_aServerED.GetText()); 210 211 if(m_aPortNF.IsModified()) 212 m_pConfigItem->SetMailPort((sal_Int16)m_aPortNF.GetValue()); 213 214 m_pConfigItem->SetSecureConnection(m_aSecureCB.IsChecked()); 215 216 m_pConfigItem->Commit(); 217 return sal_True; 218 } 219 /*-- 06.05.2004 10:59:41--------------------------------------------------- 220 221 -----------------------------------------------------------------------*/ 222 void SwMailConfigPage::Reset( const SfxItemSet& /*rSet*/ ) 223 { 224 m_aDisplayNameED.SetText(m_pConfigItem->GetMailDisplayName()); 225 m_aAddressED.SetText(m_pConfigItem->GetMailAddress()); 226 227 m_aReplyToED.SetText(m_pConfigItem->GetMailReplyTo()) ; 228 m_aReplyToCB.Check(m_pConfigItem->IsMailReplyTo()); 229 m_aReplyToCB.GetClickHdl().Call(&m_aReplyToCB); 230 231 m_aServerED.SetText(m_pConfigItem->GetMailServer()); 232 m_aPortNF.SetValue(m_pConfigItem->GetMailPort()); 233 234 m_aSecureCB.Check(m_pConfigItem->IsSecureConnection()); 235 236 m_aDisplayNameED.SaveValue(); 237 m_aAddressED .SaveValue(); 238 m_aReplyToCB .SaveValue(); 239 m_aReplyToED .SaveValue(); 240 m_aServerED .SaveValue(); 241 m_aPortNF .SaveValue(); 242 m_aSecureCB .SaveValue(); 243 } 244 /*-- 06.05.2004 10:59:41--------------------------------------------------- 245 246 -----------------------------------------------------------------------*/ 247 IMPL_LINK(SwMailConfigPage, ReplyToHdl, CheckBox*, pBox) 248 { 249 sal_Bool bEnable = pBox->IsChecked(); 250 m_aReplyToFT.Enable(bEnable); 251 m_aReplyToED.Enable(bEnable); 252 return 0; 253 } 254 /*-- 06.05.2004 10:59:41--------------------------------------------------- 255 256 -----------------------------------------------------------------------*/ 257 IMPL_LINK(SwMailConfigPage, AuthenticationHdl, PushButton*, EMPTYARG) 258 { 259 SwAuthenticationSettingsDialog aDlg(this, *m_pConfigItem); 260 aDlg.Execute(); 261 return 0; 262 } 263 /*-- 06.05.2004 10:59:42--------------------------------------------------- 264 265 -----------------------------------------------------------------------*/ 266 IMPL_LINK(SwMailConfigPage, TestHdl, PushButton*, EMPTYARG) 267 { 268 SwTestAccountSettingsDialog(this).Execute(); 269 return 0; 270 } 271 /*-- 06.05.2004 12:11:13--------------------------------------------------- 272 273 -----------------------------------------------------------------------*/ 274 SwTestAccountSettingsDialog::SwTestAccountSettingsDialog(SwMailConfigPage* pParent) : 275 SfxModalDialog(pParent, SW_RES(DLG_MM_TESTACCOUNTSETTINGS)), 276 #ifdef MSC 277 #pragma warning (disable : 4355) 278 #endif 279 m_aInfoFI( this, SW_RES( FI_INFO )), 280 m_aStatusHB( this, WB_BUTTONSTYLE | WB_BOTTOMBORDER), 281 m_aStatusLB( this, SW_RES( LB_STATUS )), 282 m_aErrorFI( this, SW_RES( FI_ERROR )), 283 m_eErrorsED( this, SW_RES( ED_ERROR )), 284 m_aSeparatorFL( this, SW_RES( FL_SEPAPARATOR )), 285 m_aStopPB( this, SW_RES( PB_STOP )), 286 m_aCancelPB( this, SW_RES( PB_CANCEL )), 287 m_aHelpPB( this, SW_RES( PB_HELP )), 288 #ifdef MSC 289 #pragma warning (default : 4355) 290 #endif 291 m_aImageList( SW_RES( GetSettings().GetStyleSettings().GetHighContrastMode() ? ILIST_HC : ILIST) ), 292 m_sTask( SW_RES( ST_TASK )), 293 m_sStatus( SW_RES( ST_STATUS )), 294 m_sEstablish( SW_RES( ST_ESTABLISH )), 295 m_sFindServer( SW_RES( ST_FINDSERVER )), 296 m_sCompleted( SW_RES( ST_COMPLETED )), 297 m_sFailed( SW_RES( ST_FAILED )), 298 m_sErrorServer( SW_RES( ST_ERROR_SERVER )), 299 m_pParent(pParent), 300 m_bStop(false) 301 { 302 FreeResource(); 303 m_aStopPB.SetClickHdl(LINK(this, SwTestAccountSettingsDialog, StopHdl)); 304 305 Size aLBSize(m_aStatusLB.GetOutputSizePixel()); 306 m_aStatusHB.SetSizePixel(aLBSize); 307 Size aHeadSize(m_aStatusHB.CalcWindowSizePixel()); 308 aHeadSize.Width() = aLBSize.Width(); 309 m_aStatusHB.SetSizePixel(aHeadSize); 310 Point aLBPos(m_aStatusLB.GetPosPixel()); 311 m_aStatusHB.SetPosPixel(aLBPos); 312 aLBPos.Y() += aHeadSize.Height(); 313 aLBSize.Height() -= aHeadSize.Height(); 314 m_aStatusLB.SetPosSizePixel(aLBPos, aLBSize); 315 316 Size aSz(m_aStatusHB.GetOutputSizePixel()); 317 m_aStatusHB.InsertItem( 1, m_sTask, 318 aSz.Width()/2, 319 HIB_LEFT | HIB_VCENTER ); 320 m_aStatusHB.InsertItem( 2, m_sStatus, 321 aSz.Width()/2, 322 HIB_LEFT | HIB_VCENTER ); 323 324 m_aStatusHB.SetHelpId(HID_MM_TESTACCOUNTSETTINGS_HB ); 325 m_aStatusHB.Show(); 326 327 m_aStatusLB.SetHelpId(HID_MM_TESTACCOUNTSETTINGS_TLB); 328 static long nTabs[] = {2, 0, aSz.Width()/2 }; 329 m_aStatusLB.SetStyle( m_aStatusLB.GetStyle() | WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ); 330 m_aStatusLB.SetSelectionMode( SINGLE_SELECTION ); 331 m_aStatusLB.SetTabs(&nTabs[0], MAP_PIXEL); 332 short nEntryHeight = m_aStatusLB.GetEntryHeight(); 333 m_aStatusLB.SetEntryHeight( nEntryHeight * 15 / 10 ); 334 335 Application::PostUserEvent( STATIC_LINK( this, SwTestAccountSettingsDialog, TestHdl ), this ); 336 } 337 /*-- 06.05.2004 12:11:13--------------------------------------------------- 338 339 -----------------------------------------------------------------------*/ 340 SwTestAccountSettingsDialog::~SwTestAccountSettingsDialog() 341 { 342 } 343 /*-- 06.05.2004 12:15:43--------------------------------------------------- 344 345 -----------------------------------------------------------------------*/ 346 IMPL_LINK(SwTestAccountSettingsDialog, StopHdl, PushButton*, EMPTYARG) 347 { 348 m_bStop = true; 349 return 0; 350 } 351 /*-- 07.06.2004 12:44:50--------------------------------------------------- 352 353 -----------------------------------------------------------------------*/ 354 IMPL_STATIC_LINK(SwTestAccountSettingsDialog, TestHdl, void*, EMPTYARG) 355 { 356 pThis->EnterWait(); 357 pThis->Test(); 358 pThis->LeaveWait(); 359 return 0; 360 } 361 /*-- 07.06.2004 12:45:45--------------------------------------------------- 362 363 -----------------------------------------------------------------------*/ 364 void SwTestAccountSettingsDialog::Test() 365 { 366 uno::Reference<XMultiServiceFactory> rMgr = ::comphelper::getProcessServiceFactory(); 367 368 bool bIsLoggedIn = false; 369 bool bIsServer = false; 370 if (rMgr.is()) 371 { 372 try 373 { 374 uno::Reference< mail::XMailService > xInMailService; 375 uno::Reference< mail::XMailServiceProvider > xMailServiceProvider = 376 mail::MailServiceProvider::create(getCurrentCmpCtx(rMgr)); 377 uno::Reference< mail::XMailService > xMailService = 378 xMailServiceProvider->create( 379 mail::MailServiceType_SMTP); 380 if(m_bStop) 381 return; 382 uno::Reference<XConnectionListener> xConnectionListener(new SwConnectionListener()); 383 384 if(m_pParent->m_pConfigItem->IsAuthentication() && 385 m_pParent->m_pConfigItem->IsSMTPAfterPOP()) 386 { 387 xInMailService = xMailServiceProvider->create( 388 m_pParent->m_pConfigItem->IsInServerPOP() ? 389 mail::MailServiceType_POP3 : mail::MailServiceType_IMAP); 390 if(m_bStop) 391 return; 392 //authenticate at the POP or IMAP server first 393 uno::Reference<XAuthenticator> xAuthenticator = 394 new SwAuthenticator( 395 m_pParent->m_pConfigItem->GetInServerUserName(), 396 m_pParent->m_pConfigItem->GetInServerPassword(), 397 this); 398 399 xInMailService->addConnectionListener(xConnectionListener); 400 //check connection 401 uno::Reference< uno::XCurrentContext> xConnectionContext = 402 new SwConnectionContext( 403 m_pParent->m_pConfigItem->GetInServerName(), 404 m_pParent->m_pConfigItem->GetInServerPort(), 405 ::rtl::OUString::createFromAscii( "Insecure" )); 406 xInMailService->connect(xConnectionContext, xAuthenticator); 407 } 408 if(m_bStop) 409 return; 410 uno::Reference<XAuthenticator> xAuthenticator; 411 if(m_pParent->m_pConfigItem->IsAuthentication() && 412 !m_pParent->m_pConfigItem->IsSMTPAfterPOP() && 413 m_pParent->m_pConfigItem->GetMailUserName().getLength()) 414 xAuthenticator = 415 new SwAuthenticator( 416 m_pParent->m_pConfigItem->GetMailUserName(), 417 m_pParent->m_pConfigItem->GetMailPassword(), 418 this); 419 else 420 xAuthenticator = new SwAuthenticator(); 421 422 xMailService->addConnectionListener(xConnectionListener); 423 if(m_bStop) 424 return; 425 //just to check if the server exists 426 xMailService->getSupportedConnectionTypes(); 427 if(m_bStop) 428 return; 429 bIsServer = true; 430 //check connection 431 uno::Reference< uno::XCurrentContext> xConnectionContext = 432 new SwConnectionContext( 433 m_pParent->m_aServerED.GetText(), 434 sal::static_int_cast< sal_Int16, sal_Int64 >(m_pParent->m_aPortNF.GetValue()), 435 ::rtl::OUString::createFromAscii( 436 m_pParent->m_aSecureCB.IsChecked() ? "Ssl" : "Insecure")); 437 xMailService->connect(xConnectionContext, xAuthenticator); 438 bIsLoggedIn = xMailService->isConnected(); 439 if( xInMailService.is() ) 440 xInMailService->disconnect(); 441 if( xMailService->isConnected()) 442 xMailService->disconnect(); 443 } 444 catch(uno::Exception&) 445 { 446 DBG_ERROR("exception caught"); 447 } 448 } 449 450 Image aFailedImg = m_aImageList.GetImage( FN_FORMULA_CANCEL ); 451 Image aCompletedImg = m_aImageList.GetImage( FN_FORMULA_APPLY ); 452 453 String sTmp(m_sEstablish); 454 sTmp += '\t'; 455 sTmp += bIsServer ? m_sCompleted : m_sFailed; 456 m_aStatusLB.InsertEntry(sTmp, 457 bIsServer ? aCompletedImg : aFailedImg, 458 bIsServer ? aCompletedImg : aFailedImg); 459 460 sTmp = m_sFindServer; 461 sTmp += '\t'; 462 sTmp += bIsLoggedIn ? m_sCompleted : m_sFailed; 463 m_aStatusLB.InsertEntry(sTmp, 464 bIsLoggedIn ? aCompletedImg : aFailedImg, 465 bIsLoggedIn ? aCompletedImg : aFailedImg); 466 467 if(!bIsServer || !bIsLoggedIn ) 468 { 469 m_eErrorsED.SetText( m_sErrorServer ); 470 } 471 } 472 /*-- 18.08.2004 12:18:38--------------------------------------------------- 473 474 -----------------------------------------------------------------------*/ 475 SwMailConfigDlg::SwMailConfigDlg(Window* pParent, SfxItemSet& rSet ) : 476 SfxSingleTabDialog(pParent, rSet, 0) 477 { 478 // TabPage erzeugen 479 SetTabPage(SwMailConfigPage::Create( this, rSet )); 480 } 481 /*-- 18.08.2004 12:18:38--------------------------------------------------- 482 483 -----------------------------------------------------------------------*/ 484 SwMailConfigDlg::~SwMailConfigDlg() 485 { 486 } 487 /*-- 19.08.2004 14:33:58--------------------------------------------------- 488 489 -----------------------------------------------------------------------*/ 490 SwAuthenticationSettingsDialog::SwAuthenticationSettingsDialog( 491 SwMailConfigPage* pParent, SwMailMergeConfigItem& rItem) : 492 SfxModalDialog(pParent, SW_RES(DLG_MM_SERVERAUTHENTICATION)), 493 #ifdef MSC 494 #pragma warning (disable : 4355) 495 #endif 496 m_aAuthenticationCB( this, SW_RES( CB_AUTHENTICATION )), 497 m_aSeparateAuthenticationRB( this, SW_RES( RB_SEP_AUTHENTICATION )), 498 m_aSMTPAfterPOPRB( this, SW_RES( RB_SMPTAFTERPOP )), 499 m_aOutgoingServerFT( this, SW_RES( FT_OUTGOINGSERVER )), 500 m_aUserNameFT( this, SW_RES( FT_USERNAME )), 501 m_aUserNameED( this, SW_RES( ED_USERNAME )), 502 m_aOutPasswordFT( this, SW_RES( FT_OUTPASSWORD )), 503 m_aOutPasswordED( this, SW_RES( ED_OUTPASSWORD )), 504 m_aIncomingServerFT( this, SW_RES( FT_INCOMINGSERVER )), 505 m_aServerFT( this, SW_RES( FT_SERVER )), 506 m_aServerED( this, SW_RES( ED_SERVER )), 507 m_aPortFT( this, SW_RES( FT_PORT )), 508 m_aPortNF( this, SW_RES( NF_PORT )), 509 m_aProtocolFT( this, SW_RES( FT_PROTOCOL )), 510 m_aPOP3RB( this, SW_RES( RB_POP3 )), 511 m_aIMAPRB( this, SW_RES( RB_IMAP )), 512 m_aInUsernameFT( this, SW_RES( FT_INUSERNAME )), 513 m_aInUsernameED( this, SW_RES( ED_INUSERNAME )), 514 m_aInPasswordFT( this, SW_RES( FT_INPASSWORD )), 515 m_aInPasswordED( this, SW_RES( ED_INPASSWORD )), 516 m_aSeparatorFL( this, SW_RES( FL_SEPARATOR )), 517 m_aOKPB( this, SW_RES( PB_OK )), 518 m_aCancelPB( this, SW_RES( PB_CANCEL )), 519 m_aHelpPB( this, SW_RES( PB_HELP )), 520 #ifdef MSC 521 #pragma warning (default : 4355) 522 #endif 523 rConfigItem( rItem ) 524 { 525 FreeResource(); 526 527 m_aAuthenticationCB.SetClickHdl( LINK( this, SwAuthenticationSettingsDialog, CheckBoxHdl_Impl)); 528 Link aRBLink = LINK( this, SwAuthenticationSettingsDialog, RadioButtonHdl_Impl ); 529 m_aSeparateAuthenticationRB.SetClickHdl( aRBLink ); 530 m_aSMTPAfterPOPRB.SetClickHdl( aRBLink ); 531 m_aOKPB.SetClickHdl( LINK( this, SwAuthenticationSettingsDialog, OKHdl_Impl)); 532 533 m_aAuthenticationCB.Check( rConfigItem.IsAuthentication() ); 534 if(rConfigItem.IsSMTPAfterPOP()) 535 m_aSMTPAfterPOPRB.Check(); 536 else 537 m_aSeparateAuthenticationRB.Check(); 538 m_aUserNameED.SetText( rConfigItem.GetMailUserName() ); 539 m_aOutPasswordED.SetText( rConfigItem.GetMailPassword() ); 540 541 m_aServerED.SetText( rConfigItem.GetInServerName() ); 542 m_aPortNF.SetValue( rConfigItem.GetInServerPort() ); 543 if(rConfigItem.IsInServerPOP()) 544 m_aPOP3RB.Check(); 545 else 546 m_aIMAPRB.Check(); 547 m_aInUsernameED.SetText( rConfigItem.GetInServerUserName()); 548 m_aInPasswordED.SetText( rConfigItem.GetInServerPassword() ); 549 550 CheckBoxHdl_Impl( &m_aAuthenticationCB ); 551 } 552 /*-- 19.08.2004 14:33:58--------------------------------------------------- 553 554 -----------------------------------------------------------------------*/ 555 SwAuthenticationSettingsDialog::~SwAuthenticationSettingsDialog() 556 { 557 } 558 /*-- 19.08.2004 14:33:59--------------------------------------------------- 559 560 -----------------------------------------------------------------------*/ 561 IMPL_LINK( SwAuthenticationSettingsDialog, OKHdl_Impl, OKButton*, EMPTYARG) 562 { 563 rConfigItem.SetAuthentication( m_aAuthenticationCB.IsChecked() ); 564 rConfigItem.SetSMTPAfterPOP(m_aSMTPAfterPOPRB.IsChecked()); 565 rConfigItem.SetMailUserName(m_aUserNameED.GetText()); 566 rConfigItem.SetMailPassword(m_aOutPasswordED.GetText()); 567 rConfigItem.SetInServerName(m_aServerED.GetText()); 568 rConfigItem.SetInServerPort(sal::static_int_cast< sal_Int16, sal_Int64 >(m_aPortNF.GetValue( ) )); 569 rConfigItem.SetInServerPOP(m_aPOP3RB.IsChecked()); 570 rConfigItem.SetInServerUserName(m_aInUsernameED.GetText()); 571 572 rConfigItem.SetInServerPassword(m_aInPasswordED.GetText()); 573 EndDialog(RET_OK); 574 return 0; 575 } 576 /*-- 19.08.2004 14:33:59--------------------------------------------------- 577 578 -----------------------------------------------------------------------*/ 579 IMPL_LINK( SwAuthenticationSettingsDialog, CheckBoxHdl_Impl, CheckBox*, pBox) 580 { 581 sal_Bool bChecked = pBox->IsChecked(); 582 m_aSeparateAuthenticationRB.Enable(bChecked); 583 m_aSMTPAfterPOPRB.Enable(bChecked); 584 RadioButtonHdl_Impl( 0 ); 585 586 return 0; 587 } 588 /*-- 19.08.2004 14:33:59--------------------------------------------------- 589 590 -----------------------------------------------------------------------*/ 591 IMPL_LINK( SwAuthenticationSettingsDialog, RadioButtonHdl_Impl, RadioButton*, EMPTYARG) 592 { 593 sal_Bool bSeparate = m_aSeparateAuthenticationRB.IsChecked(); 594 sal_Bool bIsEnabled = m_aSeparateAuthenticationRB.IsEnabled(); 595 sal_Bool bNotSeparate = !bSeparate & bIsEnabled; 596 bSeparate &= bIsEnabled; 597 598 m_aOutgoingServerFT.Enable(bSeparate); 599 m_aUserNameFT.Enable(bSeparate); 600 m_aUserNameED.Enable(bSeparate); 601 m_aOutPasswordFT.Enable(bSeparate); 602 m_aOutPasswordED.Enable(bSeparate); 603 604 m_aIncomingServerFT.Enable(bNotSeparate); 605 m_aServerFT.Enable(bNotSeparate); 606 m_aServerED.Enable(bNotSeparate); 607 m_aPortFT.Enable(bNotSeparate); 608 m_aPortNF.Enable(bNotSeparate); 609 m_aInUsernameFT.Enable(bNotSeparate); 610 m_aInUsernameED.Enable(bNotSeparate); 611 m_aProtocolFT.Enable(bNotSeparate); 612 m_aPOP3RB.Enable(bNotSeparate); 613 m_aIMAPRB.Enable(bNotSeparate); 614 m_aInPasswordFT.Enable(bNotSeparate); 615 m_aInPasswordED.Enable(bNotSeparate); 616 617 return 0; 618 } 619