author | harlekin <harlekin> | 2002-04-15 20:30:41 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-04-15 20:30:41 (UTC) |
commit | 15244683bb97d303d0d3b6104b46a9b429aaed85 (patch) (side-by-side diff) | |
tree | ce57768177baec8b90146245a8cfad669addf647 | |
parent | 551eb586e6a19db69348b0bb38f06171201d89a0 (diff) | |
download | opie-15244683bb97d303d0d3b6104b46a9b429aaed85.zip opie-15244683bb97d303d0d3b6104b46a9b429aaed85.tar.gz opie-15244683bb97d303d0d3b6104b46a9b429aaed85.tar.bz2 |
added a configurable delay, so for example if 5 min are set, and the suspend time is shorter, no app is autostarted
-rw-r--r-- | core/launcher/desktop.cpp | 13 | ||||
-rw-r--r-- | core/launcher/desktop.h | 2 | ||||
-rw-r--r-- | core/launcher/launcher.cpp | 16 | ||||
-rw-r--r-- | core/pim/today/today.cpp | 23 | ||||
-rw-r--r-- | core/pim/today/todayconfig.cpp | 51 | ||||
-rw-r--r-- | core/pim/today/todayconfig.h | 29 |
6 files changed, 93 insertions, 41 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 @@ -34,8 +34,9 @@ #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" @@ -546,16 +547,23 @@ void Desktop::raiseEmail() } } // 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) ) { QCopEnvelope e("QPE/System", "execute(QString)"); e << QString(appName); + } else { + } } #if defined(QPE_HAVE_TOGGLELIGHT) #include <qpe/config.h> @@ -592,8 +600,9 @@ static void darkScreen() void Desktop::togglePower() { bool wasloggedin = loggedin; loggedin=0; + suspendTime = QDateTime::currentDateTime(); darkScreen(); if ( wasloggedin ) blankScreen(); 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 @@ -26,8 +26,9 @@ #include <qpe/qpeapplication.h> #include <qwidget.h> +#include <qdatetime.h> class Background; class Launcher; class TaskBar; @@ -125,8 +126,9 @@ private: QCopBridge *qcopBridge; TransferServer *transferServer; PackageSlave *packageSlave; + QDateTime suspendTime; bool keyclick,touchclick; }; 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 @@ -753,9 +753,9 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data) stream >> modifier >> appName; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( modifier.compare("add") == 0 ){ - // only add it appname is entered + // only add if appname is entered if (!appName.isEmpty()) { cfg.writeEntry("Apps", appName); } } else if (modifier.compare("remove") == 0 ) { @@ -767,8 +767,22 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data) 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 ); diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp index 61bd0c4..f5ed8d2 100644 --- a/core/pim/today/today.cpp +++ b/core/pim/today/today.cpp @@ -21,9 +21,9 @@ #include <qpe/timestring.h> #include <qpe/config.h> #include <qpe/qcopenvelope_qws.h> -#include <qpe/qprocess.h> +//#include <qpe/qprocess.h> #include <qpe/resource.h> #include <qpe/contact.h> #include <qpe/global.h> #include <qpe/qpeapplication.h> @@ -37,9 +37,9 @@ #include <qpushbutton.h> #include <qlabel.h> #include <qtimer.h> #include <qpixmap.h> -#include <qfileinfo.h> +//#include <qfileinfo.h> #include <qlayout.h> #include <qtl.h> //#include <iostream.h> @@ -54,8 +54,9 @@ int SHOW_NOTES; // show only later dates int ONLY_LATER; int AUTOSTART; int NEW_START=1; +QString AUTOSTART_TIMER; /* * Constructs a Example which is a child of 'parent', with the * name 'name' and widget flags set to 'f' @@ -125,15 +126,17 @@ void Today::setOwnerField(QString &message) { * Autostart, uses the new (opie only) autostart method in the launcher code. * If registered against that today ist started on each resume. */ void Today::autoStart() { - Config cfg("today"); - cfg.setGroup("Autostart"); - AUTOSTART = cfg.readNumEntry("autostart",1); + // Config cfg("today"); + //cfg.setGroup("Autostart"); + //AUTOSTART = cfg.readNumEntry("autostart",1); + if (AUTOSTART) { - QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); + QCopEnvelope e("QPE/System", "autoStart(QString, QString, QString)"); e << QString("add"); e << QString("today"); + e << AUTOSTART_TIMER; } else { QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); e << QString("remove"); e << QString("today"); @@ -211,8 +214,12 @@ void Today::init() { SHOW_NOTES = cfg.readNumEntry("shownotes",0); // should only later appointments be shown or all for the current day. ONLY_LATER = cfg.readNumEntry("onlylater",1); + cfg.setGroup("Autostart"); + AUTOSTART = cfg.readNumEntry("autostart",1); + AUTOSTART_TIMER = cfg.readEntry("autostartdelay", "0"); + //db = new DateBookDB; } /* @@ -239,8 +246,10 @@ void Today::startConfig() { // only later conf->CheckBox3->setChecked(ONLY_LATER); // if today should be autostarted conf->CheckBoxAuto->setChecked(AUTOSTART); + // autostart only if device has been suspended for X minutes + conf->SpinBoxTime->setValue( AUTOSTART_TIMER.toInt() ); conf->exec(); int maxlinestask = conf->SpinBox2->value(); @@ -249,8 +258,9 @@ void Today::startConfig() { int notes = conf->CheckBox2->isChecked(); int maxcharclip = conf->SpinBox7->value(); int onlylater = conf->CheckBox3->isChecked(); int autostart =conf->CheckBoxAuto->isChecked(); + int autostartdelay = conf->SpinBoxTime->value(); cfg.writeEntry("maxlinestask",maxlinestask); cfg.writeEntry("maxcharclip", maxcharclip); cfg.writeEntry("maxlinesmeet",maxmeet); @@ -258,8 +268,9 @@ void Today::startConfig() { cfg.writeEntry("shownotes", notes); cfg.writeEntry("onlylater", onlylater); cfg.setGroup("Autostart"); cfg.writeEntry("autostart", autostart); + cfg.writeEntry("autostartdelay", autostartdelay); // sync it to "disk" cfg.write(); NEW_START=1; diff --git a/core/pim/today/todayconfig.cpp b/core/pim/today/todayconfig.cpp index 500e8fb..905ec4b 100644 --- a/core/pim/today/todayconfig.cpp +++ b/core/pim/today/todayconfig.cpp @@ -1,12 +1,23 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'todayconfig.ui' +/* + * todayconfig.cpp + * + * --------------------- + * + * begin : Sun 10 17:20:00 CEST 2002 + * copyright : (c) 2002 by Maximilian Reiß + * email : max.reiss@gmx.de + * + */ +/*************************************************************************** ** -** Created: Thu Feb 14 15:04:33 2002 -** by: The User Interface Compiler (uic) + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * ** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ + ***************************************************************************/ + #include "todayconfig.h" #include <qcheckbox.h> #include <qframe.h> @@ -15,20 +26,12 @@ #include <qtabwidget.h> #include <qwidget.h> #include <qlayout.h> #include <qvariant.h> -#include <qwhatsthis.h> +//#include <qwhatsthis.h> -/* - * Constructs a todayconfig which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ todayconfig::todayconfig( QWidget* parent, const char* name, bool modal, WFlags fl ) - : QDialog( parent, name, modal, fl ) -{ + : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "todayconfig" ); resize( 175, 232 ); setCaption( tr( "Today config" ) ); @@ -119,9 +122,8 @@ todayconfig::todayconfig( QWidget* parent, const char* name, bool modal, WFlags SpinBox7 = new QSpinBox( Frame14, "SpinBox7" ); SpinBox7->setGeometry( QRect( 115, 20, 58, 25 ) ); SpinBox7->setMaxValue( 80 ); - SpinBox7->setValue( 30 ); TextLabel2 = new QLabel( Frame14, "AutoStart" ); TextLabel2->setGeometry( QRect( 20, 60, 100, 45 ) ); TextLabel2->setText( tr( "Should today be\n" @@ -131,16 +133,19 @@ todayconfig::todayconfig( QWidget* parent, const char* name, bool modal, WFlags CheckBoxAuto = new QCheckBox (Frame14, "CheckBoxAuto" ); CheckBoxAuto->setGeometry( QRect( 158, 60, 27, 21 ) ); + TimeLabel = new QLabel( Frame14, "TimeLabel" ); + TimeLabel->setGeometry( QRect ( 20, 120, 120, 45 ) ); + TimeLabel->setText( tr( "Activate the \n" + "autostart after how\n" + "many minutes?" ) ); + SpinBoxTime = new QSpinBox( Frame14, "TimeSpinner"); + SpinBoxTime->setGeometry( QRect( 115, 120, 58, 25 ) ); + TabWidget3->insertTab( tab_3, tr( "Misc" ) ); } -/* - * Destroys the object and frees any allocated resources - */ -todayconfig::~todayconfig() -{ - // no need to delete child widgets, Qt does it all for us +todayconfig::~todayconfig() { } diff --git a/core/pim/today/todayconfig.h b/core/pim/today/todayconfig.h index 4739b5a..2986c4c 100644 --- a/core/pim/today/todayconfig.h +++ b/core/pim/today/todayconfig.h @@ -1,12 +1,22 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'todayconfig.ui' +/* + * todayconfig.h + * + * --------------------- + * + * begin : Sun 10 17:20:00 CEST 2002 + * copyright : (c) 2002 by Maximilian Reiß + * email : max.reiss@gmx.de + * + */ +/*************************************************************************** ** -** Created: Thu Feb 14 15:04:33 2002 -** by: The User Interface Compiler (uic) + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * ** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ + ***************************************************************************/ #ifndef TODAYCONFIG_H #define TODAYCONFIG_H #include <qvariant.h> @@ -20,10 +30,9 @@ class QLabel; class QSpinBox; class QTabWidget; class QWidget; -class todayconfig : public QDialog -{ +class todayconfig : public QDialog { Q_OBJECT public: todayconfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); @@ -48,8 +57,10 @@ public: QWidget* tab_3; QFrame* Frame14; QLabel* TextLabel1; QSpinBox* SpinBox7; + QLabel* TimeLabel; + QSpinBox* SpinBoxTime; }; -#endif // TODAYCONFIG_H +#endif |