-rw-r--r-- | noncore/games/tetrix/ohighscoredlg.cpp | 75 | ||||
-rw-r--r-- | noncore/games/tetrix/ohighscoredlg.h | 13 | ||||
-rw-r--r-- | noncore/games/tetrix/tetrix.pro | 2 |
3 files changed, 48 insertions, 42 deletions
diff --git a/noncore/games/tetrix/ohighscoredlg.cpp b/noncore/games/tetrix/ohighscoredlg.cpp index 8d8079e..66f4917 100644 --- a/noncore/games/tetrix/ohighscoredlg.cpp +++ b/noncore/games/tetrix/ohighscoredlg.cpp @@ -21,2 +21,3 @@ #include <qstring.h> +#include <qlist.h> #include <qhbox.h> @@ -29,3 +30,3 @@ -OHighscore::OHighscore( int score , int playerLevel ) +OHighscore::OHighscore( int score , int playerLevel ) : playerData() { @@ -34,2 +35,3 @@ OHighscore::OHighscore( int score , int playerLevel ) checkIfItIsANewhighscore( score ); + playerData.setAutoDelete( TRUE ); } @@ -38,7 +40,2 @@ OHighscore::~OHighscore() { - std::list<t_playerData*>::iterator deleteIterator = playerData.begin(); - for ( ; deleteIterator != playerData.end() ; deleteIterator++ ) - { - delete ( *deleteIterator ); - } } @@ -66,3 +63,3 @@ void OHighscore::getList() - playerData.push_back( pPlayerData ); + playerData.append( pPlayerData ); @@ -85,3 +82,3 @@ void OHighscore::getList() - playerData.push_back( pPlayerData ); + playerData.append( pPlayerData ); } @@ -102,7 +99,11 @@ void OHighscore::insertData( QString name , int punkte , int playerLevel ) Config cfg ( "tetrix" ); + t_playerData * Run; + int index = 0; int entryNumber = 1; - std::list<t_playerData*>::iterator insertIterator = playerData.begin(); - while ( insertIterator != playerData.end() ) - { - if ( punkte > ( *insertIterator )->points ) + + for ( Run=playerData.first(); + Run != 0; + index ++, Run=playerData.next() ) { + + if ( punkte > Run->points ) { @@ -112,9 +113,7 @@ void OHighscore::insertData( QString name , int punkte , int playerLevel ) temp->level = playerLevel; - playerData.insert( insertIterator , temp ); + + playerData.insert( index, temp ); //now we have to delete the last entry - insertIterator = playerData.end(); - insertIterator--; -//X delete *insertIterator; //memleak? - playerData.erase( insertIterator ); + playerData.remove( playerData.count() ); @@ -122,11 +121,10 @@ void OHighscore::insertData( QString name , int punkte , int playerLevel ) //this block just rewrites the highscore - insertIterator = playerData.begin(); - while ( insertIterator != playerData.end() ) - { + for ( t_playerData * Run2=playerData.first(); + Run2 != 0; + Run2=playerData.next() ) { cfg.setGroup( QString::number( entryNumber ) ); - cfg.writeEntry( "Name" , ( *insertIterator )->sName ); - cfg.writeEntry( "Points" , ( *insertIterator )->points ); - cfg.writeEntry( "Level" , ( *insertIterator )->level ); + cfg.writeEntry( "Name" , Run2->sName ); + cfg.writeEntry( "Points" , Run2->points ); + cfg.writeEntry( "Level" , Run2->level ); entryNumber++; - insertIterator++; } @@ -136,3 +134,2 @@ void OHighscore::insertData( QString name , int punkte , int playerLevel ) } - insertIterator++; } @@ -179,16 +176,26 @@ void OHighscoreDialog::createHighscoreListView() int level_ = 0; + QListViewItem * Prev = 0; - std::list<t_playerData*>::reverse_iterator iListe = hs_->playerData.rbegin(); - - for ( ; iListe != hs_->playerData.rend() ; ++iListe ) + for ( t_playerData * Run = hs_->playerData.first(); + Run != 0; + Run=hs_->playerData.next() ) { - QListViewItem *item = new QListViewItem( list ); + QListViewItem *item; + + if( Prev ) { + // after previous + item = new QListViewItem( list, Prev ); + Prev = item; + } else { + item = new QListViewItem( list ); + + } item->setText( 0 , QString::number( pos ) ); //number - item->setText( 1 , ( *iListe )->sName ); //name - if ( ( *iListe )->points == -1 ) + item->setText( 1 , Run->sName ); //name + if ( Run->points == -1 ) points_ = 0; - else points_ = ( *iListe )->points; - if ( ( *iListe )->level == -1 ) + else points_ = Run->points; + if ( Run->level == -1 ) level_ = 0; - else level_ = ( *iListe )->level; + else level_ = Run->level; item->setText( 2 , QString::number( points_ ) ); //points diff --git a/noncore/games/tetrix/ohighscoredlg.h b/noncore/games/tetrix/ohighscoredlg.h index fdbe623..845e639 100644 --- a/noncore/games/tetrix/ohighscoredlg.h +++ b/noncore/games/tetrix/ohighscoredlg.h @@ -14,8 +14,9 @@ class QListView; #include <qdialog.h> -#include <list> +#include <qlist.h> -using namespace std; - -struct t_playerData +class t_playerData { + +public : + QString sName; @@ -47,3 +48,3 @@ class OHighscore : public QWidget - list<t_playerData*> playerData; + QList<t_playerData> playerData; @@ -55,4 +56,2 @@ class OHighscore : public QWidget - list<t_playerData*>::iterator iPlayerData; - /* diff --git a/noncore/games/tetrix/tetrix.pro b/noncore/games/tetrix/tetrix.pro index 580a542..96f452f 100644 --- a/noncore/games/tetrix/tetrix.pro +++ b/noncore/games/tetrix/tetrix.pro @@ -14,3 +14,3 @@ INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include -LIBS += -lqpe -lopiecore2 -lstdc++ +LIBS += -lqpe -lopiecore2 INTERFACES = |