From 18cae99f1deb15213074a8fb96f79eae4b0c5a43 Mon Sep 17 00:00:00 2001 From: zecke Date: Fri, 29 Aug 2003 18:04:43 +0000 Subject: Patch provided by mithro I've included 2 patches need to make opie support on the fly screen resolution changing. This is done with the following, qcop "QPE/System" "setCurrentMode(int,int,int)" 480 640 16 This is good for running applications in compatibility mode on the C700. As you can see there isn't much to these patches. --- (limited to 'library') diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 149e6bb..71ec5b3 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -1067,6 +1067,39 @@ void QPEApplication::setDefaultRotation( int r ) } } +#include +#include +#include + +extern void qws_clearLoadedFonts(); + +inline void QPEApplication::setCurrentMode( int x, int y, int depth ) +{ + // Reset the caches + qws_clearLoadedFonts(); + QPixmapCache::clear(); + + // Change the screen mode + qt_screen->setMode(x, y, depth); + + if ( qApp->type() == GuiServer ) { + // Reconfigure the GuiServer + qwsServer->beginDisplayReconfigure(); + qwsServer->endDisplayReconfigure(); + + // Get all the running apps to reset + QCopEnvelope env( "QPE/System", "reset()" ); + } +} + +inline void QPEApplication::reset() { + // Reconnect to the screen + qt_screen->disconnect(); + qt_screen->connect( QString::null ); + + // Redraw everything + applyStyle(); +} /*! \internal @@ -1180,6 +1213,19 @@ void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data setDefaultRotation( r ); } } + else if ( msg == "setCurrentMode(int,int,int)" ) { // Added: 2003-06-11 by Tim Ansell + if ( type() == GuiServer ) { + int x, y, depth; + stream >> x; + stream >> y; + stream >> depth; + setCurrentMode( x, y, depth ); + } + } + else if ( msg == "reset()" ) { + if ( type() != GuiServer ) + reset(); + } else if ( msg == "setCurrentRotation(int)" ) { int r; stream >> r; diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 343e0b9..42810e8 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h @@ -48,9 +48,11 @@ public: static QString qpeDir(); static QString documentDir(); void applyStyle(); + void reset(); static int defaultRotation(); static void setDefaultRotation(int r); static void setCurrentRotation(int r); + static void setCurrentMode(int x, int y, int depth ); static void grabKeyboard(); static void ungrabKeyboard(); -- cgit v0.9.0.2