summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-08-24 20:22:10 (UTC)
committer llornkcor <llornkcor>2005-08-24 20:22:10 (UTC)
commit65edeafe2dc8689dce7c2ce94e954933b393dcf0 (patch) (side-by-side diff)
tree17d0986ef0bce73f44a4b9900466fcc533954814
parentf0bb6c410f19d502cf563254d95158617a32b94e (diff)
downloadopie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.zip
opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.gz
opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.bz2
optimize search. fix other things
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.cpp265
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialog.h15
-rw-r--r--noncore/apps/opie-gutenbrowser/LibraryDialogData.cpp90
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
@@ -138,3 +138,5 @@ void LibraryDialog::Library() {
IDontKnowWhy = "";
- if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully
+ system("date");
+ if ( indexLib.open( IO_ReadOnly) ) {
+// file opened successfully
QTextStream indexStream( &indexLib );
@@ -142,46 +144,62 @@ void LibraryDialog::Library() {
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
}
@@ -194,2 +212,5 @@ void LibraryDialog::Library() {
}
+ system("date");
+ sortLists(0);
+
} //end Library()
@@ -305,7 +326,11 @@ bool LibraryDialog::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)
@@ -314,20 +339,23 @@ void LibraryDialog::addItems() {
// 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 );
}
@@ -677,82 +705,23 @@ void LibraryDialog::onButtonSearch()
- // 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);
+ }
+ }
+
@@ -775,4 +744,2 @@ void LibraryDialog::onButtonSearch()
- // if(SearchResultsDialog)
- // delete SearchResultsDialog;
QString tester;
@@ -822,3 +789,3 @@ void LibraryDialog::parseSearchResults( QString resultStr)
- if( DlglistItemFile.toInt() > 10000 ) {
+ if( DlglistItemFile.toInt() > 10000 || yearInt == 1980 ) {
// new directory sturcture
@@ -831,5 +798,15 @@ void LibraryDialog::parseSearchResults( QString resultStr)
-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();
}
@@ -1052,3 +1029,3 @@ void LibraryDialog::FindLibrary()
}
- indexLoaded=true;
+ indexLoaded =true;
buttonSearch->setEnabled(true);
@@ -1069 +1046,7 @@ void LibraryDialog::cleanStrings() {
}
+
+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
@@ -32,2 +32,3 @@
#include <qtabwidget.h>
+#include <qvaluelist.h>
@@ -43,2 +44,10 @@ class QWidget;
+typedef struct {
+ QString title;
+ QString author;
+ QString year;
+ QString file;
+} etext;
+
+
class LibraryDialog : public QDialog {
@@ -101,3 +110,3 @@ public slots:
void cancelIt();
- void sort();
+ void sortLists(int);
bool moreInfo();
@@ -120,2 +129,4 @@ protected:
+ QValueList<etext> etextLibrary;
+
void initDialog();
@@ -129,2 +140,4 @@ private:
bool getEtext(const QStringList &);
+private slots:
+ void authBoxClicked();
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
@@ -74,11 +74,8 @@ void LibraryDialog::initDialog(){
- 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 );
@@ -86,48 +83,36 @@ void LibraryDialog::initDialog(){
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 );
@@ -135,40 +120,28 @@ void LibraryDialog::initDialog(){
- 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 );
@@ -209,4 +182,4 @@ void LibraryDialog::initDialog(){
// 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);
@@ -274,2 +247,3 @@ void LibraryDialog::initDialog(){
connect(ListView5,SIGNAL(returnPressed(QListViewItem*)),SLOT(select_title(QListViewItem*)));
+ connect(authBox,SIGNAL(clicked()),this,SLOT(authBoxClicked()));