-rw-r--r-- | core/apps/textedit/textedit.cpp | 33 | ||||
-rw-r--r-- | core/launcher/qprocess_unix.cpp | 6 | ||||
-rw-r--r-- | core/launcher/server.cpp | 19 | ||||
-rw-r--r-- | core/settings/launcher/menusettings.cpp | 5 | ||||
-rw-r--r-- | core/settings/launcher/taskbarsettings.cpp | 13 |
5 files changed, 48 insertions, 28 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 759e440..61beac5 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp | |||
@@ -617,112 +617,113 @@ void TextEdit::editCut() { | |||
617 | #endif | 617 | #endif |
618 | } | 618 | } |
619 | 619 | ||
620 | void TextEdit::editCopy() { | 620 | void TextEdit::editCopy() { |
621 | #ifndef QT_NO_CLIPBOARD | 621 | #ifndef QT_NO_CLIPBOARD |
622 | editor->copy(); | 622 | editor->copy(); |
623 | #endif | 623 | #endif |
624 | } | 624 | } |
625 | 625 | ||
626 | void TextEdit::editPaste() { | 626 | void TextEdit::editPaste() { |
627 | #ifndef QT_NO_CLIPBOARD | 627 | #ifndef QT_NO_CLIPBOARD |
628 | editor->paste(); | 628 | editor->paste(); |
629 | #endif | 629 | #endif |
630 | } | 630 | } |
631 | 631 | ||
632 | void TextEdit::editFind() { | 632 | void TextEdit::editFind() { |
633 | searchBar->show(); | 633 | searchBar->show(); |
634 | searchEdit->setFocus(); | 634 | searchEdit->setFocus(); |
635 | } | 635 | } |
636 | 636 | ||
637 | void TextEdit::findNext() { | 637 | void TextEdit::findNext() { |
638 | editor->find( searchEdit->text(), false, false ); | 638 | editor->find( searchEdit->text(), false, false ); |
639 | 639 | ||
640 | } | 640 | } |
641 | 641 | ||
642 | void TextEdit::findClose() { | 642 | void TextEdit::findClose() { |
643 | searchBar->hide(); | 643 | searchBar->hide(); |
644 | } | 644 | } |
645 | 645 | ||
646 | void TextEdit::search() { | 646 | void TextEdit::search() { |
647 | editor->find( searchEdit->text(), false, false ); | 647 | editor->find( searchEdit->text(), false, false ); |
648 | } | 648 | } |
649 | 649 | ||
650 | void TextEdit::newFile( const DocLnk &f ) { | 650 | void TextEdit::newFile( const DocLnk &f ) { |
651 | DocLnk nf = f; | 651 | DocLnk nf = f; |
652 | nf.setType("text/plain"); | 652 | nf.setType("text/plain"); |
653 | clear(); | 653 | clear(); |
654 | setWState (WState_Reserved1 ); | 654 | setWState (WState_Reserved1 ); |
655 | editor->setFocus(); | 655 | editor->setFocus(); |
656 | doc = new DocLnk(nf); | 656 | doc = new DocLnk(nf); |
657 | currentFileName = "Unnamed"; | 657 | currentFileName = "Unnamed"; |
658 | odebug << "newFile "+currentFileName << oendl; | 658 | odebug << "newFile "+currentFileName << oendl; |
659 | updateCaption( currentFileName); | 659 | updateCaption( currentFileName); |
660 | // editor->setEdited( false); | 660 | // editor->setEdited( false); |
661 | } | 661 | } |
662 | 662 | ||
663 | void TextEdit::openDotFile( const QString &f ) { | 663 | void TextEdit::openDotFile( const QString &f ) { |
664 | if(!currentFileName.isEmpty()) { | 664 | if(!currentFileName.isEmpty()) { |
665 | currentFileName=f; | 665 | currentFileName=f; |
666 | 666 | ||
667 | odebug << "openFile dotfile " + currentFileName << oendl; | 667 | odebug << "openFile dotfile " + currentFileName << oendl; |
668 | QString txt; | 668 | QString txt; |
669 | QFile file(f); | 669 | QFile file(f); |
670 | file.open(IO_ReadWrite); | 670 | if (!file.open(IO_ReadWrite)) |
671 | QTextStream t(&file); | 671 | owarn << "Failed to open file " << file.name() << oendl; |
672 | while ( !t.atEnd()) { | 672 | else { |
673 | txt+=t.readLine()+"\n"; | 673 | QTextStream t(&file); |
674 | } | 674 | while ( !t.atEnd()) { |
675 | editor->setText(txt); | 675 | txt+=t.readLine()+"\n"; |
676 | editor->setEdited( false); | 676 | } |
677 | edited1=false; | 677 | editor->setText(txt); |
678 | edited=false; | 678 | editor->setEdited( false); |
679 | 679 | edited1=false; | |
680 | 680 | edited=false; | |
681 | } | ||
681 | } | 682 | } |
682 | updateCaption( currentFileName); | 683 | updateCaption( currentFileName); |
683 | } | 684 | } |
684 | 685 | ||
685 | void TextEdit::openFile( const QString &f ) { | 686 | void TextEdit::openFile( const QString &f ) { |
686 | odebug << "filename is "+ f << oendl; | 687 | odebug << "filename is "+ f << oendl; |
687 | QString filer; | 688 | QString filer; |
688 | QFileInfo fi( f); | 689 | QFileInfo fi( f); |
689 | // bFromDocView = true; | 690 | // bFromDocView = true; |
690 | if(f.find(".desktop",0,true) != -1 && !openDesktop ) | 691 | if(f.find(".desktop",0,true) != -1 && !openDesktop ) |
691 | { | 692 | { |
692 | switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Text Editor has detected<BR>you selected a <B>.desktop</B>file.<BR>Open<B>.desktop</B> file or <B>linked</B> file?"),tr(".desktop File"),tr("Linked Document"),0,1,1) ) | 693 | switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Text Editor has detected<BR>you selected a <B>.desktop</B>file.<BR>Open<B>.desktop</B> file or <B>linked</B> file?"),tr(".desktop File"),tr("Linked Document"),0,1,1) ) |
693 | { | 694 | { |
694 | case 0: //desktop | 695 | case 0: //desktop |
695 | filer = f; | 696 | filer = f; |
696 | break; | 697 | break; |
697 | case 1: //linked | 698 | case 1: //linked |
698 | DocLnk sf(f); | 699 | DocLnk sf(f); |
699 | filer = sf.file(); | 700 | filer = sf.file(); |
700 | break; | 701 | break; |
701 | }; | 702 | }; |
702 | } | 703 | } |
703 | else if(fi.baseName().left(1) == "") | 704 | else if(fi.baseName().left(1) == "") |
704 | { | 705 | { |
705 | odebug << "opening dotfile" << oendl; | 706 | odebug << "opening dotfile" << oendl; |
706 | currentFileName=f; | 707 | currentFileName=f; |
707 | openDotFile(currentFileName); | 708 | openDotFile(currentFileName); |
708 | return; | 709 | return; |
709 | } | 710 | } |
710 | /* | 711 | /* |
711 | * The problem is a file where Config(f).isValid() and it does not | 712 | * The problem is a file where Config(f).isValid() and it does not |
712 | * end with .desktop will be treated as desktop file | 713 | * end with .desktop will be treated as desktop file |
713 | */ | 714 | */ |
714 | else if (f.find(".desktop",0,true) != -1 ) | 715 | else if (f.find(".desktop",0,true) != -1 ) |
715 | { | 716 | { |
716 | DocLnk sf(f); | 717 | DocLnk sf(f); |
717 | filer = sf.file(); | 718 | filer = sf.file(); |
718 | if(filer.right(1) == "/") | 719 | if(filer.right(1) == "/") |
719 | filer = f; | 720 | filer = f; |
720 | 721 | ||
721 | } | 722 | } |
722 | else | 723 | else |
723 | filer = f; | 724 | filer = f; |
724 | 725 | ||
725 | DocLnk nf; | 726 | DocLnk nf; |
726 | nf.setType("text/plain"); | 727 | nf.setType("text/plain"); |
727 | nf.setFile(filer); | 728 | nf.setFile(filer); |
728 | currentFileName=filer; | 729 | currentFileName=filer; |
diff --git a/core/launcher/qprocess_unix.cpp b/core/launcher/qprocess_unix.cpp index 97c0460..3125bcc 100644 --- a/core/launcher/qprocess_unix.cpp +++ b/core/launcher/qprocess_unix.cpp | |||
@@ -268,97 +268,101 @@ QProcessManager::~QProcessManager() | |||
268 | odebug << "QProcessManager: restore old sigchild handler" << oendl; | 268 | odebug << "QProcessManager: restore old sigchild handler" << oendl; |
269 | #endif | 269 | #endif |
270 | if ( sigaction( SIGCHLD, &oldactChld, 0 ) != 0 ) | 270 | if ( sigaction( SIGCHLD, &oldactChld, 0 ) != 0 ) |
271 | owarn << "Error restoring SIGCHLD handler" << oendl; | 271 | owarn << "Error restoring SIGCHLD handler" << oendl; |
272 | 272 | ||
273 | #if defined(QT_QPROCESS_DEBUG) | 273 | #if defined(QT_QPROCESS_DEBUG) |
274 | odebug << "QProcessManager: restore old sigpipe handler" << oendl; | 274 | odebug << "QProcessManager: restore old sigpipe handler" << oendl; |
275 | #endif | 275 | #endif |
276 | if ( sigaction( SIGPIPE, &oldactPipe, 0 ) != 0 ) | 276 | if ( sigaction( SIGPIPE, &oldactPipe, 0 ) != 0 ) |
277 | owarn << "Error restoring SIGPIPE handler" << oendl; | 277 | owarn << "Error restoring SIGPIPE handler" << oendl; |
278 | } | 278 | } |
279 | 279 | ||
280 | void QProcessManager::append( QProc *p ) | 280 | void QProcessManager::append( QProc *p ) |
281 | { | 281 | { |
282 | procList->append( p ); | 282 | procList->append( p ); |
283 | #if defined(QT_QPROCESS_DEBUG) | 283 | #if defined(QT_QPROCESS_DEBUG) |
284 | odebug << "QProcessManager: append process (procList.count(): " << procList->count() << ")" << oendl; | 284 | odebug << "QProcessManager: append process (procList.count(): " << procList->count() << ")" << oendl; |
285 | #endif | 285 | #endif |
286 | } | 286 | } |
287 | 287 | ||
288 | void QProcessManager::remove( QProc *p ) | 288 | void QProcessManager::remove( QProc *p ) |
289 | { | 289 | { |
290 | procList->remove( p ); | 290 | procList->remove( p ); |
291 | #if defined(QT_QPROCESS_DEBUG) | 291 | #if defined(QT_QPROCESS_DEBUG) |
292 | odebug << "QProcessManager: remove process (procList.count(): " << procList->count() << ")" << oendl; | 292 | odebug << "QProcessManager: remove process (procList.count(): " << procList->count() << ")" << oendl; |
293 | #endif | 293 | #endif |
294 | cleanup(); | 294 | cleanup(); |
295 | } | 295 | } |
296 | 296 | ||
297 | void QProcessManager::cleanup() | 297 | void QProcessManager::cleanup() |
298 | { | 298 | { |
299 | if ( procList->count() == 0 ) { | 299 | if ( procList->count() == 0 ) { |
300 | QTimer::singleShot( 0, this, SLOT(removeMe()) ); | 300 | QTimer::singleShot( 0, this, SLOT(removeMe()) ); |
301 | } | 301 | } |
302 | } | 302 | } |
303 | 303 | ||
304 | void QProcessManager::removeMe() | 304 | void QProcessManager::removeMe() |
305 | { | 305 | { |
306 | if ( procList->count() == 0 ) { | 306 | if ( procList->count() == 0 ) { |
307 | qprocess_cleanup_procmanager.remove( &QProcessPrivate::procManager ); | 307 | qprocess_cleanup_procmanager.remove( &QProcessPrivate::procManager ); |
308 | QProcessPrivate::procManager = 0; | 308 | QProcessPrivate::procManager = 0; |
309 | delete this; | 309 | delete this; |
310 | } | 310 | } |
311 | } | 311 | } |
312 | 312 | ||
313 | void QProcessManager::sigchldHnd( int fd ) | 313 | void QProcessManager::sigchldHnd( int fd ) |
314 | { | 314 | { |
315 | char tmp; | 315 | char tmp; |
316 | ::read( fd, &tmp, sizeof(tmp) ); | 316 | if (::read( fd, &tmp, sizeof(tmp) ) < 0) |
317 | #if defined(QT_QPROCESS_DEBUG) | ||
318 | odebug << "QProcessManager::sigchldHnd() failed dummy read of file descriptor" << oendl; | ||
319 | #endif | ||
320 | ; | ||
317 | #if defined(QT_QPROCESS_DEBUG) | 321 | #if defined(QT_QPROCESS_DEBUG) |
318 | odebug << "QProcessManager::sigchldHnd()" << oendl; | 322 | odebug << "QProcessManager::sigchldHnd()" << oendl; |
319 | #endif | 323 | #endif |
320 | QProc *proc; | 324 | QProc *proc; |
321 | QProcess *process; | 325 | QProcess *process; |
322 | bool removeProc; | 326 | bool removeProc; |
323 | proc = procList->first(); | 327 | proc = procList->first(); |
324 | while ( proc != 0 ) { | 328 | while ( proc != 0 ) { |
325 | removeProc = FALSE; | 329 | removeProc = FALSE; |
326 | process = proc->process; | 330 | process = proc->process; |
327 | QProcess *process_exit_notify=0; | 331 | QProcess *process_exit_notify=0; |
328 | if ( process != 0 ) { | 332 | if ( process != 0 ) { |
329 | if ( !process->isRunning() ) { | 333 | if ( !process->isRunning() ) { |
330 | #if defined(QT_QPROCESS_DEBUG) | 334 | #if defined(QT_QPROCESS_DEBUG) |
331 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess available)" << oendl; | 335 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess available)" << oendl; |
332 | #endif | 336 | #endif |
333 | // read pending data | 337 | // read pending data |
334 | int nbytes = 0; | 338 | int nbytes = 0; |
335 | if ( ::ioctl(proc->socketStdout, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { | 339 | if ( ::ioctl(proc->socketStdout, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { |
336 | #if defined(QT_QPROCESS_DEBUG) | 340 | #if defined(QT_QPROCESS_DEBUG) |
337 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stdout" << oendl; | 341 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stdout" << oendl; |
338 | #endif | 342 | #endif |
339 | process->socketRead( proc->socketStdout ); | 343 | process->socketRead( proc->socketStdout ); |
340 | } | 344 | } |
341 | nbytes = 0; | 345 | nbytes = 0; |
342 | if ( ::ioctl(proc->socketStderr, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { | 346 | if ( ::ioctl(proc->socketStderr, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { |
343 | #if defined(QT_QPROCESS_DEBUG) | 347 | #if defined(QT_QPROCESS_DEBUG) |
344 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stderr" << oendl; | 348 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stderr" << oendl; |
345 | #endif | 349 | #endif |
346 | process->socketRead( proc->socketStderr ); | 350 | process->socketRead( proc->socketStderr ); |
347 | } | 351 | } |
348 | 352 | ||
349 | if ( process->notifyOnExit ) | 353 | if ( process->notifyOnExit ) |
350 | process_exit_notify = process; | 354 | process_exit_notify = process; |
351 | 355 | ||
352 | removeProc = TRUE; | 356 | removeProc = TRUE; |
353 | } | 357 | } |
354 | } else { | 358 | } else { |
355 | int status; | 359 | int status; |
356 | if ( ::waitpid( proc->pid, &status, WNOHANG ) == proc->pid ) { | 360 | if ( ::waitpid( proc->pid, &status, WNOHANG ) == proc->pid ) { |
357 | #if defined(QT_QPROCESS_DEBUG) | 361 | #if defined(QT_QPROCESS_DEBUG) |
358 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess not available)" << oendl; | 362 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess not available)" << oendl; |
359 | #endif | 363 | #endif |
360 | removeProc = TRUE; | 364 | removeProc = TRUE; |
361 | } | 365 | } |
362 | } | 366 | } |
363 | if ( removeProc ) { | 367 | if ( removeProc ) { |
364 | QProc *oldproc = proc; | 368 | QProc *oldproc = proc; |
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp index 921b790..c45265a 100644 --- a/core/launcher/server.cpp +++ b/core/launcher/server.cpp | |||
@@ -322,106 +322,114 @@ bool Server::setKeyboardLayout( const QString &kb ) | |||
322 | QWSServer::setOverrideKeys( om ); | 322 | QWSServer::setOverrideKeys( om ); |
323 | 323 | ||
324 | return TRUE; | 324 | return TRUE; |
325 | } | 325 | } |
326 | #endif | 326 | #endif |
327 | 327 | ||
328 | void Server::systemMsg(const QCString &msg, const QByteArray &data) | 328 | void Server::systemMsg(const QCString &msg, const QByteArray &data) |
329 | { | 329 | { |
330 | QDataStream stream( data, IO_ReadOnly ); | 330 | QDataStream stream( data, IO_ReadOnly ); |
331 | 331 | ||
332 | if ( msg == "securityChanged()" ) { | 332 | if ( msg == "securityChanged()" ) { |
333 | if ( transferServer ) | 333 | if ( transferServer ) |
334 | transferServer->authorizeConnections(); | 334 | transferServer->authorizeConnections(); |
335 | 335 | ||
336 | if ( qcopBridge ) | 336 | if ( qcopBridge ) |
337 | qcopBridge->authorizeConnections(); | 337 | qcopBridge->authorizeConnections(); |
338 | #warning FIXME support TempScreenSaverMode | 338 | #warning FIXME support TempScreenSaverMode |
339 | #if 0 | 339 | #if 0 |
340 | } else if ( msg == "setTempScreenSaverMode(int,int)" ) { | 340 | } else if ( msg == "setTempScreenSaverMode(int,int)" ) { |
341 | int mode, pid; | 341 | int mode, pid; |
342 | stream >> mode >> pid; | 342 | stream >> mode >> pid; |
343 | tsmMonitor->setTempMode(mode, pid); | 343 | tsmMonitor->setTempMode(mode, pid); |
344 | #endif | 344 | #endif |
345 | } else if ( msg == "linkChanged(QString)" ) { | 345 | } else if ( msg == "linkChanged(QString)" ) { |
346 | QString link; | 346 | QString link; |
347 | stream >> link; | 347 | stream >> link; |
348 | odebug << "desktop.cpp systemMsg -> linkchanged( " << link << " )" << oendl; | 348 | odebug << "desktop.cpp systemMsg -> linkchanged( " << link << " )" << oendl; |
349 | docList->linkChanged(link); | 349 | docList->linkChanged(link); |
350 | } else if (msg =="reforceDocuments()") { | 350 | } else if (msg =="reforceDocuments()") { |
351 | docList->reforceDocuments(); | 351 | docList->reforceDocuments(); |
352 | } else if ( msg == "serviceChanged(QString)" ) { | 352 | } else if ( msg == "serviceChanged(QString)" ) { |
353 | MimeType::updateApplications(); | 353 | MimeType::updateApplications(); |
354 | } else if ( msg == "mkdir(QString)" ) { | 354 | } else if ( msg == "mkdir(QString)" ) { |
355 | QString dir; | 355 | QString dir; |
356 | stream >> dir; | 356 | stream >> dir; |
357 | if ( !dir.isEmpty() ) | 357 | if ( !dir.isEmpty() ) |
358 | mkdir( dir ); | 358 | mkdir( dir ); |
359 | } else if ( msg == "rdiffGenSig(QString,QString)" ) { | 359 | } else if ( msg == "rdiffGenSig(QString,QString)" ) { |
360 | QString baseFile, sigFile; | 360 | QString baseFile, sigFile; |
361 | stream >> baseFile >> sigFile; | 361 | stream >> baseFile >> sigFile; |
362 | QRsync::generateSignature( baseFile, sigFile ); | 362 | QRsync::generateSignature( baseFile, sigFile ); |
363 | } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { | 363 | } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { |
364 | QString baseFile, sigFile, deltaFile; | 364 | QString baseFile, sigFile, deltaFile; |
365 | stream >> baseFile >> sigFile >> deltaFile; | 365 | stream >> baseFile >> sigFile >> deltaFile; |
366 | QRsync::generateDiff( baseFile, sigFile, deltaFile ); | 366 | QRsync::generateDiff( baseFile, sigFile, deltaFile ); |
367 | } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { | 367 | } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { |
368 | QString baseFile, deltaFile; | 368 | QString baseFile, deltaFile; |
369 | stream >> baseFile >> deltaFile; | 369 | stream >> baseFile >> deltaFile; |
370 | bool fileWasCreated = false; | ||
370 | if ( !QFile::exists( baseFile ) ) { | 371 | if ( !QFile::exists( baseFile ) ) { |
371 | QFile f( baseFile ); | 372 | QFile f( baseFile ); |
372 | f.open( IO_WriteOnly ); | 373 | fileWasCreated = f.open( IO_WriteOnly ); |
373 | f.close(); | 374 | f.close(); |
374 | } | 375 | } |
375 | QRsync::applyDiff( baseFile, deltaFile ); | 376 | if ( fileWasCreated ) { |
377 | QRsync::applyDiff( baseFile, deltaFile ); | ||
376 | #ifndef QT_NO_COP | 378 | #ifndef QT_NO_COP |
377 | QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); | 379 | QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); |
378 | e << baseFile; | 380 | e << baseFile; |
379 | #endif | 381 | #endif |
382 | } else { | ||
383 | #ifndef QT_NO_COP | ||
384 | QCopEnvelope e( "QPE/Desktop", "patchUnapplied(QString)" ); | ||
385 | e << baseFile; | ||
386 | #endif | ||
387 | } | ||
380 | } else if ( msg == "rdiffCleanup()" ) { | 388 | } else if ( msg == "rdiffCleanup()" ) { |
381 | mkdir( "/tmp/rdiff" ); | 389 | mkdir( "/tmp/rdiff" ); |
382 | QDir dir; | 390 | QDir dir; |
383 | dir.setPath( "/tmp/rdiff" ); | 391 | dir.setPath( "/tmp/rdiff" ); |
384 | QStringList entries = dir.entryList(); | 392 | QStringList entries = dir.entryList(); |
385 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) | 393 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) |
386 | dir.remove( *it ); | 394 | dir.remove( *it ); |
387 | } else if ( msg == "sendHandshakeInfo()" ) { | 395 | } else if ( msg == "sendHandshakeInfo()" ) { |
388 | QString home = getenv( "HOME" ); | 396 | QString home = getenv( "HOME" ); |
389 | #ifndef QT_NO_COP | 397 | #ifndef QT_NO_COP |
390 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); | 398 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); |
391 | e << home; | 399 | e << home; |
392 | int locked = (int) ServerApplication::screenLocked(); | 400 | int locked = (int) ServerApplication::screenLocked(); |
393 | e << locked; | 401 | e << locked; |
394 | #endif | 402 | #endif |
395 | } else if ( msg == "sendVersionInfo()" ) { | 403 | } else if ( msg == "sendVersionInfo()" ) { |
396 | /* | 404 | /* |
397 | * @&$*! Qtopiadesktop relies on the major number | 405 | * @&$*! Qtopiadesktop relies on the major number |
398 | * to start with 1. (or 2 as the case of version 2.1 will be) | 406 | * to start with 1. (or 2 as the case of version 2.1 will be) |
399 | * we need to fake 1.7 to be able | 407 | * we need to fake 1.7 to be able |
400 | * to sync with Qtopiadesktop 1.7. | 408 | * to sync with Qtopiadesktop 1.7. |
401 | * We'll send it Opie's version in the platform string for now, | 409 | * We'll send it Opie's version in the platform string for now, |
402 | * until such time when QD gets rewritten correctly. | 410 | * until such time when QD gets rewritten correctly. |
403 | */ | 411 | */ |
404 | QCopEnvelope e( "QPE/Desktop", "versionInfo(QString,QString)" ); | 412 | QCopEnvelope e( "QPE/Desktop", "versionInfo(QString,QString)" ); |
405 | 413 | ||
406 | QString opiename = "Opie "+QString(QPE_VERSION); | 414 | QString opiename = "Opie "+QString(QPE_VERSION); |
407 | QString QDVersion="1.7"; | 415 | QString QDVersion="1.7"; |
408 | e << QDVersion << opiename; | 416 | e << QDVersion << opiename; |
409 | 417 | ||
410 | } else if ( msg == "sendCardInfo()" ) { | 418 | } else if ( msg == "sendCardInfo()" ) { |
411 | #ifndef QT_NO_COP | 419 | #ifndef QT_NO_COP |
412 | QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); | 420 | QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); |
413 | #endif | 421 | #endif |
414 | storage->update(); | 422 | storage->update(); |
415 | const QList<FileSystem> &fs = storage->fileSystems(); | 423 | const QList<FileSystem> &fs = storage->fileSystems(); |
416 | QListIterator<FileSystem> it ( fs ); | 424 | QListIterator<FileSystem> it ( fs ); |
417 | QString s; | 425 | QString s; |
418 | QString homeDir = getenv("HOME"); | 426 | QString homeDir = getenv("HOME"); |
419 | QString homeFs, homeFsPath; | 427 | QString homeFs, homeFsPath; |
420 | for ( ; it.current(); ++it ) { | 428 | for ( ; it.current(); ++it ) { |
421 | int k4 = (*it)->blockSize()/256; | 429 | int k4 = (*it)->blockSize()/256; |
422 | if ( (*it)->isRemovable() ) { | 430 | if ( (*it)->isRemovable() ) { |
423 | s += (*it)->name() + "=" + (*it)->path() + "/Documents " // No tr | 431 | s += (*it)->name() + "=" + (*it)->path() + "/Documents " // No tr |
424 | + QString::number( (*it)->availBlocks() * k4/4 ) | 432 | + QString::number( (*it)->availBlocks() * k4/4 ) |
425 | + "K " + (*it)->options() + ";"; | 433 | + "K " + (*it)->options() + ";"; |
426 | } else if ( homeDir.contains( (*it)->path() ) && | 434 | } else if ( homeDir.contains( (*it)->path() ) && |
427 | (*it)->path().length() > homeFsPath.length() ) { | 435 | (*it)->path().length() > homeFsPath.length() ) { |
@@ -953,54 +961,55 @@ void Server::postDirectAccess() | |||
953 | // Get rid of the dialog | 961 | // Get rid of the dialog |
954 | if ( syncDialog ) { | 962 | if ( syncDialog ) { |
955 | delete syncDialog; | 963 | delete syncDialog; |
956 | syncDialog = 0; | 964 | syncDialog = 0; |
957 | } | 965 | } |
958 | #warning FIXME support TempScreenSaverMode | 966 | #warning FIXME support TempScreenSaverMode |
959 | #if 0 | 967 | #if 0 |
960 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); | 968 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); |
961 | #endif | 969 | #endif |
962 | } else { | 970 | } else { |
963 | qrr = new QueuedRequestRunner( file, syncDialog ); | 971 | qrr = new QueuedRequestRunner( file, syncDialog ); |
964 | connect( qrr, SIGNAL(finished()), | 972 | connect( qrr, SIGNAL(finished()), |
965 | this, SLOT(finishedQueuedRequests()) ); | 973 | this, SLOT(finishedQueuedRequests()) ); |
966 | QTimer::singleShot( 100, qrr, SLOT(process()) ); | 974 | QTimer::singleShot( 100, qrr, SLOT(process()) ); |
967 | // qrr will remove the sync dialog later | 975 | // qrr will remove the sync dialog later |
968 | } | 976 | } |
969 | #endif | 977 | #endif |
970 | } | 978 | } |
971 | 979 | ||
972 | void Server::finishedQueuedRequests() | 980 | void Server::finishedQueuedRequests() |
973 | { | 981 | { |
974 | if ( qrr->readyToDelete ) { | 982 | if ( qrr->readyToDelete ) { |
975 | delete qrr; | 983 | delete qrr; |
976 | qrr = 0; | 984 | qrr = 0; |
977 | // Get rid of the dialog | 985 | // Get rid of the dialog |
978 | if ( syncDialog ) { | 986 | if ( syncDialog ) { |
979 | delete syncDialog; | 987 | delete syncDialog; |
980 | syncDialog = 0; | 988 | syncDialog = 0; |
981 | } | 989 | } |
982 | #warning FIXME support TempScreenSaverMode | 990 | #warning FIXME support TempScreenSaverMode |
983 | #if 0 | 991 | #if 0 |
984 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); | 992 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); |
985 | #endif | 993 | #endif |
986 | } else { | 994 | } else { |
987 | qrr->readyToDelete = TRUE; | 995 | qrr->readyToDelete = TRUE; |
988 | QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) ); | 996 | QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) ); |
989 | } | 997 | } |
990 | } | 998 | } |
991 | 999 | ||
992 | void Server::startSoundServer() { | 1000 | void Server::startSoundServer() { |
993 | if ( !process ) { | 1001 | if ( !process ) { |
994 | process = new Opie::Core::OProcess( this ); | 1002 | process = new Opie::Core::OProcess( this ); |
995 | connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), | 1003 | connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), |
996 | SLOT(soundServerExited())); | 1004 | SLOT(soundServerExited())); |
997 | } | 1005 | } |
998 | 1006 | ||
999 | process->clearArguments(); | 1007 | process->clearArguments(); |
1000 | *process << QPEApplication::qpeDir() + "bin/qss"; | 1008 | *process << QPEApplication::qpeDir() + "bin/qss"; |
1001 | process->start(); | 1009 | if (!process->start()) |
1010 | owarn << "Sound server process did not start" << oendl; | ||
1002 | } | 1011 | } |
1003 | 1012 | ||
1004 | void Server::soundServerExited() { | 1013 | void Server::soundServerExited() { |
1005 | QTimer::singleShot(5000, this, SLOT(startSoundServer())); | 1014 | QTimer::singleShot(5000, this, SLOT(startSoundServer())); |
1006 | } | 1015 | } |
diff --git a/core/settings/launcher/menusettings.cpp b/core/settings/launcher/menusettings.cpp index 29ce841..d63b203 100644 --- a/core/settings/launcher/menusettings.cpp +++ b/core/settings/launcher/menusettings.cpp | |||
@@ -1,145 +1,148 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> | 3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> |
4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include "menusettings.h" | 29 | #include "menusettings.h" |
30 | 30 | ||
31 | #include <qpe/config.h> | 31 | #include <qpe/config.h> |
32 | #include <qpe/qlibrary.h> | 32 | #include <qpe/qlibrary.h> |
33 | #include <qpe/qpeapplication.h> | 33 | #include <qpe/qpeapplication.h> |
34 | #include <qpe/menuappletinterface.h> | 34 | #include <qpe/menuappletinterface.h> |
35 | #include <qpe/qcopenvelope_qws.h> | 35 | #include <qpe/qcopenvelope_qws.h> |
36 | #include <opie2/odebug.h> | ||
36 | 37 | ||
37 | #include <qdir.h> | 38 | #include <qdir.h> |
38 | #include <qlistview.h> | 39 | #include <qlistview.h> |
39 | #include <qcheckbox.h> | 40 | #include <qcheckbox.h> |
40 | #include <qheader.h> | 41 | #include <qheader.h> |
41 | #include <qlayout.h> | 42 | #include <qlayout.h> |
42 | #include <qlabel.h> | 43 | #include <qlabel.h> |
43 | #include <qwhatsthis.h> | 44 | #include <qwhatsthis.h> |
44 | 45 | ||
45 | #include <stdlib.h> | 46 | #include <stdlib.h> |
46 | 47 | ||
47 | 48 | ||
48 | MenuSettings::MenuSettings ( QWidget *parent, const char *name ) | 49 | MenuSettings::MenuSettings ( QWidget *parent, const char *name ) |
49 | : QWidget ( parent, name ) | 50 | : QWidget ( parent, name ) |
50 | { | 51 | { |
51 | m_applets_changed = false; | 52 | m_applets_changed = false; |
52 | 53 | ||
53 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); | 54 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); |
54 | 55 | ||
55 | QLabel *l = new QLabel ( tr( "Load applets in O-Menu:" ), this ); | 56 | QLabel *l = new QLabel ( tr( "Load applets in O-Menu:" ), this ); |
56 | lay-> addWidget ( l ); | 57 | lay-> addWidget ( l ); |
57 | 58 | ||
58 | m_list = new QListView ( this ); | 59 | m_list = new QListView ( this ); |
59 | m_list-> addColumn ( "foobar" ); | 60 | m_list-> addColumn ( "foobar" ); |
60 | m_list-> header ( )-> hide ( ); | 61 | m_list-> header ( )-> hide ( ); |
61 | 62 | ||
62 | lay-> addWidget ( m_list ); | 63 | lay-> addWidget ( m_list ); |
63 | 64 | ||
64 | m_menutabs = new QCheckBox ( tr( "Show Launcher tabs in O-Menu" ), this ); | 65 | m_menutabs = new QCheckBox ( tr( "Show Launcher tabs in O-Menu" ), this ); |
65 | lay-> addWidget ( m_menutabs ); | 66 | lay-> addWidget ( m_menutabs ); |
66 | 67 | ||
67 | m_menusubpopup = new QCheckBox ( tr( "Show Applications in Subpopups" ), this ); | 68 | m_menusubpopup = new QCheckBox ( tr( "Show Applications in Subpopups" ), this ); |
68 | lay-> addWidget ( m_menusubpopup ); | 69 | lay-> addWidget ( m_menusubpopup ); |
69 | 70 | ||
70 | QWhatsThis::add ( m_list, tr( "Check the applets that you want to have included in the O-Menu." )); | 71 | QWhatsThis::add ( m_list, tr( "Check the applets that you want to have included in the O-Menu." )); |
71 | QWhatsThis::add ( m_menutabs, tr( "Adds the contents of the Launcher Tabs as menus in the O-Menu." )); | 72 | QWhatsThis::add ( m_menutabs, tr( "Adds the contents of the Launcher Tabs as menus in the O-Menu." )); |
72 | 73 | ||
73 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); | 74 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); |
74 | 75 | ||
75 | init ( ); | 76 | init ( ); |
76 | } | 77 | } |
77 | 78 | ||
78 | void MenuSettings::init ( ) | 79 | void MenuSettings::init ( ) |
79 | { | 80 | { |
80 | Config cfg ( "StartMenu" ); | 81 | Config cfg ( "StartMenu" ); |
81 | cfg. setGroup ( "Applets" ); | 82 | cfg. setGroup ( "Applets" ); |
82 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); | 83 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); |
83 | 84 | ||
84 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; | 85 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; |
85 | #ifdef Q_OS_MACX | 86 | #ifdef Q_OS_MACX |
86 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); | 87 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); |
87 | #else | 88 | #else |
88 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); | 89 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); |
89 | #endif /* Q_OS_MACX */ | 90 | #endif /* Q_OS_MACX */ |
90 | 91 | ||
91 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { | 92 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { |
92 | QString name; | 93 | QString name; |
93 | QPixmap icon; | 94 | QPixmap icon; |
94 | MenuAppletInterface *iface = 0; | 95 | MenuAppletInterface *iface = 0; |
95 | 96 | ||
96 | QLibrary *lib = new QLibrary ( path + "/" + *it ); | 97 | QLibrary *lib = new QLibrary ( path + "/" + *it ); |
97 | lib-> queryInterface ( IID_MenuApplet, (QUnknownInterface**) &iface ); | 98 | QRESULT retVal = QS_OK; |
99 | if ((retVal = lib-> queryInterface ( IID_MenuApplet, (QUnknownInterface**)(&iface) )) != QS_OK ) | ||
100 | owarn << "queryInterface failed with " << retVal << oendl; | ||
98 | if ( iface ) { | 101 | if ( iface ) { |
99 | QString lang = getenv( "LANG" ); | 102 | QString lang = getenv( "LANG" ); |
100 | QTranslator *trans = new QTranslator ( qApp ); | 103 | QTranslator *trans = new QTranslator ( qApp ); |
101 | QString type = (*it). left ((*it). find (".")); | 104 | QString type = (*it). left ((*it). find (".")); |
102 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; | 105 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; |
103 | if ( trans-> load ( tfn )) | 106 | if ( trans-> load ( tfn )) |
104 | qApp-> installTranslator ( trans ); | 107 | qApp-> installTranslator ( trans ); |
105 | else | 108 | else |
106 | delete trans; | 109 | delete trans; |
107 | name = iface-> name ( ); | 110 | name = iface-> name ( ); |
108 | icon = iface-> icon ( ). pixmap (); | 111 | icon = iface-> icon ( ). pixmap (); |
109 | iface-> release ( ); | 112 | iface-> release ( ); |
110 | lib-> unload ( ); | 113 | lib-> unload ( ); |
111 | 114 | ||
112 | QCheckListItem *item; | 115 | QCheckListItem *item; |
113 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); | 116 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); |
114 | if ( !icon. isNull ( )) | 117 | if ( !icon. isNull ( )) |
115 | item-> setPixmap ( 0, icon ); | 118 | item-> setPixmap ( 0, icon ); |
116 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); | 119 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); |
117 | m_applets [*it] = item; | 120 | m_applets [*it] = item; |
118 | } else { | 121 | } else { |
119 | delete lib; | 122 | delete lib; |
120 | } | 123 | } |
121 | } | 124 | } |
122 | 125 | ||
123 | cfg. setGroup ( "Menu" ); | 126 | cfg. setGroup ( "Menu" ); |
124 | m_menutabs->setChecked( cfg.readBoolEntry( "LauncherTabs", true ) ); | 127 | m_menutabs->setChecked( cfg.readBoolEntry( "LauncherTabs", true ) ); |
125 | m_menusubpopup->setChecked( cfg.readBoolEntry( "LauncherSubPopup", true ) ); | 128 | m_menusubpopup->setChecked( cfg.readBoolEntry( "LauncherSubPopup", true ) ); |
126 | m_menusubpopup->setEnabled( m_menutabs->isChecked() ); | 129 | m_menusubpopup->setEnabled( m_menutabs->isChecked() ); |
127 | connect( m_menutabs, SIGNAL( stateChanged(int) ), m_menusubpopup, SLOT( setEnabled(bool) ) ); | 130 | connect( m_menutabs, SIGNAL( stateChanged(int) ), m_menusubpopup, SLOT( setEnabled(bool) ) ); |
128 | 131 | ||
129 | } | 132 | } |
130 | 133 | ||
131 | void MenuSettings::appletChanged() | 134 | void MenuSettings::appletChanged() |
132 | { | 135 | { |
133 | m_applets_changed = true; | 136 | m_applets_changed = true; |
134 | } | 137 | } |
135 | 138 | ||
136 | void MenuSettings::accept ( ) | 139 | void MenuSettings::accept ( ) |
137 | { | 140 | { |
138 | bool apps_changed = false; | 141 | bool apps_changed = false; |
139 | 142 | ||
140 | Config cfg ( "StartMenu" ); | 143 | Config cfg ( "StartMenu" ); |
141 | cfg. setGroup ( "Applets" ); | 144 | cfg. setGroup ( "Applets" ); |
142 | if ( m_applets_changed ) { | 145 | if ( m_applets_changed ) { |
143 | QStringList exclude; | 146 | QStringList exclude; |
144 | QMap <QString, QCheckListItem *>::Iterator it; | 147 | QMap <QString, QCheckListItem *>::Iterator it; |
145 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { | 148 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { |
diff --git a/core/settings/launcher/taskbarsettings.cpp b/core/settings/launcher/taskbarsettings.cpp index 861ff3a..c2b82b9 100644 --- a/core/settings/launcher/taskbarsettings.cpp +++ b/core/settings/launcher/taskbarsettings.cpp | |||
@@ -46,131 +46,134 @@ | |||
46 | 46 | ||
47 | /* STD */ | 47 | /* STD */ |
48 | #include <stdlib.h> | 48 | #include <stdlib.h> |
49 | 49 | ||
50 | 50 | ||
51 | TaskbarSettings::TaskbarSettings ( QWidget *parent, const char *name ) | 51 | TaskbarSettings::TaskbarSettings ( QWidget *parent, const char *name ) |
52 | : QWidget ( parent, name ) | 52 | : QWidget ( parent, name ) |
53 | { | 53 | { |
54 | m_applets_changed = false; | 54 | m_applets_changed = false; |
55 | 55 | ||
56 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); | 56 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); |
57 | 57 | ||
58 | QLabel *l = new QLabel ( tr( "Load applets in Taskbar:" ), this ); | 58 | QLabel *l = new QLabel ( tr( "Load applets in Taskbar:" ), this ); |
59 | lay-> addWidget ( l ); | 59 | lay-> addWidget ( l ); |
60 | 60 | ||
61 | m_list = new QListView ( this ); | 61 | m_list = new QListView ( this ); |
62 | m_list-> addColumn ( "foobar" ); | 62 | m_list-> addColumn ( "foobar" ); |
63 | m_list-> header ( )-> hide ( ); | 63 | m_list-> header ( )-> hide ( ); |
64 | 64 | ||
65 | lay-> addWidget ( m_list ); | 65 | lay-> addWidget ( m_list ); |
66 | 66 | ||
67 | QWhatsThis::add ( m_list, tr( "Check the applets that you want displayed in the Taskbar." )); | 67 | QWhatsThis::add ( m_list, tr( "Check the applets that you want displayed in the Taskbar." )); |
68 | 68 | ||
69 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); | 69 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); |
70 | 70 | ||
71 | init ( ); | 71 | init ( ); |
72 | } | 72 | } |
73 | 73 | ||
74 | void TaskbarSettings::init ( ) | 74 | void TaskbarSettings::init ( ) |
75 | { | 75 | { |
76 | Config cfg ( "Taskbar" ); | 76 | Config cfg ( "Taskbar" ); |
77 | cfg. setGroup ( "Applets" ); | 77 | cfg. setGroup ( "Applets" ); |
78 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); | 78 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); |
79 | 79 | ||
80 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; | 80 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; |
81 | #ifdef Q_OS_MACX | 81 | #ifdef Q_OS_MACX |
82 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); | 82 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); |
83 | #else | 83 | #else |
84 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); | 84 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); |
85 | #endif /* Q_OS_MACX */ | 85 | #endif /* Q_OS_MACX */ |
86 | 86 | ||
87 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { | 87 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { |
88 | QString name; | 88 | QString name; |
89 | QPixmap icon; | 89 | QPixmap icon; |
90 | TaskbarNamedAppletInterface *iface = 0; | 90 | TaskbarNamedAppletInterface *iface = 0; |
91 | 91 | ||
92 | owarn << "Load applet: " << (*it) << "" << oendl; | 92 | owarn << "Load applet: " << (*it) << "" << oendl; |
93 | QLibrary *lib = new QLibrary ( path + "/" + *it ); | 93 | QLibrary *lib = new QLibrary ( path + "/" + *it ); |
94 | lib-> queryInterface ( IID_TaskbarNamedApplet, (QUnknownInterface**) &iface ); | 94 | QRESULT retVal = QS_OK; |
95 | if ((retVal = lib-> queryInterface ( IID_TaskbarNamedApplet, (QUnknownInterface**)(&iface) )) != QS_OK) | ||
96 | owarn << "<0>" << oendl; | ||
95 | owarn << "<1>" << oendl; | 97 | owarn << "<1>" << oendl; |
96 | if ( iface ) { | 98 | if ( iface ) { |
97 | owarn << "<2>" << oendl; | 99 | owarn << "<2>" << oendl; |
98 | QString lang = getenv( "LANG" ); | 100 | QString lang = getenv( "LANG" ); |
99 | QTranslator *trans = new QTranslator ( qApp ); | 101 | QTranslator *trans = new QTranslator ( qApp ); |
100 | QString type = (*it). left ((*it). find (".")); | 102 | QString type = (*it). left ((*it). find (".")); |
101 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; | 103 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; |
102 | if ( trans-> load ( tfn )) | 104 | if ( trans-> load ( tfn )) |
103 | qApp-> installTranslator ( trans ); | 105 | qApp-> installTranslator ( trans ); |
104 | else | 106 | else |
105 | delete trans; | 107 | delete trans; |
106 | name = iface-> name ( ); | 108 | name = iface-> name ( ); |
107 | icon = iface-> icon ( ); | 109 | icon = iface-> icon ( ); |
108 | iface-> release ( ); | 110 | iface-> release ( ); |
109 | } | 111 | } |
110 | owarn << "<3>" << oendl; | 112 | owarn << "<3>" << oendl; |
111 | if ( !iface ) { | 113 | if ( !iface ) { |
112 | owarn << "<4>" << oendl; | 114 | owarn << "<4>" << oendl; |
113 | lib-> queryInterface ( IID_TaskbarApplet, (QUnknownInterface**) &iface ); | 115 | if ((retVal = lib-> queryInterface ( IID_TaskbarApplet, (QUnknownInterface**)(&iface))) != QS_OK) |
116 | owarn << "<5>" << oendl; | ||
114 | 117 | ||
115 | if ( iface ) { | 118 | if ( iface ) { |
116 | owarn << "<5>" << oendl; | 119 | owarn << "<6>" << oendl; |
117 | name = (*it). mid ( 3 ); | 120 | name = (*it). mid ( 3 ); |
118 | owarn << "Found applet: " << name << "" << oendl; | 121 | owarn << "Found applet: " << name << "" << oendl; |
119 | #ifdef Q_OS_MACX | 122 | #ifdef Q_OS_MACX |
120 | int sep = name. find( ".dylib" ); | 123 | int sep = name. find( ".dylib" ); |
121 | #else | 124 | #else |
122 | int sep = name. find( ".so" ); | 125 | int sep = name. find( ".so" ); |
123 | #endif /* Q_OS_MACX */ | 126 | #endif /* Q_OS_MACX */ |
124 | if ( sep > 0 ) | 127 | if ( sep > 0 ) |
125 | name. truncate ( sep ); | 128 | name. truncate ( sep ); |
126 | sep = name. find ( "applet" ); | 129 | sep = name. find ( "applet" ); |
127 | if ( sep == (int) name.length ( ) - 6 ) | 130 | if ( sep == (int) name.length ( ) - 6 ) |
128 | name. truncate ( sep ); | 131 | name. truncate ( sep ); |
129 | name[0] = name[0]. upper ( ); | 132 | name[0] = name[0]. upper ( ); |
130 | iface-> release ( ); | 133 | iface-> release ( ); |
131 | } | 134 | } |
132 | } | 135 | } |
133 | owarn << "<6>" << oendl; | 136 | owarn << "<7>" << oendl; |
134 | 137 | ||
135 | if ( iface ) { | 138 | if ( iface ) { |
136 | owarn << "<7>" << oendl; | 139 | owarn << "<8>" << oendl; |
137 | QCheckListItem *item; | 140 | QCheckListItem *item; |
138 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); | 141 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); |
139 | if ( !icon. isNull ( )) | 142 | if ( !icon. isNull ( )) |
140 | item-> setPixmap ( 0, icon ); | 143 | item-> setPixmap ( 0, icon ); |
141 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); | 144 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); |
142 | m_applets [*it] = item; | 145 | m_applets [*it] = item; |
143 | } | 146 | } |
144 | lib-> unload ( ); | 147 | lib-> unload ( ); |
145 | delete lib; | 148 | delete lib; |
146 | } | 149 | } |
147 | } | 150 | } |
148 | 151 | ||
149 | void TaskbarSettings::appletChanged() | 152 | void TaskbarSettings::appletChanged() |
150 | { | 153 | { |
151 | m_applets_changed = true; | 154 | m_applets_changed = true; |
152 | } | 155 | } |
153 | 156 | ||
154 | void TaskbarSettings::accept ( ) | 157 | void TaskbarSettings::accept ( ) |
155 | { | 158 | { |
156 | Config cfg ( "Taskbar" ); | 159 | Config cfg ( "Taskbar" ); |
157 | cfg. setGroup ( "Applets" ); | 160 | cfg. setGroup ( "Applets" ); |
158 | 161 | ||
159 | if ( m_applets_changed ) { | 162 | if ( m_applets_changed ) { |
160 | QStringList exclude; | 163 | QStringList exclude; |
161 | QMap <QString, QCheckListItem *>::Iterator it; | 164 | QMap <QString, QCheckListItem *>::Iterator it; |
162 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { | 165 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { |
163 | if ( !(*it)-> isOn ( )) | 166 | if ( !(*it)-> isOn ( )) |
164 | exclude << it. key ( ); | 167 | exclude << it. key ( ); |
165 | } | 168 | } |
166 | cfg. writeEntry ( "ExcludeApplets", exclude, ',' ); | 169 | cfg. writeEntry ( "ExcludeApplets", exclude, ',' ); |
167 | } | 170 | } |
168 | cfg. writeEntry ( "SafeMode", false ); | 171 | cfg. writeEntry ( "SafeMode", false ); |
169 | cfg. write ( ); | 172 | cfg. write ( ); |
170 | 173 | ||
171 | if ( m_applets_changed ) { | 174 | if ( m_applets_changed ) { |
172 | QCopEnvelope e ( "QPE/TaskBar", "reloadApplets()" ); | 175 | QCopEnvelope e ( "QPE/TaskBar", "reloadApplets()" ); |
173 | m_applets_changed = false; | 176 | m_applets_changed = false; |
174 | } | 177 | } |
175 | } | 178 | } |
176 | 179 | ||