summaryrefslogtreecommitdiff
authorzecke <zecke>2003-08-18 10:51:18 (UTC)
committer zecke <zecke>2003-08-18 10:51:18 (UTC)
commit58a2e0e7804a01f53153ee0dc58725e654d8d191 (patch) (side-by-side diff)
treeb5079fc7b5b4674d906fafd4caa09d938fb13dc7
parentbbe788821dd43351b96c7a8826f1b7d904f33fdb (diff)
downloadopie-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
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/qpeapplication.cpp12
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
@@ -1679,161 +1679,173 @@ void QPEApplication::ungrabKeyboard()
/*!
Grabs the physical keyboard keys, e.g. the application's launching
keys. Instead of launching applications when these keys are pressed
the signals emitted are sent to this application instead. Some games
programs take over the launch keys in this way to make interaction
easier.
\sa ungrabKeyboard()
*/
void QPEApplication::grabKeyboard()
{
((QPEApplication *) qApp )-> d-> kbgrabbed = true;
}
/*!
\reimp
*/
int QPEApplication::exec()
{
#ifndef QT_NO_COP
d->sendQCopQ();
#endif
if ( d->keep_running )
//|| d->qpe_main_widget && d->qpe_main_widget->isVisible() )
return QApplication::exec();
#ifndef QT_NO_COP
{
QCopEnvelope e( "QPE/System", "closing(QString)" );
e << d->appName;
}
#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
#endif