summaryrefslogtreecommitdiff
path: root/desktop/source
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/source')
-rw-r--r--desktop/source/app/app.cxx791
-rw-r--r--desktop/source/app/appinit.cxx134
-rw-r--r--desktop/source/app/cmdlineargs.cxx93
-rw-r--r--desktop/source/app/cmdlineargs.hxx18
-rw-r--r--desktop/source/app/cmdlinehelp.cxx140
-rw-r--r--desktop/source/app/cmdlinehelp.hxx29
-rw-r--r--desktop/source/app/configinit.cxx265
-rw-r--r--desktop/source/app/copyright_ascii_ooo.c13
-rw-r--r--desktop/source/app/copyright_ascii_sun.c50
-rw-r--r--desktop/source/app/desktop.hrc13
-rw-r--r--desktop/source/app/desktop.src618
-rw-r--r--desktop/source/app/dispatchwatcher.cxx30
-rw-r--r--desktop/source/app/intro.cxx11
-rw-r--r--desktop/source/app/intro.hxx8
-rw-r--r--desktop/source/app/lockfile.cxx34
-rw-r--r--desktop/source/app/lockfile.hxx5
-rw-r--r--desktop/source/app/makefile.mk82
-rw-r--r--desktop/source/app/officeipcthread.cxx305
-rw-r--r--desktop/source/app/officeipcthread.hxx17
-rw-r--r--desktop/source/offacc/acceptor.cxx399
-rw-r--r--desktop/source/offacc/acceptor.hxx192
-rw-r--r--desktop/source/offacc/makefile.mk127
-rw-r--r--desktop/source/pkgchk/defs/wntmsci7107
-rw-r--r--desktop/source/so_comp/evaluation.cxx43
-rw-r--r--desktop/source/so_comp/makefile.mk8
-rw-r--r--desktop/source/splash/makefile.mk127
-rw-r--r--desktop/source/splash/splash.cxx367
-rw-r--r--desktop/source/splash/splash.hxx165
28 files changed, 3263 insertions, 928 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index d1fcac330c..b2d05a099d 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: app.cxx,v $
*
- * $Revision: 1.102 $
+ * $Revision: 1.103 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 14:48:26 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,10 +64,8 @@
#include "desktop.hrc"
#include "appinit.hxx"
#include "intro.hxx"
-#include "officeipcmanager.hxx"
+#include "officeipcthread.hxx"
#include "cmdlineargs.hxx"
-#include "officeacceptthread.hxx"
-#include "pluginacceptthread.hxx"
#include "desktopresid.hxx"
#include "dispatchwatcher.hxx"
#include "ssoinit.hxx"
@@ -77,13 +75,8 @@
#include "oempreload.hxx"
#include "testtool.hxx"
#include "checkinstall.hxx"
+#include "cmdlinehelp.hxx"
-#ifndef _COM_SUN_STAR_TASK_XINTERACTIONHANDLER_HPP_
-#include <com/sun/star/task/XInteractionHandler.hpp>
-#endif
-#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
-#include <com/sun/star/beans/NamedValue.hpp>
-#endif
#ifndef _COM_SUN_STAR_FRAME_XSTORABLE_HPP_
#include <com/sun/star/frame/XStorable.hpp>
#endif
@@ -102,6 +95,9 @@
#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
#include <com/sun/star/lang/XComponent.hpp>
#endif
+#ifndef _COM_SUN_STAR_LANG_WRAPPEDTARGETEXCEPTION_HPP_
+#include <com/sun/star/lang/WrappedTargetException.hpp>
+#endif
#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_
#include <com/sun/star/frame/XDesktop.hpp>
#endif
@@ -123,9 +119,6 @@
#ifndef _COM_SUN_STAR_AWT_XTOPWINDOW_HPP_
#include <com/sun/star/awt/XTopWindow.hpp>
#endif
-#ifndef _COM_SUN_STAR_UI_DIALOGS_XEXECUTABLEDIALOG_HPP_
-#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
-#endif
#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
#include <com/sun/star/util/XURLTransformer.hpp>
#endif
@@ -168,7 +161,6 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#endif
-#include <com/sun/star/beans/XMaterialHolder.hpp>
#include <com/sun/star/java/XJavaVM.hpp>
#ifndef _SOLAR_H
@@ -180,9 +172,6 @@
#ifndef _VOS_SECURITY_HXX_
#include <vos/security.hxx>
#endif
-#ifndef _VOS_TIMER_HXX_
-#include <vos/timer.hxx>
-#endif
#ifndef _VOS_REF_HXX_
#include <vos/ref.hxx>
#endif
@@ -222,12 +211,6 @@
#ifndef _OSL_PROCESS_H_
#include <osl/process.h>
#endif
-#ifndef AUTOMATION_HXX
-#include <automation/automation.hxx>
-#endif
-#ifndef _Installer_hxx
-#include <setup2/installer.hxx>
-#endif
#ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
#include <svtools/pathoptions.hxx>
@@ -281,9 +264,6 @@
#ifndef _UTL_BOOTSTRAP_HXX
#include <unotools/bootstrap.hxx>
#endif
-#ifndef _VOS_PROFILE_HXX_
-#include <vos/profile.hxx>
-#endif
#define DEFINE_CONST_UNICODE(CONSTASCII) UniString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII##))
#define U2S(STRING) ::rtl::OUStringToOString(STRING, RTL_TEXTENCODING_UTF8)
@@ -294,14 +274,13 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::bridge;
+//using namespace ::com::sun::star::bridge;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::document;
using namespace ::com::sun::star::view;
using namespace ::com::sun::star::system;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::task;
ResMgr* desktop::Desktop::pResMgr = 0;
@@ -310,18 +289,10 @@ namespace desktop
static SalMainPipeExchangeSignalHandler* pSignalHandler = 0;
-PluginAcceptThread* Desktop::pPluginAcceptThread = 0;
-OOfficeAcceptorThread* Desktop::pOfficeAcceptThread = 0;
-static CommandLineArgs* pArgs = 0;
-
// ----------------------------------------------------------------------------
char const INSTALLMODE_STANDALONE[] = "STANDALONE";
char const INSTALLMODE_NETWORK[] = "NETWORK";
-char const INSTALLMODE_ALLUSERS[] = "ALL_USERS";
-
-// include strings for copyright notice
-#include "copyright_ascii.txt"
// ----------------------------------------------------------------------------
@@ -331,6 +302,7 @@ ResMgr* Desktop::GetDesktopResManager()
{
String aMgrName = String::CreateFromAscii( "dkt" );
aMgrName += String::CreateFromInt32(SUPD); // current version number
+
// Create desktop resource manager and bootstrap process
// was successful. Use default way to get language specific message.
if ( Application::IsInExecute() )
@@ -344,6 +316,9 @@ ResMgr* Desktop::GetDesktopResManager()
LanguageType aLanguageType = LANGUAGE_DONTKNOW;
Desktop::pResMgr = ResMgr::SearchCreateResMgr( U2S( aMgrName ), aLanguageType );
+ AllSettings as = GetSettings();
+ as.SetUILanguage(aLanguageType);
+ SetSettings(as);
}
}
@@ -351,7 +326,7 @@ ResMgr* Desktop::GetDesktopResManager()
}
// ----------------------------------------------------------------------------
-// Get a message string securely. There is a fault back string if the resource
+// Get a message string securely. There is a fallback string if the resource
// is not available.
OUString Desktop::GetMsgString( USHORT nId, const OUString& aFaultBackMsg )
@@ -380,6 +355,29 @@ OUString MakeStartupErrorMessage(OUString const & aErrorMessage)
return aDiagnosticMessage.makeStringAndClear();
}
+OUString MakeStartupConfigAccessErrorMessage( OUString const & aInternalErrMsg )
+{
+ OUStringBuffer aDiagnosticMessage( 200 );
+
+ ResMgr* pResMgr = Desktop::GetDesktopResManager();
+ if ( pResMgr )
+ aDiagnosticMessage.append( OUString(ResId(STR_BOOTSTRAP_ERR_CFG_DATAACCESS, pResMgr )) );
+ else
+ aDiagnosticMessage.appendAscii( "The program cannot be started." );
+
+ if ( aInternalErrMsg.getLength() > 0 )
+ {
+ aDiagnosticMessage.appendAscii( "\n\n" );
+ if ( pResMgr )
+ aDiagnosticMessage.append( OUString(ResId(STR_INTERNAL_ERRMSG, pResMgr )) );
+ else
+ aDiagnosticMessage.appendAscii( "The following internal error has occured:\n\n" );
+ aDiagnosticMessage.append( aInternalErrMsg );
+ }
+
+ return aDiagnosticMessage.makeStringAndClear();
+}
+
void FatalErrorExit(OUString const & aMessage)
{
if ( Application::IsRemoteServer() )
@@ -409,8 +407,36 @@ void FatalErrorExit(OUString const & aMessage)
_exit( 333 );
}
+void FatalError(OUString const & aMessage)
+{
+ if ( Application::IsRemoteServer() )
+ {
+ OString aTmpStr = OUStringToOString( aMessage, RTL_TEXTENCODING_ASCII_US );
+ fprintf( stderr, aTmpStr.getStr() );
+ }
+ else
+ {
+ OUString aProductKey = ::utl::Bootstrap::getProductKey();
+
+ if (!aProductKey.getLength())
+ {
+ ::vos::OStartupInfo aInfo;
+ aInfo.getExecutableFile( aProductKey );
+
+ sal_uInt32 lastIndex = aProductKey.lastIndexOf('/');
+ if ( lastIndex > 0 )
+ aProductKey = aProductKey.copy( lastIndex+1 );
+ }
+
+ ErrorBox aBootstrapFailedBox( NULL, WB_OK, aMessage );
+ aBootstrapFailedBox.SetText( aProductKey );
+ aBootstrapFailedBox.Execute();
+ }
+}
+
CommandLineArgs* Desktop::GetCommandLineArgs()
{
+ static CommandLineArgs* pArgs = 0;
if ( !pArgs )
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
@@ -421,16 +447,6 @@ CommandLineArgs* Desktop::GetCommandLineArgs()
return pArgs;
}
-void SetCommandLineArgs( const OUString & inIPCThreadCommandLine )
-{
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if ( pArgs != 0 )
- {
- delete pArgs;
- }
- pArgs = new CommandLineArgs( inIPCThreadCommandLine );
-}
-
Desktop aDesktop;
sal_Bool InitConfiguration()
@@ -470,6 +486,7 @@ sal_Bool InitConfiguration()
static String aBrandName;
static String aVersion;
static String aExtension;
+static String aXMLFileFormatVersion;
void ReplaceStringHookProc( UniString& rStr )
{
@@ -482,6 +499,10 @@ void ReplaceStringHookProc( UniString& rStr )
aRet >>= aTmp;
aBrandName = aTmp;
+ aRet = ::utl::ConfigManager::GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTXMLFILEFORMATVERSION );
+ aRet >>= aTmp;
+ aXMLFileFormatVersion = aTmp;
+
aRet = ::utl::ConfigManager::GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTVERSION );
aRet >>= aTmp;
aVersion = aTmp;
@@ -501,25 +522,14 @@ void ReplaceStringHookProc( UniString& rStr )
rStr.SearchAndReplaceAllAscii( "%PRODUCTNAME", aBrandName );
rStr.SearchAndReplaceAllAscii( "%PRODUCTVERSION", aVersion );
rStr.SearchAndReplaceAllAscii( "%PRODUCTEXTENSION", aExtension );
+ rStr.SearchAndReplaceAllAscii( "%PRODUCTXMLFILEFORMATVERSION", aXMLFileFormatVersion );
}
}
-BOOL SVMain()
-{
- BOOL bInit = sal_False;
- ProcessInfo theProcessInfo =
- OfficeIPCManager().InitIPC( (Desktop *)GetpApp() );
- if( theProcessInfo.GetProcessType() != ProcessInfo::PARENT )
- {
- SetCommandLineArgs( theProcessInfo.GetArguments() );
- bInit = InitVCL( Reference < XMultiServiceFactory >() );
- GetpApp()->Main();
- DeInitVCL();
- }
- return bInit;
-}
-
-Desktop::Desktop() : m_pIntro( 0 ), m_aBootstrapError( BE_OK )
+Desktop::Desktop()
+: m_pIntro( 0 )
+, m_aBootstrapError( BE_OK )
+, m_pLockfile( NULL )
{
RTL_LOGFILE_TRACE( "desktop (cd100003) ::Desktop::Desktop" );
}
@@ -532,6 +542,7 @@ void Desktop::Init()
{
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::Init" );
+ // create service factory...
Reference < XMultiServiceFactory > rSMgr = CreateApplicationServiceManager();
if( ! rSMgr.is() )
{
@@ -542,6 +553,28 @@ void Desktop::Init()
if ( !Application::IsRemoteServer() )
{
+#ifdef UNX
+ // check whether we need to print cmdline help
+ CommandLineArgs* pCmdLineArgs = GetCommandLineArgs();
+ if ( pCmdLineArgs->IsHelp() ) {
+ displayCmdlineHelp();
+ exit(0);
+ }
+#endif
+ // start ipc thread only for non-remote offices
+ RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::OfficeIPCThread::EnableOfficeIPCThread" );
+
+ OfficeIPCThread::Status aStatus = OfficeIPCThread::EnableOfficeIPCThread();
+ if ( aStatus == OfficeIPCThread::IPC_STATUS_BOOTSTRAP_ERROR )
+ {
+ SetBootstrapError( BE_PATHINFO_MISSING );
+ }
+ else if ( aStatus == OfficeIPCThread::IPC_STATUS_2ND_OFFICE )
+ {
+ // 2nd office startup should terminate after sending cmdlineargs through pipe
+ _exit( 0 );
+ }
+
pSignalHandler = new SalMainPipeExchangeSignalHandler;
}
}
@@ -550,8 +583,11 @@ void Desktop::DeInit()
{
Reference<XMultiServiceFactory> xXMultiServiceFactory(::comphelper::getProcessServiceFactory());
DestroyApplicationServiceManager( xXMultiServiceFactory );
- // nobody should get a reference to the destroyed factory
- ::comphelper::setProcessServiceFactory(NULL);
+ // nobody should get a destroyd service factory...
+ ::comphelper::setProcessServiceFactory( NULL );
+
+ // clear lockfile
+ m_pLockfile->clean();
if( !Application::IsRemoteServer() )
{
@@ -584,6 +620,8 @@ BOOL Desktop::QueryExit()
Any a;
a <<= (sal_Bool)sal_False;
xPropertySet->setPropertyValue( OUSTRING(RTL_CONSTASCII_USTRINGPARAM( SUSPEND_QUICKSTARTVETO )), a );
+ } else {
+ m_pLockfile->clean();
}
return bExit;
@@ -685,8 +723,7 @@ void Desktop::HandleBootstrapPathErrors( ::utl::Bootstrap::Status aBootstrapStat
OUString aInstallMode( RTL_CONSTASCII_USTRINGPARAM( INSTALLMODE_STANDALONE ));
aInstallMode = utl::Bootstrap::getInstallMode( aInstallMode );
- if ( aInstallMode.equalsIgnoreAsciiCaseAscii( INSTALLMODE_NETWORK ) ||
- aInstallMode.equalsIgnoreAsciiCaseAscii( INSTALLMODE_ALLUSERS ) )
+ if ( aInstallMode.equalsIgnoreAsciiCaseAscii( INSTALLMODE_NETWORK ))
{
// network installation => start setup without error message
OUString aParameters;
@@ -734,7 +771,7 @@ void Desktop::HandleBootstrapPathErrors( ::utl::Bootstrap::Status aBootstrapStat
}
}
- _exit( 333 );
+ // _exit( 333 );
}
}
@@ -933,11 +970,13 @@ void Desktop::HandleBootstrapErrors( BootstrapError aBootstrapError )
aDiagnosticMessage.append( aStartSetupManually );
aMessage = MakeStartupErrorMessage( aDiagnosticMessage.makeStringAndClear() );
- FatalErrorExit( aMessage);
+ FatalError( aMessage);
}
}
- _exit( 333 );
+ return;
+ // leave scope at catch...
+ //_exit( 333 );
}
USHORT Desktop::Exception(USHORT nError)
@@ -976,12 +1015,11 @@ USHORT Desktop::Exception(USHORT nError)
for( sal_Int32 i=0; i<nCount; ++i )
{
::com::sun::star::uno::Any aVal = xList->getByIndex(i);
- if ( !(aVal>>=xTask) || ! xTask.is() )
+ if ( !(aVal>>=xTask) || !xTask.is() )
continue;
try
{
-
// ask for controller
Reference< ::com::sun::star::frame::XController > xCtrl = xTask->getController();
if ( xCtrl.is() )
@@ -1047,7 +1085,6 @@ USHORT Desktop::Exception(USHORT nError)
}
}
}
-
}
// ignore tasks, which are realy dead.
// They can't be recovered ... but may some follow ones.
@@ -1094,10 +1131,14 @@ USHORT Desktop::Exception(USHORT nError)
default:
{
- if ( pArgs->IsNoRestore() )
+ if ( pArgs->IsNoRestore() ) {
+ if (m_pLockfile != NULL) {
+ m_pLockfile->clean();
+ }
_exit( 333 );
+ }
- if( bRecovery && !pPluginAcceptThread && !Application::IsRemoteServer() )
+ if( bRecovery && !Application::IsRemoteServer() )
{
OfficeIPCThread::DisableOfficeIPCThread();
if( pSignalHandler )
@@ -1116,7 +1157,9 @@ USHORT Desktop::Exception(USHORT nError)
if ( nError == ::osl::FileBase::E_None )
xSystemShellExecute->execute( aSysPathFileName, ::rtl::OUString(), SystemShellExecuteFlags::DEFAULTS );
}
-
+ if (m_pLockfile != NULL) {
+ m_pLockfile->clean();
+ }
_exit( 333 );
}
else
@@ -1152,19 +1195,28 @@ void Desktop::Main()
}
CommandLineArgs* pCmdLineArgs = GetCommandLineArgs();
+
+#ifndef UNX
+ if ( pCmdLineArgs->IsHelp() ) {
+ displayCmdlineHelp();
+ return;
+ }
+#endif
+
Reference< XMultiServiceFactory > xSMgr = ::comphelper::getProcessServiceFactory();
ResMgr::SetReadStringHook( ReplaceStringHookProc );
SetAppName( DEFINE_CONST_UNICODE("soffice") );
- // check user installation directory for lockfile so we can be sure
- // there is no other instance using our data files from a remote host
- Lockfile aLock;
- if (!pCmdLineArgs->IsInvisible() && !pCmdLineArgs->IsNoLockcheck() && !aLock.check() ) {
+ // check user installation directory for lockfile so we can be sure
+ // there is no other instance using our data files from a remote host
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "desktop (lo119109) Desktop::Main -> Lockfile" );
+ m_pLockfile = new Lockfile;
+ if ( !pCmdLineArgs->IsInvisible() && !pCmdLineArgs->IsNoLockcheck() && !m_pLockfile->check()) {
// Lockfile exists, and user clicked 'no'
return;
}
- // lockfile will be removed in Lockfile d'tor
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "desktop (lo119109) Desktop::Main <- Lockfile" );
com::sun::star::uno::ContextLayer layer( com::sun::star::uno::getCurrentContext() );
@@ -1175,171 +1227,213 @@ void Desktop::Main()
}
// ---- Startup screen ----
- OpenStartupScreen();
+ Reference<XStatusIndicator> rSplashScreen = getSplashScreen();
+ if (! rSplashScreen.is()) {
+ FatalError( MakeStartupErrorMessage(
+ OUString::createFromAscii("Unable to create instance of com.sun.star.office.SplashScreen")));
+ return;
+ }
+ rSplashScreen->start(OUString::createFromAscii("SplashScreen"), 100);
// Initialise Single Signon
- sal_Bool bCanceled = ! InitSSO();
-
- sal_Bool bTerminate = bCanceled || pCmdLineArgs->IsTerminateAfterInit();
- if( !bTerminate )
- {
- // Read the common configuration items for optimization purpose
- // do not do it if terminate flag was specified, to avoid exception
- if ( !InitializeConfiguration() )
- return;
- }
+ if ( !InitSSO() ) return;
// The only step that should be done if terminate flag was specified
// Typically called by the plugin only
- {
- RTL_LOGFILE_CONTEXT( aLog, "setup2 (ok93719) ::Installer::InitializeInstallation" );
- InitializeInstallation( Application::GetAppFileName() );
- }
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "setup2 (ok93719) ::Installer::InitializeInstallation" );
+ InitializeInstallation( Application::GetAppFileName() );
+ if( pCmdLineArgs->IsTerminateAfterInit() ) return;
- if( !bTerminate )
- {
- sal_Bool bCheckOk = sal_False;
- LanguageType aLanguageType;
- String aMgrName = String::CreateFromAscii( "iso" );
- aMgrName += String::CreateFromInt32(SUPD); // current build version
- ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( U2S( aMgrName ), aLanguageType );
- String aTitle = String( ResId( RID_APPTITLE, pLabelResMgr ) );
- delete pLabelResMgr;
-
- // Check for StarOffice/Suite specific extensions runs also with OpenOffice installation sets
- OUString aTitleString( aTitle );
- bCheckOk = CheckInstallation( aTitleString );
- if ( !bCheckOk )
- return;
- else
- aTitle = aTitleString;
-#ifndef PRODUCT
- ::rtl::OUString aDefault;
- aTitle += DEFINE_CONST_UNICODE(" [");
- String aVerId( utl::Bootstrap::getBuildIdData( aDefault ));
- aTitle += aVerId;
- aTitle += 0x005D ; // 5Dh ^= ']'
-#endif
+ // Read the common configuration items for optimization purpose
+ if ( !InitializeConfiguration() ) return;
+
+ rSplashScreen->setValue(15);
- SetDisplayName( aTitle );
+ // create title string
+ sal_Bool bCheckOk = sal_False;
+ LanguageType aLanguageType;
+ String aMgrName = String::CreateFromAscii( "iso" );
+ aMgrName += String::CreateFromInt32(SUPD); // current build version
+ ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( U2S( aMgrName ), aLanguageType );
+ String aTitle = String( ResId( RID_APPTITLE, pLabelResMgr ) );
+ delete pLabelResMgr;
+
+ // Check for StarOffice/Suite specific extensions runs also with OpenOffice installation sets
+ OUString aTitleString( aTitle );
+ bCheckOk = CheckInstallation( aTitleString );
+ if ( !bCheckOk )
+ return;
+ else
+ aTitle = aTitleString;
+
+#ifndef PRODUCT
+ //include version ID in non product builds
+ ::rtl::OUString aDefault;
+ aTitle += DEFINE_CONST_UNICODE(" [");
+ String aVerId( utl::Bootstrap::getBuildIdData( aDefault ));
+ aTitle += aVerId;
+ aTitle += 0x005D ; // 5Dh ^= ']'
+#endif
+ rSplashScreen->setValue(20);
+ SetDisplayName( aTitle );
+ Reference < XComponent > xWrapper;
+ SvtPathOptions* pPathOptions = NULL;
+ SvtLanguageOptions* pLanguageOptions = NULL;
- // register sevices before we do anything else
+ try
+ {
+ // register services first
RegisterServices( xSMgr );
+ rSplashScreen->setValue(30);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create SvtPathOptions and SvtLanguageOptions" );
- SvtPathOptions* pPathOptions = new SvtPathOptions;
- SvtLanguageOptions* pLanguageOptions = new SvtLanguageOptions(sal_True);
+ pPathOptions = new SvtPathOptions;
+ rSplashScreen->setValue(40);
+ pLanguageOptions = new SvtLanguageOptions(sal_True);
+ rSplashScreen->setValue(45);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "} create SvtPathOptions and SvtLanguageOptions" );
- OUString aDescription;
- Sequence< Any > aSeq( 1 );
-
- if ( pOfficeAcceptThread )
- aDescription = pOfficeAcceptThread->GetDescriptionString();
- else
- pCmdLineArgs->GetPortalConnectString( aDescription );
- aSeq[0] <<= aDescription;
-
+ Sequence< Any > aSeq(1);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ createInstance com.sun.star.office.OfficeWrapper" );
- Reference < XComponent > xWrapper( xSMgr->createInstanceWithArguments( DEFINE_CONST_UNICODE(
- "com.sun.star.office.OfficeWrapper" ), aSeq ),
- UNO_QUERY );
+ xWrapper = Reference < XComponent >( xSMgr->createInstanceWithArguments( DEFINE_CONST_UNICODE( "com.sun.star.office.OfficeWrapper" ), aSeq ), UNO_QUERY );
+ rSplashScreen->setValue(65);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "} createInstance com.sun.star.office.OfficeWrapper" );
- sal_Bool bTerminateRequested = sal_False;
-
- // Preload function depends on an initialized sfx application!
- bTerminateRequested = OEMPreloadProcess();
-
- {
- sal_Bool bUseSystemFileDialog;
- if ( pCmdLineArgs->IsHeadless() )
- {
- // Ensure that we use not the system file dialogs as
- // headless mode relies on Application::EnableHeadlessMode()
- // which does only work for VCL dialogs!!
- SvtMiscOptions aMiscOptions;
+ }
+ catch ( com::sun::star::lang::WrappedTargetException& wte )
+ {
+ com::sun::star::uno::Exception te;
+ wte.TargetException >>= te;
+ FatalError( MakeStartupConfigAccessErrorMessage(wte.Message + te.Message) );
+ return;
+ }
+ catch ( com::sun::star::uno::Exception& e )
+ {
+ FatalError( MakeStartupErrorMessage(e.Message) );
+ return;
+ }
+ /*
+ catch ( ... )
+ {
+ FatalError( MakeStartupErrorMessage(
+ OUString::createFromAscii(
+ "Unknown error during startup (Office wrapper service).\nInstallation could be damaged.")));
+ return;
+ }
+ */
- bUseSystemFileDialog = aMiscOptions.UseSystemFileDialog();
- aMiscOptions.SetUseSystemFileDialog( sal_False );
- }
+ sal_Bool bTerminateRequested = sal_False;
- Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_DIALOG );
+ // Preload function depends on an initialized sfx application!
+ bTerminateRequested = OEMPreloadProcess();
+ rSplashScreen->setValue(75);
- InitTestToolLib();
+ sal_Bool bUseSystemFileDialog;
+ if ( pCmdLineArgs->IsHeadless() )
+ {
+ // Ensure that we use not the system file dialogs as
+ // headless mode relies on Application::EnableHeadlessMode()
+ // which does only work for VCL dialogs!!
+ SvtMiscOptions aMiscOptions;
+ bUseSystemFileDialog = aMiscOptions.UseSystemFileDialog();
+ aMiscOptions.SetUseSystemFileDialog( sal_False );
+ }
- if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
- InitializeQuickstartMode( xSMgr );
+ // use system window dialogs
+ Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_DIALOG );
- if ( pCmdLineArgs->IsPlugin() )
- InitializePluginMode( xSMgr );
+ // initialize test-tool library (if available)
+ InitTestToolLib();
+ rSplashScreen->setValue(80);
- if ( !Application::IsRemoteServer() )
- {
- // Create TypeDetection service to have filter informations for quickstart feature
- RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) createInstance com.sun.star.document.TypeDetection" );
- Reference< XTypeDetection > xTypeDetection( xSMgr->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.TypeDetection" ))),
- UNO_QUERY );
- Reference< XDesktop > xDesktop( xSMgr->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))),
- UNO_QUERY );
- if ( xDesktop.is() )
- xDesktop->addTerminateListener( new OfficeIPCThreadController );
- }
+ if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
+ InitializeQuickstartMode( xSMgr );
- // Release solar mutex just before we wait for our client to connect
- int nAcquireCount = 0;
- ::vos::IMutex& rMutex = Application::GetSolarMutex();
- if ( rMutex.tryToAcquire() )
- nAcquireCount = Application::ReleaseSolarMutex() - 1;
+ if ( !Application::IsRemoteServer() )
+ {
+ // Create TypeDetection service to have filter informations for quickstart feature
+ RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) createInstance com.sun.star.document.TypeDetection" );
+ try
+ {
+ Reference< XTypeDetection >
+ xTypeDetection( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.TypeDetection" ))), UNO_QUERY );
+ rSplashScreen->setValue(85);
+ Reference< XDesktop > xDesktop( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
+ if ( xDesktop.is() )
+ xDesktop->addTerminateListener( new OfficeIPCThreadController );
+ rSplashScreen->setValue(100);
+ }
+ catch ( com::sun::star::uno::Exception& e )
+ {
+ FatalError( MakeStartupErrorMessage(e.Message) );
+ return;
+ }
+ /*
+ catch ( ... )
+ {
+ FatalError( MakeStartupErrorMessage(
+ OUString::createFromAscii(
+ "Unknown error during startup (TD/Desktop service).\nInstallation could be damaged.")));
+ return;
+ }
+ */
+ }
- Application::WaitForClientConnect();
+ // Release solar mutex just before we wait for our client to connect
+ int nAcquireCount = 0;
+ ::vos::IMutex& rMutex = Application::GetSolarMutex();
+ if ( rMutex.tryToAcquire() )
+ nAcquireCount = Application::ReleaseSolarMutex() - 1;
- // Post user event to startup first application component window
- // We have to send this OpenClients message short before execute() to
- // minimize the risk that this message overtakes type detection contruction!!
- Application::PostUserEvent( LINK( this, Desktop, OpenClients_Impl ) );
+ Application::WaitForClientConnect();
- // Acquire solar mutex just before we enter our message loop
- if ( nAcquireCount )
- Application::AcquireSolarMutex( nAcquireCount );
+ // Post user event to startup first application component window
+ // We have to send this OpenClients message short before execute() to
+ // minimize the risk that this message overtakes type detection contruction!!
+ Application::PostUserEvent( LINK( this, Desktop, OpenClients_Impl ) );
- // call Application::Execute to process messages in vcl message loop
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "call ::Application::Execute" );
- Execute();
+ // Post event to enable acceptors
+ Application::PostUserEvent( LINK( this, Desktop, EnableAcceptors_Impl) );
- // Restore old value
- if ( pCmdLineArgs->IsHeadless() )
- SvtMiscOptions().SetUseSystemFileDialog( bUseSystemFileDialog );
+ // Acquire solar mutex just before we enter our message loop
+ if ( nAcquireCount )
+ Application::AcquireSolarMutex( nAcquireCount );
+
+ // call Application::Execute to process messages in vcl message loop
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "call ::Application::Execute" );
+ Execute();
- // remove temp directory
- RemoveTemporaryDirectory();
+ // Restore old value
+ if ( pCmdLineArgs->IsHeadless() )
+ SvtMiscOptions().SetUseSystemFileDialog( bUseSystemFileDialog );
- DeregisterServices();
+ // remove temp directory
+ RemoveTemporaryDirectory();
- if ( pPluginAcceptThread )
- {
- pPluginAcceptThread->terminate();
- pPluginAcceptThread->release();
- pPluginAcceptThread = 0;
- }
+ DeregisterServices();
- DeInitTestToolLib();
- }
+ DeInitTestToolLib();
- xWrapper->dispose();
- xWrapper = 0;
+ xWrapper->dispose();
+ xWrapper = 0;
- delete pLanguageOptions;
- delete pPathOptions;
- }
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "-> dispose path/language options" );
+ delete pLanguageOptions;
+ delete pPathOptions;
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- dispose path/language options" );
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "-> deinit ucb" );
::ucb::ContentBroker::deinitialize();
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- deinit ucb" );
// instead of removing of the configManager just let it commit all the changes
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- store config items" );
utl::ConfigManager::GetConfigManager()->StoreConfigItems();
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- store config items" );
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "FINISHED WITH Destop::Main" );
}
sal_Bool Desktop::InitializeConfiguration()
@@ -1370,7 +1464,6 @@ sal_Bool Desktop::InitializeConfiguration()
{
OUString aVersionFileURL;
OUString aMsg;
-
utl::Bootstrap::PathStatus aPathStatus = utl::Bootstrap::locateVersionFile( aVersionFileURL );
if ( aPathStatus == utl::Bootstrap::PATH_EXISTS )
aMsg = CreateErrorMsgString( utl::Bootstrap::MISSING_VERSION_FILE_ENTRY, aVersionFileURL );
@@ -1384,14 +1477,14 @@ sal_Bool Desktop::InitializeConfiguration()
// [cm122549] It is assumed in this case that the message
// coming from InitConfiguration (in fact CreateApplicationConf...)
// is suitable for display directly.
- FatalErrorExit( MakeStartupErrorMessage( exception.Message ) );
+ FatalError( MakeStartupErrorMessage( exception.Message ) );
}
catch ( drafts::com::sun::star::configuration::backend::BackendSetupException& exception)
{
// [cm122549] It is assumed in this case that the message
// coming from InitConfiguration (in fact CreateApplicationConf...)
// is suitable for display directly.
- FatalErrorExit( MakeStartupErrorMessage( exception.Message ) );
+ FatalError( MakeStartupErrorMessage( exception.Message ) );
}
catch ( ::com::sun::star::configuration::CannotLoadConfigurationException& )
{
@@ -1405,7 +1498,7 @@ sal_Bool Desktop::InitializeConfiguration()
OUString() ));
HandleBootstrapPathErrors( ::utl::Bootstrap::INVALID_BASE_INSTALL, aMsg );
}
-
+
return bOk;
}
@@ -1435,77 +1528,12 @@ sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& r
}
}
-sal_Bool Desktop::InitializePluginMode( Reference< XMultiServiceFactory >& rSMgr )
-{
- RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) create PluginAcceptThread" );
-
- OSecurity aSecurity;
- OUString aUserIdent;
- OUString aVersionStr;
-
- aSecurity.getUserIdent( aUserIdent );
-
- OSL_ENSURE( GetCommandLineArgs()->GetVersionString( aVersionStr ), "No plugin version is specified!\n" );
-
- OUString aAcceptString( RTL_CONSTASCII_USTRINGPARAM( "pipe,name=soffice_plugin" ));
- aAcceptString += aVersionStr;
- aAcceptString += aUserIdent;
-
- if ( !pPluginAcceptThread )
- {
- pPluginAcceptThread = new PluginAcceptThread( rSMgr,
- new OInstanceProvider( rSMgr ),
- aAcceptString );
-
- // We have to acquire the plugin accept thread object to be sure
- // that the instance is still alive after an exception was thrown
- pPluginAcceptThread->acquire();
- pPluginAcceptThread->create();
- }
-
- return sal_True;
-}
-
void Desktop::SystemSettingsChanging( AllSettings& rSettings, Window* pFrame )
{
// OFF_APP()->SystemSettingsChanging( rSettings, pFrame );
}
// ========================================================================
-typedef ::vos::OTimer OFirstOfficeRunInitTimer_Base;
-class OFirstOfficeRunInitTimer : public OFirstOfficeRunInitTimer_Base
-{
-private:
- Link m_aAsyncExpireHandler;
-
-public:
- OFirstOfficeRunInitTimer( const Link& _rExpireHdl );
-
-private:
- virtual void SAL_CALL onShot();
-};
-
-// ========================================================================
-OFirstOfficeRunInitTimer::OFirstOfficeRunInitTimer( const Link& _rExpireHdl )
- :OFirstOfficeRunInitTimer_Base( TTimeValue( 3, 0 ) )
- ,m_aAsyncExpireHandler( _rExpireHdl )
-{
- acquire();
-}
-
-// ========================================================================
-void SAL_CALL OFirstOfficeRunInitTimer::onShot()
-{
- {
- ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- Application::PostUserEvent( m_aAsyncExpireHandler );
- }
-
- // delete ourself - we're not needed anymore
- release();
-}
-
-// ========================================================================
IMPL_LINK( Desktop, AsyncInitFirstRun, void*, NOTINTERESTEDIN )
{
DoFirstRunInitializations();
@@ -1518,13 +1546,26 @@ IMPL_LINK( Desktop, OpenClients_Impl, void*, pvoid )
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::OpenClients_Impl" );
OpenClients();
- CloseStartupScreen();
+ // CloseStartupScreen();
+ Reference<XStatusIndicator>
+ rSplashScreen(::comphelper::getProcessServiceFactory()->createInstance(
+ DEFINE_CONST_UNICODE( "com.sun.star.office.SplashScreen")), UNO_QUERY);
+ rSplashScreen->end();
CheckFirstRun( );
EnableOleAutomation();
return 0;
}
+
+// enable acceptos
+IMPL_LINK( Desktop, EnableAcceptors_Impl, void*, pvoid )
+{
+ enableAcceptors();
+ return 0;
+}
+
+
// Registers a COM class factory of the service manager with the windows operating system.
void Desktop::EnableOleAutomation()
{
@@ -1558,18 +1599,10 @@ void Desktop::OpenClients()
::com::sun::star::uno::UNO_QUERY );
// create the parameter array
- Sequence < PropertyValue > aArgs( 5 );
+ Sequence < PropertyValue > aArgs( 3 );
aArgs[0].Name = ::rtl::OUString::createFromAscii("Referer");
aArgs[1].Name = ::rtl::OUString::createFromAscii("AsTemplate");
- aArgs[2].Name = ::rtl::OUString::createFromAscii("FilterName");
- aArgs[3].Name = ::rtl::OUString::createFromAscii("SalvagedFile");
-
- Reference < com::sun::star::task::XInteractionHandler > xInteraction(
- ::comphelper::getProcessServiceFactory()->createInstance( OUString::createFromAscii("com.sun.star.task.InteractionHandler") ),
- com::sun::star::uno::UNO_QUERY );
-
- aArgs[4].Name = OUString::createFromAscii( "InteractionHandler" );
- aArgs[4].Value <<= xInteraction;
+ aArgs[2].Name = ::rtl::OUString::createFromAscii("SalvagedFile");
// mark it as a user request
aArgs[0].Value <<= ::rtl::OUString::createFromAscii("private:user");
@@ -1595,18 +1628,17 @@ void Desktop::OpenClients()
case RET_YES:
{
// recover a file
- aArgs[2].Value <<= ::rtl::OUString( sFilter );
if ( bIsURL )
{
// get the original URL for the recovered document
aArgs[1].Value <<= sal_False;
- aArgs[3].Value <<= ::rtl::OUString( sRealFileName );
+ aArgs[2].Value <<= ::rtl::OUString( sRealFileName );
}
else
{
// this was an untitled document ( open as template )
aArgs[1].Value <<= sal_True;
- aArgs[3].Value <<= ::rtl::OUString();
+ aArgs[2].Value <<= ::rtl::OUString();
}
// load the document
@@ -1615,6 +1647,34 @@ void Desktop::OpenClients()
// remember the first successfully recovered file
xFirst = xDoc;
+ if ( xDoc.is() && sFilter.getLength() && bIsURL )
+ {
+ // put the real filter name into the documents media descriptor
+ Reference < XModel > xModel( xDoc, UNO_QUERY );
+ Sequence < PropertyValue > sArgs = xModel->getArgs();
+ sal_Int32 nArgs = sArgs.getLength();
+ sal_Int32 nFilterProp = nArgs;
+ for ( sal_Int32 n=0; n<nArgs; n++ )
+ {
+ PropertyValue& rProp = sArgs[n];
+ if ( rProp.Name.compareToAscii("FilterName") == COMPARE_EQUAL )
+ {
+ nFilterProp = n;
+ break;
+ }
+ }
+
+ if ( nFilterProp == nArgs )
+ {
+ // currently no filter set
+ sArgs.realloc( nArgs+1 );
+ sArgs[nFilterProp].Name = ::rtl::OUString::createFromAscii("FilterName");
+ }
+
+ sArgs[nFilterProp].Value <<= sFilter;
+ xModel->attachResource( ::rtl::OUString( sRealFileName ), sArgs );
+ }
+
// backup copy will be removed when document is closed
break;
}
@@ -1675,14 +1735,9 @@ void Desktop::OpenClients()
if ( bLoaded || xFirst.is() || pArgs->IsServer() )
return;
- if( pArgs->IsQuickstart() ||
- pArgs->IsInvisible() ||
- pArgs->IsPlugin() ||
- pArgs->IsBean() )
-
+ if ( pArgs->IsQuickstart() || pArgs->IsInvisible() || pArgs->IsBean())
// soffice was started as tray icon
return;
-
{
OpenDefault();
}
@@ -1694,8 +1749,9 @@ void Desktop::OpenDefault()
::rtl::OUString aName;
SvtModuleOptions aOpt;
-
+
CommandLineArgs* pArgs = GetCommandLineArgs();
+ if ( pArgs->IsNoDefault() ) return;
if ( pArgs->HasModuleParam() )
{
// Support new command line parameters to start a module
@@ -1730,18 +1786,11 @@ void Desktop::OpenDefault()
return;
}
- Sequence < PropertyValue > aArgs(1);
- Reference < com::sun::star::task::XInteractionHandler > xInteraction(
- ::comphelper::getProcessServiceFactory()->createInstance( OUString::createFromAscii("com.sun.star.task.InteractionHandler") ),
- com::sun::star::uno::UNO_QUERY );
-
- aArgs[0].Name = OUString::createFromAscii( "InteractionHandler" );
- aArgs[0].Value <<= xInteraction;
-
+ Sequence < PropertyValue > aNoArgs;
Reference< XComponentLoader > xDesktop(
::comphelper::getProcessServiceFactory()->createInstance( OUSTRING(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop")) ),
::com::sun::star::uno::UNO_QUERY );
- xDesktop->loadComponentFromURL( aName, ::rtl::OUString::createFromAscii( "_blank" ), 0, aArgs );
+ xDesktop->loadComponentFromURL( aName, ::rtl::OUString::createFromAscii( "_blank" ), 0, aNoArgs );
}
@@ -1788,7 +1837,7 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
::com::sun::star::uno::UNO_QUERY );
// create parameter array
- sal_Int32 nCount = rAppEvent.IsPrintEvent() ? 5 : 2;
+ sal_Int32 nCount = rAppEvent.IsPrintEvent() ? 5 : 1;
Sequence < PropertyValue > aArgs( nCount );
aArgs[0].Name = ::rtl::OUString::createFromAscii("Referer");
@@ -1799,15 +1848,6 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
aArgs[3].Name = ::rtl::OUString::createFromAscii("Hidden");
aArgs[4].Name = ::rtl::OUString::createFromAscii("Silent");
}
- else
- {
- Reference < com::sun::star::task::XInteractionHandler > xInteraction(
- ::comphelper::getProcessServiceFactory()->createInstance( OUString::createFromAscii("com.sun.star.task.InteractionHandler") ),
- com::sun::star::uno::UNO_QUERY );
-
- aArgs[1].Name = OUString::createFromAscii( "InteractionHandler" );
- aArgs[1].Value <<= xInteraction;
- }
// mark request as user interaction from outside
aArgs[0].Value <<= ::rtl::OUString::createFromAscii("private:OpenEvent");
@@ -1846,8 +1886,6 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
aTarget = ::rtl::OUString( DEFINE_CONST_UNICODE("_blank") );
}
- try
- {
Reference < XPrintable > xDoc;
if(
( aName.CompareToAscii( ".uno" , 4 ) == COMPARE_EQUAL ) ||
@@ -1932,10 +1970,6 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
if ( xComp.is() )
xComp->dispose();
}
- }
- catch ( com::sun::star::uno::Exception& )
- {
- }
}
// remove this pending request
@@ -1965,7 +1999,7 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
// no visible task that could be activated found
OpenDefault();
}
- else if ( rAppEvent.GetEvent() == "QUICKSTART" && !GetCommandLineArgs()->IsInvisible() )
+ else if ( rAppEvent.GetEvent() == "QUICKSTART" && !GetCommandLineArgs()->IsInvisible() )
{
// If the office has been started the second time its command line arguments are sent through a pipe
// connection to the first office. We want to reuse the quickstart option for the first office.
@@ -1977,20 +2011,38 @@ void Desktop::HandleAppEvent( const ApplicationEvent& rAppEvent )
aSeq[0] <<= bQuickstart;
Reference < XInitialization > xQuickstart( ::comphelper::getProcessServiceFactory()->createInstance(
- DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" )),
- UNO_QUERY );
+ DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" )),
+ UNO_QUERY );
if ( xQuickstart.is() )
xQuickstart->initialize( aSeq );
}
+ else if ( rAppEvent.GetEvent() == "ACCEPT" )
+ {
+ // every time an accept parameter is used we create an acceptor
+ // with the corresponding accept-string
+ OUString aAcceptString(rAppEvent.GetData().GetBuffer());
+ createAcceptor(aAcceptString);
+ }
+ else if ( rAppEvent.GetEvent() == "UNACCEPT" )
+ {
+ // try to remove corresponding acceptor
+ OUString aUnAcceptString(rAppEvent.GetData().GetBuffer());
+ destroyAcceptor(aUnAcceptString);
+ }
+#ifndef UNX
+ else if ( rAppEvent.GetEvent() == "HELP" )
+ {
+ // in non unix version allow showing of cmdline help window
+ displayCmdlineHelp();
+ }
+#endif
}
-void Desktop::OpenStartupScreen()
+Reference<XStatusIndicator> Desktop::getSplashScreen()
{
- RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::OpenStartupScreen" );
-
::rtl::OUString aTmpString;
CommandLineArgs* pCmdLine = GetCommandLineArgs();
-
+ sal_Bool bVisible = sal_False;
// Show intro only if this is normal start (e.g. no server, no quickstart, no printing )
if ( !Application::IsRemoteServer() &&
!pCmdLine->IsInvisible() &&
@@ -2001,66 +2053,16 @@ void Desktop::OpenStartupScreen()
!pCmdLine->GetPrintList( aTmpString ) &&
!pCmdLine->GetPrintToList( aTmpString ) )
{
- String aBmpFileName;
- ::rtl::OUString aIniPath;
- ::rtl::OUString aLogo( RTL_CONSTASCII_USTRINGPARAM( "1" ) );
- Bitmap aIntroBmp;
-
- aLogo = ::utl::Bootstrap::getLogoData( aLogo );
- sal_Bool bLogo = (sal_Bool)aLogo.toInt32();
- if ( bLogo )
- {
- xub_StrLen nIndex = 0;
- aBmpFileName += String( DEFINE_CONST_UNICODE("_intro.bmp") );
-
- // retrieve our current installation path
- ::rtl::OUString aExecutePath;
- ::vos::OStartupInfo().getExecutableFile( aExecutePath );
- sal_uInt32 lastIndex = aExecutePath.lastIndexOf('/');
- if ( lastIndex > 0 )
- aExecutePath = aExecutePath.copy( 0, lastIndex+1 );
-
- INetURLObject aObj( aExecutePath, INET_PROT_FILE );
- aObj.insertName( aBmpFileName );
- SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
- if ( !aStrm.GetError() )
- {
- // Default case, we load the intro bitmap from a seperate file
- // (e.g. staroffice_intro.bmp or starsuite_intro.bmp)
- aStrm >> aIntroBmp;
- }
- else
- {
- // Save case:
- // Create resource manager for intro bitmap. Due to our problem that we don't have
- // any language specific information, we have to search for the correct resource
- // file. The bitmap resource is language independent.
- const USHORT nResId = RID_DEFAULTINTRO;
- LanguageType aLanguageType;
- String aMgrName = String::CreateFromAscii( "iso" );
-
- aMgrName += String::CreateFromInt32(SUPD); // current build version
- ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( U2S( aMgrName ), aLanguageType );
-
- ResId aIntroBmpRes( nResId, pLabelResMgr );
- aIntroBmp = Bitmap( aIntroBmpRes );
- delete pLabelResMgr;
- }
-
- m_pIntro = new IntroWindow_Impl( aIntroBmp );
- }
- }
-}
-
-void Desktop::CloseStartupScreen()
-{
- // close splash screen and delete window
- delete m_pIntro;
- m_pIntro = 0;
- RTL_LOGFILE_TRACE( "desktop (cd100003) ::Desktop::CloseStartupScreen" );
+ bVisible = sal_True;
+ }
+ Sequence< Any > aSeq( 1 );
+ aSeq[0] <<= bVisible;
+ Reference<XStatusIndicator> rSplashScreen(
+ ::comphelper::getProcessServiceFactory()->createInstanceWithArguments(
+ DEFINE_CONST_UNICODE( "com.sun.star.office.SplashScreen"), aSeq), UNO_QUERY);
+ return rSplashScreen;
}
-
// ========================================================================
void Desktop::DoFirstRunInitializations()
{
@@ -2104,12 +2106,13 @@ void Desktop::CheckFirstRun( )
// --------------------------------------------------------------------
// it is the first run
-
- // do the initialization asynchronously
- ::vos::ORef< ::vos::OTimer > xInitTimer = new OFirstOfficeRunInitTimer( LINK( this, Desktop, AsyncInitFirstRun ) );
- xInitTimer->start();
- OSL_ENSURE( xInitTimer->isTicking() && !xInitTimer->isExpired(),
- "Desktop::CheckFirstRun: strange timer behaviour!" );
+ // this has once been done using a vos timer. this could lead to problems when
+ // the timer would trigger when the app is already going down again, since VCL would
+ // no longer be available. Since the old handler would do a postUserEvent to the main
+ // thread anyway, we can use a vcl timer here to prevent the race contition (#107197#)
+ m_firstRunTimer.SetTimeout(3000); // 3 sec.
+ m_firstRunTimer.SetTimeoutHdl(LINK(this, Desktop, AsyncInitFirstRun));
+ m_firstRunTimer.Start();
// --------------------------------------------------------------------
// reset the config flag
@@ -2120,4 +2123,4 @@ void Desktop::CheckFirstRun( )
aCommonMisc.commit();
}
-} // namespace desktop
+}
diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
index cb60974fab..bfe80d6cc6 100644
--- a/desktop/source/app/appinit.cxx
+++ b/desktop/source/app/appinit.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: appinit.cxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: lo $ $Date: 2002-11-06 14:31:21 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -59,9 +59,10 @@
*
************************************************************************/
+#include <algorithm>
+
#include "app.hxx"
#include "cmdlineargs.hxx"
-#include "officeacceptthread.hxx"
#ifndef _COM_SUN_STAR_REGISTRY_XSIMPLEREGISTRY_HPP_
#include <com/sun/star/registry/XSimpleRegistry.hpp>
@@ -75,6 +76,10 @@
#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_
#include <com/sun/star/uno/Exception.hpp>
#endif
+#ifndef _COM_SUN_STAR_PACKAGES_ZIP_ZIPIOEXCEPTION_HPP_
+#include <com/sun/star/packages/zip/ZipIOException.hpp>
+#endif
+
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -104,6 +109,9 @@
#ifndef _RTL_USTRBUF_HXX_
#include <rtl/ustrbuf.hxx>
#endif
+#ifndef _RTL_BOOTSTRAP_HXX_
+#include <rtl/bootstrap.hxx>
+#endif
#ifndef _COMPHELPER_REGPATHHELPER_HXX_
#include <comphelper/regpathhelper.hxx>
#endif
@@ -243,6 +251,27 @@ sal_Bool Desktop::InitializeInstallation( const OUString& rAppFilename )
Reference< XMultiServiceFactory > Desktop::CreateApplicationServiceManager()
{
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::createApplicationServiceManager" );
+
+ OUString aUserDir;
+ if ( GetCommandLineArgs()->GetUserDir( aUserDir ))
+ {
+ OUString aUserDirURL;
+
+ if ( osl::FileBase::getFileURLFromSystemPath( aUserDir, aUserDirURL ) == 0 )
+ {
+ // now must be a valid file URL. For best results make absolute using
+ OUString aProcessWorkDirURL;
+
+ oslProcessError nProcessError = osl_getProcessWorkingDir( &aProcessWorkDirURL.pData );
+ if ( nProcessError == osl_Process_E_None )
+ {
+ osl::FileBase::getAbsoluteFileURL( aProcessWorkDirURL, aUserDirURL, aUserDirURL );
+
+ // now override the bootstrap setting:
+ rtl::Bootstrap::set( OUString::createFromAscii( "UserInstallation" ), aUserDirURL );
+ }
+ }
+ }
try
{
@@ -312,9 +341,8 @@ void Desktop::RegisterServices( Reference< XMultiServiceFactory >& xSMgr )
if ( conDcp.getLength() > 0 )
{
// accept incoming connections (scripting and one rvp)
- RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::OOfficeAcceptorThread::OOfficeAcceptorThread" );
- pOfficeAcceptThread = new OOfficeAcceptorThread( xSMgr, conDcp, bHeadlessMode, aClientDisplay, aUserDir );
- pOfficeAcceptThread->create();
+ RTL_LOGFILE_CONTEXT( aLog, "desktop (lo119109) desktop::Desktop::createAcceptor()" );
+ createAcceptor(conDcp);
}
// improves parallel processing on Sun ONE Webtop
@@ -358,19 +386,97 @@ void Desktop::RegisterServices( Reference< XMultiServiceFactory >& xSMgr )
CreateTemporaryDirectory();
}
-void Desktop::DeregisterServices()
+AcceptorMap Desktop::m_acceptorMap;
+osl::Mutex Desktop::m_mtxAccMap;
+static sal_Bool bAccept = sal_False;
+
+void Desktop::createAcceptor(const OUString& aAcceptString)
{
- if( pOfficeAcceptThread )
+ // make sure nobody adds an acceptor whle we create one...
+ osl::MutexGuard aGuard(m_mtxAccMap);
+ // check whether the requested acceptor already exists
+ AcceptorMap::const_iterator pIter = m_acceptorMap.find(aAcceptString);
+ if (pIter == m_acceptorMap.end() ) {
+
+ Sequence< Any > aSeq( 2 );
+ aSeq[0] <<= aAcceptString;
+ aSeq[1] <<= bAccept;
+ Reference<XInitialization> rAcceptor(
+ ::comphelper::getProcessServiceFactory()->createInstance(
+ OUString::createFromAscii( "com.sun.star.office.Acceptor" )), UNO_QUERY );
+ if ( rAcceptor.is() ) {
+ try{
+ rAcceptor->initialize( aSeq );
+ m_acceptorMap.insert(AcceptorMap::value_type(aAcceptString, rAcceptor));
+ } catch (com::sun::star::uno::Exception&) {
+ // no error handling needed...
+ // acceptor just won't come up
+ OSL_ENSURE(sal_False, "Acceptor could not be created.");
+ }
+ } else {
+ // there is already an acceptor with this description
+ OSL_ENSURE(sal_False, "Acceptor already exists.");
+ }
+
+ }
+}
+
+class enable
+{
+ private:
+ Sequence<Any> m_aSeq;
+ public:
+ enable() : m_aSeq(1) {
+ m_aSeq[0] <<= sal_True;
+ }
+ void operator() (const AcceptorMap::value_type& val) {
+ if (val.second.is()) {
+ val.second->initialize(m_aSeq);
+ }
+ }
+};
+
+void Desktop::enableAcceptors()
+{
+ RTL_LOGFILE_CONTEXT(aLog, "desktop (lo119109) Desktop::enableAcceptors");
+ osl::MutexGuard aGuard(m_mtxAccMap);
+ if (!bAccept)
{
- pOfficeAcceptThread->stopAccepting();
-#ifndef LINUX
- Desktop::pOfficeAcceptThread->join();
- delete pOfficeAcceptThread;
-#endif
- pOfficeAcceptThread = 0;
+ // from now on, all new acceptors are enabled
+ bAccept = sal_True;
+ // enable existing acceptors by calling initialize(true)
+ // on all existing acceptors
+ std::for_each(m_acceptorMap.begin(), m_acceptorMap.end(), enable());
}
}
+void Desktop::destroyAcceptor(const OUString& aAcceptString)
+{
+ osl::MutexGuard aGuard(m_mtxAccMap);
+ // special case stop all acceptors
+ if (aAcceptString.compareToAscii("all") == 0) {
+ m_acceptorMap.clear();
+
+ } else {
+ // try to remove acceptor from map
+ AcceptorMap::const_iterator pIter = m_acceptorMap.find(aAcceptString);
+ if (pIter != m_acceptorMap.end() ) {
+ // remove reference from map
+ // this is the last reference and the acceptor will be destructed
+ m_acceptorMap.erase(aAcceptString);
+ } else {
+ OSL_ENSURE(sal_False, "Found no acceptor to remove");
+ }
+ }
+}
+
+
+void Desktop::DeregisterServices()
+{
+ // stop all acceptors by clearing the map
+ m_acceptorMap.clear();
+}
+
void Desktop::CreateTemporaryDirectory()
{
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::createTemporaryDirectory" );
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 2d42b8c301..34b90dd664 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cmdlineargs.cxx,v $
*
- * $Revision: 1.16 $
+ * $Revision: 1.17 $
*
- * last change: $Author: cd $ $Date: 2002-10-24 15:39:14 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -156,7 +156,6 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
sal_Bool bForceNewEvent = sal_False;
sal_Int32 nIndex = 0;
-
do
{
::rtl::OUString aArg = aCmdLineString.getToken( 0, '|', nIndex );
@@ -208,15 +207,14 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
}
else if ( aArgStr.EqualsIgnoreCaseAscii( "-view" ))
{
- // Print to default printer
- bOpenEvent = sal_False;
- bViewEvent = sal_True;
- bPrintEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
+ // open in viewmode
+ bOpenEvent = sal_False;
+ bViewEvent = sal_True;
+ bPrintEvent = sal_False;
+ bPrintToEvent = sal_False;
+ bForceNewEvent = sal_False;
bForceOpenEvent = sal_False;
}
-
}
else
{
@@ -231,6 +229,8 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
// handle this argument as a filename
if ( bOpenEvent )
AddStringListParam_Impl( CMD_STRINGPARAM_OPENLIST, aArgStr );
+ else if ( bViewEvent )
+ AddStringListParam_Impl( CMD_STRINGPARAM_VIEWLIST, aArgStr );
else if ( bPrintEvent )
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTLIST, aArgStr );
else if ( bPrintToEvent )
@@ -239,8 +239,6 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
AddStringListParam_Impl( CMD_STRINGPARAM_FORCENEWLIST, aArgStr );
else if ( bForceOpenEvent )
AddStringListParam_Impl( CMD_STRINGPARAM_FORCEOPENLIST, aArgStr );
- else if ( bViewEvent )
- AddStringListParam_Impl( CMD_STRINGPARAM_VIEWLIST, aArgStr );
}
}
}
@@ -268,6 +266,11 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
SetBoolParam_Impl( CMD_BOOLPARAM_NORESTORE, sal_True );
return sal_True;
}
+ else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-nodefault" )) == sal_True )
+ {
+ SetBoolParam_Impl( CMD_BOOLPARAM_NODEFAULT, sal_True );
+ return sal_True;
+ }
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-bean" )) == sal_True )
{
SetBoolParam_Impl( CMD_BOOLPARAM_BEAN, sal_True );
@@ -310,11 +313,23 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
SetBoolParam_Impl( CMD_BOOLPARAM_NOLOCKCHECK, sal_True );
return sal_True;
}
+ else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-help" ))
+ || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-h" ))
+ || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-?" )))
+ {
+ SetBoolParam_Impl( CMD_BOOLPARAM_HELP, sal_True );
+ return sal_True;
+ }
else if ( aArgStr.Copy(0, 8).EqualsIgnoreCaseAscii( "-accept=" ))
{
AddStringListParam_Impl( CMD_STRINGPARAM_ACCEPT, aArgStr.Copy( 8 ) );
return sal_True;
}
+ else if ( aArgStr.Copy(0, 10).EqualsIgnoreCaseAscii( "-unaccept=" ))
+ {
+ AddStringListParam_Impl( CMD_STRINGPARAM_UNACCEPT, aArgStr.Copy( 10 ) );
+ return sal_True;
+ }
else if ( aArgStr.CompareIgnoreCaseToAscii( "-portal," ,
RTL_CONSTASCII_LENGTH( "-portal," )) == COMPARE_EQUAL )
{
@@ -323,15 +338,12 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
}
else if ( aArgStr.Copy( 0, 7 ).EqualsIgnoreCaseAscii( "-userid" ))
{
- ::rtl::OUString aUserId = aArgStr;
-
- sal_Int32 nPos = aUserId.indexOf( '[' );
- sal_Int32 nEndpos = aUserId.lastIndexOf( ']' );
- if( nPos != -1 && nEndpos != -1 )
+ if ( aArgStr.Len() > 8 )
{
+ rtl::OUString aUserDir = aArgStr;
AddStringListParam_Impl(
CMD_STRINGPARAM_USERDIR,
- ::rtl::Uri::decode( aUserId.copy( nPos + 1, nEndpos - nPos - 1 ),
+ ::rtl::Uri::decode( aUserDir.copy( 8 ),
rtl_UriDecodeWithCharset,
RTL_TEXTENCODING_UTF8 ) );
}
@@ -347,11 +359,6 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
AddStringListParam_Impl( CMD_STRINGPARAM_VERSION, aArgStr.Copy( 15 ) );
return sal_True;
}
- else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-master" )) == sal_True )
- {
- SetBoolParam_Impl( CMD_BOOLPARAM_MASTER, sal_True );
- return sal_True;
- }
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-writer" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_WRITER );
@@ -420,8 +427,7 @@ sal_Bool CommandLineArgs::CheckGroupMembers( GroupParamId nGroupId, BoolParam nE
void CommandLineArgs::ResetParamValues()
{
- int i;
- for ( i = 0; i < CMD_BOOLPARAM_COUNT; i++ )
+ for ( int i = 0; i < CMD_BOOLPARAM_COUNT; i++ )
m_aBoolParams[i] = sal_False;
for ( i = 0; i < CMD_STRINGPARAM_COUNT; i++ )
m_aStrSetParams[i] = sal_False;
@@ -459,12 +465,6 @@ void CommandLineArgs::SetStringParam( BoolParam eParam, const rtl::OUString& aNe
m_aStrParams[eParam] = aNewValue;
}
-sal_Bool CommandLineArgs::IsMaster() const
-{
- osl::MutexGuard aMutexGuard( m_aMutex );
- return m_aBoolParams[ CMD_BOOLPARAM_MASTER ];
-}
-
sal_Bool CommandLineArgs::IsMinimized() const
{
osl::MutexGuard aMutexGuard( m_aMutex );
@@ -483,6 +483,12 @@ sal_Bool CommandLineArgs::IsNoRestore() const
return m_aBoolParams[ CMD_BOOLPARAM_NORESTORE ];
}
+sal_Bool CommandLineArgs::IsNoDefault() const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ return m_aBoolParams[ CMD_BOOLPARAM_NODEFAULT ];
+}
+
sal_Bool CommandLineArgs::IsBean() const
{
osl::MutexGuard aMutexGuard( m_aMutex );
@@ -531,6 +537,12 @@ sal_Bool CommandLineArgs::IsNoLockcheck() const
return m_aBoolParams[ CMD_BOOLPARAM_NOLOCKCHECK ];
}
+sal_Bool CommandLineArgs::IsHelp() const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ return m_aBoolParams[ CMD_BOOLPARAM_HELP ];
+}
+
sal_Bool CommandLineArgs::IsWriter() const
{
osl::MutexGuard aMutexGuard( m_aMutex );
@@ -593,6 +605,13 @@ sal_Bool CommandLineArgs::GetAcceptString( ::rtl::OUString& rPara ) const
return m_aStrSetParams[ CMD_STRINGPARAM_ACCEPT ];
}
+sal_Bool CommandLineArgs::GetUnAcceptString( ::rtl::OUString& rPara ) const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ rPara = m_aStrParams[ CMD_STRINGPARAM_UNACCEPT ];
+ return m_aStrSetParams[ CMD_STRINGPARAM_UNACCEPT ];
+}
+
sal_Bool CommandLineArgs::GetUserDir( ::rtl::OUString& rPara) const
{
osl::MutexGuard aMutexGuard( m_aMutex );
@@ -614,18 +633,18 @@ sal_Bool CommandLineArgs::GetOpenList( ::rtl::OUString& rPara) const
return m_aStrSetParams[ CMD_STRINGPARAM_OPENLIST ];
}
-sal_Bool CommandLineArgs::GetForceOpenList( ::rtl::OUString& rPara) const
+sal_Bool CommandLineArgs::GetViewList( ::rtl::OUString& rPara) const
{
osl::MutexGuard aMutexGuard( m_aMutex );
- rPara = m_aStrParams[ CMD_STRINGPARAM_FORCEOPENLIST ];
- return m_aStrSetParams[ CMD_STRINGPARAM_FORCEOPENLIST ];
+ rPara = m_aStrParams[ CMD_STRINGPARAM_VIEWLIST ];
+ return m_aStrSetParams[ CMD_STRINGPARAM_VIEWLIST ];
}
-sal_Bool CommandLineArgs::GetViewList( ::rtl::OUString& rPara) const
+sal_Bool CommandLineArgs::GetForceOpenList( ::rtl::OUString& rPara) const
{
osl::MutexGuard aMutexGuard( m_aMutex );
- rPara = m_aStrParams[ CMD_STRINGPARAM_VIEWLIST ];
- return m_aStrSetParams[ CMD_STRINGPARAM_VIEWLIST ];
+ rPara = m_aStrParams[ CMD_STRINGPARAM_FORCEOPENLIST ];
+ return m_aStrSetParams[ CMD_STRINGPARAM_FORCEOPENLIST ];
}
sal_Bool CommandLineArgs::GetForceNewList( ::rtl::OUString& rPara) const
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index 46c07f669e..19566efbdf 100644
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cmdlineargs.hxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: cd $ $Date: 2002-10-24 15:39:22 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -92,7 +92,8 @@ class CommandLineArgs
CMD_BOOLPARAM_TERMINATEAFTERINIT,
CMD_BOOLPARAM_NOLOGO,
CMD_BOOLPARAM_NOLOCKCHECK,
- CMD_BOOLPARAM_MASTER,
+ CMD_BOOLPARAM_NODEFAULT,
+ CMD_BOOLPARAM_HELP,
CMD_BOOLPARAM_WRITER,
CMD_BOOLPARAM_CALC,
CMD_BOOLPARAM_DRAW,
@@ -107,16 +108,17 @@ class CommandLineArgs
{
CMD_STRINGPARAM_PORTAL,
CMD_STRINGPARAM_ACCEPT,
+ CMD_STRINGPARAM_UNACCEPT,
CMD_STRINGPARAM_USERDIR,
CMD_STRINGPARAM_CLIENTDISPLAY,
CMD_STRINGPARAM_OPENLIST,
- CMD_STRINGPARAM_FORCEOPENLIST,
CMD_STRINGPARAM_VIEWLIST,
+ CMD_STRINGPARAM_FORCEOPENLIST,
CMD_STRINGPARAM_FORCENEWLIST,
CMD_STRINGPARAM_PRINTLIST,
CMD_STRINGPARAM_VERSION,
CMD_STRINGPARAM_PRINTTOLIST,
- CMD_STRINGPARAM_PRINTERNAME,
+ CMD_STRINGPARAM_PRINTERNAME,
CMD_STRINGPARAM_COUNT // must be last element!
};
@@ -138,10 +140,10 @@ class CommandLineArgs
void SetStringParam( BoolParam eParam, const rtl::OUString& bNewValue );
// Access to bool parameters
- sal_Bool IsMaster() const;
sal_Bool IsMinimized() const;
sal_Bool IsInvisible() const;
sal_Bool IsNoRestore() const;
+ sal_Bool IsNoDefault() const;
sal_Bool IsBean() const;
sal_Bool IsPlugin() const;
sal_Bool IsServer() const;
@@ -150,6 +152,7 @@ class CommandLineArgs
sal_Bool IsTerminateAfterInit() const;
sal_Bool IsNoLogo() const;
sal_Bool IsNoLockcheck() const;
+ sal_Bool IsHelp() const;
sal_Bool IsWriter() const;
sal_Bool IsCalc() const;
sal_Bool IsDraw() const;
@@ -162,13 +165,14 @@ class CommandLineArgs
// Access to string parameters
sal_Bool GetPortalConnectString( ::rtl::OUString& rPara) const;
sal_Bool GetAcceptString( ::rtl::OUString& rPara) const;
+ sal_Bool GetUnAcceptString( ::rtl::OUString& rPara) const;
sal_Bool GetUserDir( ::rtl::OUString& rPara) const;
sal_Bool GetClientDisplay( ::rtl::OUString& rPara) const;
sal_Bool GetOpenList( ::rtl::OUString& rPara) const;
+ sal_Bool GetViewList( ::rtl::OUString& rPara) const;
sal_Bool GetForceOpenList( ::rtl::OUString& rPara) const;
sal_Bool GetForceNewList( ::rtl::OUString& rPara) const;
sal_Bool GetPrintList( ::rtl::OUString& rPara) const;
- sal_Bool GetViewList( ::rtl::OUString& rPara) const;
sal_Bool GetVersionString( ::rtl::OUString& rPara) const;
sal_Bool GetPrintToList( ::rtl::OUString& rPara ) const;
sal_Bool GetPrinterName( ::rtl::OUString& rPara ) const;
diff --git a/desktop/source/app/cmdlinehelp.cxx b/desktop/source/app/cmdlinehelp.cxx
new file mode 100644
index 0000000000..98e5af6e16
--- /dev/null
+++ b/desktop/source/app/cmdlinehelp.cxx
@@ -0,0 +1,140 @@
+#include <stdlib.h>
+#ifdef UNX
+#include <stdio.h>
+#endif
+#include <sal/types.h>
+#include <tools/string.hxx>
+#include <vcl/msgbox.hxx>
+#include <rtl/bootstrap.hxx>
+#include <app.hxx>
+
+#include "desktopresid.hxx"
+#include "desktop.hrc"
+#include "cmdlinehelp.hxx"
+
+namespace desktop
+{
+ // to be able to display the help nicely in a dialog box with propotional font,
+ // we need to split it in chunks...
+ // ___HEAD___
+ // LEFT RIGHT
+ // LEFT RIGHT
+ // LEFT RIGHT
+ // __BOTTOM__
+ // [OK]
+
+ const char *aCmdLineHelp_head =
+ "%PRODUCTNAME %PRODUCTVERSION %PRODUCTEXTENSION %BUILDID\n"\
+ "\n"\
+ "Usage: %CMDNAME [options] [documents...]\n"\
+ "\n"\
+ "Options:\n";
+ const char *aCmdLineHelp_left =
+ "-minimized \n"\
+ "-invisible \n"\
+ "-norestore \n"\
+ "-quickstart \n"\
+ "-nologo \n"\
+ "-nolockcheck \n"\
+ "-nodefault \n"\
+ "-headless \n"\
+ "-help/-h/-? \n"\
+ "-writer \n"\
+ "-calc \n"\
+ "-draw \n"\
+ "-impress \n"\
+ "-math \n"\
+ "-global \n"\
+ "-web \n"\
+ "-o \n"\
+ "-n \n";
+ const char *aCmdLineHelp_right =
+ "keep startup bitmap minimized.\n"\
+ "no startup screen, no default document and no UI.\n"\
+ "suppress restart/restore after fatal errors.\n"\
+ "starts the quickstart service\n"\
+ "don't show startup screen.\n"\
+ "don't check for remote instances using the installation\n"\
+ "don't start with an empty document\n"\
+ "like invisible but no userinteraction at all.\n"\
+ "show this message and exit.\n"\
+ "create new text document.\n"\
+ "create new spreadsheet document.\n"\
+ "create new drawing.\n"\
+ "create new presentation.\n"\
+ "create new formula.\n"\
+ "create new global document.\n"\
+ "create new HTML document.\n"\
+ "open documents regardless whether they are templates or not.\n"\
+ "always open documents as new files (use as template).\n";
+ const char *aCmdLineHelp_bottom =
+ "-display <display>\n"\
+ " Specify X-Display to use in Unix/X11 versions.\n"
+ "-p <documents...>\n"\
+ " print the specified documents on the default printer.\n"\
+ "-pt <printer> <documents...>\n"\
+ " print the specified documents on the specified printer.\n"\
+ "-view <documents...>\n"\
+ " open the specified documents in viewer-(readonly-)mode.\n"\
+ "-accept=<accept-string>\n"\
+ " Specify an UNO connect-string to create an UNO acceptor through which\n"\
+ " other programs can connect to access the API\n"\
+ "-unaccept=<accept-sring>\n"\
+ " Close an acceptor that was created with -accept=<accept-string>\n"\
+ " Use -unnaccept=all to close all open acceptors\n"\
+ "Remaining arguments will be treated as filenames or URLs of documents to open.\n";
+
+ void ReplaceStringHookProc( UniString& rStr );
+
+ void displayCmdlineHelp()
+ {
+ // if you put variables in other chunks don't forget to call the replace routines
+ // for those chunks...
+ String aHelpMessage_head(aCmdLineHelp_head, RTL_TEXTENCODING_ASCII_US);
+ String aHelpMessage_left(aCmdLineHelp_left, RTL_TEXTENCODING_ASCII_US);
+ String aHelpMessage_right(aCmdLineHelp_right, RTL_TEXTENCODING_ASCII_US);
+ String aHelpMessage_bottom(aCmdLineHelp_bottom, RTL_TEXTENCODING_ASCII_US);
+ ReplaceStringHookProc(aHelpMessage_head);
+ ::rtl::OUString aDefault;
+ String aVerId( ::utl::Bootstrap::getBuildIdData( aDefault ));
+ aHelpMessage_head.SearchAndReplaceAscii( "%BUILDID", aVerId );
+ aHelpMessage_head.SearchAndReplaceAscii( "%CMDNAME", String( "soffice", RTL_TEXTENCODING_ASCII_US) );
+#ifdef UNX
+ // on unix use console for output
+ fprintf(stderr, "%s\n", ByteString(aHelpMessage_head,
+ RTL_TEXTENCODING_ASCII_US).GetBuffer());
+ // merge left and right column
+ int n = aHelpMessage_left.GetTokenCount ('\n');
+ ByteString bsLeft(aHelpMessage_left, RTL_TEXTENCODING_ASCII_US);
+ ByteString bsRight(aHelpMessage_right, RTL_TEXTENCODING_ASCII_US);
+ for ( int i = 0; i < n; i++ )
+ {
+ fprintf(stderr, "%s", bsLeft.GetToken(i, '\n').GetBuffer());
+ fprintf(stderr, "%s\n", bsRight.GetToken(i, '\n').GetBuffer());
+ }
+ fprintf(stderr, "%s", ByteString(aHelpMessage_bottom,
+ RTL_TEXTENCODING_ASCII_US).GetBuffer());
+#else
+ // rest gets a dialog box
+ CmdlineHelpDialog aDlg;
+ aDlg.m_ftHead.SetText(aHelpMessage_head);
+ aDlg.m_ftLeft.SetText(aHelpMessage_left);
+ aDlg.m_ftRight.SetText(aHelpMessage_right);
+ aDlg.m_ftBottom.SetText(aHelpMessage_bottom);
+ aDlg.Execute();
+#endif
+ }
+
+ CmdlineHelpDialog::CmdlineHelpDialog (void)
+ : ModalDialog( NULL, DesktopResId( DLG_CMDLINEHELP ) )
+ , m_ftHead( this, DesktopResId( TXT_DLG_CMDLINEHELP_HEADER ) )
+ , m_ftLeft( this, DesktopResId( TXT_DLG_CMDLINEHELP_LEFT ) )
+ , m_ftRight( this, DesktopResId( TXT_DLG_CMDLINEHELP_RIGHT ) )
+ , m_ftBottom( this, DesktopResId( TXT_DLG_CMDLINEHELP_BOTTOM ) )
+ , m_btOk( this, DesktopResId( BTN_DLG_CMDLINEHELP_OK ) )
+ {
+ FreeResource();
+ }
+
+}
+
diff --git a/desktop/source/app/cmdlinehelp.hxx b/desktop/source/app/cmdlinehelp.hxx
new file mode 100644
index 0000000000..09b44eb958
--- /dev/null
+++ b/desktop/source/app/cmdlinehelp.hxx
@@ -0,0 +1,29 @@
+#ifndef _SV_DIALOG_HXX
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+
+namespace desktop
+{
+ void displayCmdlineHelp( void );
+
+ class CmdlineHelpDialog : public ModalDialog
+ {
+ public:
+ CmdlineHelpDialog ( void );
+
+ FixedText m_ftHead;
+ FixedText m_ftLeft;
+ FixedText m_ftRight;
+ FixedText m_ftBottom;
+ OKButton m_btOk;
+ };
+
+
+
+} \ No newline at end of file
diff --git a/desktop/source/app/configinit.cxx b/desktop/source/app/configinit.cxx
index 4d34075fba..0016171d0c 100644
--- a/desktop/source/app/configinit.cxx
+++ b/desktop/source/app/configinit.cxx
@@ -14,6 +14,9 @@
#ifndef _COMPHELPER_PROCESSFACTORY_HXX_
#include <comphelper/processfactory.hxx>
#endif
+#ifndef _RTL_BOOTSTRAP_HXX_
+#include <rtl/bootstrap.hxx>
+#endif
#ifndef _UTL_BOOTSTRAP_HXX
#include <unotools/bootstrap.hxx>
#endif
@@ -31,6 +34,15 @@
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
#include <com/sun/star/beans/XPropertySet.hpp>
#endif
+#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
+#include <com/sun/star/beans/NamedValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TASK_XJOB_HPP_
+#include <com/sun/star/task/XJob.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XCHANGESBATCH_HPP_
+#include <com/sun/star/util/XChangesBatch.hpp>
+#endif
#include <com/sun/star/configuration/CannotLoadConfigurationException.hpp>
#include <com/sun/star/configuration/InvalidBootstrapFileException.hpp>
#include <drafts/com/sun/star/configuration/backend/BackendSetupException.hpp>
@@ -40,11 +52,13 @@
#include <drafts/com/sun/star/configuration/backend/BackendAccessException.hpp>
#include <drafts/com/sun/star/configuration/backend/InsufficientAccessRightsException.hpp>
-
// ----------------------------------------------------------------------------
namespace uno = ::com::sun::star::uno;
namespace lang = ::com::sun::star::lang;
+namespace beans = ::com::sun::star::beans;
+namespace util = ::com::sun::star::util;
+namespace task = ::com::sun::star::task;
namespace configuration = ::com::sun::star::configuration;
namespace backend = drafts::com::sun::star::configuration::backend;
using rtl::OUString;
@@ -57,11 +71,25 @@ static char const LOCAL_BACKEND[] = "com.sun.star.configuration.backen
static char const SIMPLE_BACKEND_WRAPPER[] = "com.sun.star.configuration.backend.OnlineBackend";
static char const OFFLINE_BACKEND_WRAPPER[] = "com.sun.star.configuration.backend.OfflineBackend";
-#define CFG_PREFIX "com.sun.star.configuration.bootstrap."
+static char const READONLY_ACCESS[] = "com.sun.star.configuration.ConfigurationAccess";
+static char const UPDATE_ACCESS[] = "com.sun.star.configuration.ConfigurationUpdateAccess";
+static char const USERDATA_LOCATOR[] = "com.sun.star.configuration.backend.local.HierarchyBrowser";
+static char const USERDATA_IMPORTER[] = "com.sun.star.configuration.backend.LocalDataImporter";
+static char const USERDATA_IMPORTSERVICE[] = "com.sun.star.configuration.backend.CopyImporter";
+
+static char const CONFIGURATION_SETTINGS[] = "/org.openoffice.Setup/Configuration";
+ static char const SETTING_DOIMPORT[] = "TransferUserSettingsOnce";
+
+#define CFG_PREFIX "/modules/com.sun.star.configuration/bootstrap/"
+#define CFG_INIPREFIX "CFG_"
static char const OFFLINE_ENTRY[] = CFG_PREFIX "Offline";
static char const SERVICE_ENTRY[] = CFG_PREFIX "BackendService";
static char const WRAPPER_ENTRY[] = CFG_PREFIX "BackendWrapper";
+static char const INITUSERDATA_ENTRY[] = CFG_INIPREFIX "InitializeUserDataFromURL";
+
+#define CONTEXT_ITEM_PASSTHRU "/implementations/com.sun.star.com.configuration.bootstrap.ComponentContext/isPassthrough"
+
// ----------------------------------------------------------------------------
#define arraysize( arr ) ( sizeof (arr)/sizeof *(arr) )
@@ -77,6 +105,9 @@ typedef uno::Reference< lang::XMultiServiceFactory > ConfigurationProvider;
#define k_OFFLINEWRAPPER OUSTRING( OFFLINE_BACKEND_WRAPPER )
// ----------------------------------------------------------------------------
+static void initializeUserData( ConfigurationProvider const & xProvider );
+static uno::Reference< uno::XInterface > getConfigurationSettings( ConfigurationProvider const & xProvider, bool bUpdate );
+
// ----------------------------------------------------------------------------
// Get a message string securely. There is a fallback string if the resource
// is not available. Adapted from Desktop::GetMsgString()
@@ -91,7 +122,18 @@ OUString getMsgString( USHORT nId, char const * aFallBackMsg )
}
// ----------------------------------------------------------------------------
-/// @attention Must be called (directly or indirectly) from within a catch block
+void setMsgBoxTitle( MessBox & aMsgBox )
+{
+ ResMgr* pResMgr = Desktop::GetDesktopResManager();
+
+ OUString aMsgBoxTitle = pResMgr ? OUString( ResId( STR_TITLE_CONFIG_MSGBOX, pResMgr )) :
+ utl::Bootstrap::getProductKey();
+
+ if (aMsgBoxTitle.getLength())
+ aMsgBox.SetText(aMsgBoxTitle);
+}
+// ----------------------------------------------------------------------------
+
static
bool showFallbackMsg( OUString const & sFallbackMsg,
const rtl::OUString& aMessage)
@@ -109,12 +151,12 @@ bool showFallbackMsg( OUString const & sFallbackMsg,
else
{
WarningBox aMsgBox( NULL, WB_OK_CANCEL | WB_DEF_OK, sMsg.makeStringAndClear() );
+ setMsgBoxTitle( aMsgBox );
return (aMsgBox.Execute() == RET_OK);
}
}
// ----------------------------------------------------------------------------
-/// @attention Must be called (directly or indirectly) from within a catch block
static
void showOfflineFallbackMsg( ConfigurationProvider & rxOfflineProvider,
const rtl::OUString& aMessage)
@@ -133,7 +175,6 @@ void showOfflineFallbackMsg( ConfigurationProvider & rxOfflineProvider,
}
// ----------------------------------------------------------------------------
-/// @attention Must be called (directly or indirectly) from within a catch block
static
void showLocalFallbackMsg( ConfigurationProvider & rxLocalProvider,
const rtl::OUString& aMessage)
@@ -160,6 +201,7 @@ sal_Bool relogin()
sMsg.appendAscii("\n").append( getMsgString( STR_SSO_RELOGIN, "Please log in again.") );
ErrorBox aMsgBox( NULL, WB_RETRY_CANCEL | WB_DEF_RETRY, sMsg.makeStringAndClear() );
+ setMsgBoxTitle( aMsgBox );
if (aMsgBox.Execute() == RET_RETRY)
{
@@ -170,6 +212,40 @@ sal_Bool relogin()
}
// ----------------------------------------------------------------------------
+static
+uno::Reference< uno::XComponentContext > getProcessContext( )
+{
+ uno::Reference< uno::XComponentContext > xBaseContext;
+ try
+ {
+ uno::Reference< ::com::sun::star::beans::XPropertySet >
+ xPS( ::comphelper::getProcessServiceFactory(), UNO_QUERY );
+
+ OSL_ENSURE( xPS.is(), "Cannot get default component context for the process service-manager: no property-set");
+ if (xPS.is())
+ {
+ OSL_VERIFY( xPS->getPropertyValue( OUSTRING( "DefaultContext" ) ) >>= xBaseContext );
+ }
+ }
+ catch (uno::Exception & )
+ {
+ OSL_ENSURE( false, "Cannot get default component context for the process service-manager");
+ }
+ return xBaseContext;
+}
+// ----------------------------------------------------------------------------
+
+static
+inline
+uno::Reference< uno::XComponentContext >
+ wrapContext( cppu::ContextEntry_Init * pEntries, sal_Int32 nEntries )
+{
+ uno::Reference< uno::XComponentContext > xBaseContext = getProcessContext( );
+
+ return cppu::createComponentContext(pEntries, nEntries, xBaseContext);
+}
+// ----------------------------------------------------------------------------
+
/** Creates the normal configuration provider.
<p> If creation fails because of invalid authentication,
@@ -220,31 +296,9 @@ ConfigurationProvider createDefaultConfigurationProvider( )
throw lang::ServiceNotRegisteredException(sMsg, xServiceManager);
}
- return xProvider;
-}
-// ----------------------------------------------------------------------------
+ initializeUserData(xProvider);
-static
-uno::Reference< uno::XComponentContext >
- wrapContext( cppu::ContextEntry_Init * pEntries, sal_Int32 nEntries )
-{
- uno::Reference< uno::XComponentContext > xBaseContext;
- try
- {
- uno::Reference< ::com::sun::star::beans::XPropertySet >
- xPS( ::comphelper::getProcessServiceFactory(), UNO_QUERY );
-
- OSL_ENSURE( xPS.is(), "Cannot get default component context for the process service-manager: no property-set");
- if (xPS.is())
- {
- OSL_VERIFY( xPS->getPropertyValue( OUSTRING( "DefaultContext" ) ) >>= xBaseContext );
- }
- }
- catch (uno::Exception & )
- {
- OSL_ENSURE( false, "Cannot get default component context for the process service-manager");
- }
- return cppu::createComponentContext(pEntries, nEntries, xBaseContext);
+ return xProvider;
}
// ----------------------------------------------------------------------------
@@ -288,7 +342,8 @@ sal_Bool tryCreateOfflineConfiguration( ConfigurationProvider & rxProvider )
cppu::ContextEntry_Init aEntries[] =
{
// { false, OUSTRING( WRAPPER_ENTRY ), uno::makeAny<OUString>( k_OFFLINEWRAPPER ) },
- defineContextEntry( OUSTRING( OFFLINE_ENTRY ), uno::makeAny<sal_Bool>(sal_True) )
+ defineContextEntry( OUSTRING( OFFLINE_ENTRY ), uno::makeAny<sal_Bool>(sal_True) ),
+ defineContextEntry( OUSTRING( CONTEXT_ITEM_PASSTHRU ), uno::makeAny<sal_Bool>(sal_True) )
};
return tryCreateConfigurationWithContext( rxProvider, wrapContext(aEntries, arraysize( aEntries )) );
}
@@ -301,7 +356,8 @@ sal_Bool tryCreateLocalConfiguration( ConfigurationProvider & rxProvider )
{
defineContextEntry( OUSTRING( SERVICE_ENTRY ), uno::makeAny<OUString>( k_LOCALBE ) ),
defineContextEntry( OUSTRING( WRAPPER_ENTRY ), uno::makeAny<OUString>( k_SIMPLEWRAPPER ) ),
- defineContextEntry( OUSTRING( OFFLINE_ENTRY ), uno::Any() )
+ defineContextEntry( OUSTRING( OFFLINE_ENTRY ), uno::Any() ),
+ defineContextEntry( OUSTRING( CONTEXT_ITEM_PASSTHRU ), uno::makeAny<sal_Bool>(sal_True) )
};
return tryCreateConfigurationWithContext( rxProvider, wrapContext(aEntries, arraysize( aEntries )) );
}
@@ -421,3 +477,150 @@ uno::Reference< lang::XMultiServiceFactory > CreateApplicationConfigurationProvi
}
return xProvider ;
}
+// ----------------------------------------------------------------------------
+
+static uno::Sequence< OUString > locateUserData(uno::Reference< lang::XMultiServiceFactory > const & xLocatorFactory, OUString const & sUserDataSource )
+{
+ uno::Sequence< OUString > aResult;
+
+ uno::Reference< task::XJob > xLocator( xLocatorFactory->createInstance( OUSTRING(USERDATA_LOCATOR) ), uno::UNO_QUERY);
+
+ if (xLocator.is())
+ {
+ uno::Sequence< beans::NamedValue > aArgs(2);
+
+ aArgs[0].Name = OUSTRING("LayerDataUrl");
+ aArgs[0].Value <<= sUserDataSource;
+
+ OUString aUserProfile = OUSTRING("org.openoffice.UserProfile");
+ uno::Sequence< OUString > aSkipComponents(&aUserProfile,1);
+ aArgs[1].Name = OUSTRING("ExcludeComponents");
+ aArgs[1].Value <<= aSkipComponents;
+
+ uno::Any aFound = xLocator->execute(aArgs);
+ aFound >>= aResult;
+ }
+ else
+ OSL_TRACE("Configuration - Import of user settings into new backend failed: No Locator Service available\n");
+
+ return aResult;
+}
+// ----------------------------------------------------------------------------
+
+static void copyUserData(uno::Reference< lang::XMultiServiceFactory > const & xImporterFactory, uno::Sequence< OUString > const & sUserDataLayers )
+{
+ uno::Reference< task::XJob > xImporter( xImporterFactory->createInstance(OUSTRING(USERDATA_IMPORTER)), uno::UNO_QUERY);
+
+ if (xImporter.is())
+ {
+ uno::Sequence< beans::NamedValue > aArgs(3);
+ aArgs[0].Name = OUSTRING("LayerDataUrl");
+ aArgs[1].Name = OUSTRING("OverwriteExisting");
+ aArgs[1].Value <<= sal_False;
+ aArgs[2].Name = OUSTRING("ImporterService");
+ aArgs[2].Value <<= OUSTRING(USERDATA_IMPORTSERVICE);
+
+ for (sal_Int32 i=0; i < sUserDataLayers.getLength(); ++i)
+ {
+ aArgs[0].Value <<= sUserDataLayers[i];
+
+ xImporter->execute(aArgs);
+ }
+ // TODO: If org.openoffice.Setup was copied, refresh data in cache
+ }
+ else
+ OSL_TRACE("Configuration - Import of user settings into new backend failed: No Importer Service available\n");
+}
+// ----------------------------------------------------------------------------
+
+static void maybeCopyUserData( ConfigurationProvider const & xProvider )
+{
+ OUString aUserDataSourceURL;
+
+ // TODO: use "Context" property of xProvider to retrieve the information
+ {
+ static char const CONFIGRC[] = "$SYSBINDIR/" SAL_CONFIGFILE("configmgr");
+ OUString sConfigIni = OUSTRING( CONFIGRC );
+ rtl::Bootstrap::expandMacros(sConfigIni);
+
+ rtl::Bootstrap aConfigInfo(sConfigIni);
+
+ if (!aConfigInfo.getFrom( OUSTRING(INITUSERDATA_ENTRY), aUserDataSourceURL ) )
+ return;
+ }
+
+ if (aUserDataSourceURL.getLength() == 0)
+ return;
+
+ uno::Reference< lang::XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory();
+
+ uno::Sequence< OUString > aDataUrls = locateUserData( xMSF, aUserDataSourceURL);
+ if (aDataUrls.getLength() == 0)
+ return;
+
+ QueryBox aAskUser( NULL, ResId( QBX_CONFIG_IMPORTSETTINGS, Desktop::GetDesktopResManager() ) );
+ setMsgBoxTitle(aAskUser);
+
+ if (aAskUser.Execute() == RET_YES)
+ copyUserData(xMSF, aDataUrls);
+}
+// ----------------------------------------------------------------------------
+
+static void initializeUserData( ConfigurationProvider const & xProvider )
+{
+ OSL_ASSERT( xProvider.is() );
+
+ try
+ {
+ uno::Reference< beans::XPropertySet > xSettings( getConfigurationSettings(xProvider,true), uno::UNO_QUERY );
+ if (xSettings.is())
+ {
+ OUString const aSetting = OUSTRING(SETTING_DOIMPORT);
+
+ sal_Bool bDoImport = false;
+ xSettings->getPropertyValue( aSetting ) >>= bDoImport;
+
+ if ( bDoImport )
+ {
+ maybeCopyUserData( xProvider );
+ xSettings->setPropertyValue( aSetting, uno::makeAny(sal_False) );
+
+ uno::Reference< util::XChangesBatch > xCommitSettings(xSettings, uno::UNO_QUERY);
+ OSL_ENSURE(xCommitSettings.is(), "Missing interface to commit configuration change\n");
+ if (xCommitSettings.is()) xCommitSettings->commitChanges();
+ }
+ }
+ }
+ catch (uno::Exception & e)
+ {
+ OSL_TRACE( "Configuration - Import of user settings into new backend failed: %s\n",
+ OU2O(e.Message,ASCII_US).getStr() );
+ }
+
+}
+// ----------------------------------------------------------------------------
+
+static uno::Reference< uno::XInterface > getConfigurationSettings( ConfigurationProvider const & xProvider, bool bUpdate )
+{
+ if ( xProvider.is() )
+ try
+ {
+ OUString sService = bUpdate ? OUSTRING(UPDATE_ACCESS) : OUSTRING(READONLY_ACCESS);
+
+ OUString const sNodepath = OUSTRING(CONFIGURATION_SETTINGS);
+
+ uno::Sequence< uno::Any > aArguments(1);
+ aArguments[0] <<= beans::NamedValue( OUSTRING("nodepath"), uno::makeAny(sNodepath) );
+
+ return xProvider->createInstanceWithArguments(sService,aArguments);
+ }
+ catch (uno::Exception & e)
+ {
+ OSL_TRACE( "Configuration - Cannot get settings for configuration service: %s\n",
+ OU2O(e.Message,ASCII_US).getStr() );
+
+ }
+ return uno::Reference< uno::XInterface >();
+}
+// ----------------------------------------------------------------------------
+
diff --git a/desktop/source/app/copyright_ascii_ooo.c b/desktop/source/app/copyright_ascii_ooo.c
new file mode 100644
index 0000000000..35d2383ce4
--- /dev/null
+++ b/desktop/source/app/copyright_ascii_ooo.c
@@ -0,0 +1,13 @@
+
+ /*
+ * copyright text to see as text in the soffice binary
+ *
+ */
+
+
+
+extern const char copyright_text_1[] = "Copyright © 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, U.S.A. All rights reserved.";
+extern const char copyright_text_2[] = "Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries.";
+extern const char copyright_text_21[] = "Copyright © 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, États-Unis. Tous droits réservés.";
+extern const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de propriété intellectuels relatants à la technologie incorporée dans ce produit. En particulier, et sans la limitation, ces droits de propriété intellectuels peuvent inclure un ou plus des brevets américains énumérés à http://www.sun.com/patents et un ou les brevets plus supplémentaires ou les applications de brevet en attente dans les États - Unis et les autres pays.";
+
diff --git a/desktop/source/app/copyright_ascii_sun.c b/desktop/source/app/copyright_ascii_sun.c
new file mode 100644
index 0000000000..b8927e5957
--- /dev/null
+++ b/desktop/source/app/copyright_ascii_sun.c
@@ -0,0 +1,50 @@
+
+ /*
+ * copyright text to see as text in the soffice binary
+ *
+ */
+
+
+
+extern const char copyright_text_1[] = "Copyright © 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, U.S.A. All rights reserved.";
+extern const char copyright_text_2[] = "Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries.";
+extern const char copyright_text_3[] = "This document and the product to which it pertains are distributed under licenses restricting their use, copying, distribution, and decompilation. No part of the product or of this document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any.";
+extern const char copyright_text_4[] = "Third-party software, including font technology, is copyrighted and licensed from Sun suppliers.";
+extern const char copyright_text_5[] = "This product is based in part on the work of the Independent JPEG Group, The FreeType Project and the Catharon Typography Project.";
+extern const char copyright_text_6[] = "Portions Copyright 2000 SuSE, Inc. Word for Word Copyright © 1996 Inso Corp. International CorrectSpell spelling correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved.";
+extern const char copyright_text_7[] = "Source code for portions of this product are available under the Mozilla Public License at the following sites: http://www.mozilla.org/, http://www.jclark.com/, and http://www.gingerall.com.";
+extern const char copyright_text_8[] = "Sun, Sun Microsystems, the Sun logo, Java, Solaris, StarOffice, the Butterfly logo, the Solaris logo, and the StarOffice logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.";
+extern const char copyright_text_9[] = "UNIX is a registered trademark in the U.S. and in other countries, exclusively licensed through X/Open Company, Ltd. Screen Beans and Screen Beans clipart characters are registered trademarks of A Bit Better Corporation. International CorrectSpell is a trademark of Lernout & Hauspie Speech Products N.V.";
+extern const char copyright_text_10[] = "International CorrectSpell Swedish, Russian, Norwegian, English, Dutch, and Danish correction systems Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_11[] = "International CorrectSpell Spanish and French correction systems Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from word list supplied by Librairie Larousse. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_12[] = "International CorrectSpell Australian English correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Based upon The Macquarie Dictionary, Second Revised Edition Copyright © Macquarie University NSW. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_13[] = "International CorrectSpell Catalan correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from Catalan word list Copyright © 1992 Universitat de Barcelona. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_14[] = "International CorrectSpell Czech correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from word list supplied by Jan Hajic. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_15[] = "International CorrectSpell Finnish correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from word list supplied by University of Helsinki Institute for Finnish Language and Dr. Kolbjorn Heggstad. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_16[] = "International CorrectSpell German correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from word list supplied by Langenscheidt K.G. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_17[] = "International CorrectSpell Italian correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Adapted from word list supplied by Zanichelli S.p.A. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_18[] = "International CorrectSpell Portuguese correction system Copyright © 1995 by Lernout & Hauspie Speech Products N.V. All rights reserved. Portions adapted from the Dicionario Academico da Lingua Portuguesa Copyright © 1992 by Porto Editora. Reproduction or disassembly of embodied algorithms or database prohibited.";
+extern const char copyright_text_19[] = "Federal Acquisitions: Commercial Software - Government Users Subject to Standard License Terms and Conditions.";
+extern const char copyright_text_20[] = "DOCUMENTATION IS PROVIDED \"AS IS\" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.";
+extern const char copyright_text_21[] = "Copyright © 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, États-Unis. Tous droits réservés.";
+extern const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de propriété intellectuels relatants à la technologie incorporée dans ce produit. En particulier, et sans la limitation, ces droits de propriété intellectuels peuvent inclure un ou plus des brevets américains énumérés à http://www.sun.com/patents et un ou les brevets plus supplémentaires ou les applications de brevet en attente dans les États - Unis et les autres pays.";
+extern const char copyright_text_23[] = "Ce produit ou document est protégé par un copyright et distribué avec des licences qui en restreignent l'utilisation, la copie, la distribution, et la décompilation. Aucune partie de ce produit ou document ne peut être reproduite sous aucune forme, par quelque moyen que ce soit, sans l'autorisation préalable et écrite de Sun et de ses bailleurs de licence, s'il y ena.";
+extern const char copyright_text_24[] = "Le logiciel détenu par des tiers, et qui comprend la technologie relative aux polices de caractères, est protégé par un copyright et licencié par des fournisseurs de Sun.";
+extern const char copyright_text_25[] = "Ce produit repose en partie sur le travail de l'Independent JPEG Group, de The FreeType Project et de Catharon Typography Project.";
+extern const char copyright_text_26[] = "Portions Copyright 2000 SuSE, Inc. Word for Word Copyright © 1996 Inso Corp. Système de correction orthographique International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés.";
+extern const char copyright_text_27[] = "Le code source de certaines parties de ce produit est disponible sous licence publique Mozilla sur les sites suivants : http://www.mozilla.org/, http://www.jclark.com/ et http://www.gingerall.com.";
+extern const char copyright_text_28[] = "Sun, Sun Microsystems, le logo Sun, Java, Solaris, StarOffice, le logo Butterfly, le logo Solaris et le logo StarOffice sont des marques de fabrique ou des marques déposées de Sun Microsystems, Inc. aux États-Unis et dans d'autres pays.";
+extern const char copyright_text_29[] = "UNIX est une marque déposée aux États-Unis et dans d'autres pays et licenciée exclusivement par X/Open Company, Ltd.";
+extern const char copyright_text_30[] = "Les Screen Beans et les objets graphiques prédessinés Screen Beans sont des marques déposées de A Bit Better Corporation. International CorrectSpell est une marque déposée de Lernout & Hauspie Speech Products N.V.";
+extern const char copyright_text_31[] = "Systèmes de correction orthographique suédois, russe, norvégien, anglais, néerlandais et danois International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_32[] = "Systèmes de correction orthographique espagnol et français International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots fournie par la Librairie Larousse. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_33[] = "Système de correction orthographique anglais australien International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. élaboré à partir de The Macquarie Dictionary, deuxième édition mise à jour. Copyright © Macquarie University NSW. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_34[] = "Système de correction orthographique catalan International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots catalans Copyright © 1992 Universitat de Barcelona. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_35[] = "Système de correction orthographique tchèque International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots fournie par Jan Hajic. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_36[] = "Système de correction orthographique finlandais International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots fournie par le University of Helsinki Institute pour la langue finlandaise et par le Dr Kolbjorn Heggstad. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_37[] = "Système de correction orthographique allemand International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots fournie par Langenscheidt K.G. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_38[] = "Système de correction orthographique italien International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Adapté à partir de la liste de mots fournie par Zanichelli S.p.A. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_39[] = "Système de correction orthographique portugais International CorrectSpell Copyright © 1995 de Lernout & Hauspie Speech Products N.V. Tous droits réservés. Certaines parties ont été adaptées à partir du Dicionario Academico da Lingua Portuguesa Copyright © 1992 de Porto Editora. Il est interdit de reproduire ou de désassembler les algorithmes ou les bases de données incorporés.";
+extern const char copyright_text_40[] = "Acquisitions fédérales : logiciel commercial ; les utilisateurs gouvernementaux sont soumis aux conditions générales standard de la licence.";
+extern const char copyright_text_41[] = "LA DOCUMENTATION est fournie « TELLE QUELLE » et TOUTES LES CONDITIONS, REPRÉSENTATIONS ET GARANTIES EXPRESSES OU TACITES, Y COMPRIS TOUTE GARANTIE TACITE CONCERNANT LA QUALITÉ MARCHANDE, L'APTITUDE À UN USAGE PARTICULIER OU LA NON-VIOLATION DE DROITS DE TIERS SERONT REJETÉES, EXCEPTÉ DANS LE CAS OÙ L'EXCLUSION OU LA LIMITATION DE TELLES GARANTIES NE SERAIT PAS AUTORISÉE PAR LA LÉGISLATION EN VIGUEUR.";
+
diff --git a/desktop/source/app/desktop.hrc b/desktop/source/app/desktop.hrc
index 3e8c6e98fe..ac7b498149 100644
--- a/desktop/source/app/desktop.hrc
+++ b/desktop/source/app/desktop.hrc
@@ -2,9 +2,9 @@
*
* $RCSfile: desktop.hrc,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: obo $ $Date: 2002-11-22 13:17:10 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -77,6 +77,8 @@
#define WARNINGBOX_JAVALDXNOTSTARTED (RID_DESKTOP_DIALOG_START+5)
#define INFOBOX_PLEASERESTARTOFFICE (RID_DESKTOP_DIALOG_START+50)
+#define INFOBOX_CMDLINEHELP (RID_DESKTOP_DIALOG_START+51)
+#define INFOBOX_EXPIRED (RID_DESKTOP_DIALOG_START+52)
#define QBX_USERDATALOCKED (RID_DESKTOP_DIALOG_START+100)
@@ -87,6 +89,8 @@
#define TXT_DLG_CMDLINEHELP_BOTTOM (RID_DESKTOP_DIALOG_START+105)
#define BTN_DLG_CMDLINEHELP_OK (RID_DESKTOP_DIALOG_START+106)
+#define QBX_CONFIG_IMPORTSETTINGS (RID_DESKTOP_DIALOG_START+180)
+
#define STR_RECOVER_QUERY (RID_DESKTOP_STRING_START+0)
#define STR_RECOVER_TITLE (RID_DESKTOP_STRING_START+1)
#define STR_RECOVER_PREPARED (RID_DESKTOP_STRING_START+2)
@@ -102,16 +106,20 @@
#define STR_BOOTSTRAP_ERR_NO_SERVICE (RID_DESKTOP_STRING_START+120)
#define STR_BOOTSTRAP_ERR_NO_CFG_SERVICE (RID_DESKTOP_STRING_START+121)
+#define STR_BOOTSTRAP_ERR_CFG_DATAACCESS (RID_DESKTOP_STRING_START+122)
#define STR_ASK_START_SETUP_REPAIR (RID_DESKTOP_STRING_START+150)
#define STR_ASK_START_SETUP (RID_DESKTOP_STRING_START+151)
#define STR_ASK_START_SETUP_MANUALLY (RID_DESKTOP_STRING_START+152)
#define STR_SETUP_ERR_CANNOT_START (RID_DESKTOP_STRING_START+160)
+#define STR_INTERNAL_ERRMSG (RID_DESKTOP_STRING_START+161)
#define STR_SSO_REQUEST (RID_DESKTOP_STRING_START+170)
#define STR_SSO_RELOGIN (RID_DESKTOP_STRING_START+171)
+#define STR_TITLE_CONFIG_MSGBOX (RID_DESKTOP_STRING_START+175)
+
#define STR_CONFIG_WARN_LOCAL_FALLBACK (RID_DESKTOP_STRING_START+180)
#define STR_CONFIG_WARN_OFFLINE (RID_DESKTOP_STRING_START+181)
#define STR_CONFIG_ERR_SETTINGS_INCOMPLETE (RID_DESKTOP_STRING_START+182)
@@ -129,5 +137,6 @@
#define STR_WARNING_CANNOTSTARTJVMSETUP (RID_DESKTOP_STRING_START+204)
#define STR_WARNING_CANNOTSTARTJAVALDX (RID_DESKTOP_STRING_START+205)
#define STR_TITLE_USERDATALOCKED (RID_DESKTOP_STRING_START+206)
+#define STR_TITLE_EXPIRED (RID_DESKTOP_STRING_START+207)
#endif // _DESKTOP_HRC_
diff --git a/desktop/source/app/desktop.src b/desktop/source/app/desktop.src
index 7e466a4d28..0f3b3d6d97 100644
--- a/desktop/source/app/desktop.src
+++ b/desktop/source/app/desktop.src
@@ -2,9 +2,9 @@
*
* $RCSfile: desktop.src,v $
*
- * $Revision: 1.42 $
+ * $Revision: 1.43 $
*
- * last change: $Author: obo $ $Date: 2002-11-22 13:17:11 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -73,7 +73,7 @@ WarningBox WARNINGBOX_JAVANOTCONFIGURED
Message[ greek ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
Message[ dutch ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
Message[ french ] = "%PRODUCTNAME %PRODUCTVERSION a détecté une configuration java.ini défectueuse. %PRODUCTNAME requiert le fichier java.ini. Cliquez sur 'OK' pour lancer le Setup de Java et installer un JRE ou choisir parmi les JREs déjà installés.\nSi vous ne souhaitez pas installer de JRE, cliquez sur 'Annuler', ce qui annulera également l'opération en cours.";
- Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION ha detectado una configuración de java.ini defectuosa. %PRODUCTNAME requiere el archivo java.ini. Pulse en 'Aceptar' para iniciar el programa de instalación de Java e instalar un entorno de ejecución Java JRE (Java Runtime Environment) o para seleccionar uno ya instalado.\nSi no desea instalar un entorno de ejecución Java pulse en 'Cancelar'. Esta acción también cancelará la operación actual. ";
+ Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION ha detectado una configuración de java.ini defectuosa. %PRODUCTNAME requiere el archivo java.ini. Pulse en 'Aceptar' para iniciar el programa de instalación de Java e instalar un entorno de ejecución de Java JRE (Java Runtime Environment) o para seleccionar uno ya instalado.\nSi no desea instalar un entorno de ejecución Java pulse en 'Cancelar'. Esta acción también cancelará la operación actual. ";
Message[ finnish ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
Message[ italian ] = "%PRODUCTNAME %PRODUCTVERSION ha rilevato una configurazione difettosa di java.ini, che è un file necessario al funzionamento di %PRODUCTNAME. Fate click su 'OK' per avviare il setup di Java e installare un JRE (Java Runtime Environment) oppure per sceglierne uno già installato.\nSe preferite non installare JRE fate click su 'Annulla'. Quest'azione eliminerà la presente operazione.";
Message[ danish ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
@@ -81,7 +81,7 @@ WarningBox WARNINGBOX_JAVANOTCONFIGURED
Message[ polish ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
Message[ portuguese_brazilian ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
Message[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION ãŒæ¤œå‡ºã—㟠java.ini ã®è¨­å®šã¯æ­£ã—ãã‚ã‚Šã¾ã›ã‚“。%PRODUCTNAME ã«ã¯ã€java.ini ãŒå¿…è¦ã§ã™ã€‚OK ボタンを押ã™ã¨ã€Java セットアップãŒé–‹å§‹ã—ã¾ã™ã€‚Java セットアップã§ã¯ã€JRE をインストールã™ã‚‹ã‹ã€ã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã‚‹ JRE ã®ä¸­ã‹ã‚‰ï¼‘ã¤é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\nJRE ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ãªã‘ã‚Œã°ã€[キャンセル]ボタンを押ã—ã¾ã™ã€‚ã“ã®å ´åˆã€ç¾åœ¨ã®æ“作も終了ã—ã¾ã™ã€‚";
- Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSION ì´ ìƒ‰ì¶œí•œ java.iniì˜ ì„¤ì •ì€ ì˜¬ë°”ë¥´ì§€ 않습니다. %PRODUCTNAME ì—는 java.ini ê°€ 필요합니다. Java ì„¤ì •ì„ ì‹œìž‘í•˜ë ¤ë©´ OK ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. Java 설정으로는 JRE 를 설치하거나 ê¸°ì¡´ì˜ ì„¤ì¹˜ëœ JRE 중 하나를 ì„ íƒí•  수 있습니다.\nJRE 설치를 ì›í•˜ì§€ ì•Šì„ ê²½ìš° 취소 ë²„íŠ¼ì„ í´ë¦­í•˜ì‹­ì‹œì˜¤. ";
+ Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSIONì—ì„œ ìž˜ëª»ëœ java.iniì„¤ì •ì´ ë°œê²¬ë˜ì—ˆìŠµë‹ˆë‹¤. %PRODUCTNAME ì—는 java.ini ì„¤ì •ì´ í•„ìš”í•©ë‹ˆë‹¤. Java ì„¤ì •ì„ ì‹œìž‘í•˜ë ¤ë©´ [OK] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. Java 설치ì—ì„œ JRE를 설치하거나 기존 ì„¤ì¹˜ëœ JRE 중 하나를 ì„ íƒí•  수 있습니다.\nJRE를 설치하고 싶지 않으면 [취소] ë²„íŠ¼ì„ í´ë¦­í•˜ì‹­ì‹œì˜¤. ";
Message[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION å‘现了一个错误的 java.ini é…置文档。%PRODUCTNAME 需è¦æœ‰æ•ˆçš„ java.ini 。按一下“确定â€ï¼Œå¯åŠ¨ Java 安装程å¼æ¥å®‰è£… Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒæˆ–选择一个已ç»å®‰è£…çš„ Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚\n如果您ä¸æƒ³å®‰è£… Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒï¼Œå°±ç‚¹å‡»â€œå–消â€ã€‚";
Message[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION 發ç¾ä¸€å€‹éŒ¯èª¤çš„ java.ini é…置文件。%PRODUCTNAME 需è¦æœ‰æ•ˆçš„ java.ini 。按一下「確定ã€ï¼Œå•“å‹• Java 安è£ç¨‹å¼ä¾†å®‰è£ Java é‹è¡Œæ™‚間環境或é¸æ“‡ä¸€å€‹å·²ç¶“安è£çš„ Java é‹è¡Œæ™‚間環境。\n如果您ä¸æƒ³å®‰è£ Java é‹è¡Œæ™‚間環境,就按一下「å–消ã€ã€‚如此,就會å–消目å‰çš„動作。";
Message[ turkish ] = "%PRODUCTNAME %PRODUCTVERSION has detected a faulty java.ini configuration. %PRODUCTNAME requires the java.ini. Click 'OK' to start the Java Setup and install a JRE or choose between already installed JREs.\nIf you do not want to install a JRE, click 'Cancel'. This will also cancel the current operation.";
@@ -102,7 +102,7 @@ WarningBox WARNINGBOX_JAVADISABLED
Message[ greek ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ dutch ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ french ] = "L'opération en cours requiert Java, mais le support Java a été désactivé. Cliquez sur 'OK' pour activer le support Java. Pour interrompre l'opération en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operación requiere Java, sin embargo el apoyo de Java está desactivado. Para volver a activarlo pulse en 'Aceptar'. Para finalizar la operación actual pulse en 'Cancelar'. ";
+ Message[ spanish ] = "Esta operación requiere Java, sin embargo la admisión de Java está desactivada. Para volver a activarla pulse en 'Aceptar'. Para finalizar la operación actual pulse en 'Cancelar'. ";
Message[ finnish ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ italian ] = "Questa operazione richiede Java ma il supporto corrispondente è stato disattivato. Per riattivare il supporto Java fate click su 'OK'. Per terminare l'operazione cliccate 'Annulla'.";
Message[ danish ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -110,7 +110,7 @@ WarningBox WARNINGBOX_JAVADISABLED
Message[ polish ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ portuguese_brazilian ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ japanese ] = "ã“ã®æ“作ã«ã¯ Java ãŒå¿…è¦ã§ã™ãŒã€Java 支æ´ãŒã‚ªãƒ•ã«ãªã£ã¦ã„ã¾ã™ã€‚Java 支æ´ã‚’オンã«ã™ã‚‹ã«ã¯ã€OK ボタンを押ã—ã¾ã™ã€‚[キャンセル]を押ã™ã¨ã€ç¾åœ¨ã®æ“作ãŒçµ‚了ã—ã¾ã™ã€‚";
- Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Java ê°€ í•„ìš”í•œë° Java 지ì›ì´ 비활성화ë˜ì–´ìžˆìŠµë‹ˆë‹¤. Java 지ì›ì„ 활성화하려면 OK ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 종료하려면 취소 ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤.";
+ Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Javaê°€ í•„ìš”í•œë° Java 지ì›ì´ 비활성화ë˜ì–´ 있습니다. Java 지ì›ì„ 활성화하려면 [OK] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 중단하려면 [취소] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤.";
Message[ chinese_simplified ] = "这个æ“ä½œéœ€è¦ Java ,但是 Java 的支æŒæ²¡æœ‰å¯åŠ¨ã€‚è¦ä½¿ç”¨ Java ,点击“确定â€ã€‚如果è¦ç»ˆæ­¢å½“å‰çš„æ“作,就点击“å–消â€ã€‚";
Message[ chinese_traditional ] = "é€™å€‹å‹•ä½œéœ€è¦ Java ,但是 Java 支æ´æ²’有啓動。è¦ä½¿ç”¨ Java 支æ´ï¼ŒæŒ‰ä¸€ä¸‹ã€Œç¢ºå®šã€ã€‚è¦çµ‚止目å‰çš„動作,就按一下「å–消ã€ã€‚";
Message[ turkish ] = "This operation requires Java, but Java support has been disabled. To enable Java support, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -130,8 +130,8 @@ WarningBox WARNINGBOX_MISSINGJAVARUNTIME
Message[ russian ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ greek ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ dutch ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
- Message[ french ] = "L'opération en cours requiert un Environnement Runtime Java (JRE). %PRODUCTNAME %PRODUCTVERSION a été configuré pour utiliser le JRE placé dans le dossier %s. Il est cependant impossible de détecter ce JRE.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opération en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operación requiere un entorno de ejecución Java (JRE). %PRODUCTNAME %PRODUCTVERSION se configuró para utilizar el entorno de ejecución Java (JRE) ubicado en la carpeta %s. Este JRE no se ha encontrado. Para iniciar el programa de instalación de Java pulse en 'Aceptar'. Para finalizar la operación actual pulse en 'Cancelar'.";
+ Message[ french ] = "L'opération en cours requiert un environnement d'exécution Java (JRE). %PRODUCTNAME %PRODUCTVERSION a été configuré pour utiliser le JRE placé dans le dossier %s. Il est cependant impossible de détecter ce JRE.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opération en cours, cliquez sur 'Annuler'.";
+ Message[ spanish ] = "Esta operación requiere un entorno de ejecución de Java (JRE). %PRODUCTNAME %PRODUCTVERSION se configuró para utilizar el entorno de ejecución Java (JRE) ubicado en la carpeta %s. Este JRE no se ha encontrado. Para iniciar el programa de instalación de Java pulse en 'Aceptar'. Para finalizar la operación actual pulse en 'Cancelar'.";
Message[ finnish ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ italian ] = "Questa operazione richiede JRE (Java Runtime Environment). La configurazione di %PRODUCTNAME %PRODUCTVERSION utilizza JRE nella cartella %s. JRE non è stato trovato.\nCliccate 'OK' per avviare l'installazione di Java. Per terminare l'operazione fate click su 'Annulla'.";
Message[ danish ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -139,7 +139,7 @@ WarningBox WARNINGBOX_MISSINGJAVARUNTIME
Message[ polish ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ portuguese_brazilian ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ japanese ] = "ã“ã®æ“作ã«ã¯ã€Java Runtime Environment (JRE)ãŒå¿…è¦ã§ã™ã€‚%PRODUCTNAME %PRODUCTVERSION ã¯ã€%s ã«ã‚ã‚‹ JRE を使用ã™ã‚‹ã‚ˆã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚ã“ã® JRE ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚\nOK ボタンを押ã™ã¨ã€Java セットアップãŒé–‹å§‹ã—ã¾ã™ã€‚[キャンセル]ボタンを押ã™ã¨ã€ç¾åœ¨ã®æ“作ã¯çµ‚了ã—ã¾ã™ã€‚";
- Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Java Runtime Environment (JRE)ê°€ 필요합니다. %PRODUCTNAME %PRODUCTVERSION ì€ %s ì— ìžˆëŠ” JRE 를 사용할 수 있ë„ë¡ ì„¤ì •ë˜ì–´ 있습니다. ì´ JRE 를 ì°¾ì„ ìˆ˜ 없습니다. Java 설치를 시작하기 위해 OK ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 종료하려면 취소 ë²„íŠ¼ì„ í´ë¦­í•˜ì‹­ì‹œì˜¤.";
+ Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Java Runtime Environment (JRE)ê°€ 필요합니다. %PRODUCTNAME %PRODUCTVERSIONì€(는) %s ì— ìžˆëŠ” JRE를 사용할 수 있ë„ë¡ ì„¤ì •ë˜ì–´ 있습니다. ì´ JRE를 ì°¾ì„ ìˆ˜ 없습니다. Java 설치를 시작하기 위해 [OK] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 중단하려면 [취소] ë²„íŠ¼ì„ í´ë¦­í•˜ì‹­ì‹œì˜¤.";
Message[ chinese_simplified ] = "这个æ“ä½œéœ€è¦ Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚%PRODUCTNAME %PRODUCTVERSION 的设定是用于安装在 %s çš„ Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚但是没有找到这个指定的 Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚è¦å®‰è£… Java ,就点击“确定â€ã€‚è¦ç»ˆæ­¢å½“å‰çš„æ“作,则点击“å–消â€ã€‚";
Message[ chinese_traditional ] = "é€™å€‹å‹•ä½œéœ€è¦ Java é‹è¡Œç’°å¢ƒ(JRE)。%PRODUCTNAME %PRODUCTVERSION的設定是使用ä½äºŽ %s çš„ JRE 。但是沒有找到這個 JRE 。è¦å®‰è£ Java ,就按一下「確定ã€ã€‚è¦çµ‚止目å‰çš„動作,就按一下「å–消ã€ã€‚";
Message[ turkish ] = "This operation requires a Java Runtime Environment (JRE). %PRODUCTNAME %PRODUCTVERSION was configured to use the JRE located at %s. This JRE was not found. To start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -159,8 +159,8 @@ WarningBox WARNINGBOX_JVMCREATIONFAILED
Message[ russian ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ greek ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ dutch ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
- Message[ french ] = "L'opération en cours requiert un Environnement Runtime Java (JRE). Le JRE détecté par %PRODUCTNAME %PRODUCTVERSION est cependant défectueux.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opération en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operación requiere un entorno de ejecución Java (Java Runtime Environment -JRE). Sin embargo el JRE que %PRODUCTNAME %PRODUCTVERSION ha detectado es defectuoso.\nPara iniciar el programa de instalación de Java pulse en 'Aceptar'. Para cancelar la operación pulse en 'Cancelar'.";
+ Message[ french ] = "L'opération en cours requiert un environnement d'exécution Java (JRE). Le JRE détecté par %PRODUCTNAME %PRODUCTVERSION est cependant défectueux.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opération en cours, cliquez sur 'Annuler'.";
+ Message[ spanish ] = "Esta operación requiere un entorno de ejecución de Java (Java Runtime Environment -JRE). Sin embargo el JRE que %PRODUCTNAME %PRODUCTVERSION ha detectado es defectuoso.\nPara iniciar el programa de instalación de Java pulse en 'Aceptar'. Para cancelar la operación pulse en 'Cancelar'.";
Message[ finnish ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ italian ] = "Questa operazione richiede JRE (Java Runtime Environment). %PRODUCTNAME %PRODUCTVERSION ne ha rilevato una configurazione difettosa.\nFate click su 'OK' per avviare il setup di Java. Per terminare l'operazione cliccate 'Annulla'.";
Message[ danish ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -168,7 +168,7 @@ WarningBox WARNINGBOX_JVMCREATIONFAILED
Message[ polish ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ portuguese_brazilian ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
Message[ japanese ] = "ç¾åœ¨ã®æ“作ã«ã¯ã€Java Runtime Environment (JRE)ãŒå¿…è¦ã§ã™ãŒã€%PRODUCTNAME %PRODUCTVERSION ãŒæ¤œå‡ºã—㟠JRE ã¯æ­£ã—ãã‚ã‚Šã¾ã›ã‚“。\nOK ボタンを押ã™ã¨ã€Java セットアップãŒé–‹å§‹ã—ã¾ã™ã€‚[キャンセル]を押ã™ã¨ã€ç¾åœ¨ã®æ“作ã¯çµ‚了ã—ã¾ã™ã€‚";
- Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Java Runtime Environment (JRE)ê°€ í•„ìš”í•œë° %PRODUCTNAME %PRODUCTVERSION ì´ JRE ì— ì˜¤ë¥˜ê°€ 있ìŒì„ 발견했습니다.\n Java 설치를 시작하기 위해 OK ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 종료하려면 취소 ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤.";
+ Message[ korean ] = "ì´ ìž‘ë™ì„ 위해서는 Java Runtime Environment (JRE)ê°€ í•„ìš”í•œë° %PRODUCTNAME %PRODUCTVERSION ì´ JREì—ì„œ 오류를 발견했습니다.\n Java 설치를 시작하기 위해 [OK] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤. 현재 ìž‘ë™ì„ 중단하려면 [취소] ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì‹­ì‹œì˜¤.";
Message[ chinese_simplified ] = "这个æ“ä½œéœ€è¦ Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚%PRODUCTNAME %PRODUCTVERSION 找到了一个æŸåçš„ Java è¿è¡Œæ—¶é—´çŽ¯å¢ƒã€‚如果您è¦å¯åŠ¨ Java 安装程åºï¼Œå°±ç‚¹å‡»â€œç¡®å®šâ€ã€‚如果è¦ç»ˆæ­¢å½“å‰çš„æ“作,则点击“å–消â€ã€‚";
Message[ chinese_traditional ] = "é€™å€‹å‹•ä½œéœ€è¦ Java é‹è¡Œæ™‚間環境。%PRODUCTNAME %PRODUCTVERSION 找到了一個æ壞的 Java é‹è¡Œæ™‚間環境。如果您è¦å•Ÿå‹• Java 安è£ç¨‹å¼ï¼Œå°±æŒ‰ä¸€ä¸‹ã€Œç¢ºå®šã€ã€‚è‹¥è¦çµ‚止目å‰çš„動作,則按一下「å–消ã€ã€‚";
Message[ turkish ] = "The current operation requires a Java Runtime Environment (JRE), but the JRE that %PRODUCTNAME %PRODUCTVERSION has detected is defective.\nTo start the Java Setup, click 'OK'. To abort the current operation, click 'Cancel'.";
@@ -197,7 +197,7 @@ WarningBox WARNINGBOX_JVMSETUPNOTSTARTED
Message[ polish ] = "%PRODUCTNAME %PRODUCTVERSION could not start the Java Setup. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ portuguese_brazilian ] = "%PRODUCTNAME %PRODUCTVERSION could not start the Java Setup. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION 㯠Java セットアップを開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚%PRODUCTNAME を終了ã—ã¦ã€%PRODUCTNAME %PRODUCTVERSION セットアップを開始ã—ã¦ãã ã•ã„。[修復]ã‚’é¸æŠžã—ã¾ã™ã€‚";
- Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSION ì€ Java 설치를 시작할 수 없습니다. %PRODUCTNAME 를 종료하고 %PRODUCTNAME %PRODUCTVERSION ì˜ ì„¤ì¹˜ í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì‹­ì‹œì˜¤. '복구'를 ì„ íƒí•˜ì‹­ì‹œì˜¤.";
+ Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSION ì€(는) Java 설치를 시작할 수 없습니다. %PRODUCTNAMEì„(를) 종료하고 %PRODUCTNAME %PRODUCTVERSION ì˜ ì„¤ì¹˜ í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì‹­ì‹œì˜¤. [복구]를 ì„ íƒí•˜ì‹­ì‹œì˜¤.";
Message[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION 无法å¯åŠ¨ Java 安装程åºã€‚请关闭 %PRODUCTNAME 之åŽå¯åŠ¨ %PRODUCTNAME %PRODUCTVERSION 安装程åºï¼Œé€‰æ‹©ä¿®å¤çš„安装选项。";
Message[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION 無法啓動 Java 安è£ç¨‹å¼ã€‚請關閉 %PRODUCTNAME ,然後啓動 %PRODUCTNAME %PRODUCTVERSION 安è£ç¨‹å¼ï¼Œé¸æ“‡ä¿®å¾©çš„é¸é …。";
Message[ turkish ] = "%PRODUCTNAME %PRODUCTVERSION could not start the Java Setup. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
@@ -218,7 +218,7 @@ WarningBox WARNINGBOX_JAVALDXNOTSTARTED
Message[ greek ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ dutch ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ french ] = "%PRODUCTNAME %PRODUCTVERSION n'a pas pu lancer Java LDX. Quittez %PRODUCTNAME et démarrez le Setup de %PRODUCTNAME %PRODUCTVERSION. Choisissez 'Réparation'.";
- Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION no pudo iniciar Java LDX. Cierre %PRODUCTNAME e inicie el programa de instalación de %PRODUCTNAME %PRODUCTVERSION. Seleccione 'Repair'.";
+ Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION no pudo iniciar Java LDX. Cierre %PRODUCTNAME e inicie el programa de instalación de %PRODUCTNAME %PRODUCTVERSION. Seleccione 'Reparar'.";
Message[ finnish ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ italian ] = "%PRODUCTNAME %PRODUCTVERSION non è riuscito ad avviare Java LDX. Uscite da %PRODUCTNAME e avviate il programma di installazione di %PRODUCTNAME %PRODUCTVERSION. Scegliete l'opzione 'Riparazione'.";
Message[ danish ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
@@ -226,7 +226,7 @@ WarningBox WARNINGBOX_JAVALDXNOTSTARTED
Message[ polish ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ portuguese_brazilian ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
Message[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION 㯠Java LDX を開始ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚%PRODUCTNAME を終了ã—㦠%PRODUCTNAME %PRODUCTVERSION セットアップを開始ã—ã¦ãã ã•ã„。[修復]ã‚’é¸æŠžã—ã¾ã™ã€‚";
- Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSION 는 Java LDX 를 시작하지 못했습니다. %PRODUCTNAME 를 종료하고 %PRODUCTNAME %PRODUCTVERSION 설치 í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì‹­ì‹œì˜¤. '복구'를 ì„ íƒí•˜ì‹­ì‹œì˜¤.";
+ Message[ korean ] = "%PRODUCTNAME %PRODUCTVERSIONì€(는) Java LDX 를 시작하지 못했습니다. %PRODUCTNAME를 종료하고 %PRODUCTNAME %PRODUCTVERSION 설치 í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì‹­ì‹œì˜¤. [복구]를 ì„ íƒí•˜ì‹­ì‹œì˜¤.";
Message[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION 无法å¯åŠ¨ Java LDX 。请关闭 %PRODUCTNAME 之åŽå¯åŠ¨ %PRODUCTNAME %PRODUCTVERSION 安装程åºï¼Œé€‰æ‹©ä¿®å¤å®‰è£…的选项。";
Message[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION 無法啓動 Java LDX 。請關閉 %PRODUCTNAME ,然後啓動 %PRODUCTNAME %PRODUCTVERSION 安è£ç¨‹å¼ï¼Œé¸æ“‡ä¿®å¾©çš„é¸é …。";
Message[ turkish ] = "%PRODUCTNAME %PRODUCTVERSION could not start Java LDX. Exit %PRODUCTNAME and start the %PRODUCTNAME %PRODUCTVERSION Setup. Choose 'Repair'.";
@@ -242,6 +242,25 @@ InfoBox INFOBOX_PLEASERESTARTOFFICE
Message = "Damit die neuen Java Einstellungen wirksam werden, ist ein Neustart von %PRODUCTNAME %PRODUCTVERSION erforderlich." ;
Message[ ENGLISH ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect." ;
Message[ english_us ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect." ;
+ Message[ portuguese ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ russian ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ greek ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ dutch ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ french ] = "Vous devez redémarrer %PRODUCTNAME %PRODUCTVERSION afin que les nouveaux paramètres Java puissent être appliqués.";
+ Message[ spanish ] = "Debe reiniciar %PRODUCTNAME %PRODUCTVERSION para que la configuración de Java tenga efecto.";
+ Message[ finnish ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ italian ] = "Perché le impostazioni di Java abbiano effetto dovete riavviare %PRODUCTNAME %PRODUCTVERSION.";
+ Message[ danish ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ swedish ] = "Du måsta starta om %PRODUCTNAME %PRODUCTVERSION för att Java-inställningarna ska träda i kraft.";
+ Message[ polish ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ japanese ] = "Java ã®è¨­å®šã‚’有効ã«ã™ã‚‹ã«ã¯ %PRODUCTNAME %PRODUCTVERSION ã‚’å†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚";
+ Message[ korean ] = "Javaì˜ ìƒˆ 설정 ë‚´ìš©ì„ ì ìš©í•˜ë ¤ë©´ %PRODUCTNAME %PRODUCTVERSIONì„(를) 다시 시작해야 합니다.";
+ Message[ chinese_simplified ] = "为了让 Java 设定生效,您必须é‡æ–°å¯åŠ¨ %PRODUCTNAME %PRODUCTVERSION 。";
+ Message[ chinese_traditional ] = "您需è¦é‡æ–°å•Ÿå‹• %PRODUCTNAME %PRODUCTVERSION,Java 設定æ‰æœƒç”Ÿæ•ˆã€‚";
+ Message[ turkish ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ arabic ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ catalan ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
+ Message[ thai ] = "You have to restart %PRODUCTNAME %PRODUCTVERSION for the Java settings to take effect.";
};
String STR_RECOVER_QUERY
@@ -256,17 +275,17 @@ String STR_RECOVER_QUERY
Text [ italian ] = "Volete recuperare il file \"$1\"?" ;
Text [ spanish ] = "¿Desea restaurar el archivo \"$1\"?" ;
Text [ french ] = "Restaurer le fichier \"$1\" ?" ;
- Text [ dutch ] = "Wilt u dat het bestand \"$1\" hersteld wordt?" ;
+ Text [ dutch ] = "Wilt u het bestand \"$1\" herstellen?" ;
Text[ chinese_simplified ] = "è¦ä¿®å¤è¿™ä¸ªæ–‡ä»¶ \"$1\" ?";
- Text[ russian ] = "Âîññòàíîâèòü ôàéë \"$1\"?";
+ Text[ russian ] = "Âîññòàíîâèòü äîêóìåíò \"$1\"?";
Text[ polish ] = "Odtworzyæ plik \"$1\"?";
Text[ japanese ] = "ファイル \"$1\" を復元ã—ã¾ã™ã‹ã€‚";
Text[ chinese_traditional ] = "è¦ä¿®å¾©æª”案<$1>?";
Text[ arabic ] = "åá ÊÑíÏ ÇÓÊÚÇÏÉ ÇáãáÝ \"$1\"¿";
- Text[ dutch ] = "Wilt u dat het bestand \"$1\" hersteld wordt?";
+ Text[ dutch ] = "Wilt u het bestand \"$1\" herstellen?";
Text[ chinese_simplified ] = "è¦ä¿®å¤è¿™ä¸ªæ–‡ä»¶ \"$1\" ?";
Text[ greek ] = "Íá ãßíåé åðáíáöïñÜ ôïõ áñ÷åßïõ \"$1\";";
- Text[ korean ] = "íŒŒì¼ \"$1\"ì„(를) 복구하겠습니까?";
+ Text[ korean ] = "íŒŒì¼ \"$1\"ì„(를) 복구하시겠습니까?";
Text[ turkish ] = "\"$1\" dosyasý geri getirilsin mi?";
Text[ language_user1 ] = " ";
Text[ catalan ] = "Voleu restaurar el fitxer \"$1\"?";
@@ -285,15 +304,15 @@ String STR_RECOVER_TITLE
Text [ italian ] = "Recupero file" ;
Text [ spanish ] = "Recuperar archivo" ;
Text [ french ] = "Restauration de fichier" ;
- Text [ dutch ] = "Herstel bestand" ;
+ Text [ dutch ] = "Bestandsherstel" ;
Text [ portuguese ] = "Restaurar ficheiro" ;
Text[ chinese_simplified ] = "ä¿®å¤æ–‡ä»¶";
- Text[ russian ] = "Âîññòàíîâëåíèå ôàéëà";
+ Text[ russian ] = "Âîññòàíîâëåíèå äîêóìåíòà";
Text[ polish ] = "Odtwarzanie plików";
Text[ japanese ] = "ファイルã®å¾©å…ƒ";
Text[ chinese_traditional ] = "修復檔案";
Text[ arabic ] = "ÇÓÊÚÇÏÉ ãáÝ";
- Text[ dutch ] = "Herstel bestand";
+ Text[ dutch ] = "Bestandsherstel";
Text[ chinese_simplified ] = "ä¿®å¤æ–‡ä»¶";
Text[ greek ] = "ÅðáíáöïñÜ áñ÷åßïõ";
Text[ korean ] = "íŒŒì¼ ë³µêµ¬";
@@ -316,21 +335,21 @@ WarningBox STR_RECOVER_PREPARED
Message [ italian ] = "Si è verificato un errore irrimediabile.\n\nTutti i file modificati sono stati salvati e probabilmente verranno recuperati\nal prossimo avvio del programma." ;
Message [ spanish ] = "Ha ocurrido un error irreparable.\n\nSin embargo se guardaron todos los archivos modificados\ny quizás podrán recuperarse\nal iniciar de nuevo el programa." ;
Message [ french ] = "Une erreur irrécupérable s'est produite.\n\nTous les fichiers modifiés ont été sauvegardés\net devraient être restaurés au\nredémarrage du programme." ;
- Message [ dutch ] = "Er is een niet-corrigeerbare fout opgetreden.\n\nAlle gemodificeerde bestanden werden echter\nopgeslagen en kunnen waarschijnlijk bij de volgende\nprogrammastart opnieuw gemaakt worden." ;
+ Message [ dutch ] = "Er is een onherstelbare fout opgetreden.\n\nAlle gemodificeerde bestanden zijn echter\nopgeslagen en kunnen waarschijnlijk bij de volgende\nprogrammastart worden hersteld." ;
Message[ chinese_simplified ] = "真是éžå¸¸æŠ±æ­‰ã€‚刚æ‰çš„æ“作引å‘了一个无法排除的错误。\n修改过的文件已ç»ä¿å­˜ã€‚\n在下一次å¯åŠ¨ç¨‹åºæ—¶å¾ˆå¯èƒ½é‡æ–°æ¢å¤è¿™äº›æ–‡ä»¶ã€‚";
- Message[ russian ] = "Ïðîèçîøëà íåóñòðàíèìàÿ îøèáêà.\n\nÂñå èçìåíåííûå ôàéëû áóäóò ñîõðàíåíû\nè èõ ìîæíî áóäåò âîññòàíîâèòü ïðè ñëåäóþùåì\nçàïóñêå ïðîãðàììû.";
+ Message[ russian ] = "Íåèñïðàâèìàÿ îøèáêà.\n\nÂñå èçìåíåííûå äîêóìåíòû áóäóò ñîõðàíåíû,\nè èõ ìîæíî áóäåò âîññòàíîâèòü ïðè ñëåäóþùåì\nçàïóñêå ïðîãðàììû.";
Message[ polish ] = "Wyst¹pi³ nieodwracalny b³¹d.\n\nWszystkie zmodyfikowane pliki zosta³y jednak\nzabezpieczone i zostan¹ prawdopodobnie przywrócone przy nastêpnym uruchomieniu programu.\n.";
Message[ japanese ] = "予期ã—ãªã„エラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚\n\n変更ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯ã™ã¹ã¦ä¿å­˜ã•ã‚Œã¦ã„ã‚‹ã®ã§\n次ã®ãƒ—ログラム起動ã§å¾©å…ƒã•ã‚Œã‚‹ã¯ãšã§ã™ã€‚";
Message[ chinese_traditional ] = "真是éžå¸¸æŠ±æ­‰ã€‚剛æ‰çš„動作引發了一個無法排除的錯誤。\nå…ˆå‰ä¿®æ”¹éŽçš„檔案已經儲存。\n在下一次啟動程å¼æ™‚很å¯èƒ½é‡æ–°æ¢å¾©é€™äº›æª”案。";
Message[ arabic ] = "ÍÏË ÎØà ÛíÑ ÞÇÈá ááÅÕáÇÍ.\n\nÊã ÍÝÙ ßÇÝÉ ÇáãáÝÇÊ ÇáÊí Êã ÊÚÏíáåÇ¡ \nÈÍíË íãßä ÇÓÊÚÇÏÊåÇ ÚäÏ ÅÚÇÏÉ\n ÊÔÛíá ÇáÈÑäÇãÌ.";
- Message[ dutch ] = "Er is een niet-corrigeerbare fout opgetreden.\n\nAlle gemodificeerde bestanden werden echter\nopgeslagen en kunnen waarschijnlijk bij de volgende\nprogrammastart opnieuw gemaakt worden.";
+ Message[ dutch ] = "Er is een onherstelbare fout opgetreden.\n\nAlle gemodificeerde bestanden zijn echter\nopgeslagen en kunnen waarschijnlijk bij de volgende\nprogrammastart worden hersteld.";
Message[ chinese_simplified ] = "真是éžå¸¸æŠ±æ­‰ã€‚刚æ‰çš„æ“作引å‘了一个无法排除的错误。\n修改过的文件已ç»ä¿å­˜ã€‚\n在下一次å¯åŠ¨ç¨‹åºæ—¶å¾ˆå¯èƒ½é‡æ–°æ¢å¤è¿™äº›æ–‡ä»¶ã€‚";
Message[ greek ] = "ÐáñïõóéÜóôçêå êÜðïéï áíåðáíüñèùôï óöÜëìá.\n\n¼ëá ôá ôñïðïðïéçìÝíá áñ÷åßá áðïèçêåýôçêáí\nþóôå íá åßíáé äõíáôÞ (ðéèáíüôáôá) ç åðáíáöïñÜ ôïõò\n";
- Message[ korean ] = "치명ì ì¸ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.\n\n그러나 ë³€ê²½ëœ ëª¨ë“  파ì¼ì´\n저장ë˜ì—ˆìœ¼ë¯€ë¡œ, 다ìŒ\n프로그램 시작시ì—는 ë³µêµ¬ë  ìˆ˜ ìžˆì„ ê²ƒìž…ë‹ˆë‹¤.";
+ Message[ korean ] = "치명ì ì¸ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.\n\n그러나 ë³€ê²½ëœ ëª¨ë“  파ì¼ì´\n저장ë˜ì—ˆìœ¼ë¯€ë¡œ ë‹¤ìŒ í”„ë¡œê·¸ëž¨\nì‹œìž‘ì‹œì— ë³µêµ¬ë  ìˆ˜ 있습니다.";
Message[ turkish ] = "Düzeltilemeyen bir hata oluþtu.\n\nDeðiþtirilen tüm dosyalar\nkaydedildi ve muhtemelen uygulama yeniden baþlatýldýðýnda\nkurtarýlabilecek.";
Message[ language_user1 ] = " ";
Message[ catalan ] = "S'ha produït un error irreparable.\n\nTot i això es desaran els canvis realitzats\nen els fitxers i potser es podran recuperar\nen iniciar de nou el programa.";
- Message[ finnish ] = "On ilmennyt peruuttamaton virhe.\n\nKaikki muokatut tiedostot on tallennettu\nja ne voidaan ehkä palauttaa, kun käynnistät ohjelman uudelleen.";
+ Message[ finnish ] = "On ilmennyt peruuttamaton virhe.\n\nKaikki muokatut tiedostot on tallennettu\nja ne voidaan ehkä palauttaa, kun käynnistät\nohjelman uudelleen.";
Message[ thai ] = "เà¸à¸´à¸”ข้อผิดพลาดที่ไม่สามารถà¸à¸¹à¹‰à¸„ืนได้\n\nà¹à¸Ÿà¹‰à¸¡à¸—ี่ดัดà¹à¸›à¸¥à¸‡à¹à¸à¹‰à¹„ขได้ถูà¸à¸šà¸±à¸™à¸—ึà¸à¹à¸¥à¸°à¸™à¹ˆà¸²à¸ˆà¸°à¸ªà¸²à¸¡à¸²à¸£à¸–\nถูà¸à¸à¸¹à¹‰à¸„ืนที่โปรà¹à¸à¸£à¸¡à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™à¹„ด้";
};
@@ -340,12 +359,12 @@ String STR_BOOTSTRAP_ERR_CANNOT_START
Text [ ENGLISH ] = "The program cannot be started. " ;
Text[ english_us ] = "The application cannot be started. ";
Text[ portuguese ] = "Impossível iniciar a aplicação. ";
- Text[ russian ] = "Çàïóñê ïðèëîæåíèÿ íåâîçìîæåí. ";
+ Text[ russian ] = "Íåâîçìîæíî çàïóñòèòü ïðèëîæåíèå.";
Text[ greek ] = "The program cannot be started. ";
- Text[ dutch ] = "De applicatie kan niet worden gestart.";
+ Text[ dutch ] = "De toepassing kan niet worden gestart.";
Text[ french ] = "Impossible de lancer l'application ! ";
Text[ spanish ] = "No se puede iniciar la aplicación. ";
- Text[ finnish ] = "The program cannot be started. ";
+ Text[ finnish ] = "Sovelluksen käynnistys ei onnistu. ";
Text[ italian ] = "Impossibile avviare l'applicazione. ";
Text[ danish ] = "Programmet kan ikke startes. ";
Text[ swedish ] = "Det går inte att starta programmet. ";
@@ -366,19 +385,19 @@ String STR_BOOTSTRAP_ERR_DIR_MISSING
Text [ ENGLISH ] = "The configuration directory \"$1\" is missing." ;
Text[ english_us ] = "The configuration directory \"$1\" could not be found.";
Text[ portuguese ] = "Impossível encontrar o caminho de configuração \"$1\".";
- Text[ russian ] = "Êîíôèãóðàöèîííûé ïóòü \"$1\" íåíàéäåí.";
+ Text[ russian ] = "Íåâîçìîæíî íàéòè êàòàëîã êîíôèãóðàöèè \"$1\".";
Text[ greek ] = "The configuration directory \"$1\" is missing.";
- Text[ dutch ] = "Configuratie-directory \"$1\" ontbreekt.";
+ Text[ dutch ] = "Configuratiepad \"$1\" is niet gevonden.";
Text[ french ] = "Impossible de détecter le chemin de configuration \"$1\" !";
Text[ spanish ] = "No se encontró el directorio de configuración \"$1\".";
- Text[ finnish ] = "The configuration directory \"$1\" is missing.";
+ Text[ finnish ] = "Määrityshakemistoa \"$1\" ei löydy.";
Text[ italian ] = "Impossibile trovare il percorso di configurazione \"$1\".";
Text[ danish ] = "\"Kunne ikke finde konfigurationsstien \"\"$1\"\".\"";
Text[ swedish ] = "Konfigurationssökvägen \"$1\" hittades inte.";
Text[ polish ] = "Nie znaleziono œcie¿ki konfiguracyjnej \"$1\".";
Text[ portuguese_brazilian ] = "The configuration directory \"$1\" is missing.";
Text[ japanese ] = "設定パス \"$1\" ã¯ã‚ã‚Šã¾ã›ã‚“。";
- Text[ korean ] = "구성 디렉토리 \"$1\"ì„(를)ì´ ì—†ìŠµë‹ˆë‹¤.";
+ Text[ korean ] = "구성 디렉토리 \"$1\" ì´(ê°€) 없습니다.";
Text[ chinese_simplified ] = "无法找到é…置路径 \"$1\"。";
Text[ chinese_traditional ] = "沒有找到é…置路徑 \"$1\" 。";
Text[ turkish ] = "The configuration directory \"$1\" is missing.";
@@ -392,12 +411,12 @@ String STR_BOOTSTRAP_ERR_PATH_INVALID
Text [ ENGLISH ] = "The installation path is invalid." ;
Text[ english_us ] = "The installation path is invalid.";
Text[ portuguese ] = "O caminho de instalação não é válido.";
- Text[ russian ] = "Èíñòàëëÿöèîííûé ïóòü íåäîïóñòèì.";
+ Text[ russian ] = "Íåâåðíûé ïóòü óñòàíîâêè.";
Text[ greek ] = "The installation path is invalid.";
- Text[ dutch ] = "Het installatiepad is ongeldig.";
+ Text[ dutch ] = "Het installatiepad kan niet worden vastgesteld.";
Text[ french ] = "Le chemin d'installation n'est pas valide.";
Text[ spanish ] = "La ruta de instalación no es válida.";
- Text[ finnish ] = "The installation path is invalid.";
+ Text[ finnish ] = "Asennuspolku on virheellinen.";
Text[ italian ] = "Il percorso d'installazione non è valido.";
Text[ danish ] = "Installationsstien er ugyldig.";
Text[ swedish ] = "Installationssökvägen är ogiltig.";
@@ -418,12 +437,12 @@ String STR_BOOTSTRAP_ERR_NO_PATH
Text [ ENGLISH ] = "The installation path is not available." ;
Text[ english_us ] = "The installation path is not available.";
Text[ portuguese ] = "Foi impossível determinar o caminho de instalação.";
- Text[ russian ] = "Èíñòàëëÿöèîííûé ïóòü íåäîñòóïåí.";
+ Text[ russian ] = "Íåäîñòóïåí ïóòü óñòàíîâêè.";
Text[ greek ] = "The installation path is not available.";
Text[ dutch ] = "Geen installatiepad beschikbaar.";
Text[ french ] = "Impossible de déterminer le chemin d'installation !";
Text[ spanish ] = "No se pudo determinar la ruta de instalación.";
- Text[ finnish ] = "The installation path is not available.";
+ Text[ finnish ] = "Asennuspolku ei ole käytettävissä.";
Text[ italian ] = "Impossibile definire il percorso di installazione.";
Text[ danish ] = "Installationsstien kunne ikke findes.";
Text[ swedish ] = "Det gick inte att bestämma installationssökvägen.";
@@ -444,12 +463,12 @@ String STR_BOOTSTRAP_ERR_INTERNAL
Text [ ENGLISH ] = "An internal failure occurred." ;
Text[ english_us ] = "An internal error occurred.";
Text[ portuguese ] = "Ocorreu um erro interno.";
- Text[ russian ] = "Âîçíèêëà âíóòðåííÿÿ îøèáêà.";
+ Text[ russian ] = "Âíóòðåííÿÿ îøèáêà.";
Text[ greek ] = "An internal failure occurred.";
- Text[ dutch ] = "Interne fout.";
+ Text[ dutch ] = "Er is een interne fout opgetreden.";
Text[ french ] = "Une erreur interne est survenue.";
Text[ spanish ] = "Ha occurrido un error interno.";
- Text[ finnish ] = "An internal failure occurred.";
+ Text[ finnish ] = "On tapahtunut sisäinen virhe.";
Text[ italian ] = "Si è verificato un errore interno.";
Text[ danish ] = "Der er opstået en intern fejl.";
Text[ swedish ] = "Det har uppstått ett internt fel.";
@@ -470,12 +489,12 @@ String STR_BOOTSTRAP_ERR_FILE_CORRUPT
Text [ ENGLISH ] = "The configuration file \"$1\" is corrupt." ;
Text[ english_us ] = "The configuration file \"$1\" is corrupt.";
Text[ portuguese ] = "O ficheiro de configuração \"$1\" está danificado.";
- Text[ russian ] = "Êîíôèãóðàöèîííûé ôàéë \"$1\" ïîâðåæäåí.";
+ Text[ russian ] = "Ôàéë êîíôèãóðàöèè \"$1\" ïîâðåæäåí.";
Text[ greek ] = "The configuration file \"$1\" is corrupt.";
- Text[ dutch ] = "Configuratie-bestand \"$1\" is niet in orde.";
+ Text[ dutch ] = "Configuratiebestand \"$1\" is beschadigd.";
Text[ french ] = "Le fichier de configuration \"$1\" est défectueux.";
Text[ spanish ] = "El archivo de configuración \"$1\" está dañado.";
- Text[ finnish ] = "The configuration file \"$1\" is corrupt.";
+ Text[ finnish ] = "Määritystiedosto \"$1\" on vioittunut.";
Text[ italian ] = "Il file di configurazione \"$1\" è danneggiato.";
Text[ danish ] = "\"Konfigurationsfilen \"\"$1\"\" er beskadiget.\"";
Text[ swedish ] = "Konfigurationsfilen \"$1\" är skadad.";
@@ -496,12 +515,12 @@ String STR_BOOTSTRAP_ERR_FILE_MISSING
Text [ ENGLISH ] = "The configuration file \"$1\" is missing." ;
Text[ english_us ] = "The configuration file \"$1\" was not found.";
Text[ portuguese ] = "Impossível encontrar o ficheiro de configuração \"$1\".";
- Text[ russian ] = "Êîíôèãóðàöèîííûé ôàéë \"$1\" íåíàéäåí.";
+ Text[ russian ] = "Ôàéë êîíôèãóðàöèè \"$1\" íå íàéäåí.";
Text[ greek ] = "The configuration file \"$1\" is missing.";
- Text[ dutch ] = "Configuratiebestand \"$1\" ontbreekt.";
+ Text[ dutch ] = "Configuratiebestand \"$1\" is niet gevonden.";
Text[ french ] = "Impossible de détecter le fichier de configuration \"$1\" !";
Text[ spanish ] = "No se encontró el archivo de configuración \"$1\".";
- Text[ finnish ] = "The configuration file \"$1\" is missing.";
+ Text[ finnish ] = "Määritystiedostoa \"$1\" ei löytynyt.";
Text[ italian ] = "Impossibile trovare il file di configurazione \"$1\".";
Text[ danish ] = "\"Kunne ikke finde konfigurationsfilen \"\"$1\"\".\"";
Text[ swedish ] = "Konfigurationsfilen \"$1\" hittades inte.";
@@ -522,19 +541,19 @@ String STR_BOOTSTRAP_ERR_NO_SUPPORT
Text [ ENGLISH ] = "The main configuration file \"$1\" does not support the current version." ;
Text[ english_us ] = "The configuration file \"$1\" does not support the current version.";
Text[ portuguese ] = "The main configuration file \"$1\" does not support the current version.";
- Text[ russian ] = "Êîíôèãóðàöèîííûé ôàéë \"$1\" íå ïîääåðæèâàåò äàííóþ âåðñèþ.";
+ Text[ russian ] = "Ôàéë êîíôèãóðàöèè \"$1\" íå ïîääåðæèâàåò òåêóùóþ âåðñèþ.";
Text[ greek ] = "The main configuration file \"$1\" does not support the current version.";
- Text[ dutch ] = "Configuratie-bestand \"$1\" ondersteunt deze versie niet.";
+ Text[ dutch ] = "Configuratiebestand \"$1\" ondersteunt deze versie niet.";
Text[ french ] = "Le fichier de configuration \"$1\" ne supporte pas cette version.";
- Text[ spanish ] = "El archivo de configuración \"$1\" no apoya esta versión.";
- Text[ finnish ] = "The main configuration file \"$1\" does not support the current version.";
+ Text[ spanish ] = "El archivo de configuración \"$1\" no admite esta versión.";
+ Text[ finnish ] = "Määritystiedosto \"$1\" ei tue nykyistä versiota.";
Text[ italian ] = "Il file di configurazione principale \"$1\" non supporta questa versione.";
Text[ danish ] = "\"Konfigurationsfilen \"\"$1\"\" understøtter ikke denne version.\"";
Text[ swedish ] = "Konfigurationsfilen \"$1\" understöder inte den här versionen.";
Text[ polish ] = "Plik konfiguracyjny \"$1\" nie obs³uguje danej wersji.";
Text[ portuguese_brazilian ] = "The main configuration file \"$1\" does not support the current version.";
Text[ japanese ] = "設定ファイル \"$1\" ã¯ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’支æ´ã—ã¾ã›ã‚“。";
- Text[ korean ] = "주 구성 íŒŒì¼ \"$1\"ì—ì„œ 현재 ë²„ì „ì„ ì§€ì›í•˜ì§€ 않습니다.";
+ Text[ korean ] = "구성 íŒŒì¼ \"$1\"ì€(는) 현재 ë²„ì „ì„ ì§€ì›í•˜ì§€ 않습니다.";
Text[ chinese_simplified ] = "é…置文件 \"$1\" ä¸æ”¯æŒè¿™ä¸ªç‰ˆæœ¬ã€‚";
Text[ chinese_traditional ] = "é…置檔案 \"$1\" ä¸æ”¯æ´é€™å€‹ç‰ˆæœ¬ã€‚";
Text[ turkish ] = "The main configuration file \"$1\" does not support the current version.";
@@ -550,10 +569,10 @@ String STR_BOOTSTRAP_ERR_NO_SERVICE
Text[ portuguese ] = "O gestor de componentes não está disponível.";
Text[ russian ] = "Äèñïåò÷åð êîìïîíåíòîâ íåäîñòóïåí.";
Text[ greek ] = "The service manager is not available.";
- Text[ dutch ] = "De componenten-manager is niet beschikbaar.";
+ Text[ dutch ] = "Het componentenbeheer is niet beschikbaar.";
Text[ french ] = "Le gestionnaire de composants n'est pas disponible.";
Text[ spanish ] = "El gestor de componentes no está disponible.";
- Text[ finnish ] = "The service manager is not available.";
+ Text[ finnish ] = "Komponenttien hallinta ei ole käytettävissä.";
Text[ italian ] = "Il gestore dei componenti non è disponibile.";
Text[ danish ] = "Komponentmanageren er ikke til rådighed.";
Text[ swedish ] = "Komponenthanteraren är inte tillgänglig.";
@@ -574,12 +593,12 @@ String STR_BOOTSTRAP_ERR_NO_CFG_SERVICE
Text [ ENGLISH ] = "The configuration service is not available." ;
Text[ english_us ] = "The configuration service is not available.";
Text[ portuguese ] = "The configuration service is not available.";
- Text[ russian ] = "Ñîçäàòü äèñïåò÷åðà ôàéëîâ íåâîçìîæíî.";
+ Text[ russian ] = "Ñëóæáû êîíôèãóðàöèè íåäîñòóïíû.";
Text[ greek ] = "The configuration service is not available.";
- Text[ dutch ] = "De configuratie-manager is niet beschibaar.";
+ Text[ dutch ] = "Het configuratiebeheer is niet beschikbaar.";
Text[ french ] = "Impossible de créer le gestionnaire de configuration !";
Text[ spanish ] = "No se puede crear el gestor de configuración.";
- Text[ finnish ] = "The configuration service is not available.";
+ Text[ finnish ] = "Määrityspalvelua ei ole käytettävissä.";
Text[ italian ] = "Impossibile creare il gestore di configurazione.";
Text[ danish ] = "Konfigurationsmanageren kan ikke oprettes.";
Text[ swedish ] = "Det går inte att skapa konfigurationshanteraren.";
@@ -600,19 +619,19 @@ String STR_ASK_START_SETUP_REPAIR
Text [ ENGLISH ] = "Start setup application to repair installation?" ;
Text[ english_us ] = "Do you want to start the setup application to repair your installation?";
Text[ portuguese ] = "Iniciar a aplicação Setup para reparar a instalação?";
- Text[ russian ] = "Çàïóñòèòü èíñòàëëÿöèîííîå ïðèëîæåíèå äëÿ âîññòàíîâëåíèÿ èíñòàëëèðîâàííîé âåðñèè?";
+ Text[ russian ] = "Çàïóñòèòü ïðîãðàììó óñòàíîâêè â ðåæèìå Âîññòàíîâëåíèå?";
Text[ greek ] = "Start setup application to repair installation?";
- Text[ dutch ] = "Wilt u de Setup-applicatie starten om uw installatie te repareren?";
+ Text[ dutch ] = "Wilt u de Setup-toepassing starten om uw installatie te repareren?";
Text[ french ] = "Voulez-vous lancer l'application Setup afin de réparer l'installation ?";
- Text[ spanish ] = "¿Desea iniciar el programa de instalación setup para reparar la instalación?";
- Text[ finnish ] = "Start setup application to repair installation?";
+ Text[ spanish ] = "¿Desea iniciar el programa de instalación para reparar la instalación?";
+ Text[ finnish ] = "Haluatko käynnistää asennusohjelman asennuksen korjaamista varten?";
Text[ italian ] = "Volete avviare il programma di setup per riparare l'installazione?";
Text[ danish ] = "Skal setup-programmet startes for at reparere installationen?";
Text[ swedish ] = "Ska setupprogrammet startas så att din installation kan repareras?";
Text[ polish ] = "Uruchomiæ aplikacjê instalacyjn¹ w celu naprawy zainstalowanego programu?";
Text[ portuguese_brazilian ] = "Start setup application to repair installation?";
Text[ japanese ] = "インストールã®ä¿®å¾©ã‚’ã™ã‚‹ã®ã«ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—アプリケーションを開始ã—ã¾ã™ã‹ã€‚";
- Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì—¬ 설치를 복구하겠습니까?";
+ Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì—¬ 설치를 복구하시겠습니까?";
Text[ chinese_simplified ] = "è¦å¯åŠ¨å®‰è£…程åºæ¥ä¿®è¡¥æ‚¨åŽŸå…ˆçš„安装?";
Text[ chinese_traditional ] = "è¦å•“動安è£ç¨‹å¼ï¼Œä¿®å¾©å·²ç¶“安è£çš„應用程å¼ï¼Ÿ";
Text[ turkish ] = "Start setup application to repair installation?";
@@ -626,19 +645,19 @@ String STR_ASK_START_SETUP
Text [ ENGLISH ] = "Start setup application to check installation?" ;
Text[ english_us ] = "Do you want to start the setup application to check your installation?";
Text[ portuguese ] = "Start setup application to check installation?";
- Text[ russian ] = "Çàïóñòèòü èíñòàëëÿöèîííîå ïðèëîæåíèå äëÿ ïðîâåðêè èíñòàëëèðîâàííîé âåðñèè?";
+ Text[ russian ] = "Çàïóñòèòü ïðîãðàììó óñòàíîâêè äëÿ ïðîâåðêè óñòàíîâëåííîé âåðñèè?";
Text[ greek ] = "Start setup application to check installation?";
- Text[ dutch ] = "Wilt u de Setup-applicatie starten om uw installatie te controleren?";
+ Text[ dutch ] = "Wilt u de Setup-toepassing starten om uw installatie te controleren?";
Text[ french ] = "Voulez-vous lancer l'application Setup afin de vérifier l'installation ?";
- Text[ spanish ] = "¿Desea iniciar el programa de instalación setup para comprobar la instalación?";
- Text[ finnish ] = "Start setup application to check installation?";
+ Text[ spanish ] = "¿Desea iniciar el programa de instalación para comprobar la instalación?";
+ Text[ finnish ] = "Haluatko käynnistää asennusohjelman asennuksen tarkistamista varten?";
Text[ italian ] = "Volete avviare il programma di setup per verificare l'installazione?";
Text[ danish ] = "Skal setup-programmet startes for at kontrollere installationen?";
Text[ swedish ] = "Ska setupprogrammet startas så att din installation kan kontrolleras?";
Text[ polish ] = "Uruchomiæ aplikacjê instalacyjn¹ w celu sprawdzenia zainstalowanego programu?";
Text[ portuguese_brazilian ] = "Start setup application to check installation?";
Text[ japanese ] = "インストールを確èªã™ã‚‹ã®ã«ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—アプリケーションを開始ã—ã¾ã™ã‹ã€‚";
- Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì—¬ 설치를 검사하겠습니까?";
+ Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì—¬ 설치를 검사하시겠습니까?";
Text[ chinese_simplified ] = "è¦å¯åŠ¨å®‰è£…程åºæ¥æ£€æŸ¥æ‚¨åŽŸå…ˆçš„安装?";
Text[ chinese_traditional ] = "è¦å•“動安è£ç¨‹å¼ï¼Œæª¢æŸ¥å·²å®‰è£çš„應用程å¼ï¼Ÿ";
Text[ turkish ] = "Start setup application to check installation?";
@@ -652,19 +671,19 @@ String STR_SETUP_ERR_CANNOT_START
Text [ ENGLISH ] = "Couldn't start setup application! Please start it manually." ;
Text[ english_us ] = "The Setup could not be started automatically. Please start it manually.";
Text[ portuguese ] = "Foi impossível iniciar a aplicação Setup automaticamente! Queira iniciá-la manualmente.";
- Text[ russian ] = "Àâòîìàòè÷åñêèé çàïóñê èíñòàëëÿöèîííîãî ïðèëîæåíèÿ íåâîçìîæåí. Çàïóñòèòå åãî âðó÷íóþ.";
+ Text[ russian ] = "Íåâîçìîæíî çàïóñòèòü ïðîãðàììó àâòîìàòè÷åñêè. Çàïóñòèòå åå âðó÷íóþ.";
Text[ greek ] = "Couldn't start setup application! Please start it manually.";
- Text[ dutch ] = "De Setup-applicatie kon niet automatisch worden gestart. Start deze handmatig.";
+ Text[ dutch ] = "De Setup-toepassing kan niet automatisch worden gestart. Start deze handmatig.";
Text[ french ] = "Impossible de lancer automatiquement l'application Setup ! Veuillez la démarrer manuellement.";
- Text[ spanish ] = "No se pudo iniciar automáticamente el programa de instalación setup. Inícielo manualmente.";
- Text[ finnish ] = "Couldn't start setup application! Please start it manually.";
+ Text[ spanish ] = "No se pudo iniciar automáticamente el programa de instalación. Inícielo manualmente.";
+ Text[ finnish ] = "Asennusohjelmaa ei voitu käynnistää automaattisesti. Käynnistä se manuaalisesti.";
Text[ italian ] = "Impossibile avviare il programma di setup in modo automatico. Avviatelo manualmente.";
Text[ danish ] = "Setup-programmet kunne ikke startes automatisk! Start programmet manuelt.";
Text[ swedish ] = "Det gick inte att starta setupprogrammet automatiskt! Starta det manuellt.";
Text[ polish ] = "Automatyczne uruchomienie aplikacji instalacyjnej nie powiod³o siê! Nale¿y uruchomiæ j¹ rêcznie.";
Text[ portuguese_brazilian ] = "Couldn't start setup application! Please start it manually.";
Text[ japanese ] = "セットアップアプリケーションã¯è‡ªå‹•é–‹å§‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚手動ã§é–‹å§‹ã—ã¦ãã ã•ã„。";
- Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì§€ 못했습니다! 설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ìˆ˜ë™ìœ¼ë¡œ 시작하십시오.";
+ Text[ korean ] = "설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•˜ì§€ 못했습니다. 설치 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ìˆ˜ë™ìœ¼ë¡œ 시작해주십시오.";
Text[ chinese_simplified ] = "无法自动å¯åŠ¨å®‰è£…程åºï¼è¯·æ‰‹åŠ¨å¯åŠ¨ã€‚";
Text[ chinese_traditional ] = "無法自動啓動安è£ç¨‹å¼ï¼è«‹æ‰‹å‹•å•“動安è£ç¨‹å¼ã€‚";
Text[ turkish ] = "Couldn't start setup application! Please start it manually.";
@@ -678,12 +697,12 @@ String STR_ASK_START_SETUP_MANUALLY
Text [ ENGLISH ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. " ;
Text[ english_us ] = "Start the setup application to repair the installation from the CD or the folder containing the installation packages.";
Text[ portuguese ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. ";
- Text[ russian ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. ";
+ Text[ russian ] = "Çàïóñòèòå ïðîãðàììó óñòàíîâêè, ÷òîáû ïðîäîëæèòü óñòàíîâêó ñ äèñêà èëè èç ïàïêè, ñîäåðæàùåé ïàêåò ïðîãðàìì óñòàíîâêè. ";
Text[ greek ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. ";
- Text[ dutch ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. ";
+ Text[ dutch ] = "Als u de installatie wilt repareren, start u de Setup-toepassing vanaf de cd of vanuit de directory waarin de installatieprogramma's zich bevinden.";
Text[ french ] = "Pour réparer l'installation, lancez l'application Setup à partir du CD-ROM ou depuis le répertoire contenant le paquetage d'installation.";
Text[ spanish ] = "Para reparar la instalación inicie la aplicación de Setup, o programa de instalación, desde el CD o desde la carpeta que contenga los archivos de instalación. ";
- Text[ finnish ] = "Start setup application to repair the installation from CD, or the folder containing the installation packages. ";
+ Text[ finnish ] = "Korjaa asennus CD-levyltä tai asennuspakkaukset sisältävästä hakemistosta käynnistämällä asennussovellus.";
Text[ italian ] = "Per riparare l'installazione avviate il programma di setup dal CD-ROM oppure dalla cartella in cui avete installato il programma.";
Text[ danish ] = "Du skal starte setup-programmet fra cd'en eller fra det bibliotek, hvor installationspakkerne findes, for at reparere installationen.";
Text[ swedish ] = "Starta setupprogrammet från cd:n eller från katalogen där installationspaketen finns för att reparera installationen.";
@@ -702,60 +721,318 @@ String STR_SSO_RELOGIN
{
Text = "Bitte wiederholen Sie Ihre Anmeldung. " ;
Text[ ENGLISH ] = "Please log in again. " ;
+ Text[ english_us ] = "Please log in again. ";
+ Text[ portuguese ] = "Please log in again. ";
+ Text[ russian ] = "Please log in again. ";
+ Text[ greek ] = "Please log in again. ";
+ Text[ dutch ] = "Please log in again. ";
+ Text[ french ] = "Répétez le login. ";
+ Text[ spanish ] = "Vuelva a registrarse. ";
+ Text[ finnish ] = "Please log in again. ";
+ Text[ italian ] = "Ripetete il login. ";
+ Text[ danish ] = "Please log in again. ";
+ Text[ swedish ] = "Logga in igen. ";
+ Text[ polish ] = "Please log in again. ";
+ Text[ japanese ] = "ログインã—ãªãŠã—ã¦ãã ã•ã„。";
+ Text[ korean ] = "로그ì¸ì„ 다시 해주십시오. ";
+ Text[ chinese_simplified ] = "请é‡æ–°ç™»å½•ã€‚";
+ Text[ chinese_traditional ] = "è«‹é‡æ–°ç™»å…¥ã€‚ ";
+ Text[ turkish ] = "Please log in again. ";
+ Text[ arabic ] = "Please log in again. ";
+ Text[ catalan ] = "Please log in again. ";
+ Text[ thai ] = "Please log in again. ";
};
String STR_CONFIG_WARN_LOCAL_FALLBACK
{
Text = "StarOffice wird Ihre lokal-gespeicherten persönlichen Einstellungen verwenden, um mit dem Programmstart fortzufahren. " ;
Text[ ENGLISH ] = "StarOffice will continue the startup using your locally stored personal settings. " ;
+ Text[ english_us ] = "StarOffice will continue the startup using your locally stored personal settings.";
+ Text[ portuguese ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ russian ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ greek ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ dutch ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ french ] = "StarOffice va poursuivre le processus de démarrage en utilisant les paramètres personnels stockés en local. ";
+ Text[ spanish ] = "StarOffice continuará el proceso de inicialización utilizando la configuración personal guardada localmente.";
+ Text[ finnish ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ italian ] = "StarOffice proseguirà l'avvio dell'applicazione utilizzando le impostazioni personalizzate salvate localmente. ";
+ Text[ danish ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ swedish ] = "StarOffice kommmer att använda dina personliga inställningar som är sparade lokalt för att fortsätta med programstarten. ";
+ Text[ polish ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ japanese ] = "StarSuite ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ã«ä¿å­˜ã•ã‚Œã¦ã„るユーザー設定を使用ã—ã¦ã‚¹ã‚¿ãƒ¼ãƒˆã‚¢ãƒƒãƒ—を続行ã—ã¾ã™ã€‚";
+ Text[ korean ] = "StarSuiteì€ í”„ë¡œê·¸ëž¨ì˜ ì‹œìž‘ì„ ê³„ì†í•˜ê¸° 위해 로컬 ì €ìž¥ëœ ì‚¬ìš©ìž ì„¤ì • ë‚´ìš©ì„ ì‚¬ìš©í•©ë‹ˆë‹¤.";
+ Text[ chinese_simplified ] = "StarSuite 将会使用您的本机个人设定,以继续å¯åŠ¨è¿‡ç¨‹ã€‚";
+ Text[ chinese_traditional ] = "StarOffice 將使用本機儲存的個人設定繼續啟動。";
+ Text[ turkish ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ arabic ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ catalan ] = "StarOffice will continue the startup using your locally stored personal settings. ";
+ Text[ thai ] = "StarOffice will continue the startup using your locally stored personal settings. ";
};
String STR_CONFIG_WARN_OFFLINE
{
Text = "Ihre geänderten persönlichen Einstellungen werden von StarOffice zunächst lokal gespeichert und beim nächsten Programmstart synchronisiert. " ;
Text[ ENGLISH ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. " ;
+ Text[ english_us ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice.";
+ Text[ portuguese ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ russian ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ greek ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ dutch ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ french ] = "Les modifications apportées aux paramètres personnels vont être stockées en local ; une synchronisation aura lieu au prochain démarrage de StarOffice. ";
+ Text[ spanish ] = "Las modificaciones realizadas en la configuración personal se guardarán a nivel local y se sincronizarán la próxima vez que inicie StarOffice. ";
+ Text[ finnish ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ italian ] = "I cambiamenti apportati alle impostazioni personalizzate verranno memorizzati localmente e sincronizzati al prossimo avvio di StarOffice. ";
+ Text[ danish ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ swedish ] = "Dina ändrade personliga inställningar sparas lokalt och synkroniseras nästa gång du startar StarOffice. ";
+ Text[ polish ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ japanese ] = "変更ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šã¯ãƒ­ãƒ¼ã‚«ãƒ«ã«ä¿å­˜ã•ã‚Œã€StarSuiteを次回起動ã—ãŸã¨ãã«å映ã•ã‚Œã¾ã™ã€‚";
+ Text[ korean ] = "ì‚¬ìš©ìž ìž„ì˜ë¡œ 변경한 설정 ë‚´ìš©ì€ ìš°ì„  로컬 저장ë˜ë©° 다ìŒì— StarSuiteì„ ë‹¤ì‹œ 시작할 ë•Œ ë™ê¸°í™”ë©ë‹ˆë‹¤. ";
+ Text[ chinese_simplified ] = "您个人设定的更改将被储存在本机上并在下次å¯åŠ¨ StarSuite 时被åŒæ­¥åŒ–处ç†ã€‚";
+ Text[ chinese_traditional ] = "您å°å€‹äººè¨­å®šæ‰€åšçš„變更會儲存在本機,並在下次啟動 StarOffice 時åŒæ­¥åŒ–。";
+ Text[ turkish ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ arabic ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ catalan ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
+ Text[ thai ] = "The changes you have made to your personal settings will be stored locally and synchronized the next time you start StarOffice. ";
};
String STR_CONFIG_ERR_SETTINGS_INCOMPLETE
{
Text = "Die Starteinstellungen für den Zugriff auf die zentrale Konfiguration sind unvollständig. " ;
Text[ ENGLISH ] = "The startup settings for accessing the central configuration are incomplete. " ;
+ Text[ english_us ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ portuguese ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ russian ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ greek ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ dutch ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ french ] = "Les paramètres de démarrage pour l'accès à la configuration centrale ne sont pas complets. ";
+ Text[ spanish ] = "La configuración de inicio para acceder a la configuración central no está completa. ";
+ Text[ finnish ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ italian ] = "Le impostazioni di avvio per l'accesso alla configurazione centrale sono incomplete.";
+ Text[ danish ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ swedish ] = "Startinställningarna för att komma åt den centrala konfiguration är ofullständiga. ";
+ Text[ polish ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ japanese ] = "共通設定ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã‚¹ã‚¿ãƒ¼ãƒˆã‚¢ãƒƒãƒ—設定ãŒå分ã§ã¯ã‚ã‚Šã¾ã›ã‚“。";
+ Text[ korean ] = "중앙 집중 설정으로 액세스할 ë•Œ 필요한 시작 ì„¤ì •ì´ ë¶ˆì™„ì „í•©ë‹ˆë‹¤.";
+ Text[ chinese_simplified ] = "用于存å–中心é…置的å¯åŠ¨è®¾å®šä¸å®Œæ•´ã€‚";
+ Text[ chinese_traditional ] = "å­˜å–集中é…置的啟動設定ä¸å®Œæ•´ã€‚ ";
+ Text[ turkish ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ arabic ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ catalan ] = "The startup settings for accessing the central configuration are incomplete. ";
+ Text[ thai ] = "The startup settings for accessing the central configuration are incomplete. ";
};
String STR_CONFIG_ERR_CANNOT_CONNECT
{
Text = "Eine Verbindung zur zentralen Konfiguration kann nicht hergestellt werden. " ;
Text[ ENGLISH ] = "A connection to the central configuration could not be established. " ;
+ Text[ english_us ] = "A connection to the central configuration could not be established. ";
+ Text[ portuguese ] = "A connection to the central configuration could not be established. ";
+ Text[ russian ] = "A connection to the central configuration could not be established. ";
+ Text[ greek ] = "A connection to the central configuration could not be established. ";
+ Text[ dutch ] = "A connection to the central configuration could not be established. ";
+ Text[ french ] = "Impossible d'établir une connexion à la configuration centrale ! ";
+ Text[ spanish ] = "No se ha podido establecer ninguna conexión con la configuración central. ";
+ Text[ finnish ] = "A connection to the central configuration could not be established. ";
+ Text[ italian ] = "impossibile realizzare un colleamento con la configurazione centrale. ";
+ Text[ danish ] = "A connection to the central configuration could not be established. ";
+ Text[ swedish ] = "Det gick inte att koppla till den centrala konfigurationen. ";
+ Text[ polish ] = "A connection to the central configuration could not be established. ";
+ Text[ japanese ] = "共通設定ã¸ã®æŽ¥ç¶šãŒç¢ºç«‹ã§ãã¾ã›ã‚“。";
+ Text[ korean ] = "중앙 집중 설정으로 연결할 수 없습니다. ";
+ Text[ chinese_simplified ] = "无法和中心é…置建立连接。";
+ Text[ chinese_traditional ] = "無法建立到集中é…ç½®çš„é€£ç·šï¼ ";
+ Text[ turkish ] = "A connection to the central configuration could not be established. ";
+ Text[ arabic ] = "A connection to the central configuration could not be established. ";
+ Text[ catalan ] = "A connection to the central configuration could not be established. ";
+ Text[ thai ] = "A connection to the central configuration could not be established. ";
};
String STR_CONFIG_ERR_RIGHTS_MISSING
{
Text = "Aufgrund fehlender Zugriffsrechte können Sie nicht auf die zentrale Konfiguration zugreifen. " ;
Text[ ENGLISH ] = "You cannot access the central configuration because of missing access rights. " ;
+ Text[ english_us ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ portuguese ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ russian ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ greek ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ dutch ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ french ] = "Accès à la configuration centrale refusé : droits d'accès insuffisants. ";
+ Text[ spanish ] = "No puede acceder a la configuración central por falta de derechos de acceso. ";
+ Text[ finnish ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ italian ] = "Impossibile accedere alla configurazione centrale in quanto mancano i diritti necessari. ";
+ Text[ danish ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ swedish ] = "Du kan inte komma åt den centrala konfigurationen därför att du saknar åtkomsträttigheter. ";
+ Text[ polish ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ japanese ] = "アクセス権ãŒãªã„ãŸã‚ã€å…±é€šè¨­å®šã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“。";
+ Text[ korean ] = "액세스 ê¶Œí•œì´ ì—†ëŠ” ì´ìœ ë¡œ 중앙 집중 설정으로 액세스할 수 없습니다.";
+ Text[ chinese_simplified ] = "因为您缺少存å–æƒåˆ©è€Œæ— æ³•å­˜å–中心é…置数æ®ã€‚";
+ Text[ chinese_traditional ] = "因為缺少存å–權é™ï¼Œæ‚¨ç„¡æ³•å­˜å–集中é…置。 ";
+ Text[ turkish ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ arabic ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ catalan ] = "You cannot access the central configuration because of missing access rights. ";
+ Text[ thai ] = "You cannot access the central configuration because of missing access rights. ";
};
String STR_CONFIG_ERR_LOGIN_FAILED
{
Text = "Die Anmeldung zur zentralen Konfiguration ist fehlgeschlagen. Der Benutzername oder das Kennwort ist falsch. " ;
Text[ ENGLISH ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. " ;
+ Text[ english_us ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ portuguese ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ russian ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ greek ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ dutch ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ french ] = "Échec de connexion à la configuration centrale : le nom d'utilisateur ou le mot de passe n'est pas correct. ";
+ Text[ spanish ] = "Fallo de conexión con la configuración central. El nombre de usuario o la contraseña no son correctos. ";
+ Text[ finnish ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ italian ] = "Il login alla configurazione centrale non è riuscito. Probabile causa: nome utente o password non corretto. ";
+ Text[ danish ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ swedish ] = "Det gick inte att logga in till den centrala konfigurationen. Användarnamnet eller lösenordet är felaktigt. ";
+ Text[ polish ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ japanese ] = "共通設定ã¸ã®ãƒ­ã‚°ã‚¤ãƒ³ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ユーザーåã¾ãŸã¯ãƒ‘スワードã®ã„ãšã‚Œã‹ãŒä¸æ­£ã§ã™ã€‚";
+ Text[ korean ] = "로그ì¸í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì‚¬ìš©ìž ì´ë¦„ ë˜ëŠ” 암호가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤.";
+ Text[ chinese_simplified ] = "您登录中心é…置没有æˆåŠŸã€‚您输入的使用å和密ç æ— æ•ˆã€‚";
+ Text[ chinese_traditional ] = "登入到集中é…ç½®ä¸æˆåŠŸã€‚使用者å稱或密碼無效。 ";
+ Text[ turkish ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ arabic ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ catalan ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
+ Text[ thai ] = "Your login to the central configuration was not successful. Either the user name or password is invalid. ";
};
String STR_CONFIG_ERR_MECHANISM_INVALID
{
Text = "Die gewählte Authentifizierungsmethode für den Zugriff auf die zentrale Konfiguration wird nicht unterstützt. " ;
Text[ ENGLISH ] = "The specified authentication method to access the central configuration is not supported. " ;
+ Text[ english_us ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ portuguese ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ russian ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ greek ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ dutch ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ french ] = "La méthode d'authentification spécifiée pour l'accès à la configuration centrale n'est pas supportée. ";
+ Text[ spanish ] = "El método de autentificación especificado para acceder a la configuración central no está admitido. ";
+ Text[ finnish ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ italian ] = "Il metodo di autenticazione indicato per l'accesso alla configurazione centrale non è supportato. ";
+ Text[ danish ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ swedish ] = "Den valda autentiseringsmetoden för åtkomst till den centrala konfigurationen stöds inte. ";
+ Text[ polish ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ japanese ] = "共通設定ã¸ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«æŒ‡å®šã—ãŸèªè¨¼æ–¹æ³•ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。";
+ Text[ korean ] = "중앙 집중 설정으로 액세스하기 위해 ì§€ì •ëœ ì¸ì¦ ë°©ì‹ì€ 지ì›ë˜ì§€ 않습니다.";
+ Text[ chinese_simplified ] = "ä¸æ”¯æŒç”¨äºŽå­˜å–中心é…置选å–的认è¯æ–¹å¼ã€‚";
+ Text[ chinese_traditional ] = "å­˜å–集中é…置的指定驗證方法ä¸å—支æ´ã€‚ ";
+ Text[ turkish ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ arabic ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ catalan ] = "The specified authentication method to access the central configuration is not supported. ";
+ Text[ thai ] = "The specified authentication method to access the central configuration is not supported. ";
};
String STR_CONFIG_ERR_ACCESS_GENERAL
{
Text = "Ein genereller Fehler ist beim Zugriff auf die zentrale Konfiguration aufgetreten. " ;
Text[ ENGLISH ] = "A general access error occurred while accessing your central configuration. " ;
+ Text[ english_us ] = "A general error occurred while accessing your central configuration. ";
+ Text[ portuguese ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ russian ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ greek ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ dutch ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ french ] = "Une erreur générale s'est produite lors de l'accès à la configuration centrale. ";
+ Text[ spanish ] = "Se produjo un error general mientras se accedía a la configuración central.";
+ Text[ finnish ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ italian ] = "Si è verificato un errore generale di accesso alla configurazione centrale. ";
+ Text[ danish ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ swedish ] = "Det har uppstått ett generellt fel vid försöket att komma åt din centrala konfiguration. ";
+ Text[ polish ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ japanese ] = "共通設定ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ™‚ã«ä¸€èˆ¬çš„ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚";
+ Text[ korean ] = "중앙 집중 설정으로 ì•¡ì„¸ìŠ¤í•˜ë˜ ì¤‘ ì¼ë°˜ì  오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.";
+ Text[ chinese_simplified ] = "在存å–您的中心é…置时å‘生了一般的存å–错误。";
+ Text[ chinese_traditional ] = "å­˜å–集中é…置時發生一般存å–錯誤。 ";
+ Text[ turkish ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ arabic ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ catalan ] = "A general access error occurred while accessing your central configuration. ";
+ Text[ thai ] = "A general access error occurred while accessing your central configuration. ";
};
String STR_CONFIG_ERR_NO_WRITE_ACCESS
{
Text = "Ihre geänderten persönlichen Einstellungen können aufgrund fehlender Zugriffsrechte nicht zentral gespeichert werden. " ;
Text[ ENGLISH ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. " ;
+ Text[ english_us ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ portuguese ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ russian ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ greek ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ dutch ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ french ] = "Stockage central des paramètres personnels modifiés impossible : droits d'accès insuffisants. ";
+ Text[ spanish ] = "Las modificaciones realizadas en la configuración personal no se pueden guardar de manera central por falta de derechos de acceso.";
+ Text[ finnish ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ italian ] = "Impossibile memorizzare i cambiamenti alle impostazioni personalizzate in quanto mancano i diritti di accesso. ";
+ Text[ danish ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ swedish ] = "Det går inte att spara dina ändrade personliga inställningar centralt eftersom åtkomsträttigheter saknas. ";
+ Text[ polish ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ japanese ] = "アクセス権ãŒãªã„ãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šã®å¤‰æ›´å†…容ã¯å…±é€šè¨­å®šã«ä¿å­˜ã•ã‚Œã¾ã›ã‚“。";
+ Text[ korean ] = "액세스 ê¶Œí•œì´ ì—†ëŠ” ì´ìœ ë¡œ ë³€ê²½ëœ ì‚¬ìš©ìž ì„¤ì • ë‚´ìš©ì„ ì¤‘ì•™ì— ì €ìž¥í•  수 없습니다.";
+ Text[ chinese_simplified ] = "因为您缺少存å–æƒåˆ©è€Œæ— æ³•å°†æ›´æ”¹çš„个人数æ®å­˜å…¥ä¸­å¿ƒé…置。";
+ Text[ chinese_traditional ] = "由於缺少存å–權é™ï¼Œå€‹äººè¨­å®šçš„變更無法集中儲存。 ";
+ Text[ turkish ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ arabic ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ catalan ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+ Text[ thai ] = "The changes to your personal settings cannot be stored centrally because of missing access rights. ";
+};
+
+QueryBox QBX_CONFIG_IMPORTSETTINGS
+{
+ Buttons = WB_YES_NO ;
+ DefButton = WB_DEF_YES ;
+ Message = "Auf Ihrem Rechner wurden persönliche %PRODUCTNAME-Einstellungen gefunden. \n"
+ "Möchten Sie diese in die zentrale Konfiguration übertragen, um weiter damit arbeiten zu können?" ;
+ Message[ ENGLISH ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n"
+ "Would you like to transfer those settings to the central configuration in order to continue working with them?" ;
+ Message[ portuguese ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ russian ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ spanish ] = "Se ha detectado una configuración personal de %PRODUCTNAME en el ordenador. \n¿Desea transferir esta configuración a la configuración central para seguir trabajando con ella?";
+ Message[ italian ] = "Sono state rilevate impostazioni personalizzate di %PRODUCTNAME sul vostro computer.\nVolete trasferite le impostazioni alla configurazione centrale per continuare ad utilizzarle?";
+ Message[ swedish ] = "Personliga %PRODUCTNAME-inställningar har hittats på din dator. \nVill du överföra de här inställningarna till den centrala konfigurationen för att fortsätta att arbeta med dem?";
+ Message[ polish ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ portuguese_brazilian ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ japanese ] = "%PRODUCTNAME ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šãŒã‚³ãƒ³ãƒ”ュータã§æ¤œå‡ºã•ã‚Œã¾ã—ãŸã€‚\nã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šã‚’共通設定ã«è»¢é€ã—ã¦ã€ãã®è¨­å®šã‚’使用ã—ã¾ã™ã‹ã€‚";
+ Message[ korean ] = "ì‚¬ìš©ìž ê³ ìœ  %PRODUCTNAME 설정 ë‚´ìš©ì´ ë°œê²¬ë˜ì—ˆìŠµë‹ˆë‹¤.\n ì´ ì„¤ì • ë‚´ìš©ì„ ì¤‘ì•™ 집중 설정으로 전송하면 ì´ ì„¤ì •ìœ¼ë¡œ ê³„ì† ìž‘ì—…í•˜ì‹¤ 수 있습니다. 전송하시겠습니까?";
+ Message[ turkish ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ thai ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ english_us ] = "Personal %PRODUCTNAME settings have been detected on your computer. \nWould you like to transfer those settings to the central configuration in order to continue working with them?";
+ Message[ greek ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ dutch ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ french ] = "Des paramètres personnels %PRODUCTNAME ont été détectés sur votre ordinateur.\nSouhaitez-vous les transférer dans la configuration centrale afin de pouvoir continuer à les appliquer ?";
+ Message[ finnish ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ danish ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ chinese_simplified ] = "å‘现电脑上已有一个个人的 %PRODUCTNAME 设定。\n您è¦å°†è¿™äº›è®¾å®šè½¬ç§»åˆ°ä¸­å¿ƒé…置,以继续使用它?";
+ Message[ chinese_traditional ] = "在您的電腦上åµæ¸¬åˆ°å€‹äººçš„ %PRODUCTNAME 設定。 \nè¦å‚³é€é€™äº›è¨­å®šè‡³é›†ä¸­é…置以繼續使用嗎?";
+ Message[ arabic ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+ Message[ catalan ] = "Personal %PRODUCTNAME settings have been detected on your computer. \n";
+};
+
+String STR_TITLE_CONFIG_MSGBOX
+{
+ Text = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ ENGLISH ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ portuguese ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ russian ] = "%PRODUCTNAME 6.0";
+ Text[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ italian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ swedish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ polish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ portuguese_brazilian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ korean ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ turkish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ thai ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ english_us ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ greek ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ dutch ] = "%PRODUCTNAME %PRODUCTVERSION ";
+ Text[ french ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ finnish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ danish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ arabic ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ catalan ] = "Hint";
};
@@ -796,7 +1073,7 @@ String STR_WARNING_JAVADISABLED
Text[ greek ] = "Java Support Disabled";
Text[ dutch ] = "Java Support Disabled";
Text[ french ] = "Support Java désactivé";
- Text[ spanish ] = "Soporte Java desactivado";
+ Text[ spanish ] = "Admisión de Java desactivada";
Text[ finnish ] = "Java Support Disabled";
Text[ italian ] = "Supporto Java disattivato";
Text[ danish ] = "Java Support Disabled";
@@ -823,7 +1100,7 @@ String STR_WARNING_MISSINGJAVARUNTIME
Text[ greek ] = "Unable to Locate JRE";
Text[ dutch ] = "Unable to Locate JRE";
Text[ french ] = "Impossible de détecter le JRE";
- Text[ spanish ] = "Imposible localizar JRE (Java Runtime Environment)";
+ Text[ spanish ] = "Imposible localizar el JRE (Java Runtime Environment)";
Text[ finnish ] = "Unable to Locate JRE";
Text[ italian ] = "Impossibile trovare JRE (Java Runtime Environment)";
Text[ danish ] = "Unable to Locate JRE";
@@ -921,37 +1198,136 @@ String STR_WARNING_CANNOTSTARTJAVALDX
Text[ thai ] = "Could Not Start Java LDX";
};
+String STR_BOOTSTRAP_ERR_CFG_DATAACCESS
+{
+ Text = "%PRODUCTNAME kann nicht gestartet werden, da beim Zugriff auf die %PRODUCTNAME Konfigurationsdaten ein Fehler aufgetreten ist.\n\nBitte wenden Sie sich an Ihren Systemadministrator." ;
+ Text[ ENGLISH ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator." ;
+ Text[ english_us ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator." ;
+ Text[ portuguese ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ russian ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ spanish ] = "%PRODUCTNAME no se puede iniciar debido a un error producido al acceder a los datos de la configuración de %PRODUCTNAME.\n\nContacte su administrador de sistema.";
+ Text[ italian ] = "Impossibile avviare %PRODUCTNAME a causa di un errore di accesso ai dati di configurazione.\n\nContattate il vostro amministratore di sistema.";
+ Text[ swedish ] = "%PRODUCTNAME kunde inte startas därför att det inte går att komma åt %PRODUCTNAME-konfigurationsdata.\n\nVänd dig till din systemadministratör.";
+ Text[ polish ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ portuguese_brazilian ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ japanese ] = "%PRODUCTNAME 設定データã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«ã‚¨ãƒ©ãƒ¼ãŒç”Ÿã˜ãŸãŸã‚ã€%PRODUCTNAME ã‚’èµ·å‹•ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。\n\nシステム管ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。";
+ Text[ korean ] = "%PRODUCTNAMEì˜ ì„¤ì • ë°ì´í„°ì— 액세스 하는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. %PRODUCTNAMEì„(를) 시작할 수 없습니다.\n\n시스템 관리ìžì—게 문ì˜í•˜ì‹­ì‹œì˜¤.";
+ Text[ turkish ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ thai ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ greek ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ dutch ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ french ] = "Impossible de démarrer %PRODUCTNAME : une erreur s'est produite lors de l'accès aux données de configuration %PRODUCTNAME.\n\nVeuillez contacter votre administrateur système.";
+ Text[ finnish ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ danish ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ chinese_simplified ] = "%PRODUCTNAME 无法å¯åŠ¨ï¼ŒåŽŸå› æ˜¯å­˜å– %PRODUCTNAME é…置数æ®æ—¶å‘生错误。\n\n请您与系统管ç†å‘˜è”系。";
+ Text[ chinese_traditional ] = "ç”±æ–¼å­˜å– %PRODUCTNAME é…置資料的錯誤,無法啟動 %PRODUCTNAME。\n\n請和系統管ç†å“¡è¯çµ¡ã€‚";
+ Text[ arabic ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+ Text[ catalan ] = "%PRODUCTNAME cannot be started due to an error in accessing the %PRODUCTNAME configuration data.\n\nPlease contact your system administrator.";
+};
+
+String STR_INTERNAL_ERRMSG
+{
+ Text = "Folgender interner Fehler ist aufgetreten: " ;
+ Text[ ENGLISH ] = "The following internal error has occured: " ;
+ Text[ english_us ] = "The following internal error has occurred: " ;
+ Text[ portuguese ] = "The following internal error has occured: ";
+ Text[ russian ] = "The following internal error has occured: ";
+ Text[ spanish ] = "Se ha producido el error interno siguiente: ";
+ Text[ italian ] = "Si è verficato il seguente errore interno: ";
+ Text[ swedish ] = "Följande interna fel har uppstått: ";
+ Text[ polish ] = "The following internal error has occured: ";
+ Text[ portuguese_brazilian ] = "The following internal error has occured: ";
+ Text[ japanese ] = "次ã®å†…部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ: ";
+ Text[ korean ] = "다ìŒê³¼ ê°™ì€ ë‚´ë¶€ì  ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤:";
+ Text[ turkish ] = "The following internal error has occured: ";
+ Text[ thai ] = "The following internal error has occured: ";
+ Text[ greek ] = "The following internal error has occured: ";
+ Text[ dutch ] = "The following internal error has occured: ";
+ Text[ french ] = "Erreur interne : ";
+ Text[ finnish ] = "The following internal error has occured: ";
+ Text[ danish ] = "The following internal error has occured: ";
+ Text[ chinese_simplified ] = "å‘生了以下的内部错误:";
+ Text[ chinese_traditional ] = "發生以下內部錯誤: ";
+ Text[ arabic ] = "The following internal error has occured: ";
+ Text[ catalan ] = "The following internal error has occured: ";
+};
+
QueryBox QBX_USERDATALOCKED
{
Buttons = WB_YES_NO ;
DefButton = WB_DEF_NO ;
- Message =
- "Eine andere Instanz von %PRODUCTNAME greift auf Ihre persönlichen Einstellungen zu\n"\
- "oder hat diese nicht wieder freigegeben.\n"\
- "Der gleichzeitige Zugriff kann zu Inkonsistenzen in Ihren persönlichen Einstellungen führen.\n"\
- "Bevor Sie Fortfahren sollten Sie sicher stellen, dass %PRODUCTNAME auf dem Host '$h' vom\n"\
- "Benutzer '$u' beendet wird.\n"\
- "\n"\
- "Möchten Sie wirklich fortfahren?";
- Message[ ENGLISH ] =
- "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal\n"\
- "settings are locked.\n"\
- "Simultaneous access can lead to inconsistencies in your personal settings. Before continuing,\n"\
- "you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n"\
- "\n"\
- "Do you really want to continue?";
+ Message = "Eine andere Instanz von %PRODUCTNAME greift auf Ihre persönlichen Einstellungen zu "
+ "oder hat diese nicht wieder freigegeben.\n"
+ "Der gleichzeitige Zugriff kann zu Inkonsistenzen in Ihren persönlichen Einstellungen führen. "
+ "Bevor Sie Fortfahren sollten Sie sicher stellen, dass %PRODUCTNAME auf dem Host '$h' vom "
+ "Benutzer '$u' beendet wird.\n"
+ "\n"
+ "Möchten Sie wirklich fortfahren?";
+ Message[ ENGLISH ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal "
+ "settings are locked.\n"
+ "Simultaneous access can lead to inconsistencies in your personal settings. "
+ "Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n"
+ "\n"
+ "Do you really want to continue?";
+ Message[ english_us ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ portuguese ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ russian ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ greek ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ dutch ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ french ] = "Une autre instance de %PRODUCTNAME a accès à vos paramètres personnels ou les bloque.\nUn accès simultané peut provoquer des incohérences dans vos paramètres personnels. Avant de continuer, assurez-vous que l'utilisateur '$u' quitte bien %PRODUCTNAME sur l'hôte '$h'.\n\nÊtes-vous sûr de vouloir continuer ?";
+ Message[ spanish ] = "Otra instancia de %PRODUCTNAME está accediendo a su configuración personal o la configuración personal está bloqueada.\nUn acceso simultáneo puede provocar incoherencias en la configuración personal. Antes de continuar asegúrese de que el usuario '$u' cierre %PRODUCTNAME en el ordenador '$h'.\n\n¿Está seguro de desear continuar?";
+ Message[ finnish ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ italian ] = "Un'altra istanza di %PRODUCTNAME ha accesso alle impostazioni personalizzate oppure le impostazioni personalizzate sono bloccate.\\L'accesso simultaneo può causare incongruenze alle impostazioni. Prima di procedere assicuratevi che l'utente '$u' chiuda %PRODUCTNAME sul computer host '$h'.\n\nVolete procedere comunque?";
+ Message[ danish ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ swedish ] = "Antingen har en annan instans av %PRODUCTNAME tillgång till dina personliga inställningar eller så har den inte frigjort dem igen.\nSamtidig åtkomst kan leda till att dina personliga inställningar blir inkonsekventa. Innan du fortsätter bör du se till att användaren '$u' stänger %PRODUCTNAME på värden '$h'.\n\nVill du verkligen fortsätta?";
+ Message[ polish ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ portuguese_brazilian ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ japanese ] = "%PRODUCTNAME ã®åˆ¥ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„ã‚‹ã‹ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šãŒãƒ­ãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™ã€‚\nアクセスãŒåŒæ™‚ã«è¡Œã‚ã‚Œã¦ã„ã‚‹ã¨ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨­å®šã«ä¸ä¸€è‡´ãŒç”Ÿã˜ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚続行ã™ã‚‹å‰ã«ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã€Œ$uã€ãŒãƒ›ã‚¹ãƒˆã€Œ$hã€ã® %PRODUCTNAME ã‚’é–‰ã˜ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。\n\n処ç†ã‚’続行ã—ã¾ã™ã‹ã€‚";
+ Message[ korean ] = "%PRODUCTNAMEì˜ ë‹¤ë¥¸ ì¸ìŠ¤í„´ìŠ¤ê°€ ì‚¬ìš©ìž ìž„ì˜ ì„¤ì •ì— ì•¡ì„¸ìŠ¤ 중ì´ê±°ë‚˜ ì„¤ì •ì´ ìž ê²¨ìžˆìŠµë‹ˆë‹¤.\në™ì‹œ 다발ì ì¸ 액세스로 ì¸í•˜ì—¬ ì‚¬ìš©ìž ìž„ì˜ ì„¤ì • ë‚´ìš©ì˜ ì¼ê´€ì„±ì— 문제가 ìƒê¸¸ 수 있습니다. ê³„ì† ì‹¤í–‰í•˜ê¸° ì „ì— ì‚¬ìš©ìž '$u'ê°€(ì´) %PRODUCTNAMEì„(를) '$h' 호스트로 닫는 지를 확ì¸í•˜ì…”야 합니다.\n\nê³„ì† ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?";
+ Message[ chinese_simplified ] = "%PRODUCTNAME çš„å¦å¤–一个实例正在存å–您的个人设定或没有释放您的设定。\nåŒæ—¶å­˜å–个人设定会造æˆæ•°æ®çš„ä¸ç»Ÿä¸€ã€‚请您确定使用者 '$u' 关闭主机 '$h' 上è¿è¡Œçš„ %PRODUCTNAME 。\n\n您真的继续?";
+ Message[ chinese_traditional ] = "å¯èƒ½æœ‰å¦ä¸€å€‹ %PRODUCTNAME 正在存å–您的個人設定,或個人設定被鎖定。\nåŒæ™‚å­˜å–å¯èƒ½æœƒå°Žè‡´å€‹äººè¨­å®šçš„ä¸ä¸€è‡´ã€‚在繼續å‰ï¼Œæ‡‰è©²ç¢ºèªä½¿ç”¨è€… '$u' 關閉了主機 '$h' 上的 %PRODUCTNAME。\n\n真的è¦ç¹¼çºŒï¼Ÿ";
+ Message[ turkish ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ arabic ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ catalan ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
+ Message[ thai ] = "Either another instance of %PRODUCTNAME is accessing your personal settings or your personal settings are locked.\nSimultaneous access can lead to inconsistencies in your personal settings. Before continuing, you should make sure user '$u' closes %PRODUCTNAME on host '$h'.\n\nDo you really want to continue?";
};
String STR_TITLE_USERDATALOCKED
{
- Text = "%PRODUCTNAME %PRODUCTVERSION";
- Text[ ENGLISH ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ portuguese ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ russian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ greek ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ dutch ] = "%PRODUCTNAME %PRODUCTVERSION ";
+ Text[ french ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ finnish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ italian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ danish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ swedish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ polish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ portuguese_brazilian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ korean ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ turkish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ arabic ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ catalan ] = "Hint";
+ Text[ thai ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ english_us ] = "%PRODUCTNAME %PRODUCTVERSION";
+};
+
+InfoBox INFOBOX_CMDLINEHELP
+{
+ Buttons = WB_OK ;
+ DefButton = WB_DEF_OK ;
+ Message = "";
};
ModalDialog DLG_CMDLINEHELP
{
Text = "Help Message...";
- Size = MAP_APPFONT(250, 320);
+ Size = MAP_APPFONT(250, 335);
Border = True;
SVLook = True;
Moveable = True;
@@ -964,27 +1340,63 @@ ModalDialog DLG_CMDLINEHELP
};
FixedText TXT_DLG_CMDLINEHELP_LEFT
{
- Size = MAP_APPFONT(50, 145);
- Pos = MAP_APPFONT(5, 55);
+ Size = MAP_APPFONT(50, 150);
+ Pos = MAP_APPFONT(5, 50);
Text = "LEFT";
};
FixedText TXT_DLG_CMDLINEHELP_RIGHT
{
- Size = MAP_APPFONT(190, 145);
- Pos = MAP_APPFONT(60, 55);
+ Size = MAP_APPFONT(190, 150);
+ Pos = MAP_APPFONT(60, 50);
Text = "RIGHT";
};
FixedText TXT_DLG_CMDLINEHELP_BOTTOM
{
- Size = MAP_APPFONT(240, 100);
- Pos = MAP_APPFONT(5, 195);
+ Size = MAP_APPFONT(240, 105);
+ Pos = MAP_APPFONT(5, 200);
Text = "BOTTOM";
};
OKButton BTN_DLG_CMDLINEHELP_OK
{
Size = MAP_APPFONT ( 50 , 14 ) ;
- Pos = MAP_APPFONT(95, 300);
+ Pos = MAP_APPFONT(95, 315);
TabStop = TRUE ;
DefButton = TRUE ;
};
};
+
+InfoBox INFOBOX_EXPIRED
+{
+ Buttons = WB_OK ;
+ DefButton = WB_DEF_OK ;
+ Message = "Diese Evaluationsversion ist abgelaufen. Informationen rund um %PRODUCTNAME\nerhalten Sie unter www.sun.com/%PRODUCTNAME.";
+ Message[ ENGLISH ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ english_us ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ french ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ spanish ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ italian ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ swedish ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ japanese ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ korean ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ chinese_simplified ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message[ chinese_traditional ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+};
+
+String STR_TITLE_EXPIRED
+{
+ Text = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ ENGLISH ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ english_us ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ french ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ italian ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ swedish ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ japanese ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ korean ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_simplified ] = "%PRODUCTNAME %PRODUCTVERSION";
+ Text[ chinese_traditional ] = "%PRODUCTNAME %PRODUCTVERSION";
+};
+
+
+
+
diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx
index 051ec0c6e6..d446ab5887 100644
--- a/desktop/source/app/dispatchwatcher.cxx
+++ b/desktop/source/app/dispatchwatcher.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dispatchwatcher.cxx,v $
*
- * $Revision: 1.13 $
+ * $Revision: 1.14 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 10:04:47 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -71,6 +71,12 @@
#include <comphelper/processfactory.hxx>
#endif
+#ifndef _COM_SUN_STAR_UTIL_XCLOSEABLE_HPP_
+#include <com/sun/star/util/XCloseable.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_CLOSEVETOEXCEPTION_HPP_
+#include <com/sun/star/util/CloseVetoException.hpp>
+#endif
#ifndef _COM_SUN_STAR_TASK_XINTERACTIONHANDLER_HPP_
#include <com/sun/star/task/XInteractionHandler.hpp>
#endif
@@ -304,7 +310,7 @@ void DispatchWatcher::executeDispatchRequests( const DispatchList& aDispatchRequ
{
INetURLObject aObj( aName );
if ( aObj.GetProtocol() == INET_PROT_PRIVATE )
- aTarget = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") );
+ aTarget = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_default") );
// Set "AsTemplate" argument according to request type
if ( aDispatchRequest.aRequestType == REQUEST_FORCENEW ||
@@ -364,9 +370,21 @@ void DispatchWatcher::executeDispatchRequests( const DispatchList& aDispatchRequ
}
// remove the document
- Reference < XComponent > xComp( xDoc, UNO_QUERY );
- if ( xComp.is() )
- xComp->dispose();
+ try
+ {
+ Reference < XCloseable > xClose( xDoc, UNO_QUERY );
+ if ( xClose.is() )
+ xClose->close( sal_True );
+ else
+ {
+ Reference < XComponent > xComp( xDoc, UNO_QUERY );
+ if ( xComp.is() )
+ xComp->dispose();
+ }
+ }
+ catch ( com::sun::star::util::CloseVetoException& )
+ {
+ }
// request is completed
OfficeIPCThread::RequestsCompleted( 1 );
diff --git a/desktop/source/app/intro.cxx b/desktop/source/app/intro.cxx
index d4833b7770..6a0953a237 100644
--- a/desktop/source/app/intro.cxx
+++ b/desktop/source/app/intro.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: intro.cxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 10:06:07 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -84,11 +84,6 @@ void IntroWindow_Impl::Init()
Size aSize = m_aIntroBmp.GetSizePixel();
SetOutputSizePixel( aSize );
- Size aScreenSize( GetDesktopRectPixel().GetSize() );
- Size aWinSize( GetSizePixel() );
- Point aWinPos( ( aScreenSize.Width() - aWinSize.Width() ) / 2,
- ( aScreenSize.Height() - aWinSize.Height() ) / 2 );
- SetPosPixel( aWinPos );
if ( GetColorCount() >= 16 )
{
@@ -119,7 +114,7 @@ IMPL_LINK( IntroWindow_Impl, AppEventListenerHdl, VclWindowEvent *, inEvent )
// -----------------------------------------------------------------------
IntroWindow_Impl::IntroWindow_Impl( const Bitmap& aIntroBitmap ) :
- WorkWindow( NULL, (WinBits)0 ),
+ IntroWindow(),
m_aIntroBmp( aIntroBitmap )
{
RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::IntroWindow_Impl::IntroWindowImpl" );
diff --git a/desktop/source/app/intro.hxx b/desktop/source/app/intro.hxx
index 3ebb8b3b8e..8251b96623 100644
--- a/desktop/source/app/intro.hxx
+++ b/desktop/source/app/intro.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: intro.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 10:06:07 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,7 +64,7 @@
// include ---------------------------------------------------------------
#ifndef _SV_WRKWIN_HXX
-#include <vcl/wrkwin.hxx>
+#include <vcl/introwin.hxx>
#endif
#ifndef _SV_BITMAP_HXX
#include <vcl/bitmap.hxx>
@@ -74,7 +74,7 @@
namespace desktop
{
-class IntroWindow_Impl : public WorkWindow
+class IntroWindow_Impl : public IntroWindow
{
private:
Bitmap m_aIntroBmp;
diff --git a/desktop/source/app/lockfile.cxx b/desktop/source/app/lockfile.cxx
index 847b3598ba..7e2a2f9f9d 100644
--- a/desktop/source/app/lockfile.cxx
+++ b/desktop/source/app/lockfile.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: lockfile.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: lo $ $Date: 2002-11-06 14:44:49 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -107,7 +107,7 @@ namespace desktop {
int tmpByte = 0;
for (int i = 0; i<nIdBytes; i++) {
tmpByte = rand( ) % 0xFF;
- sprintf( tmpId+i*2, "%02X", tmpByte );
+ sprintf( tmpId+i*2, "%02X", tmpByte ); // #100211# - checked
}
tmpId[nIdBytes*2]=0x00;
m_aId = OUString::createFromAscii( tmpId );
@@ -134,7 +134,7 @@ namespace desktop {
if (m_bIsLocked) {
// lock existed, ask user what to do
- if (execWarning( ) == RET_YES) {
+ if (isStale() || execWarning( ) == RET_YES) {
// remove file and create new
File::remove( m_aLockname );
File aFile(m_aLockname);
@@ -154,6 +154,32 @@ namespace desktop {
}
}
+ sal_Bool Lockfile::isStale( void ) const
+ {
+ // this checks whether the lockfile was created on the same
+ // host by the same user. Should this be the case it is safe
+ // to assume that it is a stale lookfile which can be overwritten
+ String aLockname = m_aLockname;
+ Config aConfig(aLockname);
+ aConfig.SetGroup(m_aGroup);
+ ByteString aHost = aConfig.ReadKey( m_aHostkey );
+ ByteString aUser = aConfig.ReadKey( m_aUserkey );
+ // lockfile from same host?
+ oslSocketResult sRes;
+ ByteString myHost = OUStringToOString(
+ SocketAddr::getLocalHostname( &sRes ), RTL_TEXTENCODING_ASCII_US );
+ if (aHost == myHost) {
+ // lockfile by same UID
+ OUString myUserName;
+ Security aSecurity;
+ aSecurity.getUserName( myUserName );
+ ByteString myUser = OUStringToOString( myUserName, RTL_TEXTENCODING_ASCII_US );
+ if (aUser == myUser)
+ return sal_True;
+ }
+ return sal_False;
+ }
+
void Lockfile::syncToFile( void ) const
{
String aLockname = m_aLockname;
diff --git a/desktop/source/app/lockfile.hxx b/desktop/source/app/lockfile.hxx
index 90fd9f8403..3da44994cb 100644
--- a/desktop/source/app/lockfile.hxx
+++ b/desktop/source/app/lockfile.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: lockfile.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: lo $ $Date: 2002-11-06 14:44:48 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:16 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -113,6 +113,7 @@ namespace desktop {
// access to data in file
void syncToFile(void) const;
short execWarning(void) const;
+ sal_Bool isStale(void) const;
};
}
diff --git a/desktop/source/app/makefile.mk b/desktop/source/app/makefile.mk
index a8a5593ea1..8a248f2480 100644
--- a/desktop/source/app/makefile.mk
+++ b/desktop/source/app/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.21 $
+# $Revision: 1.22 $
#
-# last change: $Author: cd $ $Date: 2002-11-01 14:49:58 $
+# last change: $Author: hr $ $Date: 2003-03-25 13:51:16 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -74,65 +74,41 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : $(UPD)minor.mk
RSCUPDVER=$(RSCREVISION)(SV$(UPD)$(UPDMINOR))
-.IF "$(BUILD_SOSL)" == ""
- CDEFS += "-DTIMEBOMB"
-.ELSE
- CDEFS += "-DBUILD_SOSL"
-.ENDIF
# --- Files --------------------------------------------------------
OBJFILES = \
- $(OBJ)$/app.obj \
- $(OBJ)$/lockfile.obj \
- $(OBJ)$/intro.obj \
- $(OBJ)$/officeipcthread.obj \
- $(OBJ)$/appinit.obj \
- $(OBJ)$/cmdlineargs.obj \
- $(OBJ)$/pluginacceptthread.obj \
- $(OBJ)$/officeacceptthread.obj \
- $(OBJ)$/oinstanceprovider.obj \
- $(OBJ)$/opluginframefactory.obj \
- $(OBJ)$/appsys.obj \
- $(OBJ)$/desktopresid.obj \
- $(OBJ)$/dispatchwatcher.obj \
- $(OBJ)$/ssodlg.obj \
- $(OBJ)$/ssoinit.obj \
- $(OBJ)$/configinit.obj \
- $(OBJ)$/officeipcmanager.obj \
+ $(OBJ)$/app.obj \
+ $(OBJ)$/copyright_ascii_sun.obj \
+ $(OBJ)$/copyright_ascii_ooo.obj \
+ $(OBJ)$/lockfile.obj \
+ $(OBJ)$/intro.obj \
+ $(OBJ)$/officeipcthread.obj \
+ $(OBJ)$/appinit.obj \
+ $(OBJ)$/cmdlineargs.obj \
+ $(OBJ)$/oinstanceprovider.obj \
+ $(OBJ)$/opluginframefactory.obj \
+ $(OBJ)$/appsys.obj \
+ $(OBJ)$/desktopresid.obj \
+ $(OBJ)$/dispatchwatcher.obj \
+ $(OBJ)$/ssodlg.obj \
+ $(OBJ)$/ssoinit.obj \
+ $(OBJ)$/configinit.obj \
$(OBJ)$/javainteractionhandler.obj \
- $(OBJ)$/oempreload.obj \
- $(OBJ)$/testtool.obj \
- $(OBJ)$/checkinstall.obj
-
-.IF "$(OS)" == "SOLARIS"
-
-SLOFILES = \
- $(SLO)$/app.obj \
- $(SLO)$/intro.obj \
- $(SLO)$/officeipcthread.obj \
- $(SLO)$/appinit.obj \
- $(SLO)$/cmdlineargs.obj \
- $(SLO)$/pluginacceptthread.obj \
- $(SLO)$/officeacceptthread.obj \
- $(SLO)$/oinstanceprovider.obj \
- $(SLO)$/opluginframefactory.obj \
- $(SLO)$/appsys.obj \
- $(SLO)$/desktopresid.obj \
- $(SLO)$/dispatchwatcher.obj \
- $(SLO)$/ssodlg.obj \
- $(SLO)$/ssoinit.obj \
- $(SLO)$/configinit.obj \
- $(SLO)$/officeipcmanager.obj \
- $(SLO)$/javainteractionhandler.obj \
- $(SLO)$/lockfile.obj \
- $(SLO)$/oempreload.obj \
- $(SLO)$/testtool.obj \
- $(SLO)$/checkinstall.obj
+ $(OBJ)$/oempreload.obj \
+ $(OBJ)$/testtool.obj \
+ $(OBJ)$/checkinstall.obj \
+ $(OBJ)$/cmdlinehelp.obj
+.IF "$(GUI)" == "UNX"
+.IF "$(OS)" != "MACOSX"
+OBJFILES+= $(OBJ)$/icon_resource_ooo.obj \
+ $(OBJ)$/icon_resource_sun.obj
+.ENDIF
.ENDIF
-SRC1FILES= desktop.src
+SRC1FILES= desktop.src \
+ ssodlg.src
SRS1NAME= desktop
# --- Targets ------------------------------------------------------
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index ca9520e4b5..5bc2942a1b 100644
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: officeipcthread.cxx,v $
*
- * $Revision: 1.27 $
+ * $Revision: 1.28 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 14:58:42 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,13 +65,6 @@
#include "dispatchwatcher.hxx"
#include <stdio.h>
-#ifdef SOLARIS
-#include "officeipcmanager.hxx"
-#ifndef _VOS_SECURITY_HXX_
-#include <vos/security.hxx>
-#endif
-#endif
-
#ifndef _VOS_PROCESS_HXX_
#include <vos/process.hxx>
#endif
@@ -93,54 +86,39 @@
#ifndef _OSL_CONDITN_HXX_
#include <osl/conditn.hxx>
#endif
-#ifdef DEBUG
-#include <assert.h>
-#endif
#ifndef INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
#include <svtools/moduleoptions.hxx>
#endif
using namespace vos;
using namespace rtl;
+using namespace desktop;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::frame;
-/* SHAME!!!
-#define TERMINATION_SEQUENCE "InternalIPC::TerminateThread"
-#define TERMINATION_LENGTH 28
-#define SHOW_SEQUENCE "-show"
-#define SHOW_LENGTH 5
-*/
-
-namespace desktop
-{
+const char *OfficeIPCThread::sc_aTerminationSequence = "InternalIPC::TerminateThread";
+const int OfficeIPCThread::sc_nTSeqLength = 28;
+const char *OfficeIPCThread::sc_aShowSequence = "-show";
+const int OfficeIPCThread::sc_nShSeqLength = 5;
+const char *OfficeIPCThread::sc_aConfirmationSequence = "InternalIPC::ProcessingDone";
+const int OfficeIPCThread::sc_nCSeqLength = 27;
// Type of pipe we use
enum PipeMode
{
PIPEMODE_DONTKNOW,
PIPEMODE_CREATED,
-#ifdef SOLARIS
- PIPEMODE_CONNECTED_TO_PARENT,
-#endif
PIPEMODE_CONNECTED
};
-String GetURL_Impl( const String& rName );
-
-const char *OfficeIPCThread::sc_aTerminationSequence = "InternalIPC::TerminateThread";
-const int OfficeIPCThread::sc_nTSeqLength = 28;
-const char *OfficeIPCThread::sc_aShowSequence = "-show";
-const int OfficeIPCThread::sc_nShSeqLength = 5;
-const char *OfficeIPCThread::sc_aConfirmationSequence = "InternalIPC::ProcessingDone";
-const int OfficeIPCThread::sc_nCSeqLength = 27;
+namespace desktop
+{
+String GetURL_Impl( const String& rName );
OfficeIPCThread* OfficeIPCThread::pGlobalOfficeIPCThread = 0;
-#ifndef SOLARIS
OSecurity OfficeIPCThread::maSecurity;
-#endif
::osl::Mutex* OfficeIPCThread::pOfficeIPCThreadMutex = 0;
@@ -329,174 +307,6 @@ void OfficeIPCThread::RequestsCompleted( int nCount )
}
}
-#ifdef SOLARIS
-OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread(
- sal_Bool useParent )
-{
- ::osl::MutexGuard aGuard( GetMutex() );
-
- if( pGlobalOfficeIPCThread )
- return IPC_STATUS_OK;
-
- ::rtl::OUString aOfficeInstallPath;
- ::rtl::OUString aUserInstallPath;
- ::rtl::OUString aLastIniFile;
- ::rtl::OUString aDummy;
-
- ::vos::OStartupInfo aInfo;
- OfficeIPCThread* pThread = new OfficeIPCThread;
-
- pThread->maPipeIdent = OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "SingleOfficeIPC_" ) );
-
- // The name of the named pipe is created with the hashcode of the user
- // installation directory (without /user). We have to retrieve
- // this information from a unotools implementation.
- ::utl::Bootstrap::PathStatus aLocateResult =
- ::utl::Bootstrap::locateUserInstallation( aUserInstallPath );
- if ( aLocateResult == ::utl::Bootstrap::PATH_EXISTS )
- aDummy = aUserInstallPath;
- else
- {
- delete pThread;
- return IPC_STATUS_BOOTSTRAP_ERROR;
- }
-
- // Try to determine if we are the first office or not! This should prevent
- // multiple access to the user directory !
- // First we try to create our pipe if this fails we try to connect. We have
- // to do this in a loop because the the other office can crash or shutdown
- // between createPipe and connectPipe!!
- pThread->maPipeIdent = pThread->maPipeIdent +
- OUString::valueOf( (sal_Int32)aDummy.hashCode() );
-
- PipeMode nPipeMode = PIPEMODE_DONTKNOW;
- // Warning: Temporarily removed loop below until I have a better mechanism
- // Try to create pipe
- if ( pThread->maPipe.create(
- pThread->maPipeIdent.getStr(),
- OPipe::TOption_Open,
- OSecurity() ) )
- {
- nPipeMode = PIPEMODE_CONNECTED;
- }
- else if ( useParent && OfficeIPCManager::ParentExists() )
- {
- nPipeMode = PIPEMODE_CONNECTED_TO_PARENT;
- }
- else if( pThread->maPipe.create(
- pThread->maPipeIdent.getStr(),
- OPipe::TOption_Create,
- OSecurity() ) )
- {
- nPipeMode = PIPEMODE_CREATED;
- }
-
- if ( nPipeMode == PIPEMODE_CREATED )
- {
- // Seems we are the one and only, so start listening thread
- pGlobalOfficeIPCThread = pThread;
- pThread->create(); // starts thread
- }
- else
- {
- // Seems another office is running. Pipe arguments to it and self
- // terminate
- pThread->maStreamPipe = pThread->maPipe;
-
- sal_Bool bWaitBeforeClose = sal_False;
- ByteString aArguments;
- ULONG nCount = aInfo.getCommandArgCount();
-
- if ( nCount > 0 )
- {
- sal_Bool bPrintTo = sal_False;
- OUString aPrintToCmd( RTL_CONSTASCII_USTRINGPARAM( "-pt" ));
- for( ULONG i=0; i < nCount; i++ )
- {
- aInfo.getCommandArg( i, aDummy );
- // Make absolute pathes from relative ones!
- // It's neccessary to use current working directory of THESE
- // office instance and not of
- // currently running once, which get these information by using
- // pipe.
- // Otherwhise relativ pathes are not right for his environment ...
- if( aDummy.indexOf('-',0) != 0 )
- {
- bWaitBeforeClose = sal_True;
- if ( !bPrintTo )
- aDummy = GetURL_Impl( aDummy );
- bPrintTo = sal_False;
- }
- else if ( aDummy == OfficeIPCManager::GetDisplayArgument() )
- {
- i ++;
- nCount -= 2;
- continue;
- }
- else if ( aDummy == OfficeIPCManager::GetMasterArgument() )
- {
- continue;
- }
- else
- {
- if ( aDummy.equalsIgnoreAsciiCase( aPrintToCmd ))
- bPrintTo = sal_True;
- else
- bPrintTo = sal_False;
- }
-
- aArguments += ByteString( String( aDummy ),
- osl_getThreadTextEncoding() );
- aArguments += '|';
- }
- }
-
- if ( nCount == 0 )
- {
- // Use default argument so the first office can distinguish between
- // a real second
- // office and another program that check the existence of the the
- // pipe!!
-
- aArguments += ByteString( "-show" );
- }
-
- if ( nPipeMode == PIPEMODE_CONNECTED_TO_PARENT )
- {
- OfficeIPCManager::SendParentRequest( aArguments.GetBuffer(),
- aArguments.Len() );
- }
- else
- {
- pThread->maStreamPipe.write( aArguments.GetBuffer(),
- aArguments.Len() );
-
- // write a NULL byte onto the pipe to mark end of transfer
- pThread->maStreamPipe.write( "\0", 1 );
-
- // wait for confirmation #95361# #95425#
- ByteString aToken(sc_aConfirmationSequence);
- char *aReceiveBuffer = new char[aToken.Len()+1];
- int n = pThread->maStreamPipe.read( aReceiveBuffer, aToken.Len() );
- aReceiveBuffer[n]='\0';
- delete pThread;
- if (aToken.CompareTo(aReceiveBuffer)!= COMPARE_EQUAL) {
- // something went wrong
- return IPC_STATUS_BOOTSTRAP_ERROR;
- } else {
- delete aReceiveBuffer;
- return IPC_STATUS_2ND_OFFICE;
- }
-
- }
- delete pThread;
- return IPC_STATUS_2ND_OFFICE;
- }
- return IPC_STATUS_OK;
-}
-#else // SOLARIS
OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
{
::osl::MutexGuard aGuard( GetMutex() );
@@ -615,8 +425,6 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
}
// finaly, write the string onto the pipe
pThread->maStreamPipe.write( aArguments.GetBuffer(), aArguments.Len() );
-
- // write a NULL byte onto the pipe to mark end of transfer
pThread->maStreamPipe.write( "\0", 1 );
// wait for confirmation #95361# #95425#
@@ -624,13 +432,13 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
char *aReceiveBuffer = new char[aToken.Len()+1];
int n = pThread->maStreamPipe.read( aReceiveBuffer, aToken.Len() );
aReceiveBuffer[n]='\0';
- delete pThread;
+ delete pThread;
if (aToken.CompareTo(aReceiveBuffer)!= COMPARE_EQUAL) {
// something went wrong
delete aReceiveBuffer;
return IPC_STATUS_BOOTSTRAP_ERROR;
- } else {
+ } else {
delete aReceiveBuffer;
return IPC_STATUS_2ND_OFFICE;
}
@@ -638,8 +446,6 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
return IPC_STATUS_OK;
}
-#endif // SOLARIS
-
void OfficeIPCThread::DisableOfficeIPCThread()
{
@@ -652,12 +458,8 @@ void OfficeIPCThread::DisableOfficeIPCThread()
// send thread a termination message
// this is done so the subsequent join will not hang
// because the thread hangs in accept of pipe
-#ifdef SOLARIS
- OPipe Pipe( pGlobalOfficeIPCThread->maPipeIdent, OPipe::TOption_Open, OSecurity() );
-#else
OPipe Pipe( pGlobalOfficeIPCThread->maPipeIdent, OPipe::TOption_Open, maSecurity );
-#endif
- // Pipe.send( TERMINATION_SEQUENCE, TERMINATION_LENGTH );
+ //Pipe.send( TERMINATION_SEQUENCE, TERMINATION_LENGTH );
Pipe.send( sc_aTerminationSequence, sc_nTSeqLength+1 ); // also send 0-byte
// close the pipe so that the streampipe on the other
@@ -712,13 +514,13 @@ void SAL_CALL OfficeIPCThread::run()
OPipe::TPipeError
nError = maPipe.accept( maStreamPipe );
+
if( nError == OStreamPipe::E_None )
{
osl::ClearableMutexGuard aGuard( GetMutex() );
-
ByteString aArguments;
// test byte by byte
- const int nBufSz = 2048;
+ const int nBufSz = 2048;
char pBuf[nBufSz];
int nBytes = 0;
int nResult = 0;
@@ -730,20 +532,19 @@ void SAL_CALL OfficeIPCThread::run()
break;
}
}
+ // don't close pipe ...
// #90717# Is this a lookup message from another application? if so, ignore
if ( aArguments.Len() == 0 )
continue;
// is this a termination message ? if so, terminate
- if(( aArguments.CompareTo( sc_aTerminationSequence,
- sc_nTSeqLength ) == COMPARE_EQUAL ) ||
- mbBlockRequests )
- return;
-
- String aEmpty;
- CommandLineArgs aCmdLineArgs( OUString( aArguments.GetBuffer(), aArguments.Len(), gsl_getSystemTextEncoding() ));
- CommandLineArgs* pCurrentCmdLineArgs = Desktop::GetCommandLineArgs();
+ if(( aArguments.CompareTo( sc_aTerminationSequence, sc_nTSeqLength ) == COMPARE_EQUAL ) ||
+ mbBlockRequests ) return;
+ String aEmpty;
+ CommandLineArgs aCmdLineArgs( OUString( aArguments.GetBuffer(),
+ aArguments.Len(), gsl_getSystemTextEncoding() ));
+ CommandLineArgs *pCurrentCmdLineArgs = Desktop::GetCommandLineArgs();
if ( aCmdLineArgs.IsQuickstart() )
{
@@ -754,12 +555,39 @@ void SAL_CALL OfficeIPCThread::run()
ImplPostForeignAppEvent( pAppEvent );
}
+ // handle request for acceptor
+ sal_Bool bAcceptorRequest = sal_False;
+ OUString aAcceptString;
+ if ( aCmdLineArgs.GetAcceptString(aAcceptString) ) {
+ ApplicationEvent* pAppEvent =
+ new ApplicationEvent( aEmpty, aEmpty,
+ "ACCEPT", aAcceptString );
+ ImplPostForeignAppEvent( pAppEvent );
+ bAcceptorRequest = sal_True;
+ }
+ // handle acceptor removal
+ OUString aUnAcceptString;
+ if ( aCmdLineArgs.GetUnAcceptString(aUnAcceptString) ) {
+ ApplicationEvent* pAppEvent =
+ new ApplicationEvent( aEmpty, aEmpty,
+ "UNACCEPT", aUnAcceptString );
+ ImplPostForeignAppEvent( pAppEvent );
+ bAcceptorRequest = sal_True;
+ }
+
+#ifndef UNX
+ // only in non-unix version, we need to handle a -help request
+ // in a running instance in order to display the command line help
+ if ( aCmdLineArgs.IsHelp() ) {
+ ApplicationEvent* pAppEvent =
+ new ApplicationEvent( aEmpty, aEmpty, "HELP", aEmpty );
+ ImplPostForeignAppEvent( pAppEvent );
+ }
+#endif
+
sal_Bool bDocRequestSent = sal_False;
ProcessDocumentsRequest* pRequest = new ProcessDocumentsRequest;
- /*
- ::osl::Condition cProcessed;
- pRequest->pcProcessed = & cProcessed;
- */
+
// Print requests are not dependent on the -invisible cmdline argument as they are
// loaded with the "hidden" flag! So they are always checked.
bDocRequestSent |= aCmdLineArgs.GetPrintList( pRequest->aPrintList );
@@ -798,7 +626,6 @@ void SAL_CALL OfficeIPCThread::run()
bDocRequestSent = sal_True;
}
}
-
if ( bDocRequestSent )
{
@@ -812,14 +639,12 @@ void SAL_CALL OfficeIPCThread::run()
delete pRequest;
pRequest = NULL;
}
-
- if (( aArguments.CompareTo( sc_aShowSequence, sc_nShSeqLength ) == COMPARE_EQUAL ) ||
- !bDocRequestSent )
+ if ((( aArguments.CompareTo( sc_aShowSequence, sc_nShSeqLength ) == COMPARE_EQUAL ) ||
+ !bDocRequestSent ) && !bAcceptorRequest )
{
// no document was sent, just bring Office to front
ApplicationEvent* pAppEvent =
- new ApplicationEvent( aEmpty, aEmpty,
- "APPEAR", aEmpty );
+ new ApplicationEvent( aEmpty, aEmpty, "APPEAR", aEmpty );
ImplPostForeignAppEvent( pAppEvent );
if (pRequest != NULL) pRequest->cProcessed.set();
}
@@ -831,14 +656,14 @@ void SAL_CALL OfficeIPCThread::run()
// processing finished, inform the requesting end
nBytes = 0;
while (
- (nResult = maStreamPipe.send(sc_aConfirmationSequence+nBytes, sc_nCSeqLength-nBytes))>0 &&
- ((nBytes += nResult) < sc_nCSeqLength) );
+ (nResult = maStreamPipe.send(sc_aConfirmationSequence+nBytes, sc_nCSeqLength-nBytes))>0 &&
+ ((nBytes += nResult) < sc_nCSeqLength) );
// now we can close, don't we?
// maStreamPipe.close();
- }
- else
- {
+ }
+ else
+ {
#if defined DEBUG || defined DBG_UTIL
fprintf( stderr, "Error on accept: %d\n", (int)nError );
#endif
@@ -898,8 +723,10 @@ void OfficeIPCThread::ExecuteCmdLineRequests( ProcessDocumentsRequest& aRequest
// Execute dispatch requests
pGlobalOfficeIPCThread->mpDispatchWatcher->executeDispatchRequests( aDispatchList );
- // after execution, set condition in request
+
+ // set processed flag
aRequest.cProcessed.set();
+
}
}
diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
index 372ebb26fc..a2c9db612c 100644
--- a/desktop/source/app/officeipcthread.hxx
+++ b/desktop/source/app/officeipcthread.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: officeipcthread.hxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: lo $ $Date: 2002-10-17 10:46:33 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:51:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -72,11 +72,9 @@
#ifndef _VOS_PIPE_HXX_
#include <vos/pipe.hxx>
#endif
-#ifndef SOLARIS
#ifndef _VOS_SECURITY_HXX_
#include <vos/security.hxx>
#endif
-#endif
#ifndef _VOS_THREAD_HXX_
#include <vos/thread.hxx>
#endif
@@ -106,14 +104,13 @@ class SalMainPipeExchangeSignalHandler : public vos::OSignalHandler
struct ProcessDocumentsRequest
{
::rtl::OUString aOpenList; // Documents that should be opened in the default way
- ::rtl::OUString aViewList; // Documents that should be opened in viewmode
+ ::rtl::OUString aViewList; // Documents that should be opened in viewmode
::rtl::OUString aPrintList; // Documents that should be printed on default printer
::rtl::OUString aForceOpenList; // Documents that should be forced to open for editing (even templates)
::rtl::OUString aForceNewList; // Documents that should be forced to create a new document
::rtl::OUString aPrinterName; // The printer name that should be used for printing
::rtl::OUString aPrintToList; // Documents that should be printed on the given printer
::osl::Condition cProcessed; // condition to be set when the request has been processed
-
};
class DispatchWatcher;
@@ -125,9 +122,7 @@ class OfficeIPCThread : public vos::OThread
vos::OPipe maPipe;
vos::OStreamPipe maStreamPipe;
-#ifndef SOLARIS
static vos::OSecurity maSecurity;
-#endif
rtl::OUString maPipeIdent;
sal_Bool mbBlockRequests;
int mnPendingRequests;
@@ -135,7 +130,6 @@ class OfficeIPCThread : public vos::OThread
sal_Bool mbShutdownInProgress;
static ::osl::Mutex& GetMutex();
-
static const char *sc_aTerminationSequence;
static const int sc_nTSeqLength;
static const char *sc_aShowSequence;
@@ -167,12 +161,7 @@ class OfficeIPCThread : public vos::OThread
static void ExecuteCmdLineRequests( ProcessDocumentsRequest& );
// return FALSE if second office
-#ifdef SOLARIS
- static Status EnableOfficeIPCThread(
- sal_Bool useParent = sal_True );
-#else
static Status EnableOfficeIPCThread();
-#endif
static void DisableOfficeIPCThread();
};
diff --git a/desktop/source/offacc/acceptor.cxx b/desktop/source/offacc/acceptor.cxx
new file mode 100644
index 0000000000..69b0979b7e
--- /dev/null
+++ b/desktop/source/offacc/acceptor.cxx
@@ -0,0 +1,399 @@
+/*************************************************************************
+ *
+ * $RCSfile: acceptor.cxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2003-03-25 13:52:40 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "acceptor.hxx"
+
+#ifndef _UTL_BOOTSTRAP_HXX
+#include <unotools/bootstrap.hxx>
+#endif
+#ifndef _VOS_PROCESS_HXX_
+#include <vos/process.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _SFX_HRC
+#include <sfx2/sfx.hrc>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_XNAMEINGSERVICE_HPP_
+#include <com/sun/star/uno/XNamingService.hpp>
+#endif
+
+
+
+namespace desktop
+{
+
+extern "C" void workerfunc (void * acc)
+{
+ ((Acceptor*)acc)->run();
+}
+
+static Reference<XInterface> getComponentContext( const Reference<XMultiServiceFactory>& rFactory)
+{
+ Reference<XInterface> rContext;
+ Reference< XPropertySet > rPropSet( rFactory, UNO_QUERY );
+ Any a = rPropSet->getPropertyValue(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ) ) );
+ a >>= rContext;
+ return rContext;
+}
+
+Mutex Acceptor::m_aMutex;
+
+Acceptor::Acceptor( const Reference< XMultiServiceFactory >& rFactory )
+ : m_aAcceptString()
+ , m_aConnectString()
+ , m_aProtocol()
+ , m_bInit(sal_False)
+{
+ m_rSMgr = rFactory;
+ m_rAcceptor = Reference< XAcceptor > (m_rSMgr->createInstance(
+ rtl::OUString::createFromAscii( "com.sun.star.connection.Acceptor" )),
+ UNO_QUERY );
+ m_rBridgeFactory = Reference < XBridgeFactory > (m_rSMgr->createInstance(
+ rtl::OUString::createFromAscii( "com.sun.star.bridge.BridgeFactory" )),
+ UNO_QUERY );
+ // get component context
+ m_rContext = getComponentContext(m_rSMgr);
+}
+
+
+Acceptor::~Acceptor()
+{
+ // at destruction time, m_rAcceptor will be destoyed, aborting any
+ // pending accept calls in the accept thread thus leaving the run method
+ // and ending the accept thread. Hence no expicit join here.
+ m_rAcceptor->stopAccepting();
+
+}
+
+void SAL_CALL Acceptor::run()
+{
+ while ( m_rAcceptor.is() && m_rBridgeFactory.is() )
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "desktop (lo119109) Acceptor::run" );
+ try
+ {
+ // wait until we get enabled
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "desktop (lo119109)"\
+ "Acceptor::run waiting for office to come up");
+ m_cEnable.wait();
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "desktop (lo119109)"\
+ "Acceptor::run now enabled and continuing");
+
+ // accept connection
+ Reference< XConnection > rConnection = m_rAcceptor->accept( m_aConnectString );
+ // if we return without a valid connection we mus assume that the acceptor
+ // is destructed so we break out of the run method terminating the thread
+ if (! rConnection.is()) break;
+ OUString aDescription = rConnection->getDescription();
+ RTL_LOGFILE_CONTEXT_TRACE1( aLog, "desktop (lo119109) Acceptor::run connection %s",
+ OUStringToOString(aDescription, RTL_TEXTENCODING_ASCII_US).getStr());
+
+ // create instanceprovider for this connection
+ Reference< XInstanceProvider > rInstanceProvider(
+ (XInstanceProvider*)new AccInstanceProvider(m_rSMgr, rConnection));
+ // create the bridge. The remote end will have a reference to this bridge
+ // thus preventing the bridge from being disposed. When the remote end releases
+ // the bridge, it will be destructed.
+ Reference< XBridge > rBridge = m_rBridgeFactory->createBridge(
+ rtl::OUString() ,m_aProtocol ,rConnection ,rInstanceProvider );
+
+ } catch (Exception&) {
+ // connection failed...
+ // something went wrong during connection setup.
+ // just wait for a new connection to accept
+ }
+ }
+}
+
+// XInitialize
+void SAL_CALL Acceptor::initialize( const Sequence<Any>& aArguments )
+ throw( Exception )
+{
+ // prevent multiple initialization
+ ClearableMutexGuard aGuard( m_aMutex );
+ RTL_LOGFILE_CONTEXT( aLog, "destop (lo119109) Acceptor::initialize()" );
+
+ sal_Bool bOk = sal_False;
+
+ // arg count
+ int nArgs = aArguments.getLength();
+
+ // not yet initialized and acceptstring
+ if (!m_bInit && nArgs > 0 && (aArguments[0] >>= m_aAcceptString))
+ {
+ RTL_LOGFILE_CONTEXT_TRACE1( aLog, "desktop (lo119109) Acceptor::initialize string=%s",
+ OUStringToOString(m_aAcceptString, RTL_TEXTENCODING_ASCII_US).getStr());
+
+ // get connect string and protocol from accept string
+ // "<connectString>;<protocol>"
+ sal_Int32 nIndex1 = m_aAcceptString.indexOf( (sal_Unicode) ';' );
+ if (nIndex1 < 0) throw IllegalArgumentException(
+ OUString::createFromAscii("Invalid accept-string format"), m_rContext, 1);
+ m_aConnectString = m_aAcceptString.copy( 0 , nIndex1 ).trim();
+ nIndex1++;
+ sal_Int32 nIndex2 = m_aAcceptString.indexOf( (sal_Unicode) ';' , nIndex1 );
+ if (nIndex2 < 0) nIndex2 = m_aAcceptString.getLength();
+ m_aProtocol = m_aAcceptString.copy( nIndex1, nIndex2 - nIndex1 );
+
+ // start accepting in new thread...
+ oslThread m_aThread = osl_createThread(workerfunc, this);
+ m_bInit = sal_True;
+ bOk = sal_True;
+ }
+
+ // do we want to enable accepting?
+ sal_Bool bEnable = sal_False;
+ if ((nArgs == 1 && (aArguments[0] >>= bEnable) )
+ || (nArgs == 2 && (aArguments[1] >>= bEnable))
+ && bEnable )
+ {
+ m_cEnable.set();
+ bOk = sal_True;
+ }
+
+
+ if (!bOk)
+ {
+ throw IllegalArgumentException(
+ OUString::createFromAscii("invalid initialization"), m_rContext, 1);
+ }
+}
+
+// XServiceInfo
+const sal_Char *Acceptor::serviceName = "com.sun.star.office.Acceptor";
+const sal_Char *Acceptor::implementationName = "com.sun.star.office.comp.Acceptor";
+const sal_Char *Acceptor::supportedServiceNames[] = {"com.sun.star.office.Acceptor", NULL};
+OUString Acceptor::impl_getImplementationName()
+{
+ return OUString::createFromAscii( implementationName );
+}
+OUString SAL_CALL Acceptor::getImplementationName()
+ throw (RuntimeException)
+{
+ return Acceptor::impl_getImplementationName();
+}
+Sequence<OUString> Acceptor::impl_getSupportedServiceNames()
+{
+ Sequence<OUString> aSequence;
+ for (int i=0; supportedServiceNames[i]!=NULL; i++) {
+ aSequence.realloc(i+1);
+ aSequence[i]=(OUString::createFromAscii(supportedServiceNames[i]));
+ }
+ return aSequence;
+}
+Sequence<OUString> SAL_CALL Acceptor::getSupportedServiceNames()
+ throw (RuntimeException)
+{
+ return Acceptor::impl_getSupportedServiceNames();
+}
+sal_Bool Acceptor::impl_supportsService( const OUString& aServiceName)
+{
+ return sal_False;
+}
+sal_Bool SAL_CALL Acceptor::supportsService( const OUString& aServiceName)
+ throw (RuntimeException)
+{
+ return Acceptor::impl_supportsService( aServiceName );
+}
+
+// Factory
+Reference< XInterface > Acceptor::impl_getInstance( const Reference< XMultiServiceFactory >& aFactory )
+{
+ try {
+ return (XComponent*) new Acceptor( aFactory );
+ } catch ( Exception& ) {
+ return (XComponent*) NULL;
+ }
+}
+
+// InstanceProvider
+AccInstanceProvider::AccInstanceProvider(const Reference<XMultiServiceFactory>& aFactory, const Reference<XConnection>& rConnection)
+{
+ m_rSMgr = aFactory;
+ m_rConnection = rConnection;
+}
+
+AccInstanceProvider::~AccInstanceProvider()
+{
+}
+
+Reference<XInterface> SAL_CALL AccInstanceProvider::getInstance (const OUString& aName )
+ throw ( NoSuchElementException )
+{
+
+ Reference<XInterface> rInstance;
+
+ if ( aName.compareToAscii( "StarOffice.Startup" ) == 0)
+ {
+ // rvp client wants to connect
+ rInstance = Application::GetUnoInstance( m_rConnection, aName );
+ }
+ else if ( aName.compareToAscii( "StarOffice.ServiceManager" ) == 0)
+ {
+ rInstance = Reference< XInterface >( m_rSMgr );
+ }
+ else if(aName.compareToAscii( "StarOffice.ComponentContext" ) == 0 )
+ {
+ rInstance = getComponentContext( m_rSMgr );
+ }
+ else if ( aName.compareToAscii("StarOffice.NamingService" ) == 0 )
+ {
+ Reference< XNamingService > rNamingService(
+ m_rSMgr->createInstance( OUString::createFromAscii( "com.sun.star.uno.NamingService" )),
+ UNO_QUERY );
+ if ( rNamingService.is() )
+ {
+ rNamingService->registerObject(
+ OUString::createFromAscii( "StarOffice.ServiceManager" ), m_rSMgr );
+ rNamingService->registerObject(
+ OUString::createFromAscii( "StarOffice.ComponentContext" ), getComponentContext( m_rSMgr ));
+ rInstance = rNamingService;
+ }
+ }
+ /*
+ else if ( aName.compareToAscii("com.sun.star.ucb.RemoteContentProviderAcceptor" ))
+ {
+ Reference< XMultiServiceFactory > rSMgr = ::comphelper::getProcessServiceFactory();
+ if ( rSMgr.is() ) {
+ try {
+ rInstance = rSMgr->createInstance( sObjectName );
+ }
+ catch (Exception const &) {}
+ }
+ }
+ */
+ return rInstance;
+}
+
+}
+
+// component management stuff...
+// ----------------------------------------------------------------------------
+extern "C"
+{
+using namespace desktop;
+
+void SAL_CALL
+component_getImplementationEnvironment(const sal_Char **ppEnvironmentTypeName, uno_Environment **ppEnvironment)
+{
+ *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+sal_Bool SAL_CALL
+component_writeInfo(void *pServiceManager, void *pRegistryKey)
+{
+ Reference< XMultiServiceFactory > xMan(reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
+ Reference< XRegistryKey > xKey(reinterpret_cast< XRegistryKey* >(pRegistryKey));
+
+ // register service
+ ::rtl::OUString aTempStr;
+ ::rtl::OUString aImpl(RTL_CONSTASCII_USTRINGPARAM("/"));
+ aImpl += Acceptor::impl_getImplementationName();
+ aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
+ Reference< XRegistryKey > xNewKey = xKey->createKey(aImpl);
+ xNewKey->createKey(Acceptor::impl_getSupportedServiceNames()[0]);
+
+ return sal_True;
+}
+
+void * SAL_CALL
+component_getFactory(const sal_Char *pImplementationName, void *pServiceManager, void *pRegistryKey)
+{
+ void* pReturn = NULL ;
+ if ( pImplementationName && pServiceManager )
+ {
+ // Define variables which are used in following macros.
+ Reference< XSingleServiceFactory > xFactory;
+ Reference< XMultiServiceFactory > xServiceManager(
+ reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
+
+ if (Acceptor::impl_getImplementationName().compareToAscii( pImplementationName ) == COMPARE_EQUAL )
+ {
+ xFactory = Reference< XSingleServiceFactory >( cppu::createSingleFactory(
+ xServiceManager, Acceptor::impl_getImplementationName(),
+ Acceptor::impl_getInstance, Acceptor::impl_getSupportedServiceNames()) );
+ }
+
+ // Factory is valid - service was found.
+ if ( xFactory.is() )
+ {
+ xFactory->acquire();
+ pReturn = xFactory.get();
+ }
+ }
+
+ // Return with result of this operation.
+ return pReturn ;
+}
+
+} // extern "C"
diff --git a/desktop/source/offacc/acceptor.hxx b/desktop/source/offacc/acceptor.hxx
new file mode 100644
index 0000000000..b8cda9ecb7
--- /dev/null
+++ b/desktop/source/offacc/acceptor.hxx
@@ -0,0 +1,192 @@
+/*************************************************************************
+ *
+ * $RCSfile: acceptor.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2003-03-25 13:52:40 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_
+#include <com/sun/star/uno/Exception.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+#include <com/sun/star/uno/Reference.h>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+#include <com/sun/star/lang/XComponent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONNECTION_XACCEPTOR_HPP_
+#include <com/sun/star/connection/XAcceptor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BRIDGE_XINSTANCEPROVIDER_HPP_
+#include <com/sun/star/bridge/XInstanceProvider.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BRIDGE_XBRIDGEFACTORY_HPP_
+#include <com/sun/star/bridge/XBridgeFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
+#include <cppuhelper/implbase2.hxx>
+#endif
+#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
+#include <cppuhelper/interfacecontainer.h>
+#endif
+#ifndef _SFX_HELP_HXX
+#include <sfx2/sfxhelp.hxx>
+#endif
+#ifndef _SFX_UNO_HXX
+#include <sfx2/sfxuno.hxx>
+#endif
+#ifndef _RTL_LOGFILE_HXX_
+#include <rtl/logfile.hxx>
+#endif
+
+#include <osl/mutex.hxx>
+#include <osl/conditn.hxx>
+#include <osl/thread.hxx>
+
+
+using namespace ::rtl;
+using namespace ::osl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::bridge;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::connection;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::registry;
+
+namespace desktop {
+
+class Acceptor
+ : public ::cppu::WeakImplHelper2<XServiceInfo, XInitialization>
+{
+private:
+ static const sal_Char *serviceName;
+ static const sal_Char *implementationName;
+ static const sal_Char *supportedServiceNames[];
+
+ static Mutex m_aMutex;
+
+ Condition m_cEnable;
+
+ Reference< XMultiServiceFactory > m_rSMgr;
+ Reference< XInterface > m_rContext;
+ Reference< XAcceptor > m_rAcceptor;
+ Reference< XBridgeFactory > m_rBridgeFactory;
+
+ OUString m_aAcceptString;
+ OUString m_aConnectString;
+ OUString m_aProtocol;
+
+ sal_Bool m_bInit;
+ oslThread m_aThread;
+
+
+public:
+ Acceptor( const Reference< XMultiServiceFactory >& aFactory );
+ virtual ~Acceptor();
+
+ void SAL_CALL run();
+
+ // XService info
+ static OUString impl_getImplementationName();
+ virtual OUString SAL_CALL getImplementationName()
+ throw (RuntimeException);
+ static Sequence<OUString> impl_getSupportedServiceNames();
+ virtual Sequence<OUString> SAL_CALL getSupportedServiceNames()
+ throw (RuntimeException);
+ static sal_Bool impl_supportsService( const OUString& aName );
+ virtual sal_Bool SAL_CALL supportsService( const OUString& aName )
+ throw (RuntimeException);
+
+ // XInitialize
+ virtual void SAL_CALL initialize( const Sequence<Any>& aArguments )
+ throw ( Exception );
+
+ static Reference<XInterface> impl_getInstance( const Reference< XMultiServiceFactory >& aFactory );
+};
+
+class AccInstanceProvider : public ::cppu::WeakImplHelper1<XInstanceProvider>
+{
+private:
+ Reference<XMultiServiceFactory> m_rSMgr;
+ Reference<XConnection> m_rConnection;
+
+public:
+ AccInstanceProvider(const Reference< XMultiServiceFactory >& aFactory,
+ const Reference< XConnection >& rConnection);
+ virtual ~AccInstanceProvider();
+
+ // XInstanceProvider
+ virtual Reference<XInterface> SAL_CALL getInstance (const OUString& aName )
+ throw ( NoSuchElementException );
+};
+
+
+} //namespace desktop
+
diff --git a/desktop/source/offacc/makefile.mk b/desktop/source/offacc/makefile.mk
new file mode 100644
index 0000000000..9f038ee4db
--- /dev/null
+++ b/desktop/source/offacc/makefile.mk
@@ -0,0 +1,127 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.2 $
+#
+# last change: $Author: hr $ $Date: 2003-03-25 13:52:41 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=officeacceptor
+TARGET=offacc
+LIBTARGET=NO
+AUTOSEG=true
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : $(UPD)minor.mk
+RSCUPDVER=$(RSCREVISION)(SV$(UPD)$(UPDMINOR))
+
+# --- Files --------------------------------------------------------
+
+SLOFILES = $(SLO)$/acceptor.obj
+
+SHL1OBJS= $(SLOFILES)
+SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+
+SHL1IMPLIB= ispl
+SHL1STDLIBS= \
+ $(SFX2LIB) \
+ $(FWELIB) \
+ $(BASICLIB) \
+ $(SO2LIB) \
+ $(SJLIB) \
+ $(TKLIB) \
+ $(SVTOOLLIB) \
+ $(SVLLIB) \
+ $(SVMEMLIB) \
+ $(OFALIB) \
+ $(ONELIB) \
+ $(VCLLIB) \
+ $(SOTLIB) \
+ $(SALLIB) \
+ $(VOSLIB) \
+ $(TOOLSLIB) \
+ $(UNOLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(SCHLIB) \
+ $(SMLIB) \
+ $(SWLIB) \
+ $(SDLIB) \
+ $(SCLIB) \
+ $(SVXLIB) \
+ $(UNOTOOLSLIB) \
+ $(COMPHELPERLIB)
+
+SHL1DEPN= makefile.mk
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME= $(SHL1TARGET)
+DEF1EXPORTFILE= exports.dxp
+
+# --- Targets ------------------------------------------------------
+
+.IF "$(depend)" != ""
+SRCFILES=$(SRC1FILES)
+.ENDIF
+
+.INCLUDE : target.mk
+
diff --git a/desktop/source/pkgchk/defs/wntmsci7 b/desktop/source/pkgchk/defs/wntmsci7
new file mode 100644
index 0000000000..aa0af27801
--- /dev/null
+++ b/desktop/source/pkgchk/defs/wntmsci7
@@ -0,0 +1,107 @@
+??0UNO_PackagesManager@pkgchk@@QAE@ABVBootstrap@rtl@@_N11ABVOUString@3@@Z
+??1UNO_PackagesManager@pkgchk@@QAE@XZ
+?balance@UNO_PackagesManager@pkgchk@@QAEXXZ
+?check@UNO_PackagesManager@pkgchk@@QAE_NXZ
+?copy@UNO_PackagesManager@pkgchk@@QAEXABVOUString@rtl@@@Z
+?remove_all@UNO_PackagesManager@pkgchk@@QAEXXZ
+??0Exception@uno@star@sun@com@@QAE@ABV01234@@Z
+??0RuntimeException@uno@star@sun@com@@QAE@ABV01234@@Z
+??1OUString@rtl@@QAE@XZ
+??1RuntimeException@uno@star@sun@com@@QAE@XZ
+??H@YA?AVOUString@rtl@@ABV01@0@Z
+??_C@_0BN@FLDH@com?4sun?4star?4lang?4XComponent?$AA@
+??_C@_0BP@FGMI@?$CD?$CD?$CD?5illegal?5index?5of?5sequence?$CB?$AA@
+??_C@_0CA@BHCN@com?4sun?4star?4beans?4XPropertySet?$AA@
+??_C@_0CD@DEHE@com?4sun?4star?4uno?4XComponentConte@
+??_C@_0CD@DPHI@com?4sun?4star?4ucb?4XSimpleFileAcce@
+??_C@_0CG@JHKC@com?4sun?4star?4registry?4XSimpleReg@
+??_C@_0CH@OMML@com?4sun?4star?4lang?4XMultiServiceF@
+??_C@_0DC@BHBK@com?4sun?4star?4registry?4XImplement@
+??_C@_0DF@MFLN@o?3?2SRX643?2wntmsci7?2inc?2com?1sun?1s@
+??_R0?AVException@uno@star@sun@com@@@8
+??_R0?AVRuntimeException@uno@star@sun@com@@@8
+?OUStringToOString@rtl@@YA?AVOString@1@ABVOUString@1@GK@Z
+?concat@OUString@rtl@@QBE?AV12@ABV12@@Z
+?cpp_acquire@uno@star@sun@com@@YAXPAX@Z
+?cpp_release@uno@star@sun@com@@YAXPAX@Z
+?makeStringAndClear@OUStringBuffer@rtl@@QAE?AVOUString@2@XZ
+?path_concat@pkgchk@@YA?AVOUString@rtl@@ABV23@PBDJ@Z
+__CT??_R0?AVException@uno@star@sun@com@@@8??0Exception@uno@star@sun@com@@QAE@ABV01234@@Z8
+__CT??_R0?AVRuntimeException@uno@star@sun@com@@@8??0RuntimeException@uno@star@sun@com@@QAE@ABV01234@@Z8
+__CTA2?AVRuntimeException@uno@star@sun@com@@
+??1OString@rtl@@QAE@XZ
+??1OStringBuffer@rtl@@QAE@XZ
+?makeStringAndClear@OStringBuffer@rtl@@QAE?AVOString@2@XZ
+??0OUString@rtl@@QAE@ABV01@@Z
+??1OUStringBuffer@rtl@@QAE@XZ
+?append@OStringBuffer@rtl@@QAEAAV12@PBDJ@Z
+?append@OUStringBuffer@rtl@@QAEAAV12@PBGJ@Z
+?close@File@osl@@QAE?AW4RC@FileBase@2@XZ
+?compareTo@OUString@rtl@@QBEJABV12@@Z
+?getToken@OString@rtl@@QBE?AV12@JDAAJ@Z
+?trim@OString@rtl@@QBE?AV12@XZ
+??1InputSource@sax@xml@star@sun@com@@QAE@XZ
+??_C@_0BN@DOLA@com?4sun?4star?4xml?4sax?4XParser?$AA@
+??_C@_0CC@INEH@com?4sun?4star?4io?4XActiveDataSourc@
+??_C@_0CO@KDMD@com?4sun?4star?4xml?4sax?4XExtendedDo@
+?copy@OUString@rtl@@QBE?AV12@JJ@Z
+?get@DirectoryItem@osl@@SA?AW4RC@FileBase@2@ABVOUString@rtl@@AAV12@@Z
+??1Directory@osl@@QAE@XZ
+??1DirectoryItem@osl@@QAE@XZ
+??1FileStatus@osl@@QAE@XZ
+??_C@_0M@LMHD@?1dialog?4xlb?$AA@
+??_R0?AVCannotRegisterImplementationException@registry@star@sun@com@@@8
+??_R0?AVInvalidRegistryException@registry@star@sun@com@@@8
+??_R0?AVMergeConflictException@registry@star@sun@com@@@8
+?appendAscii@OUStringBuffer@rtl@@QAEAAV12@PBDJ@Z
+?close@Directory@osl@@QAE?AW4RC@FileBase@2@XZ
+?copy@OUString@rtl@@QBE?AV12@J@Z
+?ends_with_ignore_ascii_case@pkgchk@@YA_NABVOUString@rtl@@PBDJ@Z
+?equalsIgnoreAsciiCase@OUString@rtl@@QBEEABV12@@Z
+?getFileURL@FileStatus@osl@@QBE?AVOUString@rtl@@XZ
+?lastIndexOf@OUString@rtl@@QBEJG@Z
+?path_concat@pkgchk@@YA?AVOUString@rtl@@ABV23@0@Z
+?path_exists@pkgchk@@YA_NABVOUString@rtl@@@Z
+?valueOf@OUString@rtl@@SA?AV12@_JF@Z
+??1File@osl@@QAE@XZ
+??_GOString@rtl@@QAEPAXI@Z
+?check_unorc@pkgchk@@YAXPAPAX_N1@Z
+?copy@OString@rtl@@QBE?AV12@J@Z
+?getToken@OUString@rtl@@QBE?AV12@JGAAJ@Z
+?trim@OUString@rtl@@QBE?AV12@XZ
+??0Any@uno@star@sun@com@@QAE@ABV01234@@Z
+??1Command@ucb@star@sun@com@@QAE@XZ
+??1GlobalTransferCommandArgument@ucb@star@sun@com@@QAE@XZ
+??_C@_0CP@NJPE@com?4sun?4star?4ucb?4GlobalTransferC@
+??_R0?AVCommandAbortedException@ucb@star@sun@com@@@8
+?dir_create@pkgchk@@YAXABVOUString@rtl@@@Z
+?dir_open@pkgchk@@YAXAAVDirectory@osl@@ABVOUString@rtl@@_N@Z
+?diritem_get_status@pkgchk@@YAXPAVFileStatus@osl@@AAVDirectoryItem@3@@Z
+?encode@Uri@rtl@@SA?AVOUString@2@ABV32@PBEW4rtl_UriEncodeMechanism@@G@Z
+?file_status_get_encoded_name@pkgchk@@YA?AVOUString@rtl@@ABVFileStatus@osl@@@Z
+?file_write@pkgchk@@YAXPAXABVOString@rtl@@ABVOUString@3@@Z
+?getFileName@FileStatus@osl@@QBE?AVOUString@rtl@@XZ
+?getFromBstrap@pkgchk@@YA?AVOUString@rtl@@ABV23@ABVBootstrap@3@@Z
+?makeAny@uno@star@sun@com@@YA?AVAny@1234@ABUGlobalTransferCommandArgument@ucb@234@@Z
+?office_is_running@pkgchk@@YA_NABVBootstrap@rtl@@@Z
+?path_get_executable@pkgchk@@YAABVOUString@rtl@@XZ
+?path_get_status@pkgchk@@YA_NPAVFileStatus@osl@@ABVOUString@rtl@@@Z
+?path_make_absolute@pkgchk@@YA?AVOUString@rtl@@ABV23@@Z
+?append@OUStringBuffer@rtl@@QAEAAV12@ABVOUString@2@@Z
+??_C@_0DF@GJJM@o?3?2SRC659?2wntmsci7?2inc?2com?1sun?1s@
+??0OUString@rtl@@QAE@PBDJGK@Z
+??_C@_0DF@HDNL@o?3?2SRC660?2wntmsci7?2inc?2com?1sun?1s@
+??_C@_0DF@HIAK@o?3?2SRC661?2wntmsci7?2inc?2com?1sun?1s@
+??_C@_0DF@PCBN@o?3?2SRC641?2wntmsci7?2inc?2com?1sun?1s@
+??_C@_0DF@GEHJ@o?3?2SRC662?2wntmsci7?2inc?2com?1sun?1s@
+??_C@_0DF@GPKI@o?3?2SRC663?2wntmsci7?2inc?2com?1sun?1s@
+??0UNO_PackagesManager@pkgchk@@QAE@ABVBootstrap@rtl@@ABVOptionsContainer@1@@Z
+??1OptionsContainer@pkgchk@@UAE@XZ
+??_7OptionsContainer@pkgchk@@6B@
+??_GOptionsContainer@pkgchk@@UAEPAXI@Z
+?get_argument@OptionsContainer@pkgchk@@UBE_NPAVAny@uno@star@sun@com@@ABVOUString@rtl@@G@Z
+?get_option@OptionsContainer@pkgchk@@UBE_NABVOUString@rtl@@G@Z
+??1Any@uno@star@sun@com@@QAE@XZ
+??_C@_0DF@FMJO@o?3?2SRC664?2wntmsci7?2inc?2com?1sun?1s@
+??_C@_0DF@FHEP@o?3?2SRC665?2wntmsci7?2inc?2com?1sun?1s@
+?path_get_status@pkgchk@@YAXPAVFileStatus@osl@@ABVOUString@rtl@@@Z
diff --git a/desktop/source/so_comp/evaluation.cxx b/desktop/source/so_comp/evaluation.cxx
index 7b6d6e5694..b2bb77fd0a 100644
--- a/desktop/source/so_comp/evaluation.cxx
+++ b/desktop/source/so_comp/evaluation.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: evaluation.cxx,v $
*
- * $Revision: 1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: cd $ $Date: 2002-11-01 09:43:28 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:52:48 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -86,6 +86,14 @@
#ifndef _SV_MSGBOX_HXX
#include <vcl/msgbox.hxx>
#endif
+#ifndef _TOOLS_RESMGR_HXX
+#include <tools/resmgr.hxx>
+#endif
+#ifndef _TOOLS_RESID_HXX
+#include <tools/resid.hxx>
+#endif
+#include "../app/desktop.hrc"
+
using namespace rtl;
using namespace ::com::sun::star::uno;
@@ -266,8 +274,23 @@ rtl::OUString SAL_CALL SOEvaluation::getExactName( const rtl::OUString& rApproxi
if ( bExpired )
{
- InfoBox aBox( NULL, aTitle );
- aBox.Execute();
+ // get destop resource manager
+ ResMgr* pResMgr = ResMgr::CreateResMgr(
+ OString("dkt")+OString::valueOf((long int)SUPD));
+ InfoBox* pBox;
+ if(pResMgr != NULL){
+ pBox = new InfoBox( NULL, ResId(INFOBOX_EXPIRED, pResMgr));
+ String aText(ResId(STR_TITLE_EXPIRED, pResMgr));
+ pBox->SetText(aText);
+ } else {
+ pBox = new InfoBox( NULL, aTitle);
+ }
+
+ pBox->Execute();
+
+ delete pBox;
+ delete pResMgr;
+
throw RuntimeException();
}
@@ -280,11 +303,15 @@ Any SAL_CALL SOEvaluation::getMaterial() throw( RuntimeException )
// Time bomb implementation. Return empty Any to do nothing or
// provide a com::sun::star::util::Date with the time bomb date.
Any a;
-/*
- // Code for providing time bomb date!
- com::sun::star::util::Date aDate( 31, 03, 2003 );
+
+#ifdef TIMEBOMB
+ // Code for extracting/providing time bomb date!
+ int nDay = TIMEBOMB % 100;
+ int nMonth = ( TIMEBOMB % 10000 ) / 100;
+ int nYear = TIMEBOMB / 10000;
+ com::sun::star::util::Date aDate( nDay, nMonth, nYear );
a <<= aDate;
-*/
+#endif
return a;
}
diff --git a/desktop/source/so_comp/makefile.mk b/desktop/source/so_comp/makefile.mk
index 10e4c54e4b..d2d1d666b7 100644
--- a/desktop/source/so_comp/makefile.mk
+++ b/desktop/source/so_comp/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.1 $
+# $Revision: 1.2 $
#
-# last change: $Author: cd $ $Date: 2002-11-01 09:43:29 $
+# last change: $Author: hr $ $Date: 2003-03-25 13:52:48 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -74,6 +74,10 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : $(UPD)minor.mk
RSCUPDVER=$(RSCREVISION)(SV$(UPD)$(UPDMINOR))
+# --- Define time bomb date. Not active for OOo --------------------
+# --- You must use the yyyymmdd format!!! --------------------------
+CDEFS+=-DTIMEBOMB=20030930
+
# --- Files --------------------------------------------------------
SLOFILES = $(SLO)$/evaluation.obj
diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
new file mode 100644
index 0000000000..1f388f3409
--- /dev/null
+++ b/desktop/source/splash/makefile.mk
@@ -0,0 +1,127 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.2 $
+#
+# last change: $Author: hr $ $Date: 2003-03-25 13:52:50 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=splashscreen
+TARGET=spl
+LIBTARGET=NO
+AUTOSEG=true
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : $(UPD)minor.mk
+RSCUPDVER=$(RSCREVISION)(SV$(UPD)$(UPDMINOR))
+
+# --- Files --------------------------------------------------------
+
+SLOFILES = $(SLO)$/splash.obj
+
+SHL1OBJS= $(SLOFILES)
+SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+
+SHL1IMPLIB= ispl
+SHL1STDLIBS= \
+ $(SFX2LIB) \
+ $(FWELIB) \
+ $(BASICLIB) \
+ $(SO2LIB) \
+ $(SJLIB) \
+ $(TKLIB) \
+ $(SVTOOLLIB) \
+ $(SVLLIB) \
+ $(SVMEMLIB) \
+ $(OFALIB) \
+ $(ONELIB) \
+ $(VCLLIB) \
+ $(SOTLIB) \
+ $(SALLIB) \
+ $(VOSLIB) \
+ $(TOOLSLIB) \
+ $(UNOLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(SCHLIB) \
+ $(SMLIB) \
+ $(SWLIB) \
+ $(SDLIB) \
+ $(SCLIB) \
+ $(SVXLIB) \
+ $(UNOTOOLSLIB) \
+ $(COMPHELPERLIB)
+
+SHL1DEPN= makefile.mk
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME= $(SHL1TARGET)
+DEF1EXPORTFILE= exports.dxp
+
+# --- Targets ------------------------------------------------------
+
+.IF "$(depend)" != ""
+SRCFILES=$(SRC1FILES)
+.ENDIF
+
+.INCLUDE : target.mk
+
diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
new file mode 100644
index 0000000000..fa5b7c8940
--- /dev/null
+++ b/desktop/source/splash/splash.cxx
@@ -0,0 +1,367 @@
+/*************************************************************************
+ *
+ * $RCSfile: splash.cxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2003-03-25 13:52:50 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "splash.hxx"
+
+#ifndef _UTL_BOOTSTRAP_HXX
+#include <unotools/bootstrap.hxx>
+#endif
+#ifndef _VOS_PROCESS_HXX_
+#include <vos/process.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _SFX_HRC
+#include <sfx2/sfx.hrc>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
+using namespace ::rtl;
+using namespace ::com::sun::star::registry;
+
+namespace desktop
+{
+
+SplashScreen::SplashScreen(const Reference< XMultiServiceFactory >& rSMgr)
+ :
+ IntroWindow()
+ , _iProgress(0)
+ , _iMax(100)
+ , _bPaintBitmap(sal_True)
+ , _bPaintProgress(sal_False)
+ , _xoffset(12)
+ , _yoffset(16)
+ , _barheight(6)
+ , _barspace(2)
+{
+ _rFactory = rSMgr;
+
+ initBitmap();
+ Size aSize = _aIntroBmp.GetSizePixel();
+ SetOutputSizePixel( aSize );
+ _height = aSize.Height();
+ _width = aSize.Width();
+ _tlx = _xoffset; // top-left x
+ _tly = _height - _yoffset; // top-left y
+ _barwidth = _width - (2*_yoffset);
+ Application::AddEventListener(
+ LINK( this, SplashScreen, AppEventListenerHdl ) );
+}
+
+SplashScreen::~SplashScreen()
+{
+ Application::RemoveEventListener(
+ LINK( this, SplashScreen, AppEventListenerHdl ) );
+ Hide();
+}
+
+void SAL_CALL SplashScreen::start(const OUString& aText, sal_Int32 nRange)
+ throw (RuntimeException)
+{
+ _iMax = nRange;
+ if (_bVisible) {
+ ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ Show();
+ Paint(Rectangle());
+ }
+}
+void SAL_CALL SplashScreen::end()
+ throw (RuntimeException)
+{
+ _iProgress = _iMax;
+ updateStatus();
+ if (_bVisible) Hide();
+}
+void SAL_CALL SplashScreen::reset()
+ throw (RuntimeException)
+{
+ _iProgress = 0;
+ updateStatus();
+}
+
+void SAL_CALL SplashScreen::setText(const OUString& aText)
+ throw (RuntimeException)
+{
+}
+
+void SAL_CALL SplashScreen::setValue(sal_Int32 nValue)
+ throw (RuntimeException)
+{
+ ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+
+ if (nValue >= _iMax) _iProgress = _iMax;
+ else _iProgress = nValue;
+ updateStatus();
+}
+
+// XInitialize
+void SAL_CALL
+SplashScreen::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
+ throw (RuntimeException)
+{
+ ::osl::ClearableMutexGuard aGuard( _aMutex );
+ if (aArguments.getLength() > 0)
+ aArguments[0] >>= _bVisible;
+}
+
+void SplashScreen::updateStatus()
+{
+ if (!_bVisible) return;
+ if (!_bPaintProgress) _bPaintProgress = sal_True;
+ _bPaintBitmap=sal_False;
+ Paint(Rectangle());
+ _bPaintBitmap=sal_True;
+}
+
+// internal private methods
+IMPL_LINK( SplashScreen, AppEventListenerHdl, VclWindowEvent *, inEvent )
+{
+ if ( inEvent != 0 )
+ {
+ switch ( inEvent->GetId() )
+ {
+ case VCLEVENT_WINDOW_HIDE:
+ Paint( Rectangle() );
+ break;
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+void SplashScreen::initBitmap()
+{
+ String aBmpFileName;
+ OUString aIniPath;
+ OUString aLogo( RTL_CONSTASCII_USTRINGPARAM( "1" ) );
+ aLogo = ::utl::Bootstrap::getLogoData( aLogo );
+ sal_Bool bLogo = (sal_Bool)aLogo.toInt32();
+ if ( bLogo )
+ {
+ xub_StrLen nIndex = 0;
+ aBmpFileName += String( DEFINE_CONST_UNICODE("intro.bmp") );
+ // retrieve our current installation path
+ OUString aExecutePath;
+ ::vos::OStartupInfo().getExecutableFile( aExecutePath );
+ sal_uInt32 lastIndex = aExecutePath.lastIndexOf('/');
+ if ( lastIndex > 0 )
+ aExecutePath = aExecutePath.copy( 0, lastIndex+1 );
+ INetURLObject aObj( aExecutePath, INET_PROT_FILE );
+ aObj.insertName( aBmpFileName );
+ SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
+ if ( !aStrm.GetError() )
+ {
+ // Default case, we load the intro bitmap from a seperate file
+ // (e.g. staroffice_intro.bmp or starsuite_intro.bmp)
+ aStrm >> _aIntroBmp;
+ }
+ else
+ {
+ // Save case:
+ // Create resource manager for intro bitmap. Due to our problem that we don't have
+ // any language specific information, we have to search for the correct resource
+ // file. The bitmap resource is language independent.
+ const USHORT nResId = RID_DEFAULTINTRO;
+ LanguageType aLanguageType;
+ String aMgrName = String::CreateFromAscii( "iso" );
+ aMgrName += String::CreateFromInt32(SUPD); // current build version
+ ResMgr* pLabelResMgr = ResMgr::SearchCreateResMgr( U2S( aMgrName ), aLanguageType );
+ ResId aIntroBmpRes( nResId, pLabelResMgr );
+ _aIntroBmp = Bitmap( aIntroBmpRes );
+ delete pLabelResMgr;
+ }
+ }
+}
+
+void SplashScreen::Paint( const Rectangle& )
+{
+ if(!_bVisible) return;
+ // draw bitmap
+ if (_bPaintBitmap)
+ DrawBitmap( Point(), _aIntroBmp );
+
+ if (_bPaintProgress) {
+ // draw progress...
+ long length = (_iProgress * _barwidth / _iMax) - (2 * _barspace);
+ if (length < 0) length = 0;
+ const Color cBlue(COL_BLUE);
+ const Color cGray(COL_LIGHTGRAY);
+
+ // border
+ SetFillColor();
+ SetLineColor(cGray);
+ DrawRect(Rectangle(_tlx, _tly, _tlx+_barwidth,
+ _tly+_barheight));
+
+ // progress bar
+ SetFillColor(cBlue);
+ SetLineColor();
+ DrawRect(Rectangle(_tlx+_barspace, _tly+_barspace,
+ _tlx+_barspace+length, _tly+_barheight-_barspace));
+ }
+ Flush();
+}
+
+
+// get service instance...
+SplashScreen *SplashScreen::_pINSTANCE = NULL;
+osl::Mutex SplashScreen::_aMutex;
+
+Reference< XInterface > SplashScreen::getInstance(const Reference< XMultiServiceFactory >& rSMgr)
+{
+ if ( _pINSTANCE == 0 )
+ {
+ osl::MutexGuard guard(_aMutex);
+ if (_pINSTANCE == 0)
+ return (XComponent*)new SplashScreen(rSMgr);
+ }
+
+ return (XComponent*)0;
+}
+
+// static service info...
+const sal_Char *SplashScreen::serviceName = "com.sun.star.office.SplashScreen";
+const sal_Char *SplashScreen::implementationName = "com.sun.star.office.comp.SplashScreen";
+const sal_Char *SplashScreen::supportedServiceNames[] = {"com.sun.star.office.SplashScreen", NULL};
+OUString SplashScreen::impl_getImplementationName()
+{
+ return OUString::createFromAscii(implementationName);
+}
+Sequence<OUString> SplashScreen::impl_getSupportedServiceNames()
+{
+ Sequence<OUString> aSequence;
+ for (int i=0; supportedServiceNames[i]!=NULL; i++) {
+ aSequence.realloc(i+1);
+ aSequence[i]=(OUString::createFromAscii(supportedServiceNames[i]));
+ }
+ return aSequence;
+}
+
+}
+
+// component management stuff...
+// ----------------------------------------------------------------------------
+extern "C"
+{
+using namespace desktop;
+
+void SAL_CALL
+component_getImplementationEnvironment(const sal_Char **ppEnvironmentTypeName, uno_Environment **ppEnvironment)
+{
+ *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+sal_Bool SAL_CALL
+component_writeInfo(void *pServiceManager, void *pRegistryKey)
+{
+ Reference< XMultiServiceFactory > xMan(reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
+ Reference< XRegistryKey > xKey(reinterpret_cast< XRegistryKey* >(pRegistryKey));
+
+ // register service
+ ::rtl::OUString aTempStr;
+ ::rtl::OUString aImpl(RTL_CONSTASCII_USTRINGPARAM("/"));
+ aImpl += SplashScreen::impl_getImplementationName();
+ aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
+ Reference< XRegistryKey > xNewKey = xKey->createKey(aImpl);
+ xNewKey->createKey(SplashScreen::impl_getSupportedServiceNames()[0]);
+
+ return sal_True;
+}
+
+void * SAL_CALL
+component_getFactory(const sal_Char *pImplementationName, void *pServiceManager, void *pRegistryKey)
+{
+ void* pReturn = NULL ;
+ if ( pImplementationName && pServiceManager )
+ {
+ // Define variables which are used in following macros.
+ Reference< XSingleServiceFactory > xFactory ;
+ Reference< XMultiServiceFactory > xServiceManager(
+ reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
+
+ if (desktop::SplashScreen::impl_getImplementationName().compareToAscii( pImplementationName ) == COMPARE_EQUAL )
+ {
+ xFactory = Reference< XSingleServiceFactory >(
+ cppu::createOneInstanceFactory(
+ xServiceManager, SplashScreen::impl_getImplementationName(),
+ SplashScreen::getInstance, SplashScreen::impl_getSupportedServiceNames()));
+ }
+
+ // Factory is valid - service was found.
+ if ( xFactory.is() )
+ {
+ xFactory->acquire();
+ pReturn = xFactory.get();
+ }
+ }
+
+ // Return with result of this operation.
+ return pReturn ;
+}
+
+} // extern "C"
diff --git a/desktop/source/splash/splash.hxx b/desktop/source/splash/splash.hxx
new file mode 100644
index 0000000000..0e5ec2a884
--- /dev/null
+++ b/desktop/source/splash/splash.hxx
@@ -0,0 +1,165 @@
+/*************************************************************************
+ *
+ * $RCSfile: splash.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2003-03-25 13:52:51 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_
+#include <com/sun/star/uno/Exception.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+#include <com/sun/star/uno/Reference.h>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+#include <com/sun/star/lang/XComponent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATOR_HPP_
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
+#include <cppuhelper/implbase2.hxx>
+#endif
+#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
+#include <cppuhelper/interfacecontainer.h>
+#endif
+#ifndef _SFX_HELP_HXX
+#include <sfx2/sfxhelp.hxx>
+#endif
+#ifndef _SV_INTROWIN_HXX
+#include <vcl/introwin.hxx>
+#endif
+#ifndef _SV_BITMAP_HXX
+#include <vcl/bitmap.hxx>
+#endif
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <osl/mutex.hxx>
+#include <sfx2/sfxuno.hxx>
+
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::task;
+
+namespace desktop {
+
+class SplashScreen
+ : public ::cppu::WeakImplHelper2< XStatusIndicator, XInitialization >
+ , public IntroWindow
+{
+private:
+ // don't allow anybody but ourselves to create instances of this class
+ SplashScreen(const SplashScreen&);
+ SplashScreen(void);
+ operator =(const SplashScreen&);
+
+ SplashScreen(const Reference< XMultiServiceFactory >& xFactory);
+
+ DECL_LINK( AppEventListenerHdl, VclWindowEvent * );
+ virtual ~SplashScreen();
+ void initBitmap();
+ void updateStatus();
+
+ static SplashScreen *_pINSTANCE;
+ static const sal_Char *serviceName;
+ static const sal_Char *implementationName;
+ static const sal_Char *supportedServiceNames[];
+
+ static osl::Mutex _aMutex;
+ Reference< XMultiServiceFactory > _rFactory;
+
+ Bitmap _aIntroBmp;
+ sal_Int32 _iMax;
+ sal_Int32 _iProgress;
+ sal_Bool _bPaintBitmap;
+ sal_Bool _bPaintProgress;
+ sal_Bool _bVisible;
+ long _height, _width, _tlx, _tly, _barwidth;
+ const long _xoffset, _yoffset, _barheight, _barspace;
+
+
+public:
+ static Reference< XInterface > getInstance(const Reference < XMultiServiceFactory >& xFactory);
+
+ // static service info
+ static OUString impl_getImplementationName();
+ static Sequence<OUString> impl_getSupportedServiceNames();
+
+ // XStatusIndicator
+ virtual void SAL_CALL end() throw ( RuntimeException );
+ virtual void SAL_CALL reset() throw ( RuntimeException );
+ virtual void SAL_CALL setText(const OUString& aText) throw ( RuntimeException );
+ virtual void SAL_CALL setValue(sal_Int32 nValue) throw ( RuntimeException );
+ virtual void SAL_CALL start(const OUString& aText, sal_Int32 nRange) throw ( RuntimeException );
+
+ // XInitialize
+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
+ throw ( RuntimeException );
+
+ // workwindow
+ virtual void Paint( const Rectangle& );
+
+};
+
+}