author | erik <erik> | 2007-01-19 01:18:01 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-19 01:18:01 (UTC) |
commit | 32343107b30904806d02672955c57ed53d39fe79 (patch) (unidiff) | |
tree | 9114a0ea170e3adc807a2445b49360f1bfde9626 | |
parent | ac0ce844e90a64247c0adb210e0a23021b011d57 (diff) | |
download | opie-32343107b30904806d02672955c57ed53d39fe79.zip opie-32343107b30904806d02672955c57ed53d39fe79.tar.gz opie-32343107b30904806d02672955c57ed53d39fe79.tar.bz2 |
Every file in this commit has a change to check the return value of a call.
-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 | ||||
-rw-r--r-- | libopie2/opiecore/oglobal.cpp | 2 | ||||
-rw-r--r-- | libopie2/opiecore/oprocess.cpp | 2 | ||||
-rw-r--r-- | library/global.cpp | 63 | ||||
-rw-r--r-- | noncore/apps/advancedfm/output.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/tinykate/libkate/document/katebuffer.cpp | 5 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 9 |
11 files changed, 94 insertions, 68 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 | ||
diff --git a/libopie2/opiecore/oglobal.cpp b/libopie2/opiecore/oglobal.cpp index 706ac6c..b7d59fc 100644 --- a/libopie2/opiecore/oglobal.cpp +++ b/libopie2/opiecore/oglobal.cpp | |||
@@ -299,97 +299,97 @@ QByteArray OGlobal::decodeBase64( const QByteArray& in) { | |||
299 | unsigned int sidx = 0, didx = 0; | 299 | unsigned int sidx = 0, didx = 0; |
300 | if ( len > 1 ) | 300 | if ( len > 1 ) |
301 | { | 301 | { |
302 | while (didx < len-2) | 302 | while (didx < len-2) |
303 | { | 303 | { |
304 | out[didx] = (((out[sidx] << 2) & 255) | ((out[sidx+1] >> 4) & 003)); | 304 | out[didx] = (((out[sidx] << 2) & 255) | ((out[sidx+1] >> 4) & 003)); |
305 | out[didx+1] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); | 305 | out[didx+1] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); |
306 | out[didx+2] = (((out[sidx+2] << 6) & 255) | (out[sidx+3] & 077)); | 306 | out[didx+2] = (((out[sidx+2] << 6) & 255) | (out[sidx+3] & 077)); |
307 | sidx += 4; | 307 | sidx += 4; |
308 | didx += 3; | 308 | didx += 3; |
309 | } | 309 | } |
310 | } | 310 | } |
311 | 311 | ||
312 | if (didx < len) | 312 | if (didx < len) |
313 | out[didx] = (((out[sidx] << 2) & 255) | ((out[sidx+1] >> 4) & 003)); | 313 | out[didx] = (((out[sidx] << 2) & 255) | ((out[sidx+1] >> 4) & 003)); |
314 | 314 | ||
315 | if (++didx < len ) | 315 | if (++didx < len ) |
316 | out[didx] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); | 316 | out[didx] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); |
317 | 317 | ||
318 | // Resize the output buffer | 318 | // Resize the output buffer |
319 | if ( len == 0 || len < out.size() ) | 319 | if ( len == 0 || len < out.size() ) |
320 | out.resize(len); | 320 | out.resize(len); |
321 | 321 | ||
322 | return out; | 322 | return out; |
323 | } | 323 | } |
324 | 324 | ||
325 | bool OGlobal::isAppLnkFileName( const QString& str ) | 325 | bool OGlobal::isAppLnkFileName( const QString& str ) |
326 | { | 326 | { |
327 | if (str.isEmpty()||str.at(str.length()-1)==QDir::separator()) return false; | 327 | if (str.isEmpty()||str.at(str.length()-1)==QDir::separator()) return false; |
328 | return str.startsWith(MimeType::appsFolderName()+QDir::separator()); | 328 | return str.startsWith(MimeType::appsFolderName()+QDir::separator()); |
329 | } | 329 | } |
330 | 330 | ||
331 | /* ToDo: | 331 | /* ToDo: |
332 | * This fun should check the document-path value for the mounted media | 332 | * This fun should check the document-path value for the mounted media |
333 | * which has to be implemented later. this moment we just check for a | 333 | * which has to be implemented later. this moment we just check for a |
334 | * mounted media name. | 334 | * mounted media name. |
335 | */ | 335 | */ |
336 | bool OGlobal::isDocumentFileName( const QString& file ) | 336 | bool OGlobal::isDocumentFileName( const QString& file ) |
337 | { | 337 | { |
338 | if (file.isEmpty()||file.at(file.length()-1)==QDir::separator()) return false; | 338 | if (file.isEmpty()||file.at(file.length()-1)==QDir::separator()) return false; |
339 | if (file.startsWith(QPEApplication::documentDir()+QDir::separator())) return true; | 339 | if (file.startsWith(QPEApplication::documentDir()+QDir::separator())) return true; |
340 | StorageInfo si; | 340 | StorageInfo si; |
341 | QList< FileSystem > fl = si.fileSystems(); | 341 | QList< FileSystem > fl = si.fileSystems(); |
342 | FileSystem*fs; | 342 | FileSystem*fs; |
343 | for (fs = fl.first();fs!=0;fs=fl.next()) { | 343 | for (fs = fl.first();fs!=0;fs=fl.next()) { |
344 | if (fs->isRemovable()&&file.startsWith(fs->name()+QDir::separator())) | 344 | if (fs->isRemovable()&&file.startsWith(fs->name()+QDir::separator())) |
345 | return true; | 345 | return true; |
346 | } | 346 | } |
347 | if (file.startsWith(homeDirPath())+"/Documents/") return true; | 347 | if (file.startsWith(homeDirPath()+"/Documents/")) return true; |
348 | return false; | 348 | return false; |
349 | } | 349 | } |
350 | 350 | ||
351 | QString OGlobal::tempDirPath() | 351 | QString OGlobal::tempDirPath() |
352 | { | 352 | { |
353 | static QString defstring="/tmp"; | 353 | static QString defstring="/tmp"; |
354 | char * tmpp = 0; | 354 | char * tmpp = 0; |
355 | if ( (tmpp=getenv("TEMP"))) { | 355 | if ( (tmpp=getenv("TEMP"))) { |
356 | return tmpp; | 356 | return tmpp; |
357 | } | 357 | } |
358 | return defstring; | 358 | return defstring; |
359 | } | 359 | } |
360 | 360 | ||
361 | QString OGlobal::homeDirPath() | 361 | QString OGlobal::homeDirPath() |
362 | { | 362 | { |
363 | char * tmpp = getenv("HOME"); | 363 | char * tmpp = getenv("HOME"); |
364 | return (tmpp?tmpp:"/"); | 364 | return (tmpp?tmpp:"/"); |
365 | } | 365 | } |
366 | 366 | ||
367 | bool OGlobal::weekStartsOnMonday() | 367 | bool OGlobal::weekStartsOnMonday() |
368 | { | 368 | { |
369 | OConfig*conf=OGlobal::qpe_config(); | 369 | OConfig*conf=OGlobal::qpe_config(); |
370 | if (!conf)return false; | 370 | if (!conf)return false; |
371 | conf->setGroup("Time"); | 371 | conf->setGroup("Time"); |
372 | return conf->readBoolEntry("MONDAY",true); | 372 | return conf->readBoolEntry("MONDAY",true); |
373 | } | 373 | } |
374 | 374 | ||
375 | void OGlobal::setWeekStartsOnMonday( bool what) | 375 | void OGlobal::setWeekStartsOnMonday( bool what) |
376 | { | 376 | { |
377 | OConfig*conf=OGlobal::qpe_config(); | 377 | OConfig*conf=OGlobal::qpe_config(); |
378 | if (!conf)return; | 378 | if (!conf)return; |
379 | conf->setGroup("Time"); | 379 | conf->setGroup("Time"); |
380 | return conf->writeEntry("MONDAY",what); | 380 | return conf->writeEntry("MONDAY",what); |
381 | } | 381 | } |
382 | 382 | ||
383 | bool OGlobal::useAMPM() | 383 | bool OGlobal::useAMPM() |
384 | { | 384 | { |
385 | OConfig*conf=OGlobal::qpe_config(); | 385 | OConfig*conf=OGlobal::qpe_config(); |
386 | if (!conf)return false; | 386 | if (!conf)return false; |
387 | conf->setGroup("Time"); | 387 | conf->setGroup("Time"); |
388 | return conf->readBoolEntry("AMPM",false); | 388 | return conf->readBoolEntry("AMPM",false); |
389 | } | 389 | } |
390 | 390 | ||
391 | void OGlobal::setUseAMPM( bool what) | 391 | void OGlobal::setUseAMPM( bool what) |
392 | { | 392 | { |
393 | OConfig*conf=OGlobal::qpe_config(); | 393 | OConfig*conf=OGlobal::qpe_config(); |
394 | if (!conf)return; | 394 | if (!conf)return; |
395 | conf->setGroup("Time"); | 395 | conf->setGroup("Time"); |
diff --git a/libopie2/opiecore/oprocess.cpp b/libopie2/opiecore/oprocess.cpp index b3f9724..56f9883 100644 --- a/libopie2/opiecore/oprocess.cpp +++ b/libopie2/opiecore/oprocess.cpp | |||
@@ -883,69 +883,69 @@ QCString OProcess::searchShell() | |||
883 | return tmpShell; | 883 | return tmpShell; |
884 | } | 884 | } |
885 | 885 | ||
886 | bool OProcess::isExecutable( const QCString &filename ) | 886 | bool OProcess::isExecutable( const QCString &filename ) |
887 | { | 887 | { |
888 | struct stat fileinfo; | 888 | struct stat fileinfo; |
889 | 889 | ||
890 | if ( filename.isEmpty() ) | 890 | if ( filename.isEmpty() ) |
891 | return false; | 891 | return false; |
892 | 892 | ||
893 | // CC: we've got a valid filename, now let's see whether we can execute that file | 893 | // CC: we've got a valid filename, now let's see whether we can execute that file |
894 | 894 | ||
895 | if ( -1 == stat( filename.data(), &fileinfo ) ) | 895 | if ( -1 == stat( filename.data(), &fileinfo ) ) |
896 | return false; | 896 | return false; |
897 | // CC: return false if the file does not exist | 897 | // CC: return false if the file does not exist |
898 | 898 | ||
899 | // CC: anyway, we cannot execute directories, block/character devices, fifos or sockets | 899 | // CC: anyway, we cannot execute directories, block/character devices, fifos or sockets |
900 | if ( ( S_ISDIR( fileinfo.st_mode ) ) || | 900 | if ( ( S_ISDIR( fileinfo.st_mode ) ) || |
901 | ( S_ISCHR( fileinfo.st_mode ) ) || | 901 | ( S_ISCHR( fileinfo.st_mode ) ) || |
902 | ( S_ISBLK( fileinfo.st_mode ) ) || | 902 | ( S_ISBLK( fileinfo.st_mode ) ) || |
903 | #ifdef S_ISSOCK | 903 | #ifdef S_ISSOCK |
904 | // CC: SYSVR4 systems don't have that macro | 904 | // CC: SYSVR4 systems don't have that macro |
905 | ( S_ISSOCK( fileinfo.st_mode ) ) || | 905 | ( S_ISSOCK( fileinfo.st_mode ) ) || |
906 | #endif | 906 | #endif |
907 | ( S_ISFIFO( fileinfo.st_mode ) ) || | 907 | ( S_ISFIFO( fileinfo.st_mode ) ) || |
908 | ( S_ISDIR( fileinfo.st_mode ) ) ) | 908 | ( S_ISDIR( fileinfo.st_mode ) ) ) |
909 | { | 909 | { |
910 | return false; | 910 | return false; |
911 | } | 911 | } |
912 | 912 | ||
913 | // CC: now check for permission to execute the file | 913 | // CC: now check for permission to execute the file |
914 | if ( access( filename.data(), X_OK ) != 0 ) | 914 | if ( access( filename.data(), X_OK ) != 0 ) |
915 | return false; | 915 | return false; |
916 | 916 | ||
917 | // CC: we've passed all the tests... | 917 | // CC: we've passed all the tests... |
918 | return true; | 918 | return true; |
919 | } | 919 | } |
920 | 920 | ||
921 | int OProcess::processPID( const QString& process ) | 921 | int OProcess::processPID( const QString& process ) |
922 | { | 922 | { |
923 | QString line; | 923 | QString line; |
924 | QDir d = QDir( "/proc" ); | 924 | QDir d = QDir( "/proc" ); |
925 | QStringList dirs = d.entryList( QDir::Dirs ); | 925 | QStringList dirs = d.entryList( QDir::Dirs ); |
926 | QStringList::Iterator it; | 926 | QStringList::Iterator it; |
927 | for ( it = dirs.begin(); it != dirs.end(); ++it ) | 927 | for ( it = dirs.begin(); it != dirs.end(); ++it ) |
928 | { | 928 | { |
929 | //qDebug( "next entry: %s", (const char*) *it ); | 929 | //qDebug( "next entry: %s", (const char*) *it ); |
930 | QFile file( "/proc/"+*it+"/cmdline" ); | 930 | QFile file( "/proc/"+*it+"/cmdline" ); |
931 | file.open( IO_ReadOnly ); | 931 | if ( !file.open( IO_ReadOnly ) ) continue; |
932 | if ( !file.isOpen() ) continue; | 932 | if ( !file.isOpen() ) continue; |
933 | QTextStream t( &file ); | 933 | QTextStream t( &file ); |
934 | line = t.readLine(); | 934 | line = t.readLine(); |
935 | //qDebug( "cmdline = %s", (const char*) line ); | 935 | //qDebug( "cmdline = %s", (const char*) line ); |
936 | if ( line.contains( process ) ) break; //FIXME: That may find also other process, if the name is not long enough ;) | 936 | if ( line.contains( process ) ) break; //FIXME: That may find also other process, if the name is not long enough ;) |
937 | } | 937 | } |
938 | if ( line.contains( process ) ) | 938 | if ( line.contains( process ) ) |
939 | { | 939 | { |
940 | //qDebug( "found process id #%d", (*it).toInt() ); | 940 | //qDebug( "found process id #%d", (*it).toInt() ); |
941 | return (*it).toInt(); | 941 | return (*it).toInt(); |
942 | } | 942 | } |
943 | else | 943 | else |
944 | { | 944 | { |
945 | //qDebug( "process '%s' not found", (const char*) process ); | 945 | //qDebug( "process '%s' not found", (const char*) process ); |
946 | return 0; | 946 | return 0; |
947 | } | 947 | } |
948 | } | 948 | } |
949 | 949 | ||
950 | } | 950 | } |
951 | } | 951 | } |
diff --git a/library/global.cpp b/library/global.cpp index f7a0767..7bdd0b1 100644 --- a/library/global.cpp +++ b/library/global.cpp | |||
@@ -171,129 +171,128 @@ static QString dictDir() | |||
171 | The execute() function runs an application. | 171 | The execute() function runs an application. |
172 | 172 | ||
173 | \section1 Word list related | 173 | \section1 Word list related |
174 | 174 | ||
175 | A list of words relevant to the current locale is maintained by the | 175 | A list of words relevant to the current locale is maintained by the |
176 | system. The list is held in a \link qdawg.html DAWG\endlink | 176 | system. The list is held in a \link qdawg.html DAWG\endlink |
177 | (implemented by the QDawg class). This list is used, for example, by | 177 | (implemented by the QDawg class). This list is used, for example, by |
178 | the pickboard input method. | 178 | the pickboard input method. |
179 | 179 | ||
180 | The global QDawg is returned by fixedDawg(); this cannot be updated. | 180 | The global QDawg is returned by fixedDawg(); this cannot be updated. |
181 | An updatable copy of the global QDawg is returned by addedDawg(). | 181 | An updatable copy of the global QDawg is returned by addedDawg(). |
182 | Applications may have their own word lists stored in \l{QDawg}s | 182 | Applications may have their own word lists stored in \l{QDawg}s |
183 | which are returned by dawg(). Use addWords() to add words to the | 183 | which are returned by dawg(). Use addWords() to add words to the |
184 | updateable copy of the global QDawg or to named application | 184 | updateable copy of the global QDawg or to named application |
185 | \l{QDawg}s. | 185 | \l{QDawg}s. |
186 | 186 | ||
187 | \section1 Quoting | 187 | \section1 Quoting |
188 | 188 | ||
189 | The shellQuote() function quotes a string suitable for passing to a | 189 | The shellQuote() function quotes a string suitable for passing to a |
190 | shell. The stringQuote() function backslash escapes '\' and '"' | 190 | shell. The stringQuote() function backslash escapes '\' and '"' |
191 | characters. | 191 | characters. |
192 | 192 | ||
193 | \section1 Hardware | 193 | \section1 Hardware |
194 | 194 | ||
195 | The implementation of the writeHWClock() function depends on the AlarmServer | 195 | The implementation of the writeHWClock() function depends on the AlarmServer |
196 | implementation. If the AlarmServer is using atd the clock will be synced to | 196 | implementation. If the AlarmServer is using atd the clock will be synced to |
197 | hardware. If opie-alarm is used the hardware clock will be synced before | 197 | hardware. If opie-alarm is used the hardware clock will be synced before |
198 | suspending the device. opie-alarm is used by iPAQ and Zaurii implementation | 198 | suspending the device. opie-alarm is used by iPAQ and Zaurii implementation |
199 | 199 | ||
200 | \ingroup qtopiaemb | 200 | \ingroup qtopiaemb |
201 | */ | 201 | */ |
202 | 202 | ||
203 | /*! | 203 | /*! |
204 | \internal | 204 | \internal |
205 | */ | 205 | */ |
206 | Global::Global() | 206 | Global::Global() |
207 | { | 207 | { |
208 | } | 208 | } |
209 | 209 | ||
210 | /*! | 210 | /*! |
211 | Returns the unchangeable QDawg that contains general | 211 | Returns the unchangeable QDawg that contains general |
212 | words for the current locale. | 212 | words for the current locale. |
213 | 213 | ||
214 | \sa addedDawg() | 214 | \sa addedDawg() |
215 | */ | 215 | */ |
216 | const QDawg& Global::fixedDawg() | 216 | const QDawg& Global::fixedDawg() |
217 | { | 217 | { |
218 | if ( !fixed_dawg ) { | 218 | if ( !fixed_dawg ) { |
219 | if ( !docDirCreated ) | 219 | if ( !docDirCreated ) |
220 | createDocDir(); | 220 | createDocDir(); |
221 | 221 | ||
222 | fixed_dawg = new QDawg; | 222 | fixed_dawg = new QDawg; |
223 | QString dawgfilename = dictDir() + "/dawg"; | 223 | QString dawgfilename = dictDir() + "/dawg"; |
224 | QString words_lang; | 224 | QString words_lang; |
225 | QStringList langs = Global::languageList(); | 225 | QStringList langs = Global::languageList(); |
226 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { | 226 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { |
227 | QString lang = *it; | 227 | QString lang = *it; |
228 | words_lang = dictDir() + "/words." + lang; | 228 | words_lang = dictDir() + "/words." + lang; |
229 | QString dawgfilename_lang = dawgfilename + "." + lang; | 229 | QString dawgfilename_lang = dawgfilename + "." + lang; |
230 | if ( QFile::exists(dawgfilename_lang) || | 230 | if ( QFile::exists(dawgfilename_lang) || |
231 | QFile::exists(words_lang) ) { | 231 | QFile::exists(words_lang) ) { |
232 | dawgfilename = dawgfilename_lang; | 232 | dawgfilename = dawgfilename_lang; |
233 | break; | 233 | break; |
234 | } | 234 | } |
235 | } | ||
236 | QFile dawgfile(dawgfilename); | ||
237 | |||
238 | if ( !dawgfile.exists() ) { | ||
239 | QString fn = dictDir() + "/words"; | ||
240 | if ( QFile::exists(words_lang) ) | ||
241 | fn = words_lang; | ||
242 | QFile in(fn); | ||
243 | if ( in.open(IO_ReadOnly) ) { | ||
244 | fixed_dawg->createFromWords(&in); | ||
245 | dawgfile.open(IO_WriteOnly); | ||
246 | fixed_dawg->write(&dawgfile); | ||
247 | dawgfile.close(); | ||
248 | } | 235 | } |
249 | } else { | 236 | QFile dawgfile(dawgfilename); |
250 | fixed_dawg->readFile(dawgfilename); | 237 | |
251 | } | 238 | if ( !dawgfile.exists() ) { |
239 | QString fn = dictDir() + "/words"; | ||
240 | if ( QFile::exists(words_lang) ) | ||
241 | fn = words_lang; | ||
242 | QFile in(fn); | ||
243 | if ( in.open(IO_ReadOnly) ) { | ||
244 | fixed_dawg->createFromWords(&in); | ||
245 | if (dawgfile.open(IO_WriteOnly)) | ||
246 | fixed_dawg->write(&dawgfile); | ||
247 | dawgfile.close(); | ||
248 | } | ||
249 | } else | ||
250 | fixed_dawg->readFile(dawgfilename); | ||
252 | } | 251 | } |
253 | 252 | ||
254 | return *fixed_dawg; | 253 | return *fixed_dawg; |
255 | } | 254 | } |
256 | 255 | ||
257 | /*! | 256 | /*! |
258 | Returns the changeable QDawg that contains general | 257 | Returns the changeable QDawg that contains general |
259 | words for the current locale. | 258 | words for the current locale. |
260 | 259 | ||
261 | \sa fixedDawg() | 260 | \sa fixedDawg() |
262 | */ | 261 | */ |
263 | const QDawg& Global::addedDawg() | 262 | const QDawg& Global::addedDawg() |
264 | { | 263 | { |
265 | return dawg("local"); | 264 | return dawg("local"); |
266 | } | 265 | } |
267 | 266 | ||
268 | /*! | 267 | /*! |
269 | Returns the QDawg with the given \a name. | 268 | Returns the QDawg with the given \a name. |
270 | This is an application-specific word list. | 269 | This is an application-specific word list. |
271 | 270 | ||
272 | \a name should not contain "/". | 271 | \a name should not contain "/". |
273 | */ | 272 | */ |
274 | const QDawg& Global::dawg(const QString& name) | 273 | const QDawg& Global::dawg(const QString& name) |
275 | { | 274 | { |
276 | createDocDir(); | 275 | createDocDir(); |
277 | if ( !named_dawg ) | 276 | if ( !named_dawg ) |
278 | named_dawg = new QDict<QDawg>; | 277 | named_dawg = new QDict<QDawg>; |
279 | QDawg* r = named_dawg->find(name); | 278 | QDawg* r = named_dawg->find(name); |
280 | if ( !r ) { | 279 | if ( !r ) { |
281 | r = new QDawg; | 280 | r = new QDawg; |
282 | named_dawg->insert(name,r); | 281 | named_dawg->insert(name,r); |
283 | QString dawgfilename = applicationFileName("Dictionary", name ) + ".dawg"; | 282 | QString dawgfilename = applicationFileName("Dictionary", name ) + ".dawg"; |
284 | QFile dawgfile(dawgfilename); | 283 | QFile dawgfile(dawgfilename); |
285 | if ( dawgfile.open(IO_ReadOnly) ) | 284 | if ( dawgfile.open(IO_ReadOnly) ) |
286 | r->readFile(dawgfilename); | 285 | r->readFile(dawgfilename); |
287 | } | 286 | } |
288 | return *r; | 287 | return *r; |
289 | } | 288 | } |
290 | 289 | ||
291 | /*! | 290 | /*! |
292 | \overload | 291 | \overload |
293 | Adds \a wordlist to the addedDawg(). | 292 | Adds \a wordlist to the addedDawg(). |
294 | 293 | ||
295 | Note that the addition of words persists between program executions | 294 | Note that the addition of words persists between program executions |
296 | (they are saved in the dictionary files), so you should confirm the | 295 | (they are saved in the dictionary files), so you should confirm the |
297 | words with the user before adding them. | 296 | words with the user before adding them. |
298 | */ | 297 | */ |
299 | void Global::addWords(const QStringList& wordlist) | 298 | void Global::addWords(const QStringList& wordlist) |
diff --git a/noncore/apps/advancedfm/output.cpp b/noncore/apps/advancedfm/output.cpp index 8c585f4..8f654d5 100644 --- a/noncore/apps/advancedfm/output.cpp +++ b/noncore/apps/advancedfm/output.cpp | |||
@@ -147,98 +147,99 @@ Output::Output( const QStringList commands, QWidget* parent, const char* name, | |||
147 | proc = new OProcess(); | 147 | proc = new OProcess(); |
148 | 148 | ||
149 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), | 149 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), |
150 | this, SLOT( processFinished())); | 150 | this, SLOT( processFinished())); |
151 | 151 | ||
152 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), | 152 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), |
153 | this, SLOT(commandStdout(Opie::Core::OProcess*,char*,int))); | 153 | this, SLOT(commandStdout(Opie::Core::OProcess*,char*,int))); |
154 | 154 | ||
155 | connect(proc, SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)), | 155 | connect(proc, SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)), |
156 | this, SLOT(commandStderr(Opie::Core::OProcess*,char*,int))); | 156 | this, SLOT(commandStderr(Opie::Core::OProcess*,char*,int))); |
157 | 157 | ||
158 | // connect( , SIGNAL(received(const QByteArray&)), | 158 | // connect( , SIGNAL(received(const QByteArray&)), |
159 | // this, SLOT(commandStdin(const QByteArray&))); | 159 | // this, SLOT(commandStdin(const QByteArray&))); |
160 | 160 | ||
161 | // * proc << commands.latin1(); | 161 | // * proc << commands.latin1(); |
162 | for ( QStringList::Iterator it = cmmds.begin(); it != cmmds.end(); ++it ) { | 162 | for ( QStringList::Iterator it = cmmds.begin(); it != cmmds.end(); ++it ) { |
163 | odebug << "" << (*it).latin1() << "" << oendl; | 163 | odebug << "" << (*it).latin1() << "" << oendl; |
164 | * proc << (*it).latin1(); | 164 | * proc << (*it).latin1(); |
165 | } | 165 | } |
166 | 166 | ||
167 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { | 167 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { |
168 | 168 | ||
169 | OutputEdit->append(tr("Process could not start") ); | 169 | OutputEdit->append(tr("Process could not start") ); |
170 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 170 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
171 | perror("Error: "); | 171 | perror("Error: "); |
172 | QString errorMsg=tr("Error\n")+(QString)strerror(errno); | 172 | QString errorMsg=tr("Error\n")+(QString)strerror(errno); |
173 | OutputEdit->append( errorMsg); | 173 | OutputEdit->append( errorMsg); |
174 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 174 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
175 | } | 175 | } |
176 | } | 176 | } |
177 | 177 | ||
178 | Output::~Output() { | 178 | Output::~Output() { |
179 | } | 179 | } |
180 | 180 | ||
181 | void Output::saveOutput() { | 181 | void Output::saveOutput() { |
182 | 182 | ||
183 | InputDialog *fileDlg; | 183 | InputDialog *fileDlg; |
184 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); | 184 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); |
185 | fileDlg->exec(); | 185 | fileDlg->exec(); |
186 | if( fileDlg->result() == 1 ) { | 186 | if( fileDlg->result() == 1 ) { |
187 | QString filename = QPEApplication::documentDir(); | 187 | QString filename = QPEApplication::documentDir(); |
188 | if(filename.right(1).find('/') == -1) | 188 | if(filename.right(1).find('/') == -1) |
189 | filename+="/"; | 189 | filename+="/"; |
190 | QString name = fileDlg->LineEdit1->text(); | 190 | QString name = fileDlg->LineEdit1->text(); |
191 | filename+="text/plain/"+name; | 191 | filename+="text/plain/"+name; |
192 | odebug << filename << oendl; | 192 | odebug << filename << oendl; |
193 | 193 | ||
194 | QFile f(filename); | 194 | QFile f(filename); |
195 | f.open( IO_WriteOnly); | 195 | if ( !f.open( IO_WriteOnly ) ) |
196 | if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { | 196 | owarn << "Could no open file" << oendl; |
197 | else if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { | ||
197 | DocLnk lnk; | 198 | DocLnk lnk; |
198 | lnk.setName(name); //sets file name | 199 | lnk.setName(name); //sets file name |
199 | lnk.setFile(filename); //sets File property | 200 | lnk.setFile(filename); //sets File property |
200 | lnk.setType("text/plain"); | 201 | lnk.setType("text/plain"); |
201 | if(!lnk.writeLink()) { | 202 | if(!lnk.writeLink()) { |
202 | odebug << "Writing doclink did not work" << oendl; | 203 | odebug << "Writing doclink did not work" << oendl; |
203 | } | 204 | } |
204 | } else | 205 | } else |
205 | owarn << "Could not write file" << oendl; | 206 | owarn << "Could not write file" << oendl; |
206 | f.close(); | 207 | f.close(); |
207 | } | 208 | } |
208 | } | 209 | } |
209 | 210 | ||
210 | void Output::commandStdout(OProcess*, char *buffer, int buflen) { | 211 | void Output::commandStdout(OProcess*, char *buffer, int buflen) { |
211 | owarn << "received stdout " << buflen << " bytes" << oendl; | 212 | owarn << "received stdout " << buflen << " bytes" << oendl; |
212 | 213 | ||
213 | // QByteArray data(buflen); | 214 | // QByteArray data(buflen); |
214 | // data.fill(*buffer, buflen); | 215 | // data.fill(*buffer, buflen); |
215 | // for (uint i = 0; i < data.count(); i++ ) { | 216 | // for (uint i = 0; i < data.count(); i++ ) { |
216 | // printf("%c", buffer[i] ); | 217 | // printf("%c", buffer[i] ); |
217 | // } | 218 | // } |
218 | // printf("\n"); | 219 | // printf("\n"); |
219 | 220 | ||
220 | QString lineStr = buffer; | 221 | QString lineStr = buffer; |
221 | lineStr=lineStr.left(lineStr.length()-1); | 222 | lineStr=lineStr.left(lineStr.length()-1); |
222 | OutputEdit->append(lineStr); | 223 | OutputEdit->append(lineStr); |
223 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 224 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
224 | } | 225 | } |
225 | 226 | ||
226 | 227 | ||
227 | void Output::commandStdin( const QByteArray &data) { | 228 | void Output::commandStdin( const QByteArray &data) { |
228 | owarn << "received stdin " << data.size() << " bytes" << oendl; | 229 | owarn << "received stdin " << data.size() << " bytes" << oendl; |
229 | // recieved data from the io layer goes to sz | 230 | // recieved data from the io layer goes to sz |
230 | proc->writeStdin(data.data(), data.size()); | 231 | proc->writeStdin(data.data(), data.size()); |
231 | } | 232 | } |
232 | 233 | ||
233 | void Output::commandStderr(OProcess*, char *buffer, int buflen) { | 234 | void Output::commandStderr(OProcess*, char *buffer, int buflen) { |
234 | owarn << "received stderrt " << buflen << " bytes" << oendl; | 235 | owarn << "received stderrt " << buflen << " bytes" << oendl; |
235 | 236 | ||
236 | QString lineStr = buffer; | 237 | QString lineStr = buffer; |
237 | // lineStr=lineStr.left(lineStr.length()-1); | 238 | // lineStr=lineStr.left(lineStr.length()-1); |
238 | OutputEdit->append(lineStr); | 239 | OutputEdit->append(lineStr); |
239 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 240 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
240 | } | 241 | } |
241 | 242 | ||
242 | void Output::processFinished() { | 243 | void Output::processFinished() { |
243 | 244 | ||
244 | delete proc; | 245 | delete proc; |
diff --git a/noncore/apps/tinykate/libkate/document/katebuffer.cpp b/noncore/apps/tinykate/libkate/document/katebuffer.cpp index 4c15fd0..d89edbd 100644 --- a/noncore/apps/tinykate/libkate/document/katebuffer.cpp +++ b/noncore/apps/tinykate/libkate/document/katebuffer.cpp | |||
@@ -27,97 +27,100 @@ | |||
27 | /* OPIE */ | 27 | /* OPIE */ |
28 | #include <opie2/odebug.h> | 28 | #include <opie2/odebug.h> |
29 | 29 | ||
30 | /* QT */ | 30 | /* QT */ |
31 | #include <qfile.h> | 31 | #include <qfile.h> |
32 | #include <qtextstream.h> | 32 | #include <qtextstream.h> |
33 | #include <qtimer.h> | 33 | #include <qtimer.h> |
34 | #include <qtextcodec.h> | 34 | #include <qtextcodec.h> |
35 | 35 | ||
36 | /* STD */ | 36 | /* STD */ |
37 | // Includes for reading file | 37 | // Includes for reading file |
38 | #include <sys/types.h> | 38 | #include <sys/types.h> |
39 | #include <sys/stat.h> | 39 | #include <sys/stat.h> |
40 | #include <fcntl.h> | 40 | #include <fcntl.h> |
41 | #include <errno.h> | 41 | #include <errno.h> |
42 | #include <unistd.h> | 42 | #include <unistd.h> |
43 | #include <assert.h> | 43 | #include <assert.h> |
44 | 44 | ||
45 | /** | 45 | /** |
46 | * Create an empty buffer. | 46 | * Create an empty buffer. |
47 | */ | 47 | */ |
48 | KWBuffer::KWBuffer() | 48 | KWBuffer::KWBuffer() |
49 | { | 49 | { |
50 | clear(); | 50 | clear(); |
51 | } | 51 | } |
52 | 52 | ||
53 | void | 53 | void |
54 | KWBuffer::clear() | 54 | KWBuffer::clear() |
55 | { | 55 | { |
56 | m_stringListIt=0; | 56 | m_stringListIt=0; |
57 | m_stringListCurrent=0; | 57 | m_stringListCurrent=0; |
58 | m_stringList.clear(); | 58 | m_stringList.clear(); |
59 | m_lineCount=1; | 59 | m_lineCount=1; |
60 | m_stringListIt = m_stringList.append(new TextLine()); | 60 | m_stringListIt = m_stringList.append(new TextLine()); |
61 | } | 61 | } |
62 | 62 | ||
63 | /** | 63 | /** |
64 | * Insert a file at line @p line in the buffer. | 64 | * Insert a file at line @p line in the buffer. |
65 | */ | 65 | */ |
66 | void | 66 | void |
67 | KWBuffer::insertFile(int line, const QString &file, QTextCodec *codec) | 67 | KWBuffer::insertFile(int line, const QString &file, QTextCodec *codec) |
68 | { | 68 | { |
69 | if (line) { | 69 | if (line) { |
70 | odebug << "insert File only supports insertion at line 0 == file opening" << oendl; | 70 | odebug << "insert File only supports insertion at line 0 == file opening" << oendl; |
71 | return; | 71 | return; |
72 | } | 72 | } |
73 | clear(); | 73 | clear(); |
74 | QFile iofile(file); | 74 | QFile iofile(file); |
75 | iofile.open(IO_ReadOnly); | 75 | if (!iofile.open(IO_ReadOnly)) { |
76 | owarn << "failed to open file " << iofile.name() << oendl; | ||
77 | return; | ||
78 | } | ||
76 | QTextStream stream(&iofile); | 79 | QTextStream stream(&iofile); |
77 | stream.setCodec(codec); | 80 | stream.setCodec(codec); |
78 | QString qsl; | 81 | QString qsl; |
79 | int count=0; | 82 | int count=0; |
80 | for (count=0;((qsl=stream.readLine())!=QString::null); count++) | 83 | for (count=0;((qsl=stream.readLine())!=QString::null); count++) |
81 | { | 84 | { |
82 | if (count==0) | 85 | if (count==0) |
83 | { | 86 | { |
84 | (*m_stringListIt)->append(qsl.unicode(),qsl.length()); | 87 | (*m_stringListIt)->append(qsl.unicode(),qsl.length()); |
85 | } | 88 | } |
86 | else | 89 | else |
87 | { | 90 | { |
88 | TextLine::Ptr tl=new TextLine(); | 91 | TextLine::Ptr tl=new TextLine(); |
89 | tl ->append(qsl.unicode(),qsl.length()); | 92 | tl ->append(qsl.unicode(),qsl.length()); |
90 | m_stringListIt=m_stringList.append(tl); | 93 | m_stringListIt=m_stringList.append(tl); |
91 | } | 94 | } |
92 | } | 95 | } |
93 | if (count!=0) | 96 | if (count!=0) |
94 | { | 97 | { |
95 | m_stringListCurrent=count-1; | 98 | m_stringListCurrent=count-1; |
96 | m_lineCount=count; | 99 | m_lineCount=count; |
97 | } | 100 | } |
98 | } | 101 | } |
99 | 102 | ||
100 | void | 103 | void |
101 | KWBuffer::loadFilePart() | 104 | KWBuffer::loadFilePart() |
102 | { | 105 | { |
103 | } | 106 | } |
104 | 107 | ||
105 | 108 | ||
106 | void | 109 | void |
107 | KWBuffer::insertData(int line, const QByteArray &data, QTextCodec *codec) | 110 | KWBuffer::insertData(int line, const QByteArray &data, QTextCodec *codec) |
108 | { | 111 | { |
109 | } | 112 | } |
110 | 113 | ||
111 | void | 114 | void |
112 | KWBuffer::slotLoadFile() | 115 | KWBuffer::slotLoadFile() |
113 | { | 116 | { |
114 | loadFilePart(); | 117 | loadFilePart(); |
115 | // emit linesChanged(m_totalLines); | 118 | // emit linesChanged(m_totalLines); |
116 | emit linesChanged(20); | 119 | emit linesChanged(20); |
117 | } | 120 | } |
118 | 121 | ||
119 | /** | 122 | /** |
120 | * Return the total number of lines in the buffer. | 123 | * Return the total number of lines in the buffer. |
121 | */ | 124 | */ |
122 | int | 125 | int |
123 | KWBuffer::count() | 126 | KWBuffer::count() |
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index 3654639..75a96a6 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp | |||
@@ -197,99 +197,102 @@ void UserDialog::setupTab2() | |||
197 | 197 | ||
198 | myTabWidget->addTab(tabpage,"User Groups"); | 198 | myTabWidget->addTab(tabpage,"User Groups"); |
199 | } | 199 | } |
200 | 200 | ||
201 | /** | 201 | /** |
202 | * Static function that creates the userinfo dialog. | 202 | * Static function that creates the userinfo dialog. |
203 | * The user will be prompted to add a user. | 203 | * The user will be prompted to add a user. |
204 | * | 204 | * |
205 | * @param uid This is a suggested available UID. | 205 | * @param uid This is a suggested available UID. |
206 | * @param gid This is a suggested available GID. | 206 | * @param gid This is a suggested available GID. |
207 | * | 207 | * |
208 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. | 208 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. |
209 | * | 209 | * |
210 | */ | 210 | */ |
211 | bool UserDialog::addUser(int uid, int gid) | 211 | bool UserDialog::addUser(int uid, int gid) |
212 | { | 212 | { |
213 | QCheckListItem *temp; | 213 | QCheckListItem *temp; |
214 | QFile ozTest; | 214 | QFile ozTest; |
215 | int oz=false; | 215 | int oz=false; |
216 | if(ODevice::inst()->system()==System_OpenZaurus) oz=true; | 216 | if(ODevice::inst()->system()==System_OpenZaurus) oz=true; |
217 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating adduserDialog's widgets here. | 217 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating adduserDialog's widgets here. |
218 | UserDialog *adduserDialog=new UserDialog(VIEWMODE_NEW); | 218 | UserDialog *adduserDialog=new UserDialog(VIEWMODE_NEW); |
219 | adduserDialog->setCaption(tr("Add User")); | 219 | adduserDialog->setCaption(tr("Add User")); |
220 | adduserDialog->userID=uid; // Set next available UID as default uid. | 220 | adduserDialog->userID=uid; // Set next available UID as default uid. |
221 | adduserDialog->groupID=gid; // Set next available GID as default gid. | 221 | adduserDialog->groupID=gid; // Set next available GID as default gid. |
222 | // Insert default group into groupComboBox | 222 | // Insert default group into groupComboBox |
223 | adduserDialog->groupComboBox->insertItem("<create new group>",0); | 223 | adduserDialog->groupComboBox->insertItem("<create new group>",0); |
224 | adduserDialog->uidLineEdit->setText(QString::number(uid)); | 224 | adduserDialog->uidLineEdit->setText(QString::number(uid)); |
225 | // If we're running on OZ, add new users to some default groups. | 225 | // If we're running on OZ, add new users to some default groups. |
226 | if(oz) | 226 | if(oz) |
227 | { | 227 | { |
228 | QListViewItemIterator iter( adduserDialog->groupsListView ); | 228 | QListViewItemIterator iter( adduserDialog->groupsListView ); |
229 | for ( ; iter.current(); ++iter ) | 229 | for ( ; iter.current(); ++iter ) |
230 | { | 230 | { |
231 | temp=(QCheckListItem*)iter.current(); | 231 | temp=(QCheckListItem*)iter.current(); |
232 | if (temp->text()=="video") temp->setOn(true); | 232 | if (temp->text()=="video") temp->setOn(true); |
233 | if (temp->text()=="audio") temp->setOn(true); | 233 | if (temp->text()=="audio") temp->setOn(true); |
234 | if (temp->text()=="time") temp->setOn(true); | 234 | if (temp->text()=="time") temp->setOn(true); |
235 | if (temp->text()=="power") temp->setOn(true); | 235 | if (temp->text()=="power") temp->setOn(true); |
236 | if (temp->text()=="input") temp->setOn(true); | 236 | if (temp->text()=="input") temp->setOn(true); |
237 | if (temp->text()=="sharp") temp->setOn(true); | 237 | if (temp->text()=="sharp") temp->setOn(true); |
238 | if (temp->text()=="tty") temp->setOn(true); | 238 | if (temp->text()=="tty") temp->setOn(true); |
239 | } | 239 | } |
240 | } | 240 | } |
241 | // Show the dialog! | 241 | // Show the dialog! |
242 | if(!(adduserDialog->exec())) return false; | 242 | if(!(adduserDialog->exec())) return false; |
243 | if((adduserDialog->groupComboBox->currentItem()!=0)) | 243 | if((adduserDialog->groupComboBox->currentItem()!=0)) |
244 | { | 244 | { |
245 | accounts->findGroup(adduserDialog->groupComboBox->currentText()); | 245 | // making the call findGroup() puts the group info in the accounts gr_gid |
246 | adduserDialog->groupID=accounts->gr_gid; | 246 | if (accounts->findGroup(adduserDialog->groupComboBox->currentText())) |
247 | owarn << QString::number(accounts->gr_gid) << oendl; | 247 | { |
248 | adduserDialog->groupID=accounts->gr_gid; | ||
249 | owarn << QString::number(accounts->gr_gid) << oendl; | ||
250 | } | ||
248 | } | 251 | } |
249 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), | 252 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), |
250 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), | 253 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), |
251 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) | 254 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) |
252 | { | 255 | { |
253 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); | 256 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); |
254 | return false; | 257 | return false; |
255 | } | 258 | } |
256 | 259 | ||
257 | // Add User to additional groups. | 260 | // Add User to additional groups. |
258 | QListViewItemIterator it( adduserDialog->groupsListView ); | 261 | QListViewItemIterator it( adduserDialog->groupsListView ); |
259 | for ( ; it.current(); ++it ) | 262 | for ( ; it.current(); ++it ) |
260 | { | 263 | { |
261 | temp=(QCheckListItem*)it.current(); | 264 | temp=(QCheckListItem*)it.current(); |
262 | if (temp->isOn() ) | 265 | if (temp->isOn() ) |
263 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); | 266 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); |
264 | } | 267 | } |
265 | // Copy image to pics/users/ | 268 | // Copy image to pics/users/ |
266 | if(!(adduserDialog->userImage.isNull())) | 269 | if(!(adduserDialog->userImage.isNull())) |
267 | { | 270 | { |
268 | QDir d; | 271 | QDir d; |
269 | if(!(d.exists(QPEApplication::qpeDir() + "pics/users"))) | 272 | if(!(d.exists(QPEApplication::qpeDir() + "pics/users"))) |
270 | { | 273 | { |
271 | d.mkdir(QPEApplication::qpeDir() + "pics/users"); | 274 | d.mkdir(QPEApplication::qpeDir() + "pics/users"); |
272 | } | 275 | } |
273 | QString filename= QPEApplication::qpeDir()+"pics/users/"+accounts->pw_name+".png"; | 276 | QString filename= QPEApplication::qpeDir()+"pics/users/"+accounts->pw_name+".png"; |
274 | // adduserDialog->userImage=adduserDialog->userImage.smoothScale(48,48); | 277 | // adduserDialog->userImage=adduserDialog->userImage.smoothScale(48,48); |
275 | adduserDialog->userImage.save(filename,"PNG"); | 278 | adduserDialog->userImage.save(filename,"PNG"); |
276 | } | 279 | } |
277 | 280 | ||
278 | // Should we copy the skeleton homedirectory /etc/skel to the user's homedirectory? | 281 | // Should we copy the skeleton homedirectory /etc/skel to the user's homedirectory? |
279 | accounts->findUser(adduserDialog->loginLineEdit->text()); | 282 | accounts->findUser(adduserDialog->loginLineEdit->text()); |
280 | if(adduserDialog->skelCheckBox->isChecked()) | 283 | if(adduserDialog->skelCheckBox->isChecked()) |
281 | { | 284 | { |
282 | QString command_cp; | 285 | QString command_cp; |
283 | QString command_chown; | 286 | QString command_chown; |
284 | command_cp.sprintf("cp -a /etc/skel/* %s/",accounts->pw_dir.latin1()); | 287 | command_cp.sprintf("cp -a /etc/skel/* %s/",accounts->pw_dir.latin1()); |
285 | system(command_cp); | 288 | system(command_cp); |
286 | 289 | ||
287 | command_cp.sprintf("cp -a /etc/skel/.[!.]* %s/",accounts->pw_dir.latin1()); // Bug in busybox, ".*" includes parent directory, does this work as a workaround? | 290 | command_cp.sprintf("cp -a /etc/skel/.[!.]* %s/",accounts->pw_dir.latin1()); // Bug in busybox, ".*" includes parent directory, does this work as a workaround? |
288 | system(command_cp); | 291 | system(command_cp); |
289 | 292 | ||
290 | command_chown.sprintf("chown -R %d:%d %s",accounts->pw_uid,accounts->pw_gid,accounts->pw_dir.latin1()); | 293 | command_chown.sprintf("chown -R %d:%d %s",accounts->pw_uid,accounts->pw_gid,accounts->pw_dir.latin1()); |
291 | system(command_chown); | 294 | system(command_chown); |
292 | } | 295 | } |
293 | 296 | ||
294 | return true; | 297 | return true; |
295 | } | 298 | } |