summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-bartender/bartender.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-bartender/bartender.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-bartender/bartender.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/noncore/apps/opie-bartender/bartender.cpp b/noncore/apps/opie-bartender/bartender.cpp
index 8c4ee93..cd0a364 100644
--- a/noncore/apps/opie-bartender/bartender.cpp
+++ b/noncore/apps/opie-bartender/bartender.cpp
@@ -124,324 +124,320 @@ Bartender::Bartender( QWidget* parent, const char* name, WFlags fl )
dbFile.setName( QPEApplication::qpeDir()+"/etc/bartender/drinkdb.txt");
initDrinkDb();
}
Bartender::~Bartender() {
}
/*
this happens right before exit */
void Bartender::cleanUp() {
dbFile.close();
}
void Bartender::initDrinkDb() {
if(!dbFile.isOpen())
if ( !dbFile.open( IO_ReadOnly)) {
QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) );
return;
}
fillList();
}
void Bartender::fillList() {
dbFile.at(1);
DrinkView->clear();
int i=0;
QListViewItem * item ;
QTextStream t( &dbFile);
QString s;
while ( !t.eof()) {
s = t.readLine();
if(s.find("#",0,TRUE) != -1) {
// qDebug(s.right(s.length()-2));
item= new QListViewItem( DrinkView, 0 );
item->setText( 0, s.right(s.length()-2));
i++;
}
}
qDebug("there are currently %d of drinks", i);
}
void Bartender::fileNew() {
New_Drink *newDrinks;
newDrinks = new New_Drink(this,"New Drink....", TRUE);
QString newName, newIng;
- newDrinks->showMaximized();
- newDrinks->exec();
+ QPEApplication::execDialog( newDrinks );
newName = newDrinks->LineEdit1->text();
newIng= newDrinks->MultiLineEdit1->text();
if(dbFile.isOpen())
dbFile.close();
if ( !dbFile.open( IO_WriteOnly| IO_Append)) {
QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) );
return;
}
if(newDrinks ->result() == 1 ) {
QString newDrink="\n# "+newName+"\n";
newDrink.append(newIng+"\n");
qDebug("writing "+newDrink);
dbFile.writeBlock( newDrink.latin1(), newDrink.length());
clearList();
dbFile.close();
initDrinkDb();
}
delete newDrinks;
}
void Bartender::showDrink(int mouse, QListViewItem * item, const QPoint&, int) {
switch (mouse) {
case 1:
// showDrink(item);
break;
case 2:
showDrink(item);
break;
}
}
void Bartender::showDrink( QListViewItem *item) {
if(item==NULL) return;
dbFile.at(0);
Show_Drink *showDrinks;
QString myDrink=item->text(0);
showDrinks = new Show_Drink(this, myDrink, TRUE);
QTextStream t( &dbFile);
QString s, s2;
while ( !t.eof()) {
s = t.readLine();
if(s.find( myDrink, 0, TRUE) != -1) {
for(int i=0;s2.find( "#", 0, TRUE) == -1;i++) {
s2 = t.readLine();
if(s2.find("#",0,TRUE) == -1 || dbFile.atEnd() ) {
// qDebug(s2);
showDrinks->MultiLineEdit1->append(s2);
}
if( dbFile.atEnd() ) break;
}
}
}
- showDrinks->showMaximized();
- showDrinks->exec();
+ QPEApplication::execDialog( showDrinks );
if(showDrinks ->result() ==0) {
doEdit();
}
delete showDrinks;
}
void Bartender::askSearch() {
switch ( QMessageBox::warning(this,tr("Find"),tr("Search by drink name\n")+
"\nor alcohol ?"
,tr("Drink Name"),tr("Alcohol"),0,0,1) ) {
case 0:
doSearchByName();
break;
case 1:
doSearchByDrink();
break;
};
}
/* search by name */
void Bartender::doSearchByName() {
// if( DrinkView->currentItem() == NULL) return;
QStringList searchList;
QString searchForDrinkName;
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Find by Drink Name"),TRUE, 0);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
searchForDrinkName = fileDlg->LineEdit1->text();
QListViewItemIterator it( DrinkView );
for ( ; it.current(); ++it ) {
if ( it.current()->text(0).find( searchForDrinkName, 0, TRUE) != -1 ) {
// qDebug( it.current()->text(0));
searchList.append(it.current()->text(0));
}
}
if(searchList.count() >0)
showSearchResult(searchList);
else
QMessageBox::message(tr("Search"),tr("Sorry no results for\n")+searchForDrinkName);
}//end Inputdialog
delete fileDlg;
}
void Bartender::doSearchByDrink() {
// if( DrinkView->currentItem() == NULL) return;
QStringList searchList;
QString searchForDrinkName, lastDrinkName, tempName;
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Find by Alcohol"),TRUE, 0);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
searchForDrinkName = fileDlg->LineEdit1->text();
dbFile.at(0);
QTextStream t( &dbFile);
QString s, s2;
while ( !t.eof()) {
s = t.readLine();
if(s.find("#",0,TRUE) != -1) {
lastDrinkName=s.right(s.length()-2);
// qDebug("last drink name "+lastDrinkName);
}
else if( s.find( searchForDrinkName ,0, FALSE) != -1 && lastDrinkName != tempName ) {
// qDebug("appending "+lastDrinkName);
searchList.append( lastDrinkName);
tempName=lastDrinkName;
}
// if( dbFile.atEnd() ) break;
} //oef
if(searchList.count() >0)
showSearchResult(searchList);
else
QMessageBox::message(tr("Search"),tr("Sorry no results for\n")+ searchForDrinkName);
}
delete fileDlg;
}
void Bartender::showSearchResult(QStringList &searchList) {
QString result;
Search_Results *searchDlg;
searchList.sort();
searchDlg = new Search_Results(this, "Search Results", TRUE);
- searchDlg->showMaximized();
searchDlg->ListBox1->insertStringList( searchList,-1);
- searchDlg->exec();
+ QPEApplication::execDialog( searchDlg );
if( searchDlg->result() == 1 ) {
result= searchDlg->ListBox1->currentText();
}
QListViewItemIterator it2( DrinkView );
for ( ; it2.current(); ++it2 ) {
if ( it2.current()->text(0)== result ) {
// qDebug( it2.current()->text(0));
showDrink(it2.current());
}
}
delete searchDlg;
}
void Bartender::doEdit() {
if(DrinkView->currentItem() == NULL) {
fileNew();
}
QString myDrink;
myDrink= DrinkView->currentItem()->text(0);
dbFile.at(0);
int foundAt=0;
New_Drink *newDrinks;
newDrinks = new New_Drink(this,"Edit Drink....", TRUE);
QString newName, newIng;
- newDrinks->showMaximized();
+ QPEApplication::showDialog( newDrinks );
QTextStream t( &dbFile);
-
+
QString s, s2;
while ( !t.eof()) {
s = t.readLine();
if(s.find( myDrink, 0, TRUE) != -1) {
foundAt = dbFile.at() - (s.length()+1);
for(int i=0;s2.find( "#", 0, TRUE) == -1;i++) {
s2 = t.readLine();
if(s2.find("#",0,TRUE) == -1 || dbFile.atEnd() ) {
// qDebug(s2);
newDrinks->MultiLineEdit1->append(s2);
newDrinks->LineEdit1->setText(myDrink);
}
if( dbFile.atEnd() ) break;
}
}
}
newDrinks->exec();
newName = newDrinks->LineEdit1->text();
newIng= newDrinks->MultiLineEdit1->text();
if( newDrinks ->result() == 1 ) {
if(dbFile.isOpen())
dbFile.close();
if ( !dbFile.open( IO_ReadWrite )) {
QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) );
return;
}
int fd = dbFile.handle();
lseek( fd, foundAt, SEEK_SET);
// dbFile.at( foundAt);
#warning FIXME problems with editing drinks db
////////// FIXME write to user file
QString newDrink="# "+newName+"\n";
newDrink.append(newIng+"\n");
qDebug("writing "+newDrink);
dbFile.writeBlock( newDrink.latin1(), newDrink.length());
clearList();
dbFile.flush();
initDrinkDb();
}
}
void Bartender::clearList() {
DrinkView->clear();
}
void Bartender::doBac() {
BacDialog *bacDlg;
bacDlg = new BacDialog(this,"BAC",TRUE);
- bacDlg->showMaximized();
- bacDlg->exec();
+ QPEApplication::execDialog( bacDlg );
delete bacDlg;
}
void Bartender::openCurrentDrink() {
if(DrinkView->currentItem() == NULL) return;
showDrink(DrinkView->currentItem());
}
void Bartender::fileMenuActivated( int item) {
qDebug("Item %d", item);
switch(item) {
case -3: // new -3
fileNew();
break;
case -4:// open -4
openCurrentDrink();
break;
case -5:// drink -5
doSearchByName();
break;
case -6:// alcohol -6
doSearchByDrink();
break;
}
}
void Bartender::editMenuActivated(int item) {
qDebug("Item %d", item);
/*
edit -8
*/
switch(item) {
case -8:
doEdit() ;
break;
}
}