summaryrefslogtreecommitdiff
path: root/noncore/apps
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 /noncore/apps
parentf0bb6c410f19d502cf563254d95158617a32b94e (diff)
downloadopie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.zip
opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.gz
opie-65edeafe2dc8689dce7c2ce94e954933b393dcf0.tar.bz2
optimize search. fix other things
Diffstat (limited to 'noncore/apps') (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
@@ -136,54 +136,72 @@ void LibraryDialog::Library() {
// 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 {
@@ -192,6 +210,9 @@ void LibraryDialog::Library() {
sMsg = ( tr("<p>Error opening library index file. Please download a new one.</P> "));
QMessageBox::message( "Error",sMsg);
}
+ system("date");
+ sortLists(0);
+
} //end Library()
@@ -303,33 +324,40 @@ bool LibraryDialog::getAuthor()
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 );
}
}
}
@@ -675,86 +703,27 @@ void LibraryDialog::onButtonSearch()
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);
@@ -773,8 +742,6 @@ void LibraryDialog::onButtonSearch()
}
Searchlist.clear();
- // if(SearchResultsDialog)
- // delete SearchResultsDialog;
QString tester;
for ( QStringList::Iterator it = resultLs.begin(); it != resultLs.end(); ++it ) {
texter.sprintf("%s \n",(*it).latin1());
@@ -820,7 +787,7 @@ void LibraryDialog::parseSearchResults( QString resultStr)
DlglistItemFile = DlglistItemFile.right( DlglistItemFile.length() - 1);
- if( DlglistItemFile.toInt() > 10000 ) {
+ if( DlglistItemFile.toInt() > 10000 || yearInt == 1980 ) {
// new directory sturcture
download_newEtext(); //)
} else {
@@ -829,9 +796,19 @@ 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();
}
/*
@@ -1050,7 +1027,7 @@ void LibraryDialog::FindLibrary()
//odebug << "new index nameis "+ old_index << oendl;
Library();
}
- indexLoaded=true;
+ indexLoaded =true;
buttonSearch->setEnabled(true);
moreInfoButton->setEnabled(true);
@@ -1067,3 +1044,9 @@ void LibraryDialog::cleanStrings() {
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
@@ -30,6 +30,7 @@
#include <qlabel.h>
#include <stdlib.h>
#include <qtabwidget.h>
+#include <qvaluelist.h>
class QVBoxLayout;
class QHBoxLayout;
@@ -41,6 +42,14 @@ class QPushButton;
class QWidget;
//class Gutenbrowser;
+typedef struct {
+ QString title;
+ QString author;
+ QString year;
+ QString file;
+} etext;
+
+
class LibraryDialog : public QDialog {
Q_OBJECT
@@ -99,7 +108,7 @@ public slots:
bool getAuthor();
void select_title(QListViewItem*);
void cancelIt();
- void sort();
+ void sortLists(int);
bool moreInfo();
// void DownloadEmAll();
bool httpDownload();
@@ -118,6 +127,8 @@ protected slots:
protected:
+ QValueList<etext> etextLibrary;
+
void initDialog();
QHBoxLayout *hbox,*hbox1,*hbox2;
QVBoxLayout *vbox;
@@ -127,6 +138,8 @@ private:
void clearItems();
void cleanStrings();
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
@@ -72,105 +72,78 @@ void LibraryDialog::initDialog(){
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" ) );
@@ -207,8 +180,8 @@ void LibraryDialog::initDialog(){
// 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);
@@ -272,6 +245,7 @@ void LibraryDialog::initDialog(){
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)));