summaryrefslogtreecommitdiff
authorerik <erik>2007-01-31 22:06:07 (UTC)
committer erik <erik>2007-01-31 22:06:07 (UTC)
commit9395cf2a65184e493714c699bb23b02ea31feef5 (patch) (unidiff)
treeea07c026298820559c13ad32e612d51048cee0a9
parent958e042c5a4d4e38fd1baae50b78a2febfd306ab (diff)
downloadopie-9395cf2a65184e493714c699bb23b02ea31feef5.zip
opie-9395cf2a65184e493714c699bb23b02ea31feef5.tar.gz
opie-9395cf2a65184e493714c699bb23b02ea31feef5.tar.bz2
I expanded my audit to include any app I could get to compile in i386.
In that expansion a whole new crop of unchecked returns has sprung up. This commit fixes those weeds or should I say potential bugs.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.cpp88
-rw-r--r--noncore/apps/opie-gutenbrowser/openetext.cpp174
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp30
-rw-r--r--noncore/multimedia/opieplayer2/om3u.cpp141
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.cpp17
-rw-r--r--noncore/net/opiestumbler/opiestumbler.cpp3
-rw-r--r--noncore/settings/networksettings/mainwindow/mainwindowimp.cpp11
-rw-r--r--noncore/settings/networksettings/ppp/modem.cpp6
8 files changed, 235 insertions, 235 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
index 6c246e97..7f21ab3 100644
--- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
+++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp
@@ -1,55 +1,55 @@
1/*************************************************************************** 1/***************************************************************************
2// LibraryDialog.cpp - description 2// LibraryDialog.cpp - description
3// ------------------- 3// -------------------
4// begin : Sat Aug 19 2000 4// begin : Sat Aug 19 2000
5// copyright : (C) 2000 - 2004 by llornkcor 5// copyright : (C) 2000 - 2004 by llornkcor
6// email : ljp@llornkcor.com 6// email : ljp@llornkcor.com
7// ***************************************************/ 7// ***************************************************/
8// /*************************************************************************** 8// /***************************************************************************
9// * This program is free software; you can redistribute it and/or modify * 9// * This program is free software; you can redistribute it and/or modify *
10// * it under the terms of the GNU General Public License as published by * 10// * it under the terms of the GNU General Public License as published by *
11// * the Free Software Foundation; either version 2 of the License, or * 11// * the Free Software Foundation; either version 2 of the License, or *
12// * (at your option) any later version. * 12// * (at your option) any later version. *
13// ***************************************************************************/ 13// ***************************************************************************/
14//ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL 14//ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL
15 15
16#include "LibraryDialog.h" 16#include "LibraryDialog.h"
17#include "output.h" 17#include "output.h"
18 18
19/* OPIE */ 19/* OPIE */
20#include <qpe/applnk.h> 20#include <qpe/applnk.h>
21#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
22#include <qpe/qpedialog.h> 22#include <qpe/qpedialog.h>
23//#include <opie2///odebug.h> 23#include <opie2/odebug.h>
24 24
25/* QT */ 25/* QT */
26#include <qpushbutton.h> 26#include <qpushbutton.h>
27#include <qmultilineedit.h> 27#include <qmultilineedit.h>
28//#include <qlayout.h> 28//#include <qlayout.h>
29 29
30/* STD */ 30/* STD */
31#include <unistd.h> 31#include <unistd.h>
32#include <stdio.h> 32#include <stdio.h>
33#include <stdlib.h> 33#include <stdlib.h>
34 34
35/* 35/*
36 * The dialog will by default be modeless, unless you set 'modal' to 36 * The dialog will by default be modeless, unless you set 'modal' to
37 * true to construct a modal dialog. */ 37 * true to construct a modal dialog. */
38LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl ) 38LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl )
39 : QDialog( parent, name, true/* modal*/, fl ) 39 : QDialog( parent, name, true/* modal*/, fl )
40{ 40{
41 if ( !name ) 41 if ( !name )
42 setName( "LibraryDialog" ); 42 setName( "LibraryDialog" );
43 indexLoaded=false; 43 indexLoaded=false;
44 initDialog(); 44 initDialog();
45 45
46 // this->setMaximumWidth(240); 46 // this->setMaximumWidth(240);
47 47
48 index = "GUTINDEX.ALL"; 48 index = "GUTINDEX.ALL";
49 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; 49 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
50 local_index = local_library + index; 50 local_index = local_library + index;
51 51
52 QString iniFile ; 52 QString iniFile ;
53 iniFile = local_library + "/gutenbrowserrc"; 53 iniFile = local_library + "/gutenbrowserrc";
54 new_index = local_library + "/PGWHOLE.TXT"; 54 new_index = local_library + "/PGWHOLE.TXT";
55 old_index = local_index; 55 old_index = local_index;
@@ -429,113 +429,116 @@ bool LibraryDialog::download_newEtext()
429 directory += "/"+ DlglistItemFile[i]; 429 directory += "/"+ DlglistItemFile[i];
430 } 430 }
431 431
432 directory += "/" + DlglistItemFile; 432 directory += "/" + DlglistItemFile;
433 433
434// qWarning(directory); 434// qWarning(directory);
435 435
436 Config cfg("Gutenbrowser"); 436 Config cfg("Gutenbrowser");
437 cfg.setGroup("FTPsite"); 437 cfg.setGroup("FTPsite");
438 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org"); 438 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org");
439 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg"); 439 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg");
440 440
441 if( ftp_base_dir.find("=",0,true) ) 441 if( ftp_base_dir.find("=",0,true) )
442 ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1); 442 ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1);
443 443
444 QString dir = ftp_base_dir + directory; 444 QString dir = ftp_base_dir + directory;
445 QString outputFile = local_library + ".guten_temp"; 445 QString outputFile = local_library + ".guten_temp";
446 QString file = fileName + ".txt"; 446 QString file = fileName + ".txt";
447 447
448 QStringList networkList; 448 QStringList networkList;
449 networkList.append((const char *)ftp_host); //host 449 networkList.append((const char *)ftp_host); //host
450 networkList.append((const char *)dir); //ftp base directory 450 networkList.append((const char *)dir); //ftp base directory
451 networkList.append((const char *)outputFile); //output filepath 451 networkList.append((const char *)outputFile); //output filepath
452 networkList.append((const char *)file); //filename 452 networkList.append((const char *)file); //filename
453 453
454 getEtext( networkList); 454 getEtext( networkList);
455 455
456 return true; 456 return true;
457} 457}
458 458
459bool LibraryDialog::getEtext(const QStringList &networkList) 459bool LibraryDialog::getEtext(const QStringList &networkList)
460{ 460{
461 NetworkDialog *NetworkDlg; 461 NetworkDialog *NetworkDlg;
462 NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", true, 0, networkList); 462 NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", true, 0, networkList);
463 463
464// use new, improved, *INSTANT* network-dialog-file-getterer 464 // use new, improved, *INSTANT* network-dialog-file-getterer
465 if( NetworkDlg->exec() != 0 ) { 465 if( NetworkDlg->exec() != 0 ) {
466 File_Name = NetworkDlg->localFileName; 466 File_Name = NetworkDlg->localFileName;
467 467
468 qDebug("Just downloaded " + NetworkDlg->localFileName); 468 qDebug("Just downloaded " + NetworkDlg->localFileName);
469 469
470 if(NetworkDlg->successDownload) { 470 if(NetworkDlg->successDownload) {
471 //odebug << "Filename is "+File_Name << oendl; 471 //odebug << "Filename is "+File_Name << oendl;
472 if(File_Name.right(4) == ".txt") { 472 if(File_Name.right(4) == ".txt") {
473 QString s_fileName = File_Name; 473 QString s_fileName = File_Name;
474 s_fileName.replace( s_fileName.length() - 3, 3, "gtn"); 474 s_fileName.replace( s_fileName.length() - 3, 3, "gtn");
475 // s_fileName.replace( s_fileName.length()-3,3,"etx"); 475 if (rename( File_Name.latin1(), s_fileName.latin1()) == 1) {
476 rename( File_Name.latin1(), s_fileName.latin1()); 476 owarn << "Failed to rename " << File_Name.latin1() << " to "
477 File_Name = s_fileName; 477 << s_fileName.latin1() << oendl;
478 return false;
479 }
478 480
479 //odebug << "Filename is now "+File_Name << oendl; 481 File_Name = s_fileName;
480 482
481 } 483 //odebug << "Filename is now "+File_Name << oendl;
482 if(File_Name.length() > 5 ) {
483 setTitle();
484 QFileInfo fi(File_Name);
485 QString name_file = fi.fileName();
486 name_file = name_file.left( name_file.length() - 4);
487
488 //odebug << "Setting doclink" << oendl;
489 DocLnk lnk;
490 //odebug << "name is "+name_file << oendl;
491 lnk.setName(name_file); //sets file name
492 //odebug << "Title is "+DlglistItemTitle << oendl;
493 lnk.setComment(DlglistItemTitle);
494 484
495 //odebug << "Filename is "+File_Name << oendl;
496 lnk.setFile(File_Name); //sets File property
497 lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D
498 lnk.setExec(File_Name);
499 lnk.setIcon("gutenbrowser/Gutenbrowser");
500 if(!lnk.writeLink()) {
501 //odebug << "Writing doclink did not work" << oendl;
502 } else {
503 } 485 }
504 } else 486 if(File_Name.length() > 5 ) {
505 QMessageBox::message("Note","<p>There was an error with the file</p>"); 487 setTitle();
506 } 488 QFileInfo fi(File_Name);
507 } 489 QString name_file = fi.fileName();
490 name_file = name_file.left( name_file.length() - 4);
491
492 //odebug << "Setting doclink" << oendl;
493 DocLnk lnk;
494 //odebug << "name is "+name_file << oendl;
495 lnk.setName(name_file); //sets file name
496 //odebug << "Title is "+DlglistItemTitle << oendl;
497 lnk.setComment(DlglistItemTitle);
498
499 //odebug << "Filename is "+File_Name << oendl;
500 lnk.setFile(File_Name); //sets File property
501 lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D
502 lnk.setExec(File_Name);
503 lnk.setIcon("gutenbrowser/Gutenbrowser");
504 if(!lnk.writeLink()) {
505 //odebug << "Writing doclink did not work" << oendl;
506 }
507 } else
508 QMessageBox::message("Note","<p>There was an error with the file</p>");
509 }
510 }
508 511
509 return true; 512 return true;
510} 513}
511 514
512bool LibraryDialog::download_Etext() 515bool LibraryDialog::download_Etext()
513{ // ftp method 516{ // ftp method
514 // might have to use old gpl'd ftp for embedded!! 517 // might have to use old gpl'd ftp for embedded!!
515 518
516 Config cfg("Gutenbrowser"); 519 Config cfg("Gutenbrowser");
517 cfg.setGroup("FTPsite"); 520 cfg.setGroup("FTPsite");
518 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org"); 521 ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org");
519 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg"); 522 ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg");
520 523
521 qDebug( "about to network dialog"); 524 qDebug( "about to network dialog");
522 525
523 QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, /*networkUrl, */outputFile; 526 QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, /*networkUrl, */outputFile;
524 527
525 //////////////////// FIXME- if 'x' is part of real name.... 528 //////////////////// FIXME- if 'x' is part of real name....
526 NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).find("x", 1, false)); 529 NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).find("x", 1, false));
527 530
528 if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,true) ==-1 ) { 531 if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,true) ==-1 ) {
529 NewlistItemFile.replace( 0,4, DlglistItemFile.left(4)); 532 NewlistItemFile.replace( 0,4, DlglistItemFile.left(4));
530 qDebug("NewlistItemFile is now " + NewlistItemFile); 533 qDebug("NewlistItemFile is now " + NewlistItemFile);
531 } 534 }
532 535
533 NewlistItemYear = DlglistItemYear.right(2); 536 NewlistItemYear = DlglistItemYear.right(2);
534 int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10); 537 int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10);
535 //odebug << NewlistItemYear << oendl; 538 //odebug << NewlistItemYear << oendl;
536 if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) { 539 if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) {
537 NewlistItemYear = "90"; 540 NewlistItemYear = "90";
538 } 541 }
539 542
540 Edir ="etext" +NewlistItemYear; 543 Edir ="etext" +NewlistItemYear;
541 544
@@ -672,65 +675,64 @@ void LibraryDialog::saveConfig()
672 config.setGroup("SortAuth"); 675 config.setGroup("SortAuth");
673 config.writeEntry("authSort", "true"); 676 config.writeEntry("authSort", "true");
674 } else { 677 } else {
675 config.setGroup("SortAuth"); 678 config.setGroup("SortAuth");
676 config.writeEntry("authSort", "false"); 679 config.writeEntry("authSort", "false");
677 } 680 }
678 // config.write(); 681 // config.write();
679} 682}
680 683
681/* 684/*
682 searches library index for user word*/ 685 searches library index for user word*/
683void LibraryDialog::onButtonSearch() 686void LibraryDialog::onButtonSearch()
684{ 687{
685 ListView1->clearSelection(); 688 ListView1->clearSelection();
686 ListView2->clearSelection(); 689 ListView2->clearSelection();
687 ListView3->clearSelection(); 690 ListView3->clearSelection();
688 ListView4->clearSelection(); 691 ListView4->clearSelection();
689 ListView5->clearSelection(); 692 ListView5->clearSelection();
690 693
691 int curTab = tabWidget->currentPageIndex(); 694 int curTab = tabWidget->currentPageIndex();
692 SearchDialog* searchDlg; 695 SearchDialog* searchDlg;
693 696
694 // if( resultsList) 697 // if( resultsList)
695 searchDlg = new SearchDialog( this, "Library Search", true); 698 searchDlg = new SearchDialog( this, "Library Search", true);
696 searchDlg->setCaption( tr( "Library Search" ) ); 699 searchDlg->setCaption( tr( "Library Search" ) );
697 searchDlg->setLabel( "- author or title"); 700 searchDlg->setLabel( "- author or title");
698 701
699 QString resultString; 702 QString resultString;
700 703
701 int i_berger = 0; 704 int i_berger = 0;
702 if( searchDlg->exec() != 0 ) { 705 if( searchDlg->exec() != 0 ) {
703 QString searcherStr = searchDlg->get_text(); 706 QString searcherStr = searchDlg->get_text();
704 int fluff = 0;
705 707
706 bool cS; 708 bool cS;
707 if( searchDlg->caseSensitiveCheckBox->isChecked()) 709 if( searchDlg->caseSensitiveCheckBox->isChecked())
708 cS = true; //case sensitive 710 cS = true; //case sensitive
709 else 711 else
710 cS = false; 712 cS = false;
711 713
712 etext etextStruct; 714 etext etextStruct;
713 QValueList<etext>::Iterator it; 715 QValueList<etext>::Iterator it;
714 716
715 for( it = etextLibrary.begin(); it != etextLibrary.end(); ++it ) { 717 for( it = etextLibrary.begin(); it != etextLibrary.end(); ++it ) {
716 QString tempTitle = (*it).title; 718 QString tempTitle = (*it).title;
717 QString tempAuthor = (*it).author; 719 QString tempAuthor = (*it).author;
718 QString tempFile = (*it).file; 720 QString tempFile = (*it).file;
719 QString tempYear = (*it).year; 721 QString tempYear = (*it).year;
720 if(tempTitle.find( searcherStr, 0, cS) != -1 722 if(tempTitle.find( searcherStr, 0, cS) != -1
721 || tempAuthor.find( searcherStr, 0, cS) != -1) { 723 || tempAuthor.find( searcherStr, 0, cS) != -1) {
722 qWarning(tempTitle); 724 qWarning(tempTitle);
723 Searchlist.append( tempTitle + " : " + tempYear + " : " + tempFile); 725 Searchlist.append( tempTitle + " : " + tempYear + " : " + tempFile);
724 } 726 }
725 } 727 }
726 728
727 729
728 tabWidget->setCurrentPage( curTab); 730 tabWidget->setCurrentPage( curTab);
729 731
730 Searchlist.sort(); 732 Searchlist.sort();
731 SearchResultsDlg* SearchResultsDialog; 733 SearchResultsDlg* SearchResultsDialog;
732 SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist); 734 SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist);
733 735
734 SearchResultsDialog->showMaximized(); 736 SearchResultsDialog->showMaximized();
735 if( SearchResultsDialog->exec() != 0) { 737 if( SearchResultsDialog->exec() != 0) {
736 texter = SearchResultsDialog->selText; 738 texter = SearchResultsDialog->selText;
diff --git a/noncore/apps/opie-gutenbrowser/openetext.cpp b/noncore/apps/opie-gutenbrowser/openetext.cpp
index 0267416..a5d855d 100644
--- a/noncore/apps/opie-gutenbrowser/openetext.cpp
+++ b/noncore/apps/opie-gutenbrowser/openetext.cpp
@@ -28,494 +28,486 @@ using namespace Opie::Ui;
28#include <qtextstream.h> 28#include <qtextstream.h>
29#include <qfileinfo.h> 29#include <qfileinfo.h>
30 30
31/* STD */ 31/* STD */
32#if defined(_WS_WIN_) 32#if defined(_WS_WIN_)
33#include <windows.h> 33#include <windows.h>
34#else 34#else
35#include <unistd.h> 35#include <unistd.h>
36#include <stdlib.h> 36#include <stdlib.h>
37#include <sys/stat.h> 37#include <sys/stat.h>
38#endif 38#endif
39 39
40OpenEtext::OpenEtext(QWidget *parent, QString name) : QDialog(parent,name,true) 40OpenEtext::OpenEtext(QWidget *parent, QString name) : QDialog(parent,name,true)
41{ 41{
42 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; 42 local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/";
43 local_index=local_library+"GUTINDEX.ALL"; 43 local_index=local_library+"GUTINDEX.ALL";
44 initDialog(); 44 initDialog();
45 connect( QListBox_1, SIGNAL(selected ( int)),this, SLOT(select_title(int)) ); 45 connect( QListBox_1, SIGNAL(selected ( int)),this, SLOT(select_title(int)) );
46 46
47 getTitles(); 47 getTitles();
48} 48}
49 49
50OpenEtext::~OpenEtext() 50OpenEtext::~OpenEtext()
51{ 51{
52} 52}
53 53
54void OpenEtext::getTitles() 54void OpenEtext::getTitles()
55{ 55{
56 QListBox_1->clear(); 56 QListBox_1->clear();
57 Config config("Gutenbrowser"); 57 Config config("Gutenbrowser");
58 config.setGroup( "Files" ); 58 config.setGroup( "Files" );
59 s_numofFiles = config.readEntry("NumberOfFiles", "0"); 59 s_numofFiles = config.readEntry("NumberOfFiles", "0");
60 QLabel_1->setText( tr( 60 QLabel_1->setText( tr( s_numofFiles+" etexts in your library." ) );
61 s_numofFiles+" etexts in your library."));
62 int i_numofFiles = s_numofFiles.toInt(); 61 int i_numofFiles = s_numofFiles.toInt();
63 for (int i = 1; i <= i_numofFiles+1; i++) { 62 for (int i = 1; i <= i_numofFiles+1; i++) {
64 QString temp; 63 QString temp;
65 temp.setNum(i); 64 temp.setNum(i);
66 config.setGroup( "Files" ); 65 config.setGroup( "Files" );
67 QString ramble = config.readEntry(temp, "" ); 66 QString ramble = config.readEntry(temp, "" );
68 config.setGroup( "Titles" ); 67 config.setGroup( "Titles" );
69 title = config.readEntry(ramble, ""); 68 title = config.readEntry(ramble, "");
70 if( !title.isEmpty()) { 69 if( !title.isEmpty()) {
71 QListBox_1->insertItem ( QPixmap( QPEApplication::qpeDir()+"pics/gutenbrowser/gutenbrowser_sm.png"), title, -1); 70 QListBox_1->insertItem ( QPixmap(
71 QPEApplication::qpeDir() +
72 "pics/gutenbrowser/gutenbrowser_sm.png"
73 ),
74 title,
75 -1);
72 } 76 }
73 } 77 }
74} 78}
75 79
76/* 80/*
77 opens selected title */ 81 opens selected title */
78void OpenEtext::OpenTitle() 82void OpenEtext::OpenTitle()
79{ 83{
80 if( QListBox_1->currentItem() != -1) 84 if( QListBox_1->currentItem() != -1)
81 select_title( QListBox_1->currentItem() ); 85 select_title( QListBox_1->currentItem() );
82 else { 86 else {
83 QString sMsg; 87 QString sMsg;
84 sMsg = "You must select an Etext to open"; 88 sMsg = "You must select an Etext to open";
85 QMessageBox::message( "Error",sMsg); 89 QMessageBox::message( "Error",sMsg);
86 } 90 }
87} 91}
88 92
89void OpenEtext::select_title(int index ) 93void OpenEtext::select_title(int index )
90{ 94{
91 OpenButton->setDown(TRUE); 95 OpenButton->setDown(TRUE);
92 QString temp; 96 QString temp;
93 temp.setNum( index + 1); 97 temp.setNum( index + 1);
94 const char * title; 98 const char * title;
95 title = QListBox_1->text( index ); 99 title = QListBox_1->text( index );
96 openFileTitle = title; 100 openFileTitle = title;
97 Config config("Gutenbrowser"); 101 Config config("Gutenbrowser");
98 config.setGroup( "Files" ); 102 config.setGroup( "Files" );
99 file = config.readEntry(temp, ""); 103 file = config.readEntry(temp, "");
100 OpenEtext::accept(); 104 OpenEtext::accept();
101} 105}
102 106
103/* 107/*!
104 This function imports already existing etexts into the local library list*/ 108 * This function imports already existing etexts into the local library list
109 */
105void OpenEtext::open() 110void OpenEtext::open()
106{ 111{
107OpenFileButton->setDown(TRUE); 112OpenFileButton->setDown(TRUE);
108 title = ""; 113 title = "";
109 QString currDir=""; 114 QString currDir="";
110 QString filer; 115 QString filer;
111 QString name_file; 116 QString name_file;
112 QString local ; 117 QString local ;
113 local = (QDir::homeDirPath () +"Applications/gutenbrowser"); 118 local = (QDir::homeDirPath () +"Applications/gutenbrowser");
114 QDir library( local); 119 QDir library( local);
115 120
116// fileBrowser *browseForFiles;
117// browseForFiles=new fileBrowser(this,"Browse for File", TRUE, 0, "guten/plain;text/plain");
118// // browseForFiles=new fileBrowser(this,"fileBrowser",TRUE,0, "*");
119// browseForFiles->setFileView( 0);
120// browseForFiles->showMaximized();
121// browseForFiles->exec();
122// QString selFile= browseForFiles->selectedFileName;
123// fileList=browseForFiles->fileList;
124 Config cfg("Gutenbrowser"); 121 Config cfg("Gutenbrowser");
125 cfg. setGroup ( "View" ); 122 cfg. setGroup ( "View" );
126 QString dir = cfg.readEntry("LastOpenDirectory", QPEApplication::documentDir()); 123 QString dir = cfg.readEntry("LastOpenDirectory", QPEApplication::documentDir());
127 QMap<QString, QStringList> map; 124 QMap<QString, QStringList> map;
128 map.insert(tr("All"), QStringList() ); 125 map.insert(tr("All"), QStringList() );
129 QStringList text; 126 QStringList text;
130 text << "text/*"; 127 text << "text/*";
131 map.insert(tr("Text"), text ); 128 map.insert(tr("Text"), text );
132 text << "*"; 129 text << "*";
133 map.insert(tr("All"), text ); 130 map.insert(tr("All"), text );
134 131
135 QString str = OFileDialog::getOpenFileName( 2, dir , QString::null, map); 132 QString str = OFileDialog::getOpenFileName( 2, dir , QString::null, map);
136 133
137 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() ) { 134 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() ) {
138 filer = str; 135 filer = str;
139 136
140 odebug << "Open file: "+str << oendl; 137 odebug << "Open file: "+str << oendl;
141 138
142 // QStringList::ConstIterator f; 139 if( filer.right(4) == ".txt" ||
143// QString fileTemp; 140 filer.right(4) == ".TXT" ||
144// for ( f = fileList.begin(); f != fileList.end(); f++ ) { 141 filer.right(4) == ".etx" ||
145// fileTemp = *f; 142 filer.right(4) == ".ETX" ||
146// fileTemp.right( fileTemp.length()-5); 143 filer.right(4) == ".etx" ||
147// fileName = fileTemp; 144 filer.right(4) == ".ETX" ||
148// if( !fileName.isEmpty() ){ 145 filer.right(4) == ".zip" ||
149// filer = fileName; 146 filer.right(4) == ".ZIP" )
150// } else { //filename is empty 147 {
151// // QString sMsg;
152// // sMsg = "Error opening library filelist "+fileName;
153// }
154
155 if( filer.right(4) == ".txt"
156 || filer.right(4) == ".TXT"
157 || filer.right(4) == ".etx"
158 || filer.right(4) == ".ETX"
159 || filer.right(4) == ".etx"
160 || filer.right(4) == ".ETX"
161 || filer.right(4) == ".zip"
162 || filer.right(4) == ".ZIP" ) {
163 QFileInfo zipFile( filer); 148 QFileInfo zipFile( filer);
164 QString s_fileName = zipFile.fileName(); 149 QString s_fileName = zipFile.fileName();
165 QString cmd; 150 QString cmd;
166 151
167 if( s_fileName.right(4) == ".zip") { // unzip that sucker.... 152 if( s_fileName.right(4) == ".zip") { // unzip the file
168 s_fileName = s_fileName.left( s_fileName.length() - 4); 153 s_fileName = s_fileName.left( s_fileName.length() - 4);
169 if( chdir((const char*)local_library.latin1())!=0) 154 if( chdir((const char*)local_library.latin1())!=0)
170 odebug << "chdir failed." << oendl; // QString cmd = "gunzip -d " + filer + " -d " + local_library; 155 odebug << "chdir failed." << oendl;
171 cmd = "gunzip -S .zip " + filer; 156 cmd = "gunzip -S .zip " + filer;
172 fileName = local_library + s_fileName + ".txt"; 157 fileName = local_library + s_fileName + ".txt";
173 system( cmd); 158 system( cmd);
174 } 159 } else { // else rename .txt to .etx
175// this renames the .txt to .etx!! 160 // odebug << "Filename is "+fileName << oendl;
176 else /*if( s_fileName.right(4) == ".txt" || if( s_fileName.right(4) == ".TXT"))*/ {
177// odebug << "Filename is "+fileName << oendl;
178 s_fileName = fileName; 161 s_fileName = fileName;
179 s_fileName.replace( s_fileName.length()-3,3,"gtn");// s_fileName.replace( s_fileName.length()-3,3,"etx"); 162 s_fileName.replace( s_fileName.length()-3,3,"gtn");
180 rename(fileName.latin1(),s_fileName.latin1()); 163 if (rename(fileName.latin1(),s_fileName.latin1()) == -1)
164 owarn << "Rename of " << fileName.latin1() << " to "
165 << s_fileName.latin1() << " failed" << oendl;
181 fileName = s_fileName; 166 fileName = s_fileName;
182// odebug << "Filename is now "+fileName << oendl; 167 // odebug << "Filename is now "+fileName << oendl;
183 } 168 }
184 } else 169 } else
185 fileName = str; 170 fileName = str;
186 171
187 FindTitle(fileName); 172 FindTitle(fileName);
188 173
189 QFileInfo fi( fileName); 174 QFileInfo fi( fileName);
190 name_file = fi.fileName(); 175 name_file = fi.fileName();
191 name_file = name_file.left(name_file.length() - 4); 176 name_file = name_file.left(name_file.length() - 4);
192 177
193 odebug << "Setting doclink" << oendl; 178 odebug << "Setting doclink" << oendl;
194 DocLnk lnk; 179 DocLnk lnk;
195 odebug << "name is " + name_file << oendl; 180 odebug << "name is " + name_file << oendl;
196 lnk.setName(name_file); //sets file name 181 lnk.setName(name_file); //sets file name
197 odebug << "Title is "+title << oendl; 182 odebug << "Title is "+title << oendl;
198 lnk.setComment(title); 183 lnk.setComment(title);
199 184
200 QListBox_1->clear(); 185 QListBox_1->clear();
201 getTitles(); 186 getTitles();
202 odebug << "Filename is "+fileName << oendl; 187 odebug << "Filename is "+fileName << oendl;
203 lnk.setFile(fileName); //sets File property 188 lnk.setFile(fileName); //sets File property
204 lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D 189 // @bug This is probably not a registered MIME type. Perhaps we should
190 // set a valid MIME type here instead. Or maybe register .etx as a
191 // Gutenberge etext?
192 lnk.setType("guten/plain");
205 lnk.setExec(fileName); 193 lnk.setExec(fileName);
206 lnk.setIcon("gutenbrowser/Gutenbrowser"); 194 lnk.setIcon("gutenbrowser/Gutenbrowser");
207 if(!lnk.writeLink()) 195 if(!lnk.writeLink())
208 odebug << "Writing doclink did not work" << oendl; 196 odebug << "Writing doclink did not work" << oendl;
209 197
210 } // end of for each file name.... 198 } // end of for each file name....
211 OpenFileButton->setDown(FALSE); 199 OpenFileButton->setDown(FALSE);
212} 200}
213 201
214/* 202/*
215find the title in the config file */ 203find the title in the config file */
216bool OpenEtext::FindTitle( QString filename) 204bool OpenEtext::FindTitle( QString filename)
217{ 205{
218 Config config("Gutenbrowser"); 206 Config config("Gutenbrowser");
219 config.setGroup( "Files" ); 207 config.setGroup( "Files" );
220 QString s_numofFiles = config.readEntry("NumberOfFiles", "0"); 208 QString s_numofFiles = config.readEntry("NumberOfFiles", "0");
221 int i_numofFiles = s_numofFiles.toInt(); 209 int i_numofFiles = s_numofFiles.toInt();
222 210
223 QFileInfo fi(filename); 211 QFileInfo fi(filename);
224 name = fi.fileName(); 212 name = fi.fileName();
225 odebug << "filename to open is " + name << oendl; 213 odebug << "filename to open is " + name << oendl;
226 QFile indexLib( filename); 214 QFile indexLib( filename);
227 bool findCheck = FALSE; 215 bool findCheck = FALSE;
228 // int Titlenumber=0;
229 216
230 if ( indexLib.open( IO_ReadOnly) ) { 217 if ( indexLib.open( IO_ReadOnly) ) {
231 odebug << "file opened successfully" << oendl; 218 odebug << "file opened successfully" << oendl;
232 QTextStream indexStream( &indexLib ); 219 QTextStream indexStream( &indexLib );
233 QString target = "Project Gutenberg Etext of"; 220 QString target = "Project Gutenberg Etext of";
234 QString target2 = "Project Gutenberg Etext"; 221 QString target2 = "Project Gutenberg Etext";
235 QString target3 = "Project Gutenberg's Etext of"; 222 QString target3 = "Project Gutenberg's Etext of";
236 QString target4 = "Project Gutenberg's Etext"; 223 QString target4 = "Project Gutenberg's Etext";
237 QString indexLine; 224 QString indexLine;
238 while ( !indexStream.eof() ) { 225 while ( !indexStream.eof() ) {
239 // until end of file.. 226 // until end of file..
240 indexLine = indexStream.readLine(); 227 indexLine = indexStream.readLine();
241 if( indexLine.find(target, 0, TRUE) > -1 && !findCheck) {findCheck = TRUE; 228 if( indexLine.find(target, 0, TRUE) > -1 && !findCheck) {findCheck = TRUE;
242 title = indexLine.mid( indexLine.find(target, 0, TRUE) + (target.length()) , indexLine.find("\r", 0, TRUE)); 229 title = indexLine.mid( indexLine.find(target, 0, TRUE) + (target.length()) , indexLine.find("\r", 0, TRUE));
243 title = title.left( title.find( "*",0, TRUE)); 230 title = title.left( title.find( "*",0, TRUE));
244 title = title.stripWhiteSpace (); 231 title = title.stripWhiteSpace ();
245// odebug << "Found the title 1 and it is " << title << "" << oendl; 232// odebug << "Found the title 1 and it is " << title << "" << oendl;
246// QListBox_1->insertItem ( title); 233// QListBox_1->insertItem ( title);
247 } 234 }
248 if( indexLine.find( target2, 0, TRUE) > -1 && !findCheck) { 235 if( indexLine.find( target2, 0, TRUE) > -1 && !findCheck) {
249 findCheck = TRUE; 236 findCheck = TRUE;
250 title = indexLine.mid( indexLine.find( target2, 0, TRUE ) + ( target2.length()) , indexLine.find("\r", 0, TRUE) ); 237 title = indexLine.mid( indexLine.find( target2, 0, TRUE ) + ( target2.length()) , indexLine.find("\r", 0, TRUE) );
251 title = title.left( title.find( "*",0, TRUE)); 238 title = title.left( title.find( "*",0, TRUE));
252 title = title.stripWhiteSpace (); 239 title = title.stripWhiteSpace ();
253// odebug << "Found the title 2 and it is " << title << "" << oendl; 240// odebug << "Found the title 2 and it is " << title << "" << oendl;
254// QListBox_1->insertItem ( title); 241// QListBox_1->insertItem ( title);
255 } 242 }
256 if( indexLine.find( target3, 0, TRUE) > -1 && !findCheck) { 243 if( indexLine.find( target3, 0, TRUE) > -1 && !findCheck) {
257 findCheck = TRUE; 244 findCheck = TRUE;
258 title = indexLine.mid( indexLine.find( target3, 0, TRUE) + ( target3.length()) , indexLine.find("\r", 0, TRUE)); 245 title = indexLine.mid( indexLine.find( target3, 0, TRUE) + ( target3.length()) , indexLine.find("\r", 0, TRUE));
259 title = title.left( title.find( "*",0, TRUE)); 246 title = title.left( title.find( "*",0, TRUE));
260 title = title.stripWhiteSpace (); 247 title = title.stripWhiteSpace ();
261// odebug << "Found the title 3 and it is " << title << "" << oendl; 248// odebug << "Found the title 3 and it is " << title << "" << oendl;
262 } 249 }
263 if( indexLine.find( target4, 0, TRUE) > -1 && !findCheck) { 250 if( indexLine.find( target4, 0, TRUE) > -1 && !findCheck) {
264 findCheck = TRUE; 251 findCheck = TRUE;
265 title = indexLine.mid( indexLine.find( target4, 0, TRUE) + ( target4.length()) , indexLine.find("\r", 0, TRUE)); 252 title = indexLine.mid( indexLine.find( target4, 0, TRUE) + ( target4.length()) , indexLine.find("\r", 0, TRUE));
266 title = title.left( title.find( "*",0, TRUE)); 253 title = title.left( title.find( "*",0, TRUE));
267 title = title.stripWhiteSpace (); 254 title = title.stripWhiteSpace ();
268// odebug << "Found the title 4 and it is " << title << "" << oendl; 255// odebug << "Found the title 4 and it is " << title << "" << oendl;
269 } 256 }
270 } //endof file 257 } //endof file
271 indexLib.close(); 258 indexLib.close();
272 259
273 if( !findCheck || title.length() < 2) { 260 if( !findCheck || title.length() < 2) {
274 odebug << "Trying hard to find title from GUTINDEX.ALL" << oendl; 261 odebug << "Trying hard to find title from GUTINDEX.ALL" << oendl;
275 title = titleFromLibrary( filename); 262 title = titleFromLibrary( filename);
276 findCheck = TRUE; 263 findCheck = TRUE;
277 } 264 }
278 265
279 if ( checkConf() == false && findCheck == TRUE) { 266 if ( checkConf() == false && findCheck == TRUE) {
280
281 config.setGroup( "Files"); 267 config.setGroup( "Files");
282 config.writeEntry("NumberOfFiles",i_numofFiles + 1 ); 268 config.writeEntry("NumberOfFiles",i_numofFiles + 1 );
283 QString interger; 269 QString interger;
284 interger.setNum( i_numofFiles +1); 270 interger.setNum( i_numofFiles +1);
285 config.writeEntry(interger, filename); 271 config.writeEntry(interger, filename);
286 config.setGroup( "Titles" ); 272 config.setGroup( "Titles" );
287 for (int i = 1; i <= i_numofFiles; i++) { //find dup titles in config file 273 for (int i = 1; i <= i_numofFiles; i++) { //find dup titles in config file
288 QString temp; 274 QString temp;
289 temp.setNum(i); 275 temp.setNum(i);
290 config.setGroup( "Files" ); 276 config.setGroup( "Files" );
291 QString ramble = config.readEntry(temp, "" ); 277 QString ramble = config.readEntry(temp, "" );
292 config.setGroup( "Titles" ); 278 config.setGroup( "Titles" );
293 QString title1 = config.readEntry(ramble, ""); 279 QString title1 = config.readEntry(ramble, "");
294 if(title1==title) 280 if(title1==title)
295 title+="1"; 281 title+="1";
296 i= i_numofFiles+1; 282 i= i_numofFiles+1;
297 } 283 }
298 if(title.length()<3) { 284 if(title.length()<3) {
299// odebug << "title is empty" << oendl; 285// odebug << "title is empty" << oendl;
300 title="Unknown"; 286 title="Unknown";
301 } 287 }
302 config.writeEntry( filename,title); 288 config.writeEntry( filename,title);
303 } 289 }
304 } else { 290 } else {
305 QString sMsg; 291 QString sMsg;
306 sMsg = "Error opening library file: "+filename; 292 sMsg = "Error opening library file: "+filename;
307 printf( sMsg+"\n"); 293 printf( sMsg+"\n");
308 } 294 }
309 return true; 295 return true;
310} 296}
311 297
312QString OpenEtext::titleFromLibrary( QString fileName) 298QString OpenEtext::titleFromLibrary( QString fileName)
313{ 299{
314 QFile indexLib( local_index); 300 QFile indexLib( local_index);
315 QString target; 301 QString target;
316 int find1 = fileName.findRev("/",-1,TRUE) + 1; 302 int find1 = fileName.findRev("/",-1,TRUE) + 1;
317 int find2 = fileName.findRev(".gtn",-1,TRUE) - find1; 303 int find2 = fileName.findRev(".gtn",-1,TRUE) - find1;
318 if(find2==-1-find1) 304 if(find2== (-1-find1))
319 int find2 = fileName.findRev(".etx",-1,TRUE) - find1; 305 find2 = fileName.findRev(".etx",-1,TRUE) - find1;
320 else if(find2==-1-find1) 306 else if(find2==(-1-find1))
321 int find2 = fileName.findRev(".txt",-1,TRUE) - find1; 307 find2 = fileName.findRev(".txt",-1,TRUE) - find1;
322 308
323 target = fileName.mid( find1, find2 ); 309 target = fileName.mid( find1, find2 );
324 QString checker = target.right(1); 310 QString checker = target.right(1);
325 bool ok; 311 bool ok;
326 checker.toInt( &ok,10); 312 checker.toInt( &ok,10);
327 if( ok) { 313 if( ok) {
328 target = target.left( target.length()-1); 314 target = target.left( target.length()-1);
329 checker = target.right(1); 315 checker = target.right(1);
330 ok = FALSE; 316 ok = FALSE;
331 checker.toInt( &ok,10); 317 checker.toInt( &ok,10);
332 if( ok) { 318 if( ok) {
333 target = target.left( target.length()-1); 319 target = target.left( target.length()-1);
334 } 320 }
335 } 321 }
336 if ( indexLib.open( IO_ReadOnly) ) { 322 if ( indexLib.open( IO_ReadOnly) ) {
337 // file opened successfully 323 // file opened successfully
338 QTextStream indexStream( &indexLib ); 324 QTextStream indexStream( &indexLib );
339 QString indexLine; 325 QString indexLine;
340 bool findCheck = FALSE; 326 bool findCheck = FALSE;
341 while ( !indexStream.atEnd() ) { // until end of file.. 327 while ( !indexStream.atEnd() ) { // until end of file..
342 indexLine = indexStream.readLine(); 328 indexLine = indexStream.readLine();
343 329
344 if( indexLine.find( target,0,FALSE) > 0 ) { 330 if( indexLine.find( target,0,FALSE) > 0 ) {
345 findCheck = TRUE; 331 findCheck = TRUE;
346 title = indexLine.mid( 9, 50); 332 title = indexLine.mid( 9, 50);
347// title = indexLine.mid( 26, indexLine.length() );
348 title = title.stripWhiteSpace (); 333 title = title.stripWhiteSpace ();
349// odebug << "Finally Found the title and it is\n " << title << "" << oendl; 334// odebug << "Finally Found the title and it is\n " << title << "" << oendl;
350// QListBox_1->insertItem ( title); 335// QListBox_1->insertItem ( title);
351 } 336 }
352 } //end while loop 337 } //end while loop
353 } 338 }
354 else 339 else
355 odebug << "Error opening library index "+ local_index << oendl; 340 odebug << "Error opening library index "+ local_index << oendl;
356 return title; 341 return title;
357} 342}
358 343
359bool OpenEtext::checkConf() 344bool OpenEtext::checkConf()
360{ 345{
361 QString file = fileName; 346 QString file = fileName;
362 Config config("Gutenbrowser"); 347 Config config("Gutenbrowser");
363 config.setGroup( "Files" ); 348 config.setGroup( "Files" );
364 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" ); 349 QString s_numofFiles = config.readEntry("NumberOfFiles", "0" );
365 int i_numofFiles = s_numofFiles.toInt(); 350 int i_numofFiles = s_numofFiles.toInt();
366 351
367 for (int i = 1; i <= i_numofFiles; i++) { 352 for (int i = 1; i <= i_numofFiles; i++) {
368 QString temp; 353 QString temp;
369 temp.setNum(i); 354 temp.setNum(i);
370 config.setGroup( "Files"); 355 config.setGroup( "Files");
371 QString ramble = config.readEntry(temp, "" ); 356 QString ramble = config.readEntry(temp, "" );
372 357
373 if(ramble == file ) { 358 if(ramble == file ) {
374 return true; 359 return true;
375 } 360 }
376 } 361 }
377 return false; 362 return false;
378} 363}
379 364
380void OpenEtext::remove() 365void OpenEtext::remove()
381{ 366{
382 title_text = QListBox_1->text( QListBox_1->currentItem() ); 367 title_text = QListBox_1->text( QListBox_1->currentItem() );
383 title_text=title_text.stripWhiteSpace(); 368 title_text=title_text.stripWhiteSpace();
384 QString msg ="<p>Do you really want to REMOVE\n" +title_text +"?\nThis will not delete the file.</P>"; 369 QString msg ="<p>Do you really want to REMOVE\n" + title_text +
385 switch( QMessageBox::information( this, (tr("Remove Etext")), 370 "?\nThis will not delete the file.</P>";
386 (tr(msg)), 371 switch( QMessageBox::information( this, tr("Remove Etext"),
387 (tr("&Yes")), (tr("&Cancel")), 0 )){ 372 tr(msg),
373 tr("&Yes"), tr("&Cancel"), 0 ) )
374 {
388 case 0: // Yes clicked, 375 case 0: // Yes clicked,
389 removeSelection(); 376 removeSelection();
390 QListBox_1->clear(); 377 QListBox_1->clear();
391 getTitles(); 378 getTitles();
392 break; 379 break;
393 case 1: // Cancel 380 case 1:
394 break; 381 default:
395 }; 382 }
396} 383}
397 384
398/* 385/*!
399 this removes selected title entry*/ 386 * This removes selected title entry
387 */
400void OpenEtext::removeSelection() 388void OpenEtext::removeSelection()
401{ 389{
402 Config config("Gutenbrowser"); 390 Config config("Gutenbrowser");
403 config.setGroup( "Files" ); 391 config.setGroup( "Files" );
404 s_numofFiles = config.readEntry("NumberOfFiles", "0"); 392 s_numofFiles = config.readEntry("NumberOfFiles", "0");
405 int rem=0; 393 int rem=0;
406 int i_numofFiles = s_numofFiles.toInt(); 394 int i_numofFiles = s_numofFiles.toInt();
407 QString fileNum2; 395 QString fileNum2;
408 QString fileNum; 396 QString fileNum;
409 397
410 for (int i = 1; i <= i_numofFiles; i++) { 398 for (int i = 1; i <= i_numofFiles; i++) {
411 fileNum.setNum(i); 399 fileNum.setNum(i);
412 config.setGroup( "Files" ); 400 config.setGroup( "Files" );
413 401
414 QString s_filename = config.readEntry(fileNum, "" ); 402 QString s_filename = config.readEntry(fileNum, "" );
415 config.setGroup( "Titles" ); 403 config.setGroup( "Titles" );
416 404
417 QString file_title = config.readEntry( s_filename, ""); 405 QString file_title = config.readEntry( s_filename, "");
418 if(title_text == file_title) { 406 if(title_text == file_title) {
419 rem=i; 407 rem=i;
420//odebug << "file title to remove is "+file_title << oendl; 408 //odebug << "file title to remove is "+file_title << oendl;
421 selFile = s_filename; 409 selFile = s_filename;
422 config.removeEntry( s_filename); //removes file=title 410 config.removeEntry( s_filename); //removes file=title
423 } 411 }
424 } 412 }
425 config.setGroup( "Files" ); 413 config.setGroup( "Files" );
426 414
427 for(int fg = rem; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry 415 for(int fg = rem; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry
428 fileNum.setNum(fg); 416 fileNum.setNum(fg);
429 fileNum2.setNum( fg + 1); 417 fileNum2.setNum( fg + 1);
430 418
431 QString s_filename2 = config.readEntry(fileNum2, "" ); 419 QString s_filename2 = config.readEntry(fileNum2, "" );
432 420
433 if (!s_filename2.isEmpty()) { 421 if (!s_filename2.isEmpty()) {
434 config.writeEntry(fileNum, s_filename2 ); 422 config.writeEntry(fileNum, s_filename2 );
435 } 423 }
436 } 424 }
437 config.writeEntry("NumberOfFiles", i_numofFiles - 1 ); 425 config.writeEntry("NumberOfFiles", i_numofFiles - 1 );
438 config.removeEntry(fileNum2); 426 config.removeEntry(fileNum2);
439// remFile();
440} 427}
441 428
442/* 429/*!
443 removes file title name from list and config file*/ 430 * Removes file title name from list and config file
431 */
444void OpenEtext::remFile() 432void OpenEtext::remFile()
445{ 433{
446 Config config("Gutenbrowser"); 434 Config config("Gutenbrowser");
447 config.setGroup( "Files" ); 435 config.setGroup( "Files" );
448 QString remFile; 436 QString remFile;
449 s_numofFiles = config.readEntry("NumberOfFiles", "0"); 437 s_numofFiles = config.readEntry("NumberOfFiles", "0");
450 int i_numofFiles = s_numofFiles.toInt(); 438 int i_numofFiles = s_numofFiles.toInt();
451 for (int i = 1; i <= i_numofFiles; i++) { 439 for (int i = 1; i <= i_numofFiles; i++) {
452 QString fileNum; 440 QString fileNum;
453 fileNum.setNum(i); 441 fileNum.setNum(i);
454 QString s_filename = config.readEntry(fileNum, "" ); 442 QString s_filename = config.readEntry(fileNum, "" );
455 443
456 if( s_filename == selFile) { 444 if( s_filename == selFile) {
457 config.removeEntry(selFile); 445 config.removeEntry(selFile);
458 446
459 for(int fg = i_numofFiles - i; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry 447 for(int fg = i_numofFiles - i; fg < i_numofFiles ; fg++ ) { //this rewrites Files number entry
460 QString fileNum2; 448 QString fileNum2;
461 fileNum2.setNum( fg + 1); 449 fileNum2.setNum( fg + 1);
462 QString s_filename2 = config.readEntry(fileNum2, "" ); 450 QString s_filename2 = config.readEntry(fileNum2, "" );
463 451
464 if (!s_filename2.isEmpty()) { 452 if (!s_filename2.isEmpty())
465 config.writeEntry(fileNum, s_filename2 ); 453 config.writeEntry(fileNum, s_filename2 );
466 }
467 } 454 }
468 } 455 }
469 } 456 }
470 config.writeEntry("NumberOfFiles", i_numofFiles - 1 ); 457 config.writeEntry("NumberOfFiles", i_numofFiles - 1 );
471 config.removeEntry(s_numofFiles); 458 config.removeEntry(s_numofFiles);
472 459
473 QListBox_1->triggerUpdate(true); 460 QListBox_1->triggerUpdate(true);
474} 461}
475 462
476/* 463/*!
477sorts the list*/ 464 * Sorts the list
465 */
478void OpenEtext::scan() { 466void OpenEtext::scan() {
479 467
480 QListBox_1->sort(TRUE); 468 QListBox_1->sort(TRUE);
481 QListBox_1->triggerUpdate(true); 469 QListBox_1->triggerUpdate(true);
482} 470}
483 471
484void OpenEtext::editTitle() { 472void OpenEtext::editTitle() {
485 473
486 int currentItem=QListBox_1->currentItem(); 474 int currentItem=QListBox_1->currentItem();
487 QString title_text = QListBox_1->text( currentItem); 475 QString title_text = QListBox_1->text( currentItem);
488//odebug << "Selected "+title_text << oendl; 476 //odebug << "Selected "+title_text << oendl;
489 477
490 Config config("Gutenbrowser"); 478 Config config("Gutenbrowser");
491 config.setGroup( "Files" ); 479 config.setGroup( "Files" );
492 s_numofFiles = config.readEntry("NumberOfFiles", "0"); 480 s_numofFiles = config.readEntry("NumberOfFiles", "0");
493 int i_numofFiles = s_numofFiles.toInt(); 481 int i_numofFiles = s_numofFiles.toInt();
494 QString fileNum; 482 QString fileNum;
495 for (int i = 1; i <= i_numofFiles+1; i++) { 483 for (int i = 1; i <= i_numofFiles+1; i++) {
496 484
497 fileNum.setNum(i); 485 fileNum.setNum(i);
498 config.setGroup( "Files" ); 486 config.setGroup( "Files" );
499 QString s_filename = config.readEntry(fileNum, "" ); 487 QString s_filename = config.readEntry(fileNum, "" );
500 config.setGroup( "Titles" ); 488 config.setGroup( "Titles" );
501 QString file_title = config.readEntry( s_filename, ""); 489 QString file_title = config.readEntry( s_filename, "");
502//odebug << "file_title is "+file_title << oendl; 490 //odebug << "file_title is "+file_title << oendl;
503 if(title_text == file_title ) { 491 if(title_text == file_title ) {
504 selFile = s_filename; 492 selFile = s_filename;
505//odebug << "Edit: "+ file_title << oendl; 493 //odebug << "Edit: "+ file_title << oendl;
506 i=i_numofFiles+1; 494 i=i_numofFiles+1;
507 Edit_Title *titleEdit; 495 Edit_Title *titleEdit;
508 titleEdit = new Edit_Title(this,file_title ,TRUE); 496 titleEdit = new Edit_Title(this,file_title ,TRUE);
509 if(titleEdit->exec() !=0) { 497 if(titleEdit->exec() !=0) {
510//odebug << titleEdit->newTitle << oendl; 498 //odebug << titleEdit->newTitle << oendl;
511 config.writeEntry( s_filename, titleEdit->newTitle); 499 config.writeEntry( s_filename, titleEdit->newTitle);
512 QListBox_1->removeItem(currentItem); 500 QListBox_1->removeItem(currentItem);
513 QListBox_1->insertItem ( QPixmap( QPEApplication::qpeDir()+"pics/gutenbrowser/gutenbrowser_sm.png"), titleEdit->newTitle, currentItem); 501 QListBox_1->insertItem (
502 QPixmap( QPEApplication::qpeDir()+
503 "pics/gutenbrowser/gutenbrowser_sm.png"),
504 titleEdit->newTitle, currentItem
505 );
514 } 506 }
515 } 507 }
516 } 508 }
517 509
518// getTitles(); 510 //getTitles();
519 QListBox_1->triggerUpdate(true); 511 QListBox_1->triggerUpdate(true);
520} 512}
521 513
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index 84d28ce..5f281b7 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -48,78 +48,80 @@ _;:, .> :=|. This program is free software; you can
48#include <unistd.h> 48#include <unistd.h>
49 49
50typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame, 50typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame,
51 int width, int height,int bytes ); 51 int width, int height,int bytes );
52typedef void (*vo_scale_cb) (void*, int, int, double, 52typedef void (*vo_scale_cb) (void*, int, int, double,
53 int*, int*, int*, int*, double*, int*, int* ); 53 int*, int*, int*, int*, double*, int*, int* );
54typedef void (*dest_size_cb) (void*, int, int, double, int*, int*, double*); 54typedef void (*dest_size_cb) (void*, int, int, double, int*, int*, double*);
55 55
56 56
57extern "C" { 57extern "C" {
58 xine_vo_driver_t* init_video_out_plugin( xine_t *xine, void* video, display_xine_frame_t, void *, vo_scale_cb, dest_size_cb ); 58 xine_vo_driver_t* init_video_out_plugin( xine_t *xine, void* video, display_xine_frame_t, void *, vo_scale_cb, dest_size_cb );
59 int null_is_showing_video( const xine_vo_driver_t* self ); 59 int null_is_showing_video( const xine_vo_driver_t* self );
60 void null_set_show_video( const xine_vo_driver_t* self, int show ); 60 void null_set_show_video( const xine_vo_driver_t* self, int show );
61 void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb ); 61 void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb );
62 void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data ); 62 void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data );
63} 63}
64 64
65using namespace XINE; 65using namespace XINE;
66 66
67Lib::Lib( InitializationMode initMode, XineVideoWidget* widget ) 67Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
68{ 68{
69 m_initialized = false; 69 m_initialized = false;
70 m_duringInitialization = false; 70 m_duringInitialization = false;
71 m_video = false; 71 m_video = false;
72 m_wid = widget; 72 m_wid = widget;
73 printf("Lib"); 73 printf("Lib");
74 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf"; 74 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf";
75 // get the configuration 75 // get the configuration
76 76
77 // not really OO, should be an extra class, later 77 // not really OO, should be an extra class, later
78 if ( !QFile::exists(configPath) ) { 78 if ( !QFile::exists(configPath) ) {
79 QFile f(configPath); 79 QFile f(configPath);
80 f.open(IO_WriteOnly); 80 if (f.open(IO_WriteOnly)) {
81 QTextStream ts( &f ); 81 QTextStream ts( &f );
82 ts << "misc.memcpy_method:glibc\n"; 82 ts << "misc.memcpy_method:glibc\n";
83 ts << "# uncomment if you experience double speed audio \n #audio.oss_sync_method:softsync\n"; 83 ts << "# uncomment if you experience double speed audio \n #audio.oss_sync_method:softsync\n";
84 ts << "codec.ffmpeg_pp_quality:3\n"; 84 ts << "codec.ffmpeg_pp_quality:3\n";
85 ts << "audio.num_buffers:50\n"; 85 ts << "audio.num_buffers:50\n";
86 ts << "audio.size_buffers:4096\n"; 86 ts << "audio.size_buffers:4096\n";
87 ts << "video.num_buffers:20\n"; 87 ts << "video.num_buffers:20\n";
88 ts << "video.size_buffers:4096\n"; 88 ts << "video.size_buffers:4096\n";
89 ts << "audio.out_num_audio_buf:16\n"; 89 ts << "audio.out_num_audio_buf:16\n";
90 ts << "audio.out_size_audio_buf:8096\n"; 90 ts << "audio.out_size_audio_buf:8096\n";
91 ts << "audio.out_size_zero_buf:1024\n"; 91 ts << "audio.out_size_zero_buf:1024\n";
92 ts << "audio.passthrough_offset:0\n"; 92 ts << "audio.passthrough_offset:0\n";
93 f.close(); 93 f.close();
94 } else
95 owarn << "Failed to open " f.name() << oendl;
94 } 96 }
95 97
96 if ( initMode == InitializeImmediately ) { 98 if ( initMode == InitializeImmediately ) {
97 initialize(); 99 initialize();
98 m_initialized = true; 100 m_initialized = true;
99 } 101 }
100 else 102 else
101 start(); 103 start();
102} 104}
103 105
104void Lib::run() 106void Lib::run()
105{ 107{
106 odebug << "Lib::run() started" << oendl; 108 odebug << "Lib::run() started" << oendl;
107 initialize(); 109 initialize();
108 m_initialized = true; 110 m_initialized = true;
109 odebug << "Lib::run() finished" << oendl; 111 odebug << "Lib::run() finished" << oendl;
110} 112}
111 113
112void Lib::initialize() 114void Lib::initialize()
113{ 115{
114 m_duringInitialization = true; 116 m_duringInitialization = true;
115 m_xine = xine_new( ); 117 m_xine = xine_new( );
116 118
117 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf"; 119 QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf";
118 xine_config_load( m_xine, QFile::encodeName( configPath ) ); 120 xine_config_load( m_xine, QFile::encodeName( configPath ) );
119 121
120 xine_init( m_xine ); 122 xine_init( m_xine );
121 123
122 // allocate oss for sound 124 // allocate oss for sound
123 // and fb for framebuffer 125 // and fb for framebuffer
124 m_audioOutput = xine_open_audio_driver( m_xine, "oss", NULL ); 126 m_audioOutput = xine_open_audio_driver( m_xine, "oss", NULL );
125 m_videoOutput = ::init_video_out_plugin( m_xine, NULL, 127 m_videoOutput = ::init_video_out_plugin( m_xine, NULL,
diff --git a/noncore/multimedia/opieplayer2/om3u.cpp b/noncore/multimedia/opieplayer2/om3u.cpp
index 790fa09..f2a01d3 100644
--- a/noncore/multimedia/opieplayer2/om3u.cpp
+++ b/noncore/multimedia/opieplayer2/om3u.cpp
@@ -9,144 +9,137 @@
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU General Public 10:`=1 )Y*s>-.--   : the terms of the GNU General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; General Public License for more 20..}^=.=       =       ; General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = General Public License along with 24  -_. . .   )=.  = General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29 29
30*/ 30*/
31 31
32#include "om3u.h" 32#include "om3u.h"
33 33
34/* OPIE */ 34/* OPIE */
35#include <opie2/odebug.h> 35#include <opie2/odebug.h>
36using namespace Opie::Core; 36using namespace Opie::Core;
37 37
38//extern PlayListWidget *playList; 38//extern PlayListWidget *playList;
39 39
40Om3u::Om3u( const QString &filePath, int mode) 40Om3u::Om3u( const QString &filePath, int mode)
41 : QStringList (){ 41 : QStringList ()
42odebug << "<<<<<<<new m3u "+filePath << oendl; 42{
43 f.setName(filePath); 43 odebug << "<<<<<<<new m3u "+filePath << oendl;
44 f.open(mode); 44 f.setName(filePath);
45 if (!f.open(mode)) {
46 owarn << "Unable to open file " << f.name() << oendl;
47 }
45} 48}
46 49
47Om3u::~Om3u(){} 50Om3u::~Om3u(){}
48 51
49void Om3u::readM3u() { 52void Om3u::readM3u() {
50// odebug << "<<<<<<reading m3u "+f.name() << oendl; 53// odebug << "<<<<<<reading m3u "+f.name() << oendl;
51 QTextStream t(&f); 54 QTextStream t(&f);
52 t.setEncoding(QTextStream::UnicodeUTF8); 55 t.setEncoding(QTextStream::UnicodeUTF8);
53 QString s; 56 QString s;
54 while ( !t.atEnd() ) { 57 while ( !t.atEnd() ) {
55 s=t.readLine(); 58 s=t.readLine();
56// odebug << s << oendl; 59 // odebug << s << oendl;
57 if( s.find( "#", 0, TRUE) == -1 ) { 60 if( s.find( "#", 0, TRUE) == -1 ) {
58 if( s.left(2) == "E:" || s.left(2) == "P:" ) { 61 if( s.left(2) == "E:" || s.left(2) == "P:" ) {
59 s = s.right( s.length() -2 ); 62 s = s.right( s.length() -2 );
60 QFileInfo f( s ); 63 QFileInfo f( s );
61 QString name = f.baseName(); 64 QString name = f.baseName();
62 name = name.right( name.length() - name.findRev( "\\", -1, TRUE ) -1 ); 65 name = name.right( name.length() - name.findRev( "\\", -1, TRUE ) -1 );
63 s=s.replace( QRegExp( "\\" ), "/" ); 66 s=s.replace( QRegExp( "\\" ), "/" );
64 append(s); 67 append(s);
65// odebug << s << oendl; 68// odebug << s << oendl;
66 } else { // is url 69 } else { // is url
67 QString name; 70 QString name;
68 name = s; 71 name = s;
69 append(name); 72 append(name);
70 } 73 }
71 } 74 }
72 } 75 }
73} 76}
74 77
75void Om3u::readPls() { //it's a pls file 78void Om3u::readPls() { //it's a pls file
76 QTextStream t( &f ); 79 QTextStream t( &f );
77 t.setEncoding(QTextStream::UnicodeUTF8); 80 t.setEncoding(QTextStream::UnicodeUTF8);
78 QString s; 81 QString s;
79 while ( !t.atEnd() ) { 82 while ( !t.atEnd() ) {
80 s = t.readLine(); 83 s = t.readLine();
81 if( s.left(4) == "File" ) { 84 if( s.left(4) == "File" ) {
82 s = s.right( s.length() - s.find("=",0,true)-1 ); 85 s = s.right( s.length() - s.find("=",0,true)-1 );
83 s = s.stripWhiteSpace(); 86 s = s.stripWhiteSpace();
84 s.replace( QRegExp( "%20" )," "); 87 s.replace( QRegExp( "%20" )," ");
85// odebug << "adding " + s + " to playlist" << oendl; 88 // odebug << "adding " + s + " to playlist" << oendl;
86 // numberofentries=2 89 s = s.replace( QRegExp( "\\" ), "/" );
87 // File1=http 90 QFileInfo f( s );
88 // Title 91 QString name = f.baseName();
89 // Length 92 if( name.left( 4 ) == "http" ) {
90 // Version 93 name = s.right( s.length() - 7);
91 // File2=http 94 } else {
92 s = s.replace( QRegExp( "\\" ), "/" ); 95 name = s;
93 QFileInfo f( s ); 96 }
94 QString name = f.baseName(); 97 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
95 if( name.left( 4 ) == "http" ) { 98 if( s.at( s.length() - 4) == '.') // if this is probably a file
96 name = s.right( s.length() - 7); 99 append(s);
97 } else { 100 else { //if its a url
98 name = s;
99 }
100 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
101 if( s.at( s.length() - 4) == '.') // if this is probably a file
102 append(s); 101 append(s);
103 else { //if its a url
104// if( name.right( 1 ).find( '/' ) == -1) {
105// s += "/";
106// }
107 append(s);
108 }
109 } 102 }
110 } 103 }
104 }
111} 105}
112 106
113void Om3u::write() { //writes list to m3u file 107void Om3u::write() { //writes list to m3u file
114 QString list; 108 QString list;
115 QTextStream t(&f); 109 QTextStream t(&f);
116 t.setEncoding(QTextStream::UnicodeUTF8); 110 t.setEncoding(QTextStream::UnicodeUTF8);
117 if(count()>0) { 111 if(count()>0) {
118 for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) { 112 for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) {
119// odebug << *it << oendl; 113 // odebug << *it << oendl;
120 t << *it << "\n"; 114 t << *it << "\n";
115 }
121 } 116 }
122 }
123// f.close();
124} 117}
125 118
126void Om3u::add(const QString &filePath) { //adds to m3u file 119void Om3u::add(const QString &filePath) { //adds to m3u file
127 append(filePath); 120 append(filePath);
128} 121}
129 122
130void Om3u::remove(const QString &filePath) { //removes from m3u list 123void Om3u::remove(const QString &filePath) { //removes from m3u list
131 QString list, currentFile; 124 QString list, currentFile;
132 if(count()>0) { 125 if(count()>0) {
133 for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) { 126 for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) {
134 currentFile=*it; 127 currentFile=*it;
135 // odebug << *it << oendl; 128 // odebug << *it << oendl;
136 129
137 if( filePath != currentFile) 130 if( filePath != currentFile)
138 list += currentFile+"\n"; 131 list += currentFile+"\n";
132 }
133 f.writeBlock( list, list.length() );
139 } 134 }
140 f.writeBlock( list, list.length() );
141 }
142} 135}
143 136
144void Om3u::deleteFile(const QString &/*filePath*/) {//deletes m3u file 137void Om3u::deleteFile(const QString &/*filePath*/) {//deletes m3u file
145 f.close(); 138 f.close();
146 f.remove(); 139 f.remove();
147 140
148} 141}
149 142
150void Om3u::close() { //closes m3u file 143void Om3u::close() { //closes m3u file
151 f.close(); 144 f.close();
152} 145}
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp
index b5cac61..5fc8a0b 100644
--- a/noncore/multimedia/opieplayer2/threadutil.cpp
+++ b/noncore/multimedia/opieplayer2/threadutil.cpp
@@ -204,70 +204,75 @@ void Thread::start()
204 pthread_attr_destroy( &attributes ); 204 pthread_attr_destroy( &attributes );
205} 205}
206 206
207void Thread::terminate() 207void Thread::terminate()
208{ 208{
209 AutoLock lock( d->guard ); 209 AutoLock lock( d->guard );
210 if ( !d->isRunning ) 210 if ( !d->isRunning )
211 return; 211 return;
212 212
213 pthread_cancel( d->self ); 213 pthread_cancel( d->self );
214} 214}
215 215
216bool Thread::wait() 216bool Thread::wait()
217{ 217{
218 AutoLock lock( d->guard ); 218 AutoLock lock( d->guard );
219 if ( !d->isRunning ) 219 if ( !d->isRunning )
220 return true; 220 return true;
221 221
222 return d->finishCondition.wait( d->guard ); 222 return d->finishCondition.wait( d->guard );
223} 223}
224 224
225bool Thread::isRunning() const 225bool Thread::isRunning() const
226{ 226{
227 AutoLock lock( d->guard ); 227 AutoLock lock( d->guard );
228 return d->isRunning; 228 return d->isRunning;
229} 229}
230 230
231void Thread::exit() 231void Thread::exit()
232{ 232{
233 pthread_exit( 0 ); 233 pthread_exit( 0 );
234} 234}
235 235
236OnewayNotifier::OnewayNotifier() 236OnewayNotifier::OnewayNotifier() :
237{ 237 m_readFd(-1),
238 int fds[ 2 ]; 238 m_writeFd(-1)
239 pipe( fds ); 239{
240 m_readFd = fds[ 0 ]; 240 int fds[ 2 ] = { -1, -1 };
241 m_writeFd = fds[ 1 ]; 241 if (pipe( fds ) == 0) {
242 m_readFd = fds[ 0 ];
243 m_writeFd = fds[ 1 ];
244 } else {
245 owarn << "Call to pipe() failed" << oendl;
246 }
242 247
243 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read ); 248 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read );
244 connect( m_notifier, SIGNAL( activated(int) ), 249 connect( m_notifier, SIGNAL( activated(int) ),
245 this, SLOT( wakeUp() ) ); 250 this, SLOT( wakeUp() ) );
246} 251}
247 252
248OnewayNotifier::~OnewayNotifier() 253OnewayNotifier::~OnewayNotifier()
249{ 254{
250 delete m_notifier; 255 delete m_notifier;
251 256
252 ::close( m_readFd ); 257 ::close( m_readFd );
253 ::close( m_writeFd ); 258 ::close( m_writeFd );
254} 259}
255 260
256void OnewayNotifier::notify() 261void OnewayNotifier::notify()
257{ 262{
258 const char c = 42; 263 const char c = 42;
259 ::write( m_writeFd, &c, 1 ); 264 ::write( m_writeFd, &c, 1 );
260} 265}
261 266
262void OnewayNotifier::wakeUp() 267void OnewayNotifier::wakeUp()
263{ 268{
264 char c = 0; 269 char c = 0;
265 270
266 if ( ::read( m_readFd, &c, 1 ) != 1 ) 271 if ( ::read( m_readFd, &c, 1 ) != 1 )
267 return; 272 return;
268 273
269 emit awake(); 274 emit awake();
270} 275}
271 276
272ChannelMessage::ChannelMessage( int type, int data, const char* msg ) 277ChannelMessage::ChannelMessage( int type, int data, const char* msg )
273 : m_type( type ), m_data( data ), m_msg( msg ), 278 : m_type( type ), m_data( data ), m_msg( msg ),
diff --git a/noncore/net/opiestumbler/opiestumbler.cpp b/noncore/net/opiestumbler/opiestumbler.cpp
index 9b0d099..ab0b8d8 100644
--- a/noncore/net/opiestumbler/opiestumbler.cpp
+++ b/noncore/net/opiestumbler/opiestumbler.cpp
@@ -313,65 +313,66 @@ void OpieStumbler::slotJoinNetwork()
313 //Wait 5 sec for association 313 //Wait 5 sec for association
314 QTimer::singleShot(5000, this, SLOT(slotAssociated())); 314 QTimer::singleShot(5000, this, SLOT(slotAssociated()));
315} 315}
316 316
317void OpieStumbler::slotAssociated() 317void OpieStumbler::slotAssociated()
318{ 318{
319 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 319 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
320 320
321 if( !wiface ) { 321 if( !wiface ) {
322 slotCleanSplash(); 322 slotCleanSplash();
323 return; 323 return;
324 } 324 }
325 325
326 if (!wiface->isAssociated()) { 326 if (!wiface->isAssociated()) {
327 Global::statusMessage(tr("Could not Join")); 327 Global::statusMessage(tr("Could not Join"));
328 m_infoLabel->setText(tr("Could not Join")); 328 m_infoLabel->setText(tr("Could not Join"));
329 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 329 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
330 return; 330 return;
331 } 331 }
332 332
333 Global::statusMessage(tr("Joined")); 333 Global::statusMessage(tr("Joined"));
334 m_pbar->setProgress(2); 334 m_pbar->setProgress(2);
335 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid)); 335 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid));
336 336
337 if(m_proc) { 337 if(m_proc) {
338 m_proc->kill(); 338 m_proc->kill();
339 delete m_proc; 339 delete m_proc;
340 } 340 }
341 341
342 m_proc = new Opie::Core::OProcess(this); 342 m_proc = new Opie::Core::OProcess(this);
343 343
344 *m_proc << "udhcpc" << "-f" << "-n" << "-i" << m_interface; 344 *m_proc << "udhcpc" << "-f" << "-n" << "-i" << m_interface;
345 m_proc->start(Opie::Core::OProcess::DontCare); 345 if (!m_proc->start(Opie::Core::OProcess::DontCare))
346 owarn << "Execution of udhcpc returned false. Are paths correct?" << oendl;
346 QTimer::singleShot(5000, this, SLOT(slotCheckDHCP())); 347 QTimer::singleShot(5000, this, SLOT(slotCheckDHCP()));
347} 348}
348 349
349void OpieStumbler::slotCheckDHCP() 350void OpieStumbler::slotCheckDHCP()
350{ 351{
351 if(!m_proc->isRunning()) { 352 if(!m_proc->isRunning()) {
352 Global::statusMessage(tr("Could not Obtain an Address")); 353 Global::statusMessage(tr("Could not Obtain an Address"));
353 m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address"))); 354 m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address")));
354 delete m_proc; 355 delete m_proc;
355 m_proc = NULL; 356 m_proc = NULL;
356 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 357 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
357 return; 358 return;
358 } 359 }
359 m_listCurrent->show(); 360 m_listCurrent->show();
360 m_pbar->setProgress(3); 361 m_pbar->setProgress(3);
361 362
362 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 363 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
363 QString ipv4 = wiface->ipV4Address().toString(); 364 QString ipv4 = wiface->ipV4Address().toString();
364 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4)); 365 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4));
365 Global::statusMessage(tr("Obtained IP") + " " + ipv4); 366 Global::statusMessage(tr("Obtained IP") + " " + ipv4);
366 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 367 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
367 368
368} 369}
369 370
370void OpieStumbler::slotCleanSplash() 371void OpieStumbler::slotCleanSplash()
371{ 372{
372 delete m_pbar; 373 delete m_pbar;
373 m_pbar = 0; 374 m_pbar = 0;
374 375
375 delete m_infoLabel; 376 delete m_infoLabel;
376 m_infoLabel = 0; 377 m_infoLabel = 0;
377 378
diff --git a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
index 650e634..e81f603 100644
--- a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
@@ -167,65 +167,66 @@ MainWindowImp::~MainWindowImp()
167/** 167/**
168 * Query the kernel for all of the interfaces. 168 * Query the kernel for all of the interfaces.
169 */ 169 */
170void MainWindowImp::getAllInterfaces() 170void MainWindowImp::getAllInterfaces()
171{ 171{
172 int sockfd = socket(PF_INET, SOCK_DGRAM, 0); 172 int sockfd = socket(PF_INET, SOCK_DGRAM, 0);
173 if(sockfd == -1) 173 if(sockfd == -1)
174 return; 174 return;
175 175
176 struct ifreq ifr; 176 struct ifreq ifr;
177 QStringList ifaces; 177 QStringList ifaces;
178 QFile procFile(QString(_PROCNETDEV)); 178 QFile procFile(QString(_PROCNETDEV));
179 int result; 179 int result;
180 Interface *i; 180 Interface *i;
181 181
182 if (! procFile.exists()) 182 if (! procFile.exists())
183 { 183 {
184 struct ifreq ifrs[100]; 184 struct ifreq ifrs[100];
185 struct ifconf ifc; 185 struct ifconf ifc;
186 ifc.ifc_len = sizeof(ifrs); 186 ifc.ifc_len = sizeof(ifrs);
187 ifc.ifc_req = ifrs; 187 ifc.ifc_req = ifrs;
188 result = ioctl(sockfd, SIOCGIFCONF, &ifc); 188 result = ioctl(sockfd, SIOCGIFCONF, &ifc);
189 189
190 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) 190 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++)
191 { 191 {
192 struct ifreq *pifr = &ifrs[i]; 192 struct ifreq *pifr = &ifrs[i];
193 if ( !QString( pifr->ifr_name ).startsWith( "wifi" ) ) ifaces += pifr->ifr_name; 193 if ( !QString( pifr->ifr_name ).startsWith( "wifi" ) ) ifaces += pifr->ifr_name;
194 else odebug << "ignoring hostap control interface " << pifr->ifr_name << oendl; 194 else odebug << "ignoring hostap control interface " << pifr->ifr_name << oendl;
195 } 195 }
196 } 196 }
197 else 197 else
198 { 198 {
199 procFile.open(IO_ReadOnly); 199 if (!procFile.open(IO_ReadOnly))
200 owarn << "Failed to open proc file " << procFile.name() << oendl;
200 QString line; 201 QString line;
201 QTextStream procTs(&procFile); 202 QTextStream procTs(&procFile);
202 int loc = -1; 203 int loc = -1;
203 204
204 procTs.readLine(); // eat a line 205 procTs.readLine(); // eat a line
205 procTs.readLine(); // eat a line 206 procTs.readLine(); // eat a line
206 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) 207 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null)
207 { 208 {
208 if((loc = line.find(":")) != -1) 209 if((loc = line.find(":")) != -1)
209 { 210 {
210 // ignore wifi* (hostap control interfaces) 211 // ignore wifi* (hostap control interfaces)
211 if ( !line.left(loc).startsWith( "wifi" ) ) ifaces += line.left(loc); 212 if ( !line.left(loc).startsWith( "wifi" ) ) ifaces += line.left(loc);
212 else odebug << "ignoring hostap control interface " << line.left(loc) << oendl; 213 else odebug << "ignoring hostap control interface " << line.left(loc) << oendl;
213 } 214 }
214 } 215 }
215 } 216 }
216 217
217 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) 218 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it)
218 { 219 {
219 int flags = 0; 220 int flags = 0;
220 if ( m_handledIfaces.contains( (*it) ) ) 221 if ( m_handledIfaces.contains( (*it) ) )
221 { 222 {
222 odebug << " " << (*it).latin1() << " is handled by a module" << oendl; 223 odebug << " " << (*it).latin1() << " is handled by a module" << oendl;
223 continue; 224 continue;
224 } 225 }
225 // int family; 226 // int family;
226 i = NULL; 227 i = NULL;
227 228
228 strcpy(ifr.ifr_name, (*it).latin1()); 229 strcpy(ifr.ifr_name, (*it).latin1());
229 230
230 struct ifreq ifcopy; 231 struct ifreq ifcopy;
231 ifcopy = ifr; 232 ifcopy = ifr;
@@ -703,83 +704,85 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
703 param = param.left( param.length() - 1 ); 704 param = param.left( param.length() - 1 );
704 odebug << "dest >" << dest.latin1() << "< param >"+param+"<" << oendl; 705 odebug << "dest >" << dest.latin1() << "< param >"+param+"<" << oendl;
705 706
706 QMap<Module*, QLibrary*>::Iterator it; 707 QMap<Module*, QLibrary*>::Iterator it;
707 for( it = libraries.begin(); it != libraries.end(); ++it ) 708 for( it = libraries.begin(); it != libraries.end(); ++it )
708 { 709 {
709 odebug << "plugin >" << it.key()->type().latin1() << "<" << oendl; 710 odebug << "plugin >" << it.key()->type().latin1() << "<" << oendl;
710 if(it.key()->type() == dest) 711 if(it.key()->type() == dest)
711 { 712 {
712 it.key()->receive( param, arg ); 713 it.key()->receive( param, arg );
713 found = true; 714 found = true;
714 } 715 }
715 } 716 }
716 717
717 718
718 if (found) QPEApplication::setKeepRunning(); 719 if (found) QPEApplication::setKeepRunning();
719 else odebug << "Huh what do ya want" << oendl; 720 else odebug << "Huh what do ya want" << oendl;
720} 721}
721 722
722void MainWindowImp::setHostname() 723void MainWindowImp::setHostname()
723{ 724{
724 static QRegExp filter("[^A-Za-z0-9_\\-\\.]"); 725 static QRegExp filter("[^A-Za-z0-9_\\-\\.]");
725 if (filter.match(m_Nameinput->text())!=-1) { 726 if (filter.match(m_Nameinput->text())!=-1) {
726 odebug << "Wrong hostname" << oendl; 727 odebug << "Wrong hostname" << oendl;
727 QMessageBox::critical(0, tr("Sorry"), tr("This is a wrong name.<br>Please use A-Z, a-z, _, - or a single dot.")); 728 QMessageBox::critical(0, tr("Sorry"), tr("This is a wrong name.<br>Please use A-Z, a-z, _, - or a single dot."));
728 return; 729 return;
729 } 730 }
730 731
731 OProcess h; 732 OProcess h;
732 _procTemp=""; 733 _procTemp="";
733 h << "hostname" << m_Nameinput->text(); 734 h << "hostname" << m_Nameinput->text();
734 connect(&h,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int))); 735 connect(&h,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int)));
735 h.start(OProcess::Block,OProcess::Stderr); 736 if (!h.start(OProcess::Block,OProcess::Stderr))
737 owarn << "Failed execution of 'hostname'. Are the paths correct?" << oendl;
736 odebug << "Got " << _procTemp << " - " << h.exitStatus() << oendl; 738 odebug << "Got " << _procTemp << " - " << h.exitStatus() << oendl;
737 if (h.exitStatus()!=0) { 739 if (h.exitStatus()!=0) {
738 QMessageBox::critical(0, tr("Sorry"), QString(tr("Could not set name.\n%1")).arg(_procTemp.stripWhiteSpace())); 740 QMessageBox::critical(0, tr("Sorry"), QString(tr("Could not set name.\n%1")).arg(_procTemp.stripWhiteSpace()));
739 return; 741 return;
740 } 742 }
741 _procTemp=""; 743 _procTemp="";
742 744
743 QFile f(_HOSTFILE); 745 QFile f(_HOSTFILE);
744 if (f.open(IO_Truncate|IO_WriteOnly)) 746 if (f.open(IO_Truncate|IO_WriteOnly))
745 { 747 {
746 QTextStream s(&f); 748 QTextStream s(&f);
747 s << m_Nameinput->text(); 749 s << m_Nameinput->text();
748 } else { 750 } else {
749 QMessageBox::critical(0, tr("Sorry"), tr("Could not save name.")); 751 QMessageBox::critical(0, tr("Sorry"), tr("Could not save name."));
750 return; 752 return;
751 } 753 }
752 754
753 f.close(); 755 f.close();
754 f.setName(_IRDANAME); 756 f.setName(_IRDANAME);
755 if (f.open(IO_WriteOnly)) 757 if (f.open(IO_WriteOnly))
756 { 758 {
757 QTextStream s(&f); 759 QTextStream s(&f);
758 s << m_Nameinput->text(); 760 s << m_Nameinput->text();
759 } else { 761 } else {
760 QMessageBox::critical(0, tr("Sorry"), tr("Could not set infrared name.")); 762 QMessageBox::critical(0, tr("Sorry"), tr("Could not set infrared name."));
761 } 763 }
762} 764}
763 765
764void MainWindowImp::initHostname() 766void MainWindowImp::initHostname()
765{ 767{
766 OProcess h; 768 OProcess h;
767 _procTemp=""; 769 _procTemp="";
768 770
769 h << "hostname"; 771 h << "hostname";
770 connect(&h,SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int))); 772 connect(&h,SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int)));
771 h.start(OProcess::Block,OProcess::AllOutput); 773 if (!h.start(OProcess::Block,OProcess::AllOutput))
774 owarn << "Could not execute 'hostname'. Are the paths correct?" oendl;
772 odebug << "Got " << _procTemp <<oendl; 775 odebug << "Got " << _procTemp <<oendl;
773 m_Nameinput->setText(_procTemp.stripWhiteSpace()); 776 m_Nameinput->setText(_procTemp.stripWhiteSpace());
774 _procTemp=""; 777 _procTemp="";
775} 778}
776 779
777void MainWindowImp::slotHostname(Opie::Core::OProcess */*proc*/, char *buffer, int buflen) 780void MainWindowImp::slotHostname(Opie::Core::OProcess * /*proc*/, char *buffer, int buflen)
778{ 781{
779 if (buflen < 1 || buffer==0) return; 782 if (buflen < 1 || buffer==0) return;
780 char*_t = new char[buflen+1]; 783 char*_t = new char[buflen+1];
781 ::memset(_t,0,buflen+1); 784 ::memset(_t,0,buflen+1);
782 ::memcpy(_t,buffer,buflen); 785 ::memcpy(_t,buffer,buflen);
783 _procTemp+=_t; 786 _procTemp+=_t;
784 delete[]_t; 787 delete[]_t;
785} 788}
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp
index 7b2e2a3..17ada9b 100644
--- a/noncore/settings/networksettings/ppp/modem.cpp
+++ b/noncore/settings/networksettings/ppp/modem.cpp
@@ -739,66 +739,68 @@ bool Modem::createAuthFile(Auth method, const char *username, const char *passwo
739 // copy to new file pap- or chap-secrets 739 // copy to new file pap- or chap-secrets
740 int old_umask = umask(0077); 740 int old_umask = umask(0077);
741 FILE *fout = fopen(newName, "w"); 741 FILE *fout = fopen(newName, "w");
742 if(fout) { 742 if(fout) {
743 // copy old file 743 // copy old file
744 FILE *fin = fopen(authfile, "r"); 744 FILE *fin = fopen(authfile, "r");
745 if(fin) { 745 if(fin) {
746 while(fgets(line, sizeof(line), fin)) { 746 while(fgets(line, sizeof(line), fin)) {
747 if(regexec(&preg, line, 0, 0L, 0) == 0) 747 if(regexec(&preg, line, 0, 0L, 0) == 0)
748 continue; 748 continue;
749 fputs(line, fout); 749 fputs(line, fout);
750 } 750 }
751 fclose(fin); 751 fclose(fin);
752 } 752 }
753 753
754 // append user/pass pair 754 // append user/pass pair
755 fprintf(fout, "\"%s\"\t*\t\"%s\"\n", username, password); 755 fprintf(fout, "\"%s\"\t*\t\"%s\"\n", username, password);
756 fclose(fout); 756 fclose(fout);
757 } 757 }
758 758
759 // restore umask 759 // restore umask
760 umask(old_umask); 760 umask(old_umask);
761 761
762 // free memory allocated by regcomp 762 // free memory allocated by regcomp
763 regfree(&preg); 763 regfree(&preg);
764 764
765 if(!(oldName = authFile(method, Old))) 765 if(!(oldName = authFile(method, Old)))
766 return false; 766 return false;
767 767
768 // delete old file if any 768 // delete old file if any
769 unlink(oldName); 769 unlink(oldName);
770 770
771 rename(authfile, oldName); 771 if (rename(authfile, oldName) == -1)
772 rename(newName, authfile); 772 return false;
773 if (rename(newName, authfile) == -1)
774 return false;
773 775
774 return true; 776 return true;
775} 777}
776 778
777 779
778bool Modem::removeAuthFile(Auth method) { 780bool Modem::removeAuthFile(Auth method) {
779 const char *authfile, *oldName; 781 const char *authfile, *oldName;
780 782
781 if(!(authfile = authFile(method))) 783 if(!(authfile = authFile(method)))
782 return false; 784 return false;
783 if(!(oldName = authFile(method, Old))) 785 if(!(oldName = authFile(method, Old)))
784 return false; 786 return false;
785 787
786 if(access(oldName, F_OK) == 0) { 788 if(access(oldName, F_OK) == 0) {
787 unlink(authfile); 789 unlink(authfile);
788 return (rename(oldName, authfile) == 0); 790 return (rename(oldName, authfile) == 0);
789 } else 791 } else
790 return false; 792 return false;
791} 793}
792 794
793 795
794bool Modem::setSecret(int method, const char* name, const char* password) 796bool Modem::setSecret(int method, const char* name, const char* password)
795{ 797{
796 798
797 Auth auth; 799 Auth auth;
798 if(method == AUTH_PAPCHAP) 800 if(method == AUTH_PAPCHAP)
799 return setSecret(AUTH_PAP, name, password) && 801 return setSecret(AUTH_PAP, name, password) &&
800 setSecret(AUTH_CHAP, name, password); 802 setSecret(AUTH_CHAP, name, password);
801 803
802 switch(method) { 804 switch(method) {
803 case AUTH_PAP: 805 case AUTH_PAP:
804 auth = Modem::PAP; 806 auth = Modem::PAP;