summaryrefslogtreecommitdiff
path: root/cui/source/options/optinet2.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/options/optinet2.cxx')
-rw-r--r--cui/source/options/optinet2.cxx1469
1 files changed, 0 insertions, 1469 deletions
diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx
deleted file mode 100644
index a1ee71025..000000000
--- a/cui/source/options/optinet2.cxx
+++ /dev/null
@@ -1,1469 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// include ---------------------------------------------------------------
-#include <tools/shl.hxx>
-#include <tools/config.hxx>
-#include <vcl/msgbox.hxx>
-#include <svl/intitem.hxx>
-#include <svl/stritem.hxx>
-#include <svl/eitem.hxx>
-#include <svl/slstitm.hxx>
-#include <sfx2/fcontnr.hxx>
-#include <sfx2/dispatch.hxx>
-#include <sfx2/docfilt.hxx>
-#include <sfx2/viewsh.hxx>
-#include <sfx2/sfxsids.hrc>
-#include <sfx2/filedlghelper.hxx>
-#include <tools/inetdef.hxx>
-#include <svl/urihelper.hxx>
-#include <svl/cntwids.hrc>
-#include <unotools/inetoptions.hxx>
-#include <sfx2/app.hxx>
-#include <sfx2/objsh.hxx>
-#include <unotools/bootstrap.hxx>
-#include <vcl/help.hxx>
-#include <sfx2/viewfrm.hxx>
-#include <tools/urlobj.hxx>
-#include <unotools/pathoptions.hxx>
-#include <unotools/securityoptions.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <unotools/extendedsecurityoptions.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#define _SVX_OPTINET2_CXX
-#include <dialmgr.hxx>
-#include "optinet2.hxx"
-#include <svx/svxdlg.hxx>
-#include <cuires.hrc>
-#include "optinet2.hrc"
-#include "helpid.hrc"
-#include <svx/ofaitem.hxx>
-#include <svx/htmlmode.hxx>
-#include <svx/svxids.hrc> // slot ids, mostly for changetracking
-
-// for security TP
-#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
-
-#ifdef UNX
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <pwd.h>
-#include <sys/types.h>
-#include <string.h>
-#include <rtl/textenc.h>
-#include <rtl/locale.h>
-#include <osl/nlsupport.h>
-#endif
-#include <sal/types.h>
-#include <sal/macros.h>
-#include <rtl/ustring.hxx>
-#include <osl/file.hxx>
-#include <osl/process.h>
-#include <com/sun/star/container/XNameReplace.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/util/XChangesBatch.hpp>
-#include <comphelper/processfactory.hxx>
-
-#include "com/sun/star/ui/dialogs/TemplateDescription.hpp"
-#include "com/sun/star/task/XMasterPasswordHandling2.hpp"
-#include "com/sun/star/task/XPasswordContainer.hpp"
-#include "securityoptions.hxx"
-#include "webconninfo.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::sfx2;
-using ::rtl::OUString;
-
-
-// define ----------------------------------------------------------------
-
-// different delimiter for Unix (:) and Windows (;)
-
-#ifdef UNX
-#define CLASSPATH_DELIMITER ':'
-#else
-#define CLASSPATH_DELIMITER ';'
-#endif
-
-// static ----------------------------------------------------------------
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-
-#define INET_SEARCH_TOKEN '"'
-#define RET_ALL ((short)200)
-#define CFG_READONLY_DEFAULT FALSE
-
-#include <sal/config.h>
-
-SV_IMPL_PTRARR( SfxFilterPtrArr, SfxFilterPtr )
-
-const char* SEARCHENGINE_INI = "srcheng.ini";
-const char* SEARCHENGINE_GROUP = "SearchEngines-$(vlang)";
-
-// -----------------------------------------------------------------------
-
-void SvxNoSpaceEdit::KeyInput( const KeyEvent& rKEvent )
-{
- if ( bOnlyNumeric )
- {
- const KeyCode& rKeyCode = rKEvent.GetKeyCode();
- sal_uInt16 nGroup = rKeyCode.GetGroup();
- sal_uInt16 nKey = rKeyCode.GetCode();
- sal_Bool bValid = ( KEYGROUP_NUM == nGroup || KEYGROUP_CURSOR == nGroup ||
- ( KEYGROUP_MISC == nGroup && ( nKey < KEY_ADD || nKey > KEY_EQUAL ) ) );
- if ( !bValid && ( rKeyCode.IsMod1() && (
- KEY_A == nKey || KEY_C == nKey || KEY_V == nKey || KEY_X == nKey || KEY_Z == nKey ) ) )
- // Erase, Copy, Paste, Select All und Undo soll funktionieren
- bValid = sal_True;
-
- if ( bValid )
- Edit::KeyInput(rKEvent);
- }
- else if( rKEvent.GetKeyCode().GetCode() != KEY_SPACE )
- Edit::KeyInput(rKEvent);
-}
-
-// -----------------------------------------------------------------------
-
-void SvxNoSpaceEdit::Modify()
-{
- Edit::Modify();
-
- if ( bOnlyNumeric )
- {
- XubString aValue = GetText();
-
- if ( !ByteString(::rtl::OUStringToOString(aValue,RTL_TEXTENCODING_UTF8)).IsNumericAscii() || (long)aValue.ToInt32() > USHRT_MAX )
- // der H�chstwert einer Portnummer ist USHRT_MAX
- ErrorBox( this, CUI_RES( RID_SVXERR_OPT_PROXYPORTS ) ).Execute();
- }
-}
-
-/********************************************************************/
-/* */
-/* SvxProxyTabPage */
-/* */
-/********************************************************************/
-
-SvxProxyTabPage::SvxProxyTabPage(Window* pParent, const SfxItemSet& rSet ) :
- SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_INET_PROXY ), rSet ),
- aOptionGB (this, CUI_RES(GB_SETTINGS)),
-
- aProxyModeFT (this, CUI_RES(FT_PROXYMODE)),
- aProxyModeLB (this, CUI_RES(LB_PROXYMODE)),
-
- aHttpProxyFT (this, CUI_RES( FT_HTTP_PROXY )),
- aHttpProxyED (this, CUI_RES( ED_HTTP_PROXY )),
- aHttpPortFT (this, CUI_RES( FT_HTTP_PORT )),
- aHttpPortED (this, CUI_RES( ED_HTTP_PORT ), sal_True),
-
- aHttpsProxyFT (this, CUI_RES( FT_HTTPS_PROXY )),
- aHttpsProxyED (this, CUI_RES( ED_HTTPS_PROXY )),
- aHttpsPortFT (this, CUI_RES( FT_HTTPS_PORT )),
- aHttpsPortED (this, CUI_RES( ED_HTTPS_PORT ), sal_True),
-
- aFtpProxyFT (this, CUI_RES( FT_FTP_PROXY )),
- aFtpProxyED (this, CUI_RES( ED_FTP_PROXY )),
- aFtpPortFT (this, CUI_RES( FT_FTP_PORT )),
- aFtpPortED (this, CUI_RES( ED_FTP_PORT ), sal_True),
-
- aNoProxyForFT (this, CUI_RES( FT_NOPROXYFOR )),
- aNoProxyForED (this, CUI_RES( ED_NOPROXYFOR )),
- aNoProxyDescFT (this, CUI_RES( ED_NOPROXYDESC )),
- sFromBrowser ( CUI_RES( ST_PROXY_FROM_BROWSER ) ),
- aProxyModePN(RTL_CONSTASCII_USTRINGPARAM("ooInetProxyType")),
- aHttpProxyPN(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPProxyName")),
- aHttpPortPN(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPProxyPort")),
- aHttpsProxyPN(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPSProxyName")),
- aHttpsPortPN(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPSProxyPort")),
- aFtpProxyPN(RTL_CONSTASCII_USTRINGPARAM("ooInetFTPProxyName")),
- aFtpPortPN(RTL_CONSTASCII_USTRINGPARAM("ooInetFTPProxyPort")),
- aNoProxyDescPN(RTL_CONSTASCII_USTRINGPARAM("ooInetNoProxy"))
-{
- FreeResource();
-
- aHttpPortED.SetMaxTextLen(5);
- aHttpsPortED.SetMaxTextLen(5);
- aFtpPortED.SetMaxTextLen(5);
- Link aLink = LINK( this, SvxProxyTabPage, LoseFocusHdl_Impl );
- aHttpPortED.SetLoseFocusHdl( aLink );
- aHttpsPortED.SetLoseFocusHdl( aLink );
- aFtpPortED.SetLoseFocusHdl( aLink );
-
- aProxyModeLB.SetSelectHdl(LINK( this, SvxProxyTabPage, ProxyHdl_Impl ));
-
- Reference< com::sun::star::lang::XMultiServiceFactory > xServiceManager(
- ::comphelper::getProcessServiceFactory());
-
- if( xServiceManager.is() )
- {
- try
- {
- Reference< com::sun::star::lang::XMultiServiceFactory > xConfigurationProvider =
- Reference< com::sun::star::lang::XMultiServiceFactory > ( xServiceManager->createInstance( rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ) ) ),
- UNO_QUERY_THROW);
-
- OUString aConfigRoot(RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.Inet/Settings" ) );
-
- beans::PropertyValue aProperty;
- aProperty.Name = OUString(RTL_CONSTASCII_USTRINGPARAM( "nodepath" ));
- aProperty.Value = makeAny( aConfigRoot );
-
- Sequence< Any > aArgumentList( 1 );
- aArgumentList[0] = makeAny( aProperty );
-
- m_xConfigurationUpdateAccess = xConfigurationProvider->createInstanceWithArguments( rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationUpdateAccess" ) ),
- aArgumentList );
- }
- catch ( RuntimeException& )
- {
- }
- }
-
- ArrangeControls_Impl();
-}
-
-SvxProxyTabPage::~SvxProxyTabPage()
-{
-}
-
-SfxTabPage* SvxProxyTabPage::Create(Window* pParent, const SfxItemSet& rAttrSet )
-{
- return new SvxProxyTabPage(pParent, rAttrSet);
-}
-
-void SvxProxyTabPage::ReadConfigData_Impl()
-{
- try {
- Reference< container::XNameAccess > xNameAccess(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
-
- sal_Int32 nIntValue = 0;
- OUString aStringValue;
-
- if( xNameAccess->getByName(aProxyModePN) >>= nIntValue )
- {
- aProxyModeLB.SelectEntryPos( (sal_uInt16) nIntValue );
- }
-
- if( xNameAccess->getByName(aHttpProxyPN) >>= aStringValue )
- {
- aHttpProxyED.SetText( aStringValue );
- }
-
- if( xNameAccess->getByName(aHttpPortPN) >>= nIntValue )
- {
- aHttpPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xNameAccess->getByName(aHttpsProxyPN) >>= aStringValue )
- {
- aHttpsProxyED.SetText( aStringValue );
- }
-
- if( xNameAccess->getByName(aHttpsPortPN) >>= nIntValue )
- {
- aHttpsPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xNameAccess->getByName(aFtpProxyPN) >>= aStringValue )
- {
- aFtpProxyED.SetText( aStringValue );
- }
-
- if( xNameAccess->getByName(aFtpPortPN) >>= nIntValue )
- {
- aFtpPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xNameAccess->getByName(aNoProxyDescPN) >>= aStringValue )
- {
- aNoProxyForED.SetText( aStringValue );
- }
- }
-
- catch(container::NoSuchElementException &e) {
- OSL_TRACE( "SvxProxyTabPage::ReadConfigData_Impl: NoSuchElementException caught" );
- }
-
- catch(com::sun::star::lang::WrappedTargetException &e) {
- OSL_TRACE( "SvxProxyTabPage::ReadConfigData_Impl: WrappedTargetException caught" );
- }
-
- catch(RuntimeException &e) {
- OSL_TRACE( "SvxProxyTabPage::ReadConfigData_Impl: RuntimeException caught" );
- }
-
-}
-
-void SvxProxyTabPage::ReadConfigDefaults_Impl()
-{
- try
- {
- Reference< beans::XPropertyState > xPropertyState(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
-
- sal_Int32 nIntValue = 0;
- OUString aStringValue;
-
- if( xPropertyState->getPropertyDefault(aHttpProxyPN) >>= aStringValue )
- {
- aHttpProxyED.SetText( aStringValue );
- }
-
- if( xPropertyState->getPropertyDefault(aHttpPortPN) >>= nIntValue )
- {
- aHttpPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xPropertyState->getPropertyDefault(aHttpsProxyPN) >>= aStringValue )
- {
- aHttpsProxyED.SetText( aStringValue );
- }
-
- if( xPropertyState->getPropertyDefault(aHttpsPortPN) >>= nIntValue )
- {
- aHttpsPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xPropertyState->getPropertyDefault(aFtpProxyPN) >>= aStringValue )
- {
- aFtpProxyED.SetText( aStringValue );
- }
-
- if( xPropertyState->getPropertyDefault(aFtpPortPN) >>= nIntValue )
- {
- aFtpPortED.SetText( String::CreateFromInt32( nIntValue ));
- }
-
- if( xPropertyState->getPropertyDefault(aNoProxyDescPN) >>= aStringValue )
- {
- aNoProxyForED.SetText( aStringValue );
- }
- }
- catch(beans::UnknownPropertyException &e)
- {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: UnknownPropertyException caught" );
- }
-
- catch(com::sun::star::lang::WrappedTargetException &e) {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: WrappedTargetException caught" );
- }
-
- catch(RuntimeException &e)
- {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: RuntimeException caught" );
- }
-}
-
-void SvxProxyTabPage::RestoreConfigDefaults_Impl()
-{
- try
- {
- Reference< beans::XPropertyState > xPropertyState(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
-
- xPropertyState->setPropertyToDefault(aProxyModePN);
- xPropertyState->setPropertyToDefault(aHttpProxyPN);
- xPropertyState->setPropertyToDefault(aHttpPortPN);
- xPropertyState->setPropertyToDefault(aHttpsProxyPN);
- xPropertyState->setPropertyToDefault(aHttpsPortPN);
- xPropertyState->setPropertyToDefault(aFtpProxyPN);
- xPropertyState->setPropertyToDefault(aFtpPortPN);
- xPropertyState->setPropertyToDefault(aNoProxyDescPN);
-
- Reference< util::XChangesBatch > xChangesBatch(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
- xChangesBatch->commitChanges();
- }
-
- catch(beans::UnknownPropertyException &e)
- {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: UnknownPropertyException caught" );
- }
-
- catch(com::sun::star::lang::WrappedTargetException &e) {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: WrappedTargetException caught" );
- }
-
- catch(RuntimeException &e)
- {
- OSL_TRACE( "SvxProxyTabPage::RestoreConfigDefaults_Impl: RuntimeException caught" );
- }
-}
-
-void SvxProxyTabPage::Reset(const SfxItemSet&)
-{
- ReadConfigData_Impl();
-
- aProxyModeLB.SaveValue();
- aHttpProxyED.SaveValue();
- aHttpPortED.SaveValue();
- aHttpsProxyED.SaveValue();
- aHttpsPortED.SaveValue();
- aFtpProxyED.SaveValue();
- aFtpPortED.SaveValue();
- aNoProxyForED.SaveValue();
-
- EnableControls_Impl( aProxyModeLB.GetSelectEntryPos() == 2 );
-}
-
-sal_Bool SvxProxyTabPage::FillItemSet(SfxItemSet& )
-{
- sal_Bool bModified=sal_False;
-
- try {
- Reference< beans::XPropertySet > xPropertySet(m_xConfigurationUpdateAccess, UNO_QUERY_THROW );
-
- sal_uInt16 nSelPos = aProxyModeLB.GetSelectEntryPos();
- if(aProxyModeLB.GetSavedValue() != nSelPos)
- {
- if( nSelPos == 1 )
- {
- RestoreConfigDefaults_Impl();
- return sal_True;
- }
-
- xPropertySet->setPropertyValue(aProxyModePN,
- makeAny((sal_Int32) nSelPos));
- bModified = sal_True;
- }
-
- if(aHttpProxyED.GetSavedValue() != aHttpProxyED.GetText())
- {
- xPropertySet->setPropertyValue( aHttpProxyPN,
- makeAny(rtl::OUString(aHttpProxyED.GetText())));
- bModified = sal_True;
- }
-
- if ( aHttpPortED.GetSavedValue() != aHttpPortED.GetText() )
- {
- xPropertySet->setPropertyValue( aHttpPortPN,
- makeAny(aHttpPortED.GetText().ToInt32()));
- bModified = sal_True;
- }
-
- if(aHttpsProxyED.GetSavedValue() != aHttpsProxyED.GetText())
- {
- xPropertySet->setPropertyValue( aHttpsProxyPN,
- makeAny(rtl::OUString(aHttpsProxyED.GetText())));
- bModified = sal_True;
- }
-
- if ( aHttpsPortED.GetSavedValue() != aHttpsPortED.GetText() )
- {
- xPropertySet->setPropertyValue( aHttpsPortPN,
- makeAny(aHttpsPortED.GetText().ToInt32()));
- bModified = sal_True;
- }
-
- if(aFtpProxyED.GetSavedValue() != aFtpProxyED.GetText())
- {
- xPropertySet->setPropertyValue( aFtpProxyPN,
- makeAny( rtl::OUString(aFtpProxyED.GetText())));
- bModified = sal_True;
- }
-
- if ( aFtpPortED.GetSavedValue() != aFtpPortED.GetText() )
- {
- xPropertySet->setPropertyValue( aFtpPortPN,
- makeAny(aFtpPortED.GetText().ToInt32()));
- bModified = sal_True;
- }
-
- if ( aNoProxyForED.GetSavedValue() != aNoProxyForED.GetText() )
- {
- xPropertySet->setPropertyValue( aNoProxyDescPN,
- makeAny( rtl::OUString(aNoProxyForED.GetText())));
- bModified = sal_True;
- }
-
- Reference< util::XChangesBatch > xChangesBatch(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
- xChangesBatch->commitChanges();
- }
-
- catch(com::sun::star::lang::IllegalArgumentException &e) {
- OSL_TRACE( "SvxProxyTabPage::FillItemSet: IllegalArgumentException caught" );
- }
-
- catch(beans::UnknownPropertyException &e) {
- OSL_TRACE( "SvxProxyTabPage::FillItemSet: UnknownPropertyException caught" );
- }
-
- catch(beans::PropertyVetoException &e) {
- OSL_TRACE( "SvxProxyTabPage::FillItemSet: PropertyVetoException caught" );
- }
-
- catch(com::sun::star::lang::WrappedTargetException &e) {
- OSL_TRACE( "SvxProxyTabPage::FillItemSet: WrappedTargetException caught" );
- }
-
- catch(RuntimeException &e) {
- OSL_TRACE( "SvxProxyTabPage::FillItemSet: RuntimeException caught" );
- }
-
- return bModified;
-}
-
-void SvxProxyTabPage::ArrangeControls_Impl()
-{
- // calculate dynamic width of controls, to not cut-off translated strings #i71445#
- long nWidth = aProxyModeFT.GetCtrlTextWidth( aProxyModeFT.GetText() );
- long nTemp = aHttpProxyFT.GetCtrlTextWidth( aHttpProxyFT.GetText() );
- if ( nTemp > nWidth )
- nWidth = nTemp;
- nTemp = aHttpsProxyFT.GetCtrlTextWidth( aHttpsProxyFT.GetText() );
- if ( nTemp > nWidth )
- nWidth = nTemp;
- nTemp = aFtpProxyFT.GetCtrlTextWidth( aFtpProxyFT.GetText() );
- if ( nTemp > nWidth )
- nWidth = nTemp;
- nTemp = aNoProxyForFT.GetCtrlTextWidth( aNoProxyForFT.GetText() );
- if ( nTemp > nWidth )
- nWidth = nTemp;
-
- nWidth += 10; // To be sure the length of the FixedText is enough on all platforms
- const long nFTWidth = aProxyModeFT.GetSizePixel().Width();
- if ( nWidth > nFTWidth )
- {
- Size aNewSize = aProxyModeFT.GetSizePixel();
- aNewSize.Width() = nWidth;
-
- aProxyModeFT.SetSizePixel( aNewSize );
- aHttpProxyFT.SetSizePixel( aNewSize );
- aHttpsProxyFT.SetSizePixel( aNewSize );
- aFtpProxyFT.SetSizePixel( aNewSize );
- aNoProxyForFT.SetSizePixel( aNewSize );
-
- const long nDelta = nWidth - nFTWidth;
- Point aNewPos = aProxyModeLB.GetPosPixel();
- aNewPos.X() += nDelta;
-
- aProxyModeLB.SetPosPixel( aNewPos );
-
- aNewSize = aHttpProxyED.GetSizePixel();
- aNewSize.Width() -= nDelta;
-
- aNewPos.Y() = aHttpProxyED.GetPosPixel().Y();
- aHttpProxyED.SetPosSizePixel( aNewPos, aNewSize );
- aNewPos.Y() = aHttpsProxyED.GetPosPixel().Y();
- aHttpsProxyED.SetPosSizePixel( aNewPos, aNewSize );
- aNewPos.Y() = aFtpProxyED.GetPosPixel().Y();
- aFtpProxyED.SetPosSizePixel( aNewPos, aNewSize );
- aNewPos.Y() = aNoProxyForED.GetPosPixel().Y();
- aNoProxyForED.SetPosSizePixel( aNewPos, aNewSize );
- }
-}
-
-void SvxProxyTabPage::EnableControls_Impl(sal_Bool bEnable)
-{
- aHttpProxyFT.Enable(bEnable);
- aHttpProxyED.Enable(bEnable);
- aHttpPortFT.Enable(bEnable);
- aHttpPortED.Enable(bEnable);
-
- aHttpsProxyFT.Enable(bEnable);
- aHttpsProxyED.Enable(bEnable);
- aHttpsPortFT.Enable(bEnable);
- aHttpsPortED.Enable(bEnable);
-
- aFtpProxyFT.Enable(bEnable);
- aFtpProxyED.Enable(bEnable);
- aFtpPortFT.Enable(bEnable);
- aFtpPortED.Enable(bEnable);
-
- aNoProxyForFT.Enable(bEnable);
- aNoProxyForED.Enable(bEnable);
- aNoProxyDescFT.Enable(bEnable);
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxProxyTabPage, ProxyHdl_Impl, ListBox *, pBox )
-{
- sal_uInt16 nPos = pBox->GetSelectEntryPos();
-
- // Restore original system values
- if( nPos == 1 )
- {
- ReadConfigDefaults_Impl();
- }
-
- EnableControls_Impl(nPos == 2);
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxProxyTabPage, LoseFocusHdl_Impl, Edit *, pEdit )
-{
- XubString aValue = pEdit->GetText();
-
- if ( !ByteString(::rtl::OUStringToOString(aValue,RTL_TEXTENCODING_UTF8)).IsNumericAscii() || (long)aValue.ToInt32() > USHRT_MAX )
- pEdit->SetText( '0' );
- return 0;
-}
-
-
-
-//#98647#----------------------------------------------
-void SvxScriptExecListBox::RequestHelp( const HelpEvent& rHEvt )
-{ // try to show tips just like as on toolbars
- sal_uInt16 nPos=LISTBOX_ENTRY_NOTFOUND;
- sal_uInt16 nTop = GetTopEntry();
- sal_uInt16 nCount = GetDisplayLineCount(); // Attention: Not GetLineCount()
- Point aPt = ScreenToOutputPixel( rHEvt.GetMousePosPixel() );
- Rectangle aItemRect;
- if( nCount > 0 ) // if there're some entries, find it.
- for( nPos = nTop ; nPos <= nTop+nCount-1 ; nPos++ ) {
- aItemRect = GetBoundingRectangle(nPos);
- if( aPt.Y() < aItemRect.Top() || aPt.Y() > aItemRect.Bottom() )
- continue;
- else
- break;
- }
- else // if not, nothing happens.
- return;
- String aHelpText;
- if( nPos <= nTop+nCount-1 ) // if find the matching entry, get its content.
- aHelpText = GetEntry(nPos);
- if( aHelpText.Len() && GetTextWidth(aHelpText)<GetOutputSizePixel().Width() )
- aHelpText.Erase(); // if the entry is quite short, clear the helping tip content.
- aItemRect = Rectangle(Point(0,0),GetSizePixel());
- aPt = Point(OutputToScreenPixel( aItemRect.TopLeft() ));
- aItemRect.Left() = aPt.X();
- aItemRect.Top() = aPt.Y();
- aPt = OutputToScreenPixel( aItemRect.BottomRight() );
- aItemRect.Right() = aPt.X();
- aItemRect.Bottom() = aPt.Y();
- if( rHEvt.GetMode() == HELPMODE_BALLOON )
- Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aHelpText);
- else
- Help::ShowQuickHelp( this, aItemRect, aHelpText );
-}
-
-/********************************************************************/
-/* */
-/* SvxSecurityTabPage */
-/* */
-/********************************************************************/
-
-SvxSecurityTabPage::SvxSecurityTabPage( Window* pParent, const SfxItemSet& rSet )
- :SfxTabPage ( pParent, CUI_RES( RID_SVXPAGE_INET_SECURITY ), rSet )
-
- ,maSecurityOptionsFL( this, CUI_RES( FL_SEC_SECURITYOPTIONS ) )
- ,maSecurityOptionsFI( this, CUI_RES( FI_SEC_SECURITYOPTIONS ) )
- ,maSecurityOptionsPB( this, CUI_RES( PB_SEC_SECURITYOPTIONS ) )
-
- ,maPasswordsFL ( this, CUI_RES( FL_SEC_PASSWORDS ) )
- ,maSavePasswordsCB ( this, CUI_RES( CB_SEC_SAVEPASSWORDS ) )
- ,maShowConnectionsPB( this, CUI_RES( PB_SEC_CONNECTIONS ) )
- ,maMasterPasswordCB ( this, CUI_RES( CB_SEC_MASTERPASSWORD ) )
- ,maMasterPasswordFI ( this, CUI_RES( FI_SEC_MASTERPASSWORD ) )
- ,maMasterPasswordPB ( this, CUI_RES( PB_SEC_MASTERPASSWORD ) )
-
- ,maMacroSecFL ( this, CUI_RES( FL_SEC_MACROSEC ) )
- ,maMacroSecFI ( this, CUI_RES( FI_SEC_MACROSEC ) )
- ,maMacroSecPB ( this, CUI_RES( PB_SEC_MACROSEC ) )
-
- ,mpSecOptions ( new SvtSecurityOptions )
- ,mpSecOptDlg ( NULL )
-
- ,msPasswordStoringDeactivateStr( CUI_RES( STR_SEC_NOPASSWDSAVE ) )
-
-{
- FreeResource();
-
- InitControls();
-
- maSecurityOptionsPB.SetClickHdl( LINK( this, SvxSecurityTabPage, SecurityOptionsHdl ) );
- maSavePasswordsCB.SetClickHdl( LINK( this, SvxSecurityTabPage, SavePasswordHdl ) );
- maMasterPasswordPB.SetClickHdl( LINK( this, SvxSecurityTabPage, MasterPasswordHdl ) );
- maMasterPasswordCB.SetClickHdl( LINK( this, SvxSecurityTabPage, MasterPasswordCBHdl ) );
- maShowConnectionsPB.SetClickHdl( LINK( this, SvxSecurityTabPage, ShowPasswordsHdl ) );
- maMacroSecPB.SetClickHdl( LINK( this, SvxSecurityTabPage, MacroSecPBHdl ) );
-
- ActivatePage( rSet );
-}
-
-SvxSecurityTabPage::~SvxSecurityTabPage()
-{
- delete mpSecOptions;
- delete mpSecOptDlg;
-}
-
-IMPL_LINK( SvxSecurityTabPage, SecurityOptionsHdl, PushButton*, EMPTYARG )
-{
- if ( !mpSecOptDlg )
- mpSecOptDlg = new svx::SecurityOptionsDialog( this, mpSecOptions );
- mpSecOptDlg->Execute();
- return 0;
-}
-
-IMPL_LINK( SvxSecurityTabPage, SavePasswordHdl, void*, EMPTYARG )
-{
- try
- {
- Reference< task::XMasterPasswordHandling > xMasterPasswd(
- comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.task.PasswordContainer" ) ) ),
- UNO_QUERY_THROW );
-
- if ( maSavePasswordsCB.IsChecked() )
- {
- sal_Bool bOldValue = xMasterPasswd->allowPersistentStoring( sal_True );
- xMasterPasswd->removeMasterPassword();
- if ( xMasterPasswd->changeMasterPassword( Reference< task::XInteractionHandler >() ) )
- {
- maMasterPasswordPB.Enable( sal_True );
- maMasterPasswordCB.Check( sal_True );
- maMasterPasswordCB.Enable( sal_True );
- maMasterPasswordFI.Enable( sal_True );
- maShowConnectionsPB.Enable( sal_True );
- }
- else
- {
- xMasterPasswd->allowPersistentStoring( bOldValue );
- maSavePasswordsCB.Check( sal_False );
- }
- }
- else
- {
- QueryBox aQuery( this, WB_YES_NO|WB_DEF_NO, msPasswordStoringDeactivateStr );
- sal_uInt16 nRet = aQuery.Execute();
-
- if( RET_YES == nRet )
- {
- xMasterPasswd->allowPersistentStoring( sal_False );
- maMasterPasswordCB.Check( sal_True );
- maMasterPasswordPB.Enable( sal_False );
- maMasterPasswordCB.Enable( sal_False );
- maMasterPasswordFI.Enable( sal_False );
- maShowConnectionsPB.Enable( sal_False );
- }
- else
- {
- maSavePasswordsCB.Check( sal_True );
- maMasterPasswordPB.Enable( sal_True );
- maShowConnectionsPB.Enable( sal_True );
- }
- }
- }
- catch( Exception& )
- {
- maSavePasswordsCB.Check( !maSavePasswordsCB.IsChecked() );
- }
-
- return 0;
-}
-
-IMPL_LINK( SvxSecurityTabPage, MasterPasswordHdl, PushButton*, EMPTYARG )
-{
- try
- {
- Reference< task::XMasterPasswordHandling > xMasterPasswd(
- comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.task.PasswordContainer" ) ) ),
- UNO_QUERY );
-
- if ( xMasterPasswd.is() && xMasterPasswd->isPersistentStoringAllowed() )
- xMasterPasswd->changeMasterPassword( Reference< task::XInteractionHandler >() );
- }
- catch( Exception& )
- {}
-
- return 0;
-}
-
-IMPL_LINK( SvxSecurityTabPage, MasterPasswordCBHdl, void*, EMPTYARG )
-{
- try
- {
- Reference< task::XMasterPasswordHandling2 > xMasterPasswd(
- comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.task.PasswordContainer" ) ) ),
- UNO_QUERY_THROW );
-
- if ( maMasterPasswordCB.IsChecked() )
- {
- if ( xMasterPasswd->isPersistentStoringAllowed() && xMasterPasswd->changeMasterPassword( Reference< task::XInteractionHandler >() ) )
- {
- maMasterPasswordPB.Enable( sal_True );
- maMasterPasswordFI.Enable( sal_True );
- }
- else
- {
- maMasterPasswordCB.Check( sal_False );
- maMasterPasswordPB.Enable( sal_True );
- maMasterPasswordFI.Enable( sal_True );
- }
- }
- else
- {
- if ( xMasterPasswd->isPersistentStoringAllowed() && xMasterPasswd->useDefaultMasterPassword( Reference< task::XInteractionHandler >() ) )
- {
- maMasterPasswordPB.Enable( sal_False );
- maMasterPasswordFI.Enable( sal_False );
- }
- else
- {
- maMasterPasswordCB.Check( sal_True );
- maMasterPasswordPB.Enable( sal_True );
- maShowConnectionsPB.Enable( sal_True );
- }
- }
- }
- catch( Exception& )
- {
- maSavePasswordsCB.Check( !maSavePasswordsCB.IsChecked() );
- }
-
- return 0;
-}
-
-IMPL_LINK( SvxSecurityTabPage, ShowPasswordsHdl, PushButton*, EMPTYARG )
-{
- try
- {
- Reference< task::XMasterPasswordHandling > xMasterPasswd(
- comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.task.PasswordContainer" ) ) ),
- UNO_QUERY );
-
- if ( xMasterPasswd.is() && xMasterPasswd->isPersistentStoringAllowed() && xMasterPasswd->authorizateWithMasterPassword( Reference< task::XInteractionHandler>() ) )
- {
- svx::WebConnectionInfoDialog aDlg( this );
- aDlg.Execute();
- }
- }
- catch( Exception& )
- {}
- return 0;
-}
-
-IMPL_LINK( SvxSecurityTabPage, MacroSecPBHdl, void*, EMPTYARG )
-{
- Reference< security::XDocumentDigitalSignatures > xD(
- comphelper::getProcessServiceFactory()->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.security.DocumentDigitalSignatures" ) ) ), UNO_QUERY );
- if ( xD.is() )
- xD->manageTrustedSources();
-
- return 0;
-}
-
-
-void SvxSecurityTabPage::InitControls()
-{
- // Hide all controls which belong to the macro security button in case the macro
- // security settings managed by the macro security dialog opened via the button
- // are all readonly or if the macros are disabled in general.
- // @@@ Better would be to query the dialog whether it is 'useful' or not. Exposing
- // macro security dialog implementations here, which is bad.
- if ( mpSecOptions->IsMacroDisabled()
- || ( mpSecOptions->IsReadOnly( SvtSecurityOptions::E_MACRO_SECLEVEL )
- && mpSecOptions->IsReadOnly( SvtSecurityOptions::E_MACRO_TRUSTEDAUTHORS )
- && mpSecOptions->IsReadOnly( SvtSecurityOptions::E_SECUREURLS ) ) )
- {
- maMacroSecFL.Hide();
- maMacroSecFI.Hide();
- maMacroSecPB.Hide();
- }
-
- // one button too small for its text?
- sal_Int32 i = 0;
- long nBtnTextWidth = 0;
- Window* pButtons[] = { &maSecurityOptionsPB, &maMasterPasswordPB,
- &maShowConnectionsPB, &maMacroSecPB };
- Window** pButton = pButtons;
- const sal_Int32 nBCount = SAL_N_ELEMENTS( pButtons );
- for ( ; i < nBCount; ++i, ++pButton )
- {
- long nTemp = (*pButton)->GetCtrlTextWidth( (*pButton)->GetText() );
- if ( nTemp > nBtnTextWidth )
- nBtnTextWidth = nTemp;
- }
-
- nBtnTextWidth = nBtnTextWidth * 115 / 100; // a little offset
- const long nButtonWidth = maSecurityOptionsPB.GetSizePixel().Width();
- const long nMaxWidth = nButtonWidth * 140 / 100;
- long nExtra = ( nBtnTextWidth > nMaxWidth ) ? nBtnTextWidth - nMaxWidth : 0;
- nBtnTextWidth = std::min( nBtnTextWidth, nMaxWidth );
-
- if ( nBtnTextWidth > nButtonWidth )
- {
- // so make the buttons broader and its control in front of it smaller
- long nDelta = nBtnTextWidth - nButtonWidth;
- pButton = pButtons;
-
- if ( nExtra > 0 )
- {
- long nPos = (*pButton)->GetPosPixel().X() - nDelta;
- long nWidth = (*pButton)->GetSizePixel().Width() + nDelta;
- long nMaxExtra = GetOutputSizePixel().Width() - ( nPos + nWidth ) - 2;
- nExtra = ( nExtra < nMaxExtra ) ? nExtra : nMaxExtra;
- }
-
- for ( i = 0; i < nBCount; ++i, ++pButton )
- {
- Point aNewPos = (*pButton)->GetPosPixel();
- aNewPos.X() -= nDelta;
- Size aNewSize = (*pButton)->GetSizePixel();
- aNewSize.Width() += ( nDelta + nExtra );
- (*pButton)->SetPosSizePixel( aNewPos, aNewSize );
- }
-
- Window* pControls[] = { &maSecurityOptionsFI, &maSavePasswordsCB,
- &maMasterPasswordFI, &maMacroSecFI };
- Window** pControl = pControls;
- const sal_Int32 nCCount = SAL_N_ELEMENTS( pControls );
- for ( i = 0; i < nCCount; ++i, ++pControl )
- {
- Size aNewSize = (*pControl)->GetSizePixel();
- aNewSize.Width() -= nDelta;
- (*pControl)->SetSizePixel( aNewSize );
- }
- }
-
- maMasterPasswordPB.Enable( sal_False );
- maMasterPasswordCB.Enable( sal_False );
- maMasterPasswordCB.Check( sal_True );
- maMasterPasswordFI.Enable( sal_False );
- maShowConnectionsPB.Enable( sal_False );
-
- // initialize the password saving checkbox
- try
- {
- Reference< task::XMasterPasswordHandling > xMasterPasswd(
- comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.task.PasswordContainer" ) ) ),
- UNO_QUERY_THROW );
-
- if ( xMasterPasswd->isPersistentStoringAllowed() )
- {
- maMasterPasswordCB.Enable( sal_True );
- maShowConnectionsPB.Enable( sal_True );
- maSavePasswordsCB.Check( sal_True );
-
- Reference< task::XMasterPasswordHandling2 > xMasterPasswd2( xMasterPasswd, UNO_QUERY );
- if ( xMasterPasswd2.is() && xMasterPasswd2->isDefaultMasterPasswordUsed() )
- maMasterPasswordCB.Check( sal_False );
- else
- {
- maMasterPasswordPB.Enable( sal_True );
- maMasterPasswordCB.Check( sal_True );
- maMasterPasswordFI.Enable( sal_True );
- }
- }
- }
- catch( Exception& )
- {
- maSavePasswordsCB.Enable( sal_False );
- }
-
-
-}
-
-SfxTabPage* SvxSecurityTabPage::Create(Window* pParent, const SfxItemSet& rAttrSet )
-{
- return new SvxSecurityTabPage(pParent, rAttrSet);
-}
-
-void SvxSecurityTabPage::ActivatePage( const SfxItemSet& )
-{
-}
-
-int SvxSecurityTabPage::DeactivatePage( SfxItemSet* _pSet )
-{
- if( _pSet )
- FillItemSet( *_pSet );
- return LEAVE_PAGE;
-}
-
-namespace
-{
- bool CheckAndSave( SvtSecurityOptions& _rOpt, SvtSecurityOptions::EOption _eOpt, const bool _bIsChecked, bool& _rModfied )
- {
- bool bModified = false;
- if ( _rOpt.IsOptionEnabled( _eOpt ) )
- {
- bModified = _rOpt.IsOptionSet( _eOpt ) != _bIsChecked;
- if ( bModified )
- {
- _rOpt.SetOption( _eOpt, _bIsChecked );
- _rModfied = true;
- }
- }
-
- return bModified;
- }
-}
-
-sal_Bool SvxSecurityTabPage::FillItemSet( SfxItemSet& )
-{
- bool bModified = false;
-
- if ( mpSecOptDlg )
- {
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_SAVEORSEND, mpSecOptDlg->IsSaveOrSendDocsChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_SIGNING, mpSecOptDlg->IsSignDocsChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_PRINT, mpSecOptDlg->IsPrintDocsChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_CREATEPDF, mpSecOptDlg->IsCreatePdfChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_REMOVEPERSONALINFO, mpSecOptDlg->IsRemovePersInfoChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_DOCWARN_RECOMMENDPASSWORD, mpSecOptDlg->IsRecommPasswdChecked(), bModified );
- CheckAndSave( *mpSecOptions, SvtSecurityOptions::E_CTRLCLICK_HYPERLINK, mpSecOptDlg->IsCtrlHyperlinkChecked(), bModified );
- }
-
- return bModified;
-}
-
-/*--------------------------------------------------------------------*/
-
-void SvxSecurityTabPage::Reset( const SfxItemSet& )
-{
- SfxObjectShell* pCurDocShell = SfxObjectShell::Current();
- if( pCurDocShell )
- {
- }
-}
-
-MozPluginTabPage::MozPluginTabPage(Window* pParent, const SfxItemSet& rSet)
- : SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_INET_MOZPLUGIN ), rSet ),
- aMSWordGB ( this, CUI_RES( GB_MOZPLUGIN ) ),
- aWBasicCodeCB ( this, CUI_RES( CB_MOZPLUGIN_CODE ) )
-{
- FreeResource();
-}
-
-MozPluginTabPage::~MozPluginTabPage()
-{
-}
-
-SfxTabPage* MozPluginTabPage::Create( Window* pParent,
- const SfxItemSet& rAttrSet )
-{
- return new MozPluginTabPage( pParent, rAttrSet );
-}
-sal_Bool MozPluginTabPage::FillItemSet( SfxItemSet& )
-{
- sal_Bool hasInstall = isInstalled();
- sal_Bool hasChecked = aWBasicCodeCB.IsChecked();
- if(hasInstall && (!hasChecked)){
- //try to uninstall
- uninstallPlugin();
- }
- else if((!hasInstall) && hasChecked){
- //try to install
- installPlugin();
- }
- else{
- // do nothing
- }
- return sal_True;
-}
-void MozPluginTabPage::Reset( const SfxItemSet& )
-{
- aWBasicCodeCB.Check( isInstalled());
- aWBasicCodeCB.SaveValue();
-}
-
-#ifdef WNT
-extern "C" {
- int lc_isInstalled(const char* realFilePath);
- int lc_installPlugin(const char* realFilePath);
- int lc_uninstallPlugin(const char* realFilePath);
-}
-#endif
-
-#define NPP_PATH_MAX 2048
-inline bool getDllURL(rtl::OString * path)
-{
- OSL_ASSERT(path != NULL);
- ::rtl::OUString dirPath/*dllPath, */;
- if (osl_getExecutableFile(&dirPath.pData) != osl_Process_E_None) {
- return false;
- }
- dirPath = dirPath.copy(0, dirPath.lastIndexOf('/'));
- ::rtl::OUString sysDirPath;
- osl::FileBase::getSystemPathFromFileURL(dirPath, sysDirPath);
- *path = OUStringToOString(sysDirPath, RTL_TEXTENCODING_ASCII_US);
- return true;
-}
-
-sal_Bool MozPluginTabPage::isInstalled()
-{
-#ifdef UNIX
- // get the real file referred by .so lnk file
- char lnkFilePath[NPP_PATH_MAX] = {0};
- char lnkReferFilePath[NPP_PATH_MAX] = {0};
- char* pHome = getpwuid(getuid())->pw_dir;
- strcat(lnkFilePath, pHome);
- strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
-
- struct stat sBuf;
- if (0 > lstat(lnkFilePath, &sBuf))
- return false;
- if (!S_ISLNK(sBuf.st_mode))
- return false;
- if (0 >= readlink(lnkFilePath, lnkReferFilePath, NPP_PATH_MAX))
- return false;
- // If the link is relative, then we regard it as non-standard
- if (lnkReferFilePath[0] != '/')
- return false;
-
- // get the real file path
- char realFilePath[NPP_PATH_MAX] = {0};
- ::rtl::OString tempString;
- if (!getDllURL(&tempString)) {
- return false;
- }
- strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
- strcat(realFilePath, "/libnpsoplugin" SAL_DLLEXTENSION);
-
- if (0 != strcmp(lnkReferFilePath, realFilePath))
- return false;
- return true;
-#endif
-#ifdef WNT
- // get the value from registry
- sal_Bool ret = true;
- ::rtl::OString tempString;
- char realFilePath[NPP_PATH_MAX] = {0};
- if (!getDllURL(&tempString)){
- return false;
- }
- strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
- if(! lc_isInstalled(realFilePath))
- ret =true;
- else
- ret = false;
- return ret;
-#endif
-}
-
-sal_Bool MozPluginTabPage::installPlugin()
-{
-#ifdef UNIX
- // get the real file referred by .so lnk file
- char lnkFilePath[NPP_PATH_MAX] = {0};
- char* pHome = getpwuid(getuid())->pw_dir;
- strcat(lnkFilePath, pHome);
- strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
- remove(lnkFilePath);
-
- // create the dirs if necessary
- struct stat buf;
- char tmpDir[NPP_PATH_MAX] = {0};
- sprintf(tmpDir, "%s/.mozilla", pHome);
- if (0 > stat(lnkFilePath, &buf))
- {
- mkdir(tmpDir, 0755);
- strcat(tmpDir, "/plugins");
- mkdir(tmpDir, 0755);
- }
-
- // get the real file path
- char realFilePath[NPP_PATH_MAX] = {0};
- ::rtl::OString tempString;
- if (!getDllURL(&tempString)) {
- return false;
- }
- strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
- strcat(realFilePath, "/libnpsoplugin" SAL_DLLEXTENSION);
-
- // create the link
- if (0 != symlink(realFilePath, lnkFilePath))
- return false;
- return true;
-#endif
-#ifdef WNT
- ::rtl::OString tempString;
- char realFilePath[NPP_PATH_MAX] = {0};
- if (!getDllURL(&tempString)) {
- return false;
- }
- strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
- if( !lc_installPlugin(realFilePath))
- return true;
- else
- return false;
-#endif
-}
-
-sal_Bool MozPluginTabPage::uninstallPlugin()
-{
-#ifdef UNIX
- // get the real file referred by .so lnk file
- char lnkFilePath[NPP_PATH_MAX] = {0};
- char* pHome = getpwuid(getuid())->pw_dir;
- strcat(lnkFilePath, pHome);
- strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
-
- if(0 > remove(lnkFilePath))
- return false;
- return true;
-#endif
-#ifdef WNT
- ::rtl::OString tempString;
- char realFilePath[NPP_PATH_MAX] = {0};
- if (!getDllURL(&tempString)) {
- return false;
- }
- strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
- if(!lc_uninstallPlugin(realFilePath))
- return true;
- else
- return false;
-#endif
-}
-
-/* -------------------------------------------------------------------------*/
-
-class MailerProgramCfg_Impl : public utl::ConfigItem
-{
- friend class SvxEMailTabPage;
- // variables
- OUString sProgram;
- // readonly states
- sal_Bool bROProgram;
-
- const Sequence<OUString> GetPropertyNames();
-public:
- MailerProgramCfg_Impl();
- virtual ~MailerProgramCfg_Impl();
-
- virtual void Commit();
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames);
-};
-
-/* -------------------------------------------------------------------------*/
-
-MailerProgramCfg_Impl::MailerProgramCfg_Impl() :
- utl::ConfigItem(C2U("Office.Common/ExternalMailer")),
- bROProgram(sal_False)
-{
- const Sequence< OUString > aNames = GetPropertyNames();
- const Sequence< Any > aValues = GetProperties(aNames);
- const Sequence< sal_Bool > aROStates = GetReadOnlyStates(aNames);
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- for(sal_Int32 nProp = 0; nProp < aValues.getLength(); nProp++)
- {
- if(pValues[nProp].hasValue())
- {
- switch(nProp)
- {
- case 0 :
- {
- pValues[nProp] >>= sProgram;
- bROProgram = pROStates[nProp];
- }
- break;
- }
- }
- }
-}
-
-/* -------------------------------------------------------------------------*/
-
-MailerProgramCfg_Impl::~MailerProgramCfg_Impl()
-{
-}
-
-/* -------------------------------------------------------------------------*/
-
-const Sequence<OUString> MailerProgramCfg_Impl::GetPropertyNames()
-{
- Sequence<OUString> aRet(1);
- OUString* pRet = aRet.getArray();
- pRet[0] = C2U("Program");
- return aRet;
-}
-
-/* -------------------------------------------------------------------------*/
-
-void MailerProgramCfg_Impl::Commit()
-{
- const Sequence< OUString > aOrgNames = GetPropertyNames();
- sal_Int32 nOrgCount = aOrgNames.getLength();
-
- Sequence< OUString > aNames(nOrgCount);
- Sequence< Any > aValues(nOrgCount);
- sal_Int32 nRealCount = 0;
-
- for(int nProp = 0; nProp < nOrgCount; nProp++)
- {
- switch(nProp)
- {
- case 0:
- {
- if (!bROProgram)
- {
- aNames[nRealCount] = aOrgNames[nProp];
- aValues[nRealCount] <<= sProgram;
- ++nRealCount;
- }
- }
- break;
- }
- }
-
- aNames.realloc(nRealCount);
- aValues.realloc(nRealCount);
- PutProperties(aNames, aValues);
-}
-
-void MailerProgramCfg_Impl::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& )
-{
-}
-
-/* -------------------------------------------------------------------------*/
-
-struct SvxEMailTabPage_Impl
-{
- MailerProgramCfg_Impl aMailConfig;
-};
-
-SvxEMailTabPage::SvxEMailTabPage(Window* pParent, const SfxItemSet& rSet) :
- SfxTabPage(pParent, CUI_RES( RID_SVXPAGE_INET_MAIL ), rSet),
- aMailFL(this, CUI_RES(FL_MAIL )),
- aMailerURLFI(this, CUI_RES(FI_MAILERURL )),
- aMailerURLFT(this, CUI_RES(FT_MAILERURL )),
- aMailerURLED(this, CUI_RES(ED_MAILERURL )),
- aMailerURLPB(this, CUI_RES(PB_MAILERURL )),
- m_sDefaultFilterName( CUI_RES(STR_DEFAULT_FILENAME )),
- pImpl(new SvxEMailTabPage_Impl)
-{
- FreeResource();
-
- aMailerURLPB.SetClickHdl( LINK( this, SvxEMailTabPage, FileDialogHdl_Impl ) );
-
- // FixedText not wide enough?
- long nTxtW = aMailerURLFT.GetCtrlTextWidth( aMailerURLFT.GetText() );
- long nCtrlW = aMailerURLFT.GetSizePixel().Width();
- if ( nTxtW >= nCtrlW )
- {
- long nDelta = Max( (long)10, nTxtW - nCtrlW );
- // so FixedText wider
- Size aNewSz = aMailerURLFT.GetSizePixel();
- aNewSz.Width() += nDelta;
- aMailerURLFT.SetSizePixel( aNewSz );
- // and Edit smaller
- aNewSz = aMailerURLED.GetSizePixel();
- aNewSz.Width() -= nDelta;
- Point aNewPt = aMailerURLED.GetPosPixel();
- aNewPt.X() += nDelta;
- aMailerURLED.SetPosSizePixel( aNewPt, aNewSz );
- }
-}
-
-/* -------------------------------------------------------------------------*/
-
-SvxEMailTabPage::~SvxEMailTabPage()
-{
- delete pImpl;
-}
-
-/* -------------------------------------------------------------------------*/
-
-SfxTabPage* SvxEMailTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
-{
- return new SvxEMailTabPage(pParent, rAttrSet);
-}
-
-/* -------------------------------------------------------------------------*/
-
-sal_Bool SvxEMailTabPage::FillItemSet( SfxItemSet& )
-{
- sal_Bool bMailModified = sal_False;
- if(!pImpl->aMailConfig.bROProgram && aMailerURLED.GetSavedValue() != aMailerURLED.GetText())
- {
- pImpl->aMailConfig.sProgram = aMailerURLED.GetText();
- bMailModified = sal_True;
- }
- if ( bMailModified )
- pImpl->aMailConfig.Commit();
-
- return sal_False;
-}
-
-/* -------------------------------------------------------------------------*/
-
-void SvxEMailTabPage::Reset( const SfxItemSet& )
-{
- aMailerURLED.Enable(sal_True );
- aMailerURLPB.Enable(sal_True );
-
- if(pImpl->aMailConfig.bROProgram)
- aMailerURLFI.Show();
-
- aMailerURLED.SetText(pImpl->aMailConfig.sProgram);
- aMailerURLED.SaveValue();
- aMailerURLED.Enable(!pImpl->aMailConfig.bROProgram);
- aMailerURLPB.Enable(!pImpl->aMailConfig.bROProgram);
- aMailerURLFT.Enable(!pImpl->aMailConfig.bROProgram);
-
- aMailFL.Enable(aMailerURLFT.IsEnabled() ||
- aMailerURLED.IsEnabled() ||
- aMailerURLPB.IsEnabled());
-}
-
-/* -------------------------------------------------------------------------*/
-
-IMPL_LINK( SvxEMailTabPage, FileDialogHdl_Impl, PushButton*, pButton )
-{
- if ( &aMailerURLPB == pButton && !pImpl->aMailConfig.bROProgram )
- {
- FileDialogHelper aHelper(
- com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
- WB_OPEN );
- String sPath = aMailerURLED.GetText();
- if ( !sPath.Len() )
- sPath.AppendAscii("/usr/bin");
-
- String sUrl;
- ::utl::LocalFileHelper::ConvertPhysicalNameToURL(sPath,sUrl);
- aHelper.SetDisplayDirectory(sUrl);
- aHelper.AddFilter( m_sDefaultFilterName, String::CreateFromAscii("*"));
-
- if ( ERRCODE_NONE == aHelper.Execute() )
- {
- sUrl = aHelper.GetPath();
- ::utl::LocalFileHelper::ConvertURLToPhysicalName(sUrl,sPath);
- aMailerURLED.SetText(sPath);
- }
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------------
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */