summaryrefslogtreecommitdiff
path: root/core/launcher
Side-by-side diff
Diffstat (limited to 'core/launcher') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp41
-rw-r--r--core/launcher/desktop.h2
-rw-r--r--core/launcher/launcher.cpp82
3 files changed, 75 insertions, 50 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index cf33011..43006f1 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -32,12 +32,13 @@
#include <qpe/applnk.h>
#include <qpe/mimetype.h>
#include <qpe/password.h>
#include <qpe/config.h>
#include <qpe/power.h>
+#include <qpe/timeconversion.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/global.h>
#ifdef QT_QWS_CUSTOM
#include "qpe/custom.h"
#endif
@@ -53,13 +54,13 @@
#include <unistd.h>
class QCopKeyRegister
{
public:
QCopKeyRegister() : keyCode(0) { }
- QCopKeyRegister(int k, const QString &c, const QString &m)
+ QCopKeyRegister(int k, const QString &c, const QString &m)
: keyCode(k), channel(c), message(m) { }
int getKeyCode() const { return keyCode; }
QString getChannel() const { return channel; }
QString getMessage() const { return message; }
@@ -165,20 +166,20 @@ void DesktopApplication::receive( const QCString &msg, const QByteArray &data )
int k;
QString c, m;
stream >> k;
stream >> c;
stream >> m;
-
+
qWarning("KeyRegisterRecieved: %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 )
@@ -274,13 +275,13 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
}
} else {
up = TRUE;
}
}
}
-
+
return QPEApplication::qwsEventFilter( e );
}
#endif
void DesktopApplication::psTimeout()
{
@@ -544,20 +545,27 @@ void Desktop::raiseEmail()
QCopEnvelope e("QPE/System","execute(QString)");
e << tempItem;
}
}
// autoStarts apps on resume and start
-void Desktop::execAutoStart()
-{
- QString appName;
- Config cfg( "autostart" );
- cfg.setGroup( "AutoStart" );
- appName = cfg.readEntry("Apps", "");
- QCopEnvelope e("QPE/System", "execute(QString)");
- e << QString(appName);
+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) ) {
+ QCopEnvelope e("QPE/System", "execute(QString)");
+ e << QString(appName);
+ } else {
+ }
}
#if defined(QPE_HAVE_TOGGLELIGHT)
#include <qpe/config.h>
#include <sys/ioctl.h>
@@ -590,19 +598,20 @@ static void darkScreen()
void Desktop::togglePower()
{
bool wasloggedin = loggedin;
loggedin=0;
+ suspendTime = QDateTime::currentDateTime();
darkScreen();
if ( wasloggedin )
blankScreen();
-
+
system("apm --suspend");
-
-
+
+
QWSServer::screenSaverActivate( FALSE );
{
QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep
QCopEnvelope e("QPE/System", "setBacklight(int)");
e << -3; // Force on
diff --git a/core/launcher/desktop.h b/core/launcher/desktop.h
index de0dbf0..e094dc0 100644
--- a/core/launcher/desktop.h
+++ b/core/launcher/desktop.h
@@ -24,12 +24,13 @@
#include "shutdownimpl.h"
#include <qpe/qpeapplication.h>
#include <qwidget.h>
+#include <qdatetime.h>
class Background;
class Launcher;
class TaskBar;
class PowerStatus;
class QCopBridge;
@@ -123,12 +124,13 @@ private:
bool recoverMemory();
QCopBridge *qcopBridge;
TransferServer *transferServer;
PackageSlave *packageSlave;
+ QDateTime suspendTime;
bool keyclick,touchclick;
};
#endif // __DESKTOP_H__
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 1449269..979eee6 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -94,13 +94,13 @@ namespace {
if(tmpMime )
mimes.append("image//*" );
tmpMime = cfg->readBoolEntry("text", true );
if(tmpMime )
mimes.append("text//*");
-
+
tmpMime = cfg->readBoolEntry("video", true );
if(tmpMime )
mimes.append("video//*" );
}
return mimes;
}
@@ -546,16 +546,16 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
QString home = QString(getenv("HOME")) + "/Documents";
tmp = new DocLnkSet( home , QString::null);
docsFolder->appendFrom( *tmp );
delete tmp;
// find out wich filesystems are new in this round
// We will do this by having a timestamp inside each mountpoint
- // if the current timestamp doesn't match this is a new file system and
+ // if the current timestamp doesn't match this is a new file system and
// come up with our MediumMountGui :) let the hacking begin
int stamp = uidgen.generate();
-
+
QString newStamp = QString::number( stamp ); // generates newtime Stamp
StorageInfo storage;
const QList<FileSystem> &fileSystems = storage.fileSystems();
QListIterator<FileSystem> it ( fileSystems );
for ( ; it.current(); ++it ) {
if ( (*it)->isRemovable() ) { // let's find out if we should search on it
@@ -588,13 +588,13 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
if( check ){ // find the documents
tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") );
docsFolder->appendFrom( *tmp );
delete tmp;
}
}
- }
+ }
}
}
m_timeStamp = newStamp;
}
void Launcher::updateTabs()
@@ -684,13 +684,13 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
QString app;
stream >> app;
qWarning("app closed %s", app.latin1() );
MRUList::removeTask( app );
}else if ( msg == "linkChanged(QString)" ) {
QString link;
- stream >> link;
+ stream >> link;
if ( in_lnk_props ) {
got_lnk_change = TRUE;
lnk_change = link;
} else {
updateLink(link);
}
@@ -738,40 +738,54 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
e << home;
int locked = (int) Desktop::screenLocked();
e << locked;
// register an app for autostart
// if clear is send the list is cleared.
} else if ( msg == "autoStart(QString)" ) {
- QString appName;
- stream >> appName;
- Config cfg( "autostart" );
- cfg.setGroup( "AutoStart" );
- if ( appName.compare("clear") == 0){
- cfg.writeEntry("Apps", "");
- }
+ QString appName;
+ stream >> appName;
+ Config cfg( "autostart" );
+ cfg.setGroup( "AutoStart" );
+ if ( appName.compare("clear") == 0){
+ cfg.writeEntry("Apps", "");
+ }
} else if ( msg == "autoStart(QString,QString)" ) {
- QString modifier, appName;
- stream >> modifier >> appName;
- Config cfg( "autostart" );
- cfg.setGroup( "AutoStart" );
- if ( modifier.compare("add") == 0 ){
- // only add it appname is entered
- if (!appName.isEmpty()) {
- cfg.writeEntry("Apps", appName);
- }
- } else if (modifier.compare("remove") == 0 ) {
- // need to change for multiple entries
- // actually remove is right now simular to clear, but in future there
- // should be multiple apps in autostart possible.
- QString checkName;
- checkName = cfg.readEntry("Apps", "");
- if (checkName == appName) {
- cfg.writeEntry("Apps", "");
- }
- }
- } else if ( msg == "sendCardInfo()" ) {
+ QString modifier, appName;
+ stream >> modifier >> appName;
+ Config cfg( "autostart" );
+ cfg.setGroup( "AutoStart" );
+ if ( modifier.compare("add") == 0 ){
+ // only add if appname is entered
+ if (!appName.isEmpty()) {
+ cfg.writeEntry("Apps", appName);
+ }
+ } else if (modifier.compare("remove") == 0 ) {
+ // need to change for multiple entries
+ // actually remove is right now simular to clear, but in future there
+ // should be multiple apps in autostart possible.
+ QString checkName;
+ checkName = cfg.readEntry("Apps", "");
+ if (checkName == appName) {
+ cfg.writeEntry("Apps", "");
+ }
+ }
+ // case the autostart feature should be delayed
+ } else if ( msg == "autoStart(QString, QString, QString)") {
+ QString modifier, appName, delay;
+ stream >> modifier >> appName >> delay;
+ Config cfg( "autostart" );
+ cfg.setGroup( "AutoStart" );
+ if ( modifier.compare("add") == 0 ){
+ // only add it appname is entered
+ if (!appName.isEmpty()) {
+ cfg.writeEntry("Apps", appName);
+ cfg.writeEntry("Delay", delay);
+ }
+ } else {
+ }
+ } else if ( msg == "sendCardInfo()" ) {
QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" );
const QList<FileSystem> &fs = storage->fileSystems();
QListIterator<FileSystem> it ( fs );
QString s;
QString homeDir = getenv("HOME");
QString hardDiskHome;
@@ -820,13 +834,13 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
syncDialog = new SyncDialog( this, "syncProgress", FALSE,
WStyle_Tool | WStyle_Customize |
Qt::WStyle_StaysOnTop );
syncDialog->showMaximized();
syncDialog->whatLabel->setText( "<b>" + what + "</b>" );
connect( syncDialog->buttonCancel, SIGNAL( clicked() ),
- SLOT( cancelSync() ) );
+ SLOT( cancelSync() ) );
}
else if ( msg == "stopSync()") {
delete syncDialog; syncDialog = 0;
} else if ( msg == "getAllDocLinks()" ) {
loadDocs();
@@ -859,13 +873,13 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
contents += QString("Size = %1\n").arg( fi.size() );
}
//qDebug( "sending length %d", contents.length() );
QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" );
e << contents;
-
+
qDebug( "================ \n\n%s\n\n===============",
contents.latin1() );
delete docsFolder;
docsFolder = 0;
}