summaryrefslogtreecommitdiffstats
path: root/src/kernel/qapplication.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-08-10 12:14:37 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-08-10 12:14:37 -0500
commitb24c4d5955f355356f52bc4b48c5427a7b487031 (patch)
tree5c9f65ea5f89ebf0c1591527ad3baf257c010065 /src/kernel/qapplication.cpp
parent76192ffc96b326f57cf932ed68600a3017a76fab (diff)
downloadqt3-b24c4d5955f355356f52bc4b48c5427a7b487031.tar.gz
qt3-b24c4d5955f355356f52bc4b48c5427a7b487031.zip
Add new delayed initialization constructor to QApplication
Diffstat (limited to 'src/kernel/qapplication.cpp')
-rw-r--r--src/kernel/qapplication.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/kernel/qapplication.cpp b/src/kernel/qapplication.cpp
index 7296f4c..849c41c 100644
--- a/src/kernel/qapplication.cpp
+++ b/src/kernel/qapplication.cpp
@@ -923,6 +923,103 @@ QApplication::QApplication(Display *dpy, int argc, char **argv,
#endif // Q_WS_X11
+QApplication::QApplication( bool delayed_init ) {
+ if (!delayed_init) {
+ qWarning( "QApplication: incorrect constructor likely specified." );
+ }
+}
+
+#if defined(Q_WS_X11)
+/*!
+ Create an application, given an already open display \a dpy. If \a
+ visual and \a colormap are non-zero, the application will use those as
+ the default Visual and Colormap contexts.
+
+ \warning Qt only supports TrueColor visuals at depths higher than 8
+ bits-per-pixel.
+
+ This is available only on X11.
+*/
+
+void QApplication::doLateInitialization( Display* dpy, HANDLE visual, HANDLE colormap )
+{
+ static int aargc = 1;
+ // ### a string literal is a cont char*
+ // ### using it as a char* is wrong and could lead to segfaults
+ // ### if aargv is modified someday
+ static char *aargv[] = { (char*)"unknown", 0 };
+
+ app_argc = aargc;
+ app_argv = aargv;
+
+ qt_appType = GuiClient;
+ qt_is_gui_used = TRUE;
+ qt_appType = GuiClient;
+ init_precmdline();
+ // ... no command line.
+
+ if ( ! dpy ) {
+#ifdef QT_CHECK_STATE
+ qWarning( "QApplication: invalid Display* argument." );
+#endif // QT_CHECK_STATE
+
+ qt_init( &aargc, aargv, GuiClient );
+ } else {
+ qt_init( dpy, visual, colormap );
+ }
+
+ initialize( aargc, aargv );
+
+ if ( qt_is_gui_used )
+ qt_maxWindowRect = desktop()->rect();
+ if ( eventloop )
+ eventloop->appStartingUp();
+}
+
+/*!
+ Create an application, given an already open display \a dpy and using
+ \a argc command line arguments in \a argv. If \a
+ visual and \a colormap are non-zero, the application will use those as
+ the default Visual and Colormap contexts.
+
+ \warning Qt only supports TrueColor visuals at depths higher than 8
+ bits-per-pixel.
+
+ This is available only on X11.
+
+*/
+void QApplication::doLateInitialization(Display *dpy, int argc, char **argv,
+ HANDLE visual, HANDLE colormap)
+{
+ qt_appType = GuiClient;
+ qt_is_gui_used = TRUE;
+ qt_appType = GuiClient;
+ init_precmdline();
+
+ app_argc = argc;
+ app_argv = argv;
+
+ if ( ! dpy ) {
+#ifdef QT_CHECK_STATE
+ qWarning( "QApplication: invalid Display* argument." );
+#endif // QT_CHECK_STATE
+
+ qt_init( &argc, argv, GuiClient );
+ } else {
+ qt_init(dpy, visual, colormap);
+ }
+
+ process_cmdline( &argc, argv );
+ initialize(argc, argv);
+
+ if ( qt_is_gui_used )
+ qt_maxWindowRect = desktop()->rect();
+ if ( eventloop )
+ eventloop->appStartingUp();
+}
+
+
+#endif // Q_WS_X11
void QApplication::init_precmdline()
{