author | harlekin <harlekin> | 2002-08-29 18:11:07 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-08-29 18:11:07 (UTC) |
commit | e268d442ac16f94b8575c1f32e0e1962ce8b926f (patch) (side-by-side diff) | |
tree | 0e518120be6910893b1f24c2caa7bfa664bca922 | |
parent | 6707dd2b7abf2fac4aef4025cf8e554577d0891c (diff) | |
download | opie-e268d442ac16f94b8575c1f32e0e1962ce8b926f.zip opie-e268d442ac16f94b8575c1f32e0e1962ce8b926f.tar.gz opie-e268d442ac16f94b8575c1f32e0e1962ce8b926f.tar.bz2 |
launch for ipaq 38xx mail on button F11 instead of showing the menu
-rw-r--r-- | core/launcher/desktop.cpp | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp index 5aba8dd..8756d37 100644 --- a/core/launcher/desktop.cpp +++ b/core/launcher/desktop.cpp @@ -155,97 +155,96 @@ DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) } DesktopApplication::~DesktopApplication() { delete ps; delete pa; } void DesktopApplication::receive( const QCString &msg, const QByteArray &data ) { 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(); } } enum MemState { Unknown, VeryLow, Low, Normal } memstate=Unknown; #ifdef Q_WS_QWS bool DesktopApplication::qwsEventFilter( QWSEvent *e ) { qpedesktop->checkMemory(); if ( e->type == QWSEvent::Key ) { QWSKeyEvent *ke = (QWSKeyEvent *)e; if ( !loggedin && ke->simpleData.keycode != Key_F34 ) return TRUE; bool press = ke->simpleData.is_press; bool autoRepeat= ke->simpleData.is_auto_repeat; /* app that registers key/message to be sent back to the app, when it doesn't have focus, when user presses key, unless keyboard has been requested from app. will not send multiple repeats if user holds key i.e. one shot - */ if (!keyRegisterList.isEmpty()) { KeyRegisterList::Iterator it; for( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) { if ((*it).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed() && press) { if(press) qDebug("press"); else qDebug("release"); QCopEnvelope((*it).getChannel().utf8(), (*it).getMessage().utf8()); } } } if ( !keyboardGrabbed() ) { if ( ke->simpleData.keycode == Key_F9 ) { if ( press ) emit datebook(); return TRUE; } if ( ke->simpleData.keycode == Key_F10 ) { if ( !press && cardSendTimer ) { emit contacts(); delete cardSendTimer; } else if ( press ) { cardSendTimer = new QTimer(); cardSendTimer->start( 2000, TRUE ); connect( cardSendTimer, SIGNAL( timeout() ), this, SLOT( sendCard() ) ); } return TRUE; } /* menu key now opens application menu/toolbar if ( ke->simpleData.keycode == Key_F11 ) { if ( press ) emit menu(); return TRUE; } */ if ( ke->simpleData.keycode == Key_F12 ) { while( activePopupWidget() ) activePopupWidget()->close(); if ( press ) emit launch(); return TRUE; } if ( ke->simpleData.keycode == Key_F13 ) { if ( press ) emit email(); return TRUE; } } if ( ke->simpleData.keycode == Key_F34 ) { if ( press ) emit power(); return TRUE; @@ -486,119 +485,120 @@ void Desktop::executeOrModify(const QString& 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; tempItem = cfg.readEntry( "LeftEnd" , "Calender" ); if ( tempItem == "Calender" || tempItem.isEmpty() ) { tempItem = "datebook"; } QCopEnvelope e( "QPE/System", "execute(QString)" ); e << tempItem; } void Desktop::raiseContacts() { Config cfg( "qpe" ); //F10, 'Contacts' cfg.setGroup( "AppsKey" ); QString tempItem; tempItem = cfg.readEntry( "Left2nd", "Address Book" ); if ( tempItem == "Address Book" || tempItem.isEmpty() ) { tempItem = "addressbook"; } QCopEnvelope e("QPE/System","execute(QString)"); e << tempItem; } void Desktop::raiseMenu() { Config cfg( "qpe" ); //F11, 'Menu cfg.setGroup( "AppsKey" ); QString tempItem; tempItem = cfg.readEntry( "Right2nd" , "Popup Menu" ); if ( tempItem == "Popup Menu" || tempItem.isEmpty() ) { - Global::terminateBuiltin("calibrate"); + Global::terminateBuiltin( "calibrate" ); tb->startMenu()->launch(); } else { QCopEnvelope e("QPE/System","execute(QString)"); e << tempItem; } } void Desktop::raiseEmail() { - Config cfg( "qpe" ); //F13, 'Mail' + Config cfg( "qpe" ); //F13, 'Mail' // only in zaurus, on ipaq mail key is F11 cfg.setGroup( "AppsKey" ); QString tempItem; tempItem = cfg.readEntry( "RightEnd", "Mail" ); if ( tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty() ) { tempItem = "mail"; } QCopEnvelope e("QPE/System","execute(QString)"); e << tempItem; } // autoStarts apps on resume and start -void Desktop::execAutoStart() { +void Desktop::execAutoStart() +{ QString appName; int delay; QDateTime now = QDateTime::currentDateTime(); Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); appName = cfg.readEntry( "Apps", "" ); delay = ( cfg.readEntry( "Delay", "0" ) ).toInt(); // If the time between suspend and resume was longer then the // 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 static bool blanked=FALSE; static void blankScreen() { if ( !qt_screen ) return; /* Should use a big black window instead. QGfx* g = qt_screen->screenGfx(); g->fillRect(0,0,qt_screen->width(),qt_screen->height()); delete g; */ blanked = TRUE; } static void darkScreen() { extern void qpe_setBacklight(int); qpe_setBacklight(0); // force off } void Desktop::togglePower() @@ -719,88 +719,94 @@ void DesktopApplication::restart() #elif defined(QT_QWS_CASSIOPEIA) execl( "/bin/sh", "sh", 0 ); #else execl( (qpeDir()+"/bin/qpe").latin1(), "qpe", 0 ); #endif exit(1); #endif } void Desktop::startTransferServer() { // start qcop bridge server qcopBridge = new QCopBridge( 4243 ); if ( !qcopBridge->ok() ) { delete qcopBridge; qcopBridge = 0; } // start transfer server transferServer = new TransferServer( 4242 ); if ( !transferServer->ok() ) { delete transferServer; transferServer = 0; } if ( !transferServer || !qcopBridge ) startTimer( 2000 ); } void Desktop::timerEvent( QTimerEvent *e ) { killTimer( e->timerId() ); startTransferServer(); } void Desktop::terminateServers() { delete transferServer; delete qcopBridge; transferServer = 0; qcopBridge = 0; } void Desktop::rereadVolumes() { Config cfg("qpe"); cfg.setGroup("Volume"); touchclick = cfg.readBoolEntry("TouchSound"); keyclick = cfg.readBoolEntry("KeySound"); alarmsound = cfg.readBoolEntry("AlarmSound"); -// Config cfg("Sound"); -// cfg.setGroup("System"); -// touchclick = cfg.readBoolEntry("Touch"); -// keyclick = cfg.readBoolEntry("Key"); } void Desktop::keyClick() { - if ( keyclick ) - ODevice::inst ( )-> keySound ( ); + if ( keyclick ) + ODevice::inst ( )-> keySound ( ); } void Desktop::screenClick() { - if ( touchclick ) - ODevice::inst ( )-> touchSound ( ); + if ( touchclick ) + ODevice::inst ( )-> touchSound ( ); } void Desktop::soundAlarm() { - if ( qpedesktop-> alarmsound ) - ODevice::inst ( )-> alarmSound ( ); + if ( qpedesktop-> alarmsound ) + ODevice::inst ( )-> alarmSound ( ); } bool Desktop::eventFilter( QObject *, QEvent *ev ) { - if ( ev-> type ( ) == QEvent::KeyPress ) { - QKeyEvent *ke = (QKeyEvent *) ev; - if ( ke-> key ( ) == Qt::Key_F11 ) { // menu key - QWidget *active = qApp-> activeWindow ( ); - - if ( active && active-> isPopup ( )) - active->close(); - - raiseMenu ( ); - return true; + if ( ev-> type ( ) == QEvent::KeyPress ) { + QKeyEvent *ke = (QKeyEvent *) ev; + if ( ke-> key ( ) == Qt::Key_F11 ) { // menu key + QWidget *active = qApp-> activeWindow ( ); + + if ( active && active-> isPopup ( )) + active->close(); + + /* + * On iPAQ 38xx that key is not the "menu key" but the mail key + * To not confuse the users, make it launch the mail app on 38xx + */ + if (ODevice::inst()->model() == OMODEL_iPAQ_H38xx ) { + QCopEnvelope e( "QPE/System", "execute(QString)" ); + e << QString( "mail" ); + return true; + } else { + raiseMenu ( ); + return true; + } + } } - } - return false; + return false; } |