summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2003-03-25 12:52:54 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2003-03-25 12:52:54 +0000
commit036ed05fe35044e49a91e12b6a8e5f36a5b9c4c2 (patch)
tree548f94ab4475b5abbcdaef7bb6705858ce0c17e9 /desktop
parent945abd8ce8e081e524ac5d34a63d37ad2b654a45 (diff)
MWS_SRX644: migrate branch mws_srx644 -> HEAD
Diffstat (limited to 'desktop')
-rw-r--r--desktop/inc/app.hxx46
-rw-r--r--desktop/prj/build.lst19
-rw-r--r--desktop/prj/d.lst27
-rw-r--r--desktop/scripts/makefile.mk89
-rw-r--r--desktop/scripts/scalc.sh4
-rw-r--r--desktop/scripts/sdraw.sh4
-rw-r--r--desktop/scripts/simpress.sh4
-rw-r--r--desktop/scripts/smaster.sh4
-rw-r--r--desktop/scripts/smath.sh4
-rw-r--r--desktop/scripts/soffice.sh238
-rw-r--r--desktop/scripts/sweb.sh4
-rw-r--r--desktop/scripts/swriter.sh4
-rw-r--r--desktop/source/app/app.cxx779
-rw-r--r--desktop/source/app/appinit.cxx134
-rw-r--r--desktop/source/app/cmdlineargs.cxx83
-rw-r--r--desktop/source/app/cmdlineargs.hxx16
-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.cxx297
-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
-rw-r--r--desktop/util/makefile.mk192
-rw-r--r--desktop/util/template.manifest10
-rw-r--r--desktop/util/verinfo.rc5
43 files changed, 3776 insertions, 1037 deletions
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index 135249e4bf05..a2f671e45278 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: app.hxx,v $
*
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
- * last change: $Author: lo $ $Date: 2002-11-06 14:32:44 $
+ * last change: $Author: hr $ $Date: 2003-03-25 13:50:49 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -62,6 +62,9 @@
#ifndef _DESKTOP_APP_HXX_
#define _DESKTOP_APP_HXX_
+// stl includes first
+#include <map>
+
#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#endif
@@ -69,12 +72,32 @@
#ifndef _SV_SVAPP_HXX
#include <vcl/svapp.hxx>
#endif
+#ifndef _VCL_TIMER_HXX_
+#include <vcl/timer.hxx>
+#endif
#ifndef _TOOLS_RESMGR_HXX
#include <tools/resmgr.hxx>
#endif
#ifndef _UTL_BOOTSTRAP_HXX
#include <unotools/bootstrap.hxx>
#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATOR_HPP_
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+#include <com/sun/star/uno/Reference.h>
+#endif
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+
+using namespace com::sun::star::task;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace rtl;
namespace desktop
{
@@ -83,10 +106,10 @@ namespace desktop
Description: Application-class
--------------------------------------------------------------------*/
class IntroWindow_Impl;
-class OOfficeAcceptorThread;
-class PluginAcceptThread;
class CommandLineArgs;
class Lockfile;
+class AcceptorMap : public std::map< OUString, Reference<XInitialization> > {};
+
class Desktop : public Application
{
public:
@@ -112,6 +135,9 @@ class Desktop : public Application
static void OpenClients();
static void OpenDefault();
+
+ DECL_LINK( EnableAcceptors_Impl, void*);
+
static void HandleAppEvent( const ApplicationEvent& rAppEvent );
static ResMgr* GetDesktopResManager();
static CommandLineArgs* GetCommandLineArgs();
@@ -138,7 +164,6 @@ class Desktop : public Application
sal_Bool InitializeInstallation( const rtl::OUString& rAppFilename );
sal_Bool InitializeConfiguration();
sal_Bool InitializeQuickstartMode( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rSMgr );
- sal_Bool InitializePluginMode( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rSMgr );
void HandleBootstrapPathErrors( ::utl::Bootstrap::Status, const ::rtl::OUString& aMsg );
void StartSetup( const ::rtl::OUString& aParameters );
@@ -151,6 +176,7 @@ class Desktop : public Application
const ::rtl::OUString& aFileURL );
void OpenStartupScreen();
+ Reference<XStatusIndicator> getSplashScreen();
void CloseStartupScreen();
void EnableOleAutomation();
DECL_LINK( AsyncInitFirstRun, void* );
@@ -164,6 +190,13 @@ class Desktop : public Application
/// does initializations which are necessary for the first run of the office
void DoFirstRunInitializations();
+ // on-demand acceptors
+ static AcceptorMap m_acceptorMap;
+ static osl::Mutex m_mtxAccMap;
+ static void createAcceptor(const OUString& aDescription);
+ static void enableAcceptors();
+ static void destroyAcceptor(const OUString& aDescription);
+
sal_Bool m_bMinimized;
sal_Bool m_bInvisible;
USHORT m_nAppEvents;
@@ -171,10 +204,9 @@ class Desktop : public Application
BootstrapError m_aBootstrapError;
Lockfile *m_pLockfile;
+ Timer m_firstRunTimer;
static ResMgr* pResMgr;
- static PluginAcceptThread* pPluginAcceptThread;
- static OOfficeAcceptorThread* pOfficeAcceptThread;
};
}
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index 7dfb86dbfe44..931c970878a1 100644
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -2,12 +2,15 @@ dt desktop : sc sd sw NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc get - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
-dt desktop\jobs get - all dt_jobs NULL
+dt desktop\jobs get - all dt_jobs NULL
dt desktop\res get - all dt_res NULL
-dt desktop\source\app nmake - all dt_app NULL
-dt desktop\source\offwrp nmake - all dt_offwrp NULL
-dt desktop\source\so_comp nmake - all dt_so_comp NULL
-dt desktop\win32\source nmake - w dt_wrapper NULL
-dt desktop\source\javaldx nmake - u dt_javaldx NULL
-dt desktop\source\pkgchk nmake - all dt_pkgchk NULL
-dt desktop\util nmake - all dt_util dt_app dt_offwrp dt_so_comp dt_wrapper.w NULL
+dt desktop\source\app nmake - all dt_app NULL
+dt desktop\source\offwrp nmake - all dt_offwrp NULL
+dt desktop\source\so_comp nmake - all dt_so_comp NULL
+dt desktop\source\offacc nmake - all dt_offac NULL
+dt desktop\source\splash nmake - all dt_spl NULL
+dt desktop\win32\source nmake - w dt_wrapper NULL
+dt desktop\source\javaldx nmake - u dt_javaldx NULL
+dt desktop\source\pkgchk nmake - all dt_pkgchk NULL
+dt desktop\scripts nmake - u dt_scripts NULL
+dt desktop\util nmake - all dt_util dt_app dt_offwrp dt_so_comp dt_spl dt_wrapper.w NULL
diff --git a/desktop/prj/d.lst b/desktop/prj/d.lst
index 4d28648a47c6..63f1e7df3d2c 100644
--- a/desktop/prj/d.lst
+++ b/desktop/prj/d.lst
@@ -2,6 +2,8 @@ mkdir: %_DEST%\bin%_EXT%\local
mkdir: %_DEST%\bin%_EXT%\remote2
..\%__SRC%\bin\soffice.exe %_DEST%\bin%_EXT%\soffice.bin
+..\%__SRC%\bin\so\soffice.exe %_DEST%\bin%_EXT%\so\soffice.exe
+..\%__SRC%\bin\so\soffice %_DEST%\bin%_EXT%\so\soffice.bin
..\%__SRC%\bin\soremote.exe %_DEST%\bin%_EXT%\remote\soffice.exe
..\%__SRC%\bin\solocal.exe %_DEST%\bin%_EXT%\local\soffice.exe
@@ -14,14 +16,20 @@ mkdir: %_DEST%\bin%_EXT%\remote2
..\%__SRC%\bin\solocal.exe %_DEST%\bin%_EXT%\local\jvmsetup.exe
..\%__SRC%\bin\soffice.exe %_DEST%\bin%_EXT%\soffice.exe
+..\%__SRC%\bin\*.exe.manifest %_DEST%\bin%_EXT%\*.exe.manifest
..\%__SRC%\bin\wrp?????.dll %_DEST%\bin%_EXT%\wrp?????.dll
+..\%__SRC%\bin\spl?????.dll %_DEST%\bin%_EXT%\spl?????.dll
..\%__SRC%\bin\eval.dll %_DEST%\bin%_EXT%\eval.dll
..\%__SRC%\lib\libwrp?????.so %_DEST%\lib%_EXT%\libwrp?????.so
-..\%__SRC%\lib\libdsk?????.so %_DEST%\lib%_EXT%\libdsk?????.so
..\%__SRC%\lib\libwrp*.dylib %_DEST%\lib%_EXT%\libwrp*.dylib
+..\%__SRC%\lib\libspl?????.so %_DEST%\lib%_EXT%\libspl?????.so
+..\%__SRC%\lib\libspl*.dylib %_DEST%\lib%_EXT%\libspl*.dylib
..\%__SRC%\lib\libeval.so %_DEST%\lib%_EXT%\libeval.so
+..\%__SRC%\bin\offacc?????.dll %_DEST%\bin%_EXT%\offacc?????.dll
+..\%__SRC%\lib\liboffacc?????.so %_DEST%\lib%_EXT%\liboffacc?????.so
..\%__SRC%\bin\soffice %_DEST%\bin%_EXT%\soffice.bin
+..\%__SRC%\bin\so\soffice %_DEST%\bin%_EXT%\so\soffice.bin
..\%__SRC%\bin\sweb %_DEST%\bin%_EXT%\sweb.bin
..\%__SRC%\bin\javaldx %_DEST%\bin%_EXT%\javaldx
@@ -38,5 +46,22 @@ mkdir: %_DEST%\bin%_EXT%\remote2
..\%__SRC%\misc\*staticdatamembers.cxx %_DEST%\inc%_EXT%\*staticdatamembers.cxx
..\%__SRC%\misc\*staticdatamembers.h* %_DEST%\inc%_EXT%\*staticdatamembers.h*
+..\%__SRC%\misc\soffice.sh %_DEST%\bin%_EXT%\soffice
+..\%__SRC%\misc\sagenda.sh %_DEST%\bin%_EXT%\sagenda
+..\%__SRC%\misc\scalc.sh %_DEST%\bin%_EXT%\scalc
+..\%__SRC%\misc\sdraw.sh %_DEST%\bin%_EXT%\sdraw
+..\%__SRC%\misc\sfax.sh %_DEST%\bin%_EXT%\sfax
+..\%__SRC%\misc\simpress.sh %_DEST%\bin%_EXT%\simpress
+..\%__SRC%\misc\slabel.sh %_DEST%\bin%_EXT%\slabel
+..\%__SRC%\misc\sletter.sh %_DEST%\bin%_EXT%\sletter
+..\%__SRC%\misc\smaster.sh %_DEST%\bin%_EXT%\smaster
+..\%__SRC%\misc\smath.sh %_DEST%\bin%_EXT%\smath
+..\%__SRC%\misc\smemo.sh %_DEST%\bin%_EXT%\smemo
+..\%__SRC%\misc\svcard.sh %_DEST%\bin%_EXT%\svcard
+..\%__SRC%\misc\sweb.sh %_DEST%\bin%_EXT%\sweb
+..\%__SRC%\misc\swriter.sh %_DEST%\bin%_EXT%\swriter
+..\%__SRC%\misc\fromTemplate.sh %_DEST%\bin%_EXT%\fromtemplate
+..\%__SRC%\misc\nswrapper.sh %_DEST%\bin%_EXT%\nswrapper
+
dos: sh -c "if test %OS% = MACOSX; then create-bundle %_DEST%\lib%_EXT%\*.dylib; fi"
dos: sh -c "if test %OS% = MACOSX; then create-libstatic-link %_DEST%\lib%_EXT%; fi"
diff --git a/desktop/scripts/makefile.mk b/desktop/scripts/makefile.mk
new file mode 100644
index 000000000000..801217ee691e
--- /dev/null
+++ b/desktop/scripts/makefile.mk
@@ -0,0 +1,89 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# 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=desktop
+TARGET=scripts
+
+# --- Settings -----------------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Targets -------------------------------------------------------------
+
+UNIXTEXT= \
+ $(MISC)$/nswrapper.sh \
+ $(MISC)$/fromTemplate.sh \
+ $(MISC)$/sagenda.sh \
+ $(MISC)$/soffice.sh \
+ $(MISC)$/scalc.sh \
+ $(MISC)$/sdraw.sh \
+ $(MISC)$/sfax.sh \
+ $(MISC)$/simpress.sh \
+ $(MISC)$/slabel.sh \
+ $(MISC)$/sletter.sh \
+ $(MISC)$/smaster.sh \
+ $(MISC)$/smath.sh \
+ $(MISC)$/smemo.sh \
+ $(MISC)$/svcard.sh \
+ $(MISC)$/sweb.sh \
+ $(MISC)$/swriter.sh
+
+.INCLUDE : target.mk
+
diff --git a/desktop/scripts/scalc.sh b/desktop/scripts/scalc.sh
new file mode 100644
index 000000000000..b1c3eebaff1f
--- /dev/null
+++ b/desktop/scripts/scalc.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -calc "$@"
diff --git a/desktop/scripts/sdraw.sh b/desktop/scripts/sdraw.sh
new file mode 100644
index 000000000000..fe0338a89394
--- /dev/null
+++ b/desktop/scripts/sdraw.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -draw "$@"
diff --git a/desktop/scripts/simpress.sh b/desktop/scripts/simpress.sh
new file mode 100644
index 000000000000..20cae509b10a
--- /dev/null
+++ b/desktop/scripts/simpress.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -impress "$@"
diff --git a/desktop/scripts/smaster.sh b/desktop/scripts/smaster.sh
new file mode 100644
index 000000000000..affd55b265b0
--- /dev/null
+++ b/desktop/scripts/smaster.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -global "$@"
diff --git a/desktop/scripts/smath.sh b/desktop/scripts/smath.sh
new file mode 100644
index 000000000000..ae4e3670a8d5
--- /dev/null
+++ b/desktop/scripts/smath.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -math "$@"
diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh
new file mode 100644
index 000000000000..c2b773014e2e
--- /dev/null
+++ b/desktop/scripts/soffice.sh
@@ -0,0 +1,238 @@
+#!/bin/sh
+#*************************************************************************
+#
+# 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 WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRUNTIES 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+#
+# STAR_PROFILE_LOCKING_DISABLED=1
+# export STAR_PROFILE_LOCKING_DISABLED
+#
+
+#
+# SAL_ENABLE_FILE_LOCKING=1
+# export SAL_ENABLE_FILE_LOCKING
+#
+
+# uncomment this to remote start soffice on hostname
+# SO_REMOTE_START=rsh
+# SO_REMOTE_APPLICATION=hostname:/fully_quallified_path/soffice
+
+# set -x
+
+# resolve installation directory
+sd_cwd="`pwd`"
+if [ -h "$0" ] ; then
+ sd_basename=`basename "$0"`
+ sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
+ sd_sub=`echo $sd_script | cut -f1 -d/`
+ if [ "$sd_sub" = ".." -a "$SO_MODE" = "" ]; then
+ SO_MODE="remote"
+ fi
+ cd "`dirname "$0"`"
+ cd "`dirname "$sd_script"`"
+else
+ cd "`dirname "$0"`"
+fi
+
+sd_prog="`pwd`"
+if [ "$SO_MODE" = "" ]; then
+ SO_MODE="local";
+fi
+export SO_MODE
+
+sd_progsub=$sd_prog/$SO_MODE
+
+cd ..
+sd_binary=`basename "$0"`".bin"
+sd_inst="`pwd`"
+
+# change back directory
+cd "$sd_cwd"
+
+# check if all required patches are installed
+if [ -x "$sd_prog/sopatchlevel.sh" ]; then
+ "$sd_prog/sopatchlevel.sh"
+ if [ $? -eq 1 ]; then
+ exit 0
+ fi
+fi
+
+# set search path for shared libraries
+sd_platform=`uname -s`
+case $sd_platform in
+ SunOS)
+ LD_LIBRARY_PATH="$sd_progsub":"$sd_prog":/usr/openwin/lib:/usr/dt/lib:$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH
+ ;;
+
+ AIX)
+ LIBPATH="$sd_progsub":"$sd_prog":$LIBPATH
+ export LIBPATH
+ ;;
+
+ HP-UX)
+ SHLIB_PATH="$sd_progsub":"$sd_prog":/usr/openwin/lib:$SHLIB_PATH
+ export SHLIB_PATH
+ ;;
+
+ IRIX*)
+ LD_LIBRARYN32_PATH=:"$sd_progsub":"$sd_prog":$LD_LIBRARYN32_PATH
+ export LD_LIBRARYN32_PATH
+ ;;
+
+ *)
+ LD_LIBRARY_PATH="$sd_progsub":"$sd_prog":$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH
+ ;;
+esac
+
+# extend the ld_library_path for java: javaldx checks the sofficerc for us
+java_ld_library_path=`"$sd_prog/javaldx" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"`
+if [ "$java_ld_library_path" != "" ] ; then
+ case $sd_platform in
+ AIX)
+ LIBPATH=${java_ld_library_path}:${LIBPATH}
+ ;;
+ HP-UX)
+ SHLIB_PATH=${java_ld_library_path}:${SHLIB_PATH}
+ ;;
+ IRIX*)
+ LD_LIBRARYN32_PATH=${java_ld_library_path}:${LD_LIBRARYN32_PATH}
+ ;;
+ *)
+ LD_LIBRARY_PATH=${java_ld_library_path}:${LD_LIBRARY_PATH}
+ ;;
+ esac
+fi
+
+# set java environment variables
+THREADS_TYPE=native_threads
+
+# misc. environment variables
+OPENOFFICE_MOZILLA_FIVE_HOME="$sd_inst/program"
+
+unset XENVIRONMENT
+
+export OPENOFFICE_MOZILLA_FIVE_HOME
+
+# uncomment line below to disable anti aliasing of fonts
+#SAL_ANTIALIAS_DISABLE=true; export SAL_ANTIALIAS_DISABLE
+
+# error message function
+err () {
+ echo "`basename $0`: $@" 1>&2
+ exit 1
+}
+
+#
+# parse command line arguments
+#
+
+plugin_mode=false
+for DUMMY in ${1+"$@"}
+do
+ case $1 in
+
+ ?display)
+ if [ $# -lt 2 ]; then
+ err "$1 option requires a display name"
+ fi
+ DISPLAY=$2
+ export DISPLAY
+ shift; shift
+ ;;
+ ?plugin)
+
+ plugin_mode=true
+ shift
+ ;;
+ *)
+ break;
+ ;;
+ esac
+done
+
+# start soffice by remote shell
+if [ "X${SO_REMOTE_START}" = "Xrsh" ]; then
+ remote_server=`echo ${SO_REMOTE_APPLICATION} | sed 's/:.*//g'`
+ remote_path=`echo ${SO_REMOTE_APPLICATION} | sed 's/.*://g'`
+ echo remote_server=\"${remote_server}\" remote_path=\"${remote_path}\"
+ if [ "X${DISPLAY}" = "X" ]; then
+ local_display=`uname -n`:0
+ else
+ local_display=${DISPLAY}
+ fi
+
+ if [ "X${remote_server}" != "X" -a "X${remote_path}" != "X" ]; then
+ rsh ${remote_server} ${remote_path} -norsh -display ${local_display}
+ exit 0
+ else
+ err "invalid rsh arguments host=\"$remote_server\", command=\"${remote_path}\""
+ fi
+fi
+
+# set path so that other apps can be started from soffice just by name
+PATH="$sd_prog":$PATH
+export PATH
+
+# execute soffice binary
+if [ "X${plugin_mode}" = "Xtrue" ]; then
+ SAL_IGNOREXERRORS=true
+ export SAL_IGNOREXERRORS
+ exec "$sd_prog/$sd_binary" -plugin "$@"
+else
+ exec "$sd_prog/$sd_binary" "$@"
+fi
+
diff --git a/desktop/scripts/sweb.sh b/desktop/scripts/sweb.sh
new file mode 100644
index 000000000000..6d814e26e8aa
--- /dev/null
+++ b/desktop/scripts/sweb.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -web "$@"
diff --git a/desktop/scripts/swriter.sh b/desktop/scripts/swriter.sh
new file mode 100644
index 000000000000..34ca9fee30c7
--- /dev/null
+++ b/desktop/scripts/swriter.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cmd=`dirname "$0"`/soffice
+exec "$cmd" -writer "$@"
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 50d1d53d769e..7ecf81b40754 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,6 +1195,14 @@ void Desktop::Main()
}
CommandLineArgs* pCmdLineArgs = GetCommandLineArgs();
+
+#ifndef UNX
+ if ( pCmdLineArgs->IsHelp() ) {
+ displayCmdlineHelp();
+ return;
+ }
+#endif
+
Reference< XMultiServiceFactory > xSMgr = ::comphelper::getProcessServiceFactory();
ResMgr::SetReadStringHook( ReplaceStringHookProc );
@@ -1159,12 +1210,13 @@ void Desktop::Main()
// 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() ) {
+ 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;
- SetDisplayName( aTitle );
+ rSplashScreen->setValue(15);
- // register sevices before we do anything else
+ // 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;
+
+ 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();
+ }
+ 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;
+ }
+ */
- {
- 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;
+ sal_Bool bTerminateRequested = sal_False;
- bUseSystemFileDialog = aMiscOptions.UseSystemFileDialog();
- aMiscOptions.SetUseSystemFileDialog( sal_False );
- }
+ // Preload function depends on an initialized sfx application!
+ bTerminateRequested = OEMPreloadProcess();
+ rSplashScreen->setValue(75);
- Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_DIALOG );
+ 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 );
+ }
- InitTestToolLib();
+ // use system window dialogs
+ Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_DIALOG );
- if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
- InitializeQuickstartMode( xSMgr );
+ // initialize test-tool library (if available)
+ InitTestToolLib();
+ rSplashScreen->setValue(80);
- if ( pCmdLineArgs->IsPlugin() )
- InitializePluginMode( xSMgr );
+ if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
+ InitializeQuickstartMode( xSMgr );
- 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 ( !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;
+ }
+ */
+ }
- // 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;
+ // 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;
- Application::WaitForClientConnect();
+ Application::WaitForClientConnect();
- // 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 ) );
+ // 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 ) );
- // Acquire solar mutex just before we enter our message loop
- if ( nAcquireCount )
- Application::AcquireSolarMutex( nAcquireCount );
+ // Post event to enable acceptors
+ Application::PostUserEvent( LINK( this, Desktop, EnableAcceptors_Impl) );
- // call Application::Execute to process messages in vcl message loop
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "call ::Application::Execute" );
- Execute();
+ // Acquire solar mutex just before we enter our message loop
+ if ( nAcquireCount )
+ Application::AcquireSolarMutex( nAcquireCount );
- // Restore old value
- if ( pCmdLineArgs->IsHeadless() )
- SvtMiscOptions().SetUseSystemFileDialog( bUseSystemFileDialog );
+ // 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& )
{
@@ -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();
}
@@ -1696,6 +1751,7 @@ void Desktop::OpenDefault()
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 );
- }
+ 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::CloseStartupScreen()
-{
- // close splash screen and delete window
- delete m_pIntro;
- m_pIntro = 0;
- RTL_LOGFILE_TRACE( "desktop (cd100003) ::Desktop::CloseStartupScreen" );
-}
-
-
// ========================================================================
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 4fe9bab564e4..a86b7f5d312c 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
@@ -244,6 +252,27 @@ 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
{
Reference<XComponentContext> xComponentContext = ::cppu::defaultBootstrap_InitialComponentContext();
@@ -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 118a32b9bccd..1d470532a54c 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,7 +207,7 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
}
else if ( aArgStr.EqualsIgnoreCaseAscii( "-view" ))
{
- // Print to default printer
+ // open in viewmode
bOpenEvent = sal_False;
bViewEvent = sal_True;
bPrintEvent = sal_False;
@@ -216,7 +215,6 @@ void CommandLineArgs::ParseCommandLine_String( const ::rtl::OUString& aCmdLineSt
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 c9f6faf9af30..a61f248faa92 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,11 +108,12 @@ 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,
@@ -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 000000000000..14c6319f5ea6
--- /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 000000000000..3fe92a86b479
--- /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 798c7a3124c0..a5a9e045b830 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;
-}
-// ----------------------------------------------------------------------------
-
-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 );
+ initializeUserData(xProvider);
- 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 000000000000..bdf6baee3d5a
--- /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 rservs.";
+extern const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de proprit intellectuels relatants la technologie incorpore dans ce produit. En particulier, et sans la limitation, ces droits de proprit intellectuels peuvent inclure un ou plus des brevets amricains numrs http://www.sun.com/patents et un ou les brevets plus supplmentaires 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 000000000000..bebf06e477bd
--- /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 rservs.";
+extern const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de proprit intellectuels relatants la technologie incorpore dans ce produit. En particulier, et sans la limitation, ces droits de proprit intellectuels peuvent inclure un ou plus des brevets amricains numrs http://www.sun.com/patents et un ou les brevets plus supplmentaires 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 protg par un copyright et distribu avec des licences qui en restreignent l'utilisation, la copie, la distribution, et la dcompilation. Aucune partie de ce produit ou document ne peut tre reproduite sous aucune forme, par quelque moyen que ce soit, sans l'autorisation pralable et crite de Sun et de ses bailleurs de licence, s'il y ena.";
+extern const char copyright_text_24[] = "Le logiciel dtenu par des tiers, et qui comprend la technologie relative aux polices de caractres, est protg 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. Systme de correction orthographique International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs.";
+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 dposes de Sun Microsystems, Inc. aux tats-Unis et dans d'autres pays.";
+extern const char copyright_text_29[] = "UNIX est une marque dpose aux tats-Unis et dans d'autres pays et licencie exclusivement par X/Open Company, Ltd.";
+extern const char copyright_text_30[] = "Les Screen Beans et les objets graphiques prdessins Screen Beans sont des marques dposes de A Bit Better Corporation. International CorrectSpell est une marque dpose de Lernout & Hauspie Speech Products N.V.";
+extern const char copyright_text_31[] = "Systmes de correction orthographique sudois, russe, norvgien, anglais, nerlandais et danois International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_32[] = "Systmes de correction orthographique espagnol et franais International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots fournie par la Librairie Larousse. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_33[] = "Systme de correction orthographique anglais australien International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. labor partir de The Macquarie Dictionary, deuxime dition mise jour. Copyright Macquarie University NSW. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_34[] = "Systme de correction orthographique catalan International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots catalans Copyright 1992 Universitat de Barcelona. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_35[] = "Systme de correction orthographique tchque International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots fournie par Jan Hajic. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_36[] = "Systme de correction orthographique finlandais International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots fournie par le University of Helsinki Institute pour la langue finlandaise et par le DrKolbjorn Heggstad. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_37[] = "Systme de correction orthographique allemand International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots fournie par Langenscheidt K.G. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_38[] = "Systme de correction orthographique italien International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Adapt partir de la liste de mots fournie par Zanichelli S.p.A. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_39[] = "Systme de correction orthographique portugais International CorrectSpell Copyright 1995 de Lernout & Hauspie Speech Products N.V. Tous droits rservs. Certaines parties ont t adaptes partir du Dicionario Academico da Lingua Portuguesa Copyright 1992 de Porto Editora. Il est interdit de reproduire ou de dsassembler les algorithmes ou les bases de donnes incorpors.";
+extern const char copyright_text_40[] = "Acquisitions fdrales: logiciel commercial; les utilisateurs gouvernementaux sont soumis aux conditions gnrales standard de la licence.";
+extern const char copyright_text_41[] = "LA DOCUMENTATION est fournie TELLE QUELLE et TOUTES LES CONDITIONS, REPRSENTATIONS 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 REJETES, EXCEPT DANS LE CAS O L'EXCLUSION OU LA LIMITATION DE TELLES GARANTIES NE SERAIT PAS AUTORISE PAR LA LGISLATION EN VIGUEUR.";
+
diff --git a/desktop/source/app/desktop.hrc b/desktop/source/app/desktop.hrc
index 53bcc98cac6d..76d31e879df8 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 7e466a4d28a5..0f3b3d6d97a0 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 dtect une configuration java.ini dfectueuse. %PRODUCTNAME requiert le fichier java.ini. Cliquez sur 'OK' pour lancer le Setup de Java et installer un JRE ou choisir parmi les JREs dj installs.\nSi vous ne souhaitez pas installer de JRE, cliquez sur 'Annuler', ce qui annulera galement l'opration en cours.";
- Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION ha detectado una configuracin de java.ini defectuosa. %PRODUCTNAME requiere el archivo java.ini. Pulse en 'Aceptar' para iniciar el programa de instalacin de Java e instalar un entorno de ejecucin Java JRE (Java Runtime Environment) o para seleccionar uno ya instalado.\nSi no desea instalar un entorno de ejecucin Java pulse en 'Cancelar'. Esta accin tambin cancelar la operacin actual. ";
+ Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION ha detectado una configuracin de java.ini defectuosa. %PRODUCTNAME requiere el archivo java.ini. Pulse en 'Aceptar' para iniciar el programa de instalacin de Java e instalar un entorno de ejecucin de Java JRE (Java Runtime Environment) o para seleccionar uno ya instalado.\nSi no desea instalar un entorno de ejecucin Java pulse en 'Cancelar'. Esta accin tambin cancelar la operacin 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 の中から1つ選択することができます。\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'opration en cours requiert Java, mais le support Java a t dsactiv. Cliquez sur 'OK' pour activer le support Java. Pour interrompre l'opration en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operacin requiere Java, sin embargo el apoyo de Java est desactivado. Para volver a activarlo pulse en 'Aceptar'. Para finalizar la operacin actual pulse en 'Cancelar'. ";
+ Message[ spanish ] = "Esta operacin requiere Java, sin embargo la admisin de Java est desactivada. Para volver a activarla pulse en 'Aceptar'. Para finalizar la operacin 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'opration 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 dtecter ce JRE.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opration en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operacin requiere un entorno de ejecucin Java (JRE). %PRODUCTNAME %PRODUCTVERSION se configur para utilizar el entorno de ejecucin Java (JRE) ubicado en la carpeta %s. Este JRE no se ha encontrado. Para iniciar el programa de instalacin de Java pulse en 'Aceptar'. Para finalizar la operacin actual pulse en 'Cancelar'.";
+ Message[ french ] = "L'opration en cours requiert un environnement d'excution Java (JRE). %PRODUCTNAME %PRODUCTVERSION a t configur pour utiliser le JRE plac dans le dossier %s. Il est cependant impossible de dtecter ce JRE.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opration en cours, cliquez sur 'Annuler'.";
+ Message[ spanish ] = "Esta operacin requiere un entorno de ejecucin de Java (JRE). %PRODUCTNAME %PRODUCTVERSION se configur para utilizar el entorno de ejecucin Java (JRE) ubicado en la carpeta %s. Este JRE no se ha encontrado. Para iniciar el programa de instalacin de Java pulse en 'Aceptar'. Para finalizar la operacin 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'opration en cours requiert un Environnement Runtime Java (JRE). Le JRE dtect par %PRODUCTNAME %PRODUCTVERSION est cependant dfectueux.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opration en cours, cliquez sur 'Annuler'.";
- Message[ spanish ] = "Esta operacin requiere un entorno de ejecucin Java (Java Runtime Environment -JRE). Sin embargo el JRE que %PRODUCTNAME %PRODUCTVERSION ha detectado es defectuoso.\nPara iniciar el programa de instalacin de Java pulse en 'Aceptar'. Para cancelar la operacin pulse en 'Cancelar'.";
+ Message[ french ] = "L'opration en cours requiert un environnement d'excution Java (JRE). Le JRE dtect par %PRODUCTNAME %PRODUCTVERSION est cependant dfectueux.\nCliquez sur 'OK' pour lancer le Setup de Java. Pour interrompre l'opration en cours, cliquez sur 'Annuler'.";
+ Message[ spanish ] = "Esta operacin requiere un entorno de ejecucin de Java (Java Runtime Environment -JRE). Sin embargo el JRE que %PRODUCTNAME %PRODUCTVERSION ha detectado es defectuoso.\nPara iniciar el programa de instalacin de Java pulse en 'Aceptar'. Para cancelar la operacin 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 dmarrez le Setup de %PRODUCTNAME %PRODUCTVERSION. Choisissez 'Rparation'.";
- Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION no pudo iniciar Java LDX. Cierre %PRODUCTNAME e inicie el programa de instalacin de %PRODUCTNAME %PRODUCTVERSION. Seleccione 'Repair'.";
+ Message[ spanish ] = "%PRODUCTNAME %PRODUCTVERSION no pudo iniciar Java LDX. Cierre %PRODUCTNAME e inicie el programa de instalacin 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 redmarrer %PRODUCTNAME %PRODUCTVERSION afin que les nouveaux paramtres Java puissent tre appliqus.";
+ Message[ spanish ] = "Debe reiniciar %PRODUCTNAME %PRODUCTVERSION para que la configuracin 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 msta starta om %PRODUCTNAME %PRODUCTVERSION fr att Java-instllningarna ska trda 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 plikw";
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 quizs podrn recuperarse\nal iniciar de nuevo el programa." ;
Message [ french ] = "Une erreur irrcuprable s'est produite.\n\nTous les fichiers modifis ont t sauvegards\net devraient tre restaurs au\nredmarrage 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 ] = "Wystpi nieodwracalny bd.\n\nWszystkie zmodyfikowane pliki zostay jednak\nzabezpieczone i zostan prawdopodobnie przywrcone przy nastpnym 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 ] = "Dzeltilemeyen bir hata olutu.\n\nDeitirilen tm dosyalar\nkaydedildi ve muhtemelen uygulama yeniden balatldnda\nkurtarlabilecek.";
Message[ language_user1 ] = " ";
Message[ catalan ] = "S'ha produt 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 kynnistt ohjelman uudelleen.";
+ Message[ finnish ] = "On ilmennyt peruuttamaton virhe.\n\nKaikki muokatut tiedostot on tallennettu\nja ne voidaan ehk palauttaa, kun kynnistt\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 ] = "Impossvel iniciar a aplicao. ";
- 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 aplicacin. ";
- Text[ finnish ] = "The program cannot be started. ";
+ Text[ finnish ] = "Sovelluksen kynnistys ei onnistu. ";
Text[ italian ] = "Impossibile avviare l'applicazione. ";
Text[ danish ] = "Programmet kan ikke startes. ";
Text[ swedish ] = "Det gr 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 ] = "Impossvel encontrar o caminho de configurao \"$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 dtecter le chemin de configuration \"$1\" !";
Text[ spanish ] = "No se encontr el directorio de configuracin \"$1\".";
- Text[ finnish ] = "The configuration directory \"$1\" is missing.";
+ Text[ finnish ] = "Mrityshakemistoa \"$1\" ei lydy.";
Text[ italian ] = "Impossibile trovare il percorso di configurazione \"$1\".";
Text[ danish ] = "\"Kunne ikke finde konfigurationsstien \"\"$1\"\".\"";
Text[ swedish ] = "Konfigurationsskvgen \"$1\" hittades inte.";
Text[ polish ] = "Nie znaleziono cieki 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 instalao no vlido.";
- 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 instalacin no es vlida.";
- 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 ] = "Installationsskvgen 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 impossvel determinar o caminho de instalao.";
- Text[ russian ] = " .";
+ Text[ russian ] = " .";
Text[ greek ] = "The installation path is not available.";
Text[ dutch ] = "Geen installatiepad beschikbaar.";
Text[ french ] = "Impossible de dterminer le chemin d'installation !";
Text[ spanish ] = "No se pudo determinar la ruta de instalacin.";
- Text[ finnish ] = "The installation path is not available.";
+ Text[ finnish ] = "Asennuspolku ei ole kytettviss.";
Text[ italian ] = "Impossibile definire il percorso di installazione.";
Text[ danish ] = "Installationsstien kunne ikke findes.";
Text[ swedish ] = "Det gick inte att bestmma installationsskvgen.";
@@ -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 sisinen virhe.";
Text[ italian ] = "Si verificato un errore interno.";
Text[ danish ] = "Der er opstet en intern fejl.";
Text[ swedish ] = "Det har uppsttt 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 configurao \"$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 dfectueux.";
Text[ spanish ] = "El archivo de configuracin \"$1\" est daado.";
- Text[ finnish ] = "The configuration file \"$1\" is corrupt.";
+ Text[ finnish ] = "Mritystiedosto \"$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 ] = "Impossvel encontrar o ficheiro de configurao \"$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 dtecter le fichier de configuration \"$1\" !";
Text[ spanish ] = "No se encontr el archivo de configuracin \"$1\".";
- Text[ finnish ] = "The configuration file \"$1\" is missing.";
+ Text[ finnish ] = "Mritystiedostoa \"$1\" ei lytynyt.";
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 configuracin \"$1\" no apoya esta versin.";
- Text[ finnish ] = "The main configuration file \"$1\" does not support the current version.";
+ Text[ spanish ] = "El archivo de configuracin \"$1\" no admite esta versin.";
+ Text[ finnish ] = "Mritystiedosto \"$1\" ei tue nykyist versiota.";
Text[ italian ] = "Il file di configurazione principale \"$1\" non supporta questa versione.";
Text[ danish ] = "\"Konfigurationsfilen \"\"$1\"\" understtter ikke denne version.\"";
Text[ swedish ] = "Konfigurationsfilen \"$1\" understder inte den hr versionen.";
Text[ polish ] = "Plik konfiguracyjny \"$1\" nie obsuguje 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 no est disponvel.";
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 kytettviss.";
Text[ italian ] = "Il gestore dei componenti non disponibile.";
Text[ danish ] = "Komponentmanageren er ikke til rdighed.";
Text[ swedish ] = "Komponenthanteraren r inte tillgnglig.";
@@ -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 crer le gestionnaire de configuration !";
Text[ spanish ] = "No se puede crear el gestor de configuracin.";
- Text[ finnish ] = "The configuration service is not available.";
+ Text[ finnish ] = "Mrityspalvelua ei ole kytettviss.";
Text[ italian ] = "Impossibile creare il gestore di configurazione.";
Text[ danish ] = "Konfigurationsmanageren kan ikke oprettes.";
Text[ swedish ] = "Det gr 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 aplicao Setup para reparar a instalao?";
- 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 rparer l'installation ?";
- Text[ spanish ] = "Desea iniciar el programa de instalacin setup para reparar la instalacin?";
- Text[ finnish ] = "Start setup application to repair installation?";
+ Text[ spanish ] = "Desea iniciar el programa de instalacin para reparar la instalacin?";
+ Text[ finnish ] = "Haluatko kynnist 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 vrifier l'installation ?";
- Text[ spanish ] = "Desea iniciar el programa de instalacin setup para comprobar la instalacin?";
- Text[ finnish ] = "Start setup application to check installation?";
+ Text[ spanish ] = "Desea iniciar el programa de instalacin para comprobar la instalacin?";
+ Text[ finnish ] = "Haluatko kynnist 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 impossvel iniciar a aplicao 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 dmarrer manuellement.";
- Text[ spanish ] = "No se pudo iniciar automticamente el programa de instalacin setup. Incielo manualmente.";
- Text[ finnish ] = "Couldn't start setup application! Please start it manually.";
+ Text[ spanish ] = "No se pudo iniciar automticamente el programa de instalacin. Incielo manualmente.";
+ Text[ finnish ] = "Asennusohjelmaa ei voitu kynnist automaattisesti. Kynnist 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 powiodo si! Naley uruchomi j rcznie.";
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 rparer l'installation, lancez l'application Setup partir du CD-ROM ou depuis le rpertoire contenant le paquetage d'installation.";
Text[ spanish ] = "Para reparar la instalacin inicie la aplicacin de Setup, o programa de instalacin, desde el CD o desde la carpeta que contenga los archivos de instalacin. ";
- 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 sisltvst hakemistosta kynnistmll 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 frn cd:n eller frn katalogen dr installationspaketen finns fr 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 ] = "Rptez 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 persnlichen 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 dmarrage en utilisant les paramtres personnels stocks en local. ";
+ Text[ spanish ] = "StarOffice continuar el proceso de inicializacin utilizando la configuracin 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 anvnda dina personliga instllningar som r sparade lokalt fr att fortstta 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 genderten persnlichen Einstellungen werden von StarOffice zunchst lokal gespeichert und beim nchsten 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 apportes aux paramtres personnels vont tre stockes en local ; une synchronisation aura lieu au prochain dmarrage de StarOffice. ";
+ Text[ spanish ] = "Las modificaciones realizadas en la configuracin personal se guardarn a nivel local y se sincronizarn la prxima 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 instllningar sparas lokalt och synkroniseras nsta gng 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 fr den Zugriff auf die zentrale Konfiguration sind unvollstndig. " ;
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 paramtres de dmarrage pour l'accs la configuration centrale ne sont pas complets. ";
+ Text[ spanish ] = "La configuracin de inicio para acceder a la configuracin 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 ] = "Startinstllningarna fr att komma t den centrala konfiguration r ofullstndiga. ";
+ 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 conexin con la configuracin 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 knnen 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 ] = "Accs la configuration centrale refus : droits d'accs insuffisants. ";
+ Text[ spanish ] = "No puede acceder a la configuracin 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 drfr att du saknar tkomstrttigheter. ";
+ 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 conexin con la configuracin central. El nombre de usuario o la contrasea 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. Anvndarnamnet eller lsenordet 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 gewhlte Authentifizierungsmethode fr den Zugriff auf die zentrale Konfiguration wird nicht untersttzt. " ;
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 mthode d'authentification spcifie pour l'accs la configuration centrale n'est pas supporte. ";
+ Text[ spanish ] = "El mtodo de autentificacin especificado para acceder a la configuracin 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 fr tkomst till den centrala konfigurationen stds 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 gnrale s'est produite lors de l'accs la configuration centrale. ";
+ Text[ spanish ] = "Se produjo un error general mientras se acceda a la configuracin 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 uppsttt ett generellt fel vid frsket 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 genderten persnlichen Einstellungen knnen 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 paramtres personnels modifis impossible : droits d'accs insuffisants. ";
+ Text[ spanish ] = "Las modificaciones realizadas en la configuracin 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 gr inte att spara dina ndrade personliga instllningar centralt eftersom tkomstrttigheter 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 persnliche %PRODUCTNAME-Einstellungen gefunden. \n"
+ "Mchten Sie diese in die zentrale Konfiguration bertragen, um weiter damit arbeiten zu knnen?" ;
+ 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 configuracin personal de %PRODUCTNAME en el ordenador. \nDesea transferir esta configuracin a la configuracin 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-instllningar har hittats p din dator. \nVill du verfra de hr instllningarna till den centrala konfigurationen fr att fortstta 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 paramtres personnels %PRODUCTNAME ont t dtects sur votre ordinateur.\nSouhaitez-vous les transfrer 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 dsactiv";
- Text[ spanish ] = "Soporte Java desactivado";
+ Text[ spanish ] = "Admisin 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 dtecter 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 configuracin 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 drfr att det inte gr att komma t %PRODUCTNAME-konfigurationsdata.\n\nVnd dig till din systemadministratr.";
+ 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 dmarrer %PRODUCTNAME : une erreur s'est produite lors de l'accs aux donnes de configuration %PRODUCTNAME.\n\nVeuillez contacter votre administrateur systme.";
+ 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 ] = "Fljande interna fel har uppsttt: ";
+ 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 persnlichen Einstellungen zu\n"\
- "oder hat diese nicht wieder freigegeben.\n"\
- "Der gleichzeitige Zugriff kann zu Inkonsistenzen in Ihren persnlichen Einstellungen fhren.\n"\
- "Bevor Sie Fortfahren sollten Sie sicher stellen, dass %PRODUCTNAME auf dem Host '$h' vom\n"\
- "Benutzer '$u' beendet wird.\n"\
- "\n"\
- "Mchten 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 persnlichen Einstellungen zu "
+ "oder hat diese nicht wieder freigegeben.\n"
+ "Der gleichzeitige Zugriff kann zu Inkonsistenzen in Ihren persnlichen Einstellungen fhren. "
+ "Bevor Sie Fortfahren sollten Sie sicher stellen, dass %PRODUCTNAME auf dem Host '$h' vom "
+ "Benutzer '$u' beendet wird.\n"
+ "\n"
+ "Mchten 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 accs vos paramtres personnels ou les bloque.\nUn accs simultan peut provoquer des incohrences dans vos paramtres personnels. Avant de continuer, assurez-vous que l'utilisateur '$u' quitte bien %PRODUCTNAME sur l'hte '$h'.\n\ntes-vous sr de vouloir continuer ?";
+ Message[ spanish ] = "Otra instancia de %PRODUCTNAME est accediendo a su configuracin personal o la configuracin personal est bloqueada.\nUn acceso simultneo puede provocar incoherencias en la configuracin personal. Antes de continuar asegrese de que el usuario '$u' cierre %PRODUCTNAME en el ordenador '$h'.\n\nEst 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 tillgng till dina personliga instllningar eller s har den inte frigjort dem igen.\nSamtidig tkomst kan leda till att dina personliga instllningar blir inkonsekventa. Innan du fortstter br du se till att anvndaren '$u' stnger %PRODUCTNAME p vrden '$h'.\n\nVill du verkligen fortstta?";
+ 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 2bcedcbcd4ce..c7521642120b 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 068d7f7c49e3..77b0840c1129 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 a8ae40516991..9f30eb6ccb43 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 bb1271633212..bcbdda770d94 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 00efdd7b249f..d8d8872bb1d6 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 a8a5593ea171..8a248f248065 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 83bfad93b851..a7a5a2e2364f 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,8 +432,8 @@ 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;
@@ -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,10 +514,10 @@ 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;
@@ -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 );
@@ -799,7 +627,6 @@ void SAL_CALL OfficeIPCThread::run()
}
}
-
if ( bDocRequestSent )
{
// Send requests to dispatch watcher if we have at least one. The receiver
@@ -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();
}
@@ -836,9 +661,9 @@ void SAL_CALL OfficeIPCThread::run()
// 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 3ea8735b0830..9c8b1cf770cd 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 000000000000..2f7d2330af3a
--- /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 000000000000..5cd950d001b4
--- /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 000000000000..9f038ee4db6f
--- /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 000000000000..aa0af27801a8
--- /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 c7b81b3a2bcb..dfce64486888 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 10e4c54e4b83..d2d1d666b7f6 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 000000000000..1f388f3409e0
--- /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 000000000000..a8684fd759d2
--- /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 000000000000..4ddaee4bc24a
--- /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& );
+
+};
+
+}
diff --git a/desktop/util/makefile.mk b/desktop/util/makefile.mk
index 4f21764f11c2..563e54973a8f 100644
--- a/desktop/util/makefile.mk
+++ b/desktop/util/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.25 $
+# $Revision: 1.26 $
#
-# last change: $Author: hro $ $Date: 2002-11-22 14:26:36 $
+# last change: $Author: hr $ $Date: 2003-03-25 13:52:52 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -73,6 +73,27 @@ GEN_HID=TRUE
VERINFONAME=verinfo
+TARGETOBJS= $(OBJ)$/app.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 \
+ $(OBJ)$/cmdlinehelp.obj
+
+
# --- Resourcen ----------------------------------------------------
.IF "$(GUI)" == "WNT"
@@ -96,13 +117,11 @@ APP1_STDPOST=
RESLIB1NAME= dkt
RESLIB1SRSFILES= $(SRS)$/desktop.srs
-APP1TARGET=$(TARGET)
-
+APP1TARGET=so$/$(TARGET)
APP1STDLIBS= \
$(APP1_STDPRE) \
$(SVLLIB) \
$(SVMEMLIB) \
- $(ONELIB) \
$(VCLLIB) \
$(APP1_STDPOST) \
$(UNOTOOLSLIB) \
@@ -110,111 +129,69 @@ APP1STDLIBS= \
$(COMPHELPERLIB) \
$(SALHELPERLIB) \
$(SVTOOLLIB)
+APP1OBJS=$(TARGETOBJS)
+APP1OBJS += $(OBJ)$/copyright_ascii_sun.obj
-.IF "$(OS)" == "SOLARIS"
-APP1STDLIBS+= -ldoor
+.IF "$(GUI)" == "UNX"
+.IF "$(OS)" != "MACOSX"
+APP1OBJS += $(OBJ)$/icon_resource_sun.obj
+.ENDIF
.ENDIF
.IF "$(GUI)" == "UNX"
.IF "$(OS)" == "LINUX"
-
APP1STDLIBS+= -lXext -lSM -lICE
-
.ENDIF
.ENDIF
-APP1DEPN= \
- $(APP1RES) \
- verinfo.rc
-
-APP1OBJS= \
- $(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)$/javainteractionhandler.obj \
- $(OBJ)$/oempreload.obj \
- $(OBJ)$/testtool.obj \
- $(OBJ)$/checkinstall.obj
-
+APP1DEPN= $(APP1RES) verinfo.rc
APP1DEF= $(MISCX)$/$(TARGET).def
.IF "$(GUI)" == "WNT"
APP1RES= $(RES)$/desktop.res
-
APP1ICON=$(SOLARRESDIR)$/icons/001_star_main.ico
APP1VERINFO=verinfo.rc
APP1LINKRES=$(MISC)$/$(TARGET).res
-.ENDIF
-
-
+# create a manifest file with the same name as the
+#office executable file soffice.exe.manifest
+#$(BIN)$/$(TARGET).exe.manifest: template.manifest
+#+$(COPY) $< $@
+
+.ENDIF
.IF "$(GUI)" == "WNT"
-APP2DEPN= \
- $(APP2RES) \
- verinfo.rc
-
+APP2DEPN= $(APP2RES) verinfo.rc
APP2NOSAL=TRUE
APP2TARGET=sowrapper
-
APP2STDLIBS+=shell32.lib
-
-APP2OBJS= \
- $(OBJ)$/sowrapper.obj \
+APP2OBJS= $(OBJ)$/sowrapper.obj \
$(OBJ)$/wrapperw.obj \
$(OBJ)$/wrappera.obj
-
APP2RES= $(RES)$/$(APP2TARGET).res
APP2ICON=$(SOLARRESDIR)$/icons/001_star_main.ico
APP2VERINFO=verinfo.rc
APP2LINKRES=$(MISC)$/$(APP2TARGET).res
-APP3DEPN= \
- $(APP3RES) \
- verinfo.rc
-
+APP3DEPN= $(APP3RES) verinfo.rc
APP3NOSAL=TRUE
APP3TARGET=solocal
-
APP3STDLIBS+=shell32.lib
-
APP3OBJS= \
$(OBJ)$/sowrapper.obj \
$(OBJ)$/lwrapw.obj \
$(OBJ)$/lwrapa.obj
-
APP3RES= $(RES)$/$(APP3TARGET).res
APP3ICON=$(SOLARRESDIR)$/icons/001_star_main.ico
APP3VERINFO=verinfo.rc
APP3LINKRES=$(MISC)$/$(APP3TARGET).res
-
-
-APP4DEPN= \
- $(APP4RES) \
- verinfo.rc
-
+APP4DEPN= $(APP4RES) verinfo.rc
APP4NOSAL=TRUE
APP4TARGET=soremote
-
APP4STDLIBS+=shell32.lib
-
APP4OBJS= \
$(OBJ)$/sowrapper.obj \
$(OBJ)$/rwrapw.obj \
@@ -224,57 +201,52 @@ APP4RES= $(RES)$/$(APP4TARGET).res
APP4ICON=$(SOLARRESDIR)$/icons/001_star_main.ico
APP4VERINFO=verinfo.rc
APP4LINKRES=$(MISC)$/$(APP4TARGET).res
+.ENDIF # "$(GUI)" == "WNT"
-.ENDIF
-.IF "$(OS)" == "SOLARIS"
-
-SLOFILES = \
- $(SLO)$/app.obj \
- $(SLO)$/lockfile.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)$/oempreload.obj \
- $(SLO)$/testtool.obj \
- $(SLO)$/checkinstall.obj
-
-SHL1OBJS= $(SLOFILES)
-SHL1TARGET= dsk$(UPD)$(DLLPOSTFIX)
-
-SHL1IMPLIB= idsk
-SHL1STDLIBS= \
- $(SALLIB) \
- $(VOSLIB) \
- $(TOOLSLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SVLLIB) \
- $(VCLLIB) \
+APP5TARGET=soffice
+APP5STDLIBS= \
+ $(APP1_STDPRE) \
+ $(SVLLIB) \
+ $(SVMEMLIB) \
+ $(VCLLIB) \
+ $(APP1_STDPOST) \
$(UNOTOOLSLIB) \
$(UCBHELPERLIB) \
$(COMPHELPERLIB) \
$(SALHELPERLIB) \
$(SVTOOLLIB)
+APP5OBJS=$(TARGETOBJS)
+APP5OBJS += $(OBJ)$/copyright_ascii_ooo.obj
+
+.IF "$(GUI)" == "UNX"
+.IF "$(OS)" != "MACOSX"
+APP5OBJS += $(OBJ)$/icon_resource_ooo.obj
+.ENDIF
+.ENDIF
+
+.IF "$(OS)" == "LINUX"
+APP5STDLIBS+= -lXext -lSM -lICE
+.ENDIF
+
+APP5DEPN= $(APP1RES) verinfo.rc
+APP5DEF= $(MISCX)$/$(TARGET).def
+
+.IF "$(GUI)" == "WNT"
+APP5RES= $(RES)$/desktop.res
+APP5ICON=$(SOLARRESDIR)$/icons/001_star_butterfly.ico
+APP5VERINFO=verinfo.rc
+APP5LINKRES=$(MISC)$/ooffice.res
+.ENDIF
+
+
+
+all: $(BIN)$/so ALLTAR
+
+.IF "$(GUI)" == "WNT"
-SHL1STDLIBS+= -ldoor
-SHL1DEPN= makefile.mk
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+ALLTAR: $(BIN)$/$(TARGET).exe.manifest
-DEF1NAME= $(SHL1TARGET)
.ENDIF
# --- Targets -------------------------------------------------------------
@@ -283,9 +255,17 @@ DEF1NAME= $(SHL1TARGET)
.IF "$(GUI)" == "WNT"
+# create a manifest file with the same name as the
+#office executable file soffice.exe.manifest
+$(BIN)$/$(TARGET).exe.manifest: template.manifest
+ +$(COPY) $< $@
+
$(MISCX)$/$(APP1TARGET).def : makefile.mk
echo NAME soffice >$@
echo DESCRIPTION 'StarDesktop Version 5' >>$@
echo DATA READ WRITE NONSHARED >>$@
.ENDIF
+$(BIN)$/so: makefile.mk
+ @echo APP5 : $(APP5TARGET)
+ @+-mkdir $(BIN)$/so
diff --git a/desktop/util/template.manifest b/desktop/util/template.manifest
new file mode 100644
index 000000000000..dbed81ce3f21
--- /dev/null
+++ b/desktop/util/template.manifest
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity version="1.0.0.0" processorArchitecture="x86" name="OpenOffice" type="win32" />
+<description>http://www.openoffice.org</description>
+<dependency>
+<dependentAssembly>
+<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="x86"/>
+</dependentAssembly>
+</dependency>
+</assembly>
diff --git a/desktop/util/verinfo.rc b/desktop/util/verinfo.rc
index 7f923aeb2289..489a78c61d21 100644
--- a/desktop/util/verinfo.rc
+++ b/desktop/util/verinfo.rc
@@ -2,9 +2,9 @@
#
# $RCSfile: verinfo.rc,v $
#
-# $Revision: 1.8 $
+# $Revision: 1.9 $
#
-# last change: $Author: hro $ $Date: 2002-11-29 11:39:47 $
+# last change: $Author: hr $ $Date: 2003-03-25 13:52:54 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -198,4 +198,3 @@ VS_VERSION_INFO rcdata
17 ICON "icons\\017_macrolibrary.ico"
18 ICON "icons\\018_configuration.ico"
19 ICON "icons\\019_open_document.ico"
-