summaryrefslogtreecommitdiffstats
path: root/opensuse/core
diff options
context:
space:
mode:
authorFrancois Andriot <francois.andriot@free.fr>2012-10-21 19:08:07 +0200
committerFrancois Andriot <francois.andriot@free.fr>2012-10-21 19:08:07 +0200
commit7a49d1c3c01e346c9efd56af8f4d418c9d519744 (patch)
tree590a1ea1a0e113adabfdd9e6f1acfed81555ef15 /opensuse/core
parent62129636aaef8ca44cf035ebe0d2780da1f0bcff (diff)
downloadtde-packaging-7a49d1c3c01e346c9efd56af8f4d418c9d519744.tar.gz
tde-packaging-7a49d1c3c01e346c9efd56af8f4d418c9d519744.zip
openSUSE: add QT3 for TDE 3.5.13.1
Diffstat (limited to 'opensuse/core')
l---------opensuse/core/components.txt1
l---------opensuse/core/genrpm.sh1
-rw-r--r--opensuse/core/qt3/add_qexport_visibility.patch63
-rw-r--r--opensuse/core/qt3/qcstring-format-warnings.diff15
-rw-r--r--opensuse/core/qt3/qt3-3.5.13.1.spec366
-rw-r--r--opensuse/core/qt3/qt3-warnings.diff13
-rw-r--r--opensuse/core/qt3/qt3.spec1
-rw-r--r--opensuse/core/qt3/qtkdeintegration_x11.cpp242
-rw-r--r--opensuse/core/qt3/qtkdeintegration_x11_p.h59
9 files changed, 761 insertions, 0 deletions
diff --git a/opensuse/core/components.txt b/opensuse/core/components.txt
new file mode 120000
index 000000000..381bc5feb
--- /dev/null
+++ b/opensuse/core/components.txt
@@ -0,0 +1 @@
+../../redhat/components.txt \ No newline at end of file
diff --git a/opensuse/core/genrpm.sh b/opensuse/core/genrpm.sh
new file mode 120000
index 000000000..b500dc307
--- /dev/null
+++ b/opensuse/core/genrpm.sh
@@ -0,0 +1 @@
+../../redhat/genrpm.sh \ No newline at end of file
diff --git a/opensuse/core/qt3/add_qexport_visibility.patch b/opensuse/core/qt3/add_qexport_visibility.patch
new file mode 100644
index 000000000..da256192c
--- /dev/null
+++ b/opensuse/core/qt3/add_qexport_visibility.patch
@@ -0,0 +1,63 @@
+Index: src/kernel/qgplugin.h
+================================================================================
+--- src/kernel/qgplugin.h
++++ src/kernel/qgplugin.h
+@@ -90,35 +90,19 @@
+ return i->iface(); \
+ }
+
+-# ifdef Q_WS_WIN
+-# ifdef Q_CC_BOR
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
+- Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C __declspec(dllexport) \
+- const char * __stdcall qt_ucm_query_verification_data() \
+- { return qt_ucm_verification_data; } \
+- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* \
+- __stdcall ucm_instantiate() \
+- Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# else
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
+- Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C __declspec(dllexport) \
+- const char *qt_ucm_query_verification_data() \
+- { return qt_ucm_verification_data; } \
+- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* ucm_instantiate() \
+- Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# endif
+-# else
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
++#if defined(Q_WS_WIN) && defined(Q_CC_BOR)
++# define Q_STDCALL __stdcall
++#else
++# define Q_STDCALL
++#endif
++
++#define Q_EXPORT_PLUGIN(PLUGIN) \
+ Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C \
+- const char *qt_ucm_query_verification_data() \
++ Q_EXTERN_C Q_EXPORT \
++ const char * Q_STDCALL qt_ucm_query_verification_data() \
+ { return qt_ucm_verification_data; } \
+- Q_EXTERN_C QUnknownInterface* ucm_instantiate() \
++ Q_EXTERN_C Q_EXPORT QUnknownInterface* Q_STDCALL ucm_instantiate() \
+ Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# endif
+-
+ #endif
+
+ struct QUnknownInterface;
+--- src/tools/qglobal.h
++++ src/tools/qglobal.h
+@@ -882,6 +882,10 @@
+ # define Q_TEMPLATE_EXTERN
+ # undef Q_DISABLE_COPY /* avoid unresolved externals */
+ # endif
++#elif defined(Q_CC_GNU) && __GNUC__ - 0 >= 4
++# define Q_EXPORT __attribute__((visibility("default")))
++# undef QT_MAKEDLL /* ignore these for other platforms */
++# undef QT_DLL
+ #else
+ # undef QT_MAKEDLL /* ignore these for other platforms */
+ # undef QT_DLL
diff --git a/opensuse/core/qt3/qcstring-format-warnings.diff b/opensuse/core/qt3/qcstring-format-warnings.diff
new file mode 100644
index 000000000..a597dc578
--- /dev/null
+++ b/opensuse/core/qt3/qcstring-format-warnings.diff
@@ -0,0 +1,15 @@
+--- src/tools/qcstring.h (revision 658213)
++++ src/tools/qcstring.h (working copy)
+@@ -161,7 +161,11 @@ public:
+
+ QCString copy() const;
+
+- QCString &sprintf( const char *format, ... );
++ QCString &sprintf( const char *format, ... )
++#if defined(Q_CC_GNU) && !defined(__INSURE__)
++ __attribute__ ((format (printf, 2, 3)))
++#endif
++ ;
+
+ int find( char c, int index=0, bool cs=TRUE ) const;
+ int find( const char *str, int index=0, bool cs=TRUE ) const;
diff --git a/opensuse/core/qt3/qt3-3.5.13.1.spec b/opensuse/core/qt3/qt3-3.5.13.1.spec
new file mode 100644
index 000000000..2ee312a65
--- /dev/null
+++ b/opensuse/core/qt3/qt3-3.5.13.1.spec
@@ -0,0 +1,366 @@
+#
+# spec file for package qt3
+#
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+Name: qt3
+#Remember also to modify Requires in -devel package
+BuildRequires: Mesa-devel
+BuildRequires: c++_compiler
+BuildRequires: cups-devel
+BuildRequires: freetype2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libmng-devel
+BuildRequires: pkgconfig
+BuildRequires: update-desktop-files
+BuildRequires: xorg-x11-devel
+BuildRequires: tar
+Url: http://www.trolltech.com/
+%if %suse_version > 1220
+BuildRequires: libpng15-compat-devel
+%else
+BuildRequires: libpng14-compat-devel
+%endif
+# bug437293
+%ifarch ppc64
+Obsoletes: qt3-64bit
+%endif
+#
+Summary: A library for developing applications with graphical user interfaces
+License: GPL-2.0 or GPL-3.0 or QPL-1.0
+Group: System/Libraries
+Version: 3.3.8d
+Release: 1
+Provides: qt_library_%version
+Recommends: kdelibs3-default-style
+PreReq: /bin/grep
+# COMMON-BEGIN
+%define x11_free -x11-free-
+%define rversion 3.3.8b
+Source0: qt3-3.5.13.1.tar.gz
+Source1: build_script.sh
+Source2: qtconfig3.desktop
+Source3: qtrc
+Source4: assistant3.png
+Source6: assistant3.desktop
+Source7: designer.desktop
+Source8: designer.png
+Source9: linguist.desktop
+Source5: linguist.png
+Source10: qt3.sh
+Source11: qt3.csh
+# Translations did not change at 3.3.8c
+Source12: qt3-3.3.8b-translations.tar.bz2
+Source100: qtkdeintegration_x11.cpp
+Source101: qtkdeintegration_x11_p.h
+Source102: baselibs.conf
+Source200: attributes
+Source201: update_spec.pl
+Patch1: aliasing.diff
+Patch2: head.diff
+Patch4: qt3-never-strip.diff
+Patch5: external-libs.diff
+Patch12: qtrc-path.diff
+Patch14: lib64-plugin-support.diff
+Patch15: pluginmanager-fix.diff
+Patch18: no-rpath.dif
+Patch19: shut-up.diff
+Patch23: fix-accessible.diff
+# From http://www.freedesktop.org/wiki/Software_2fImmoduleQtDownload
+# Current version from http://freedesktop.org/~daisuke/qt-x11-immodule-unified-qt3.3.5-20060318.diff.bz2
+Patch31: limit-image-size.diff
+Patch35: qt-transparency.patch
+Patch37: 0055-qtextedit_zoom.patch
+Patch39: fix-qtranslator-crash.diff
+Patch42: add_qexport_visibility.patch
+Patch54: kmenu-search-fix.diff
+Patch113: fix-assistant-path.patch
+Patch117: qtimer-debug.diff
+Patch121: qt3-warnings.diff
+Patch125: qcstring-format-warnings.diff
+Patch127: mng-reading-fix.patch
+Patch134: fix-xinput-clash.diff
+Patch135: parseFontName.diff
+Patch136: qt3-no-date.diff
+Patch139: gcc46.diff
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%description
+Qt is a program library for developing applications with graphical user
+interfaces. It allows you to rapidly develop professional programs. The
+Qt library is available not only for Linux but for a great number of
+Unices and even for Windows. Thus it is possible to write programs that
+may be easily ported to those platforms.
+
+You need a license for using Qt with a non-GPL application, which can
+be acquired from sales@trolltech.com.
+
+See /usr/share/doc/packages/qt3 for details about the new features of
+the current Qt library!
+
+%define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial
+
+%prep
+%setup -q -n qt3-3.5.13.1
+%patch1
+%patch2
+%patch4
+%patch5
+%patch12
+if [ "%_lib" = "lib64" ]; then
+%patch14
+fi
+%patch15
+%patch18
+%patch19
+%patch23
+%patch31
+%patch35
+%patch37
+%patch39
+%patch42
+%patch54
+%patch113
+%patch117
+%patch121
+ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/
+ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/
+ln -sf $PWD/src/kernel/qinputcontext.h include/
+ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/
+ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/
+%patch125
+%patch127
+%patch134
+%patch135
+%patch136
+%patch139
+# copy qt kde integration files
+cp %SOURCE100 %SOURCE101 src/kernel/
+cp %SOURCE101 include/private/
+cd translations
+tar xvjf %SOURCE12
+cd ..
+# COMMON-END
+
+%package devel
+Summary: Include Files and Libraries mandatory for Development
+Group: Development/Libraries/X11
+Requires: c++_compiler
+Requires: cups-devel
+Requires: freetype2-devel
+Requires: libjpeg-devel
+Requires: libmng-devel
+Requires: pkgconfig
+Requires: qt3 = %version
+Requires: xorg-x11-devel
+%if %suse_version > 1120
+Recommends: libpng14-compat-devel
+Requires: libpng-devel
+%else
+Requires: libpng-devel
+%endif
+%if %suse_version > 1000
+Requires: Mesa-devel
+%else
+Requires: xorg-x11-Mesa
+Requires: xorg-x11-Mesa-devel
+%endif
+%ifnarch x86_64 s390x sparc64 ppc64 mips64
+Conflicts: devel_libs-32bit
+%endif
+# bug437293
+%ifarch ppc64
+Obsoletes: qt3-devel-64bit
+%endif
+#
+
+%description devel
+You need this package if you want to compile programs with Qt 3. It
+contains the "Qt Crossplatform Development Kit 2". Under /usr/lib/qt3
+you will find include files.
+
+You need a license for using Qt with a non-GPL application. A license
+can be acquired at sales@trolltech.com.
+
+%build
+export VERSION=%suse_version
+source %SOURCE1 %{version}
+export WLIB=%_lib
+export QTDIR=`pwd`
+if [ %_lib == "lib64" ]; then
+export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DUSE_LIB64_PATHES"
+fi
+export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
+#
+# call build from build_script.rpmrc for threaded Qt library
+# only really needed tools will be builded here, all extra tools will be
+# builded in qt3.spec
+#
+call_configure -v -thread -shared -no-sql-mysql -no-sql-psql -no-sql-odbc -no-sql-sqlite $OPTIONS
+for i in %build_sub_dirs ; do
+ cd $i
+ make %{?jobs:-j%jobs}
+ cd -
+done
+
+%install
+export VERSION=%suse_version
+export WLIB=%_lib
+export QTDIR=`pwd`
+source %SOURCE1 %{version}
+for i in %build_sub_dirs ; do
+ cd $i
+ make INSTALL_ROOT=$RPM_BUILD_ROOT install
+ cd -
+done
+post_install $RPM_BUILD_ROOT/usr/lib/qt3/
+mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/
+sed -i -e 's, on: .*,,' $RPM_BUILD_ROOT/usr/lib/qt3/%_lib/*.la
+#
+# copy additional files
+#
+install -m 0755 bin/qmake bin/moc ${RPM_BUILD_ROOT}/usr/lib/qt3/bin/
+install -m 0755 -d ${RPM_BUILD_ROOT}/usr/lib/qt3/translations/
+install -m 0644 translations/*.qm ${RPM_BUILD_ROOT}/usr/lib/qt3/translations/
+if [ %_lib = lib64 ]; then
+ for i in $RPM_BUILD_ROOT/usr/lib/qt3/plugins/*/*.so; do
+ mv "$i" "${i%.so}.lib64.so"
+ done
+fi
+#
+# move pkgconfig files
+#
+mkdir -p $RPM_BUILD_ROOT/%_libdir/pkgconfig
+mv $RPM_BUILD_ROOT/usr/lib/qt3/%_lib/pkgconfig/*.pc \
+ $RPM_BUILD_ROOT/%_libdir/pkgconfig
+rmdir $RPM_BUILD_ROOT/usr/lib/qt3/%_lib/pkgconfig
+#
+# move docs in doc dir
+#
+install -d -m 0755 ${RPM_BUILD_ROOT}/%{_defaultdocdir}/qt3/
+install -d -m 0755 ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/
+install -d -m 0755 ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/
+cp -a mkspecs/* ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/
+if [ %_lib == "lib64" ]; then
+ ln -sf linux-g++-64 ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/default
+else
+ ln -sf linux-g++ ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/default
+fi
+find ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs -type f -perm /111 -print0 | xargs -0 chmod a-x
+#
+# create links in ld.so.conf path
+#
+install -d -m 0755 ${RPM_BUILD_ROOT}/%{_libdir}
+ln -sf ../lib/qt3/%{_lib}/libqt-mt.so.3 ${RPM_BUILD_ROOT}/%{_libdir}/libqt-mt.so.3
+ln -sf ../lib/qt3/%{_lib}/libqui.so.1 ${RPM_BUILD_ROOT}/%{_libdir}/libqui.so.1
+[ "lib" != "%{_lib}" ] && \
+ ln -sf ../lib/qt3 ${RPM_BUILD_ROOT}/%{_libdir}/qt3
+mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d
+install -m 644 %SOURCE10 %SOURCE11 ${RPM_BUILD_ROOT}/etc/profile.d
+#
+# default qt settings
+#
+mkdir -p ${RPM_BUILD_ROOT}/etc/X11
+mkdir -p ${RPM_BUILD_ROOT}/usr/lib/qt3/etc/
+ln -sf /etc/X11/ ${RPM_BUILD_ROOT}/usr/lib/qt3/etc/settings
+install -m 0644 %SOURCE3 ${RPM_BUILD_ROOT}/etc/X11/qtrc
+#
+# clean broken links
+#
+if [ %_lib == "lib64" ]; then
+ rm ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/linux-g++-64/linux-g++-64
+else
+ rm ${RPM_BUILD_ROOT}/usr/lib/qt3/mkspecs/linux-g++/linux-g++
+fi
+rm -rf ${RPM_BUILD_ROOT}/usr/lib/qt3/doc/html
+
+%pre
+if test -L usr/lib/qt3; then
+ rm usr/lib/qt3
+fi
+
+%post
+/sbin/ldconfig
+if ! grep -q '^\[3.3\]' etc/X11/qtrc ; then
+echo "" >> etc/X11/qtrc
+echo "[3.3]" >> etc/X11/qtrc
+echo "libraryPath=/opt/kde3/lib64/kde3/plugins/:/opt/kde3/lib/kde3/plugins/" >> etc/X11/qtrc
+fi
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,755)
+# FIXME provide new changelog if kb9vqf will give one
+%doc changes-3.3.8b README* LICENSE* MANIFEST FAQ
+%dir /usr/lib/qt3/translations
+%dir /usr/lib/qt3
+%dir /usr/lib/qt3/bin
+%dir /usr/lib/qt3/%{_lib}
+%{_libdir}/libqt-mt.so.*
+%{_libdir}/libqui.so.*
+/usr/lib/qt3/bin/qtconfig
+/usr/lib/qt3/%{_lib}/libqt-mt.so.*
+/usr/lib/qt3/%{_lib}/libqui.so.*
+%dir /usr/lib/qt3/etc
+/usr/lib/qt3/etc/settings
+/usr/lib/qt3/plugins
+/usr/lib/qt3/bin/assistant
+%lang(de) /usr/lib/qt3/translations/assistant_de.qm
+%lang(ar) /usr/lib/qt3/translations/qt_ar.qm
+%lang(ca) /usr/lib/qt3/translations/qt_ca.qm
+%lang(cs) /usr/lib/qt3/translations/qt_cs.qm
+%lang(de) /usr/lib/qt3/translations/qt_de.qm
+%lang(es) /usr/lib/qt3/translations/qt_es.qm
+%lang(fr) /usr/lib/qt3/translations/qt_fr.qm
+%lang(he) /usr/lib/qt3/translations/qt_he.qm
+%lang(ru) /usr/lib/qt3/translations/qt_ru.qm
+%lang(sk) /usr/lib/qt3/translations/qt_sk.qm
+%lang(it) /usr/lib/qt3/translations/qt_it.qm
+%lang(ja) /usr/lib/qt3/translations/qt_ja.qm
+%lang(nb) /usr/lib/qt3/translations/qt_nb.qm
+%lang(pl) /usr/lib/qt3/translations/qt_pl.qm
+%lang(pt) /usr/lib/qt3/translations/qt_pt-br.qm
+%lang(pt) /usr/lib/qt3/translations/qt_pt.qm
+%lang(zh) /usr/lib/qt3/translations/qt_zh-cn.qm
+%lang(zh) /usr/lib/qt3/translations/qt_zh-tw.qm
+%config(noreplace) /etc/X11/qtrc
+%ifarch s390x sparc64 x86_64 ppc64 mips64
+%dir %{_libdir}/qt3
+%endif
+
+%files devel
+%defattr(-,root,root,755)
+# FIXME provide new changelog if kb9vqf will give one
+%doc changes-3.3.8b
+/usr/lib/qt3/bin/moc
+/usr/lib/qt3/bin/qmake
+/usr/lib/qt3/bin/uic
+/usr/lib/qt3/include
+/usr/lib/qt3/%{_lib}/libqt-mt.la
+/usr/lib/qt3/%{_lib}/libqt-mt.so
+/usr/lib/qt3/%{_lib}/libqt-mt.prl
+/usr/lib/qt3/%{_lib}/libqui.so
+/usr/lib/qt3/%{_lib}/libqui.prl
+/usr/lib/qt3/mkspecs
+/%_libdir/pkgconfig/qt-mt.pc
+/usr/lib/qt3/%_lib/libqassistantclient.*
+%config /etc/profile.d/qt3.*
+
+%changelog
+* Sat Sep 29 2012 Francois Andriot <francois.andriot@free.fr> - 3.3.8.d-1
+- Initial build for TDE 3.5.13.1
diff --git a/opensuse/core/qt3/qt3-warnings.diff b/opensuse/core/qt3/qt3-warnings.diff
new file mode 100644
index 000000000..870017ded
--- /dev/null
+++ b/opensuse/core/qt3/qt3-warnings.diff
@@ -0,0 +1,13 @@
+Index: src/kernel/qimage.h
+===================================================================
+--- src/kernel/qimage.h (revision 594273)
++++ src/kernel/qimage.h (working copy)
+@@ -55,7 +55,7 @@ public:
+ QCString lang;
+
+ bool operator< (const QImageTextKeyLang& other) const
+- { return key < other.key || key==other.key && lang < other.lang; }
++ { return key < other.key || (key==other.key && lang < other.lang); }
+ bool operator== (const QImageTextKeyLang& other) const
+ { return key==other.key && lang==other.lang; }
+ };
diff --git a/opensuse/core/qt3/qt3.spec b/opensuse/core/qt3/qt3.spec
index 20fd10140..51a0d1acc 100644
--- a/opensuse/core/qt3/qt3.spec
+++ b/opensuse/core/qt3/qt3.spec
@@ -169,6 +169,7 @@ you will find include files.
You need a license for using Qt with a non-GPL application. A license
can be acquired at sales@trolltech.com.
+
%build
export VERSION=%suse_version
source %SOURCE1 %{version}
diff --git a/opensuse/core/qt3/qtkdeintegration_x11.cpp b/opensuse/core/qt3/qtkdeintegration_x11.cpp
new file mode 100644
index 000000000..8f837b412
--- /dev/null
+++ b/opensuse/core/qt3/qtkdeintegration_x11.cpp
@@ -0,0 +1,242 @@
+#define QT_CLEAN_NAMESPACE
+#include "qtkdeintegration_x11_p.h"
+
+#include <qcolordialog.h>
+#include <qfiledialog.h>
+#include <qfontdialog.h>
+#include <qlibrary.h>
+#include <qregexp.h>
+#include <qmessagebox.h>
+#include <stdlib.h>
+
+bool QKDEIntegration::inited = false;
+bool QKDEIntegration::enable = false;
+
+bool QKDEIntegration::enabled()
+ {
+ if( !inited )
+ initLibrary();
+ return enable;
+ }
+
+static QCString findLibrary()
+ {
+ if( getenv( "QT_NO_KDE_INTEGRATION" ) == NULL
+ || getenv( "QT_NO_KDE_INTEGRATION" )[ 0 ] == '0' )
+ {
+#ifdef USE_LIB64_PATHES
+ return "/opt/kde3/lib64/kde3/plugins/integration/libqtkde";
+#else
+ return "/opt/kde3/lib/kde3/plugins/integration/libqtkde";
+#endif
+ }
+ return "";
+ }
+
+inline static long widgetToWinId( const QWidget* w )
+ {
+ return w != NULL ? w->winId() : 0;
+ }
+
+inline static QFont fontPtrToFontRef( const QFont* f )
+ {
+ return f != NULL ? *f : QFont();
+ }
+
+// ---
+static bool (*qtkde_initializeIntegration)( );
+static QStringList (*qtkde_getOpenFileNames)( const QString& filter, QString* workingDirectory,
+ long parent, const QCString& name, const QString& caption, QString* selectedFilter,
+ bool multiple );
+static QString (*qtkde_getSaveFileName)( const QString& initialSelection, const QString& filter,
+ QString* workingDirectory, long parent, const QCString& name, const QString& caption,
+ QString* selectedFilter );
+static QString (*qtkde_getExistingDirectory)( const QString& initialDirectory, long parent,
+ const QCString& name, const QString& caption );
+static QColor (*qtkde_getColor)( const QColor& color, long parent, const QCString& name );
+static QFont (*qtkde_getFont)( bool* ok, const QFont& def, long parent, const QCString& name );
+static int (*qtkde_messageBox1)( int type, long parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 );
+static int (*qtkde_messageBox2)( int type, long parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton );
+
+void QKDEIntegration::initLibrary()
+ {
+ if( !inited )
+ {
+ enable = false;
+ inited = true;
+ QString libpath = findLibrary();
+ if( libpath.isEmpty())
+ return;
+ QLibrary lib( libpath );
+ lib.setAutoUnload( false );
+ qtkde_initializeIntegration = (
+ bool (*)( )
+ )
+ lib.resolve("initializeIntegration");
+ if( qtkde_initializeIntegration == NULL )
+ return;
+ qtkde_getOpenFileNames = (
+ QStringList (*)( const QString& filter, QString* workingDirectory, long parent,
+ const QCString& name, const QString& caption, QString* selectedFilter,
+ bool multiple )
+ )
+ lib.resolve("getOpenFileNames");
+ if( qtkde_getOpenFileNames == NULL )
+ return;
+ qtkde_getSaveFileName = (
+ QString (*)( const QString& initialSelection, const QString& filter, QString* workingDirectory,
+ long parent, const QCString& name, const QString& caption, QString* selectedFilter )
+ )
+ lib.resolve("getSaveFileName");
+ if( qtkde_getSaveFileName == NULL )
+ return;
+ qtkde_getExistingDirectory = (
+ QString (*)( const QString& initialDirectory, long parent, const QCString& name,
+ const QString& caption )
+ )
+ lib.resolve("getExistingDirectory");
+ if( qtkde_getExistingDirectory == NULL )
+ return;
+ qtkde_getColor = (
+ QColor (*)( const QColor& color, long parent, const QCString& name )
+ )
+ lib.resolve("getColor");
+ if( qtkde_getColor == NULL )
+ return;
+ qtkde_getFont = (
+ QFont (*)( bool* ok, const QFont& def, long parent, const QCString& name )
+ )
+ lib.resolve("getFont");
+ if( qtkde_getFont == NULL )
+ return;
+ qtkde_messageBox1 = (
+ int (*)( int type, long parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 )
+ )
+ lib.resolve("messageBox1");
+ if( qtkde_messageBox1 == NULL )
+ return;
+ qtkde_messageBox2 = (
+ int (*)( int type, long parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ )
+ lib.resolve("messageBox2");
+ if( qtkde_messageBox2 == NULL )
+ return;
+ enable = qtkde_initializeIntegration();
+ }
+ }
+
+bool QKDEIntegration::initializeIntegration( )
+ {
+ return qtkde_initializeIntegration(
+ );
+ }
+QStringList QKDEIntegration::getOpenFileNames( const QString& filter, QString* workingDirectory,
+ QWidget* parent, const char* name, const QString& caption, QString* selectedFilter,
+ bool multiple )
+ {
+ return qtkde_getOpenFileNames(
+ filter, workingDirectory, widgetToWinId( parent ), name, caption, selectedFilter, multiple );
+ }
+QString QKDEIntegration::getSaveFileName( const QString& initialSelection, const QString& filter,
+ QString* workingDirectory, QWidget* parent, const char* name, const QString& caption,
+ QString* selectedFilter )
+ {
+ return qtkde_getSaveFileName(
+ initialSelection, filter, workingDirectory, widgetToWinId( parent ), name, caption, selectedFilter );
+ }
+QString QKDEIntegration::getExistingDirectory( const QString& initialDirectory, QWidget* parent,
+ const char* name, const QString& caption )
+ {
+ return qtkde_getExistingDirectory(
+ initialDirectory, widgetToWinId( parent ), name, caption );
+ }
+QColor QKDEIntegration::getColor( const QColor& color, QWidget* parent, const char* name )
+ {
+ return qtkde_getColor(
+ color, widgetToWinId( parent ), name );
+ }
+QFont QKDEIntegration::getFont( bool* ok, const QFont* def, QWidget* parent, const char* name )
+ {
+ return qtkde_getFont(
+ ok, fontPtrToFontRef( def ), widgetToWinId( parent ), name );
+ }
+int QKDEIntegration::messageBox1( int type, QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ type, widgetToWinId( parent ), caption, text, button0, button1, button2 );
+ }
+int QKDEIntegration::messageBox2( int type, QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ {
+ return qtkde_messageBox2(
+ type, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
+// ---
+
+int QKDEIntegration::information( QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ QMessageBox::Information, widgetToWinId( parent ), caption, text, button0, button1, button2 );
+ }
+
+int QKDEIntegration::question( QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ QMessageBox::Question, widgetToWinId( parent ), caption, text, button0, button1, button2 );
+ }
+
+int QKDEIntegration::warning( QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ QMessageBox::Warning, widgetToWinId( parent ), caption, text, button0, button1, button2 );
+ }
+
+int QKDEIntegration::critical( QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ QMessageBox::Critical, widgetToWinId( parent ), caption, text, button0, button1, button2 );
+ }
+
+int QKDEIntegration::information( QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ {
+ return qtkde_messageBox2(
+ QMessageBox::Information, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
+
+int QKDEIntegration::question( QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ {
+ return qtkde_messageBox2(
+ QMessageBox::Question, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
+
+int QKDEIntegration::warning( QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ {
+ return qtkde_messageBox2(
+ QMessageBox::Warning, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
+
+int QKDEIntegration::critical( QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton )
+ {
+ return qtkde_messageBox2(
+ QMessageBox::Critical, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
diff --git a/opensuse/core/qt3/qtkdeintegration_x11_p.h b/opensuse/core/qt3/qtkdeintegration_x11_p.h
new file mode 100644
index 000000000..9c1676ddb
--- /dev/null
+++ b/opensuse/core/qt3/qtkdeintegration_x11_p.h
@@ -0,0 +1,59 @@
+#ifndef QKDEINTEGRATION_H
+#define QKDEINTEGRATION_H
+
+#include <qstringlist.h>
+
+class QLibrary;
+class QWidget;
+class QColor;
+class QFont;
+
+class QKDEIntegration
+ {
+ public:
+ static bool enabled();
+// ---
+ static bool initializeIntegration( );
+ static QStringList getOpenFileNames( const QString& filter, QString* workingDirectory,
+ QWidget* parent, const char* name, const QString& caption, QString* selectedFilter,
+ bool multiple );
+ static QString getSaveFileName( const QString& initialSelection, const QString& filter,
+ QString* workingDirectory, QWidget* parent, const char* name, const QString& caption,
+ QString* selectedFilter );
+ static QString getExistingDirectory( const QString& initialDirectory, QWidget* parent,
+ const char* name, const QString& caption );
+ static QColor getColor( const QColor& color, QWidget* parent, const char* name );
+ static QFont getFont( bool* ok, const QFont* def, QWidget* parent, const char* name );
+ static int messageBox1( int type, QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 );
+ static int information( QWidget* parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 );
+ static int question( QWidget* parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 );
+ static int warning( QWidget* parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 );
+ static int critical( QWidget* parent, const QString& caption, const QString& text,
+ int button0, int button1, int button2 );
+ static int messageBox2( int type, QWidget* parent, const QString& caption,
+ const QString& text, const QString& button0Text, const QString& button1Text,
+ const QString& button2Text, int defaultButton, int escapeButton );
+ static int information( QWidget* parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton );
+ static int question( QWidget* parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton );
+ static int warning( QWidget* parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton );
+ static int critical( QWidget* parent, const QString& caption, const QString& text,
+ const QString& button0Text, const QString& button1Text, const QString& button2Text,
+ int defaultButton, int escapeButton );
+// ---
+ private:
+ static void initLibrary();
+ static bool inited;
+ static bool enable;
+ };
+
+#endif