author | zecke <zecke> | 2003-08-18 10:51:18 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-08-18 10:51:18 (UTC) |
commit | 58a2e0e7804a01f53153ee0dc58725e654d8d191 (patch) (side-by-side diff) | |
tree | b5079fc7b5b4674d906fafd4caa09d938fb13dc7 /library/qpeapplication.cpp | |
parent | bbe788821dd43351b96c7a8826f1b7d904f33fdb (diff) | |
download | opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.zip opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.tar.gz opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.tar.bz2 |
If gnuc > 2 define our own __cxa_pure_virtual
this allows us to link with gcc
with latest gcc3.3.1pre1 toolchain
-rw-r--r-- | library/qpeapplication.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 4e08a1f..d1a7cd2 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -1711,128 +1711,140 @@ int QPEApplication::exec() } #endif processEvents(); return 0; } /*! \internal External request for application to quit. Quits if possible without loosing state. */ void QPEApplication::tryQuit() { if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 ) return ; // Inside modal loop or konsole. Too hard to save state. #ifndef QT_NO_COP { QCopEnvelope e( "QPE/System", "closing(QString)" ); e << d->appName; } #endif processEvents(); quit(); } /*! \internal */ void QPEApplication::installTranslation( const QString& baseName ) { QTranslator* trans = new QTranslator(this); QString tfn = qpeDir() + "/i18n/"+baseName; if ( trans->load( tfn ) ) installTranslator( trans ); else delete trans; } /*! \internal User initiated quit. Makes the window 'Go Away'. If preloaded this means hiding the window. If not it means quitting the application. As this is user initiated we don't need to check state. */ void QPEApplication::hideOrQuit() { processEvents(); // If we are a preloaded application we don't actually quit, so emit // a System message indicating we're quasi-closing. if ( d->preloaded && d->qpe_main_widget ) #ifndef QT_NO_COP { QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); e << d->appName; d->qpe_main_widget->hide(); } #endif else quit(); } +#if (__GNUC__ > 2 ) +extern "C" void __cxa_pure_virtual(); + +void __cxa_pure_virtual() +{ + fprintf( stderr, "Pure virtual called\n"); + abort(); + +} + +#endif + #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_RAMSES) // The libraries with the skiff package (and possibly others) have // completely useless implementations of builtin new and delete that // use about 50% of your CPU. Here we revert to the simple libc // functions. void* operator new[]( size_t size ) { return malloc( size ); } void* operator new( size_t size ) { return malloc( size ); } void operator delete[]( void* p ) { free( p ); } void operator delete[]( void* p, size_t /*size*/ ) { free( p ); } void operator delete( void* p ) { free( p ); } void operator delete( void* p, size_t /*size*/ ) { free( p ); } #endif #if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP) #include <qwidgetlist.h> #ifdef QWS #include <qgfx_qws.h> extern QRect qt_maxWindowRect; void qt_setMaxWindowRect(const QRect& r ) { qt_maxWindowRect = qt_screen->mapFromDevice( r, qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) ); // Re-resize any maximized windows QWidgetList* l = QApplication::topLevelWidgets(); if ( l ) { QWidget * w = l->first(); while ( w ) { if ( w->isVisible() && w->isMaximized() ) { w->showMaximized(); } w = l->next(); } delete l; } } #endif |