summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qtinterface/tqapplication.cpp11
-rw-r--r--qtinterface/tqapplication.h231
-rw-r--r--qtinterface/tqasyncio.h4
-rw-r--r--qtinterface/tqobject.h8
-rw-r--r--qtinterface/tqsocketnotifier.h2
-rw-r--r--qtinterface/tqt.h4
-rw-r--r--qtinterface/tqtimer.h51
7 files changed, 273 insertions, 38 deletions
diff --git a/qtinterface/tqapplication.cpp b/qtinterface/tqapplication.cpp
index bac32b4..07fe94a 100644
--- a/qtinterface/tqapplication.cpp
+++ b/qtinterface/tqapplication.cpp
@@ -20,4 +20,13 @@ Boston, MA 02110-1301, USA.
*/
#include <tqt.h>
-#include <tqapplication.h> \ No newline at end of file
+#include <tqapplication.h>
+
+#ifdef USE_QT4
+
+void QApplication::processOneEvent()
+{
+ #warning "!!! WARNING: QApplication::processOneEvent() UNIMPLEMENTED !!!"
+}
+
+#endif // USE_QT4 \ No newline at end of file
diff --git a/qtinterface/tqapplication.h b/qtinterface/tqapplication.h
index 26e4035..7d88b46 100644
--- a/qtinterface/tqapplication.h
+++ b/qtinterface/tqapplication.h
@@ -36,9 +36,236 @@ Boston, MA 02110-1301, USA.
#ifdef USE_QT4
// Reimplement the QApplication class
-// For Qt4, no changes are needed
+// For Qt4, some changes are needed
-#include <qapplication.h>
+// Linker tricks required to override a class without changing its name
+#define QApplication IQApplication
+#include <Qt/qapplication.h>
+#undef QApplication
+
+class QApplication : public IQApplication {
+// This is taken straight from the Qt header file, with all Q_OBJECT, slot, and similar keywords stripped out.
+// Also, all inline functions must be converted to simple declarations.
+// This is the last and most obnoxious part of the linker tricks mentioned above
+// Essentially, the compiler needs to know that these Q functions exist so that the above I functions
+// are not attempted to link. Instead, these empty declarations allow the linker to pull in the complete Q function
+// from the Qt toolkit in use. Convoluted, yes, but it should make maintinance MUCH easier as the Qt API changes.
+ enum Type { Tty, GuiClient, GuiServer };
+
+#ifdef Q_WS_S60
+ typedef CApaApplication * (*QS60MainApplicationFactory)();
+#endif
+
+#ifndef qdoc
+ QApplication(int &argc, char **argv, int = QT_VERSION);
+ QApplication(int &argc, char **argv, bool GUIenabled, int = QT_VERSION);
+ QApplication(int &argc, char **argv, Type, int = QT_VERSION);
+#if defined(Q_WS_X11)
+ QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0, int = QT_VERSION);
+ QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0, int = QT_VERSION);
+#endif
+#if defined(Q_WS_S60)
+ QApplication(QApplication::QS60MainApplicationFactory factory, int &argc, char **argv, int = QT_VERSION);
+#endif
+#endif
+ virtual ~QApplication();
+
+ static Type type();
+
+ static QStyle *style();
+ static void setStyle(QStyle*);
+ static QStyle *setStyle(const QString&);
+ enum ColorSpec { NormalColor=0, CustomColor=1, ManyColor=2 };
+ static int colorSpec();
+ static void setColorSpec(int);
+ static void setGraphicsSystem(const QString &);
+
+#ifndef QT_NO_CURSOR
+ static QCursor *overrideCursor();
+ static void setOverrideCursor(const QCursor &);
+ static void changeOverrideCursor(const QCursor &);
+ static void restoreOverrideCursor();
+#endif
+ static QPalette palette();
+ static QPalette palette(const QWidget *);
+ static QPalette palette(const char *className);
+ static void setPalette(const QPalette &, const char* className = 0);
+ static QFont font();
+ static QFont font(const QWidget*);
+ static QFont font(const char *className);
+ static void setFont(const QFont &, const char* className = 0);
+ static QFontMetrics fontMetrics();
+
+ static void setWindowIcon(const QIcon &icon);
+ static QIcon windowIcon();
+
+ static QWidgetList allWidgets();
+ static QWidgetList topLevelWidgets();
+
+ static QDesktopWidget *desktop();
+
+ static QWidget *activePopupWidget();
+ static QWidget *activeModalWidget();
+#ifndef QT_NO_CLIPBOARD
+ static QClipboard *clipboard();
+#endif
+ static QWidget *focusWidget();
+
+ static QWidget *activeWindow();
+ static void setActiveWindow(QWidget* act);
+
+ static QWidget *widgetAt(const QPoint &p);
+ static inline QWidget *widgetAt(int x, int y) { return widgetAt(QPoint(x, y)); }
+ static QWidget *topLevelAt(const QPoint &p);
+ static inline QWidget *topLevelAt(int x, int y) { return topLevelAt(QPoint(x, y)); }
+
+ static void syncX();
+ static void beep();
+ static void alert(QWidget *widget, int duration = 0);
+
+ static Qt::KeyboardModifiers keyboardModifiers();
+ static Qt::MouseButtons mouseButtons();
+
+ static void setDesktopSettingsAware(bool);
+ static bool desktopSettingsAware();
+
+ static void setCursorFlashTime(int);
+ static int cursorFlashTime();
+
+ static void setDoubleClickInterval(int);
+ static int doubleClickInterval();
+
+ static void setKeyboardInputInterval(int);
+ static int keyboardInputInterval();
+
+#ifndef QT_NO_WHEELEVENT
+ static void setWheelScrollLines(int);
+ static int wheelScrollLines();
+#endif
+ static void setGlobalStrut(const QSize &);
+ static QSize globalStrut();
+
+ static void setStartDragTime(int ms);
+ static int startDragTime();
+ static void setStartDragDistance(int l);
+ static int startDragDistance();
+
+ static void setLayoutDirection(Qt::LayoutDirection direction);
+ static Qt::LayoutDirection layoutDirection();
+
+ static inline bool isRightToLeft() { return layoutDirection() == Qt::RightToLeft; }
+ static inline bool isLeftToRight() { return layoutDirection() == Qt::LeftToRight; }
+
+ static bool isEffectEnabled(Qt::UIEffect);
+ static void setEffectEnabled(Qt::UIEffect, bool enable = true);
+
+#if defined(Q_WS_MAC)
+ virtual bool macEventFilter(EventHandlerCallRef, EventRef);
+#endif
+#if defined(Q_WS_X11)
+ virtual bool x11EventFilter(XEvent *);
+ virtual int x11ClientMessage(QWidget*, XEvent*, bool passive_only);
+ int x11ProcessEvent(XEvent*);
+#endif
+#if defined(Q_OS_SYMBIAN)
+ int symbianProcessEvent(const QSymbianEvent *event);
+ virtual bool symbianEventFilter(const QSymbianEvent *event);
+#endif
+#if defined(Q_WS_QWS)
+ virtual bool qwsEventFilter(QWSEvent *);
+ int qwsProcessEvent(QWSEvent*);
+ void qwsSetCustomColors(QRgb *colortable, int start, int numColors);
+#ifndef QT_NO_QWS_MANAGER
+ static QDecoration &qwsDecoration();
+ static void qwsSetDecoration(QDecoration *);
+ static QDecoration *qwsSetDecoration(const QString &decoration);
+#endif
+#endif
+
+
+#if defined(Q_WS_WIN)
+ void winFocus(QWidget *, bool);
+ static void winMouseButtonUp();
+#endif
+#ifndef QT_NO_SESSIONMANAGER
+ // session management
+ bool isSessionRestored() const;
+ QString sessionId() const;
+ QString sessionKey() const;
+ virtual void commitData(QSessionManager& sm);
+ virtual void saveState(QSessionManager& sm);
+#endif
+ void setInputContext(QInputContext *);
+ QInputContext *inputContext() const;
+
+ static QLocale keyboardInputLocale();
+ static Qt::LayoutDirection keyboardInputDirection();
+
+ static int exec();
+ bool notify(QObject *, QEvent *);
+
+
+ static void setQuitOnLastWindowClosed(bool quit);
+ static bool quitOnLastWindowClosed();
+
+#ifdef QT_KEYPAD_NAVIGATION
+ static Q_DECL_DEPRECATED void setKeypadNavigationEnabled(bool);
+ static bool keypadNavigationEnabled();
+ static void setNavigationMode(Qt::NavigationMode mode);
+ static Qt::NavigationMode navigationMode();
+#endif
+
+ void lastWindowClosed();
+ void focusChanged(QWidget *old, QWidget *now);
+ void fontDatabaseChanged();
+#ifndef QT_NO_SESSIONMANAGER
+ void commitDataRequest(QSessionManager &sessionManager);
+ void saveStateRequest(QSessionManager &sessionManager);
+#endif
+
+public:
+ QString styleSheet() const;
+#ifndef QT_NO_STYLE_STYLESHEET
+ void setStyleSheet(const QString& sheet);
+#endif
+#ifdef Q_WS_WINCE
+ void setAutoMaximizeThreshold(const int threshold);
+ int autoMaximizeThreshold() const;
+#endif
+ void setAutoSipEnabled(const bool enabled);
+ bool autoSipEnabled() const;
+ static void closeAllWindows();
+ static void aboutQt();
+
+protected:
+#if defined(Q_WS_QWS)
+ void setArgs(int, char **);
+#endif
+ bool event(QEvent *);
+ bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
+
+#if defined(Q_INTERNAL_QAPP_SRC) || defined(qdoc)
+ QApplication(int &argc, char **argv);
+ QApplication(int &argc, char **argv, bool GUIenabled);
+ QApplication(int &argc, char **argv, Type);
+#if defined(Q_WS_X11)
+ QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0);
+ QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
+#endif
+#if defined(Q_WS_S60) || defined(qdoc)
+ QApplication(QApplication::QS60MainApplicationFactory factory, int &argc, char **argv);
+#endif
+#endif
+
+// End Qt header file copy
+
+// This is where the new member functions should be placed
+// Unlike the above copied block, these members must be defined in the associated .cpp file,
+// and they should usually do something. Feel free to include as many Qt files as needed
+// in the cpp source file, but DO NOT include them in this header file.
+public:
+ void processOneEvent();
+};
#endif // USE_QT4
diff --git a/qtinterface/tqasyncio.h b/qtinterface/tqasyncio.h
index 210c6df..5708884 100644
--- a/qtinterface/tqasyncio.h
+++ b/qtinterface/tqasyncio.h
@@ -37,9 +37,9 @@ Boston, MA 02110-1301, USA.
#ifdef USE_QT4
// Reimplement the QAsyncIO class
-// For Qt4, no changes are needed
+// For Qt4, some changes are needed
-#include <qasyncio.h>
+//#include <qasyncio.h>
#endif // USE_QT4
diff --git a/qtinterface/tqobject.h b/qtinterface/tqobject.h
index 6d5e063..90de091 100644
--- a/qtinterface/tqobject.h
+++ b/qtinterface/tqobject.h
@@ -23,9 +23,9 @@ Boston, MA 02110-1301, USA.
#define TQOBJECT_H
#include <tqt.h>
-#include <tqvariant.h>
-#include <tqmetaobject.h>
-#include <tqobjectlist.h>
+// #include <tqvariant.h>
+// #include <tqmetaobject.h>
+// #include <tqobjectlist.h>
#ifdef USE_QT3
@@ -41,7 +41,7 @@ Boston, MA 02110-1301, USA.
// Reimplement the QObject class
// For Qt4, no changes are needed
-#include <qobject.h>
+#include <Qt/qobject.h>
#endif // USE_QT4
diff --git a/qtinterface/tqsocketnotifier.h b/qtinterface/tqsocketnotifier.h
index d2a4f1a..529fe3b 100644
--- a/qtinterface/tqsocketnotifier.h
+++ b/qtinterface/tqsocketnotifier.h
@@ -38,7 +38,7 @@ Boston, MA 02110-1301, USA.
// Reimplement the QSocketNotifier class
// For Qt4, no changes are needed
-#include <qsocketnotifier.h>
+#include <Qt/qsocketnotifier.h>
#endif // USE_QT4
diff --git a/qtinterface/tqt.h b/qtinterface/tqt.h
index 2848177..62f6021 100644
--- a/qtinterface/tqt.h
+++ b/qtinterface/tqt.h
@@ -22,8 +22,8 @@ Boston, MA 02110-1301, USA.
#ifndef TQT_H
#define TQT_H
-#define USE_QT3
-//#define USE_QT4
+//#define USE_QT3
+#define USE_QT4
//#include "kdemacros.h.in"
//#define TQT_EXPORT KDE_EXPORT
diff --git a/qtinterface/tqtimer.h b/qtinterface/tqtimer.h
index 7b6b72b..f1c1390 100644
--- a/qtinterface/tqtimer.h
+++ b/qtinterface/tqtimer.h
@@ -40,44 +40,37 @@ Boston, MA 02110-1301, USA.
// Linker tricks required to override a class without changing its name
#define QTimer IQTimer
-#include <qtimer.h>
+#include <QtCore/qtimer.h>
#undef QTimer
class QTimer : public IQTimer {
// This is taken straight from the Qt header file, with all Q_OBJECT, slot, and similar keywords stripped out.
+// Also, all inline functions must be converted to simple declarations.
// This is the last and most obnoxious part of the linker tricks mentioned above
// Essentially, the compiler needs to know that these Q functions exist so that the above I functions
// are not attempted to link. Instead, these empty declarations allow the linker to pull in the complete Q function
// from the Qt toolkit in use. Convoluted, yes, but it should make maintinance MUCH easier as the Qt API changes.
public:
- QTimer( QObject *parent=0, const char *name=0 );
- ~QTimer();
+ explicit QTimer(QObject *parent = 0);
+ ~QTimer();
- bool isActive() const;
+ inline bool isActive() const;
+ int timerId() const;
- int start( int msec, bool sshot = FALSE );
- void changeInterval( int msec );
- void stop();
+ void setInterval(int msec);
+ int interval() const;
- static void singleShot( int msec, QObject *receiver, const char *member );
+ inline void setSingleShot(bool singleShot);
+ inline bool isSingleShot() const;
- int timerId() const { return id; }
+ static void singleShot(int msec, QObject *receiver, const char *member);
- void timeout();
+ void start(int msec);
-protected:
- bool event( QEvent * );
+ void start();
+ void stop();
-private:
- int id;
- uint single : 1;
- uint nulltimer : 1;
-
-private: // Disabled copy constructor and operator=
-#if defined(Q_DISABLE_COPY)
- QTimer( const QTimer & );
- QTimer &operator=( const QTimer & );
-#endif
+ void timeout();
// End Qt header file copy
// This is where the new member functions should be placed
@@ -85,12 +78,18 @@ private: // Disabled copy constructor and operator=
// and they should usually do something. Feel free to include as many Qt files as needed
// in the cpp source file, but DO NOT include them in this header file.
int myNewFunction(int parameter_one);
+
+// Begin Qt header file copy
+protected:
+ void timerEvent(QTimerEvent *);
+
+private:
+ inline int startTimer(int);
+ inline void killTimer(int);
};
-inline bool QTimer::isActive() const
-{
- return id >= 0;
-}
+//inline void QTimer::setSingleShot(bool asingleShot) { single = asingleShot; }
+// End Qt header file copy
#endif // USE_QT4