author | harlekin <harlekin> | 2002-04-15 20:30:41 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-04-15 20:30:41 (UTC) |
commit | 15244683bb97d303d0d3b6104b46a9b429aaed85 (patch) (unidiff) | |
tree | ce57768177baec8b90146245a8cfad669addf647 /core/launcher | |
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 | 41 | ||||
-rw-r--r-- | core/launcher/desktop.h | 2 | ||||
-rw-r--r-- | core/launcher/launcher.cpp | 82 |
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 | |||
@@ -26,46 +26,47 @@ | |||
26 | #include "shutdownimpl.h" | 26 | #include "shutdownimpl.h" |
27 | #include "startmenu.h" | 27 | #include "startmenu.h" |
28 | #include "taskbar.h" | 28 | #include "taskbar.h" |
29 | #include "transferserver.h" | 29 | #include "transferserver.h" |
30 | #include "irserver.h" | 30 | #include "irserver.h" |
31 | #include "packageslave.h" | 31 | #include "packageslave.h" |
32 | 32 | ||
33 | #include <qpe/applnk.h> | 33 | #include <qpe/applnk.h> |
34 | #include <qpe/mimetype.h> | 34 | #include <qpe/mimetype.h> |
35 | #include <qpe/password.h> | 35 | #include <qpe/password.h> |
36 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
37 | #include <qpe/power.h> | 37 | #include <qpe/power.h> |
38 | #include <qpe/timeconversion.h> | ||
38 | #include <qpe/qcopenvelope_qws.h> | 39 | #include <qpe/qcopenvelope_qws.h> |
39 | #include <qpe/global.h> | 40 | #include <qpe/global.h> |
40 | #ifdef QT_QWS_CUSTOM | 41 | #ifdef QT_QWS_CUSTOM |
41 | #include "qpe/custom.h" | 42 | #include "qpe/custom.h" |
42 | #endif | 43 | #endif |
43 | 44 | ||
44 | #include <qgfx_qws.h> | 45 | #include <qgfx_qws.h> |
45 | #include <qmainwindow.h> | 46 | #include <qmainwindow.h> |
46 | #include <qmessagebox.h> | 47 | #include <qmessagebox.h> |
47 | #include <qtimer.h> | 48 | #include <qtimer.h> |
48 | #include <qwindowsystem_qws.h> | 49 | #include <qwindowsystem_qws.h> |
49 | 50 | ||
50 | #include <qvaluelist.h> | 51 | #include <qvaluelist.h> |
51 | 52 | ||
52 | #include <stdlib.h> | 53 | #include <stdlib.h> |
53 | #include <unistd.h> | 54 | #include <unistd.h> |
54 | 55 | ||
55 | class QCopKeyRegister | 56 | class QCopKeyRegister |
56 | { | 57 | { |
57 | public: | 58 | public: |
58 | QCopKeyRegister() : keyCode(0) { } | 59 | QCopKeyRegister() : keyCode(0) { } |
59 | QCopKeyRegister(int k, const QString &c, const QString &m) | 60 | QCopKeyRegister(int k, const QString &c, const QString &m) |
60 | : keyCode(k), channel(c), message(m) { } | 61 | : keyCode(k), channel(c), message(m) { } |
61 | 62 | ||
62 | int getKeyCode() const { return keyCode; } | 63 | int getKeyCode() const { return keyCode; } |
63 | QString getChannel() const { return channel; } | 64 | QString getChannel() const { return channel; } |
64 | QString getMessage() const { return message; } | 65 | QString getMessage() const { return message; } |
65 | 66 | ||
66 | private: | 67 | private: |
67 | int keyCode; | 68 | int keyCode; |
68 | QString channel, message; | 69 | QString channel, message; |
69 | }; | 70 | }; |
70 | 71 | ||
71 | typedef QValueList<QCopKeyRegister> KeyRegisterList; | 72 | typedef QValueList<QCopKeyRegister> KeyRegisterList; |
@@ -159,32 +160,32 @@ DesktopApplication::~DesktopApplication() | |||
159 | 160 | ||
160 | void DesktopApplication::receive( const QCString &msg, const QByteArray &data ) | 161 | void DesktopApplication::receive( const QCString &msg, const QByteArray &data ) |
161 | { | 162 | { |
162 | QDataStream stream( data, IO_ReadOnly ); | 163 | QDataStream stream( data, IO_ReadOnly ); |
163 | if (msg == "keyRegister(int key, QString channel, QString message)") | 164 | if (msg == "keyRegister(int key, QString channel, QString message)") |
164 | { | 165 | { |
165 | int k; | 166 | int k; |
166 | QString c, m; | 167 | QString c, m; |
167 | 168 | ||
168 | stream >> k; | 169 | stream >> k; |
169 | stream >> c; | 170 | stream >> c; |
170 | stream >> m; | 171 | stream >> m; |
171 | 172 | ||
172 | qWarning("KeyRegisterRecieved: %i, %s, %s", k, (const char*)c, (const char *)m); | 173 | qWarning("KeyRegisterRecieved: %i, %s, %s", k, (const char*)c, (const char *)m); |
173 | keyRegisterList.append(QCopKeyRegister(k,c,m)); | 174 | keyRegisterList.append(QCopKeyRegister(k,c,m)); |
174 | } | 175 | } |
175 | else if (msg == "suspend()"){ | 176 | else if (msg == "suspend()"){ |
176 | emit power(); | 177 | emit power(); |
177 | } | 178 | } |
178 | 179 | ||
179 | } | 180 | } |
180 | 181 | ||
181 | enum MemState { Unknown, VeryLow, Low, Normal } memstate=Unknown; | 182 | enum MemState { Unknown, VeryLow, Low, Normal } memstate=Unknown; |
182 | 183 | ||
183 | #ifdef Q_WS_QWS | 184 | #ifdef Q_WS_QWS |
184 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) | 185 | bool DesktopApplication::qwsEventFilter( QWSEvent *e ) |
185 | { | 186 | { |
186 | qpedesktop->checkMemory(); | 187 | qpedesktop->checkMemory(); |
187 | 188 | ||
188 | if ( e->type == QWSEvent::Key ) { | 189 | if ( e->type == QWSEvent::Key ) { |
189 | QWSKeyEvent *ke = (QWSKeyEvent *)e; | 190 | QWSKeyEvent *ke = (QWSKeyEvent *)e; |
190 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) | 191 | if ( !loggedin && ke->simpleData.keycode != Key_F34 ) |
@@ -268,25 +269,25 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e ) | |||
268 | QWSMouseEvent *me = (QWSMouseEvent *)e; | 269 | QWSMouseEvent *me = (QWSMouseEvent *)e; |
269 | static bool up = TRUE; | 270 | static bool up = TRUE; |
270 | if ( me->simpleData.state&LeftButton ) { | 271 | if ( me->simpleData.state&LeftButton ) { |
271 | if ( up ) { | 272 | if ( up ) { |
272 | up = FALSE; | 273 | up = FALSE; |
273 | qpedesktop->screenClick(); | 274 | qpedesktop->screenClick(); |
274 | } | 275 | } |
275 | } else { | 276 | } else { |
276 | up = TRUE; | 277 | up = TRUE; |
277 | } | 278 | } |
278 | } | 279 | } |
279 | } | 280 | } |
280 | 281 | ||
281 | return QPEApplication::qwsEventFilter( e ); | 282 | return QPEApplication::qwsEventFilter( e ); |
282 | } | 283 | } |
283 | #endif | 284 | #endif |
284 | 285 | ||
285 | void DesktopApplication::psTimeout() | 286 | void DesktopApplication::psTimeout() |
286 | { | 287 | { |
287 | qpedesktop->checkMemory(); // in case no events are being generated | 288 | qpedesktop->checkMemory(); // in case no events are being generated |
288 | 289 | ||
289 | *ps = PowerStatusManager::readStatus(); | 290 | *ps = PowerStatusManager::readStatus(); |
290 | 291 | ||
291 | if ( (ps->batteryStatus() == PowerStatus::VeryLow ) ) { | 292 | if ( (ps->batteryStatus() == PowerStatus::VeryLow ) ) { |
292 | pa->alert( tr( "Battery is running very low." ), 6 ); | 293 | pa->alert( tr( "Battery is running very low." ), 6 ); |
@@ -538,32 +539,39 @@ void Desktop::raiseEmail() | |||
538 | Config cfg("qpe"); //F13, 'Mail' | 539 | Config cfg("qpe"); //F13, 'Mail' |
539 | cfg.setGroup("AppsKey"); | 540 | cfg.setGroup("AppsKey"); |
540 | QString tempItem; | 541 | QString tempItem; |
541 | tempItem = cfg.readEntry("RightEnd","Mail"); | 542 | tempItem = cfg.readEntry("RightEnd","Mail"); |
542 | if(tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty()) executeOrModify("Applications/qtmail.desktop"); | 543 | if(tempItem == "Mail" || tempItem == "qtmail" || tempItem.isEmpty()) executeOrModify("Applications/qtmail.desktop"); |
543 | else { | 544 | else { |
544 | QCopEnvelope e("QPE/System","execute(QString)"); | 545 | QCopEnvelope e("QPE/System","execute(QString)"); |
545 | e << tempItem; | 546 | e << tempItem; |
546 | } | 547 | } |
547 | } | 548 | } |
548 | 549 | ||
549 | // autoStarts apps on resume and start | 550 | // autoStarts apps on resume and start |
550 | void Desktop::execAutoStart() | 551 | void Desktop::execAutoStart() { |
551 | { | 552 | QString appName; |
552 | QString appName; | 553 | int delay; |
553 | Config cfg( "autostart" ); | 554 | QDateTime now = QDateTime::currentDateTime(); |
554 | cfg.setGroup( "AutoStart" ); | 555 | Config cfg( "autostart" ); |
555 | appName = cfg.readEntry("Apps", ""); | 556 | cfg.setGroup( "AutoStart" ); |
556 | QCopEnvelope e("QPE/System", "execute(QString)"); | 557 | appName = cfg.readEntry("Apps", ""); |
557 | e << QString(appName); | 558 | delay = (cfg.readEntry("Delay", "0" )).toInt(); |
559 | // If the time between suspend and resume was longer then the | ||
560 | // value saved as delay, start the app | ||
561 | if ( suspendTime.secsTo(now) >= (delay*60) ) { | ||
562 | QCopEnvelope e("QPE/System", "execute(QString)"); | ||
563 | e << QString(appName); | ||
564 | } else { | ||
565 | } | ||
558 | } | 566 | } |
559 | 567 | ||
560 | #if defined(QPE_HAVE_TOGGLELIGHT) | 568 | #if defined(QPE_HAVE_TOGGLELIGHT) |
561 | #include <qpe/config.h> | 569 | #include <qpe/config.h> |
562 | 570 | ||
563 | #include <sys/ioctl.h> | 571 | #include <sys/ioctl.h> |
564 | #include <sys/types.h> | 572 | #include <sys/types.h> |
565 | #include <fcntl.h> | 573 | #include <fcntl.h> |
566 | #include <unistd.h> | 574 | #include <unistd.h> |
567 | #include <errno.h> | 575 | #include <errno.h> |
568 | #include <linux/ioctl.h> | 576 | #include <linux/ioctl.h> |
569 | #include <time.h> | 577 | #include <time.h> |
@@ -584,31 +592,32 @@ static void blankScreen() | |||
584 | 592 | ||
585 | static void darkScreen() | 593 | static void darkScreen() |
586 | { | 594 | { |
587 | extern void qpe_setBacklight(int); | 595 | extern void qpe_setBacklight(int); |
588 | qpe_setBacklight(0); // force off | 596 | qpe_setBacklight(0); // force off |
589 | } | 597 | } |
590 | 598 | ||
591 | 599 | ||
592 | void Desktop::togglePower() | 600 | void Desktop::togglePower() |
593 | { | 601 | { |
594 | bool wasloggedin = loggedin; | 602 | bool wasloggedin = loggedin; |
595 | loggedin=0; | 603 | loggedin=0; |
604 | suspendTime = QDateTime::currentDateTime(); | ||
596 | darkScreen(); | 605 | darkScreen(); |
597 | if ( wasloggedin ) | 606 | if ( wasloggedin ) |
598 | blankScreen(); | 607 | blankScreen(); |
599 | 608 | ||
600 | system("apm --suspend"); | 609 | system("apm --suspend"); |
601 | 610 | ||
602 | 611 | ||
603 | 612 | ||
604 | QWSServer::screenSaverActivate( FALSE ); | 613 | QWSServer::screenSaverActivate( FALSE ); |
605 | { | 614 | { |
606 | QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep | 615 | QCopEnvelope("QPE/Card", "mtabChanged()" ); // might have changed while asleep |
607 | QCopEnvelope e("QPE/System", "setBacklight(int)"); | 616 | QCopEnvelope e("QPE/System", "setBacklight(int)"); |
608 | e << -3; // Force on | 617 | e << -3; // Force on |
609 | } | 618 | } |
610 | if ( wasloggedin ) { | 619 | if ( wasloggedin ) { |
611 | login(TRUE); | 620 | login(TRUE); |
612 | } | 621 | } |
613 | sleep(1); | 622 | sleep(1); |
614 | execAutoStart(); | 623 | execAutoStart(); |
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 @@ | |||
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #ifndef __DESKTOP_H__ | 21 | #ifndef __DESKTOP_H__ |
22 | #define __DESKTOP_H__ | 22 | #define __DESKTOP_H__ |
23 | 23 | ||
24 | 24 | ||
25 | #include "shutdownimpl.h" | 25 | #include "shutdownimpl.h" |
26 | 26 | ||
27 | #include <qpe/qpeapplication.h> | 27 | #include <qpe/qpeapplication.h> |
28 | 28 | ||
29 | #include <qwidget.h> | 29 | #include <qwidget.h> |
30 | #include <qdatetime.h> | ||
30 | 31 | ||
31 | class Background; | 32 | class Background; |
32 | class Launcher; | 33 | class Launcher; |
33 | class TaskBar; | 34 | class TaskBar; |
34 | class PowerStatus; | 35 | class PowerStatus; |
35 | class QCopBridge; | 36 | class QCopBridge; |
36 | class TransferServer; | 37 | class TransferServer; |
37 | class DesktopPowerAlerter; | 38 | class DesktopPowerAlerter; |
38 | class PackageSlave; | 39 | class PackageSlave; |
39 | 40 | ||
40 | class DesktopApplication : public QPEApplication | 41 | class DesktopApplication : public QPEApplication |
41 | { | 42 | { |
@@ -117,18 +118,19 @@ protected: | |||
117 | QWidget *bg; | 118 | QWidget *bg; |
118 | Launcher *launcher; | 119 | Launcher *launcher; |
119 | TaskBar *tb; | 120 | TaskBar *tb; |
120 | 121 | ||
121 | private: | 122 | private: |
122 | void startTransferServer(); | 123 | void startTransferServer(); |
123 | bool recoverMemory(); | 124 | bool recoverMemory(); |
124 | 125 | ||
125 | QCopBridge *qcopBridge; | 126 | QCopBridge *qcopBridge; |
126 | TransferServer *transferServer; | 127 | TransferServer *transferServer; |
127 | PackageSlave *packageSlave; | 128 | PackageSlave *packageSlave; |
128 | 129 | ||
130 | QDateTime suspendTime; | ||
129 | bool keyclick,touchclick; | 131 | bool keyclick,touchclick; |
130 | }; | 132 | }; |
131 | 133 | ||
132 | 134 | ||
133 | #endif // __DESKTOP_H__ | 135 | #endif // __DESKTOP_H__ |
134 | 136 | ||
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 | |||
@@ -88,25 +88,25 @@ namespace { | |||
88 | }else{ | 88 | }else{ |
89 | tmpMime = cfg->readBoolEntry("audio", true ); | 89 | tmpMime = cfg->readBoolEntry("audio", true ); |
90 | if(tmpMime ) | 90 | if(tmpMime ) |
91 | mimes.append("audio//*" ); | 91 | mimes.append("audio//*" ); |
92 | 92 | ||
93 | tmpMime = cfg->readBoolEntry("image", true ); | 93 | tmpMime = cfg->readBoolEntry("image", true ); |
94 | if(tmpMime ) | 94 | if(tmpMime ) |
95 | mimes.append("image//*" ); | 95 | mimes.append("image//*" ); |
96 | 96 | ||
97 | tmpMime = cfg->readBoolEntry("text", true ); | 97 | tmpMime = cfg->readBoolEntry("text", true ); |
98 | if(tmpMime ) | 98 | if(tmpMime ) |
99 | mimes.append("text//*"); | 99 | mimes.append("text//*"); |
100 | 100 | ||
101 | tmpMime = cfg->readBoolEntry("video", true ); | 101 | tmpMime = cfg->readBoolEntry("video", true ); |
102 | if(tmpMime ) | 102 | if(tmpMime ) |
103 | mimes.append("video//*" ); | 103 | mimes.append("video//*" ); |
104 | } | 104 | } |
105 | return mimes; | 105 | return mimes; |
106 | } | 106 | } |
107 | 107 | ||
108 | } | 108 | } |
109 | 109 | ||
110 | 110 | ||
111 | CategoryTabWidget::CategoryTabWidget( QWidget* parent ) : | 111 | CategoryTabWidget::CategoryTabWidget( QWidget* parent ) : |
112 | QVBox( parent ) | 112 | QVBox( parent ) |
@@ -540,28 +540,28 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global:: | |||
540 | qWarning("loading Documents" ); | 540 | qWarning("loading Documents" ); |
541 | qWarning("The currentTimeStamp is: %s", m_timeStamp.latin1() ); | 541 | qWarning("The currentTimeStamp is: %s", m_timeStamp.latin1() ); |
542 | delete docsFolder; | 542 | delete docsFolder; |
543 | docsFolder = new DocLnkSet; | 543 | docsFolder = new DocLnkSet; |
544 | qWarning("new DocLnkSet" ); | 544 | qWarning("new DocLnkSet" ); |
545 | DocLnkSet *tmp = 0; | 545 | DocLnkSet *tmp = 0; |
546 | QString home = QString(getenv("HOME")) + "/Documents"; | 546 | QString home = QString(getenv("HOME")) + "/Documents"; |
547 | tmp = new DocLnkSet( home , QString::null); | 547 | tmp = new DocLnkSet( home , QString::null); |
548 | docsFolder->appendFrom( *tmp ); | 548 | docsFolder->appendFrom( *tmp ); |
549 | delete tmp; | 549 | delete tmp; |
550 | // find out wich filesystems are new in this round | 550 | // find out wich filesystems are new in this round |
551 | // We will do this by having a timestamp inside each mountpoint | 551 | // We will do this by having a timestamp inside each mountpoint |
552 | // if the current timestamp doesn't match this is a new file system and | 552 | // if the current timestamp doesn't match this is a new file system and |
553 | // come up with our MediumMountGui :) let the hacking begin | 553 | // come up with our MediumMountGui :) let the hacking begin |
554 | int stamp = uidgen.generate(); | 554 | int stamp = uidgen.generate(); |
555 | 555 | ||
556 | QString newStamp = QString::number( stamp ); // generates newtime Stamp | 556 | QString newStamp = QString::number( stamp ); // generates newtime Stamp |
557 | StorageInfo storage; | 557 | StorageInfo storage; |
558 | const QList<FileSystem> &fileSystems = storage.fileSystems(); | 558 | const QList<FileSystem> &fileSystems = storage.fileSystems(); |
559 | QListIterator<FileSystem> it ( fileSystems ); | 559 | QListIterator<FileSystem> it ( fileSystems ); |
560 | for ( ; it.current(); ++it ) { | 560 | for ( ; it.current(); ++it ) { |
561 | if ( (*it)->isRemovable() ) { // let's find out if we should search on it | 561 | if ( (*it)->isRemovable() ) { // let's find out if we should search on it |
562 | qWarning("%s is removeable", (*it)->path().latin1() ); | 562 | qWarning("%s is removeable", (*it)->path().latin1() ); |
563 | OConfig cfg( (*it)->path() + "/.opiestorage.cf"); | 563 | OConfig cfg( (*it)->path() + "/.opiestorage.cf"); |
564 | cfg.setGroup("main"); | 564 | cfg.setGroup("main"); |
565 | QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() ); | 565 | QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() ); |
566 | if( stamp == m_timeStamp ){ // ok we know this card | 566 | if( stamp == m_timeStamp ){ // ok we know this card |
567 | cfg.writeEntry("timestamp", newStamp ); //just write a new timestamp | 567 | cfg.writeEntry("timestamp", newStamp ); //just write a new timestamp |
@@ -582,25 +582,25 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global:: | |||
582 | }// no else | 582 | }// no else |
583 | }else{ // we checked | 583 | }else{ // we checked |
584 | // do something different see what we need to do | 584 | // do something different see what we need to do |
585 | // let's see if we should check the device | 585 | // let's see if we should check the device |
586 | cfg.setGroup("main" ); | 586 | cfg.setGroup("main" ); |
587 | bool check = cfg.readBoolEntry("autocheck", true ); | 587 | bool check = cfg.readBoolEntry("autocheck", true ); |
588 | if( check ){ // find the documents | 588 | if( check ){ // find the documents |
589 | tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") ); | 589 | tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") ); |
590 | docsFolder->appendFrom( *tmp ); | 590 | docsFolder->appendFrom( *tmp ); |
591 | delete tmp; | 591 | delete tmp; |
592 | } | 592 | } |
593 | } | 593 | } |
594 | } | 594 | } |
595 | } | 595 | } |
596 | } | 596 | } |
597 | m_timeStamp = newStamp; | 597 | m_timeStamp = newStamp; |
598 | } | 598 | } |
599 | 599 | ||
600 | void Launcher::updateTabs() | 600 | void Launcher::updateTabs() |
601 | { | 601 | { |
602 | MimeType::updateApplications(); // ### reads all applnks twice | 602 | MimeType::updateApplications(); // ### reads all applnks twice |
603 | 603 | ||
604 | delete rootFolder; | 604 | delete rootFolder; |
605 | rootFolder = new AppLnkSet( MimeType::appsFolderName() ); | 605 | rootFolder = new AppLnkSet( MimeType::appsFolderName() ); |
606 | 606 | ||
@@ -678,25 +678,25 @@ void Launcher::updateLink(const QString& link) | |||
678 | } | 678 | } |
679 | 679 | ||
680 | void Launcher::systemMessage( const QCString &msg, const QByteArray &data) | 680 | void Launcher::systemMessage( const QCString &msg, const QByteArray &data) |
681 | { | 681 | { |
682 | QDataStream stream( data, IO_ReadOnly ); | 682 | QDataStream stream( data, IO_ReadOnly ); |
683 | if ( msg == "closing(QString)" ){ | 683 | if ( msg == "closing(QString)" ){ |
684 | QString app; | 684 | QString app; |
685 | stream >> app; | 685 | stream >> app; |
686 | qWarning("app closed %s", app.latin1() ); | 686 | qWarning("app closed %s", app.latin1() ); |
687 | MRUList::removeTask( app ); | 687 | MRUList::removeTask( app ); |
688 | }else if ( msg == "linkChanged(QString)" ) { | 688 | }else if ( msg == "linkChanged(QString)" ) { |
689 | QString link; | 689 | QString link; |
690 | stream >> link; | 690 | stream >> link; |
691 | if ( in_lnk_props ) { | 691 | if ( in_lnk_props ) { |
692 | got_lnk_change = TRUE; | 692 | got_lnk_change = TRUE; |
693 | lnk_change = link; | 693 | lnk_change = link; |
694 | } else { | 694 | } else { |
695 | updateLink(link); | 695 | updateLink(link); |
696 | } | 696 | } |
697 | } else if ( msg == "busy()" ) { | 697 | } else if ( msg == "busy()" ) { |
698 | emit busy(); | 698 | emit busy(); |
699 | } else if ( msg == "notBusy(QString)" ) { | 699 | } else if ( msg == "notBusy(QString)" ) { |
700 | QString app; | 700 | QString app; |
701 | stream >> app; | 701 | stream >> app; |
702 | tabs->setBusy(FALSE); | 702 | tabs->setBusy(FALSE); |
@@ -732,52 +732,66 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data) | |||
732 | QStringList entries = dir.entryList(); | 732 | QStringList entries = dir.entryList(); |
733 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) | 733 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) |
734 | dir.remove( *it ); | 734 | dir.remove( *it ); |
735 | } else if ( msg == "sendHandshakeInfo()" ) { | 735 | } else if ( msg == "sendHandshakeInfo()" ) { |
736 | QString home = getenv( "HOME" ); | 736 | QString home = getenv( "HOME" ); |
737 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); | 737 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); |
738 | e << home; | 738 | e << home; |
739 | int locked = (int) Desktop::screenLocked(); | 739 | int locked = (int) Desktop::screenLocked(); |
740 | e << locked; | 740 | e << locked; |
741 | // register an app for autostart | 741 | // register an app for autostart |
742 | // if clear is send the list is cleared. | 742 | // if clear is send the list is cleared. |
743 | } else if ( msg == "autoStart(QString)" ) { | 743 | } else if ( msg == "autoStart(QString)" ) { |
744 | QString appName; | 744 | QString appName; |
745 | stream >> appName; | 745 | stream >> appName; |
746 | Config cfg( "autostart" ); | 746 | Config cfg( "autostart" ); |
747 | cfg.setGroup( "AutoStart" ); | 747 | cfg.setGroup( "AutoStart" ); |
748 | if ( appName.compare("clear") == 0){ | 748 | if ( appName.compare("clear") == 0){ |
749 | cfg.writeEntry("Apps", ""); | 749 | cfg.writeEntry("Apps", ""); |
750 | } | 750 | } |
751 | } else if ( msg == "autoStart(QString,QString)" ) { | 751 | } else if ( msg == "autoStart(QString,QString)" ) { |
752 | QString modifier, appName; | 752 | QString modifier, appName; |
753 | stream >> modifier >> appName; | 753 | stream >> modifier >> appName; |
754 | Config cfg( "autostart" ); | 754 | Config cfg( "autostart" ); |
755 | cfg.setGroup( "AutoStart" ); | 755 | cfg.setGroup( "AutoStart" ); |
756 | if ( modifier.compare("add") == 0 ){ | 756 | if ( modifier.compare("add") == 0 ){ |
757 | // only add it appname is entered | 757 | // only add if appname is entered |
758 | if (!appName.isEmpty()) { | 758 | if (!appName.isEmpty()) { |
759 | cfg.writeEntry("Apps", appName); | 759 | cfg.writeEntry("Apps", appName); |
760 | } | 760 | } |
761 | } else if (modifier.compare("remove") == 0 ) { | 761 | } else if (modifier.compare("remove") == 0 ) { |
762 | // need to change for multiple entries | 762 | // need to change for multiple entries |
763 | // actually remove is right now simular to clear, but in future there | 763 | // actually remove is right now simular to clear, but in future there |
764 | // should be multiple apps in autostart possible. | 764 | // should be multiple apps in autostart possible. |
765 | QString checkName; | 765 | QString checkName; |
766 | checkName = cfg.readEntry("Apps", ""); | 766 | checkName = cfg.readEntry("Apps", ""); |
767 | if (checkName == appName) { | 767 | if (checkName == appName) { |
768 | cfg.writeEntry("Apps", ""); | 768 | cfg.writeEntry("Apps", ""); |
769 | } | 769 | } |
770 | } | 770 | } |
771 | } else if ( msg == "sendCardInfo()" ) { | 771 | // case the autostart feature should be delayed |
772 | } else if ( msg == "autoStart(QString, QString, QString)") { | ||
773 | QString modifier, appName, delay; | ||
774 | stream >> modifier >> appName >> delay; | ||
775 | Config cfg( "autostart" ); | ||
776 | cfg.setGroup( "AutoStart" ); | ||
777 | if ( modifier.compare("add") == 0 ){ | ||
778 | // only add it appname is entered | ||
779 | if (!appName.isEmpty()) { | ||
780 | cfg.writeEntry("Apps", appName); | ||
781 | cfg.writeEntry("Delay", delay); | ||
782 | } | ||
783 | } else { | ||
784 | } | ||
785 | } else if ( msg == "sendCardInfo()" ) { | ||
772 | QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); | 786 | QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); |
773 | const QList<FileSystem> &fs = storage->fileSystems(); | 787 | const QList<FileSystem> &fs = storage->fileSystems(); |
774 | QListIterator<FileSystem> it ( fs ); | 788 | QListIterator<FileSystem> it ( fs ); |
775 | QString s; | 789 | QString s; |
776 | QString homeDir = getenv("HOME"); | 790 | QString homeDir = getenv("HOME"); |
777 | QString hardDiskHome; | 791 | QString hardDiskHome; |
778 | for ( ; it.current(); ++it ) { | 792 | for ( ; it.current(); ++it ) { |
779 | if ( (*it)->isRemovable() ) | 793 | if ( (*it)->isRemovable() ) |
780 | s += (*it)->name() + "=" + (*it)->path() + "/Documents " | 794 | s += (*it)->name() + "=" + (*it)->path() + "/Documents " |
781 | + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) | 795 | + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) |
782 | + " " + (*it)->options() + ";"; | 796 | + " " + (*it)->options() + ";"; |
783 | else if ( (*it)->disk() == "/dev/mtdblock1" || | 797 | else if ( (*it)->disk() == "/dev/mtdblock1" || |
@@ -814,25 +828,25 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data) | |||
814 | cfg.writeEntry( app, date ); | 828 | cfg.writeEntry( app, date ); |
815 | //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); | 829 | //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); |
816 | } else if ( msg == "startSync(QString)" ) { | 830 | } else if ( msg == "startSync(QString)" ) { |
817 | QString what; | 831 | QString what; |
818 | stream >> what; | 832 | stream >> what; |
819 | delete syncDialog; syncDialog = 0; | 833 | delete syncDialog; syncDialog = 0; |
820 | syncDialog = new SyncDialog( this, "syncProgress", FALSE, | 834 | syncDialog = new SyncDialog( this, "syncProgress", FALSE, |
821 | WStyle_Tool | WStyle_Customize | | 835 | WStyle_Tool | WStyle_Customize | |
822 | Qt::WStyle_StaysOnTop ); | 836 | Qt::WStyle_StaysOnTop ); |
823 | syncDialog->showMaximized(); | 837 | syncDialog->showMaximized(); |
824 | syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); | 838 | syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); |
825 | connect( syncDialog->buttonCancel, SIGNAL( clicked() ), | 839 | connect( syncDialog->buttonCancel, SIGNAL( clicked() ), |
826 | SLOT( cancelSync() ) ); | 840 | SLOT( cancelSync() ) ); |
827 | } | 841 | } |
828 | else if ( msg == "stopSync()") { | 842 | else if ( msg == "stopSync()") { |
829 | delete syncDialog; syncDialog = 0; | 843 | delete syncDialog; syncDialog = 0; |
830 | } else if ( msg == "getAllDocLinks()" ) { | 844 | } else if ( msg == "getAllDocLinks()" ) { |
831 | loadDocs(); | 845 | loadDocs(); |
832 | 846 | ||
833 | QString contents; | 847 | QString contents; |
834 | 848 | ||
835 | for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { | 849 | for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { |
836 | DocLnk *doc = it.current(); | 850 | DocLnk *doc = it.current(); |
837 | QFileInfo fi( doc->file() ); | 851 | QFileInfo fi( doc->file() ); |
838 | if ( !fi.exists() ) | 852 | if ( !fi.exists() ) |
@@ -853,25 +867,25 @@ void Launcher::systemMessage( const QCString &msg, const QByteArray &data) | |||
853 | contents += "[Desktop Entry]\n"; | 867 | contents += "[Desktop Entry]\n"; |
854 | contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n"; | 868 | contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n"; |
855 | contents += "File = "+doc->file()+"\n"; | 869 | contents += "File = "+doc->file()+"\n"; |
856 | contents += "Name = "+doc->name()+"\n"; | 870 | contents += "Name = "+doc->name()+"\n"; |
857 | contents += "Type = "+doc->type()+"\n"; | 871 | contents += "Type = "+doc->type()+"\n"; |
858 | } | 872 | } |
859 | contents += QString("Size = %1\n").arg( fi.size() ); | 873 | contents += QString("Size = %1\n").arg( fi.size() ); |
860 | } | 874 | } |
861 | 875 | ||
862 | //qDebug( "sending length %d", contents.length() ); | 876 | //qDebug( "sending length %d", contents.length() ); |
863 | QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); | 877 | QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); |
864 | e << contents; | 878 | e << contents; |
865 | 879 | ||
866 | qDebug( "================ \n\n%s\n\n===============", | 880 | qDebug( "================ \n\n%s\n\n===============", |
867 | contents.latin1() ); | 881 | contents.latin1() ); |
868 | 882 | ||
869 | delete docsFolder; | 883 | delete docsFolder; |
870 | docsFolder = 0; | 884 | docsFolder = 0; |
871 | } | 885 | } |
872 | } | 886 | } |
873 | 887 | ||
874 | void Launcher::cancelSync() | 888 | void Launcher::cancelSync() |
875 | { | 889 | { |
876 | QCopEnvelope e( "QPE/Desktop", "cancelSync()" ); | 890 | QCopEnvelope e( "QPE/Desktop", "cancelSync()" ); |
877 | } | 891 | } |