-rw-r--r-- | noncore/apps/checkbook/traninfo.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/confedit/listviewconfdir.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/confedit/listviewitemconfigentry.cpp | 8 | ||||
-rw-r--r-- | noncore/apps/opie-bartender/bac.cpp | 1 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/LibraryDialog.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/NetworkDialog.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/fontDialog.cpp | 40 | ||||
-rw-r--r-- | noncore/apps/opie-gutenbrowser/helpwindow.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/oxygen/kmolelements.cpp | 36 |
9 files changed, 48 insertions, 49 deletions
diff --git a/noncore/apps/checkbook/traninfo.cpp b/noncore/apps/checkbook/traninfo.cpp index 506f567..4833af9 100644 --- a/noncore/apps/checkbook/traninfo.cpp +++ b/noncore/apps/checkbook/traninfo.cpp @@ -1,227 +1,227 @@ /* This file is part of the OPIE Project =. .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "traninfo.h" #include <qpe/config.h> #include <qpe/timestring.h> QString tempstr; TranInfo::TranInfo( int id, const QString &desc, const QDate &date, bool withdrawal, const QString &type, const QString &category, float amount, float fee, const QString &number, const QString ¬es, int next ) { i = id; d = desc; td = date; w = withdrawal; t = type; c = category; a = amount; f = fee; cn = number; n = notes; _next=next; } TranInfo::TranInfo( Config config, int entry ) { config.setGroup( QString::number( entry ) ); QString desc = config.readEntry( "Description", "Not Found" ); if ( desc != "Not Found" ) { // ID i = entry; // Description d = desc; // Transaction date int yr, mn, dy; QString datestr = config.readEntry( "Date", "" ); int begin, end; begin = datestr.find( '/' ); mn = datestr.left( begin ).toInt(); end = datestr.find( '/', ++begin ); dy = datestr.mid( begin, end - begin ).toInt(); yr = datestr.right( datestr.length() - end - 1).toInt(); td.setYMD( yr, mn, dy ); // Deposit/withdrawal indicator ( withdrawal == TRUE ) w = ( config.readEntry( "Payment", "false" ) == "true" ); // Type QString type = config.readEntry( "Type", "0" ); if ( w ) { // Withdrawal types if( type == "0" ) t = "Debit Charge"; else if( type == "1" ) t = "Written Check"; else if( type == "2" ) t = "Transfer"; else if( type == "3" ) t = "Credit Card"; } else { if( type == "0" ) t = "Written Check"; else if( type == "1" ) t = "Automatic Payment"; else if( type == "2" ) t = "Transfer"; else if( type == "3" ) t = "Cash"; } // Category c = config.readEntry( "Category", "" ); // Transaction amount QString stramount = config.readEntry( "Amount", "0.00" ); bool ok; a = stramount.toFloat( &ok ); // Transaction fee stramount = config.readEntry( "TransactionFee", "0.00" ); f = stramount.toFloat( &ok ); // Transaction number cn = config.readEntry( "CheckNumber", "" ); // Notes n = config.readEntry( "Comments", "" ); // next _next = config.readNumEntry("Next", -1); } } // --- datestr ---------------------------------------------------------------- const QString &TranInfo::datestr(bool bDisplayDate) { if( bDisplayDate ) { tempstr=TimeString::numberDateString( td ); } else { tempstr.sprintf( "%04d-%02d-%02d", td.year() ,td.month(), td.day() ); } return(tempstr); } // --- getIdStr --------------------------------------------------------------- const QString &TranInfo::getIdStr() { tempstr.sprintf("%04d", i); return( tempstr ); } // --- write ------------------------------------------------------------------ void TranInfo::write( Config *config ) { config->setGroup( QString::number( id() ) ); config->writeEntry( "Description", d ); tempstr = QString::number( td.month() ); tempstr.append( '/' ); tempstr.append( QString::number( td.day() ) ); tempstr.append( '/' ); tempstr.append( QString::number( td.year() ) ); config->writeEntry( "Date", tempstr ); w ? tempstr = "true" : tempstr = "false"; config->writeEntry( "Payment", tempstr ); if ( t == "Debit Charge" || t == "Written Check" ) tempstr = "0"; else if ( t == "Written Check" || t == "Automatic Payment" ) tempstr = "1"; else if ( t == "Transfer" ) tempstr = "2"; else if ( t == "Credit Card" || t == "Cash" ) tempstr = "3"; config->writeEntry( "Type", tempstr ); config->writeEntry( "Category", c ); tempstr.setNum( a, 'f', 2 ); config->writeEntry( "Amount", tempstr ); tempstr.setNum( f, 'f', 2 ); config->writeEntry( "TransactionFee", tempstr ); config->writeEntry( "CheckNumber", cn ); config->writeEntry( "Comments", n ); config->writeEntry( "Next", _next ); } int TranInfoList::compareItems( QCollection::Item item1, QCollection::Item item2 ) { QDate d1 = ((TranInfo *)item1)->date(); QDate d2 = ((TranInfo *)item2)->date(); int r = -1; if ( d1 < d2 ) r = -1; else if ( d1 == d2 ) r = 0; else if ( d1 > d2 ) r = 1; return( r ); } // --- toString --------------------------------------------------------------- QString TranInfo::toString() { QString ret; ret.sprintf("(%4d) %10s %4s %-10s %5.2f %5.2f", id(), (const char *)datestr(), (const char *)number(), (const char *)desc(), (withdrawal() ? -1 : 1) * amount(), fee() ); return(ret); } // --- findMostRecentByDesc --------------------------------------------------- TranInfo *TranInfoList::findMostRecentByDesc( const QString &desc ) { for(TranInfo *cur=last(); cur; cur=prev()) { if( cur->desc()==desc ) return( cur ); } return(NULL); -}
\ No newline at end of file +} diff --git a/noncore/apps/confedit/listviewconfdir.cpp b/noncore/apps/confedit/listviewconfdir.cpp index 33bffe1..73eaae3 100644 --- a/noncore/apps/confedit/listviewconfdir.cpp +++ b/noncore/apps/confedit/listviewconfdir.cpp @@ -1,65 +1,65 @@ /*************************************************************************** * * * 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. * * * ***************************************************************************/ // (c) 2002 Patrick S. Vogtp <tille@handhelds.org> #include "listviewconfdir.h" #include "listviewitemconffile.h" /* OPIE */ #include <opie2/odebug.h> using namespace Opie::Core; /* QT */ #include <qmessagebox.h> ListViewConfDir::ListViewConfDir(QString settingsPath, QWidget *parent, const char *name ) : QListView(parent,name), confDir(settingsPath) { setRootIsDecorated( true ); addColumn(tr("Files")); if (!confDir.isReadable()) QMessageBox::critical(this,tr("Could not open"),tr("The directory ")+settingsPath+tr(" could not be opened."),1,0); readConfFiles(); connect( this, SIGNAL(expanded(QListViewItem*)), SLOT(expand(QListViewItem*))); } ListViewConfDir::~ListViewConfDir() { } void ListViewConfDir::readConfFiles() { confDir.setFilter( QDir::Files | QDir::NoSymLinks ); confDir.setSorting( QDir::Name ); confDir.setNameFilter("*.conf"); const QFileInfoList *list = confDir.entryInfoList(); QFileInfoListIterator it( *list ); QFileInfo *fi; ListViewItemConfFile *fileEntry; while ( (fi=it.current()) ) { - odebug << "opening: >" << fi->fileName().data() << "<" << oendl; + odebug << "opening: >" << fi->fileName().data() << "<" << oendl; fileEntry = new ListViewItemConfFile( fi, this ); - QListViewItem *dummy = new QListViewItem(fileEntry, "dummy"); + (void)new QListViewItem(fileEntry, "dummy"); ++it; } } void ListViewConfDir::expand(QListViewItem *item) { ((ListViewItemConf*)item)->expand(); } diff --git a/noncore/apps/confedit/listviewitemconfigentry.cpp b/noncore/apps/confedit/listviewitemconfigentry.cpp index 0970125..714a154 100644 --- a/noncore/apps/confedit/listviewitemconfigentry.cpp +++ b/noncore/apps/confedit/listviewitemconfigentry.cpp @@ -1,150 +1,150 @@ /*************************************************************************** * * * 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. * * * ***************************************************************************/ // (c) 2002 Patrick S. Vogtp <tille@handhelds.org> #include "listviewitemconfigentry.h" #include <qtextstream.h> ListViewItemConfigEntry::ListViewItemConfigEntry(ListViewItemConfFile *parent, QString group, QString key) : ListViewItemConf(parent) { _fileItem = parent; _file = parent->fileName(); _group = group; setKey(key); _groupOrig = group; _keyOrig = _key; _valueOrig = _value; } ListViewItemConfigEntry::~ListViewItemConfigEntry() { } bool ListViewItemConfigEntry::isGroup() { return _key.isEmpty(); } bool ListViewItemConfigEntry::isKey() { return !_key.isEmpty(); } QString ListViewItemConfigEntry::getFile() { return _file; } void ListViewItemConfigEntry::setGroup(QString g) { if (g==_group) return; _group = g; changed(); } QString ListViewItemConfigEntry::getGroup() { return _group; } void ListViewItemConfigEntry::setKey(QString key) { int pos = key.find("="); _key = key.left(pos).stripWhiteSpace(); _value = key.right(key.length() - pos - 1).stripWhiteSpace(); displayText(); } QString ListViewItemConfigEntry::getKey() { return _key; } QString ListViewItemConfigEntry::getValue() { return _value; } void ListViewItemConfigEntry::keyChanged(QString k) { if (k==_key) return; _key = k; changed(); } void ListViewItemConfigEntry::valueChanged(QString v) { if (v==_value) return; _value = v; changed(); } void ListViewItemConfigEntry::displayText() { QString s; if (_changed) s="*"; if (isGroup()) { s += "["+_group+"]"; _type = Group; }else{ s += _key+" = "+_value; _type = Key; } setText(0,s); } void ListViewItemConfigEntry::changed() { _changed=true; displayText(); _fileItem->changed(); } void ListViewItemConfigEntry::remove() { delete this; } void ListViewItemConfigEntry::save(QTextStream *t) { QString s; if (isGroup()) { s += "["+_group+"]"; _type = Group; }else{ s += _key+" = "+_value; _type = Key; } s += "\n"; (*t) << s; _changed = false; for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) { ((ListViewItemConfigEntry*)it)->save(t); } } void ListViewItemConfigEntry::revert() { - _group = _groupOrig; - _key = _keyOrig; - _value = _valueOrig; + _group = _groupOrig; + _key = _keyOrig; + _value = _valueOrig; _changed=false; displayText(); } void ListViewItemConfigEntry::expand() { -}
\ No newline at end of file +} diff --git a/noncore/apps/opie-bartender/bac.cpp b/noncore/apps/opie-bartender/bac.cpp index 2e74029..8dc7e88 100644 --- a/noncore/apps/opie-bartender/bac.cpp +++ b/noncore/apps/opie-bartender/bac.cpp @@ -1,184 +1,183 @@ /**************************************************************************** ** ** Created: Sun Jul 21 19:00:14 2002 ** by: L.J. Potter <ljp@llornkcor.com> ** copyright : (C) 2002 by ljp 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 "bac.h" #include <qcombobox.h> #include <qlabel.h> #include <qlcdnumber.h> #include <qpushbutton.h> #include <qspinbox.h> #include <qlayout.h> BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "BacDialog" ); setCaption( tr( "Blood Alcohol Estimator" ) ); Layout7 = new QVBoxLayout( this); Layout7->setSpacing( 6 ); Layout7->setMargin( 0 ); Layout1 = new QHBoxLayout; Layout1->setSpacing( 6 ); Layout1->setMargin( 0 ); NumberSpinBox = new QSpinBox( this, "NumberSpinBox" ); Layout1->addWidget( NumberSpinBox ); TextLabel1 = new QLabel(this, "TextLabel1" ); TextLabel1->setText( tr( "# Drinks Consumed" ) ); Layout1->addWidget( TextLabel1 ); Layout7->addLayout( Layout1 ); Layout2 = new QHBoxLayout; Layout2->setSpacing( 6 ); Layout2->setMargin( 0 ); WeightSpinBox = new QSpinBox( this, "WeightSpinBox" ); Layout2->addWidget( WeightSpinBox ); WeightSpinBox->setMaxValue(500); TextLabel2 = new QLabel( this, "TextLabel2" ); TextLabel2->setText( tr( "Weight" ) ); Layout2->addWidget( TextLabel2 ); Layout7->addLayout( Layout2 ); weightUnitsCombo =new QComboBox( FALSE, this, "unitComboBox" ); weightUnitsCombo->insertItem( tr( "Kilos" ) ); weightUnitsCombo->insertItem( tr( "Pounds" ) ); Layout2->addWidget( weightUnitsCombo ); weightUnitsLabel = new QLabel(this, "unitsTextLabel" ); weightUnitsLabel->setText( tr( "Units" ) ); Layout2->addWidget( weightUnitsLabel ); Layout3 = new QHBoxLayout; Layout3->setSpacing( 6 ); Layout3->setMargin( 0 ); TimeSpinBox = new QSpinBox( this, "TimeSpinBox" ); Layout3->addWidget( TimeSpinBox ); TimeSpinBox->setMaxValue(24); TextLabel3 = new QLabel( this, "TextLabel3" ); TextLabel3->setText( tr( "Period of Time (hours)" ) ); Layout3->addWidget( TextLabel3 ); Layout7->addLayout( Layout3 ); Layout4 = new QHBoxLayout; Layout4->setSpacing( 6 ); Layout4->setMargin( 0 ); GenderComboBox = new QComboBox( FALSE, this, "GenderComboBox" ); GenderComboBox->insertItem( tr( "Male" ) ); GenderComboBox->insertItem( tr( "Female" ) ); GenderComboBox->insertItem( tr( "Unknown" ) ); Layout4->addWidget( GenderComboBox ); TextLabel4 = new QLabel( this, "TextLabel4" ); TextLabel4->setText( tr( "Gender" ) ); Layout4->addWidget( TextLabel4 ); Layout7->addLayout( Layout4 ); Layout6 = new QHBoxLayout; Layout6->setSpacing( 6 ); Layout6->setMargin( 0 ); TypeDrinkComboBox = new QComboBox( FALSE,this, "TypeDrinkComboBox" ); TypeDrinkComboBox->insertItem( tr( "Beer" ) ); TypeDrinkComboBox->insertItem( tr( "Wine" ) ); TypeDrinkComboBox->insertItem( tr( "Shot" ) ); Layout6->addWidget( TypeDrinkComboBox ); TextLabel1_2 = new QLabel( this, "TextLabel1_2" ); TextLabel1_2->setText( tr( "Type of drink" ) ); Layout6->addWidget( TextLabel1_2 ); Layout7->addLayout( Layout6 ); PushButton1 = new QPushButton( this, "PushButton1" ); PushButton1->setText( tr( "Calculate" ) ); Layout7->addWidget( PushButton1 ); connect(PushButton1,SIGNAL( clicked()), this, SLOT( calculate())); LCDNumber1 = new QLCDNumber( this, "LCDNumber1" ); LCDNumber1->setMaximumHeight( 50); LCDNumber1->setNumDigits(6); LCDNumber1->setSmallDecimalPoint(TRUE); LCDNumber1->setFrameStyle(QFrame::Box); LCDNumber1->setLineWidth(2); LCDNumber1->setSegmentStyle( QLCDNumber::Filled); QPalette palette = LCDNumber1->palette(); palette.setColor(QPalette::Normal, QColorGroup::Foreground, Qt::red); palette.setColor(QPalette::Normal, QColorGroup::Light, Qt::black); palette.setColor(QPalette::Normal, QColorGroup::Dark, Qt::darkGreen); LCDNumber1->setPalette(palette); Layout7->addWidget( LCDNumber1 ); NumberSpinBox->setFocus(); } BacDialog::~BacDialog() {} void BacDialog::calculate() { float weight,genderDiff, bac, typeDrink=0, drinkOz=0, bodyWater, milliliters, oz, gram, gramsMil, alc, metab, bac1; - float weightunitDifference, massunitdiff; QString estBac; if( GenderComboBox->currentItem()==0) genderDiff = .58; else genderDiff = .49; switch(TypeDrinkComboBox->currentItem()) { case 0: { //beer typeDrink = .045; drinkOz = 12; } break; case 1: { typeDrink = .2; drinkOz = 4; } break; case 2: { typeDrink = .5; drinkOz = 1.5; } break; }; if( weightUnitsCombo->currentItem() == 0 ) { weight = WeightSpinBox->value(); // kilos } else { weight = WeightSpinBox->value() / 2.2046; // convert to kilograms } bodyWater = weight * genderDiff; milliliters = bodyWater * 1000; oz = 23.36/milliliters; gram = oz * .806; gramsMil = gram * 100; alc = drinkOz*NumberSpinBox->value() * typeDrink; metab = TimeSpinBox->value() * .012; bac1 = gramsMil * alc; bac = bac1 - metab; // weightDrink= (nDrinks * .79) / (weight * genderDiff*1000); // (ounces * percent * 0.075 / weight) - (hours * 0.015); // bac = (((weightDrink * .806) * 100) * .54);// - (time * .012); // assuming beer of 4.5% estBac.sprintf("%f",bac); LCDNumber1->display(bac); // BACTextLabel->setText(estBac ); } diff --git a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp index 124b6f3..020a116 100644 --- a/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/LibraryDialog.cpp @@ -1,1073 +1,1073 @@ /*************************************************************************** // 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 ) +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 = QPEApplication::qpeDir()+"/etc/gutenbrowser/gutenbrowserrc"; new_index =QPEApplication::qpeDir()+"/etc/gutenbrowser/PGWHOLE.TXT"; old_index = QPEApplication::qpeDir()+"/etc/gutenbrowser/GUTINDEX.ALL"; // old_index = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; // 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() { // delete QList_Item2; // delete QList_Item1; // delete QList_Item3; // delete QList_Item4; // delete QList_Item5; // saveConfig(); } /*This groks using PGWHOLE.TXT */ void LibraryDialog::Newlibrary() { #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); year = year.stripWhiteSpace(); file = indexLine.mid( indexLine.find( "[", 0, TRUE )+1, 12 ); file = file.stripWhiteSpace(); number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 ); if( year.toInt() < 1984) number = number.left( number.length() -1 ); number = number.stripWhiteSpace(); title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() ); title = title.stripWhiteSpace(); getAuthor(); // groks author author = author.stripWhiteSpace(); if (authBox->isChecked()) { // this reverses the first name and last name of the author // odebug << "Sorting last name first" << oendl; 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; } if( !number.isEmpty() && (title.find( "reserved",0, FALSE) == -1) && (file.find( "]",0, TRUE) == -1) ) { // fill string list or something to be able to resort the whole library if( author.isEmpty() ) QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, 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 ); 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.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.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 QList_Item5 = new QListViewItem( ListView5, /* number,*/ title, author, year, file ); } } }// end if }// end while newindexLib.close(); } #ifndef Q_WS_QWS setCursor( arrowCursor); #endif #endif } // end Newlibrary() void LibraryDialog::Library() {// old library groking method ListView1->clear(); ListView2->clear(); ListView3->clear(); ListView4->clear(); ListView5->clear(); odebug << "opening GUTINDEX.ALL file" << oendl; IDontKnowWhy = ""; if ( indexLib.open( IO_ReadOnly) ) { // file opened successfully QTextStream indexStream( &indexLib ); QString indexLine; qApp->processEvents(); // int jig; while ( !indexStream.eof() ) { indexLine = indexStream.readLine(); if ( indexLine != "") { if( (indexLine.mid(4,4)).toInt() /* && !( indexLine.left(3)).toInt()*/ ) { // month = indexLine.left( 3); year = indexLine.mid(4,4); // title = indexLine.mid( 9, 50); 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)); //odebug << "file is "+file << oendl; /// number = indexLine.mid( indexLine.find( "]", 0, TRUE ) +1, indexLine.find( " ", 0, TRUE )+1 ); number = indexLine.mid(55,5); number = number.stripWhiteSpace(); // title = indexLine.mid( indexLine.find(" ", 26, TRUE), indexLine.length() ); title = indexLine.mid( 9, 50 ); title = title.stripWhiteSpace(); //odebug << "title is "+title << oendl; getAuthor(); // grok author author = author.stripWhiteSpace(); //odebug << "author is "+author << oendl; 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; } if( !number.isEmpty() && (title.find( "reserved",0, FALSE) == -1) /*&& (file.find( "]",0, TRUE))*/ ) { // fill string list or something to be able to sort by Author if( author.isEmpty() ) QList_Item5 = new QListViewItem( ListView5, /*number, */title, author, 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 ); 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.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.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 ); } } } } } indexLib.close(); } else { QString sMsg; sMsg = ( tr("<p>Error opening local library index:</P> "))+local_index; QMessageBox::message( "Error",sMsg); } } //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 = ""; } // if( author.contains(" ", TRUE)) { // int suth = author.findRev(" ", -1, TRUE); // author = author.right( author.length() - suth); // } // title // author return true; }////// end getAuthor() /* 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) { // DlglistItemNumber = item->text(0); item = 0; odebug << "string from librarydialog is:" << DlglistItemYear << " " << DlglistItemFile << " " << DlglistItemNumber << "" << oendl; odebug << "Title is "+DlglistItemTitle << oendl; // check for connection here // if( get_extext()) if(download_Etext()) { // odebug << "get here 2" << oendl; if(i_binary == 1) { } if(checkBox->isChecked () ) { accept(); } } } } 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"); odebug << "about to network dialog" << oendl; 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)); odebug << "NewlistItemFile is now "+NewlistItemFile << oendl; } 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"; //odebug << "Download file:" << NewlistItemFile << "" << oendl; odebug << "Checking: "+ftp_host+" "+dir+" "+outputFile+" "+NewlistItemFile << oendl; QStringList networkList; networkList.append((const char *)ftp_host); networkList.append((const char *)dir); networkList.append((const char *)outputFile); networkList.append((const char *)NewlistItemFile); //<< (char *)ftp_host << (char *)dir << (char *)outputFile << (char *)NewlistItemFile; NetworkDialog *NetworkDlg; NetworkDlg = new NetworkDialog( this,"Network Protocol Dialog", TRUE, 0, networkList); if( NetworkDlg->exec() != 0 ) { // use new, improved, *INSTANT* network-dialog-file-getterer File_Name= NetworkDlg->localFileName; odebug << "back to Library from Network Dialog" << oendl; odebug << "Just downloaded "+NetworkDlg->localFileName << oendl; // if (File_Name.find( local_library, 0, TRUE) != -1 ) { //could not be found // QString oldName=File_Name; // File_Name.replace(0,local_library.length(),downDir); // odebug << "File_Name now is "+File_Name << oendl; // } // rename .txt to .etx 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::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; } } 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 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); } } } 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; } 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)); download_Etext(); } /* printf( DlglistItemTitle+"\n"); printf( DlglistItemYear+"\n"); printf( DlglistItemFile+"\n");*/ } // bool LibraryDialog::UnzipIt( QString zipFile) { // //////////TODO findsome other way of dealingwithzip files. // ///usr/bin/unzip"; // if( QFile::exists( zipFile)) { // // QString thatFile = local_library +"PGWHOLE.TXT"; // QString cmd; // #if defined(_WS_X11_) // cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library; // #endif // #if defined(_WS_WIN_) // QString temp= QDir::convertSeparators(local_library); // zipFile=QDir::convertSeparators( zipFile); // cmd = temp+"unzip.exe -o " +zipFile/*newestLibraryFile */+" -d " + temp; // #endif // #ifndef Q_WS_QWS // // QString cmd = "gunzip -d " + zipFile /*newestLibraryFile */+" -d " + local_library; // cmd = "unzip " + zipFile; // #endif // int exit=QMessageBox::information(this, "Unzip?", "Ok to unzip "+ zipFile+" ?", QMessageBox::Yes, QMessageBox::No); // if (exit==QMessageBox::Yes) { // odebug << "Issuing the command "+cmd << oendl; // #if defined(_WS_WIN_) // WinExec( cmd, SW_HIDE ); // #endif // #if defined(_WS_X11_) // system( cmd); // #endif // #ifndef Q_WS_QWS // system( cmd); // #endif // // printf("unzip\n"); // // remove( zipFile /*newestLibraryFile*/); // return true; // } // else if(exit==QMessageBox::No) { // // printf("unzip\n"); // return false; // } // } else { // // QMessageBox::message( "Note",( tr("Please install unzip in your PATH")) ); // return false; // } // return true; // } void LibraryDialog::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); QDir gutDir(QPEApplication::qpeDir()+"etc/gutenbrowser"); if(!gutDir.exists()) gutDir.mkdir(QPEApplication::qpeDir()+"etc/gutenbrowser",true); if( chdir(QPEApplication::qpeDir()+"etc/gutenbrowser") == 0) { odebug << "changing dir "+QPEApplication::qpeDir()+"etc/gutenbrowser" << oendl; QString gutenindex1 = QPEApplication::qpeDir()+"etc/gutenbrowser/GUTINDEX.ALL"; QString cmd="wget -O " + gutenindex1 + " http://sailor.gutenberg.org/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); } else { QMessageBox::message("Note","Could not change directories"); } // 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; buttonSearch->setEnabled(TRUE); moreInfoButton->setEnabled(TRUE); buttonLibrary->setDown(FALSE); buttonNewList->setText("Download"); qApp->processEvents(); } diff --git a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp index af14aac..a321952 100644 --- a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp @@ -1,279 +1,279 @@ // /*************************************************************************** // NetworkDialog.cpp - description // begin : Sun Aug 27 2000 // copyright : (C) 2000 - 2004 by L.J. Potter // 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. * // ***************************************************************************/ // // half-assed attempt at providing a network dialog. // /* Created: Sun Aug 27 15:24:52 2000*/ #include "NetworkDialog.h" #include "gutenbrowser.h" /* OPIE */ #include <opie2/odebug.h> /* QT */ #include <qprogressbar.h> #include <qstringlist.h> #include <qpe/config.h> #include <qvaluelist.h> #include <qapplication.h> #include <qfile.h> #include <qstringlist.h> #include <qlabel.h> #include <qpushbutton.h> #include <qlayout.h> /* STD */ #include <unistd.h> extern "C" { #include <ftplib.h> } QProgressBar* ProgressBar1; QPushButton* buttonCancel; static netbuf *conn = NULL; -static int log_progress(netbuf *ctl, int xfered, void *arg) { +static int log_progress(netbuf *, int xfered, void *arg) { int fsz = *(int *)arg; int pct = (xfered * 100) / fsz; printf("%3d%%\r", pct); fflush(stdout); ProgressBar1->setProgress(xfered); qApp->processEvents(); return 1; } NetworkDialog::NetworkDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QStringList netL) : QDialog( parent, name, modal, fl ) { ftp_host = netL[0]; networkUrl = strUrl = netL[0]; dir = ftp_base_dir = netL[1]; localFileName = netL[2]; s_partialFileName = netL[3]; resize(240,120); local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; // autoOk = autoDownload; // if( networkUrl.find("ftp",0,false)== -1 ) { // if ( !name ) // setName( "HTTP NetworkDialog" ); // setCaption( tr( "HTTP Download ) ); // qInitNetworkProtocols(); // registers ftp protocol // for now // QNetworkProtocol::registerNetworkProtocol( "http", new QNetworkProtocolFactory<Http> ); // } else { if ( !name ) setName( "FTP NetworkDialog" ); setCaption(tr("FTP Download")); // } initDialog(); //opens file to be written } NetworkDialog::~NetworkDialog() { } void NetworkDialog::initDialog() { QGridLayout *layout = new QGridLayout( this ); totalBytesDownloaded=0; warnLabel = new QLabel( this, "TextLabel" ); warnLabel ->setText( tr( "Download should start shortly" ) ); TextLabel3 = new QLabel( this, "TextLabel3" ); TextLabel3->setText( ""); layout->addMultiCellWidget( warnLabel, 0, 0, 0, 5 ); layout->addMultiCellWidget( TextLabel3, 1, 1, 0, 5 ); ProgressBar1 = new QProgressBar( this, "ProgressBar1" ); ProgressBar1->setProgress(0); layout->addMultiCellWidget( ProgressBar1, 3, 3, 0, 4 ); // hbox->addStretch(1); buttonCancel = new QPushButton( this, "buttonCancel" ); buttonCancel->setText( tr( "&Cancel" ) ); buttonCancel->setAutoDefault( TRUE ); buttonCancel->setDefault( TRUE ); layout->addMultiCellWidget( buttonCancel, 3, 3, 5, 5 ); connect(buttonCancel,SIGNAL(clicked()),this,SLOT(reject())); QTimer::singleShot( 1000, this, SLOT( doOk() )); } /* downloads the file networkUrl */ bool NetworkDialog::downloadFile( QString networkUrl ) { int fsz; warnLabel ->setText( ""); qApp->processEvents(); odebug << "Downloading: " << networkUrl << "" << oendl; odebug << "Into: " << localFileName << "" << oendl; if( networkUrl.length() > 5) { QString ftp_user = "anonymous"; QString ftp_pass = "zaurus@gutenbrowser.com"; // ftp_host= networkUrl.mid(networkUrl.find("ftp://",0, TRUE), if(ftp_host.length() < 2) { odebug << "Please select an ftp host" << oendl; successDownload=false; QMessageBox::message("Note","You need to select an ftp host"); return false; } QString msg; odebug << ftp_host << oendl; odebug << "Opening ftp connection." << oendl; warnLabel->setText("connecting to: "+ftp_host ); qApp->processEvents(); /////////// Open FTP connection if (!FtpConnect( ftp_host.latin1(), &conn)) { i=0; successDownload=false; QMessageBox::message("Note","Unable to connect to\n"+ftp_host); return false; } TextLabel3->setText("Opening ftp connection."); qApp->processEvents(); if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { FtpQuit(conn); successDownload=false; msg.sprintf("Unable to log in\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); return false; } odebug << "Changing directories." << oendl; TextLabel3->setText("Changing directories."); qApp->processEvents(); if (!FtpChdir( dir.latin1(), conn )) { successDownload=false; msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); FtpQuit(conn); return false; } // if (!FtpNlst( "./.guten_temp", dir, conn)) { // successDownload=false; // msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); // QMessageBox::message("Note",msg); // FtpQuit(conn); // return false; // } odebug << "Requesting directory list." << oendl; TextLabel3->setText("Getting directory list."); qApp->processEvents(); if (!FtpDir( "./.guten_temp", dir.latin1(), conn) ) { msg.sprintf("Unable to list the directory\n"+dir+"\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); successDownload=false; FtpQuit(conn); return false; } QFile tmp("./.guten_temp"); QString s, File_Name; if (tmp.open(IO_ReadOnly)) { QTextStream t( &tmp ); // use a text stream odebug << "Finding partial filename "+s_partialFileName << oendl; while ( !t.eof()) { s = t.readLine(); if (s.contains(s_partialFileName, FALSE)) { QString str = s.right( (s.length()) - (s.find(s_partialFileName, FALSE)) ); if (str.contains(".txt")) { File_Name = str; odebug << "Found file_name "+ File_Name << oendl; break; } // if (str.contains(".zip")) { // File_Name = str; // odebug << "Found file_name "+ File_Name << oendl; // break; // } } } //end of while loop tmp.close(); // tmp.remove(); ///TODO this is for release version Zaurus } else odebug << "Error opening temp file." << oendl; Config cfg("Gutenbrowser"); cfg.setGroup("General"); QString temp=cfg.readEntry("DownloadDirectory",local_library); localFileName = temp+File_Name; odebug << "Requesting file "+ File_Name << oendl; odebug << "Saving as "+localFileName << oendl; msg="Requesting file "+ File_Name; TextLabel3->setText(msg); qApp->processEvents(); if( File_Name.length()>3) { if (!FtpSize( File_Name.latin1(), &fsz, FTPLIB_ASCII, conn)) fsz = 0; QString temp; temp.sprintf( File_Name+" "+" %dkb", fsz); TextLabel3->setText(temp); ProgressBar1->setTotalSteps(fsz); FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); if (!FtpGet( localFileName.latin1(), File_Name.latin1(), FTPLIB_ASCII, conn)) { msg.sprintf("Could not download "+ File_Name+"\n%s",FtpLastResponse(conn)); successDownload=false; QMessageBox::message("Note",msg); update(); } } else { QMessageBox::message("Note","Could not download file "+ File_Name); successDownload=false; FtpQuit(conn); return false; } odebug << "Ftp session successful" << oendl; successDownload=TRUE; FtpQuit(conn); return true; } //no network url return false; } void NetworkDialog::doOk() { owarn << "Do OK" << oendl; QString loginStr; loginStr = "gutenbrowser"; if ( !ftp_host.isEmpty() ) { if( ftp_host.find( "/", ftp_host.length() - 1,TRUE) != -1 && ftp_host.find("ftp://",0, TRUE) != -1) { TextLabel3->setText( tr( "List remote dir:\n" + ftp_host) ); // TextLabel2->setText( tr( "local file to download into: " +localFileName ) ); if( downloadFile(ftp_host)) successDownload = true; else { successDownload = false; reject(); } } else { if(downloadFile(ftp_host)) successDownload = true; else { successDownload = false; reject(); } } } accept(); } diff --git a/noncore/apps/opie-gutenbrowser/fontDialog.cpp b/noncore/apps/opie-gutenbrowser/fontDialog.cpp index fa964a6..c6d0fe6 100644 --- a/noncore/apps/opie-gutenbrowser/fontDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/fontDialog.cpp @@ -1,260 +1,260 @@ /**************************************************************************** ** Created: Sun Jan 27 11:03:24 2002 copyright 2002 by L.J. Potter ljp@llornkcor.com copyright : (C) 2000 -2004 by llornkcor email : ljp@llornkcor.com ****************************************************************************/ #include "fontDialog.h" #include "optionsDialog.h" #include <qpe/fontdatabase.h> #include <qpe/config.h> #include <qstringlist.h> #include <qfontinfo.h> #include <qvaluelist.h> #include <qpe/qpeapplication.h> #include <qgroupbox.h> #include <qlabel.h> #include <qlistbox.h> #include <qmultilineedit.h> #include <qpushbutton.h> #include <qlayout.h> #include <qvariant.h> #include <qtooltip.h> #include <qwhatsthis.h> #include <qcombobox.h> //#define BUGGY_SHARP_ZAURUS 0 static const int nfontsizes = 9; static const int fontsize[nfontsizes] = {8,9,10,11,12,13,14,18,24}; FontDialog::FontDialog( QWidget * parent, const char* name /*, bool modal, WFlags fl */) :/* QDialog*/ QWidget( parent, name /*, modal, fl */) { if ( !name ) setName( "FontDialog" ); setCaption( tr( "Font Dialog" ) ); QGridLayout *layout = new QGridLayout( this ); layout->setSpacing(2); layout->setMargin(2); familyListBox = new QListBox( this, "familyListBox" ); layout->addMultiCellWidget( familyListBox, 0, 2, 0, 0); QBoxLayout * hbox = new QHBoxLayout(this); QBoxLayout * vbox = new QVBoxLayout(this); styleListBox = new QListBox( this, "styleListBox" ); vbox->addWidget( styleListBox, 0); FontTextLabel4 = new QLabel( this, "TextLabel4" ); FontTextLabel4->setText( tr( "Size" ) ); hbox->addWidget( FontTextLabel4,0); - + sizeComboBox = new QComboBox( FALSE, this, "SizeCombo"); // sizeComboBox->setMaximumWidth(60); hbox->addWidget( sizeComboBox, 0); vbox->addLayout(hbox,0); layout->addLayout( vbox,0,3); - + MultiLineEdit1 = new QMultiLineEdit( this, "MultiLineEdit1" ); MultiLineEdit1->setText( tr( "The Quick Brown Fox Jumps Over The Lazy Dog" ) ); MultiLineEdit1->setWordWrap( QMultiLineEdit::WidgetWidth); layout->addMultiCellWidget( MultiLineEdit1, 4, 4, 0, 3); connect(familyListBox,SIGNAL(highlighted(const QString &)),SLOT(familyListBoxSlot(const QString &))); connect(styleListBox,SIGNAL(highlighted(const QString &)),SLOT(styleListBoxSlot(const QString &))); connect(sizeComboBox,SIGNAL(activated(const QString &)),SLOT(sizeComboBoxSlot(const QString &))); populateLists(); } FontDialog::~FontDialog() { } void FontDialog::familyListBoxSlot(const QString & text) { int styleInt = styleListBox->currentItem(); int sizeInt = sizeComboBox->currentText().toInt(); sizeComboBox->clear(); styleListBox->clear(); // clearListBoxes(); family = text; -// odebug << family << oendl; +// odebug << family << oendl; QStringList styles = fdb.styles( family ); // string list of styles of our current font family styleListBox->insertStringList( styles); QString dstyle;// = "\t" + style + " ("; -#ifdef BUGGY_SHARP_ZAURUS +#ifdef BUGGY_SHARP_ZAURUS QValueList<int> smoothies = fdb.smoothSizes( family, styleListBox->text(0) ); for ( QValueList<int>::Iterator points = smoothies.begin(); points != smoothies.end(); ++points ) { dstyle = QString::number( *points ); - odebug << dstyle << oendl; + odebug << dstyle << oendl; sizeComboBox->insertItem( dstyle.left( dstyle.length() - 1 )); } #else for (int i=0; i<nfontsizes; i++) { sizeComboBox->insertItem( QString::number(fontsize[i])); if(fontsize[i] == sizeInt) { sizeComboBox->setCurrentItem(i); } } #endif - if(styleInt == -1 || styleInt > styleListBox->count() ) + if(styleInt == -1 || styleInt > static_cast<int>(styleListBox->count()) ) styleListBox->setCurrentItem(0); else styleListBox->setCurrentItem(styleInt); changeText(); } -void FontDialog::styleListBoxSlot(const QString &text) +void FontDialog::styleListBoxSlot(const QString &) { changeText(); } -void FontDialog::sizeComboBoxSlot(const QString & text) +void FontDialog::sizeComboBoxSlot(const QString &) { changeText(); } void FontDialog::populateLists() { // QFont defaultFont=MultiLineEdit1->font(); // QFont defaultFont=Lview->font(); // QFontInfo fontInfo(defaultFont); Config config("Gutenbrowser"); config.setGroup("Font"); QString familyStr = config.readEntry("Family", "fixed"); QString styleStr = config.readEntry("Style", "Regular"); QString sizeStr = config.readEntry("Size", "10"); QString charSetStr = config.readEntry("CharSet", "iso10646-1" ); bool ok; int i_size = sizeStr.toInt(&ok,10); selectedFont = fdb.font(familyStr,styleStr,i_size,charSetStr); // defaultFont.setItalic(TRUE); families = fdb.families(); for ( QStringList::Iterator f = families.begin(); f != families.end();++f ) { QString family = *f; // if(family == defaultFont.family()) -// odebug << family << oendl; +// odebug << family << oendl; familyListBox->insertItem( family); if( familyListBox->text(0) == family) { QStringList styles = fdb.styles( family ); // string list of styles of our current font family styleListBox->insertStringList( styles); for ( QStringList::Iterator s = styles.begin(); s != styles.end();++s ) { // for each font style style = *s; QString dstyle;// = "\t" + style + " ("; if(styleListBox->text(0) == style) { QValueList<int> smoothies = fdb.smoothSizes( family, style ); for ( QValueList<int>::Iterator points = smoothies.begin(); points != smoothies.end(); ++points ) { dstyle = QString::number( *points ) + " "; sizeComboBox ->insertItem( dstyle.left( dstyle.length() - 1 )); } dstyle = dstyle.left( dstyle.length() - 1 ) + ")"; } } // styles } } - for(int i=0;i < familyListBox->count();i++) { + for(uint i=0;i < familyListBox->count();i++) { if( familyListBox->text(i) == familyStr) familyListBox->setSelected( i, TRUE); } - for(int i=0;i < styleListBox->count();i++) { + for(uint i=0;i < styleListBox->count();i++) { if( styleListBox->text(i) == styleStr) styleListBox->setSelected( i, TRUE); } for (int i=0; i<sizeComboBox->count(); i++) { #ifdef BUGGY_SHARP_ZAURUS if(sizeComboBox->text(i) == sizeStr) #else - if(fontsize[i] == i_size) + if(fontsize[i] == i_size) #endif sizeComboBox->setCurrentItem(i); } changeText(); } void FontDialog::clearListBoxes() { familyListBox->clear(); sizeComboBox->clear(); styleListBox->clear(); } void FontDialog::changeText() { if( familyListBox->currentItem() == -1) family= familyListBox->text(0); else { family = familyListBox->currentText(); } -// odebug << "Font family is "+family << oendl; +// odebug << "Font family is "+family << oendl; if( styleListBox->currentItem() == -1) style=styleListBox->text(0); else { style = styleListBox->currentText(); } -// odebug << "font style is "+style << oendl; +// odebug << "font style is "+style << oendl; if( sizeComboBox->currentItem() == -1 ) size = sizeComboBox->text(0); else { size = sizeComboBox->currentText(); } -// odebug << "Font size is "+size << oendl; +// odebug << "Font size is "+size << oendl; bool ok; int i_size = size.toInt(&ok,10); QStringList charSetList = fdb.charSets(family); // QStringList styles = fdb.styles( family ); // string list of styles of our current font family QString charSet; for ( QStringList::Iterator s = charSetList.begin(); s != charSetList.end();++s ) { // for each font style charSet = *s; -// odebug << charSet << oendl; +// odebug << charSet << oendl; } selectedFont = fdb.font(family,style,i_size,charSet); QFontInfo fontInfo( selectedFont); -// if(fontInfo.italic() ) odebug << "italic" << oendl; - selectedFont.setWeight(fontInfo.weight() ); -// odebug << "Style are "+style+" " << fontInfo.weight() << " " << oendl; +// if(fontInfo.italic() ) odebug << "italic" << oendl; + selectedFont.setWeight(fontInfo.weight() ); +// odebug << "Style are "+style+" " << fontInfo.weight() << " " << oendl; Config cfg("Gutenbrowser"); cfg.setGroup("Font"); cfg.writeEntry("Family",family); cfg.writeEntry("Style",style); cfg.writeEntry("Size",size); cfg.writeEntry("CharSet",charSet); if(style.find("Italic",0,TRUE) != -1) { selectedFont = fdb.font(family,"Regular",i_size,charSet); selectedFont.setItalic(TRUE); //ya right cfg.writeEntry("Italic","TRUE"); -// odebug << "Style is "+styleListBox->currentText() << oendl; +// odebug << "Style is "+styleListBox->currentText() << oendl; } else cfg.writeEntry("Italic","FALSE"); MultiLineEdit1->setFont( selectedFont); MultiLineEdit1->update(); changedFonts=TRUE; } diff --git a/noncore/apps/opie-gutenbrowser/helpwindow.cpp b/noncore/apps/opie-gutenbrowser/helpwindow.cpp index e86ca49..ffdc9f0 100644 --- a/noncore/apps/opie-gutenbrowser/helpwindow.cpp +++ b/noncore/apps/opie-gutenbrowser/helpwindow.cpp @@ -1,326 +1,326 @@ /**************************************************************************** ** $Id$ ** ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. ** ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** copyright : (C) 2000 -2004 by llornkcor email : ljp@llornkcor.com *****************************************************************************/ #include "helpwindow.h" #include <qstatusbar.h> #include <qmenubar.h> #include <qtoolbar.h> #include <qtoolbutton.h> #include <qcombobox.h> #include <ctype.h> -HelpWindow::HelpWindow( const QString& home_, const QString& _path, QWidget* parent, const char *name ) +HelpWindow::HelpWindow( const QString& home_, const QString&, QWidget* parent, const char *name ) : QMainWindow( parent, name, WDestructiveClose ), pathCombo( 0 ), selectedURL() { QString local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; // readHistory(); // readBookmarks(); browser = new QTextBrowser( this ); QStringList Strlist; Strlist.append( home_); browser->mimeSourceFactory()->setFilePath( Strlist ); browser->setFrameStyle( QFrame::Panel | QFrame::Sunken ); connect(browser,SIGNAL(textChanged()),this,SLOT(textChanged())); setCentralWidget( browser ); if ( !home_.isEmpty() ) //////////////////////////////// browser->setSource( home_ ); //////////////////////////////// connect( browser, SIGNAL( highlighted( const QString&) ), statusBar(), SLOT( message( const QString&)) ); // resize( 640,600 ); #ifdef Q_WS_QWS setGeometry( 0,0,236,280); #else setGeometry( 10,30,520,420 ); // resize(520,420); #endif QPopupMenu* file = new QPopupMenu( this ); // file->insertItem( tr("&New Window"), this, SLOT( newWindow() ), ALT | Key_N ); file->insertItem( tr("&Open File"), this, SLOT( openFile() ), ALT | Key_O ); // file->insertItem( tr("&Print"), this, SLOT( print() ), ALT | Key_P ); file->insertSeparator(); file->insertItem( tr("&Close"), this, SLOT( close() ), ALT | Key_Q ); // file->insertItem( tr("E&xit"), qApp, SLOT( closeAllWindows() ), ALT | Key_X ); // The same three icons are used twice each. ////F FIXME QString pixs=(QDir::homeDirPath ()) +"/Applications/gutenbrowser/pix/"; QIconSet icon_back( QPixmap(pixs+"back.png") ); QIconSet icon_forward( QPixmap(pixs+"forward.png") ); QIconSet icon_home( QPixmap(pixs+"home.png") ); QPopupMenu* go = new QPopupMenu( this ); backwardId = go->insertItem( icon_back, tr("&Backward"), browser, SLOT( backward() ), ALT | Key_Left ); forwardId = go->insertItem( icon_forward, tr("&Forward"), browser, SLOT( forward() ), ALT | Key_Right ); go->insertItem( icon_home, tr("&Home"), browser, SLOT( home() ) ); // QPopupMenu* help = new QPopupMenu( this ); // help->insertItem( tr("&About ..."), this, SLOT( about() ) ); // help->insertItem( tr("About &Qt ..."), this, SLOT( aboutQt() ) ); hist = new QPopupMenu( this ); QStringList::Iterator it = history.begin(); for ( ; it != history.end(); ++it ) mHistory[ hist->insertItem( *it ) ] = *it; connect( hist, SIGNAL( activated( int ) ), this, SLOT( histChosen( int ) ) ); bookm = new QPopupMenu( this ); bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) ); bookm->insertSeparator(); QStringList::Iterator it2 = bookmarks.begin(); for ( ; it2 != bookmarks.end(); ++it2 ) mBookmarks[ bookm->insertItem( *it2 ) ] = *it2; connect( bookm, SIGNAL( activated( int ) ), this, SLOT( bookmChosen( int ) ) ); menuBar()->insertItem( tr("&File"), file ); menuBar()->insertItem( tr("&Go"), go ); menuBar()->insertItem( tr( "History" ), hist ); menuBar()->insertItem( tr( "Bookmarks" ), bookm ); // menuBar()->insertSeparator(); // menuBar()->insertItem( tr("&Help"), help ); menuBar()->setItemEnabled( forwardId, FALSE); menuBar()->setItemEnabled( backwardId, FALSE); connect( browser, SIGNAL( backwardAvailable( bool ) ), this, SLOT( setBackwardAvailable( bool ) ) ); connect( browser, SIGNAL( forwardAvailable( bool ) ), this, SLOT( setForwardAvailable( bool ) ) ); QToolBar* toolbar = new QToolBar( this ); addToolBar( toolbar, "Toolbar"); QToolButton* button; button = new QToolButton( icon_back, tr("Backward"), "", browser, SLOT(backward()), toolbar ); connect( browser, SIGNAL( backwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); button->setEnabled( FALSE ); button = new QToolButton( icon_forward, tr("Forward"), "", browser, SLOT(forward()), toolbar ); connect( browser, SIGNAL( forwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); button->setEnabled( FALSE ); button = new QToolButton( icon_home, tr("Home"), "", browser, SLOT(home()), toolbar ); toolbar->addSeparator(); pathCombo = new QComboBox( TRUE, toolbar ); connect( pathCombo, SIGNAL( activated( const QString & ) ), this, SLOT( pathSelected( const QString & ) ) ); toolbar->setStretchableWidget( pathCombo ); // pathCombo->setMaximumWidth(190); // setRightJustification( TRUE ); // setDockEnabled( Left, FALSE ); // setDockEnabled( Right, FALSE ); pathCombo->insertItem( home_ ); browser->setFocus(); } void HelpWindow::setBackwardAvailable( bool b) { menuBar()->setItemEnabled( backwardId, b); } void HelpWindow::setForwardAvailable( bool b) { menuBar()->setItemEnabled( forwardId, b); } void HelpWindow::textChanged() { if ( browser->documentTitle().isNull() ) { setCaption( "Gutenbrowser - Helpviewer - " + browser->context() ); selectedURL = browser->context(); } else { setCaption( "Gutenbrowser - Helpviewer - " + browser->documentTitle() ) ; selectedURL = browser->documentTitle(); } if ( !selectedURL.isEmpty() && pathCombo ) { bool exists = FALSE; int i; for ( i = 0; i < pathCombo->count(); ++i ) { if ( pathCombo->text( i ) == selectedURL ) { exists = TRUE; break; } } if ( !exists ) { pathCombo->insertItem( selectedURL, 0 ); pathCombo->setCurrentItem( 0 ); mHistory[ hist->insertItem( selectedURL ) ] = selectedURL; } else pathCombo->setCurrentItem( i ); selectedURL = QString::null; } } HelpWindow::~HelpWindow() { history.clear(); QMap<int, QString>::Iterator it = mHistory.begin(); for ( ; it != mHistory.end(); ++it ) history.append( *it ); QFile f( QDir::currentDirPath() + "/.history" ); f.open( IO_WriteOnly ); QDataStream s( &f ); s << history; f.close(); bookmarks.clear(); QMap<int, QString>::Iterator it2 = mBookmarks.begin(); for ( ; it2 != mBookmarks.end(); ++it2 ) bookmarks.append( *it2 ); QFile f2( QDir::currentDirPath() + "/.bookmarks" ); f2.open( IO_WriteOnly ); QDataStream s2( &f2 ); s2 << bookmarks; f2.close(); } // void HelpWindow::about() // { // QMessageBox::about( this, "Gutenbrowser", "<p>Thanks to Trolltech for this</p>" ); // } // void HelpWindow::aboutQt() // { // QMessageBox::aboutQt( this, "QBrowser" ); // } void HelpWindow::openFile() { #ifndef QT_NO_FILEDIALOG QString fn = QFileDialog::getOpenFileName( QString::null, QString::null, this ); if ( !fn.isEmpty() ) browser->setSource( fn ); #endif } void HelpWindow::newWindow() { ( new HelpWindow(browser->source(), "qbrowser") )->show(); } void HelpWindow::print() { #ifndef QT_NO_PRINTER QPrinter printer; printer.setFullPage(TRUE); if ( printer.setup() ) { QPainter p( &printer ); QPaintDeviceMetrics metrics(p.device()); int dpix = metrics.logicalDpiX(); int dpiy = metrics.logicalDpiY(); const int margin = 72; // pt QRect body(margin*dpix/72, margin*dpiy/72, metrics.width()-margin*dpix/72*2, metrics.height()-margin*dpiy/72*2 ); QFont font("times", 10); QSimpleRichText richText( browser->text(), font, browser->context(), browser->styleSheet(), browser->mimeSourceFactory(), body.height() ); richText.setWidth( &p, body.width() ); QRect view( body ); int page = 1; do { p.setClipRect( body ); richText.draw( &p, body.left(), body.top(), view, colorGroup() ); p.setClipping( FALSE ); view.moveBy( 0, body.height() ); p.translate( 0 , -body.height() ); p.setFont( font ); p.drawText( view.right() - p.fontMetrics().width( QString::number(page) ), view.bottom() + p.fontMetrics().ascent() + 5, QString::number(page) ); if ( view.top() >= richText.height() ) break; printer.newPage(); page++; } while (TRUE); } #endif } void HelpWindow::pathSelected( const QString &_path ) { browser->setSource( _path ); QMap<int, QString>::Iterator it = mHistory.begin(); bool exists = FALSE; for ( ; it != mHistory.end(); ++it ) { if ( *it == _path ) { exists = TRUE; break; } } if ( !exists ) mHistory[ hist->insertItem( _path ) ] = _path; } void HelpWindow::readHistory() { if ( QFile::exists( QDir::currentDirPath() + "/.history" ) ) { QFile f( QDir::currentDirPath() + "/.history" ); f.open( IO_ReadOnly ); QDataStream s( &f ); s >> history; f.close(); while ( history.count() > 20 ) history.remove( history.begin() ); } } void HelpWindow::readBookmarks() { if ( QFile::exists( QDir::currentDirPath() + "/.bookmarks" ) ) { QFile f( QDir::currentDirPath() + "/.bookmarks" ); f.open( IO_ReadOnly ); QDataStream s( &f ); s >> bookmarks; f.close(); } } void HelpWindow::histChosen( int i ) { if ( mHistory.contains( i ) ) browser->setSource( mHistory[ i ] ); } void HelpWindow::bookmChosen( int i ) { if ( mBookmarks.contains( i ) ) browser->setSource( mBookmarks[ i ] ); } void HelpWindow::addBookmark() { mBookmarks[ bookm->insertItem( caption() ) ] = caption(); } diff --git a/noncore/apps/oxygen/kmolelements.cpp b/noncore/apps/oxygen/kmolelements.cpp index ce8f9c1..e76461b 100644 --- a/noncore/apps/oxygen/kmolelements.cpp +++ b/noncore/apps/oxygen/kmolelements.cpp @@ -1,238 +1,238 @@ /* * kmolelements.cpp * * Copyright (C) 2000 Tomislav Gountchev <tomi@idiom.com> */ // classes that store and manipulate chemical formulas represented as // lists of elements #include <stdio.h> -#include "kmolelements.h" +#include "kmolelements.h" /** - * A generic chemical entity. Can be an element or a group. + * A generic chemical entity. Can be an element or a group. */ SubUnit::SubUnit () {} SubUnit::~SubUnit () {} /** - * Construct a subunit and return a pointer to it. The syntax of LINE is + * Construct a subunit and return a pointer to it. The syntax of LINE is * the one used in the element definition file. */ SubUnit* SubUnit::makeSubUnit(QString line) { QString name, grpname, weight, coef; QTextStream str (line, IO_ReadOnly); str >> name; if (name != "-group") { // not a group - must be represented as Element str >> weight >> ws; return new Element(name, weight.toDouble()); - } + } else { str >> grpname; ElementList* els = new ElementList(grpname); // group - make an ElementList while (!str.eof()) { str >> name >> ws; str >> coef >> ws; els->addElement(name, coef.toDouble()); } return els; } } QString SubUnit::getName() const { return QString("None"); } /** * Get the molecular weight of THIS, based on the data from ELSTABLE. */ -double SubUnit::getWeight(QDict<SubUnit>* elstable) const { +double SubUnit::getWeight(QDict<SubUnit>* ) const { return -1; } /** - * A group of elements. + * A group of elements. */ ElementList::ElementList () { elements = new QList<ElementCoef>; } ElementList::~ElementList () { delete elements; } /** - * A group of elements. + * A group of elements. */ ElementList::ElementList (QString name) { this->name = name; elements = new QList<ElementCoef>; } /** * Write THIS to LINE, in a format suitable for the element definition file. */ void ElementList::writeOut(QString& line) { QString coef; line = "-group " + name; ElementCoef* current = elements->first(); while (current != 0) { - line += " " + current->name + " " + coef.setNum(current->coef, 'g', 10); + line += " " + current->name + " " + coef.setNum(current->coef, 'g', 10); // precision set to 10 digits current = elements->next(); } } /** * Get the molecular weight of THIS, based on the data from ELSTABLE. */ double ElementList::getWeight(QDict<SubUnit>* elstable) const { double weight = 0; ElementCoef* current = elements->first(); while (current != 0) { SubUnit* e = elstable->find(current->name); if (e != 0) { weight += (current->coef) * (e->getWeight(elstable)); } else return -1; //ERROR current = elements->next(); } return weight; } /** - * Return a string representing the elemental composition of THIS, as + * Return a string representing the elemental composition of THIS, as * a tab-separated element - percentage pairs, separated by newlines. */ QString ElementList::getEA(QDict<SubUnit>* elstable, double mw) const { if (mw == 0) mw = getWeight(elstable); QString ea; QString temp; ElementCoef* current = elements->first(); while (current != 0) { SubUnit* e = elstable->find(current->name); if (e != 0) { - double current_percent = 100 * (current->coef) * - (e->getWeight(elstable)) + double current_percent = 100 * (current->coef) * + (e->getWeight(elstable)) / mw; - ea += current->name + "\t" + + ea += current->name + "\t" + temp.setNum(current_percent) + "\n"; } else return QString("ERROR!\n"); //ERROR current = elements->next(); } return ea; } - + /** * Return a string representing THIS as an empirical chemical formula. */ QString ElementList::getEmpFormula() const { QString ef; QString temp; ElementCoef* current = elements->first(); while (current != 0) { ef += current->name + temp.setNum(current->coef); current = elements->next(); } return ef; } /** * Multiply THIS (i.e. the coefficient of each element) by coef. */ void ElementList::multiplyBy(double coef) { ElementCoef* current = elements->first(); while (current != 0) { (current->coef) *= coef; current = elements->next(); } } /** * Add THIS to ELS. THIS is not modified; ELS is. */ void ElementList::addTo(ElementList& els, double coef) { ElementCoef* current = elements->first(); while (current != 0) { els.addElement(current->name, (current->coef) * coef); current = elements->next(); } } /** - * Add an element to THIS, with a coefficient COEF. If THIS already contains + * Add an element to THIS, with a coefficient COEF. If THIS already contains * an element with the same name, adjust its coefficient only; if not, create * a new ElementCoef pair and add to THIS. */ void ElementList::addElement(const QString& name, double coef) { ElementCoef* current = elements->first(); while (current != 0) { if (current->name == name) { current->coef += coef; return; } current = elements->next(); } elements->append(new ElementCoef(name, coef)); } /** * True iff THIS contains element named NAME. */ bool ElementList::contains(const QString& name) { ElementCoef* current = elements->first(); while (current != 0) { - if (current->name == name) + if (current->name == name) return true; current = elements->next(); } return false; } bool ElementList::isEmpty() { return elements->isEmpty(); } QString ElementList::getName() const { return name; } /** * A chemical element. */ -Element::Element(const QString& n, double w) +Element::Element(const QString& n, double w) : weight(w), name(n) { } Element::~Element() { } /** * Write THIS to LINE, in a format suitable for the element definition file. */ void Element::writeOut(QString& line) { line.setNum(weight); line = name + " " + line; } -double Element::getWeight(QDict<SubUnit>* elstable) const { +double Element::getWeight(QDict<SubUnit>* ) const { return weight; } void Element::addTo(ElementList& els, double coef) { els.addElement(name, coef); } QString Element::getName() const { return name; } /** - * An element - coefficient pair. Used to represent elements within an + * An element - coefficient pair. Used to represent elements within an * element list. */ ElementCoef::ElementCoef(const QString& n, double c) : name(n), coef(c) {} |