summaryrefslogtreecommitdiffstats
path: root/tqt3integration/utils/qt/in
diff options
context:
space:
mode:
Diffstat (limited to 'tqt3integration/utils/qt/in')
-rw-r--r--tqt3integration/utils/qt/in/CMakeLists.txt12
-rw-r--r--tqt3integration/utils/qt/in/qt.patch270
-rw-r--r--tqt3integration/utils/qt/in/qtkdeintegration_x11_0.cpp.cmake1
-rw-r--r--tqt3integration/utils/qt/in/qtkdeintegration_x11_1.cpp73
-rw-r--r--tqt3integration/utils/qt/in/qtkdeintegration_x11_2.cpp81
-rw-r--r--tqt3integration/utils/qt/in/qtkdeintegration_x11_p_1.h35
-rw-r--r--tqt3integration/utils/qt/in/qtkdeintegration_x11_p_2.h28
7 files changed, 500 insertions, 0 deletions
diff --git a/tqt3integration/utils/qt/in/CMakeLists.txt b/tqt3integration/utils/qt/in/CMakeLists.txt
new file mode 100644
index 000000000..e6fa392d5
--- /dev/null
+++ b/tqt3integration/utils/qt/in/CMakeLists.txt
@@ -0,0 +1,12 @@
+#################################################
+#
+# (C) 2011 Timothy Pearson
+# kb9vqf (AT) pearsoncomputing.net
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+configure_file( qtkdeintegration_x11_0.cpp.cmake qtkdeintegration_x11_0.cpp @ONLY ) \ No newline at end of file
diff --git a/tqt3integration/utils/qt/in/qt.patch b/tqt3integration/utils/qt/in/qt.patch
new file mode 100644
index 000000000..578388440
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qt.patch
@@ -0,0 +1,270 @@
+--- src/dialogs/qfiledialog.cpp.sav 2004-12-08 15:39:41.000000000 +0100
++++ src/dialogs/qfiledialog.cpp 2004-12-13 16:53:40.000000000 +0100
+@@ -92,6 +92,10 @@
+ #include "qvbox.h"
+ #include "qwidgetstack.h"
+
++#ifdef Q_WS_X11
++#include "private/qtkdeintegration_x11_p.h"
++#endif
++
+ #ifdef Q_WS_WIN
+ #ifdef QT_THREAD_SUPPORT
+ # include <private/qmutexpool_p.h>
+@@ -3428,7 +3432,11 @@ QString QFileDialog::getOpenFileName( co
+ if ( workingDirectory->isNull() )
+ *workingDirectory = QDir::currentDirPath();
+
+-#if defined(Q_WS_WIN)
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::getOpenFileNames( filter, workingDirectory, parent, name,
++ caption, selectedFilter, false ).first();
++#elif defined(Q_WS_WIN)
+ if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle )
+ return winGetOpenFileName( initialSelection, filter, workingDirectory,
+ parent, name, caption, selectedFilter );
+@@ -3546,7 +3554,11 @@ QString QFileDialog::getSaveFileName( co
+ if ( workingDirectory->isNull() )
+ *workingDirectory = QDir::currentDirPath();
+
+-#if defined(Q_WS_WIN)
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::getSaveFileName( initialSelection, filter, workingDirectory,
++ parent, name, caption, selectedFilter );
++#elif defined(Q_WS_WIN)
+ if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle )
+ return winGetSaveFileName( initialSelection, filter, workingDirectory,
+ parent, name, caption, selectedFilter );
+@@ -4433,7 +4445,17 @@ QString QFileDialog::getExistingDirector
+ if ( workingDirectory )
+ wd = *workingDirectory;
+
+-#if defined(Q_WS_WIN)
++#if defined(Q_WS_X11)
++ QString initialDir;
++ if ( !dir.isEmpty() ) {
++ QUrlOperator u( dir );
++ if ( QFileInfo( u.path() ).isDir() )
++ initialDir = dir;
++ } else
++ initialDir = QString::null;
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::getExistingDirectory( initialDir, parent, name, caption );
++#elif defined(Q_WS_WIN)
+ QString initialDir;
+ if ( !dir.isEmpty() ) {
+ QUrlOperator u( dir );
+@@ -5586,7 +5608,10 @@ QStringList QFileDialog::getOpenFileName
+ }
+ }
+
+-#if defined(Q_WS_WIN)
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::getOpenFileNames( filter, workingDirectory, parent, name, caption, selectedFilter, true );
++#elif defined(Q_WS_WIN)
+ if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle )
+ return winGetOpenFileNames( filter, workingDirectory, parent, name, caption, selectedFilter );
+ #elif defined(Q_WS_MAC)
+--- src/dialogs/qmessagebox.cpp.sav 2003-12-22 12:24:32.000000000 +0100
++++ src/dialogs/qmessagebox.cpp 2005-01-05 18:05:29.638723917 +0100
+@@ -54,6 +54,12 @@
+ #endif
+
+
++#ifdef Q_WS_X11
++#include "private/qtkdeintegration_x11_p.h"
++#endif
++
++extern bool qt_use_native_dialogs;
++
+ // Internal class - don't touch
+
+ class QMessageBoxLabel : public QLabel
+@@ -1104,6 +1110,10 @@ int QMessageBox::information( QWidget *p
+ const QString& caption, const QString& text,
+ int button0, int button1, int button2 )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::information( parent, caption, text, button0, button1, button2 );
++#endif
+ QMessageBox *mb = new QMessageBox( caption, text, Information,
+ button0, button1, button2,
+ parent, "qt_msgbox_information", TRUE,
+@@ -1151,6 +1161,10 @@ int QMessageBox::question( QWidget *pare
+ const QString& caption, const QString& text,
+ int button0, int button1, int button2 )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::question( parent, caption, text, button0, button1, button2 );
++#endif
+ QMessageBox *mb = new QMessageBox( caption, text, Question,
+ button0, button1, button2,
+ parent, "qt_msgbox_information", TRUE,
+@@ -1199,6 +1213,10 @@ int QMessageBox::warning( QWidget *paren
+ const QString& caption, const QString& text,
+ int button0, int button1, int button2 )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::warning( parent, caption, text, button0, button1, button2 );
++#endif
+ QMessageBox *mb = new QMessageBox( caption, text, Warning,
+ button0, button1, button2,
+ parent, "qt_msgbox_warning", TRUE,
+@@ -1247,6 +1265,10 @@ int QMessageBox::critical( QWidget *pare
+ const QString& caption, const QString& text,
+ int button0, int button1, int button2 )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::critical( parent, caption, text, button0, button1, button2 );
++#endif
+ QMessageBox *mb = new QMessageBox( caption, text, Critical,
+ button0, button1, button2,
+ parent, "qt_msgbox_critical", TRUE,
+@@ -1394,6 +1416,11 @@ int QMessageBox::information( QWidget *p
+ int defaultButtonNumber,
+ int escapeButtonNumber )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::information( parent, caption, text,
++ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber );
++#endif
+ return textBox( parent, Information, caption, text,
+ button0Text, button1Text, button2Text,
+ defaultButtonNumber, escapeButtonNumber );
+@@ -1436,6 +1463,11 @@ int QMessageBox::question( QWidget *pare
+ int defaultButtonNumber,
+ int escapeButtonNumber )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::question( parent, caption, text,
++ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber );
++#endif
+ return textBox( parent, Question, caption, text,
+ button0Text, button1Text, button2Text,
+ defaultButtonNumber, escapeButtonNumber );
+@@ -1480,6 +1512,11 @@ int QMessageBox::warning( QWidget *paren
+ int defaultButtonNumber,
+ int escapeButtonNumber )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::warning( parent, caption, text,
++ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber );
++#endif
+ return textBox( parent, Warning, caption, text,
+ button0Text, button1Text, button2Text,
+ defaultButtonNumber, escapeButtonNumber );
+@@ -1520,6 +1557,11 @@ int QMessageBox::critical( QWidget *pare
+ int defaultButtonNumber,
+ int escapeButtonNumber )
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::critical( parent, caption, text,
++ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber );
++#endif
+ return textBox( parent, Critical, caption, text,
+ button0Text, button1Text, button2Text,
+ defaultButtonNumber, escapeButtonNumber );
+--- src/dialogs/qfontdialog.cpp.sav 2004-08-12 14:32:06.000000000 +0200
++++ src/dialogs/qfontdialog.cpp 2004-12-13 19:02:31.000000000 +0100
+@@ -56,6 +56,10 @@
+ #include <private/qfontdata_p.h>
+ #include <qvalidator.h>
+
++#ifdef Q_WS_X11
++#include "private/qtkdeintegration_x11_p.h"
++#endif
++
+ /*!
+ \class QFontDialog qfontdialog.h
+ \ingroup dialogs
+@@ -384,9 +388,15 @@ QFont QFontDialog::getFont( bool *ok, QW
+ return getFont( ok, 0, parent, name );
+ }
+
++extern bool qt_use_native_dialogs;
++
+ QFont QFontDialog::getFont( bool *ok, const QFont *def,
+ QWidget *parent, const char* name)
+ {
++#if defined(Q_WS_X11)
++ if ( qt_use_native_dialogs && QKDEIntegration::enabled())
++ return QKDEIntegration::getFont( ok, def, parent, name );
++#endif
+ QFont result;
+ if ( def )
+ result = *def;
+--- src/dialogs/qcolordialog.cpp.sav 2004-04-30 12:00:05.000000000 +0200
++++ src/dialogs/qcolordialog.cpp 2004-12-13 16:53:40.000000000 +0100
+@@ -60,6 +60,10 @@ QRgb macGetRgba( QRgb initial, bool *ok,
+ QColor macGetColor( const QColor& initial, QWidget *parent, const char *name );
+ #endif
+
++#ifdef Q_WS_X11
++#include "private/qtkdeintegration_x11_p.h"
++#endif
++
+ //////////// QWellArray BEGIN
+
+ struct QWellArrayData;
+@@ -1478,7 +1482,10 @@ QColorDialog::QColorDialog(QWidget* pare
+ QColor QColorDialog::getColor( const QColor& initial, QWidget *parent,
+ const char *name )
+ {
+-#if defined(Q_WS_MAC)
++#if defined(Q_WS_X11)
++ if( QKDEIntegration::enabled())
++ return QKDEIntegration::getColor( initial, parent, name );
++#elif defined(Q_WS_MAC)
+ return macGetColor(initial, parent, name);
+ #endif
+
+@@ -1516,6 +1523,13 @@ QRgb QColorDialog::getRgba( QRgb initial
+ QWidget *parent, const char* name )
+ {
+ #if defined(Q_WS_MAC)
++ if( QKDEIntegration::enabled()) {
++ QColor color = QKDEIntegration::getColor( QColor( initial ), parent, name );
++ if( ok )
++ *ok = color.isValid();
++ return color.rgba();
++ }
++#elif defined(Q_WS_MAC)
+ return macGetRgba(initial, ok, parent, name);
+ #endif
+
+--- src/kernel/qt_x11.pri.sav 2004-11-15 17:51:45.000000000 +0100
++++ src/kernel/qt_x11.pri 2004-12-13 16:53:40.000000000 +0100
+@@ -10,6 +10,9 @@ unix {
+
+ SOURCES += $$KERNEL_CPP/qtaddons_x11.cpp
+ PRECOMPILED_HEADER = kernel/qt_pch.h
++
++ SOURCES += $$KERNEL_CPP/qtkdeintegration_x11.cpp
++ HEADERS += $$KERNEL_H/qtkdeintegration_x11_p.h
+ }
+
+ nas {
+--- src/kernel/qt.h.sav 2004-02-16 15:05:19.000000000 +0100
++++ src/kernel/qt.h 2004-12-13 16:53:40.000000000 +0100
+@@ -313,6 +313,10 @@
+ #endif // Private headers
+
+
++#ifdef Q_WS_X11
++#include "private/qtkdeintegration_x11_p.h"
++#endif
++
+ #ifdef Q_WS_MAC
+ #include <qaquastyle.h>
+ #include <qmacstyle_mac.h>
diff --git a/tqt3integration/utils/qt/in/qtkdeintegration_x11_0.cpp.cmake b/tqt3integration/utils/qt/in/qtkdeintegration_x11_0.cpp.cmake
new file mode 100644
index 000000000..37b84a776
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qtkdeintegration_x11_0.cpp.cmake
@@ -0,0 +1 @@
+#define QTKDELIBDIR @PLUGIN_INSTALL_DIR@/plugins/integration
diff --git a/tqt3integration/utils/qt/in/qtkdeintegration_x11_1.cpp b/tqt3integration/utils/qt/in/qtkdeintegration_x11_1.cpp
new file mode 100644
index 000000000..0fe1b3baf
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qtkdeintegration_x11_1.cpp
@@ -0,0 +1,73 @@
+ /*
+ * This file is part of the Trinity Desktop Environment
+ *
+ * Original file taken from the OpenSUSE kdebase builds
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "qtkdeintegration_x11_p.h"
+
+#include <qcolordialog.h>
+#include <qfiledialog.h>
+#include <qfontdialog.h>
+#include <qlibrary.h>
+#include <qregexp.h>
+#include <qmessagebox.h>
+#include <qapplication.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( "KDE_FULL_SESSION" ) == NULL )
+ return "";
+ if( getenv( "KDE_FULL_SESSION" )[ 0 ] != 't' && getenv( "KDE_FULL_SESSION" )[ 0 ] != '1' )
+ return "";
+ if( getenv( "QT_NO_KDE_INTEGRATION" ) == NULL
+ || getenv( "QT_NO_KDE_INTEGRATION" )[ 0 ] == '0' )
+ {
+ return QCString( QTKDELIBDIR ) + "/libqtkde";
+ }
+ return "";
+ }
+
+static long parentToWinId( const QWidget* w )
+ {
+ if( w != NULL )
+ return w->topLevelWidget()->winId();
+ // try to find some usable parent
+ if( qApp->activeWindow() && w != qApp->activeWindow())
+ return qApp->activeWindow()->winId();
+ if( qApp->mainWidget() && w != qApp->mainWidget())
+ return qApp->mainWidget()->winId();
+ return 0;
+ }
+
+inline static QFont fontPtrToFontRef( const QFont* f )
+ {
+ return f != NULL ? *f : QFont();
+ }
+
+// ---
diff --git a/tqt3integration/utils/qt/in/qtkdeintegration_x11_2.cpp b/tqt3integration/utils/qt/in/qtkdeintegration_x11_2.cpp
new file mode 100644
index 000000000..d22f5e9af
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qtkdeintegration_x11_2.cpp
@@ -0,0 +1,81 @@
+ /*
+ * This file is part of the Trinity Desktop Environment
+ *
+ * Original file taken from the OpenSUSE kdebase builds
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+// ---
+
+int QKDEIntegration::information( QWidget* parent, const QString& caption,
+ const QString& text, int button0, int button1, int button2 )
+ {
+ return qtkde_messageBox1(
+ QMessageBox::Information, parentToWinId( 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, parentToWinId( 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, parentToWinId( 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, parentToWinId( 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, parentToWinId( 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, parentToWinId( 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, parentToWinId( 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, parentToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton );
+ }
diff --git a/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_1.h b/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_1.h
new file mode 100644
index 000000000..118e861e7
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_1.h
@@ -0,0 +1,35 @@
+ /*
+ * This file is part of the Trinity Desktop Environment
+ *
+ * Original file taken from the OpenSUSE kdebase builds
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef QKDEINTEGRATION_H
+#define QKDEINTEGRATION_H
+
+#include <qstringlist.h>
+
+class QLibrary;
+class QWidget;
+class QColor;
+class QFont;
+
+class QKDEIntegration
+ {
+ public:
+ static bool enabled();
+// ---
diff --git a/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_2.h b/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_2.h
new file mode 100644
index 000000000..4ce56ff97
--- /dev/null
+++ b/tqt3integration/utils/qt/in/qtkdeintegration_x11_p_2.h
@@ -0,0 +1,28 @@
+ /*
+ * This file is part of the Trinity Desktop Environment
+ *
+ * Original file taken from the OpenSUSE kdebase builds
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+// ---
+ private:
+ static void initLibrary();
+ static bool inited;
+ static bool enable;
+ };
+
+#endif