summaryrefslogtreecommitdiff
path: root/core/launcher/desktop.cpp
Side-by-side diff
Diffstat (limited to 'core/launcher/desktop.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index 68949e6..1a33b36 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -359,48 +359,51 @@ DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType )
DesktopApplication::~DesktopApplication()
{
delete ps;
delete pa;
}
void DesktopApplication::desktopMessage( const QCString &msg, const QByteArray &data )
{
#ifdef Q_WS_QWS
QDataStream stream( data, IO_ReadOnly );
if ( msg == "keyRegister(int key, QString channel, QString message)" ) {
int k;
QString c, m;
stream >> k;
stream >> c;
stream >> m;
qWarning( "KeyRegisterReceived: %i, %s, %s", k, ( const char* ) c, ( const char * ) m );
keyRegisterList.append( QCopKeyRegister( k, c, m ) );
}
else if ( msg == "suspend()" ) {
emit power();
}
+ else if ( msg == "home()" ) {
+ qpedesktop-> home ( );
+ }
#endif
}
void DesktopApplication::systemMessage( const QCString & msg, const QByteArray & data )
{
#ifdef Q_WS_QWS
QDataStream stream ( data, IO_ReadOnly );
if ( msg == "setScreenSaverInterval(int)" ) {
int time;
stream >> time;
m_screensaver-> setInterval( time );
}
else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
int t1, t2, t3;
stream >> t1 >> t2 >> t3;
m_screensaver-> setIntervals( t1, t2, t3 );
}
else if ( msg == "setBacklight(int)" ) {
int bright;
stream >> bright;
m_screensaver-> setBacklight( bright );
}
@@ -696,59 +699,64 @@ static bool isVisibleWindow( int wid )
if ( w->winId() == wid )
return !w->isFullyObscured();
}
return FALSE;
}
static bool hasVisibleWindow( const QString& clientname )
{
const QList<QWSWindow> &list = qwsServer->clientWindows();
QWSWindow* w;
for ( QListIterator<QWSWindow> it( list ); ( w = it.current() ); ++it ) {
if ( w->client() ->identity() == clientname && !w->isFullyObscured() )
return TRUE;
}
return FALSE;
}
void Desktop::raiseLauncher()
{
Config cfg( "qpe" ); //F12 'Home'
cfg.setGroup( "AppsKey" );
QString tempItem;
tempItem = cfg.readEntry( "Middle", "Home" );
if ( tempItem == "Home" || tempItem.isEmpty() ) {
- if ( isVisibleWindow( launcher->winId() ) )
- launcher->nextView();
- else
- launcher->raise();
+ home ( );
}
else {
QCopEnvelope e( "QPE/System", "execute(QString)" );
e << tempItem;
}
}
+void Desktop::home ( )
+{
+ if ( isVisibleWindow( launcher->winId() ) )
+ launcher->nextView();
+ else
+ launcher->raise();
+}
+
void Desktop::executeOrModify( const QString& appLnkFile )
{
AppLnk lnk( MimeType::appsFolderName() + "/" + appLnkFile );
if ( lnk.isValid() ) {
QCString app = lnk.exec().utf8();
Global::terminateBuiltin( "calibrate" );
if ( QCopChannel::isRegistered( "QPE/Application/" + app ) ) {
// MRUList::addTask( &lnk );
if ( hasVisibleWindow( app ) )
QCopChannel::send( "QPE/Application/" + app, "nextView()" );
else
QCopChannel::send( "QPE/Application/" + app, "raise()" );
}
else {
lnk.execute();
}
}
}
void Desktop::raiseDatebook()
{
Config cfg( "qpe" ); //F9 'Activity'
cfg.setGroup( "AppsKey" );
QString tempItem;
@@ -816,48 +824,50 @@ void Desktop::execAutoStart()
// value saved as delay, start the app
if ( suspendTime.secsTo( now ) >= ( delay * 60 ) && !appName.isEmpty() ) {
QCopEnvelope e( "QPE/System", "execute(QString)" );
e << QString( appName );
}
}
#if defined(QPE_HAVE_TOGGLELIGHT)
#include <qpe/config.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <linux/ioctl.h>
#include <time.h>
#endif
void Desktop::togglePower()
{
static bool excllock = false;
+ qDebug ( "togglePower (locked == %d)", excllock ? 1 : 0 );
+
if ( excllock )
return ;
excllock = true;
bool wasloggedin = loggedin;
loggedin = 0;
suspendTime = QDateTime::currentDateTime();
ODevice::inst ( ) -> suspend ( );
QWSServer::screenSaverActivate ( false );
DesktopApplication::switchLCD ( true ); // force LCD on without slow qcop call
{
QCopEnvelope( "QPE/Card", "mtabChanged()" ); // might have changed while asleep
}
if ( wasloggedin )
login( TRUE );
execAutoStart();
//qcopBridge->closeOpenConnections();