rpms/kdegames/F-9 kdegames-4.1.0-fix-bovo.patch, NONE, 1.1 kdegames.spec, 1.90, 1.91
Kevin Kofler (kkofler)
fedora-extras-commits at redhat.com
Sat Aug 9 05:38:37 UTC 2008
Author: kkofler
Update of /cvs/pkgs/rpms/kdegames/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24271/F-9
Modified Files:
kdegames.spec
Added Files:
kdegames-4.1.0-fix-bovo.patch
Log Message:
* Sat Aug 09 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.0-2
- fix Bovo not drawing placed marks (#457944, kde#160419)
- update/fix game list in description
kdegames-4.1.0-fix-bovo.patch:
--- NEW FILE kdegames-4.1.0-fix-bovo.patch ---
Index: bovo/gui/mark.h
===================================================================
--- bovo/gui/mark.h (revision 794126)
+++ bovo/gui/mark.h (working copy)
@@ -45,9 +45,10 @@
~Mark();
void killAnimation();
void kill();
- usi x() const;
- usi y() const;
+ usi row() const;
+ usi col() const;
void setFill(qreal fill);
+ QRectF boundingRect() const;
public slots:
void tick();
@@ -61,7 +62,6 @@
QWidget* widget=0);
private:
- QRectF glyphRectF() const;
Scene* m_scene;
int m_row;
int m_col;
Index: bovo/gui/scene.cc
===================================================================
--- bovo/gui/scene.cc (revision 794126)
+++ bovo/gui/scene.cc (working copy)
@@ -48,7 +48,7 @@
namespace gui {
Scene::Scene(const Theme& theme, bool animation)
- : m_activate(false), m_game(0), m_player(No), m_animation(animation),
+ : m_activate(false), m_game(0), m_curCellSize(10.0), m_player(No), m_animation(animation),
m_paintMarker(false) {
/** @todo read theme from some configuration, I guess */
/** @todo read file names from from some configuration, I guess */
@@ -58,8 +58,7 @@
m_hintTimer = new QTimer(this);
m_hintTimer->setSingleShot(true);
m_hintItem = 0;
- resizeScene(static_cast<int>(m_curCellSize*(NUMCOLS+2)),
- static_cast<int>(m_curCellSize*(NUMCOLS+2)));
+ setSceneRect( 0, 0, m_curCellSize*(NUMCOLS+2), m_curCellSize*(NUMCOLS+2) );
}
Scene::~Scene() {
@@ -76,6 +75,10 @@
}
}
+qreal Scene::squareSize() const {
+ return m_curCellSize;
+}
+
void Scene::loadTheme(const Theme& theme) {
m_fill = theme.fill();
QColor color(theme.backgroundColor());
@@ -90,12 +93,10 @@
else
m_renderer->load(theme.svg());
QList<QGraphicsItem*> allMarks = items();
- QList<QGraphicsItem*>::iterator it = allMarks.begin();
- QList<QGraphicsItem*>::iterator end = allMarks.end();
- for (; it != end; ++it) {
- if (Mark* mark = qgraphicsitem_cast<Mark *>(*it))
+ foreach (QGraphicsItem* item, allMarks) {
+ if (Mark* mark = qgraphicsitem_cast<Mark *>(item))
mark->setFill(m_fill);
- else if (HintItem* hintItem = qgraphicsitem_cast<HintItem *>(*it))
+ else if (HintItem* hintItem = qgraphicsitem_cast<HintItem *>(item))
hintItem->setFill(m_fill);
}
}
@@ -116,13 +117,6 @@
invalidate(0, 0, width(), height());
}
-void Scene::resizeScene(int width, int height) {
- int size = qMin(width, height);
- setSceneRect( 0, 0, size, size );
- m_curCellSize = static_cast<qreal>(size) /
- static_cast<qreal>(NUMCOLS+2);
-}
-
void Scene::setGame(Game* game) {
destroyHint();
m_winningMoves = QList<Move>();
@@ -155,14 +149,11 @@
Mark* mark = new Mark(this, move, m_animation, m_fill);
mark->setSharedRenderer(m_renderer);
addItem(mark);
- demandRepaint();
} else if (move.player() == No) {
QList<QGraphicsItem*> allMarks = items();
- QList<QGraphicsItem*>::iterator it = allMarks.begin();
- QList<QGraphicsItem*>::iterator end = allMarks.end();
- for (; it != end; ++it) {
- if (Mark* mark = qgraphicsitem_cast<Mark *>(*it)) {
- if (mark->x() == move.x() && mark->y() == move.y()) {
+ foreach (QGraphicsItem* item, allMarks) {
+ if (Mark* mark = qgraphicsitem_cast<Mark *>(item)) {
+ if (mark->row() == move.x() && mark->col() == move.y()) {
if (m_animation) {
connect(mark, SIGNAL(killed(Mark*)),
this, SLOT(killMark(Mark*)));
@@ -170,8 +161,6 @@
} else {
removeItem(mark);
delete mark;
- demandRepaint();
- return;
}
}
}
@@ -203,15 +192,17 @@
m_renderer->render(p, "grid", tmpRect);
}
-void Scene::drawForeground(QPainter *p, const QRectF&) {
+void Scene::drawForeground(QPainter *p, const QRectF& bounds) {
if (m_paintMarker) {
QRectF rect(cellTopLeft(m_col, m_row), QSizeF(m_curCellSize,
m_curCellSize));
qreal adjusting((1.0-m_fill)*m_curCellSize/2.0);
rect.adjust(adjusting, adjusting, -adjusting, -adjusting);
- p->setOpacity(0.4);
- m_renderer->render(p, "x1", rect);
- p->setOpacity(1);
+ if (bounds.intersects(rect)) {
+ p->setOpacity(0.4);
+ m_renderer->render(p, "x1", rect);
+ p->setOpacity(1);
+ }
}
if (!m_winningMoves.empty()) {
QList<Move>::const_iterator it = m_winningMoves.begin();
@@ -219,7 +210,9 @@
while (it != end) {
QRectF tmpRect(cellTopLeft(it->x(), it->y()), QSizeF(m_curCellSize,
m_curCellSize));
- m_renderer->render(p, "win", tmpRect);
+ if (bounds.intersects(tmpRect)) {
+ m_renderer->render(p, "win", tmpRect);
+ }
++it;
}
}
@@ -307,7 +300,6 @@
addItem(m_hintItem);
connect(m_hintTimer, SIGNAL(timeout()), this, SLOT(hintTimeout()));
m_hintTimer->start(2000);
- demandRepaint();
}
void Scene::destroyHint() {
@@ -318,7 +310,6 @@
removeItem(m_hintItem);
m_hintItem->deleteLater();
m_hintItem = 0;
- demandRepaint();
}
}
@@ -347,7 +338,6 @@
void Scene::killMark(Mark* mark) {
removeItem(mark);
mark->deleteLater();
- demandRepaint();
}
void Scene::replay() {
Index: bovo/gui/scene.h
===================================================================
--- bovo/gui/scene.h (revision 794126)
+++ bovo/gui/scene.h (working copy)
@@ -52,9 +52,11 @@
~Scene();
void activate(bool activate);
void setGame(Game* game);
- void resizeScene(int width, int height);
bool isBusy() const;
void setTheme(const Theme& theme);
+ qreal squareSize() const;
+ QPointF cellCenter( int x, int y ) const;
+ QPointF cellTopLeft( int x, int y ) const;
public slots:
void updateBoard(const Move& move);
@@ -78,8 +80,6 @@
virtual void drawForeground(QPainter *p, const QRectF& rect);
virtual void mousePressEvent(QGraphicsSceneMouseEvent*);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent*);
- QPointF cellCenter( int x, int y ) const;
- QPointF cellTopLeft( int x, int y ) const;
void killAnimations();
bool m_activate;
Game *m_game;
Index: bovo/gui/view.cc
===================================================================
--- bovo/gui/view.cc (revision 794126)
+++ bovo/gui/view.cc (working copy)
@@ -48,7 +48,7 @@
}
void View::resizeEvent( QResizeEvent* ev ) {
- m_scene->resizeScene( ev->size().width(), ev->size().height() );
+ fitInView(sceneRect(), Qt::KeepAspectRatio);
QGraphicsView::resizeEvent(ev);
}
Index: bovo/gui/hintitem.cc
===================================================================
--- bovo/gui/hintitem.cc (revision 794126)
+++ bovo/gui/hintitem.cc (working copy)
@@ -52,6 +52,8 @@
} else {
m_opacity = 0.4;
}
+
+ setPos(m_scene->cellCenter(m_col, m_row));
}
HintItem::~HintItem() {
@@ -62,12 +64,23 @@
}
}
+QRectF HintItem::boundingRect() const {
+ qreal width = m_scene->squareSize();
+ qreal height = width;
+ qreal margin = (1.0-m_fill) * width / 2.0;
+ return QRectF( -width / 2.0 + margin,
+ -height / 2.0 + margin,
+ width - 2.0*margin,
+ height - 2.0*margin);
+}
+
+
void HintItem::killAnimation() {
if (m_ticker) {
m_ticker->stop();
disconnect(m_ticker, 0, this, 0);
m_opacity = 0.4;
- m_scene->demandRepaint();
+ update();
}
}
@@ -78,7 +91,7 @@
void HintItem::killTick() {
m_opacity -= 0.05;
- m_scene->demandRepaint();
+ update();
if (m_opacity <= 0.05) {
m_ticker->stop();
emit killed();
@@ -98,7 +111,7 @@
} else {
m_opacity -= 0.1;
}
- m_scene->demandRepaint();
+ update();
}
}
@@ -106,20 +119,9 @@
// m_enabled = enabled;
// }
-QRectF HintItem::glyphRectF() const {
- qreal width = m_scene->width() / (NUMCOLS+2);
- qreal height = width;
- qreal margin = (1.0-m_fill) * width / 2.0;
- // qreal margin = m_sizeShrink * width;
- return QRectF( (1+m_col) * width + margin,
- (1+m_row) * height + margin,
- width - 2.0*margin,
- height - 2.0*margin);
-}
-
void HintItem::paint(QPainter *p, const QStyleOptionGraphicsItem*, QWidget*) {
p->setOpacity(m_opacity);
- renderer()->render(p, elementId(), glyphRectF());
+ renderer()->render(p, elementId(), boundingRect());
}
void HintItem::setFill(qreal fill) {
Index: bovo/gui/hintitem.h
===================================================================
--- bovo/gui/hintitem.h (revision 794126)
+++ bovo/gui/hintitem.h (working copy)
@@ -45,6 +45,7 @@
void killAnimation();
void kill();
void setFill(qreal fill);
+ QRectF boundingRect() const;
public slots:
void tick();
@@ -57,7 +58,6 @@
void paint(QPainter* p, const QStyleOptionGraphicsItem*, QWidget* widget=0);
private:
- QRectF glyphRectF() const;
Scene* m_scene;
int m_row;
int m_col;
Index: bovo/gui/mark.cc
===================================================================
--- bovo/gui/mark.cc (revision 794126)
+++ bovo/gui/mark.cc (working copy)
@@ -50,6 +50,8 @@
} else {
m_opacity = 1.0;
}
+
+ setPos(m_scene->cellCenter(m_col, m_row));
}
Mark::~Mark() {
@@ -60,6 +62,16 @@
}
}
+QRectF Mark::boundingRect() const {
+ qreal width = m_scene->squareSize();
+ qreal height = width;
+ qreal margin = (1.0-m_fill) * width / 2.0;
+ return QRectF( -width / 2.0 + margin,
+ -height / 2.0 + margin,
+ width - 2.0*margin,
+ height - 2.0*margin);
+}
+
void Mark::killAnimation() {
if (m_ticker != 0) {
m_ticker->stop();
@@ -67,7 +79,7 @@
m_ticker->deleteLater();
m_ticker = 0;
m_opacity = 1.0;
- m_scene->demandRepaint();
+ update();
}
}
@@ -84,7 +96,7 @@
void Mark::killTick() {
m_opacity -= 0.1;
- m_scene->demandRepaint();
+ update();
if (m_opacity <= 0.1) {
m_ticker->stop();
emit killed(this);
@@ -97,39 +109,25 @@
killAnimation();
} else {
m_opacity += 0.1;
- m_scene->demandRepaint();
+ update();
}
}
-QRectF Mark::glyphRectF() const {
-// m_sS = 1/12
-// m_fill = 1 || 0.75
-// marg = 1 - m_fill / 3
-// totalMarg = 3/12 = 1/4
-//
- qreal width = m_scene->width() / (NUMCOLS+2);
- qreal height = width;
- qreal margin = (1.0-m_fill) * width / 2.0;
- return QRectF( (1+m_col) * width + margin,
- (1+m_row) * height + margin,
- width - 2.0*margin,
- height - 2.0*margin);
-}
-
void Mark::paint(QPainter *p, const QStyleOptionGraphicsItem*, QWidget*) {
p->setOpacity(m_opacity);
- renderer()->render(p, elementId(), glyphRectF());
+ renderer()->render(p, elementId(), boundingRect());
}
void Mark::setFill(qreal fill) {
m_fill = fill;
+ prepareGeometryChange();
}
-usi Mark::x() const {
+usi Mark::col() const {
return m_col;
}
-usi Mark::y() const {
+usi Mark::row() const {
return m_row;
}
Index: kdegames.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdegames/F-9/kdegames.spec,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- kdegames.spec 25 Jul 2008 17:04:41 -0000 1.90
+++ kdegames.spec 9 Aug 2008 05:38:07 -0000 1.91
@@ -5,7 +5,7 @@
Summary: K Desktop Environment 4 - Games
Epoch: 6
Version: 4.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2
URL: http://www.kde.org/
@@ -15,6 +15,8 @@
# Invert the search order for libkdegames to make sure the KDE 4 version is always found first
Patch0: kdegames-3.97.0-parallel_devel.patch
+# Fix #457944/kde#160419 Bovo doesn't draw placed marks
+Patch1: kdegames-4.1.0-fix-bovo.patch
Obsoletes: kdegames4 < %{version}-%{release}
Provides: kdegames4 = %{version}-%{release}
@@ -39,6 +41,7 @@
%description
Games for the K Desktop Environment 4, including:
+* bovo
* katomic
* kbackgammon
* kbattleship
@@ -47,8 +50,9 @@
* kbounce
* kbreakout
* kdiamond
+* kfourinline
* kgoldrunner
-* kirki
+* kiriki
* kjumpingcube
* klines
* kmahjongg
@@ -67,7 +71,6 @@
* ksudoku
* ktuberling
* kubrick
-* kwin4
* lskat
%package libs
@@ -91,6 +94,7 @@
%prep
%setup -q -n kdegames-%{version}
%patch0 -p1 -b .parallel_devel
+%patch1 -p0 -b .fix-bovo
%build
@@ -187,6 +191,10 @@
%changelog
+* Sat Aug 09 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.0-2
+- fix Bovo not drawing placed marks (#457944, kde#160419)
+- update/fix game list in description
+
* Wed Jul 23 2008 Than Ngo <than at redhat.com> 4.1.0-1
- 4.1.0
More information about the fedora-extras-commits
mailing list