[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kpat
From: Parker Coates <parker.coates () kdemail ! net>
Date: 2012-02-15 4:44:47
Message-ID: 20120215044447.53EB1AC896 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1280160 by coates:
Partially simplify the mess that is DealerScene::patPiles().
The existing solution worked, but the implementation was ugly and it
required KCardScene::addPile() and removePile() to be virtual, which
really doesn't make much sense. KPat's quirks shouldn't be pushed into
LibKCardGame. KPat's quirks should stay in KPat or be done away with.
M +5 -18 dealer.cpp
M +2 -2 dealer.h
M +2 -2 klondike.cpp
M +1 -1 klondike.h
M +2 -2 libkcardgame/kcardscene.h
M +13 -2 patpile.cpp
M +4 -1 patpile.h
M +2 -2 spider.cpp
--- trunk/KDE/kdegames/kpat/dealer.cpp #1280159:1280160
@@ -395,34 +395,21 @@
}
-void DealerScene::addPile( KCardPile * pile )
+void DealerScene::addPatPile( PatPile * pile )
{
- d->patPiles.clear();
-
- KCardScene::addPile( pile );
+ if ( !d->patPiles.contains( pile ) )
+ d->patPiles.append( pile );
}
-void DealerScene::removePile( KCardPile * pile )
+void DealerScene::removePatPile( PatPile * pile )
{
- d->patPiles.clear();
-
- KCardScene::removePile( pile );
+ d->patPiles.removeAll( pile );
}
QList<PatPile*> DealerScene::patPiles() const
{
- if ( d->patPiles.isEmpty() )
- {
- foreach( KCardPile * p, piles() )
- {
- PatPile * pp = dynamic_cast<PatPile*>( p );
- if ( pp )
- d->patPiles << pp;
- }
- }
-
return d->patPiles;
}
--- trunk/KDE/kdegames/kpat/dealer.h #1280159:1280160
@@ -69,8 +69,8 @@
virtual void relayoutScene();
void updateWonItem();
- virtual void addPile( KCardPile * pile );
- virtual void removePile( KCardPile * pile );
+ void addPatPile( PatPile * pile );
+ void removePatPile( PatPile * pile );
QList<PatPile*> patPiles() const;
void setAutoDropEnabled( bool enabled );
--- trunk/KDE/kdegames/kpat/klondike.cpp #1280159:1280160
@@ -47,8 +47,8 @@
#include <KSelectAction>
-KlondikePile::KlondikePile( KCardScene * cardScene, int index, const QString & objectName )
- : PatPile( cardScene, index, objectName ),
+KlondikePile::KlondikePile( DealerScene * scene, int index, const QString & objectName )
+ : PatPile( scene, index, objectName ),
m_cardsToShow( 1 )
{
}
--- trunk/KDE/kdegames/kpat/klondike.h #1280159:1280160
@@ -90,7 +90,7 @@
class KlondikePile : public PatPile
{
public:
- KlondikePile( KCardScene * cardScene, int index, const QString & objectName = QString() );
+ KlondikePile( DealerScene * scene, int index, const QString & objectName = QString() );
void setCardsToShow( int numCards );
int cardsToShow() const;
virtual QList<QPointF> cardPositions() const;
--- trunk/KDE/kdegames/kpat/libkcardgame/kcardscene.h #1280159:1280160
@@ -86,8 +86,8 @@
virtual void relayoutScene();
virtual void recalculatePileLayouts();
- virtual void addPile( KCardPile * pile );
- virtual void removePile( KCardPile * pile );
+ void addPile( KCardPile * pile );
+ void removePile( KCardPile * pile );
QList<KCardPile*> piles() const;
void setHighlightedItems( QList<QGraphicsItem*> items );
--- trunk/KDE/kdegames/kpat/patpile.cpp #1280159:1280160
@@ -22,8 +22,8 @@
#include "renderer.h"
-PatPile::PatPile( KCardScene * cardScene, int index, const QString & objectName )
- : KCardPile( cardScene ),
+PatPile::PatPile( DealerScene * scene, int index, const QString & objectName )
+ : KCardPile( scene ),
m_index( index ),
m_role( NoRole )
{
@@ -34,9 +34,20 @@
// Set the default spread for all piles in KPat.
setSpread( 0, 0.33 );
+
+ if ( scene )
+ scene->addPatPile( this );
}
+PatPile::~PatPile()
+{
+ DealerScene * dealerScene = dynamic_cast<DealerScene*>( scene() );
+ if ( dealerScene )
+ dealerScene->removePatPile( this );
+}
+
+
int PatPile::index() const
{
return m_index;
--- trunk/KDE/kdegames/kpat/patpile.h #1280159:1280160
@@ -19,6 +19,8 @@
#ifndef PATPILE_H
#define PATPILE_H
+class DealerScene;
+
#include "KCardPile"
@@ -43,7 +45,8 @@
Cell
};
- PatPile( KCardScene * cardScene, int index, const QString & objectName = QString() );
+ PatPile( DealerScene * scene, int index, const QString & objectName = QString() );
+ virtual ~PatPile();
int index() const;
--- trunk/KDE/kdegames/kpat/spider.cpp #1280159:1280160
@@ -51,8 +51,8 @@
class InvisiblePile : public PatPile
{
public:
- InvisiblePile( KCardScene * cardScene, int index, const QString & objectName = QString() )
- : PatPile( cardScene, index, objectName )
+ InvisiblePile( DealerScene * scene, int index, const QString & objectName = QString() )
+ : PatPile( scene, index, objectName )
{
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic