-rw-r--r-- | core/launcher/applauncher.cpp | 11 | ||||
-rw-r--r-- | core/launcher/config.in | 6 | ||||
-rw-r--r-- | core/launcher/documentlist.cpp | 11 | ||||
-rw-r--r-- | core/launcher/main.cpp | 9 | ||||
-rw-r--r-- | core/launcher/qcopbridge.cpp | 7 | ||||
-rw-r--r-- | core/launcher/screensaver.cpp | 2 | ||||
-rw-r--r-- | core/launcher/server.cpp | 4 | ||||
-rw-r--r-- | core/launcher/server.pro | 7 | ||||
-rw-r--r-- | core/launcher/startmenu.cpp | 2 | ||||
-rw-r--r-- | core/launcher/transferserver.cpp | 27 | ||||
-rw-r--r-- | core/launcher/wait.cpp | 2 |
11 files changed, 45 insertions, 43 deletions
diff --git a/core/launcher/applauncher.cpp b/core/launcher/applauncher.cpp index 0db99dd..f161e98 100644 --- a/core/launcher/applauncher.cpp +++ b/core/launcher/applauncher.cpp | |||
@@ -1,112 +1,111 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #ifndef QTOPIA_INTERNAL_PRELOADACCESS | 21 | #ifndef QTOPIA_INTERNAL_PRELOADACCESS |
22 | #define QTOPIA_INTERNAL_PRELOADACCESS | 22 | #define QTOPIA_INTERNAL_PRELOADACCESS |
23 | #endif | 23 | #endif |
24 | #ifndef QTOPIA_INTERNAL_FILEOPERATIONS | 24 | #ifndef QTOPIA_INTERNAL_FILEOPERATIONS |
25 | #define QTOPIA_INTERNAL_FILEOPERATIONS | 25 | #define QTOPIA_INTERNAL_FILEOPERATIONS |
26 | #endif | 26 | #endif |
27 | #ifndef QTOPIA_PROGRAM_MONITOR | 27 | #ifndef QTOPIA_PROGRAM_MONITOR |
28 | #define QTOPIA_PROGRAM_MONITOR | 28 | #define QTOPIA_PROGRAM_MONITOR |
29 | #endif | 29 | #endif |
30 | #include <qtopia/global.h> | 30 | #include <opie2/oglobal.h> |
31 | 31 | ||
32 | #ifndef Q_OS_WIN32 | 32 | #ifndef Q_OS_WIN32 |
33 | #include <sys/stat.h> | 33 | #include <sys/stat.h> |
34 | #include <sys/wait.h> | 34 | #include <sys/wait.h> |
35 | #include <sys/file.h> | 35 | #include <sys/file.h> |
36 | #include <unistd.h> | 36 | #include <unistd.h> |
37 | #include <sys/time.h> | 37 | #include <sys/time.h> |
38 | #include <sys/resource.h> | 38 | #include <sys/resource.h> |
39 | #include <errno.h> | 39 | #include <errno.h> |
40 | #else | 40 | #else |
41 | #include <process.h> | 41 | #include <process.h> |
42 | #include <windows.h> | 42 | #include <windows.h> |
43 | #include <winbase.h> | 43 | #include <winbase.h> |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | #include <signal.h> | 46 | #include <signal.h> |
47 | #include <sys/types.h> | 47 | #include <sys/types.h> |
48 | #include <stdlib.h> | 48 | #include <stdlib.h> |
49 | 49 | ||
50 | #include <qtimer.h> | 50 | #include <qtimer.h> |
51 | #include <qwindowsystem_qws.h> | 51 | #include <qwindowsystem_qws.h> |
52 | #include <qmessagebox.h> | 52 | #include <qmessagebox.h> |
53 | #include <qfile.h> | 53 | #include <qfile.h> |
54 | #include <qfileinfo.h> | 54 | #include <qfileinfo.h> |
55 | 55 | ||
56 | #include <qtopia/qcopenvelope_qws.h> | 56 | #include <qtopia/qcopenvelope_qws.h> |
57 | #include <qtopia/applnk.h> | 57 | #include <qtopia/applnk.h> |
58 | #include <qtopia/qpeapplication.h> | 58 | #include <qtopia/qpeapplication.h> |
59 | #include <qtopia/config.h> | 59 | #include <qtopia/config.h> |
60 | #include <qtopia/global.h> | 60 | #include <qtopia/global.h> |
61 | 61 | ||
62 | #include "applauncher.h" | 62 | #include "applauncher.h" |
63 | #include "documentlist.h" | 63 | #include "documentlist.h" |
64 | #include "launcherglobal.h" | ||
65 | 64 | ||
66 | const int AppLauncher::RAISE_TIMEOUT_MS = 5000; | 65 | const int AppLauncher::RAISE_TIMEOUT_MS = 5000; |
67 | 66 | ||
68 | //--------------------------------------------------------------------------- | 67 | //--------------------------------------------------------------------------- |
69 | 68 | ||
70 | static AppLauncher* appLauncherPtr; | 69 | static AppLauncher* appLauncherPtr; |
71 | 70 | ||
72 | const int appStopEventID = 1290; | 71 | const int appStopEventID = 1290; |
73 | 72 | ||
74 | class AppStoppedEvent : public QCustomEvent | 73 | class AppStoppedEvent : public QCustomEvent |
75 | { | 74 | { |
76 | public: | 75 | public: |
77 | AppStoppedEvent(int pid, int status) | 76 | AppStoppedEvent(int pid, int status) |
78 | : QCustomEvent( appStopEventID ), mPid(pid), mStatus(status) { } | 77 | : QCustomEvent( appStopEventID ), mPid(pid), mStatus(status) { } |
79 | 78 | ||
80 | int pid() { return mPid; } | 79 | int pid() { return mPid; } |
81 | int status() { return mStatus; } | 80 | int status() { return mStatus; } |
82 | 81 | ||
83 | private: | 82 | private: |
84 | int mPid, mStatus; | 83 | int mPid, mStatus; |
85 | }; | 84 | }; |
86 | 85 | ||
87 | AppLauncher::AppLauncher(QObject *parent, const char *name) | 86 | AppLauncher::AppLauncher(QObject *parent, const char *name) |
88 | : QObject(parent, name), qlPid(0), qlReady(FALSE), | 87 | : QObject(parent, name), qlPid(0), qlReady(FALSE), |
89 | appKillerBox(0) | 88 | appKillerBox(0) |
90 | { | 89 | { |
91 | connect(qwsServer, SIGNAL(newChannel(const QString&)), this, SLOT(newQcopChannel(const QString&))); | 90 | connect(qwsServer, SIGNAL(newChannel(const QString&)), this, SLOT(newQcopChannel(const QString&))); |
92 | connect(qwsServer, SIGNAL(removedChannel(const QString&)), this, SLOT(removedQcopChannel(const QString&))); | 91 | connect(qwsServer, SIGNAL(removedChannel(const QString&)), this, SLOT(removedQcopChannel(const QString&))); |
93 | QCopChannel* channel = new QCopChannel( "QPE/System", this ); | 92 | QCopChannel* channel = new QCopChannel( "QPE/System", this ); |
94 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 93 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), |
95 | this, SLOT(received(const QCString&, const QByteArray&)) ); | 94 | this, SLOT(received(const QCString&, const QByteArray&)) ); |
96 | 95 | ||
97 | channel = new QCopChannel( "QPE/Server", this ); | 96 | channel = new QCopChannel( "QPE/Server", this ); |
98 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 97 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), |
99 | this, SLOT(received(const QCString&, const QByteArray&)) ); | 98 | this, SLOT(received(const QCString&, const QByteArray&)) ); |
100 | 99 | ||
101 | #ifndef Q_OS_WIN32 | 100 | #ifndef Q_OS_WIN32 |
102 | signal(SIGCHLD, signalHandler); | 101 | signal(SIGCHLD, signalHandler); |
103 | #else | 102 | #else |
104 | runningAppsProc.setAutoDelete( TRUE ); | 103 | runningAppsProc.setAutoDelete( TRUE ); |
105 | #endif | 104 | #endif |
106 | QString tmp = qApp->argv()[0]; | 105 | QString tmp = qApp->argv()[0]; |
107 | int pos = tmp.findRev('/'); | 106 | int pos = tmp.findRev('/'); |
108 | if ( pos > -1 ) | 107 | if ( pos > -1 ) |
109 | tmp = tmp.mid(++pos); | 108 | tmp = tmp.mid(++pos); |
110 | runningApps[::getpid()] = tmp; | 109 | runningApps[::getpid()] = tmp; |
111 | 110 | ||
112 | appLauncherPtr = this; | 111 | appLauncherPtr = this; |
@@ -359,190 +358,190 @@ void AppLauncher::sigStopped(int sigPid, int sigStatus) | |||
359 | Config cfg("Launcher"); | 358 | Config cfg("Launcher"); |
360 | cfg.setGroup("Preload"); | 359 | cfg.setGroup("Preload"); |
361 | QStringList apps = cfg.readListEntry("Apps",','); | 360 | QStringList apps = cfg.readListEntry("Apps",','); |
362 | QString exe = app->exec(); | 361 | QString exe = app->exec(); |
363 | apps.remove(exe); | 362 | apps.remove(exe); |
364 | cfg.writeEntry("Apps",apps,','); | 363 | cfg.writeEntry("Apps",apps,','); |
365 | preloadDisabled = TRUE; | 364 | preloadDisabled = TRUE; |
366 | } | 365 | } |
367 | 366 | ||
368 | // clean up | 367 | // clean up |
369 | if ( exitStatus ) { | 368 | if ( exitStatus ) { |
370 | QCopEnvelope e("QPE/System", "notBusy(QString)"); | 369 | QCopEnvelope e("QPE/System", "notBusy(QString)"); |
371 | e << app->exec(); | 370 | e << app->exec(); |
372 | } | 371 | } |
373 | /* | 372 | /* |
374 | // debug info | 373 | // debug info |
375 | for (it = runningApps.begin(); it != runningApps.end(); ++it) { | 374 | for (it = runningApps.begin(); it != runningApps.end(); ++it) { |
376 | qDebug("running according to internal list: %s, with pid %d", (*it).data(), it.key() ); | 375 | qDebug("running according to internal list: %s, with pid %d", (*it).data(), it.key() ); |
377 | } | 376 | } |
378 | */ | 377 | */ |
379 | 378 | ||
380 | #ifdef QTOPIA_PROGRAM_MONITOR | 379 | #ifdef QTOPIA_PROGRAM_MONITOR |
381 | if ( crashed ) { | 380 | if ( crashed ) { |
382 | QString sig; | 381 | QString sig; |
383 | switch( exitStatus ) { | 382 | switch( exitStatus ) { |
384 | case SIGABRT: sig = "SIGABRT"; break; | 383 | case SIGABRT: sig = "SIGABRT"; break; |
385 | case SIGALRM: sig = "SIGALRM"; break; | 384 | case SIGALRM: sig = "SIGALRM"; break; |
386 | case SIGBUS: sig = "SIGBUS"; break; | 385 | case SIGBUS: sig = "SIGBUS"; break; |
387 | case SIGFPE: sig = "SIGFPE"; break; | 386 | case SIGFPE: sig = "SIGFPE"; break; |
388 | case SIGHUP: sig = "SIGHUP"; break; | 387 | case SIGHUP: sig = "SIGHUP"; break; |
389 | case SIGILL: sig = "SIGILL"; break; | 388 | case SIGILL: sig = "SIGILL"; break; |
390 | case SIGKILL: sig = "SIGKILL"; break; | 389 | case SIGKILL: sig = "SIGKILL"; break; |
391 | case SIGPIPE: sig = "SIGPIPE"; break; | 390 | case SIGPIPE: sig = "SIGPIPE"; break; |
392 | case SIGQUIT: sig = "SIGQUIT"; break; | 391 | case SIGQUIT: sig = "SIGQUIT"; break; |
393 | case SIGSEGV: sig = "SIGSEGV"; break; | 392 | case SIGSEGV: sig = "SIGSEGV"; break; |
394 | case SIGTERM: sig = "SIGTERM"; break; | 393 | case SIGTERM: sig = "SIGTERM"; break; |
395 | case SIGTRAP: sig = "SIGTRAP"; break; | 394 | case SIGTRAP: sig = "SIGTRAP"; break; |
396 | default: sig = QString("Unkown %1").arg(exitStatus); | 395 | default: sig = QString("Unkown %1").arg(exitStatus); |
397 | } | 396 | } |
398 | if ( preloadDisabled ) | 397 | if ( preloadDisabled ) |
399 | sig += tr("<qt><p>Fast loading has been disabled for this application. Tap and hold the application icon to reenable it.</qt>"); | 398 | sig += tr("<qt><p>Fast loading has been disabled for this application. Tap and hold the application icon to reenable it.</qt>"); |
400 | 399 | ||
401 | QString str = tr("<qt><b>%1</b> was terminated due to signal code %2</qt>").arg( app->name() ).arg( sig ); | 400 | QString str = tr("<qt><b>%1</b> was terminated due to signal code %2</qt>").arg( app->name() ).arg( sig ); |
402 | QMessageBox::information(0, tr("Application terminated"), str ); | 401 | QMessageBox::information(0, tr("Application terminated"), str ); |
403 | } else { | 402 | } else { |
404 | if ( exitStatus == 255 ) { //could not find app (because global returns -1) | 403 | if ( exitStatus == 255 ) { //could not find app (because global returns -1) |
405 | QMessageBox::information(0, tr("Application not found"), tr("<qt>Could not locate application <b>%1</b></qt>").arg( app->exec() ) ); | 404 | QMessageBox::information(0, tr("Application not found"), tr("<qt>Could not locate application <b>%1</b></qt>").arg( app->exec() ) ); |
406 | } else { | 405 | } else { |
407 | QFileInfo fi(Opie::Global::tempDir() + "qcop-msg-" + appName); | 406 | QFileInfo fi(OGlobal::tempDirPath() + "qcop-msg-" + appName); |
408 | if ( fi.exists() && fi.size() ) { | 407 | if ( fi.exists() && fi.size() ) { |
409 | emit terminated(sigPid, appName); | 408 | emit terminated(sigPid, appName); |
410 | qWarning("Re executing obmitted for %s", appName.latin1() ); | 409 | qWarning("Re executing obmitted for %s", appName.latin1() ); |
411 | // execute( appName, QString::null ); | 410 | // execute( appName, QString::null ); |
412 | return; | 411 | return; |
413 | } | 412 | } |
414 | } | 413 | } |
415 | } | 414 | } |
416 | 415 | ||
417 | #endif | 416 | #endif |
418 | 417 | ||
419 | emit terminated(sigPid, appName); | 418 | emit terminated(sigPid, appName); |
420 | } | 419 | } |
421 | #else | 420 | #else |
422 | void AppLauncher::sigStopped(int sigPid, int sigStatus) | 421 | void AppLauncher::sigStopped(int sigPid, int sigStatus) |
423 | { | 422 | { |
424 | qDebug("Unhandled signal : AppLauncher::sigStopped(int sigPid, int sigStatus)"); | 423 | qDebug("Unhandled signal : AppLauncher::sigStopped(int sigPid, int sigStatus)"); |
425 | } | 424 | } |
426 | #endif // Q_OS_WIN32 | 425 | #endif // Q_OS_WIN32 |
427 | 426 | ||
428 | bool AppLauncher::isRunning(const QString &app) | 427 | bool AppLauncher::isRunning(const QString &app) |
429 | { | 428 | { |
430 | for (QMap<int,QString>::ConstIterator it = runningApps.begin(); it != runningApps.end(); ++it) { | 429 | for (QMap<int,QString>::ConstIterator it = runningApps.begin(); it != runningApps.end(); ++it) { |
431 | if ( *it == app ) { | 430 | if ( *it == app ) { |
432 | #ifdef Q_OS_UNIX | 431 | #ifdef Q_OS_UNIX |
433 | pid_t t = ::__getpgid( it.key() ); | 432 | pid_t t = ::__getpgid( it.key() ); |
434 | if ( t == -1 ) { | 433 | if ( t == -1 ) { |
435 | qDebug("appLauncher bug, %s believed running, but pid %d is not existing", app.data(), it.key() ); | 434 | qDebug("appLauncher bug, %s believed running, but pid %d is not existing", app.data(), it.key() ); |
436 | runningApps.remove( it.key() ); | 435 | runningApps.remove( it.key() ); |
437 | return FALSE; | 436 | return FALSE; |
438 | } | 437 | } |
439 | #endif | 438 | #endif |
440 | return TRUE; | 439 | return TRUE; |
441 | } | 440 | } |
442 | } | 441 | } |
443 | 442 | ||
444 | return FALSE; | 443 | return FALSE; |
445 | } | 444 | } |
446 | 445 | ||
447 | bool AppLauncher::executeBuiltin(const QString &c, const QString &document) | 446 | bool AppLauncher::executeBuiltin(const QString &c, const QString &document) |
448 | { | 447 | { |
449 | Global::Command* builtin = Opie::Global::builtinCommands(); | 448 | Global::Command* builtin = OGlobal::builtinCommands(); |
450 | QGuardedPtr<QWidget> *running = Opie::Global::builtinRunning(); | 449 | QGuardedPtr<QWidget> *running = OGlobal::builtinRunning(); |
451 | 450 | ||
452 | // Attempt to execute the app using a builtin class for the app | 451 | // Attempt to execute the app using a builtin class for the app |
453 | if (builtin) { | 452 | if (builtin) { |
454 | for (int i = 0; builtin[i].file; i++) { | 453 | for (int i = 0; builtin[i].file; i++) { |
455 | if ( builtin[i].file == c ) { | 454 | if ( builtin[i].file == c ) { |
456 | if ( running[i] ) { | 455 | if ( running[i] ) { |
457 | if ( !document.isNull() && builtin[i].documentary ) | 456 | if ( !document.isNull() && builtin[i].documentary ) |
458 | Global::setDocument(running[i], document); | 457 | Global::setDocument(running[i], document); |
459 | running[i]->raise(); | 458 | running[i]->raise(); |
460 | running[i]->show(); | 459 | running[i]->show(); |
461 | running[i]->setActiveWindow(); | 460 | running[i]->setActiveWindow(); |
462 | } else { | 461 | } else { |
463 | running[i] = builtin[i].func( builtin[i].maximized ); | 462 | running[i] = builtin[i].func( builtin[i].maximized ); |
464 | } | 463 | } |
465 | #ifndef QT_NO_COP | 464 | #ifndef QT_NO_COP |
466 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); | 465 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); |
467 | e << c; // that was quick ;-) | 466 | e << c; // that was quick ;-) |
468 | #endif | 467 | #endif |
469 | return TRUE; | 468 | return TRUE; |
470 | } | 469 | } |
471 | } | 470 | } |
472 | } | 471 | } |
473 | 472 | ||
474 | // Convert the command line in to a list of arguments | 473 | // Convert the command line in to a list of arguments |
475 | QStringList list = QStringList::split(QRegExp(" *"),c); | 474 | QStringList list = QStringList::split(QRegExp(" *"),c); |
476 | QString ap=list[0]; | 475 | QString ap=list[0]; |
477 | 476 | ||
478 | if ( ap == "suspend" ) { // No tr | 477 | if ( ap == "suspend" ) { // No tr |
479 | QWSServer::processKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE ); | 478 | QWSServer::processKeyEvent( 0xffff, Qt::Key_F34, FALSE, TRUE, FALSE ); |
480 | return TRUE; | 479 | return TRUE; |
481 | } | 480 | } |
482 | 481 | ||
483 | return FALSE; | 482 | return FALSE; |
484 | } | 483 | } |
485 | 484 | ||
486 | bool AppLauncher::execute(const QString &c, const QString &docParam, bool noRaise) | 485 | bool AppLauncher::execute(const QString &c, const QString &docParam, bool noRaise) |
487 | { | 486 | { |
488 | qWarning("AppLauncher::execute"); | 487 | qWarning("AppLauncher::execute"); |
489 | // Convert the command line in to a list of arguments | 488 | // Convert the command line in to a list of arguments |
490 | QStringList list = QStringList::split(QRegExp(" *"),c); | 489 | QStringList list = QStringList::split(QRegExp(" *"),c); |
491 | if ( !docParam.isEmpty() ) | 490 | if ( !docParam.isEmpty() ) |
492 | list.append( docParam ); | 491 | list.append( docParam ); |
493 | 492 | ||
494 | QString appName = list[0]; | 493 | QString appName = list[0]; |
495 | if ( isRunning(appName) ) { | 494 | if ( isRunning(appName) ) { |
496 | QCString channel = "QPE/Application/"; | 495 | QCString channel = "QPE/Application/"; |
497 | channel += appName.latin1(); | 496 | channel += appName.latin1(); |
498 | 497 | ||
499 | // Need to lock it to avoid race conditions with QPEApplication::processQCopFile | 498 | // Need to lock it to avoid race conditions with QPEApplication::processQCopFile |
500 | QFile f(Opie::Global::tempDir() + "qcop-msg-" + appName); | 499 | QFile f(OGlobal::tempDirPath() + "qcop-msg-" + appName); |
501 | if ( !noRaise && f.open(IO_WriteOnly | IO_Append) ) { | 500 | if ( !noRaise && f.open(IO_WriteOnly | IO_Append) ) { |
502 | #ifndef Q_OS_WIN32 | 501 | #ifndef Q_OS_WIN32 |
503 | flock(f.handle(), LOCK_EX); | 502 | flock(f.handle(), LOCK_EX); |
504 | #endif | 503 | #endif |
505 | 504 | ||
506 | QDataStream ds(&f); | 505 | QDataStream ds(&f); |
507 | QByteArray b; | 506 | QByteArray b; |
508 | QDataStream bstream(b, IO_WriteOnly); | 507 | QDataStream bstream(b, IO_WriteOnly); |
509 | if ( !f.size() ) { | 508 | if ( !f.size() ) { |
510 | ds << channel << QCString("raise()") << b; | 509 | ds << channel << QCString("raise()") << b; |
511 | if ( !waitingHeartbeat.contains( appName ) && appKillerName != appName ) { | 510 | if ( !waitingHeartbeat.contains( appName ) && appKillerName != appName ) { |
512 | int id = startTimer(RAISE_TIMEOUT_MS); | 511 | int id = startTimer(RAISE_TIMEOUT_MS); |
513 | waitingHeartbeat.insert( appName, id ); | 512 | waitingHeartbeat.insert( appName, id ); |
514 | } | 513 | } |
515 | } | 514 | } |
516 | if ( !docParam.isEmpty() ) { | 515 | if ( !docParam.isEmpty() ) { |
517 | bstream << docParam; | 516 | bstream << docParam; |
518 | ds << channel << QCString("setDocument(QString)") << b; | 517 | ds << channel << QCString("setDocument(QString)") << b; |
519 | } | 518 | } |
520 | 519 | ||
521 | f.flush(); | 520 | f.flush(); |
522 | #ifndef Q_OS_WIN32 | 521 | #ifndef Q_OS_WIN32 |
523 | flock(f.handle(), LOCK_UN); | 522 | flock(f.handle(), LOCK_UN); |
524 | #endif | 523 | #endif |
525 | f.close(); | 524 | f.close(); |
526 | } | 525 | } |
527 | if ( QCopChannel::isRegistered(channel) ) // avoid unnecessary warnings | 526 | if ( QCopChannel::isRegistered(channel) ) // avoid unnecessary warnings |
528 | QCopChannel::send(channel,"QPEProcessQCop()"); | 527 | QCopChannel::send(channel,"QPEProcessQCop()"); |
529 | 528 | ||
530 | return TRUE; | 529 | return TRUE; |
531 | } | 530 | } |
532 | 531 | ||
533 | #ifdef QT_NO_QWS_MULTIPROCESS | 532 | #ifdef QT_NO_QWS_MULTIPROCESS |
534 | QMessageBox::warning( 0, tr("Error"), tr("<qt>Could not find the application %1</qt>").arg(c), | 533 | QMessageBox::warning( 0, tr("Error"), tr("<qt>Could not find the application %1</qt>").arg(c), |
535 | tr("OK"), 0, 0, 0, 1 ); | 534 | tr("OK"), 0, 0, 0, 1 ); |
536 | #else | 535 | #else |
537 | 536 | ||
538 | QStrList slist; | 537 | QStrList slist; |
539 | unsigned j; | 538 | unsigned j; |
540 | for ( j = 0; j < list.count(); j++ ) | 539 | for ( j = 0; j < list.count(); j++ ) |
541 | slist.append( list[j].utf8() ); | 540 | slist.append( list[j].utf8() ); |
542 | 541 | ||
543 | const char **args = new const char *[slist.count() + 1]; | 542 | const char **args = new const char *[slist.count() + 1]; |
544 | for ( j = 0; j < slist.count(); j++ ) | 543 | for ( j = 0; j < slist.count(); j++ ) |
545 | args[j] = slist.at(j); | 544 | args[j] = slist.at(j); |
546 | args[j] = NULL; | 545 | args[j] = NULL; |
547 | 546 | ||
548 | #ifndef Q_OS_WIN32 | 547 | #ifndef Q_OS_WIN32 |
diff --git a/core/launcher/config.in b/core/launcher/config.in index 2d9c1c2..db39210 100644 --- a/core/launcher/config.in +++ b/core/launcher/config.in | |||
@@ -1,16 +1,16 @@ | |||
1 | config LAUNCHER | 1 | config LAUNCHER |
2 | boolean "opie-taskbar (program launcher qpe for Opie)" | 2 | boolean "opie-taskbar (program launcher qpe for Opie)" |
3 | default "y" | 3 | default "y" |
4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE | 4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2UI |
5 | 5 | ||
6 | if LAUNCHER | 6 | if LAUNCHER |
7 | config PRELOAD | 7 | config PRELOAD |
8 | boolean | 8 | boolean |
9 | default "y" | 9 | default "y" |
10 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE && LAUNCHER | 10 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && LAUNCHER |
11 | 11 | ||
12 | config LAUNCHER_CORE | 12 | config LAUNCHER_CORE |
13 | boolean | 13 | boolean |
14 | default "y" | 14 | default "y" |
15 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE && LAUNCHER && PRELOAD | 15 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && LAUNCHER && PRELOAD |
16 | endif | 16 | endif |
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp index ece6931..440bf1e 100644 --- a/core/launcher/documentlist.cpp +++ b/core/launcher/documentlist.cpp | |||
@@ -1,141 +1,144 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "documentlist.h" | 20 | #include "documentlist.h" |
21 | #include "serverinterface.h" | 21 | #include "serverinterface.h" |
22 | #include "launcherglobal.h" | 22 | |
23 | #include <opie2/oglobal.h> | ||
23 | 24 | ||
24 | #include <qtopia/config.h> | 25 | #include <qtopia/config.h> |
25 | #include <qtopia/mimetype.h> | 26 | #include <qtopia/mimetype.h> |
26 | #include <qtopia/resource.h> | 27 | #include <qtopia/resource.h> |
27 | #include <qtopia/global.h> | ||
28 | #include <qtopia/private/categories.h> | 28 | #include <qtopia/private/categories.h> |
29 | #include <qtopia/qpeapplication.h> | 29 | #include <qtopia/qpeapplication.h> |
30 | #include <qtopia/applnk.h> | 30 | #include <qtopia/applnk.h> |
31 | #include <qtopia/storage.h> | 31 | #include <qtopia/storage.h> |
32 | #ifdef Q_WS_QWS | 32 | #ifdef Q_WS_QWS |
33 | #include <qtopia/qcopenvelope_qws.h> | 33 | #include <qtopia/qcopenvelope_qws.h> |
34 | #endif | 34 | #endif |
35 | 35 | ||
36 | #include <qtimer.h> | 36 | #include <qtimer.h> |
37 | #include <qfileinfo.h> | 37 | #include <qfileinfo.h> |
38 | #include <qtextstream.h> | 38 | #include <qtextstream.h> |
39 | #include <qfile.h> | 39 | #include <qfile.h> |
40 | #include <qdir.h> | 40 | #include <qdir.h> |
41 | #include <qpainter.h> | 41 | #include <qpainter.h> |
42 | #include <qimage.h> | 42 | #include <qimage.h> |
43 | #include <qcopchannel_qws.h> | 43 | #include <qcopchannel_qws.h> |
44 | #include <qlistview.h> | 44 | #include <qlistview.h> |
45 | #include <qlist.h> | 45 | #include <qlist.h> |
46 | #include <qpixmap.h> | 46 | #include <qpixmap.h> |
47 | 47 | ||
48 | 48 | ||
49 | AppLnkSet *DocumentList::appLnkSet = 0; | 49 | AppLnkSet *DocumentList::appLnkSet = 0; |
50 | 50 | ||
51 | static const int MAX_SEARCH_DEPTH = 10; | 51 | static const int MAX_SEARCH_DEPTH = 10; |
52 | 52 | ||
53 | 53 | ||
54 | class DocumentListPrivate : public QObject { | 54 | class DocumentListPrivate : public QObject { |
55 | Q_OBJECT | 55 | Q_OBJECT |
56 | public: | 56 | public: |
57 | DocumentListPrivate( ServerInterface *gui ); | 57 | DocumentListPrivate( ServerInterface *gui ); |
58 | ~DocumentListPrivate(); | 58 | ~DocumentListPrivate(); |
59 | 59 | ||
60 | void initialize(); | 60 | void initialize(); |
61 | 61 | ||
62 | const QString nextFile(); | 62 | const QString nextFile(); |
63 | const DocLnk *iterate(); | 63 | const DocLnk *iterate(); |
64 | bool store( DocLnk* dl ); | 64 | bool store( DocLnk* dl ); |
65 | void estimatedPercentScanned(); | 65 | void estimatedPercentScanned(); |
66 | 66 | ||
67 | DocLnkSet dls; | 67 | DocLnkSet dls; |
68 | QDict<void> reference; | 68 | QDict<void> reference; |
69 | QDictIterator<void> *dit; | 69 | QDictIterator<void> *dit; |
70 | enum { Find, RemoveKnownFiles, MakeUnknownFiles, Done } state; | 70 | enum { Find, RemoveKnownFiles, MakeUnknownFiles, Done } state; |
71 | 71 | ||
72 | QStringList docPaths; | 72 | QStringList docPaths; |
73 | unsigned int docPathsSearched; | 73 | unsigned int docPathsSearched; |
74 | 74 | ||
75 | int searchDepth; | 75 | int searchDepth; |
76 | QDir *listDirs[MAX_SEARCH_DEPTH]; | 76 | QDir *listDirs[MAX_SEARCH_DEPTH]; |
77 | const QFileInfoList *lists[MAX_SEARCH_DEPTH]; | 77 | const QFileInfoList *lists[MAX_SEARCH_DEPTH]; |
78 | unsigned int listPositions[MAX_SEARCH_DEPTH]; | 78 | unsigned int listPositions[MAX_SEARCH_DEPTH]; |
79 | 79 | ||
80 | StorageInfo *storage; | 80 | StorageInfo *storage; |
81 | 81 | ||
82 | int tid; | 82 | int tid; |
83 | 83 | ||
84 | ServerInterface *serverGui; | 84 | ServerInterface *serverGui; |
85 | 85 | ||
86 | bool needToSendAllDocLinks; | 86 | bool needToSendAllDocLinks; |
87 | bool sendAppLnks; | 87 | bool sendAppLnks; |
88 | bool sendDocLnks; | 88 | bool sendDocLnks; |
89 | bool scanDocs; | 89 | bool scanDocs; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | 92 | ||
93 | DocumentList::DocumentList( ServerInterface *serverGui, bool scanDocs, | 93 | /* |
94 | * scandocs will be read from Config | ||
95 | */ | ||
96 | DocumentList::DocumentList( ServerInterface *serverGui, bool /*scanDocs*/, | ||
94 | QObject *parent, const char *name ) | 97 | QObject *parent, const char *name ) |
95 | : QObject( parent, name ) | 98 | : QObject( parent, name ) |
96 | { | 99 | { |
97 | appLnkSet = new AppLnkSet( MimeType::appsFolderName() ); | 100 | appLnkSet = new AppLnkSet( MimeType::appsFolderName() ); |
98 | d = new DocumentListPrivate( serverGui ); | 101 | d = new DocumentListPrivate( serverGui ); |
99 | d->needToSendAllDocLinks = false; | 102 | d->needToSendAllDocLinks = false; |
100 | 103 | ||
101 | Config cfg( "Launcher" ); | 104 | Config cfg( "Launcher" ); |
102 | cfg.setGroup( "DocTab" ); | 105 | cfg.setGroup( "DocTab" ); |
103 | d->scanDocs = cfg.readBoolEntry( "Enable", true ); | 106 | d->scanDocs = cfg.readBoolEntry( "Enable", true ); |
104 | qDebug( "DocumentList::DocumentList() : scanDocs = %d", d->scanDocs ); | 107 | qDebug( "DocumentList::DocumentList() : scanDocs = %d", d->scanDocs ); |
105 | 108 | ||
106 | QTimer::singleShot( 10, this, SLOT( startInitialScan() ) ); | 109 | QTimer::singleShot( 10, this, SLOT( startInitialScan() ) ); |
107 | } | 110 | } |
108 | 111 | ||
109 | void DocumentList::startInitialScan() | 112 | void DocumentList::startInitialScan() |
110 | { | 113 | { |
111 | reloadAppLnks(); | 114 | reloadAppLnks(); |
112 | reloadDocLnks(); | 115 | reloadDocLnks(); |
113 | } | 116 | } |
114 | 117 | ||
115 | DocumentList::~DocumentList() | 118 | DocumentList::~DocumentList() |
116 | { | 119 | { |
117 | delete appLnkSet; | 120 | delete appLnkSet; |
118 | delete d; | 121 | delete d; |
119 | } | 122 | } |
120 | 123 | ||
121 | 124 | ||
122 | void DocumentList::add( const DocLnk& doc ) | 125 | void DocumentList::add( const DocLnk& doc ) |
123 | { | 126 | { |
124 | if ( d->serverGui && QFile::exists( doc.file() ) ) | 127 | if ( d->serverGui && QFile::exists( doc.file() ) ) |
125 | d->serverGui->documentAdded( doc ); | 128 | d->serverGui->documentAdded( doc ); |
126 | } | 129 | } |
127 | 130 | ||
128 | 131 | ||
129 | void DocumentList::start() | 132 | void DocumentList::start() |
130 | { | 133 | { |
131 | resume(); | 134 | resume(); |
132 | } | 135 | } |
133 | 136 | ||
134 | 137 | ||
135 | void DocumentList::pause() | 138 | void DocumentList::pause() |
136 | { | 139 | { |
137 | //qDebug("pause %i", d->tid); | 140 | //qDebug("pause %i", d->tid); |
138 | killTimer( d->tid ); | 141 | killTimer( d->tid ); |
139 | d->tid = 0; | 142 | d->tid = 0; |
140 | } | 143 | } |
141 | 144 | ||
@@ -224,97 +227,97 @@ void DocumentList::reloadAppLnks() | |||
224 | pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); | 227 | pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); |
225 | bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ); | 228 | bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ); |
226 | } | 229 | } |
227 | 230 | ||
228 | //qDebug("adding type %s", (*ittypes).latin1()); | 231 | //qDebug("adding type %s", (*ittypes).latin1()); |
229 | 232 | ||
230 | // ### our current launcher expects docs tab to be last | 233 | // ### our current launcher expects docs tab to be last |
231 | d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm ); | 234 | d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm ); |
232 | } | 235 | } |
233 | prevTypeList.remove(*ittypes); | 236 | prevTypeList.remove(*ittypes); |
234 | } | 237 | } |
235 | } | 238 | } |
236 | for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) { | 239 | for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) { |
237 | //qDebug("removing type %s", (*ittypes).latin1()); | 240 | //qDebug("removing type %s", (*ittypes).latin1()); |
238 | d->serverGui->typeRemoved(*ittypes); | 241 | d->serverGui->typeRemoved(*ittypes); |
239 | } | 242 | } |
240 | prevTypeList = types; | 243 | prevTypeList = types; |
241 | } | 244 | } |
242 | 245 | ||
243 | QListIterator<AppLnk> itapp( appLnkSet->children() ); | 246 | QListIterator<AppLnk> itapp( appLnkSet->children() ); |
244 | AppLnk* l; | 247 | AppLnk* l; |
245 | while ( (l=itapp.current()) ) { | 248 | while ( (l=itapp.current()) ) { |
246 | ++itapp; | 249 | ++itapp; |
247 | if ( d->sendAppLnks && d->serverGui ) | 250 | if ( d->sendAppLnks && d->serverGui ) |
248 | d->serverGui->applicationAdded( l->type(), *l ); | 251 | d->serverGui->applicationAdded( l->type(), *l ); |
249 | } | 252 | } |
250 | 253 | ||
251 | if ( d->sendAppLnks && d->serverGui ) | 254 | if ( d->sendAppLnks && d->serverGui ) |
252 | d->serverGui->applicationScanningProgress( 100 ); | 255 | d->serverGui->applicationScanningProgress( 100 ); |
253 | } | 256 | } |
254 | 257 | ||
255 | void DocumentList::reloadDocLnks() | 258 | void DocumentList::reloadDocLnks() |
256 | { | 259 | { |
257 | if ( !d->scanDocs ) | 260 | if ( !d->scanDocs ) |
258 | return; | 261 | return; |
259 | 262 | ||
260 | if ( d->sendDocLnks && d->serverGui ) { | 263 | if ( d->sendDocLnks && d->serverGui ) { |
261 | d->serverGui->documentScanningProgress( 0 ); | 264 | d->serverGui->documentScanningProgress( 0 ); |
262 | d->serverGui->allDocumentsRemoved(); | 265 | d->serverGui->allDocumentsRemoved(); |
263 | } | 266 | } |
264 | 267 | ||
265 | rescan(); | 268 | rescan(); |
266 | } | 269 | } |
267 | 270 | ||
268 | void DocumentList::linkChanged( QString arg ) | 271 | void DocumentList::linkChanged( QString arg ) |
269 | { | 272 | { |
270 | //qDebug( "linkchanged( %s )", arg.latin1() ); | 273 | //qDebug( "linkchanged( %s )", arg.latin1() ); |
271 | 274 | ||
272 | if ( arg.isNull() || Opie::Global::isAppLnkFileName( arg ) ) { | 275 | if ( arg.isNull() || OGlobal::isAppLnkFileName( arg ) ) { |
273 | reloadAppLnks(); | 276 | reloadAppLnks(); |
274 | } else { | 277 | } else { |
275 | 278 | ||
276 | const QList<DocLnk> &list = d->dls.children(); | 279 | const QList<DocLnk> &list = d->dls.children(); |
277 | QListIterator<DocLnk> it( list ); | 280 | QListIterator<DocLnk> it( list ); |
278 | while ( it.current() ) { | 281 | while ( it.current() ) { |
279 | DocLnk *doc = it.current(); | 282 | DocLnk *doc = it.current(); |
280 | ++it; | 283 | ++it; |
281 | if ( ( doc->linkFileKnown() && doc->linkFile() == arg ) | 284 | if ( ( doc->linkFileKnown() && doc->linkFile() == arg ) |
282 | || ( doc->fileKnown() && doc->file() == arg ) ) { | 285 | || ( doc->fileKnown() && doc->file() == arg ) ) { |
283 | //qDebug( "found old link" ); | 286 | //qDebug( "found old link" ); |
284 | DocLnk* dl = new DocLnk( arg ); | 287 | DocLnk* dl = new DocLnk( arg ); |
285 | // add new one if it exists and matches the mimetype | 288 | // add new one if it exists and matches the mimetype |
286 | if ( d->store( dl ) ) { | 289 | if ( d->store( dl ) ) { |
287 | // Existing link has been changed, send old link ref and a ref | 290 | // Existing link has been changed, send old link ref and a ref |
288 | // to the new link | 291 | // to the new link |
289 | //qDebug( "change case" ); | 292 | //qDebug( "change case" ); |
290 | if ( d->serverGui ) | 293 | if ( d->serverGui ) |
291 | d->serverGui->documentChanged( *doc, *dl ); | 294 | d->serverGui->documentChanged( *doc, *dl ); |
292 | 295 | ||
293 | } else { | 296 | } else { |
294 | // Link has been removed or doesn't match the mimetypes any more | 297 | // Link has been removed or doesn't match the mimetypes any more |
295 | // so we aren't interested in it, so take it away from the list | 298 | // so we aren't interested in it, so take it away from the list |
296 | //qDebug( "removal case" ); | 299 | //qDebug( "removal case" ); |
297 | if ( d->serverGui ) | 300 | if ( d->serverGui ) |
298 | d->serverGui->documentRemoved( *doc ); | 301 | d->serverGui->documentRemoved( *doc ); |
299 | 302 | ||
300 | } | 303 | } |
301 | d->dls.remove( doc ); // remove old link from docLnkSet | 304 | d->dls.remove( doc ); // remove old link from docLnkSet |
302 | delete doc; | 305 | delete doc; |
303 | return; | 306 | return; |
304 | } | 307 | } |
305 | } | 308 | } |
306 | // Didn't find existing link, must be new | 309 | // Didn't find existing link, must be new |
307 | DocLnk* dl = new DocLnk( arg ); | 310 | DocLnk* dl = new DocLnk( arg ); |
308 | if ( d->store( dl ) ) { | 311 | if ( d->store( dl ) ) { |
309 | // Add if it's a link we are interested in | 312 | // Add if it's a link we are interested in |
310 | //qDebug( "add case" ); | 313 | //qDebug( "add case" ); |
311 | add( *dl ); | 314 | add( *dl ); |
312 | } | 315 | } |
313 | 316 | ||
314 | } | 317 | } |
315 | } | 318 | } |
316 | 319 | ||
317 | void DocumentList::restoreDone() | 320 | void DocumentList::restoreDone() |
318 | { | 321 | { |
319 | reloadAppLnks(); | 322 | reloadAppLnks(); |
320 | reloadDocLnks(); | 323 | reloadDocLnks(); |
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp index 988e432..bf06e75 100644 --- a/core/launcher/main.cpp +++ b/core/launcher/main.cpp | |||
@@ -1,122 +1,123 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #ifndef QTOPIA_INTERNAL_FILEOPERATIONS | 21 | #ifndef QTOPIA_INTERNAL_FILEOPERATIONS |
22 | #define QTOPIA_INTERNAL_FILEOPERATIONS | 22 | #define QTOPIA_INTERNAL_FILEOPERATIONS |
23 | #endif | 23 | #endif |
24 | #include "server.h" | 24 | #include "server.h" |
25 | #include "serverapp.h" | 25 | #include "serverapp.h" |
26 | #include "taskbar.h" | 26 | #include "taskbar.h" |
27 | #include "stabmon.h" | 27 | #include "stabmon.h" |
28 | #include "launcher.h" | 28 | #include "launcher.h" |
29 | #include "firstuse.h" | 29 | #include "firstuse.h" |
30 | #include "launcherglobal.h" | 30 | |
31 | #include <opie2/oglobal.h> | ||
31 | 32 | ||
32 | #include <qtopia/qpeapplication.h> | 33 | #include <qtopia/qpeapplication.h> |
33 | #include <qtopia/network.h> | 34 | #include <qtopia/network.h> |
34 | #include <qtopia/config.h> | 35 | #include <qtopia/config.h> |
35 | //#include <qtopia/custom.h> | 36 | //#include <qtopia/custom.h> |
36 | #include <qtopia/global.h> | 37 | |
37 | 38 | ||
38 | #include <qfile.h> | 39 | #include <qfile.h> |
39 | #include <qdir.h> | 40 | #include <qdir.h> |
40 | #ifdef QWS | 41 | #ifdef QWS |
41 | #include <qwindowsystem_qws.h> | 42 | #include <qwindowsystem_qws.h> |
42 | #include <qtopia/qcopenvelope_qws.h> | 43 | #include <qtopia/qcopenvelope_qws.h> |
43 | #endif | 44 | #endif |
44 | #include <qtopia/alarmserver.h> | 45 | #include <qtopia/alarmserver.h> |
45 | 46 | ||
46 | #include <stdlib.h> | 47 | #include <stdlib.h> |
47 | #include <stdio.h> | 48 | #include <stdio.h> |
48 | #include <signal.h> | 49 | #include <signal.h> |
49 | #ifndef Q_OS_WIN32 | 50 | #ifndef Q_OS_WIN32 |
50 | #include <unistd.h> | 51 | #include <unistd.h> |
51 | #else | 52 | #else |
52 | #include <process.h> | 53 | #include <process.h> |
53 | #endif | 54 | #endif |
54 | 55 | ||
55 | #include "calibrate.h" | 56 | #include "calibrate.h" |
56 | 57 | ||
57 | 58 | ||
58 | #ifdef QT_QWS_LOGIN | 59 | #ifdef QT_QWS_LOGIN |
59 | #include "../login/qdmdialogimpl.h" | 60 | #include "../login/qdmdialogimpl.h" |
60 | #endif | 61 | #endif |
61 | 62 | ||
62 | #ifdef Q_WS_QWS | 63 | #ifdef Q_WS_QWS |
63 | #include <qkeyboard_qws.h> | 64 | #include <qkeyboard_qws.h> |
64 | #endif | 65 | #endif |
65 | 66 | ||
66 | #include <qmessagebox.h> | 67 | #include <qmessagebox.h> |
67 | #include <opie/odevice.h> | 68 | #include <opie2/odevice.h> |
68 | 69 | ||
69 | using namespace Opie; | 70 | using namespace Opie; |
70 | 71 | ||
71 | 72 | ||
72 | static void cleanup() | 73 | static void cleanup() |
73 | { | 74 | { |
74 | QDir dir( Opie::Global::tempDir(), "qcop-msg-*" ); | 75 | QDir dir( OGlobal::tempDirPath(), "qcop-msg-*" ); |
75 | 76 | ||
76 | QStringList stale = dir.entryList(); | 77 | QStringList stale = dir.entryList(); |
77 | QStringList::Iterator it; | 78 | QStringList::Iterator it; |
78 | for ( it = stale.begin(); it != stale.end(); ++it ) { | 79 | for ( it = stale.begin(); it != stale.end(); ++it ) { |
79 | dir.remove( *it ); | 80 | dir.remove( *it ); |
80 | } | 81 | } |
81 | } | 82 | } |
82 | 83 | ||
83 | static void refreshTimeZoneConfig() | 84 | static void refreshTimeZoneConfig() |
84 | { | 85 | { |
85 | /* ### FIXME timezone handling */ | 86 | /* ### FIXME timezone handling */ |
86 | #if 0 | 87 | #if 0 |
87 | // We need to help WorldTime in setting up its configuration for | 88 | // We need to help WorldTime in setting up its configuration for |
88 | // the current translation | 89 | // the current translation |
89 | // BEGIN no tr | 90 | // BEGIN no tr |
90 | const char *defaultTz[] = { | 91 | const char *defaultTz[] = { |
91 | "America/New_York", | 92 | "America/New_York", |
92 | "America/Los_Angeles", | 93 | "America/Los_Angeles", |
93 | "Europe/Oslo", | 94 | "Europe/Oslo", |
94 | "Asia/Tokyo", | 95 | "Asia/Tokyo", |
95 | "Asia/Hong_Kong", | 96 | "Asia/Hong_Kong", |
96 | "Australia/Brisbane", | 97 | "Australia/Brisbane", |
97 | 0 | 98 | 0 |
98 | }; | 99 | }; |
99 | // END no tr | 100 | // END no tr |
100 | 101 | ||
101 | TimeZone curZone; | 102 | TimeZone curZone; |
102 | QString zoneID; | 103 | QString zoneID; |
103 | int zoneIndex; | 104 | int zoneIndex; |
104 | Config cfg = Config( "WorldTime" ); | 105 | Config cfg = Config( "WorldTime" ); |
105 | cfg.setGroup( "TimeZones" ); | 106 | cfg.setGroup( "TimeZones" ); |
106 | if (!cfg.hasKey( "Zone0" )){ | 107 | if (!cfg.hasKey( "Zone0" )){ |
107 | // We have no existing timezones use the defaults which are untranslated strings | 108 | // We have no existing timezones use the defaults which are untranslated strings |
108 | QString currTz = TimeZone::current().id(); | 109 | QString currTz = TimeZone::current().id(); |
109 | QStringList zoneDefaults; | 110 | QStringList zoneDefaults; |
110 | zoneDefaults.append( currTz ); | 111 | zoneDefaults.append( currTz ); |
111 | for ( int i = 0; defaultTz[i] && zoneDefaults.count() < 6; i++ ) { | 112 | for ( int i = 0; defaultTz[i] && zoneDefaults.count() < 6; i++ ) { |
112 | if ( defaultTz[i] != currTz ) | 113 | if ( defaultTz[i] != currTz ) |
113 | zoneDefaults.append( defaultTz[i] ); | 114 | zoneDefaults.append( defaultTz[i] ); |
114 | } | 115 | } |
115 | zoneIndex = 0; | 116 | zoneIndex = 0; |
116 | for (QStringList::Iterator it = zoneDefaults.begin(); it != zoneDefaults.end() ; ++it){ | 117 | for (QStringList::Iterator it = zoneDefaults.begin(); it != zoneDefaults.end() ; ++it){ |
117 | cfg.writeEntry( "Zone" + QString::number( zoneIndex ) , *it); | 118 | cfg.writeEntry( "Zone" + QString::number( zoneIndex ) , *it); |
118 | zoneIndex++; | 119 | zoneIndex++; |
119 | } | 120 | } |
120 | } | 121 | } |
121 | // We have an existing list of timezones refresh the | 122 | // We have an existing list of timezones refresh the |
122 | // translations of TimeZone name | 123 | // translations of TimeZone name |
diff --git a/core/launcher/qcopbridge.cpp b/core/launcher/qcopbridge.cpp index 9cb56ce..b45f0cc 100644 --- a/core/launcher/qcopbridge.cpp +++ b/core/launcher/qcopbridge.cpp | |||
@@ -1,106 +1,107 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "qcopbridge.h" | 21 | #include "qcopbridge.h" |
22 | #include "transferserver.h" | 22 | #include "transferserver.h" |
23 | 23 | ||
24 | #include <opie2/oglobal.h> | ||
25 | |||
24 | #ifdef Q_WS_QWS | 26 | #ifdef Q_WS_QWS |
25 | #include <qtopia/qcopenvelope_qws.h> | 27 | #include <qtopia/qcopenvelope_qws.h> |
26 | #endif | 28 | #endif |
27 | #include <qtopia/qpeapplication.h> | 29 | #include <qtopia/qpeapplication.h> |
28 | #include <qtopia/global.h> | 30 | |
29 | #include <qtopia/version.h> | 31 | #include <qtopia/version.h> |
30 | #include <qtopia/config.h> | 32 | #include <qtopia/config.h> |
31 | 33 | ||
32 | #include <qdir.h> | 34 | #include <qdir.h> |
33 | #include <qfile.h> | 35 | #include <qfile.h> |
34 | #include <qtextstream.h> | 36 | #include <qtextstream.h> |
35 | #include <qdatastream.h> | 37 | #include <qdatastream.h> |
36 | #include <qcstring.h> | 38 | #include <qcstring.h> |
37 | #include <qstringlist.h> | 39 | #include <qstringlist.h> |
38 | #include <qfileinfo.h> | 40 | #include <qfileinfo.h> |
39 | #include <qregexp.h> | 41 | #include <qregexp.h> |
40 | #include <qtimer.h> | 42 | #include <qtimer.h> |
41 | #ifdef Q_WS_QWS | 43 | #ifdef Q_WS_QWS |
42 | #include <qcopchannel_qws.h> | 44 | #include <qcopchannel_qws.h> |
43 | #endif | 45 | #endif |
44 | 46 | ||
45 | #ifndef _XOPEN_SOURCE | 47 | #ifndef _XOPEN_SOURCE |
46 | #define _XOPEN_SOURCE | 48 | #define _XOPEN_SOURCE |
47 | #endif | 49 | #endif |
48 | #ifndef Q_OS_WIN32 | 50 | #ifndef Q_OS_WIN32 |
49 | #include <pwd.h> | 51 | #include <pwd.h> |
50 | #include <unistd.h> | 52 | #include <unistd.h> |
51 | #include <sys/types.h> | 53 | #include <sys/types.h> |
52 | #endif | 54 | #endif |
53 | 55 | ||
54 | #if defined(_OS_LINUX_) | 56 | #if defined(_OS_LINUX_) |
55 | #include <shadow.h> | 57 | #include <shadow.h> |
56 | #endif | 58 | #endif |
57 | 59 | ||
58 | #include "launcherglobal.h" | ||
59 | 60 | ||
60 | //#define INSECURE | 61 | //#define INSECURE |
61 | 62 | ||
62 | const int block_size = 51200; | 63 | const int block_size = 51200; |
63 | 64 | ||
64 | QCopBridge::QCopBridge( Q_UINT16 port, QObject *parent, | 65 | QCopBridge::QCopBridge( Q_UINT16 port, QObject *parent, |
65 | const char* name ) | 66 | const char* name ) |
66 | : QServerSocket( port, 1, parent, name ), | 67 | : QServerSocket( port, 1, parent, name ), |
67 | desktopChannel( 0 ), | 68 | desktopChannel( 0 ), |
68 | cardChannel( 0 ) | 69 | cardChannel( 0 ) |
69 | { | 70 | { |
70 | if ( !ok() ) | 71 | if ( !ok() ) |
71 | qWarning( "Failed to bind to port %d", port ); | 72 | qWarning( "Failed to bind to port %d", port ); |
72 | else { | 73 | else { |
73 | #ifndef QT_NO_COP | 74 | #ifndef QT_NO_COP |
74 | desktopChannel = new QCopChannel( "QPE/Desktop", this ); | 75 | desktopChannel = new QCopChannel( "QPE/Desktop", this ); |
75 | connect( desktopChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 76 | connect( desktopChannel, SIGNAL(received(const QCString &, const QByteArray &)), |
76 | this, SLOT(desktopMessage( const QCString &, const QByteArray &)) ); | 77 | this, SLOT(desktopMessage( const QCString &, const QByteArray &)) ); |
77 | cardChannel = new QCopChannel( "QPE/Card", this ); | 78 | cardChannel = new QCopChannel( "QPE/Card", this ); |
78 | connect( cardChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 79 | connect( cardChannel, SIGNAL(received(const QCString &, const QByteArray &)), |
79 | this, SLOT(desktopMessage( const QCString &, const QByteArray &)) ); | 80 | this, SLOT(desktopMessage( const QCString &, const QByteArray &)) ); |
80 | #endif | 81 | #endif |
81 | } | 82 | } |
82 | sendSync = FALSE; | 83 | sendSync = FALSE; |
83 | openConnections.setAutoDelete( TRUE ); | 84 | openConnections.setAutoDelete( TRUE ); |
84 | authorizeConnections(); | 85 | authorizeConnections(); |
85 | } | 86 | } |
86 | 87 | ||
87 | QCopBridge::~QCopBridge() | 88 | QCopBridge::~QCopBridge() |
88 | { | 89 | { |
89 | #ifndef QT_NO_COP | 90 | #ifndef QT_NO_COP |
90 | delete desktopChannel; | 91 | delete desktopChannel; |
91 | #endif | 92 | #endif |
92 | } | 93 | } |
93 | 94 | ||
94 | void QCopBridge::authorizeConnections() | 95 | void QCopBridge::authorizeConnections() |
95 | { | 96 | { |
96 | Config cfg("Security"); | 97 | Config cfg("Security"); |
97 | cfg.setGroup("SyncMode"); | 98 | cfg.setGroup("SyncMode"); |
98 | m_mode = Mode(cfg.readNumEntry("Mode", Sharp )); | 99 | m_mode = Mode(cfg.readNumEntry("Mode", Sharp )); |
99 | QListIterator<QCopBridgePI> it(openConnections); | 100 | QListIterator<QCopBridgePI> it(openConnections); |
100 | while ( it.current() ) { | 101 | while ( it.current() ) { |
101 | if ( !it.current()->verifyAuthorised() ) { | 102 | if ( !it.current()->verifyAuthorised() ) { |
102 | disconnect ( it.current(), SIGNAL( connectionClosed( QCopBridgePI *) ), this, SLOT( closed( QCopBridgePI *) ) ); | 103 | disconnect ( it.current(), SIGNAL( connectionClosed( QCopBridgePI *) ), this, SLOT( closed( QCopBridgePI *) ) ); |
103 | openConnections.removeRef( it.current() ); | 104 | openConnections.removeRef( it.current() ); |
104 | } else | 105 | } else |
105 | ++it; | 106 | ++it; |
106 | } | 107 | } |
@@ -280,97 +281,97 @@ QCopBridgePI::QCopBridgePI( int socket, QObject *parent, const char* name ) | |||
280 | intro += "loginname="; intro += SyncAuthentication::loginName(); intro += ";"; | 281 | intro += "loginname="; intro += SyncAuthentication::loginName(); intro += ";"; |
281 | intro += "displayname="; intro += SyncAuthentication::ownerName(); intro += ";"; | 282 | intro += "displayname="; intro += SyncAuthentication::ownerName(); intro += ";"; |
282 | send( intro ); | 283 | send( intro ); |
283 | state = Wait_USER; | 284 | state = Wait_USER; |
284 | } | 285 | } |
285 | sendSync = FALSE; | 286 | sendSync = FALSE; |
286 | connect( this, SIGNAL( connectionClosed() ), SLOT( myConnectionClosed() ) ); | 287 | connect( this, SIGNAL( connectionClosed() ), SLOT( myConnectionClosed() ) ); |
287 | 288 | ||
288 | // idle timer to close connections when not used anymore | 289 | // idle timer to close connections when not used anymore |
289 | timer = new QTimer(this); | 290 | timer = new QTimer(this); |
290 | connect( timer, SIGNAL(timeout()), this, SLOT(myConnectionClosed()) ); | 291 | connect( timer, SIGNAL(timeout()), this, SLOT(myConnectionClosed()) ); |
291 | timer->start( 300000, TRUE ); | 292 | timer->start( 300000, TRUE ); |
292 | } | 293 | } |
293 | 294 | ||
294 | 295 | ||
295 | QCopBridgePI::~QCopBridgePI() | 296 | QCopBridgePI::~QCopBridgePI() |
296 | { | 297 | { |
297 | } | 298 | } |
298 | 299 | ||
299 | bool QCopBridgePI::verifyAuthorised() | 300 | bool QCopBridgePI::verifyAuthorised() |
300 | { | 301 | { |
301 | if ( !SyncAuthentication::isAuthorized(peerAddress()) ) { | 302 | if ( !SyncAuthentication::isAuthorized(peerAddress()) ) { |
302 | state = Forbidden; | 303 | state = Forbidden; |
303 | return FALSE; | 304 | return FALSE; |
304 | } | 305 | } |
305 | return TRUE; | 306 | return TRUE; |
306 | } | 307 | } |
307 | 308 | ||
308 | void QCopBridgePI::myConnectionClosed() | 309 | void QCopBridgePI::myConnectionClosed() |
309 | { | 310 | { |
310 | emit connectionClosed( this ); | 311 | emit connectionClosed( this ); |
311 | } | 312 | } |
312 | 313 | ||
313 | void QCopBridgePI::sendDesktopMessage( const QString &msg ) | 314 | void QCopBridgePI::sendDesktopMessage( const QString &msg ) |
314 | { | 315 | { |
315 | QString str = "CALL QPE/Desktop " + msg; // No tr | 316 | QString str = "CALL QPE/Desktop " + msg; // No tr |
316 | send ( str ); | 317 | send ( str ); |
317 | } | 318 | } |
318 | 319 | ||
319 | void QCopBridgePI::sendDesktopMessage( const QCString &msg, const QByteArray& data ) | 320 | void QCopBridgePI::sendDesktopMessage( const QCString &msg, const QByteArray& data ) |
320 | { | 321 | { |
321 | if ( !isOpen() ) // eg. Forbidden | 322 | if ( !isOpen() ) // eg. Forbidden |
322 | return; | 323 | return; |
323 | 324 | ||
324 | const char hdr[]="CALLB QPE/Desktop "; | 325 | const char hdr[]="CALLB QPE/Desktop "; |
325 | writeBlock(hdr,sizeof(hdr)-1); | 326 | writeBlock(hdr,sizeof(hdr)-1); |
326 | writeBlock(msg,msg.length()); | 327 | writeBlock(msg,msg.length()); |
327 | writeBlock(" ",1); | 328 | writeBlock(" ",1); |
328 | QByteArray b64 = Opie::Global::encodeBase64(data); | 329 | QByteArray b64 = OGlobal::encodeBase64(data); |
329 | writeBlock(b64.data(),b64.size()); | 330 | writeBlock(b64.data(),b64.size()); |
330 | writeBlock("\r\n",2); | 331 | writeBlock("\r\n",2); |
331 | 332 | ||
332 | } | 333 | } |
333 | 334 | ||
334 | 335 | ||
335 | void QCopBridgePI::send( const QString& msg ) | 336 | void QCopBridgePI::send( const QString& msg ) |
336 | { | 337 | { |
337 | if ( !isOpen() ) // eg. Forbidden | 338 | if ( !isOpen() ) // eg. Forbidden |
338 | return; | 339 | return; |
339 | QTextStream os( this ); | 340 | QTextStream os( this ); |
340 | os << msg << endl; | 341 | os << msg << endl; |
341 | //qDebug( "sending qcop message: %s", msg.latin1() ); | 342 | //qDebug( "sending qcop message: %s", msg.latin1() ); |
342 | } | 343 | } |
343 | 344 | ||
344 | void QCopBridgePI::read() | 345 | void QCopBridgePI::read() |
345 | { | 346 | { |
346 | while ( canReadLine() ) { | 347 | while ( canReadLine() ) { |
347 | timer->start( 300000, TRUE ); | 348 | timer->start( 300000, TRUE ); |
348 | process( readLine().stripWhiteSpace() ); | 349 | process( readLine().stripWhiteSpace() ); |
349 | } | 350 | } |
350 | } | 351 | } |
351 | 352 | ||
352 | void QCopBridgePI::process( const QString& message ) | 353 | void QCopBridgePI::process( const QString& message ) |
353 | { | 354 | { |
354 | //qDebug( "Command: %s", message.latin1() ); | 355 | //qDebug( "Command: %s", message.latin1() ); |
355 | 356 | ||
356 | // split message using "," as separator | 357 | // split message using "," as separator |
357 | QStringList msg = QStringList::split( " ", message ); | 358 | QStringList msg = QStringList::split( " ", message ); |
358 | if ( msg.isEmpty() ) return; | 359 | if ( msg.isEmpty() ) return; |
359 | 360 | ||
360 | // command token | 361 | // command token |
361 | QString cmd = msg[0].upper(); | 362 | QString cmd = msg[0].upper(); |
362 | 363 | ||
363 | // argument token | 364 | // argument token |
364 | QString arg; | 365 | QString arg; |
365 | if ( msg.count() >= 2 ) | 366 | if ( msg.count() >= 2 ) |
366 | arg = msg[1]; | 367 | arg = msg[1]; |
367 | 368 | ||
368 | // we always respond to QUIT, regardless of state | 369 | // we always respond to QUIT, regardless of state |
369 | if ( cmd == "QUIT" ) { | 370 | if ( cmd == "QUIT" ) { |
370 | send( "211 Have a nice day!" ); // No tr | 371 | send( "211 Have a nice day!" ); // No tr |
371 | close(); | 372 | close(); |
372 | return; | 373 | return; |
373 | } | 374 | } |
374 | 375 | ||
375 | // connected to client | 376 | // connected to client |
376 | if ( Connected == state ) | 377 | if ( Connected == state ) |
diff --git a/core/launcher/screensaver.cpp b/core/launcher/screensaver.cpp index 48770e8..1146dcd 100644 --- a/core/launcher/screensaver.cpp +++ b/core/launcher/screensaver.cpp | |||
@@ -1,56 +1,56 @@ | |||
1 | 1 | ||
2 | #include "screensaver.h" | 2 | #include "screensaver.h" |
3 | 3 | ||
4 | #include <qpe/config.h> | 4 | #include <qpe/config.h> |
5 | #include <qpe/power.h> | 5 | #include <qpe/power.h> |
6 | #include <qpe/network.h> | 6 | #include <qpe/network.h> |
7 | 7 | ||
8 | #include <opie/odevice.h> | 8 | #include <opie2/odevice.h> |
9 | 9 | ||
10 | 10 | ||
11 | using namespace Opie; | 11 | using namespace Opie; |
12 | 12 | ||
13 | 13 | ||
14 | 14 | ||
15 | OpieScreenSaver::OpieScreenSaver ( ) | 15 | OpieScreenSaver::OpieScreenSaver ( ) |
16 | : QObject ( 0, "screensaver" ), QWSScreenSaver ( ) | 16 | : QObject ( 0, "screensaver" ), QWSScreenSaver ( ) |
17 | { | 17 | { |
18 | m_disable_suspend = 100; | 18 | m_disable_suspend = 100; |
19 | m_enable_dim = false; | 19 | m_enable_dim = false; |
20 | m_enable_lightoff = false; | 20 | m_enable_lightoff = false; |
21 | m_enable_suspend = false; | 21 | m_enable_suspend = false; |
22 | m_onlylcdoff = false; | 22 | m_onlylcdoff = false; |
23 | 23 | ||
24 | m_enable_dim_ac = false; | 24 | m_enable_dim_ac = false; |
25 | m_enable_lightoff_ac = false; | 25 | m_enable_lightoff_ac = false; |
26 | m_enable_suspend_ac = false; | 26 | m_enable_suspend_ac = false; |
27 | m_onlylcdoff_ac = false; | 27 | m_onlylcdoff_ac = false; |
28 | 28 | ||
29 | m_use_light_sensor = false; | 29 | m_use_light_sensor = false; |
30 | m_backlight_sensor = -1; | 30 | m_backlight_sensor = -1; |
31 | ::memset ( m_sensordata, 0xff, LS_Count * sizeof( m_sensordata [0] )); | 31 | ::memset ( m_sensordata, 0xff, LS_Count * sizeof( m_sensordata [0] )); |
32 | 32 | ||
33 | m_lcd_status = true; | 33 | m_lcd_status = true; |
34 | 34 | ||
35 | m_backlight_normal = -1; | 35 | m_backlight_normal = -1; |
36 | m_backlight_current = -1; | 36 | m_backlight_current = -1; |
37 | m_backlight_forcedoff = false; | 37 | m_backlight_forcedoff = false; |
38 | 38 | ||
39 | m_on_ac = false; | 39 | m_on_ac = false; |
40 | 40 | ||
41 | m_level = -1; | 41 | m_level = -1; |
42 | 42 | ||
43 | // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) | 43 | // Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off) |
44 | ODevice::inst ( )-> setDisplayStatus ( true ); | 44 | ODevice::inst ( )-> setDisplayStatus ( true ); |
45 | setBacklight ( -1 ); | 45 | setBacklight ( -1 ); |
46 | } | 46 | } |
47 | 47 | ||
48 | 48 | ||
49 | /** | 49 | /** |
50 | * Stops the screen saver | 50 | * Stops the screen saver |
51 | */ | 51 | */ |
52 | void OpieScreenSaver::restore() | 52 | void OpieScreenSaver::restore() |
53 | { | 53 | { |
54 | m_level = -1; | 54 | m_level = -1; |
55 | 55 | ||
56 | if ( !m_lcd_status ) { // We must have turned it off | 56 | if ( !m_lcd_status ) { // We must have turned it off |
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp index b9580c7..32fcdd0 100644 --- a/core/launcher/server.cpp +++ b/core/launcher/server.cpp | |||
@@ -6,98 +6,98 @@ | |||
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "server.h" | 21 | #include "server.h" |
22 | #include "serverapp.h" | 22 | #include "serverapp.h" |
23 | #include "launcher.h" | 23 | #include "launcher.h" |
24 | #include "startmenu.h" | 24 | #include "startmenu.h" |
25 | #include "transferserver.h" | 25 | #include "transferserver.h" |
26 | #include "qcopbridge.h" | 26 | #include "qcopbridge.h" |
27 | #include "irserver.h" | 27 | #include "irserver.h" |
28 | #include "packageslave.h" | 28 | #include "packageslave.h" |
29 | #include "calibrate.h" | 29 | #include "calibrate.h" |
30 | #include "qrsync.h" | 30 | #include "qrsync.h" |
31 | #include "syncdialog.h" | 31 | #include "syncdialog.h" |
32 | #include "launcher.h" | 32 | #include "launcher.h" |
33 | #include "shutdownimpl.h" | 33 | #include "shutdownimpl.h" |
34 | #include "applauncher.h" | 34 | #include "applauncher.h" |
35 | #if 0 | 35 | #if 0 |
36 | #include "suspendmonitor.h" | 36 | #include "suspendmonitor.h" |
37 | #endif | 37 | #endif |
38 | #include "documentlist.h" | 38 | #include "documentlist.h" |
39 | 39 | ||
40 | #include <qtopia/applnk.h> | 40 | #include <qtopia/applnk.h> |
41 | #include <qtopia/private/categories.h> | 41 | #include <qtopia/private/categories.h> |
42 | #include <qtopia/mimetype.h> | 42 | #include <qtopia/mimetype.h> |
43 | #include <qtopia/config.h> | 43 | #include <qtopia/config.h> |
44 | #include <qtopia/resource.h> | 44 | #include <qtopia/resource.h> |
45 | #include <qtopia/version.h> | 45 | #include <qtopia/version.h> |
46 | #include <qtopia/storage.h> | 46 | #include <qtopia/storage.h> |
47 | 47 | ||
48 | #include <qtopia/qcopenvelope_qws.h> | 48 | #include <qtopia/qcopenvelope_qws.h> |
49 | #include <qwindowsystem_qws.h> | 49 | #include <qwindowsystem_qws.h> |
50 | #include <qgfx_qws.h> | 50 | #include <qgfx_qws.h> |
51 | #include <qtopia/global.h> | 51 | #include <qtopia/global.h> |
52 | //#include <qtopia/custom.h> | 52 | //#include <qtopia/custom.h> |
53 | 53 | ||
54 | #include <opie/odevicebutton.h> | 54 | #include <opie2/odevicebutton.h> |
55 | #include <opie/odevice.h> | 55 | #include <opie2/odevice.h> |
56 | 56 | ||
57 | #include <unistd.h> | 57 | #include <unistd.h> |
58 | #include <qmainwindow.h> | 58 | #include <qmainwindow.h> |
59 | #include <qmessagebox.h> | 59 | #include <qmessagebox.h> |
60 | #include <qtimer.h> | 60 | #include <qtimer.h> |
61 | #include <qtextstream.h> | 61 | #include <qtextstream.h> |
62 | 62 | ||
63 | #include <stdlib.h> | 63 | #include <stdlib.h> |
64 | 64 | ||
65 | extern QRect qt_maxWindowRect; | 65 | extern QRect qt_maxWindowRect; |
66 | 66 | ||
67 | using namespace Opie; | 67 | using namespace Opie; |
68 | 68 | ||
69 | static QWidget *calibrate(bool) | 69 | static QWidget *calibrate(bool) |
70 | { | 70 | { |
71 | #ifdef Q_WS_QWS | 71 | #ifdef Q_WS_QWS |
72 | Calibrate *c = new Calibrate; | 72 | Calibrate *c = new Calibrate; |
73 | c->show(); | 73 | c->show(); |
74 | return c; | 74 | return c; |
75 | #else | 75 | #else |
76 | return 0; | 76 | return 0; |
77 | #endif | 77 | #endif |
78 | } | 78 | } |
79 | 79 | ||
80 | #define FACTORY(T) \ | 80 | #define FACTORY(T) \ |
81 | static QWidget *new##T( bool maximized ) { \ | 81 | static QWidget *new##T( bool maximized ) { \ |
82 | QWidget *w = new T( 0, 0, QWidget::WDestructiveClose | QWidget::WGroupLeader ); \ | 82 | QWidget *w = new T( 0, 0, QWidget::WDestructiveClose | QWidget::WGroupLeader ); \ |
83 | if ( maximized ) { \ | 83 | if ( maximized ) { \ |
84 | if ( qApp->desktop()->width() <= 350 ) { \ | 84 | if ( qApp->desktop()->width() <= 350 ) { \ |
85 | w->showMaximized(); \ | 85 | w->showMaximized(); \ |
86 | } else { \ | 86 | } else { \ |
87 | w->resize( QSize( 300, 300 ) ); \ | 87 | w->resize( QSize( 300, 300 ) ); \ |
88 | } \ | 88 | } \ |
89 | } \ | 89 | } \ |
90 | w->show(); \ | 90 | w->show(); \ |
91 | return w; \ | 91 | return w; \ |
92 | } | 92 | } |
93 | 93 | ||
94 | 94 | ||
95 | #ifdef SINGLE_APP | 95 | #ifdef SINGLE_APP |
96 | #define APP(a,b,c,d) FACTORY(b) | 96 | #define APP(a,b,c,d) FACTORY(b) |
97 | #include "apps.h" | 97 | #include "apps.h" |
98 | #undef APP | 98 | #undef APP |
99 | #endif // SINGLE_APP | 99 | #endif // SINGLE_APP |
100 | 100 | ||
101 | static Global::Command builtins[] = { | 101 | static Global::Command builtins[] = { |
102 | 102 | ||
103 | #ifdef SINGLE_APP | 103 | #ifdef SINGLE_APP |
diff --git a/core/launcher/server.pro b/core/launcher/server.pro index 0513536..f82c741 100644 --- a/core/launcher/server.pro +++ b/core/launcher/server.pro | |||
@@ -1,125 +1,124 @@ | |||
1 | TEMPLATE= app | 1 | TEMPLATE= app |
2 | 2 | ||
3 | CONFIG += qtopia warn_on release | 3 | CONFIG += qtopia warn_on release |
4 | 4 | ||
5 | DESTDIR = $$(OPIEDIR)/bin | 5 | DESTDIR = $$(OPIEDIR)/bin |
6 | 6 | ||
7 | HEADERS += server.h \ | 7 | HEADERS += server.h \ |
8 | serverinterface.h \ | 8 | serverinterface.h \ |
9 | launchertab.h \ | 9 | launchertab.h \ |
10 | documentlist.h \ | 10 | documentlist.h \ |
11 | appicons.h \ | 11 | appicons.h \ |
12 | taskbar.h \ | 12 | taskbar.h \ |
13 | runningappbar.h \ | 13 | runningappbar.h \ |
14 | applauncher.h \ | 14 | applauncher.h \ |
15 | stabmon.h \ | 15 | stabmon.h \ |
16 | inputmethods.h \ | 16 | inputmethods.h \ |
17 | systray.h \ | 17 | systray.h \ |
18 | wait.h \ | 18 | wait.h \ |
19 | shutdownimpl.h \ | 19 | shutdownimpl.h \ |
20 | launcher.h \ | 20 | launcher.h \ |
21 | launcherview.h \ | 21 | launcherview.h \ |
22 | $$(OPIEDIR)/core/apps/calibrate/calibrate.h \ | 22 | $$(OPIEDIR)/core/apps/calibrate/calibrate.h \ |
23 | startmenu.h \ | 23 | startmenu.h \ |
24 | transferserver.h \ | 24 | transferserver.h \ |
25 | qcopbridge.h \ | 25 | qcopbridge.h \ |
26 | packageslave.h \ | 26 | packageslave.h \ |
27 | irserver.h \ | 27 | irserver.h \ |
28 | firstuse.h \ | 28 | firstuse.h \ |
29 | $$(OPIEDIR)/rsync/buf.h \ | 29 | $$(OPIEDIR)/rsync/buf.h \ |
30 | $$(OPIEDIR)/rsync/checksum.h \ | 30 | $$(OPIEDIR)/rsync/checksum.h \ |
31 | $$(OPIEDIR)/rsync/command.h \ | 31 | $$(OPIEDIR)/rsync/command.h \ |
32 | $$(OPIEDIR)/rsync/emit.h \ | 32 | $$(OPIEDIR)/rsync/emit.h \ |
33 | $$(OPIEDIR)/rsync/job.h \ | 33 | $$(OPIEDIR)/rsync/job.h \ |
34 | $$(OPIEDIR)/rsync/netint.h \ | 34 | $$(OPIEDIR)/rsync/netint.h \ |
35 | $$(OPIEDIR)/rsync/protocol.h \ | 35 | $$(OPIEDIR)/rsync/protocol.h \ |
36 | $$(OPIEDIR)/rsync/prototab.h \ | 36 | $$(OPIEDIR)/rsync/prototab.h \ |
37 | $$(OPIEDIR)/rsync/rsync.h \ | 37 | $$(OPIEDIR)/rsync/rsync.h \ |
38 | $$(OPIEDIR)/rsync/search.h \ | 38 | $$(OPIEDIR)/rsync/search.h \ |
39 | $$(OPIEDIR)/rsync/stream.h \ | 39 | $$(OPIEDIR)/rsync/stream.h \ |
40 | $$(OPIEDIR)/rsync/sumset.h \ | 40 | $$(OPIEDIR)/rsync/sumset.h \ |
41 | $$(OPIEDIR)/rsync/trace.h \ | 41 | $$(OPIEDIR)/rsync/trace.h \ |
42 | $$(OPIEDIR)/rsync/types.h \ | 42 | $$(OPIEDIR)/rsync/types.h \ |
43 | $$(OPIEDIR)/rsync/util.h \ | 43 | $$(OPIEDIR)/rsync/util.h \ |
44 | $$(OPIEDIR)/rsync/whole.h \ | 44 | $$(OPIEDIR)/rsync/whole.h \ |
45 | $$(OPIEDIR)/rsync/config_rsync.h \ | 45 | $$(OPIEDIR)/rsync/config_rsync.h \ |
46 | $$(OPIEDIR)/rsync/qrsync.h \ | 46 | $$(OPIEDIR)/rsync/qrsync.h \ |
47 | syncdialog.h \ | 47 | syncdialog.h \ |
48 | serverapp.h \ | 48 | serverapp.h \ |
49 | launcherglobal.h \ | ||
50 | qprocess.h \ | 49 | qprocess.h \ |
51 | screensaver.h | 50 | screensaver.h |
52 | 51 | ||
53 | SOURCES += server.cpp \ | 52 | SOURCES += server.cpp \ |
54 | serverinterface.cpp \ | 53 | serverinterface.cpp \ |
55 | launchertab.cpp \ | 54 | launchertab.cpp \ |
56 | documentlist.cpp \ | 55 | documentlist.cpp \ |
57 | appicons.cpp \ | 56 | appicons.cpp \ |
58 | taskbar.cpp \ | 57 | taskbar.cpp \ |
59 | runningappbar.cpp \ | 58 | runningappbar.cpp \ |
60 | applauncher.cpp \ | 59 | applauncher.cpp \ |
61 | stabmon.cpp \ | 60 | stabmon.cpp \ |
62 | inputmethods.cpp \ | 61 | inputmethods.cpp \ |
63 | systray.cpp \ | 62 | systray.cpp \ |
64 | wait.cpp \ | 63 | wait.cpp \ |
65 | shutdownimpl.cpp \ | 64 | shutdownimpl.cpp \ |
66 | launcher.cpp \ | 65 | launcher.cpp \ |
67 | launcherview.cpp \ | 66 | launcherview.cpp \ |
68 | $$(OPIEDIR)/core/apps/calibrate/calibrate.cpp \ | 67 | $$(OPIEDIR)/core/apps/calibrate/calibrate.cpp \ |
69 | transferserver.cpp \ | 68 | transferserver.cpp \ |
70 | packageslave.cpp \ | 69 | packageslave.cpp \ |
71 | irserver.cpp \ | 70 | irserver.cpp \ |
72 | qcopbridge.cpp \ | 71 | qcopbridge.cpp \ |
73 | startmenu.cpp \ | 72 | startmenu.cpp \ |
74 | main.cpp \ | 73 | main.cpp \ |
75 | firstuse.cpp \ | 74 | firstuse.cpp \ |
76 | $$(OPIEDIR)/rsync/base64.c \ | 75 | $$(OPIEDIR)/rsync/base64.c \ |
77 | $$(OPIEDIR)/rsync/buf.c \ | 76 | $$(OPIEDIR)/rsync/buf.c \ |
78 | $$(OPIEDIR)/rsync/checksum.c \ | 77 | $$(OPIEDIR)/rsync/checksum.c \ |
79 | $$(OPIEDIR)/rsync/command.c \ | 78 | $$(OPIEDIR)/rsync/command.c \ |
80 | $$(OPIEDIR)/rsync/delta.c \ | 79 | $$(OPIEDIR)/rsync/delta.c \ |
81 | $$(OPIEDIR)/rsync/emit.c \ | 80 | $$(OPIEDIR)/rsync/emit.c \ |
82 | $$(OPIEDIR)/rsync/hex.c \ | 81 | $$(OPIEDIR)/rsync/hex.c \ |
83 | $$(OPIEDIR)/rsync/job.c \ | 82 | $$(OPIEDIR)/rsync/job.c \ |
84 | $$(OPIEDIR)/rsync/mdfour.c \ | 83 | $$(OPIEDIR)/rsync/mdfour.c \ |
85 | $$(OPIEDIR)/rsync/mksum.c \ | 84 | $$(OPIEDIR)/rsync/mksum.c \ |
86 | $$(OPIEDIR)/rsync/msg.c \ | 85 | $$(OPIEDIR)/rsync/msg.c \ |
87 | $$(OPIEDIR)/rsync/netint.c \ | 86 | $$(OPIEDIR)/rsync/netint.c \ |
88 | $$(OPIEDIR)/rsync/patch.c \ | 87 | $$(OPIEDIR)/rsync/patch.c \ |
89 | $$(OPIEDIR)/rsync/prototab.c \ | 88 | $$(OPIEDIR)/rsync/prototab.c \ |
90 | $$(OPIEDIR)/rsync/readsums.c \ | 89 | $$(OPIEDIR)/rsync/readsums.c \ |
91 | $$(OPIEDIR)/rsync/scoop.c \ | 90 | $$(OPIEDIR)/rsync/scoop.c \ |
92 | $$(OPIEDIR)/rsync/search.c \ | 91 | $$(OPIEDIR)/rsync/search.c \ |
93 | $$(OPIEDIR)/rsync/stats.c \ | 92 | $$(OPIEDIR)/rsync/stats.c \ |
94 | $$(OPIEDIR)/rsync/stream.c \ | 93 | $$(OPIEDIR)/rsync/stream.c \ |
95 | $$(OPIEDIR)/rsync/sumset.c \ | 94 | $$(OPIEDIR)/rsync/sumset.c \ |
96 | $$(OPIEDIR)/rsync/trace.c \ | 95 | $$(OPIEDIR)/rsync/trace.c \ |
97 | $$(OPIEDIR)/rsync/tube.c \ | 96 | $$(OPIEDIR)/rsync/tube.c \ |
98 | $$(OPIEDIR)/rsync/util.c \ | 97 | $$(OPIEDIR)/rsync/util.c \ |
99 | $$(OPIEDIR)/rsync/version.c \ | 98 | $$(OPIEDIR)/rsync/version.c \ |
100 | $$(OPIEDIR)/rsync/whole.c \ | 99 | $$(OPIEDIR)/rsync/whole.c \ |
101 | $$(OPIEDIR)/rsync/qrsync.cpp \ | 100 | $$(OPIEDIR)/rsync/qrsync.cpp \ |
102 | syncdialog.cpp \ | 101 | syncdialog.cpp \ |
103 | serverapp.cpp \ | 102 | serverapp.cpp \ |
104 | launcherglobal.cpp \ | ||
105 | qprocess.cpp \ | 103 | qprocess.cpp \ |
106 | qprocess_unix.cpp \ | 104 | qprocess_unix.cpp \ |
107 | screensaver.cpp | 105 | screensaver.cpp |
108 | 106 | ||
109 | 107 | ||
110 | INCLUDEPATH += $(OPIEDIR)/core/apps/calibrate | 108 | INCLUDEPATH += $(OPIEDIR)/core/apps/calibrate |
111 | DEPENDPATH+= $(OPIEDIR)/core/apps/calibrate | 109 | DEPENDPATH+= $(OPIEDIR)/core/apps/calibrate |
112 | 110 | ||
113 | INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/rsync | 111 | INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/rsync |
114 | DEPENDPATH+= $(OPIEDIR)/rsync | 112 | DEPENDPATH+= $(OPIEDIR)/rsync |
115 | 113 | ||
116 | TARGET = qpe | 114 | TARGET = qpe |
117 | 115 | ||
116 | #needs OWait and ODevice | ||
118 | CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) | 117 | CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) |
119 | contains( CONFTEST, y ){ | 118 | contains( CONFTEST, y ){ |
120 | LIBS += -lqpe -lopie | 119 | LIBS += -lqpe -lopiecore2 -lopieui2 |
121 | }else{ | 120 | }else{ |
122 | LIBS+= -lcrypt -lqpe -lopie | 121 | LIBS+= -lcrypt -lqpe -lopiecore2 -lopieui2 |
123 | } | 122 | } |
124 | 123 | ||
125 | include ( $(OPIEDIR)/include.pro ) | 124 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/core/launcher/startmenu.cpp b/core/launcher/startmenu.cpp index b84eed8..c199063 100644 --- a/core/launcher/startmenu.cpp +++ b/core/launcher/startmenu.cpp | |||
@@ -309,86 +309,86 @@ void StartMenu::clearApplets() | |||
309 | void StartMenu::loadApplets() | 309 | void StartMenu::loadApplets() |
310 | { | 310 | { |
311 | Config cfg( "StartMenu" ); | 311 | Config cfg( "StartMenu" ); |
312 | cfg.setGroup( "Applets" ); | 312 | cfg.setGroup( "Applets" ); |
313 | 313 | ||
314 | // SafeMode causes too much problems, so we disable it for now -- | 314 | // SafeMode causes too much problems, so we disable it for now -- |
315 | // maybe we should reenable it for OPIE 1.0 - sandman 26.09.02 | 315 | // maybe we should reenable it for OPIE 1.0 - sandman 26.09.02 |
316 | // removed in the remerge PluginManager could handle it | 316 | // removed in the remerge PluginManager could handle it |
317 | // we don't currently use it -zecke | 317 | // we don't currently use it -zecke |
318 | 318 | ||
319 | QStringList exclude = cfg.readListEntry( "ExcludeApplets", ',' ); | 319 | QStringList exclude = cfg.readListEntry( "ExcludeApplets", ',' ); |
320 | 320 | ||
321 | QString lang = getenv( "LANG" ); | 321 | QString lang = getenv( "LANG" ); |
322 | QString path = QPEApplication::qpeDir() + "/plugins/applets"; | 322 | QString path = QPEApplication::qpeDir() + "/plugins/applets"; |
323 | QDir dir( path, "lib*.so" ); | 323 | QDir dir( path, "lib*.so" ); |
324 | QStringList list = dir.entryList(); | 324 | QStringList list = dir.entryList(); |
325 | QStringList::Iterator it; | 325 | QStringList::Iterator it; |
326 | int napplets = 0; | 326 | int napplets = 0; |
327 | MenuApplet* *xapplets = new MenuApplet*[list.count()]; | 327 | MenuApplet* *xapplets = new MenuApplet*[list.count()]; |
328 | for ( it = list.begin(); it != list.end(); ++it ) { | 328 | for ( it = list.begin(); it != list.end(); ++it ) { |
329 | if ( exclude.find( *it ) != exclude.end() ) | 329 | if ( exclude.find( *it ) != exclude.end() ) |
330 | continue; | 330 | continue; |
331 | MenuAppletInterface *iface = 0; | 331 | MenuAppletInterface *iface = 0; |
332 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 332 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
333 | if (( lib->queryInterface( IID_MenuApplet, (QUnknownInterface**)&iface ) == QS_OK ) && iface ) { | 333 | if (( lib->queryInterface( IID_MenuApplet, (QUnknownInterface**)&iface ) == QS_OK ) && iface ) { |
334 | MenuApplet *applet = new MenuApplet; | 334 | MenuApplet *applet = new MenuApplet; |
335 | xapplets[napplets++] = applet; | 335 | xapplets[napplets++] = applet; |
336 | applet->library = lib; | 336 | applet->library = lib; |
337 | applet->iface = iface; | 337 | applet->iface = iface; |
338 | 338 | ||
339 | QTranslator *trans = new QTranslator(qApp); | 339 | QTranslator *trans = new QTranslator(qApp); |
340 | QString type = (*it).left( (*it).find(".") ); | 340 | QString type = (*it).left( (*it).find(".") ); |
341 | QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm"; | 341 | QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm"; |
342 | if ( trans->load( tfn )) | 342 | if ( trans->load( tfn )) |
343 | qApp->installTranslator( trans ); | 343 | qApp->installTranslator( trans ); |
344 | else | 344 | else |
345 | delete trans; | 345 | delete trans; |
346 | } else { | 346 | } else { |
347 | exclude += *it; | 347 | exclude += *it; |
348 | delete lib; | 348 | delete lib; |
349 | } | 349 | } |
350 | } | 350 | } |
351 | cfg.writeEntry( "ExcludeApplets", exclude, ',' ); | 351 | cfg.writeEntry( "ExcludeApplets", exclude, ',' ); |
352 | qsort(xapplets, napplets, sizeof(menuApplets[0]), compareAppletPositions); | 352 | qsort(xapplets, napplets, sizeof(menuApplets[0]), compareAppletPositions); |
353 | 353 | ||
354 | 354 | ||
355 | while ( napplets-- ) { | 355 | while ( napplets-- ) { |
356 | MenuApplet *applet = xapplets[napplets]; | 356 | MenuApplet *applet = xapplets[napplets]; |
357 | |||
358 | applet->popup = applet->iface->popup( this ); | 357 | applet->popup = applet->iface->popup( this ); |
359 | 358 | ||
360 | // menuApplets got an id < -1 | 359 | // menuApplets got an id < -1 |
361 | menuApplets.insert( -( currentItem + 2 ), new MenuApplet( *applet ) ); | 360 | menuApplets.insert( -( currentItem + 2 ), new MenuApplet( *applet ) ); |
362 | currentItem++; | 361 | currentItem++; |
363 | } | 362 | } |
364 | delete [] xapplets; | 363 | delete [] xapplets; |
365 | 364 | ||
366 | addApplets( launchMenu ); | 365 | addApplets( launchMenu ); |
367 | } | 366 | } |
368 | 367 | ||
369 | 368 | ||
370 | /* | 369 | /* |
371 | * Launcher calls loadMenu too often fix that | 370 | * Launcher calls loadMenu too often fix that |
372 | */ | 371 | */ |
373 | void StartMenu::addApplets(QPopupMenu* pop) { | 372 | void StartMenu::addApplets(QPopupMenu* pop) { |
374 | QIntDict<MenuApplet> dict; | 373 | QIntDict<MenuApplet> dict; |
375 | if( pop-> count ( )) | 374 | if( pop-> count ( )) |
376 | pop-> insertSeparator ( ); | 375 | pop-> insertSeparator ( ); |
377 | 376 | ||
378 | for ( QIntDictIterator<MenuApplet> it( menuApplets ); it.current(); ++it ) { | 377 | for ( QIntDictIterator<MenuApplet> it( menuApplets ); it.current(); ++it ) { |
379 | MenuApplet *applet = it.current(); | 378 | MenuApplet *applet = it.current(); |
380 | if ( applet->popup ) | 379 | if ( applet->popup ) |
381 | applet->id = pop->insertItem( applet->iface->icon(), | 380 | applet->id = pop->insertItem( applet->iface->icon(), |
382 | applet->iface->text(), applet->popup ); | 381 | applet->iface->text(), applet->popup ); |
383 | else | 382 | else |
384 | applet->id = pop->insertItem( applet->iface->icon(), | 383 | applet->id = pop->insertItem( applet->iface->icon(), |
385 | applet->iface->text() ); | 384 | applet->iface->text() ); |
386 | 385 | ||
386 | |||
387 | dict.insert( applet->id, new MenuApplet( *applet ) ); | 387 | dict.insert( applet->id, new MenuApplet( *applet ) ); |
388 | } | 388 | } |
389 | /* need to update the key */ | 389 | /* need to update the key */ |
390 | menuApplets.setAutoDelete( true ); | 390 | menuApplets.setAutoDelete( true ); |
391 | menuApplets.clear(); | 391 | menuApplets.clear(); |
392 | menuApplets.setAutoDelete( false ); | 392 | menuApplets.setAutoDelete( false ); |
393 | menuApplets = dict; | 393 | menuApplets = dict; |
394 | } | 394 | } |
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp index 9519d11..9cb9d7a 100644 --- a/core/launcher/transferserver.cpp +++ b/core/launcher/transferserver.cpp | |||
@@ -1,280 +1,279 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | //#define _XOPEN_SOURCE | 20 | //#define _XOPEN_SOURCE |
21 | 21 | ||
22 | #include <qtopia/global.h> | 22 | #include <opie2/oglobal.h> |
23 | #include <qtopia/qpeapplication.h> | 23 | #include <qtopia/qpeapplication.h> |
24 | 24 | ||
25 | #ifndef Q_OS_WIN32 | 25 | #ifndef Q_OS_WIN32 |
26 | #include <pwd.h> | 26 | #include <pwd.h> |
27 | #include <sys/types.h> | 27 | #include <sys/types.h> |
28 | #include <unistd.h> | 28 | #include <unistd.h> |
29 | #include <stdlib.h> | 29 | #include <stdlib.h> |
30 | #include <time.h> | 30 | #include <time.h> |
31 | 31 | ||
32 | #ifndef Q_OS_MACX | 32 | #ifndef Q_OS_MACX |
33 | #include <shadow.h> | 33 | #include <shadow.h> |
34 | #include <crypt.h> | 34 | #include <crypt.h> |
35 | #endif /* Q_OS_MACX */ | 35 | #endif /* Q_OS_MACX */ |
36 | 36 | ||
37 | #else | 37 | #else |
38 | #include <stdlib.h> | 38 | #include <stdlib.h> |
39 | #include <time.h> | 39 | #include <time.h> |
40 | #endif | 40 | #endif |
41 | 41 | ||
42 | 42 | ||
43 | #if defined(_OS_LINUX_) | 43 | #if defined(_OS_LINUX_) |
44 | #include <shadow.h> | 44 | #include <shadow.h> |
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | #include <qdir.h> | 47 | #include <qdir.h> |
48 | #include <qfile.h> | 48 | #include <qfile.h> |
49 | #include <qtextstream.h> | 49 | #include <qtextstream.h> |
50 | #include <qdatastream.h> | 50 | #include <qdatastream.h> |
51 | #include <qmessagebox.h> | 51 | #include <qmessagebox.h> |
52 | #include <qstringlist.h> | 52 | #include <qstringlist.h> |
53 | #include <qfileinfo.h> | 53 | #include <qfileinfo.h> |
54 | #include <qregexp.h> | 54 | #include <qregexp.h> |
55 | //#include <qtopia/qcopchannel_qws.h> | 55 | //#include <qtopia/qcopchannel_qws.h> |
56 | #include <qtopia/process.h> | 56 | #include <qtopia/process.h> |
57 | #include <qtopia/global.h> | 57 | #include <qtopia/global.h> |
58 | #include <qtopia/config.h> | 58 | #include <qtopia/config.h> |
59 | #include <qtopia/private/contact.h> | 59 | #include <qtopia/private/contact.h> |
60 | #include <qtopia/quuid.h> | 60 | #include <qtopia/quuid.h> |
61 | #include <qtopia/version.h> | 61 | #include <qtopia/version.h> |
62 | #ifdef Q_WS_QWS | 62 | #ifdef Q_WS_QWS |
63 | #include <qtopia/qcopenvelope_qws.h> | 63 | #include <qtopia/qcopenvelope_qws.h> |
64 | #endif | 64 | #endif |
65 | 65 | ||
66 | #include "launcherglobal.h" | ||
67 | 66 | ||
68 | #include "transferserver.h" | 67 | #include "transferserver.h" |
69 | #include <qtopia/qprocess.h> | 68 | #include <qtopia/qprocess.h> |
70 | 69 | ||
71 | const int block_size = 51200; | 70 | const int block_size = 51200; |
72 | 71 | ||
73 | TransferServer::TransferServer( Q_UINT16 port, QObject *parent, | 72 | TransferServer::TransferServer( Q_UINT16 port, QObject *parent, |
74 | const char* name) | 73 | const char* name) |
75 | : QServerSocket( port, 1, parent, name ) | 74 | : QServerSocket( port, 1, parent, name ) |
76 | { | 75 | { |
77 | connections.setAutoDelete( TRUE ); | 76 | connections.setAutoDelete( TRUE ); |
78 | if ( !ok() ) | 77 | if ( !ok() ) |
79 | qWarning( "Failed to bind to port %d", port ); | 78 | qWarning( "Failed to bind to port %d", port ); |
80 | } | 79 | } |
81 | 80 | ||
82 | void TransferServer::authorizeConnections() | 81 | void TransferServer::authorizeConnections() |
83 | { | 82 | { |
84 | QListIterator<ServerPI> it(connections); | 83 | QListIterator<ServerPI> it(connections); |
85 | while ( it.current() ) { | 84 | while ( it.current() ) { |
86 | if ( !it.current()->verifyAuthorised() ) { | 85 | if ( !it.current()->verifyAuthorised() ) { |
87 | disconnect( it.current(), SIGNAL(connectionClosed(ServerPI *)), this, SLOT( closed(ServerPI *)) ); | 86 | disconnect( it.current(), SIGNAL(connectionClosed(ServerPI *)), this, SLOT( closed(ServerPI *)) ); |
88 | connections.removeRef( it.current() ); | 87 | connections.removeRef( it.current() ); |
89 | } else | 88 | } else |
90 | ++it; | 89 | ++it; |
91 | } | 90 | } |
92 | } | 91 | } |
93 | 92 | ||
94 | void TransferServer::closed(ServerPI *item) | 93 | void TransferServer::closed(ServerPI *item) |
95 | { | 94 | { |
96 | connections.removeRef(item); | 95 | connections.removeRef(item); |
97 | } | 96 | } |
98 | 97 | ||
99 | TransferServer::~TransferServer() | 98 | TransferServer::~TransferServer() |
100 | { | 99 | { |
101 | } | 100 | } |
102 | 101 | ||
103 | void TransferServer::newConnection( int socket ) | 102 | void TransferServer::newConnection( int socket ) |
104 | { | 103 | { |
105 | ServerPI *ptr = new ServerPI( socket, this ); | 104 | ServerPI *ptr = new ServerPI( socket, this ); |
106 | connect( ptr, SIGNAL(connectionClosed(ServerPI *)), this, SLOT( closed(ServerPI *)) ); | 105 | connect( ptr, SIGNAL(connectionClosed(ServerPI *)), this, SLOT( closed(ServerPI *)) ); |
107 | connections.append( ptr ); | 106 | connections.append( ptr ); |
108 | } | 107 | } |
109 | 108 | ||
110 | QString SyncAuthentication::serverId() | 109 | QString SyncAuthentication::serverId() |
111 | { | 110 | { |
112 | Config cfg("Security"); | 111 | Config cfg("Security"); |
113 | cfg.setGroup("Sync"); | 112 | cfg.setGroup("Sync"); |
114 | QString r = cfg.readEntry("serverid"); | 113 | QString r = cfg.readEntry("serverid"); |
115 | 114 | ||
116 | if ( r.isEmpty() ) { | 115 | if ( r.isEmpty() ) { |
117 | r = Opie::Global::uuid(); | 116 | r = OGlobal::generateUuid(); |
118 | cfg.writeEntry("serverid", r ); | 117 | cfg.writeEntry("serverid", r ); |
119 | } | 118 | } |
120 | return r; | 119 | return r; |
121 | } | 120 | } |
122 | 121 | ||
123 | QString SyncAuthentication::ownerName() | 122 | QString SyncAuthentication::ownerName() |
124 | { | 123 | { |
125 | QString vfilename = Global::applicationFileName("addressbook", | 124 | QString vfilename = Global::applicationFileName("addressbook", |
126 | "businesscard.vcf"); | 125 | "businesscard.vcf"); |
127 | if (QFile::exists(vfilename)) { | 126 | if (QFile::exists(vfilename)) { |
128 | Contact c; | 127 | Contact c; |
129 | c = Contact::readVCard( vfilename )[0]; | 128 | c = Contact::readVCard( vfilename )[0]; |
130 | return c.fullName(); | 129 | return c.fullName(); |
131 | } | 130 | } |
132 | 131 | ||
133 | return QString::null; | 132 | return QString::null; |
134 | } | 133 | } |
135 | 134 | ||
136 | QString SyncAuthentication::loginName() | 135 | QString SyncAuthentication::loginName() |
137 | { | 136 | { |
138 | struct passwd *pw = 0L; | 137 | struct passwd *pw = 0L; |
139 | #ifndef Q_OS_WIN32 | 138 | #ifndef Q_OS_WIN32 |
140 | pw = getpwuid( geteuid() ); | 139 | pw = getpwuid( geteuid() ); |
141 | return QString::fromLocal8Bit( pw->pw_name ); | 140 | return QString::fromLocal8Bit( pw->pw_name ); |
142 | #else | 141 | #else |
143 | //### revise | 142 | //### revise |
144 | return QString(); | 143 | return QString(); |
145 | #endif | 144 | #endif |
146 | } | 145 | } |
147 | 146 | ||
148 | int SyncAuthentication::isAuthorized(QHostAddress peeraddress) | 147 | int SyncAuthentication::isAuthorized(QHostAddress peeraddress) |
149 | { | 148 | { |
150 | Config cfg("Security"); | 149 | Config cfg("Security"); |
151 | cfg.setGroup("Sync"); | 150 | cfg.setGroup("Sync"); |
152 | // QString allowedstr = cfg.readEntry("auth_peer","192.168.1.0"); | 151 | // QString allowedstr = cfg.readEntry("auth_peer","192.168.1.0"); |
153 | uint auth_peer = cfg.readNumEntry("auth_peer", 0xc0a80100); | 152 | uint auth_peer = cfg.readNumEntry("auth_peer", 0xc0a80100); |
154 | 153 | ||
155 | // QHostAddress allowed; | 154 | // QHostAddress allowed; |
156 | // allowed.setAddress(allowedstr); | 155 | // allowed.setAddress(allowedstr); |
157 | // uint auth_peer = allowed.ip4Addr(); | 156 | // uint auth_peer = allowed.ip4Addr(); |
158 | uint auth_peer_bits = cfg.readNumEntry("auth_peer_bits", 24); | 157 | uint auth_peer_bits = cfg.readNumEntry("auth_peer_bits", 24); |
159 | uint mask = auth_peer_bits >= 32 // shifting by 32 is not defined | 158 | uint mask = auth_peer_bits >= 32 // shifting by 32 is not defined |
160 | ? 0xffffffff : (((1 << auth_peer_bits) - 1) << (32 - auth_peer_bits)); | 159 | ? 0xffffffff : (((1 << auth_peer_bits) - 1) << (32 - auth_peer_bits)); |
161 | 160 | ||
162 | return (peeraddress.ip4Addr() & mask) == auth_peer; | 161 | return (peeraddress.ip4Addr() & mask) == auth_peer; |
163 | } | 162 | } |
164 | 163 | ||
165 | bool SyncAuthentication::checkUser( const QString& user ) | 164 | bool SyncAuthentication::checkUser( const QString& user ) |
166 | { | 165 | { |
167 | if ( user.isEmpty() ) return FALSE; | 166 | if ( user.isEmpty() ) return FALSE; |
168 | QString euser = loginName(); | 167 | QString euser = loginName(); |
169 | return user == euser; | 168 | return user == euser; |
170 | } | 169 | } |
171 | 170 | ||
172 | bool SyncAuthentication::checkPassword( const QString& password ) | 171 | bool SyncAuthentication::checkPassword( const QString& password ) |
173 | { | 172 | { |
174 | #ifdef ALLOW_UNIX_USER_FTP | 173 | #ifdef ALLOW_UNIX_USER_FTP |
175 | // First, check system password... | 174 | // First, check system password... |
176 | 175 | ||
177 | struct passwd *pw = 0; | 176 | struct passwd *pw = 0; |
178 | struct spwd *spw = 0; | 177 | struct spwd *spw = 0; |
179 | 178 | ||
180 | pw = getpwuid( geteuid() ); | 179 | pw = getpwuid( geteuid() ); |
181 | spw = getspnam( pw->pw_name ); | 180 | spw = getspnam( pw->pw_name ); |
182 | 181 | ||
183 | QString cpwd = QString::fromLocal8Bit( pw->pw_passwd ); | 182 | QString cpwd = QString::fromLocal8Bit( pw->pw_passwd ); |
184 | if ( cpwd == "x" && spw ) | 183 | if ( cpwd == "x" && spw ) |
185 | cpwd = QString::fromLocal8Bit( spw->sp_pwdp ); | 184 | cpwd = QString::fromLocal8Bit( spw->sp_pwdp ); |
186 | 185 | ||
187 | // Note: some systems use more than crypt for passwords. | 186 | // Note: some systems use more than crypt for passwords. |
188 | QString cpassword = QString::fromLocal8Bit( crypt( password.local8Bit(), cpwd.local8Bit() ) ); | 187 | QString cpassword = QString::fromLocal8Bit( crypt( password.local8Bit(), cpwd.local8Bit() ) ); |
189 | if ( cpwd == cpassword ) | 188 | if ( cpwd == cpassword ) |
190 | return TRUE; | 189 | return TRUE; |
191 | #endif | 190 | #endif |
192 | 191 | ||
193 | static int lastdenial=0; | 192 | static int lastdenial=0; |
194 | static int denials=0; | 193 | static int denials=0; |
195 | int now = time(0); | 194 | int now = time(0); |
196 | 195 | ||
197 | Config cfg("Security"); | 196 | Config cfg("Security"); |
198 | cfg.setGroup("Sync"); | 197 | cfg.setGroup("Sync"); |
199 | QString syncapp = cfg.readEntry("syncapp","Qtopia"); | 198 | QString syncapp = cfg.readEntry("syncapp","Qtopia"); |
200 | 199 | ||
201 | //No password needed if the user really wants it | 200 | //No password needed if the user really wants it |
202 | if (syncapp == "IntelliSync") { | 201 | if (syncapp == "IntelliSync") { |
203 | return TRUE; | 202 | return TRUE; |
204 | } | 203 | } |
205 | 204 | ||
206 | // Detect old Qtopia Desktop (no password) | 205 | // Detect old Qtopia Desktop (no password) |
207 | if ( password.isEmpty() ) { | 206 | if ( password.isEmpty() ) { |
208 | if ( denials < 3 || now > lastdenial+600 ) { | 207 | if ( denials < 3 || now > lastdenial+600 ) { |
209 | QMessageBox unauth( | 208 | QMessageBox unauth( |
210 | tr("Sync Connection"), | 209 | tr("Sync Connection"), |
211 | tr("<p>An unauthorized system is requesting access to this device." | 210 | tr("<p>An unauthorized system is requesting access to this device." |
212 | "<p>If you are using a version of Qtopia Desktop older than 1.5.1, " | 211 | "<p>If you are using a version of Qtopia Desktop older than 1.5.1, " |
213 | "please upgrade or change the security setting to use IntelliSync." ), | 212 | "please upgrade or change the security setting to use IntelliSync." ), |
214 | QMessageBox::Warning, | 213 | QMessageBox::Warning, |
215 | QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton, | 214 | QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton, |
216 | 0, QString::null, TRUE, WStyle_StaysOnTop); | 215 | 0, QString::null, TRUE, WStyle_StaysOnTop); |
217 | unauth.setButtonText(QMessageBox::Cancel, tr("Deny")); | 216 | unauth.setButtonText(QMessageBox::Cancel, tr("Deny")); |
218 | unauth.exec(); | 217 | unauth.exec(); |
219 | 218 | ||
220 | denials++; | 219 | denials++; |
221 | lastdenial=now; | 220 | lastdenial=now; |
222 | } | 221 | } |
223 | return FALSE; | 222 | return FALSE; |
224 | 223 | ||
225 | } | 224 | } |
226 | 225 | ||
227 | // Second, check sync password... | 226 | // Second, check sync password... |
228 | 227 | ||
229 | static int lock=0; | 228 | static int lock=0; |
230 | if ( lock ) return FALSE; | 229 | if ( lock ) return FALSE; |
231 | 230 | ||
232 | ++lock; | 231 | ++lock; |
233 | 232 | ||
234 | /* | 233 | /* |
235 | * we need to support old Sync software and QtopiaDesktop | 234 | * we need to support old Sync software and QtopiaDesktop |
236 | */ | 235 | */ |
237 | if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) { | 236 | if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) { |
238 | Config cfg( "Security" ); | 237 | Config cfg( "Security" ); |
239 | cfg.setGroup("Sync"); | 238 | cfg.setGroup("Sync"); |
240 | QStringList pwds = cfg.readListEntry("Passwords",' '); | 239 | QStringList pwds = cfg.readListEntry("Passwords",' '); |
241 | for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) { | 240 | for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) { |
242 | #ifndef Q_OS_WIN32 | 241 | #ifndef Q_OS_WIN32 |
243 | QString cpassword = QString::fromLocal8Bit( | 242 | QString cpassword = QString::fromLocal8Bit( |
244 | crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) ); | 243 | crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) ); |
245 | #else | 244 | #else |
246 | // ### revise | 245 | // ### revise |
247 | QString cpassword(""); | 246 | QString cpassword(""); |
248 | #endif | 247 | #endif |
249 | if ( *it == cpassword ) { | 248 | if ( *it == cpassword ) { |
250 | lock--; | 249 | lock--; |
251 | return TRUE; | 250 | return TRUE; |
252 | } | 251 | } |
253 | } | 252 | } |
254 | 253 | ||
255 | // Unrecognized system. Be careful... | 254 | // Unrecognized system. Be careful... |
256 | QMessageBox unrecbox( | 255 | QMessageBox unrecbox( |
257 | tr("Sync Connection"), | 256 | tr("Sync Connection"), |
258 | tr("<p>An unrecognized system is requesting access to this device." | 257 | tr("<p>An unrecognized system is requesting access to this device." |
259 | "<p>If you have just initiated a Sync for the first time, this is normal."), | 258 | "<p>If you have just initiated a Sync for the first time, this is normal."), |
260 | QMessageBox::Warning, | 259 | QMessageBox::Warning, |
261 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, | 260 | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, |
262 | 0, QString::null, TRUE, WStyle_StaysOnTop); | 261 | 0, QString::null, TRUE, WStyle_StaysOnTop); |
263 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Deny")); | 262 | unrecbox.setButtonText(QMessageBox::Cancel, tr("Deny")); |
264 | unrecbox.setButtonText(QMessageBox::Yes, tr("Allow")); | 263 | unrecbox.setButtonText(QMessageBox::Yes, tr("Allow")); |
265 | 264 | ||
266 | if ( (denials > 2 && now < lastdenial+600) | 265 | if ( (denials > 2 && now < lastdenial+600) |
267 | || unrecbox.exec() != QMessageBox::Yes) | 266 | || unrecbox.exec() != QMessageBox::Yes) |
268 | { | 267 | { |
269 | denials++; | 268 | denials++; |
270 | lastdenial=now; | 269 | lastdenial=now; |
271 | lock--; | 270 | lock--; |
272 | return FALSE; | 271 | return FALSE; |
273 | } else { | 272 | } else { |
274 | const char salty[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/."; | 273 | const char salty[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/."; |
275 | char salt[2]; | 274 | char salt[2]; |
276 | salt[0]= salty[rand() % (sizeof(salty)-1)]; | 275 | salt[0]= salty[rand() % (sizeof(salty)-1)]; |
277 | salt[1]= salty[rand() % (sizeof(salty)-1)]; | 276 | salt[1]= salty[rand() % (sizeof(salty)-1)]; |
278 | #ifndef Q_OS_WIN32 | 277 | #ifndef Q_OS_WIN32 |
279 | QString cpassword = QString::fromLocal8Bit( | 278 | QString cpassword = QString::fromLocal8Bit( |
280 | crypt( password.mid(8).local8Bit(), salt ) ); | 279 | crypt( password.mid(8).local8Bit(), salt ) ); |
diff --git a/core/launcher/wait.cpp b/core/launcher/wait.cpp index ab53a07..34ffd1a 100644 --- a/core/launcher/wait.cpp +++ b/core/launcher/wait.cpp | |||
@@ -1,74 +1,74 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "wait.h" | 21 | #include "wait.h" |
22 | 22 | ||
23 | #include <qtopia/resource.h> | 23 | #include <qtopia/resource.h> |
24 | #include <qtopia/config.h> | 24 | #include <qtopia/config.h> |
25 | 25 | ||
26 | #include <opie/owait.h> | 26 | #include <opie2/owait.h> |
27 | 27 | ||
28 | #include <qwidget.h> | 28 | #include <qwidget.h> |
29 | #include <qpixmap.h> | 29 | #include <qpixmap.h> |
30 | #include <qpainter.h> | 30 | #include <qpainter.h> |
31 | 31 | ||
32 | 32 | ||
33 | Wait *lastWaitObject = NULL; | 33 | Wait *lastWaitObject = NULL; |
34 | 34 | ||
35 | 35 | ||
36 | Wait::Wait( QWidget *parent ) : QWidget( parent ), | 36 | Wait::Wait( QWidget *parent ) : QWidget( parent ), |
37 | pm( Resource::loadPixmap( "wait" ) ), waiting( FALSE ) | 37 | pm( Resource::loadPixmap( "wait" ) ), waiting( FALSE ) |
38 | { | 38 | { |
39 | setFixedSize( pm.size() ); | 39 | setFixedSize( pm.size() ); |
40 | lastWaitObject = this; | 40 | lastWaitObject = this; |
41 | m_centralWait = new OWait( 0l ); | 41 | m_centralWait = new OWait( 0l ); |
42 | m_centralWait->hide(); | 42 | m_centralWait->hide(); |
43 | hide(); | 43 | hide(); |
44 | } | 44 | } |
45 | 45 | ||
46 | 46 | ||
47 | Wait *Wait::getWaitObject() | 47 | Wait *Wait::getWaitObject() |
48 | { | 48 | { |
49 | return lastWaitObject; | 49 | return lastWaitObject; |
50 | } | 50 | } |
51 | 51 | ||
52 | 52 | ||
53 | void Wait::setWaiting( bool w ) | 53 | void Wait::setWaiting( bool w ) |
54 | { | 54 | { |
55 | Config cfg ( "Launcher" ); | 55 | Config cfg ( "Launcher" ); |
56 | cfg.setGroup("GUI"); | 56 | cfg.setGroup("GUI"); |
57 | 57 | ||
58 | 58 | ||
59 | waiting = w; | 59 | waiting = w; |
60 | if ( w ) { | 60 | if ( w ) { |
61 | if ( cfg. readBoolEntry( "BigBusy" ) ) | 61 | if ( cfg. readBoolEntry( "BigBusy" ) ) |
62 | m_centralWait->show(); | 62 | m_centralWait->show(); |
63 | else | 63 | else |
64 | show(); | 64 | show(); |
65 | }else{ | 65 | }else{ |
66 | m_centralWait->hide(); | 66 | m_centralWait->hide(); |
67 | hide(); | 67 | hide(); |
68 | } | 68 | } |
69 | } | 69 | } |
70 | 70 | ||
71 | 71 | ||
72 | void Wait::paintEvent( QPaintEvent * ) | 72 | void Wait::paintEvent( QPaintEvent * ) |
73 | { | 73 | { |
74 | QPainter p( this ); | 74 | QPainter p( this ); |