summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/desktop.cpp13
-rw-r--r--core/launcher/desktop.h2
-rw-r--r--core/launcher/launcher.cpp16
-rw-r--r--core/pim/today/today.cpp23
-rw-r--r--core/pim/today/todayconfig.cpp51
-rw-r--r--core/pim/today/todayconfig.h29
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
@@ -26,24 +26,25 @@
#include "shutdownimpl.h"
#include "startmenu.h"
#include "taskbar.h"
#include "transferserver.h"
#include "irserver.h"
#include "packageslave.h"
#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
#include <qgfx_qws.h>
#include <qmainwindow.h>
#include <qmessagebox.h>
#include <qtimer.h>
#include <qwindowsystem_qws.h>
@@ -538,32 +539,39 @@ void Desktop::raiseEmail()
Config cfg("qpe"); //F13, 'Mail'
cfg.setGroup("AppsKey");
QString tempItem;
tempItem = cfg.readEntry("RightEnd","Mail");
if(tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty()) executeOrModify("Applications/qtmail.desktop");
else {
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) ) {
QCopEnvelope e("QPE/System", "execute(QString)");
e << QString(appName);
+ } else {
+ }
}
#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>
@@ -584,24 +592,25 @@ static void blankScreen()
static void darkScreen()
{
extern void qpe_setBacklight(int);
qpe_setBacklight(0); // force off
}
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)");
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
@@ -18,24 +18,25 @@
**
**********************************************************************/
#ifndef __DESKTOP_H__
#define __DESKTOP_H__
#include "shutdownimpl.h"
#include <qpe/qpeapplication.h>
#include <qwidget.h>
+#include <qdatetime.h>
class Background;
class Launcher;
class TaskBar;
class PowerStatus;
class QCopBridge;
class TransferServer;
class DesktopPowerAlerter;
class PackageSlave;
class DesktopApplication : public QPEApplication
{
@@ -117,18 +118,19 @@ protected:
QWidget *bg;
Launcher *launcher;
TaskBar *tb;
private:
void startTransferServer();
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
@@ -745,38 +745,52 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
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
+ // 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;
for ( ; it.current(); ++it ) {
if ( (*it)->isRemovable() )
s += (*it)->name() + "=" + (*it)->path() + "/Documents "
+ QString::number( (*it)->availBlocks() * (*it)->blockSize() )
+ " " + (*it)->options() + ";";
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
@@ -13,57 +13,58 @@
* 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. *
* *
***************************************************************************/
#include "today.h"
#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>
#include <qdir.h>
#include <qfile.h>
#include <qdatetime.h>
#include <qtextstream.h>
#include <qcheckbox.h>
#include <qspinbox.h>
#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>
#include <unistd.h>
#include <stdlib.h>
int MAX_LINES_TASK;
int MAX_CHAR_CLIP;
int MAX_LINES_MEET;
int SHOW_LOCATION;
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'
*/
Today::Today( QWidget* parent, const char* name, WFlags fl )
: TodayBase( parent, name, fl ), AllDateBookEvents(NULL) {
QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
@@ -117,31 +118,33 @@ void Today::setOwnerField() {
*/
void Today::setOwnerField(QString &message) {
if (!message.isEmpty()) {
OwnerField->setText("<b>" + message + "</b>");
}
}
/*
* 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");
}
}
/*
* Repaint method. Reread all fields.
*/
void Today::draw() {
init();
@@ -203,24 +206,28 @@ void Today::init() {
MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5);
// after how many chars should the be cut off on tasks and notes
MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",40);
// how many lines should be showed in the datebook section
MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5);
// If location is to be showed too, 1 to activate it.
SHOW_LOCATION = cfg.readNumEntry("showlocation",1);
// if notes should be shown
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;
}
/*
* The method for the configuration dialog.
*/
void Today::startConfig() {
conf = new todayconfig ( this, "", true );
// read the config
Config cfg("today");
cfg.setGroup("BaseConfig");
@@ -231,43 +238,47 @@ void Today::startConfig() {
// location show box
conf->CheckBox1->setChecked(SHOW_LOCATION);
// notes show box
conf->CheckBox2->setChecked(SHOW_NOTES);
// task lines
conf->SpinBox2->setValue(MAX_LINES_TASK);
// clip when?
conf->SpinBox7->setValue(MAX_CHAR_CLIP);
// 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();
int maxmeet = conf->SpinBox1->value();
int location = conf->CheckBox1->isChecked();
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);
cfg.writeEntry("showlocation",location);
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;
draw();
autoStart();
}
/*
* Get all events that are in the datebook xml file for today
*/
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,42 +1,45 @@
-/****************************************************************************
-** 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>
#include <qlabel.h>
#include <qspinbox.h>
#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" ) );
TabWidget3 = new QTabWidget( this, "TabWidget3" );
TabWidget3->setGeometry( QRect( 0, 0, 220, 320 ) );
TabWidget3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, TabWidget3->sizePolicy().hasHeightForWidth() ) );
TabWidget3->setAutoMask( FALSE );
TabWidget3->setTabShape( QTabWidget::Rounded );
tab = new QWidget( TabWidget3, "tab" );
@@ -111,36 +114,38 @@ todayconfig::todayconfig( QWidget* parent, const char* name, bool modal, WFlags
Frame14->setGeometry( QRect( -5, 0, 200, 220 ) );
Frame14->setFrameShape( QFrame::StyledPanel );
Frame14->setFrameShadow( QFrame::Raised );
TextLabel1 = new QLabel( Frame14, "TextLabel1" );
TextLabel1->setGeometry( QRect( 20, 20, 100, 30 ) );
TextLabel1->setText( tr( "Clip after how\n"
"many letters" ) );
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"
"autostarted on\n"
"resume?"
" (Opie only)" ) );
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,37 +1,46 @@
-/****************************************************************************
-** 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>
#include <qdialog.h>
//class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QCheckBox;
class QFrame;
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 );
~todayconfig();
QTabWidget* TabWidget3;
QWidget* tab;
QFrame* Frame8;
QLabel* TextLabel4;
QLabel* TextLabel5;
QLabel* TextLabel2;
@@ -40,16 +49,18 @@ public:
QCheckBox* CheckBox1;
QCheckBox* CheckBoxAuto;
QSpinBox* SpinBox1;
QLabel* TextLabel3;
QWidget* tab_2;
QFrame* Frame9;
QLabel* TextLabel6;
QSpinBox* SpinBox2;
QWidget* tab_3;
QFrame* Frame14;
QLabel* TextLabel1;
QSpinBox* SpinBox7;
+ QLabel* TimeLabel;
+ QSpinBox* SpinBoxTime;
};
-#endif // TODAYCONFIG_H
+#endif