diff options
Diffstat (limited to 'vcl/unx/kde4/main.cxx')
-rw-r--r-- | vcl/unx/kde4/main.cxx | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/vcl/unx/kde4/main.cxx b/vcl/unx/kde4/main.cxx new file mode 100644 index 000000000000..962a882af26b --- /dev/null +++ b/vcl/unx/kde4/main.cxx @@ -0,0 +1,93 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_vcl.hxx" + +#define Region QtXRegion +#include <QApplication> +#undef Region + +#include "KDEData.hxx" +#include "KDESalInstance.hxx" + +#if OSL_DEBUG_LEVEL > 1 +#include <stdio.h> +#endif + +#include <rtl/string.hxx> + +/// entry point for the KDE4 VCL plugin +extern "C" { + VCL_DLLPUBLIC SalInstance* create_SalInstance( oslModule ) + { + /* #i92121# workaround deadlocks in the X11 implementation + */ + static const char* pNoXInitThreads = getenv( "SAL_NO_XINITTHREADS" ); + /* #i90094# + from now on we know that an X connection will be + established, so protect X against itself + */ + if( ! ( pNoXInitThreads && *pNoXInitThreads ) ) + XInitThreads(); + +#if QT_VERSION < 0x050000 + // Qt 4.x support needs >= 4.1.0 + rtl::OString aVersion( qVersion() ); +#if OSL_DEBUG_LEVEL > 1 + fprintf( stderr, "qt version string is \"%s\"\n", aVersion.getStr() ); +#endif + sal_Int32 nIndex = 0, nMajor = 0, nMinor = 0, nMicro = 0; + nMajor = aVersion.getToken( 0, '.', nIndex ).toInt32(); + if( nIndex > 0 ) + nMinor = aVersion.getToken( 0, '.', nIndex ).toInt32(); + if( nIndex > 0 ) + nMicro = aVersion.getToken( 0, '.', nIndex ).toInt32(); + if( nMajor != 4 || nMinor < 1 ) + { +#if OSL_DEBUG_LEVEL > 1 + fprintf( stderr, "unsuitable qt version %d.%d.%d\n", nMajor, nMinor, nMicro ); +#endif + return NULL; + } +#endif + + KDESalInstance* pInstance = new KDESalInstance( new SalYieldMutex() ); +#if OSL_DEBUG_LEVEL > 1 + fprintf( stderr, "created KDESalInstance 0x%p\n", pInstance ); +#endif + + // initialize SalData + KDEData *salData = new KDEData(); + SetSalData(salData); + salData->m_pInstance = pInstance; + salData->Init(); + salData->initNWF(); + + return pInstance; + } +} |