QApplication is basically a singleton, and an accessor macro is already
defined in #include <QApplication>. Therefore our local copy can go away.
http://doc.trolltech.com/4.1/qapplication.html#qApp
--- classpath.orig/native/jni/qt-peer/mainqtthread.cpp
+++ classpath/native/jni/qt-peer/mainqtthread.cpp
@@ -43,7 +43,6 @@
#include "mainthreadinterface.h"
MainThreadInterface *mainThread;
-QApplication *qApplication;
/**
@@ -75,21 +74,19 @@
argv[0] = (char *)malloc(10 * sizeof(char));
strncpy(argv[0], " \0", 3);
}
- QApplication *qtApp = new QApplication( *argc, argv );
- assert( qtApp );
-
- qApplication = qtApp;
+ QApplication( *argc, argv );
+ assert( qApp );
if( theme != NULL)
env->ReleaseStringUTFChars( theme, argv[1] );
- mainThread = new MainThreadInterface( qtApp );
+ mainThread = new MainThreadInterface( qApp );
jclass cls = env->GetObjectClass(obj);
jfieldID nofid = env->GetFieldID( cls, "mainThreadInterface", "J" );
env->SetLongField( obj, nofid, (jlong)mainThread );
- return (jlong)qtApp;
+ return (jlong)qApp;
}
/*
--- classpath.orig/native/jni/qt-peer/qtcomponentpeer.cpp
+++ classpath/native/jni/qt-peer/qtcomponentpeer.cpp
@@ -48,8 +48,6 @@
#include "componentevent.h"
#include "qtfont.h"
-extern QApplication *qApplication;
-
// Java Cursor types.
#define DEFAULT_CURSOR 0
#define CROSSHAIR_CURSOR 1
@@ -340,7 +338,7 @@
{
QWidget *widget = (QWidget *) getNativeObject( env, obj );
assert( widget );
- return (jint) qApplication->desktop()->screenNumber( widget );
+ return (jint) qApp->desktop()->screenNumber( widget );
}
/*
--- classpath.orig/native/jni/qt-peer/qtscreendevice.cpp
+++ classpath/native/jni/qt-peer/qtscreendevice.cpp
@@ -41,14 +41,12 @@
#include <gnu_java_awt_peer_qt_QtScreenDevice.h>
#include "nativewrapper.h"
-extern QApplication *qApplication;
-
/*
*/
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtScreenDevice_init
(JNIEnv *env, jobject obj, jint id)
{
- QWidget *widget = qApplication->desktop()->screen( id );
+ QWidget *widget = qApp->desktop()->screen( id );
assert( widget );
setNativeObject(env, obj, widget);
}
--- classpath.orig/native/jni/qt-peer/qttoolkit.cpp
+++ classpath/native/jni/qt-peer/qttoolkit.cpp
@@ -45,8 +45,6 @@
#include "mainthreadinterface.h"
#include "qtstrings.h"
-extern QApplication *qApplication;
-
/**
* Calls syncX();
*/
@@ -73,7 +71,7 @@
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtToolkit_beep
(JNIEnv *env, jobject obj)
{
- qApplication->beep();
+ qApp->beep();
}
/**
@@ -82,7 +80,7 @@
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtToolkit_defaultScreen
(JNIEnv *env, jobject obj)
{
- return (jint) qApplication->desktop()->primaryScreen();
+ return (jint) qApp->desktop()->primaryScreen();
}
/**
@@ -91,7 +89,7 @@
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtToolkit_numScreens
(JNIEnv *env, jobject obj)
{
- return (jint) qApplication->desktop()->numScreens();
+ return (jint) qApp->desktop()->numScreens();
}
/*
@@ -135,7 +133,7 @@
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtToolkit_getScreenResolution
(JNIEnv *env, jobject obj)
{
- QDesktopWidget *d = qApplication->desktop();
+ QDesktopWidget *d = qApp->desktop();
// Java assumes square pixels. Qt, more intelligently, does not.
// What to do? Well.. Average them?
@@ -151,6 +149,6 @@
(JNIEnv *env, jobject obj)
{
// SyncX needs to be called from the main thread.
- mainThread->postEventToMain( new AWTSyncEvent( qApplication ) );
+ mainThread->postEventToMain( new AWTSyncEvent( qApp ) );
}