author | llornkcor <llornkcor> | 2005-08-24 20:22:10 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-08-24 20:22:10 (UTC) |
commit | 65edeafe2dc8689dce7c2ce94e954933b393dcf0 (patch) (side-by-side diff) | |
tree | 17d0986ef0bce73f44a4b9900466fcc533954814 | |
parent | f0bb6c410f19d502cf563254d95158617a32b94e (diff) | |
download | opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.zip opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.gz opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.bz2 |
optimize search. fix other things
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 265 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.h | 15 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp | 90 |
3 files changed, 170 insertions, 200 deletions
diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp index 58babe9..9858188 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp @@ -1,1069 +1,1052 @@ /*************************************************************************** // LibraryDialog.cpp - description // ------------------- // begin : Sat Aug 19 2000 // copyright : (C) 2000 - 2004 by llornkcor // email : ljp@llornkcor.com // ***************************************************/ // /*************************************************************************** // * This program is free software; you can redistribute it and/or modify * // * it under the terms of the GNU General Public License as published by * // * the Free Software Foundation; either version 2 of the License, or * // * (at your option) any later version. * // ***************************************************************************/ //ftp://ibiblio.org/pub/docs/books/gutenberg/GUTINDEX.ALL #include "LibraryDialog.h" #include "output.h" /* OPIE */ #include <qpe/applnk.h> #include <qpe/qpeapplication.h> #include <qpe/qpedialog.h> //#include <opie2///odebug.h> /* QT */ #include <qpushbutton.h> #include <qmultilineedit.h> //#include <qlayout.h> /* STD */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> /* * The dialog will by default be modeless, unless you set 'modal' to * true to construct a modal dialog. */ LibraryDialog::LibraryDialog( QWidget* parent, const char* name , bool /*modal*/, WFlags fl ) : QDialog( parent, name, true/* modal*/, fl ) { if ( !name ) setName( "LibraryDialog" ); indexLoaded=false; initDialog(); // this->setMaximumWidth(240); index = "GUTINDEX.ALL"; local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; local_index = local_library + index; QString iniFile ; iniFile = local_library + "/gutenbrowserrc"; new_index = local_library + "/PGWHOLE.TXT"; old_index = local_index; // iniFile = local_library+"gutenbrowserrc"; // new_index = local_library + "PGWHOLE.TXT"; // old_index = local_library + "GUTINDEX.ALL"; Config config("Gutenbrowser"); config.setGroup( "HttpServer" ); proxy_http = config.readEntry("Preferred", "http://sailor.gutenbook.org"); config.setGroup( "FTPsite" ); ftp_host = config.readEntry("SiteName", "sailor.gutenberg.org"); //odebug << "Library Dialog: ftp_host is "+ftp_host << oendl; // ftp_host=ftp_host.right(ftp_host.length()-(ftp_host.find(") ",0,true)+1) ); // ftp_host=ftp_host.stripWhiteSpace(); ftp_base_dir= config.readEntry("base", "/pub/gutenberg"); i_binary = 0; config.setGroup("SortAuth"); if( config.readEntry("authSort", "false") == "true") authBox->setChecked(true); config.setGroup("General"); downDir = config.readEntry( "DownloadDirectory",local_library); //odebug << "downDir is "+downDir << oendl; newindexLib.setName( old_index); indexLib.setName( old_index); new QPEDialogListener(this); QTimer::singleShot( 1000, this, SLOT( FindLibrary()) ); } LibraryDialog::~LibraryDialog() { } void LibraryDialog::clearItems() { ListView1->clear(); ListView2->clear(); ListView3->clear(); ListView4->clear(); ListView5->clear(); } /*This groks using PGWHOLE.TXT */ void LibraryDialog::Newlibrary() { clearItems(); #ifndef Q_WS_QWS //sorry embedded gutenbrowser cant use zip files ////odebug << "Opening new library index " << newindexLib << "" << oendl; if ( newindexLib.open( IO_ReadOnly) ) { setCaption( tr( "Library Index - using master pg index." ) );// file opened successfully QTextStream indexStream( &newindexLib ); QString indexLine; while ( !indexStream.atEnd() ) { // until end of file.. indexLine = indexStream.readLine(); if ( ( indexLine.mid(4,4)).toInt() && !( indexLine.left(3)).toInt()) { year = indexLine.mid(4,4); file = indexLine.mid( indexLine.find( "[", 0, true )+1, 12 ); number = indexLine.mid( indexLine.find( "]", 0, true ) +1, indexLine.find( " ", 0, true )+1 ); if( year.toInt() < 1984) number = number.left( number.length() -1 ); title = indexLine.mid( indexLine.find(" ", 26, true), indexLine.length() ); addItems(); }// end if }// end while newindexLib.close(); } #ifndef Q_WS_QWS setCursor( arrowCursor); #endif #endif } // end Newlibrary() void LibraryDialog::Library() { clearItems(); // qDebug( "opening GUTINDEX.ALL file"); IDontKnowWhy = ""; - if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully + system("date"); + if ( indexLib.open( IO_ReadOnly) ) { +// file opened successfully QTextStream indexStream( &indexLib ); QString indexLine; qApp->processEvents(); - + + bool okToRead = false; while ( !indexStream.eof() ) { - indexLine = indexStream.readLine(); - if ( indexLine != "") { - - if( (indexLine.mid(4,4)).toInt() ) { - - year = indexLine.mid(4,4); - file = indexLine.mid(60,12); - if(file.left(1).find("[",0,TRUE) != -1) - file.remove(1,1); - if( file.find("]",0,TRUE) != -1) - file = file.left( file.find("]",0,TRUE)); - - if(file.find("?", 0, false) != -1 ) { - QString tmpfile = file.replace(QRegExp("[?]"), "8"); - file = tmpfile; - } - - number = indexLine.mid(55,5); - title = indexLine.mid( 9, 50 ); - - addItems(); - - } - else if ( indexLine.mid(73,5).toInt() && indexLine.mid(73,5).toInt() > 10000 ) { -// newer files with numbers > 100000 have new dir structure and need to be parsed differently.. - number = indexLine.mid(73,5); - int num = number.toInt(); - if(num < 10626) - year = "2003"; - else if(num >= 10626 && num < 14600) - year = "2004"; - else if(num >= 14600) - year = "2005"; - - file = number;// + ".txt"; - title = indexLine.mid(0,72); - - addItems(); - // qDebug("file number is " + number + " title is " + title ); - } + if(indexLine == "<==Start GUTINDEX.ALL listings==>") + okToRead = true; + if(indexLine == "<==End of GUTINDEX.ALL==>") { + okToRead = false; + indexLib.at(indexLib.size()); } + + if(okToRead) { + QStringList token = QStringList::split(' ', indexLine); + int textNumber; + if(( textNumber = token.last().toInt() )) + if(textNumber > 10001) { +// qWarning("Last "+token.last()); +// newer files with numbers > 100000 have new dir structure and need to be parsed differently.. + if(textNumber < 10626) + year = "2003"; + else if(textNumber >= 10626 && textNumber < 14600) + year = "2004"; + else if(textNumber >= 14600) + year = "2005"; + + file = token.last(); + title = indexLine.mid(0,72); + + addItems(); //author and qlistview + // qDebug("file number is " + number + " title is " + title ); + + } else { //end new etexts + + if(token[1].toInt() && token[1].toInt() > 1969) { + year = token[1]; + file = indexLine.mid(60,12); + + if(file.left(1).find("[",0,TRUE) != -1) { + file.remove(1,1); + if( file.find("]",0,TRUE) != -1) + file = file.left( file.find("]",0,TRUE)); + + if(file.find("?", 0, false) != -1 ) { + QString tmpfile = file.replace(QRegExp("[?]"), "8"); + file = tmpfile; + } + title = indexLine.mid( 9, 50); + + addItems(); + } + } else { // then try new format texts + file = token.last(); + title = indexLine.mid(0,72); + year = "1980"; + + addItems(); //author and qlistview + } + } //end old etexts + + } //end okToTRead } indexLib.close(); } else { QString sMsg; sMsg = ( tr("<p>Error opening library index file. Please download a new one.</P> ")); QMessageBox::message( "Error",sMsg); } + system("date"); + sortLists(0); + } //end Library() /* Groks the author out of the title */ bool LibraryDialog::getAuthor() { if( title.contains( ", by", true)) { int auth; auth = title.find(", by", 0, true); author = title.right(title.length() - (auth + 4) ); if( int finder = author.find("[", 0, true)) { author = author.left(finder); } } else if ( title.contains( "by, ", true) ) { int auth; auth = title.find("by, ", 0, true); author = title.right(title.length() - (auth + 4) ); if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else if ( title.contains( " by", true) ) { int auth; auth = title.find(" by", 0, true); author = title.right(title.length() - (auth + 3) ); if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else if ( title.contains( "by ", true) ) { int auth; auth = title.find("by ", 0, true); author = title.right(title.length() - (auth + 3) ); if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else if ( title.contains( ",", true) ) { int auth; auth = title.find(",", 0, true); author = title.right( title.length() - (auth + 1) ); if ( author.contains( ",", true) ) { int auth; auth = author.find(",", 0, true); author = author.right( author.length() - (auth + 1) ); } if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else if ( title.contains( "/", true) ) { int auth; auth = title.find("/", 0, true); author = title.right(title.length() - (auth + 1) ); if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else if ( title.contains( "of", true) ) { int auth; auth = title.find("of", 0, true); author = title.right(title.length() - (auth + 2) ); if( int finder = author.find("[", 0, true)) { author = author.left( finder); } } else { author = ""; } if ( author.contains("et. al")) { int auth; auth = author.find("et. al", 0, true); author = author.left( auth ); } if ( author.contains("#")) { int auth; auth = author.find("#", 0, true); author = author.left( auth); } if ( author.contains("(")) { int auth; auth = author.find("(", 0, true); author = author.left( auth); } if ( author.contains("et al")) { int auth; auth = author.find("et al", 0, true); author = author.left( auth ); } QRegExp r = QRegExp("[0-9]", true, false); if ( author.left(2).find( r) != -1 ) { author = ""; } author = author.stripWhiteSpace(); if (authBox->isChecked() == TRUE) { // this reverses the first name and last name of the author QString lastName, firstName=""; int finder = author.findRev( ' ', -1, TRUE); lastName = author.right( author.length()-finder); firstName = author.left(finder); lastName = lastName.stripWhiteSpace(); firstName = firstName.stripWhiteSpace(); if( lastName.find( firstName, 0, true) == -1) // this avoids dup names author = lastName+", "+firstName; } return true; }////// end getAuthor() -void LibraryDialog::addItems() { +void LibraryDialog::addItems() +{ cleanStrings(); getAuthor(); // grok author - if( !number.isEmpty() - && (title.find( "reserved",0, FALSE) == -1) + + etext etextStruct; + if( /*!number.isEmpty() + && */ + (title.find( "reserved",0, FALSE) == -1) && (file.find( "]",0, true) == -1) &&(title.find( "Audio",0, FALSE) == -1)) { // qDebug("new item "+title); // fill string list or something to be able to sort by Author + etextStruct.title = title; + etextStruct.author = author; + etextStruct.year = year; + etextStruct.file = file; + + etextLibrary.append( etextStruct); + if( author.isEmpty() ) - QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, year, file ); + QList_Item5 = new QListViewItem( ListView5, /*number, */author, title, year, file ); else { - if( (author.left(1) >= QString("A") && author.left(1) <= QString("F")) || - (author.left(1) >= QString("a") && author.left(1) <= QString("f")) ) - QList_Item1 = new QListViewItem( ListView1, /* number,*/ title, author, year, file ); + if( author.find(QRegExp("[^a-fA-F]")) ) + QList_Item1 = new QListViewItem( ListView1, /* number,*/author, title, year, file ); - else if( (author.left(1) >= QString("G") && author.left(1) <= QString("M")) || - (author.left(1) >= QString("g") && author.left(1) <= QString("m")) ) - QList_Item2 = new QListViewItem( ListView2, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^g-mG-M]")) ) + QList_Item2 = new QListViewItem( ListView2, /* number,*/ author, title,year, file ); - else if( (author.left(1) >= QString("N") && author.left(1) <= QString("R")) || - (author.left(1) >= QString("n") && author.left(1) <= QString("r")) ) - QList_Item3 = new QListViewItem( ListView3, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^n-rN-R]")) ) + QList_Item3 = new QListViewItem( ListView3, /* number,*/ author, title, year, file ); - else if( (author.left(1) >= QString("S") && author.left(1) <= QString("Z")) || - (author.left(1) >= QString("s") && author.left(1) <= QString("z")) ) - QList_Item4 = new QListViewItem( ListView4, /* number,*/ title, author, year, file ); + else if(author.find(QRegExp("[^s-zS-Z]")) ) + QList_Item4 = new QListViewItem( ListView4, /* number,*/ author, title, year, file ); } } } /* selected one etext*/ void LibraryDialog::select_title( QListViewItem * item) { if(item != NULL) { i++; int index = tabWidget->currentPageIndex(); DlglistItemTitle = item->text(0); DlglistItemYear = item->text(2); DlglistItemFile = item->text(3); switch (index) { case 0: { ListView1->clearSelection(); } break; case 1: { ListView2->clearSelection(); } break; case 2: { ListView3->clearSelection(); } break; case 3: { ListView4->clearSelection(); } break; case 4: { ListView5->clearSelection(); } break; }; } if(DlglistItemTitle.length() > 2) { item = 0; // todo check for connection here bool ok = false; qDebug(DlglistItemFile); if( DlglistItemFile.toInt() > 10000 ) { // new directory sturcture if( download_newEtext()) ok = true; } else { if(download_Etext()) ok = true; } if(ok) { if(checkBox->isChecked () ) accept(); } } } bool LibraryDialog::download_newEtext() { // ftp method QString fileName = DlglistItemFile; QString directory; int stringlength = DlglistItemFile.length(); for(i = 0; i < stringlength - 1; i++ ) { directory += "/"+ DlglistItemFile[i]; } directory += "/" + DlglistItemFile; // qWarning(directory); Config cfg("Gutenbrowser"); cfg.setGroup("FTPsite"); ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org"); ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg"); if( ftp_base_dir.find("=",0,true) ) ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1); QString dir = ftp_base_dir + directory; QString outputFile = local_library + ".guten_temp"; QString file = fileName + ".txt"; QStringList networkList; networkList.append((const char *)ftp_host); //host networkList.append((const char *)dir); //ftp base directory networkList.append((const char *)outputFile); //output filepath networkList.append((const char *)file); //filename getEtext( networkList); return true; } bool LibraryDialog::getEtext(const QStringList &networkList) { NetworkDialog *NetworkDlg; NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", true, 0, networkList); // use new, improved, *INSTANT* network-dialog-file-getterer if( NetworkDlg->exec() != 0 ) { File_Name = NetworkDlg->localFileName; qDebug("Just downloaded " + NetworkDlg->localFileName); if(NetworkDlg->successDownload) { //odebug << "Filename is "+File_Name << oendl; if(File_Name.right(4) == ".txt") { QString s_fileName = File_Name; s_fileName.replace( s_fileName.length() - 3, 3, "gtn"); // s_fileName.replace( s_fileName.length()-3,3,"etx"); rename( File_Name.latin1(), s_fileName.latin1()); File_Name = s_fileName; //odebug << "Filename is now "+File_Name << oendl; } if(File_Name.length() > 5 ) { setTitle(); QFileInfo fi(File_Name); QString name_file = fi.fileName(); name_file = name_file.left( name_file.length() - 4); //odebug << "Setting doclink" << oendl; DocLnk lnk; //odebug << "name is "+name_file << oendl; lnk.setName(name_file); //sets file name //odebug << "Title is "+DlglistItemTitle << oendl; lnk.setComment(DlglistItemTitle); //odebug << "Filename is "+File_Name << oendl; lnk.setFile(File_Name); //sets File property lnk.setType("guten/plain");// hey is this a REGISTERED mime type?!?!? ;D lnk.setExec(File_Name); lnk.setIcon("gutenbrowser/Gutenbrowser"); if(!lnk.writeLink()) { //odebug << "Writing doclink did not work" << oendl; } else { } } else QMessageBox::message("Note","<p>There was an error with the file</p>"); } } return true; } bool LibraryDialog::download_Etext() { // ftp method // might have to use old gpl'd ftp for embedded!! Config cfg("Gutenbrowser"); cfg.setGroup("FTPsite"); ftp_host = cfg.readEntry("SiteName", "sailor.gutenberg.org"); ftp_base_dir = cfg.readEntry("base", "/pub/gutenberg"); qDebug( "about to network dialog"); QString NewlistItemNumber, NewlistItemYear, ls_result, result_line, s, dir, /*networkUrl, */outputFile; //////////////////// FIXME- if 'x' is part of real name.... NewlistItemFile = DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).left(DlglistItemFile.left(DlglistItemFile.find(".xxx", 1, false)).find("x", 1, false)); if( NewlistItemFile.find( DlglistItemFile.left(4) ,0,true) ==-1 ) { NewlistItemFile.replace( 0,4, DlglistItemFile.left(4)); qDebug("NewlistItemFile is now " + NewlistItemFile); } NewlistItemYear = DlglistItemYear.right(2); int NewlistItemYear_Int = NewlistItemYear.toInt(0, 10); //odebug << NewlistItemYear << oendl; if (NewlistItemYear_Int < 91 && NewlistItemYear_Int > 70) { NewlistItemYear = "90"; } Edir ="etext" +NewlistItemYear; dir = ftp_base_dir + "/etext" + NewlistItemYear + "/"; if( ftp_base_dir.find("=",0,true) ) ftp_base_dir.remove( ftp_base_dir.find("=",0,true),1); // networkUrl = "ftp://"+ftp_host+dir; outputFile = local_library+".guten_temp"; qDebug( "Download file: " +NewlistItemFile); qDebug("Checking: " + ftp_host + " " + dir + " " + outputFile+" " + NewlistItemFile); QStringList networkList; networkList.append((const char *)ftp_host); //host networkList.append((const char *)dir); //ftp base directory networkList.append((const char *)outputFile); //output filepath networkList.append((const char *)NewlistItemFile); //filename //<< (char *)ftp_host << (char *)dir << (char *)outputFile << (char *)NewlistItemFile; getEtext( networkList); return true; } bool LibraryDialog::httpDownload() {// httpDownload #ifndef Q_WS_QWS Config config("Gutenbrowser"); config.setGroup( "Browser" ); QString brow = config.readEntry("Preferred", ""); QString file_name = "./.guten_temp"; // config.setGroup( "HttpServer" ); // QString s_http = config.readEntry("Preferred", "http://sailor.gutenbook.org"); QString httpName = proxy_http + "/"+Edir; // progressBar->setProgress( i); i++; if ( brow != "Konq") { /////////// use lynx // QString cmd = "lynx -source " + httpName +" | cat >> " + file_name; // system(cmd); } else { //////////// use KFM // KFM::download( httpName, file_name); } i++; QFile tmp( file_name); QString str; if (tmp.open(IO_ReadOnly)) { QTextStream t( &tmp ); // use a text stream while ( !t.eof()) { QString s = t.readLine(); if (s.contains( NewlistItemFile, false) && (s.contains(".txt")) ) { str = s.mid( s.find( ".txt\">"+NewlistItemFile, 0, true)+6, (s.find( ".txt</A>", 0, true) + 4) - ( s.find( ".txt\">"+NewlistItemFile, 0, true)+6 ) ); httpName += "/" + str; } } //end of while loop } tmp.close(); m_getFilePath = local_library + str; i++; if ( brow != "KFM"){ ///////// use lynx QString cmd = "lynx -source " + httpName +" | cat >> " + m_getFilePath; // QMessageBox::message("Error", cmd); system(cmd); } else { ////////// use KFM // KFM::download( httpName, m_getFilePath); } i++; #endif return false; } void LibraryDialog::cancelIt() { saveConfig(); DlglistItemNumber = ""; this->reject(); } bool LibraryDialog::setTitle() { Config config("Gutenbrowser"); //odebug << "setting title" << oendl; //odebug << DlglistItemTitle << oendl; if( DlglistItemTitle.find("[",0,true) != -1) DlglistItemTitle.replace(DlglistItemTitle.find("[",0,true),1, "(" ); if( DlglistItemTitle.find("]",0,true) !=-1) DlglistItemTitle.replace(DlglistItemTitle.find("]",0,true),1, ")" ); //odebug << "Title being set is "+DlglistItemTitle << oendl; int test = 0; QString ramble, temp; config.setGroup("Files"); QString s_numofFiles = config.readEntry("NumberOfFiles", "0" ); int i_numofFiles = s_numofFiles.toInt(); for ( int i = 0; i <= i_numofFiles; i++){ temp.setNum( i); ramble = config.readEntry( temp, "" ); if( strcmp( ramble, File_Name) == 0){ test = 1; } } if(test == 0 ) { config.setGroup("Files"); config.writeEntry( "NumberOfFiles", i_numofFiles +1 ); QString interger; interger.setNum( i_numofFiles +1); config.writeEntry( interger, File_Name); config.setGroup( "Titles" ); config.writeEntry( File_Name, DlglistItemTitle); } test = 0; return true; } void LibraryDialog::saveConfig() { Config config("Gutenbrowser"); if( httpBox->isChecked() == true) { checked = 1; config.setGroup( "Proxy" ); config.writeEntry("IsChecked", "true"); } else { checked = 0; config.setGroup( "Proxy" ); config.writeEntry("IsChecked", "false"); } if (authBox->isChecked() == true) { config.setGroup("SortAuth"); config.writeEntry("authSort", "true"); } else { config.setGroup("SortAuth"); config.writeEntry("authSort", "false"); } // config.write(); } /* searches library index for user word*/ void LibraryDialog::onButtonSearch() { ListView1->clearSelection(); ListView2->clearSelection(); ListView3->clearSelection(); ListView4->clearSelection(); ListView5->clearSelection(); int curTab = tabWidget->currentPageIndex(); SearchDialog* searchDlg; // if( resultsList) searchDlg = new SearchDialog( this, "Library Search", true); searchDlg->setCaption( tr( "Library Search" ) ); searchDlg->setLabel( "- author or title"); QString resultString; int i_berger = 0; if( searchDlg->exec() != 0 ) { QString searcherStr = searchDlg->get_text(); int fluff = 0; - // int tabPage = tabWidget->currentPageIndex(); - // TODO ititerate here... struct<listViews>?? - - QListViewItemIterator it1( ListView1 ); - QListViewItemIterator it2( ListView2 ); - QListViewItemIterator it3( ListView3 ); - QListViewItemIterator it4( ListView4 ); - QListViewItemIterator it5( ListView5 ); - - //// this is really pitiful work, - /////// bool cS; if( searchDlg->caseSensitiveCheckBox->isChecked()) - cS=true; //case sensitive + cS = true; //case sensitive else - cS=false; - - if(fluff==0) { - for ( ; it1.current(); ++it1 ) { - resultString = ( it1.current() )->text(0); - resultString += (" : "); - resultString += ( it1.current() )->text(2); - resultString += (" : "); - resultString += ( it1.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) - { - Searchlist.append( resultString); - } - } - } - if(fluff==0) {// search routine here - for ( ; it2.current(); ++it2 ) { - resultString = ( it2.current() )->text(0); - resultString += (" : "); - resultString += ( it2.current() )->text(2); - resultString += (" : "); - resultString += ( it2.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) {// search routine here - for ( ; it3.current(); ++it3 ) { - resultString = ( it3.current() )->text(0); - resultString += (" : "); - resultString += ( it3.current() )->text(2); - resultString += (" : "); - resultString += ( it3.current() )->text(3); - - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) { - // search routine here - for ( ; it4.current(); ++it4 ) { - resultString = ( it4.current() )->text(0); - resultString += (" : "); - resultString += ( it4.current() )->text(2); - resultString += (" : "); - resultString += ( it4.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } - if(fluff==0) { // search routine here - for ( ; it5.current(); ++it5 ) { - resultString = ( it5.current() )->text(0); - resultString += (" : "); - resultString += ( it5.current() )->text(2); - resultString += (" : "); - resultString += ( it5.current() )->text(3); - if( resultString.find( searcherStr, 0, cS) != -1) { - Searchlist.append( resultString); - } - } - } + cS = false; + + etext etextStruct; + QValueList<etext>::Iterator it; + + for( it = etextLibrary.begin(); it != etextLibrary.end(); ++it ) { + QString tempTitle = (*it).title; + QString tempAuthor = (*it).author; + QString tempFile = (*it).file; + QString tempYear = (*it).year; + if(tempTitle.find( searcherStr, 0, cS) != -1 + || tempAuthor.find( searcherStr, 0, cS) != -1) { + qWarning(tempTitle); + Searchlist.append( tempTitle + " : " + tempYear + " : " + tempFile); + } + } + tabWidget->setCurrentPage( curTab); Searchlist.sort(); SearchResultsDlg* SearchResultsDialog; SearchResultsDialog = new SearchResultsDlg( searchDlg, "Results Dialog", true, 0 , Searchlist); SearchResultsDialog->showMaximized(); if( SearchResultsDialog->exec() != 0) { texter = SearchResultsDialog->selText; // //odebug << texter << oendl; resultLs = SearchResultsDialog->resultsList; i_berger = 1; } else { resultLs.clear(); } Searchlist.clear(); - // if(SearchResultsDialog) - // delete SearchResultsDialog; QString tester; for ( QStringList::Iterator it = resultLs.begin(); it != resultLs.end(); ++it ) { texter.sprintf("%s \n",(*it).latin1()); // //odebug << texter << oendl; if( tester!=texter) parseSearchResults( texter); tester = texter; } if(searchDlg) delete searchDlg; } if(checkBox->isChecked() ) { accept(); } else { setActiveWindow(); } } /* splits the result string and calls download for the current search result*/ void LibraryDialog::parseSearchResults( QString resultStr) { int stringLeng = resultStr.length(); QString my; my.setNum( stringLeng, 10); if( resultStr.length() > 2 && resultStr.length() < 130) { int titleInt = resultStr.find( " : ", 0, true); DlglistItemTitle = resultStr.left( titleInt); int yearInt = resultStr.find( " : ", titleInt+3, true); DlglistItemYear = resultStr.mid( titleInt+3, (yearInt - titleInt)-3); DlglistItemFile = resultStr.right( resultStr.length() - (yearInt + 3)); DlglistItemFile = DlglistItemFile.left( DlglistItemFile.length() - 2); cleanStrings(); if(DlglistItemFile.left(1) == "/") DlglistItemFile = DlglistItemFile.right( DlglistItemFile.length() - 1); - if( DlglistItemFile.toInt() > 10000 ) { + if( DlglistItemFile.toInt() > 10000 || yearInt == 1980 ) { // new directory sturcture download_newEtext(); //) } else { download_Etext(); //) } } } -void LibraryDialog::sort() +void LibraryDialog::sortLists(int index) { - + + ListView1->setSorting(index); + ListView2->setSorting(index); + ListView3->setSorting(index); + ListView4->setSorting(index); + ListView5->setSorting(index); + ListView1->sort(); + ListView2->sort(); + ListView3->sort(); + ListView4->sort(); + ListView5->sort(); } /* Downloads the current selected listitem*/ bool LibraryDialog::getItem(QListViewItem *it) { // //odebug << "selected getItem" << oendl; // DlglistItemNumber = it->text(0); DlglistItemTitle = it->text(0); DlglistItemYear = it->text(2); DlglistItemFile = it->text(3); if(download_Etext()) { if(i_binary == 1) { } } return true; } /* download button is pushed so we get the current items to download*/ bool LibraryDialog::onButtonDownload() { // //odebug << "selected onButtonDownloadz" << oendl; QListViewItemIterator it1( ListView1 ); QListViewItemIterator it2( ListView2 ); QListViewItemIterator it3( ListView3 ); QListViewItemIterator it4( ListView4 ); QListViewItemIterator it5( ListView5 ); // iterate through all items of the listview for ( ; it1.current(); ++it1 ) { if ( it1.current()->isSelected() ) getItem(it1.current()); it1.current()->setSelected(false); } for ( ; it2.current(); ++it2 ) { if ( it2.current()->isSelected() ) getItem(it2.current()); it2.current()->setSelected(false); } for ( ; it3.current(); ++it3 ) { if ( it3.current()->isSelected() ) getItem(it3.current()); it3.current()->setSelected(false); } for ( ; it4.current(); ++it4 ) { if ( it4.current()->isSelected() ) getItem(it4.current()); it4.current()->setSelected(false); } for ( ; it5.current(); ++it5 ) { if ( it5.current()->isSelected() ) getItem(it5.current()); it5.current()->setSelected(false); } return true; } /* handles the sorting combo box */ void LibraryDialog::comboSelect(int index) { // //odebug << "we are sorting" << oendl; ListView1->setSorting( index, true); ListView2->setSorting( index, true); ListView3->setSorting( index, true); ListView4->setSorting( index, true); ListView5->setSorting( index, true); ListView1->sort(); ListView2->sort(); ListView3->sort(); ListView4->sort(); ListView5->sort(); // ListView1->triggerUpdate(); // ListView2->triggerUpdate(); // ListView3->triggerUpdate(); // ListView4->triggerUpdate(); // ListView5->triggerUpdate(); } void LibraryDialog::newList() { if(indexLoaded) { onButtonDownload(); } else { Output *outDlg; buttonNewList->setDown(true); //odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl; QString gutenindex1 = local_library + "/GUTINDEX.ALL"; QString cmd="wget -O " + gutenindex1 + " http://www.gutenberg.org/dirs/GUTINDEX.ALL 2>&1"; int result = QMessageBox::warning( this,"Download" ,"<p>Ok to use /'wget/' to download a new library list?</P>" ,"Yes","No",0,0,1); qApp->processEvents(); if(result == 0) { outDlg = new Output( 0, tr("Downloading Gutenberg Index...."),true); outDlg->showMaximized(); outDlg->show(); qApp->processEvents(); FILE *fp; char line[130]; outDlg->OutputEdit->append( tr("Running wget") ); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); sleep(1); fp = popen( (const char *) cmd, "r"); if ( !fp ) { } else { //odebug << "Issuing the command\n"+cmd << oendl; // system(cmd); while ( fgets( line, sizeof line, fp)) { outDlg->OutputEdit->append(line); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); } pclose(fp); outDlg->OutputEdit->append("Finished downloading\n"); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,false); qApp->processEvents(); // if( QFile(gutenindex1).exists() ) { // QString gutenindex=QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; // if( rename(gutenindex1.latin1(),gutenindex.latin1()) !=0) // //odebug << "renaming error" << oendl; // } } // outDlg->close(); FindLibrary(); if(outDlg) delete outDlg; } buttonNewList->setDown(false); // if(outDlg) // delete outDlg; } } bool LibraryDialog::moreInfo() { QListViewItem * item; item = 0; QString titleString; item = ListView1->currentItem(); if( item != 0) { titleString = item->text(0); ListView1->clearSelection(); item = 0; } if( item == 0) item = ListView2->currentItem(); if( item != 0) { titleString = item->text(0); ListView2->clearSelection(); item = 0; } if( item == 0) item = ListView3->currentItem(); if( item != 0) { titleString = item->text(0); ListView3->clearSelection(); item = 0; } if( item == 0) item = ListView4->currentItem(); if( item != 0) { titleString = item->text(0); ListView4->clearSelection(); item = 0; } if( item == 0) item = ListView5->currentItem(); if( item != 0) { titleString = item->text(0); ListView5->clearSelection(); item = 0; } item=0; if(titleString.length()>2) { //odebug << "Title is "+titleString << oendl; titleString.replace( QRegExp("\\s"), "%20"); titleString.replace( QRegExp("'"), "%20"); titleString.replace( QRegExp("\""), "%20"); titleString.replace( QRegExp("&"), "%20"); QString cmd= "http://google.com/search?q="+titleString+"&num=30&sa=Google+Search"; cmd="opera "+cmd; system(cmd); } else QMessageBox::message( "Note","<p>If you select a title, this will search google.com for that title.</p>"); return true; } /* This loads the library Index*/ void LibraryDialog::FindLibrary() { buttonLibrary->setDown(true); qApp->processEvents(); if( QFile( new_index).exists() /* && this->isHidden() */) { newindexLib.setName( new_index); indexLib.setName( new_index); //odebug << "index file is "+ new_index << oendl; Newlibrary(); } else { newindexLib.setName( old_index); indexLib.setName( old_index); //odebug << "new index nameis "+ old_index << oendl; Library(); } - indexLoaded=true; + indexLoaded =true; buttonSearch->setEnabled(true); moreInfoButton->setEnabled(true); buttonLibrary->setDown(false); buttonNewList->setText("Download"); qApp->processEvents(); } void LibraryDialog::cleanStrings() { year = year.stripWhiteSpace(); file = file.stripWhiteSpace(); title = title.stripWhiteSpace(); number = number.stripWhiteSpace(); } + +void LibraryDialog::authBoxClicked() +{ + qApp->processEvents(); + FindLibrary(); +} diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.h b/noncore/apps/opie-gutenbrowser/LibraryDialog.h index 8d6352f..95226b2 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.h +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.h @@ -1,133 +1,146 @@ /*************************************************************************** LibraryDialog.h - description ------------------- begin : Sat Aug 19 2000 copyright : (C) 2000 -2004 by llornkcor email : ljp@llornkcor.com * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef LIBRARYDIALOG_H #define LIBRARYDIALOG_H #include <qpe/config.h> #include "SearchDialog.h" #include "NetworkDialog.h" #include <qstringlist.h> #include <qdialog.h> #include <qcheckbox.h> #include <qdatetime.h> #include <qfile.h> #include <qheader.h> #include <qlistview.h> #include <qmessagebox.h> #include <qregexp.h> #include <qstring.h> #include <qtextstream.h> #include <qlabel.h> #include <stdlib.h> #include <qtabwidget.h> +#include <qvaluelist.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QListView; class QListViewItem; class QPushButton; //class QTabWidget; class QWidget; //class Gutenbrowser; +typedef struct { + QString title; + QString author; + QString year; + QString file; +} etext; + + class LibraryDialog : public QDialog { Q_OBJECT public: LibraryDialog( QWidget* parent = 0, const char* name = 0 , bool modal = TRUE, WFlags fl = 0 ); ~LibraryDialog(); QTabWidget *tabWidget; QListView *ListView1,*ListView2,*ListView3,*ListView4,*ListView5; QWidget *widget_1,*widget_2,*widget_3,*widget_4,*widget_5,*widget_6; QString ftp_host,ftp_base_dir; QLabel *statusLabel; QListViewItem *QList_Item1,*QList_Item2,*QList_Item3,*QList_Item4,*QList_Item5; QStringList list,ItemStrlist,Searchlist,resultLs; // QStringList list1,list2,list3,list4; QPushButton *buttonSearch,*buttonCancel,*buttonDownload,*buttonLibrary,*buttonNewList,*moreInfoButton; QString new_index,old_index; QFile newindexLib,indexLib; int checked; int i_binary; bool useSmallInterface; bool indexLoaded; QPushButton *cancel,*DownloadAll; QCheckBox *checkBox,*httpBox,*authBox; // QCheckBox * httpBox; QString filename; QString downDir; int ftpNumb; int i; QString year,title,number,file,author; QString DlglistItemNumber,DlglistItemFile,DlglistItemYear,DlglistItemTitle,NewlistItemFile; QString m_getFilePath; QString Edir; QString index; QString IDontKnowWhy; QString local_library; QString local_index; QString File_Name; QString proxy_http; int doitAll; QString texter; // CConfigFile *config; void parseSearchResults( QString resultStr); public slots: bool getItem(QListViewItem* ); void doListView(); void FindLibrary(); void newList(); void Newlibrary(); void Library(); bool getAuthor(); void select_title(QListViewItem*); void cancelIt(); - void sort(); + void sortLists(int); bool moreInfo(); // void DownloadEmAll(); bool httpDownload(); bool setTitle(); void saveConfig(); bool download_Etext(); bool download_newEtext(); void onButtonSearch(); bool onButtonDownload(); // bool UnzipIt( QString fileName); void comboSelect(int index); protected slots: protected: + QValueList<etext> etextLibrary; + void initDialog(); QHBoxLayout *hbox,*hbox1,*hbox2; QVBoxLayout *vbox; // void search_slot(); private: void addItems(); void clearItems(); void cleanStrings(); bool getEtext(const QStringList &); +private slots: + void authBoxClicked(); }; #endif // LIBRARYDIALOG_H diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp index 60c1c75..bfbf84d 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp @@ -1,282 +1,256 @@ /*************************************************************************** LibraryDialogData.cpp - description begin : Sat Dec 4 1999 begin : Tue Jul 25 2000 copyright : (C) 2000 -2004 by llornkcor email : ljp@llornkcor.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #include "LibraryDialog.h" #include <qpe/config.h> #include <qpushbutton.h> #include <qtabwidget.h> #include <qwidget.h> #include <qlayout.h> #include <qimage.h> #include <qpixmap.h> #include <qlistview.h> #include <qpushbutton.h> #include <qtooltip.h> #include <qdialog.h> #include <qcheckbox.h> #include <qdatetime.h> #include <qfile.h> #include <qheader.h> #include <qlistview.h> #include <qmessagebox.h> #include <qregexp.h> #include <qstring.h> #include <qtextstream.h> #include <qprogressbar.h> #include <qcheckbox.h> #include <qlabel.h> #include <qcombobox.h> void LibraryDialog::initDialog(){ QGridLayout *layout = new QGridLayout( this ); layout->setSpacing(2); layout->setMargin(4); tabWidget = new QTabWidget( this, "tabWidget" ); layout->addMultiCellWidget( tabWidget, 0, 0, 0, 3); widget_1 = new QWidget( tabWidget, "widget" ); ListView1 = new QListView( widget_1, "ListView1" ); QGridLayout *layout1 = new QGridLayout(widget_1 ); widget_2 = new QWidget( tabWidget, "widget_2" ); ListView2 = new QListView( widget_2, "ListView2" ); QGridLayout *layout2 = new QGridLayout(widget_2 ); widget_3 = new QWidget( tabWidget, "widget_3" ); ListView3 = new QListView( widget_3, "ListView3" ); QGridLayout *layout3 = new QGridLayout(widget_3 ); widget_4 = new QWidget( tabWidget, "widget_4" ); ListView4 = new QListView( widget_4, "ListView4" ); QGridLayout *layout4 = new QGridLayout(widget_4 ); widget_5 = new QWidget( tabWidget, "widget_5" ); ListView5 = new QListView( widget_5, "ListView5" ); QGridLayout *layout5 = new QGridLayout(widget_5 ); - ListView1->addColumn( tr( "Title" ) ); - ListView1->setColumnWidthMode( 0, QListView::Manual ); - ListView1->setColumnWidth(0, 330); + ListView1->addColumn( tr( "Author" ), -1 ); + ListView1->setColumnAlignment( 1, 1 ); + + ListView1->addColumn( tr( "Title" ), -1 ); ListView1->setColumnAlignment( 0, 1 ); - ListView1->addColumn( tr( "Author" ) ); - ListView1->setColumnWidthMode( 1, QListView::Manual ); - ListView1->setColumnWidth(1, 170); - ListView1->setColumnAlignment( 1, 1 ); ListView1->addColumn( tr( "Year" ) ); ListView1->setColumnWidthMode( 2, QListView::Manual ); - ListView1->setColumnWidth(2, 50); ListView1->setColumnAlignment( 2, 1 ); - ListView1->addColumn( tr( "File" ) ); + ListView1->addColumn( tr( "File" ), -1 ); ListView1->setColumnWidthMode( 2, QListView::Manual ); - ListView1->setColumnWidth(2, 100); - ListView1->setColumnAlignment( 2, 1 ); - ListView2->addColumn( tr( "Title" ) ); - ListView2->setColumnWidthMode( 0, QListView::Manual ); - ListView2->setColumnWidth(0, 330); - ListView2->setColumnAlignment( 0, 1 ); + ListView1->setColumnAlignment( 2, 1 ); - ListView2->addColumn( tr( "Author" ) ); - ListView2->setColumnWidthMode( 1, QListView::Manual ); - ListView2->setColumnWidth(1, 170); + ListView2->addColumn( tr( "Author" ), -1 ); ListView2->setColumnAlignment( 1, 1 ); - ListView2->addColumn( tr( "Year" ) ); + ListView2->addColumn( tr( "Title" ), -1); + ListView2->setColumnAlignment( 0, 1 ); + + ListView2->addColumn( tr( "Year" ), -1 ); ListView2->setColumnWidthMode( 2, QListView::Manual ); - ListView2->setColumnWidth(2, 50); ListView2->setColumnAlignment( 2, 1 ); - ListView2->addColumn( tr( "File" ) ); + ListView2->addColumn( tr( "File" ), -1 ); ListView2->setColumnWidthMode( 3, QListView::Manual ); - ListView2->setColumnWidth(3, 100); ListView2->setColumnAlignment( 3, 1 ); - ListView3->addColumn( tr( "Title" ) ); - ListView3->setColumnWidthMode( 0, QListView::Manual ); - ListView3->setColumnWidth(0, 330); + ListView3->addColumn( tr( "Author" ), -1 ); + ListView3->setColumnAlignment( 1, 1 ); + + ListView3->addColumn( tr( "Title" ), -1 ); ListView3->setColumnAlignment( 0, 1 ); - ListView3->addColumn( tr( "Author" ) ); - ListView3->setColumnWidthMode( 1, QListView::Manual ); - ListView3->setColumnWidth(1, 170); - ListView3->setColumnAlignment( 1, 1 ); - ListView3->addColumn( tr( "Year" ) ); + ListView3->addColumn( tr( "Year" ), -1 ); ListView3->setColumnWidthMode( 2, QListView::Manual ); - ListView3->setColumnWidth(2, 50); ListView3->setColumnAlignment( 2, 1 ); - ListView3->addColumn( tr( "File" ) ); + ListView3->addColumn( tr( "File" ), -1 ); ListView3->setColumnWidthMode( 3, QListView::Manual ); - ListView3->setColumnWidth(3, 100); ListView3->setColumnAlignment( 3, 1 ); - ListView4->addColumn( tr( "Title" ) ); - ListView4->setColumnWidthMode( 0, QListView::Manual ); - ListView4->setColumnWidth(0, 330); - ListView4->setColumnAlignment( 0, 1 ); - - ListView4->addColumn( tr( "Author" ) ); - ListView4->setColumnWidthMode( 1, QListView::Manual ); - ListView4->setColumnWidth(1, 170); + ListView4->addColumn( tr( "Author" ), -1 ); ListView4->setColumnAlignment( 1, 1 ); + ListView4->addColumn( tr( "Title" ), -1 ); + ListView4->setColumnAlignment( 0, 1 ); - ListView4->addColumn( tr( "Year" ) ); + ListView4->addColumn( tr( "Year" ), -1 ); ListView4->setColumnWidthMode( 2, QListView::Manual ); - ListView4->setColumnWidth(2, 50); ListView4->setColumnAlignment( 2, 1 ); - ListView4->addColumn( tr( "File" ) ); + ListView4->addColumn( tr( "File" ), -1 ); ListView4->setColumnWidthMode( 3, QListView::Manual ); - ListView4->setColumnWidth(3, 100); ListView4->setColumnAlignment( 3, 1 ); - ListView5->addColumn( tr( "Title" ) ); - ListView5->setColumnWidthMode( 0, QListView::Manual ); - ListView5->setColumnWidth(0, 330); + ListView5->addColumn( tr( "Author" ), -1 ); + ListView5->setColumnAlignment( 1, 1 ); + + ListView5->addColumn( tr( "Title" ), -1 ); ListView5->setColumnAlignment( 0, 1 ); - ListView5->addColumn( tr( "Author" ) ); - ListView5->setColumnWidthMode( 1, QListView::Manual ); - ListView5->setColumnWidth(1, 170); - ListView5->setColumnAlignment( 1, 1 ); - ListView5->addColumn( tr( "Year" ) ); + ListView5->addColumn( tr( "Year" ), -1 ); ListView5->setColumnWidthMode( 2, QListView::Manual ); - ListView5->setColumnWidth(2, 50); ListView5->setColumnAlignment( 2, 1 ); - ListView5->addColumn( tr( "File" ) ); + ListView5->addColumn( tr( "File" ), -1 ); ListView5->setColumnWidthMode( 3, QListView::Manual ); - ListView5->setColumnWidth(3, 100); ListView5->setColumnAlignment( 3, 1 ); tabWidget->insertTab( widget_1, tr( "A-F" ) ); tabWidget->insertTab( widget_2, tr( "G-M" ) ); tabWidget->insertTab( widget_3, tr( "N-R" ) ); tabWidget->insertTab( widget_4, tr( "S-Z" ) ); tabWidget->insertTab( widget_5, tr( " " ) ); ListView1->setMultiSelection(TRUE); ListView2->setMultiSelection(TRUE); ListView3->setMultiSelection(TRUE); ListView4->setMultiSelection(TRUE); ListView5->setMultiSelection(TRUE); widget_6 = new QWidget( tabWidget, "widget_6" ); tabWidget->insertTab(widget_6,tr("Options")); ListView1->setSorting( 2, TRUE); ListView2->setSorting( 2, TRUE); ListView3->setSorting( 2, TRUE); ListView4->setSorting( 2, TRUE); ListView5->setSorting( 2, TRUE); ListView1->setAllColumnsShowFocus( TRUE ); ListView2->setAllColumnsShowFocus( TRUE ); ListView3->setAllColumnsShowFocus( TRUE ); ListView4->setAllColumnsShowFocus( TRUE ); ListView5->setAllColumnsShowFocus( TRUE ); QGridLayout *layout6 = new QGridLayout(widget_6 ); QComboBox * sortingCombo; buttonCancel = new QPushButton( widget_6, "buttonCancel" ); checkBox = new QCheckBox( ( tr("Open Automatically")), widget_6); checkBox->setChecked( FALSE); // httpBox = new QCheckBox( ( tr("Use http")),widget_6); // httpBox->setChecked( FALSE); // QToolTip::add( httpBox, ( tr("Use http to download \nproxy users should probably use this.")) ); - authBox= new QCheckBox( ( tr("Last name first \n(requires library restart)")),widget_6); - authBox->setChecked( FALSE); + authBox= new QCheckBox( ( tr("Last name first.")),widget_6); + authBox->setChecked( true); layout1->addMultiCellWidget( ListView1, 0, 0, 0, 4); layout2->addMultiCellWidget( ListView2, 0, 0, 0, 4); layout3->addMultiCellWidget( ListView3, 0, 0, 0, 4); layout4->addMultiCellWidget( ListView4, 0, 0, 0, 4); layout5->addMultiCellWidget( ListView5, 0, 0, 0, 4); buttonSearch = new QPushButton(this,"buttonSearch"); buttonLibrary=new QPushButton(this,"buttenLibrary"); buttonNewList=new QPushButton(this,"NewList"); moreInfoButton= new QPushButton(this,"moreInfo"); sortingCombo=new QComboBox(widget_6,"sort by combo"); layout6->addMultiCellWidget(buttonCancel, 0, 0, 4, 4); layout6->addMultiCellWidget(checkBox, 1, 1, 0, 0); layout6->addMultiCellWidget(sortingCombo, 2, 2, 0, 0); layout6->addMultiCellWidget(authBox, 3, 3, 0, 0); layout->addMultiCellWidget( buttonSearch, 1, 1, 0, 0); layout->addMultiCellWidget( buttonLibrary, 1, 1, 1, 1); layout->addMultiCellWidget( moreInfoButton, 1, 1, 2, 2); layout->addMultiCellWidget( buttonNewList, 1, 1, 3, 3); moreInfoButton->setText("Info"); moreInfoButton->setDisabled(TRUE); buttonSearch->setDisabled(TRUE); buttonSearch->setDefault(TRUE); buttonSearch->setText(tr("Search")); buttonCancel->setText(tr("Close")); buttonLibrary->setText("Load"); // buttonLibrary->setDefault(TRUE); buttonNewList->setText("New List"); QStrList sortingList; sortingList.append( "Sort by Number"); sortingList.append("Sort by Title"); sortingList.append( "Sort by Author"); sortingList.append("Sort by Year"); sortingCombo->insertStrList(sortingList,0); sortingCombo->setCurrentItem(2); sortingCombo->setMaximumWidth(180); // signals and slots connections connect(buttonSearch,SIGNAL(clicked()),this,SLOT(onButtonSearch())); connect(buttonLibrary,SIGNAL(clicked()),this,SLOT(FindLibrary())); connect(buttonCancel,SIGNAL(clicked()),this,SLOT(reject())); connect(moreInfoButton,SIGNAL(clicked()),this,SLOT(moreInfo())); connect(buttonNewList,SIGNAL(clicked()),this,SLOT(newList())); connect(ListView1,SIGNAL(doubleClicked(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView1,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView2,SIGNAL(doubleClicked(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView2,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView3,SIGNAL(doubleClicked(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView3,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView4,SIGNAL(doubleClicked(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView4,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView5,SIGNAL(doubleClicked(QListViewItem*)),SLOT(select_title(QListViewItem*))); connect(ListView5,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*))); + connect(authBox,SIGNAL(clicked()),this,SLOT(authBoxClicked())); connect(sortingCombo,SIGNAL(activated(int)),SLOT(comboSelect(int))); } void LibraryDialog::doListView() { } |