File indexing completed on 2024-04-28 04:02:29

0001 /*
0002     SPDX-FileCopyrightText: 2007 Dmitry Suzdalev <dimsuz@gmail.com>
0003     SPDX-FileCopyrightText: 2010 Brian Croom <brian.s.croom@gmail.com>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "borderitem.h"
0009 
0010 QHash<KMinesState::BorderElement, QString> BorderItem::s_elementNames;
0011 
0012 BorderItem::BorderItem( KGameRenderer* renderer, QGraphicsItem* parent )
0013     : KGameRenderedItem(renderer, QString(), parent), m_element(KMinesState::BorderEast),
0014       m_row(-1), m_col(-1)
0015 {
0016     if(s_elementNames.isEmpty())
0017         fillNameHash();
0018     setShapeMode(BoundingRectShape);
0019 }
0020 
0021 void BorderItem::setBorderType(KMinesState::BorderElement e)
0022 {
0023     m_element = e;
0024     updatePixmap();
0025 }
0026 
0027 void BorderItem::setRowCol(int row, int col)
0028 {
0029     m_row = row;
0030     m_col = col;
0031 }
0032 
0033 int BorderItem::row() const
0034 {
0035     return m_row;
0036 }
0037 
0038 int BorderItem::col() const
0039 {
0040     return m_col;
0041 }
0042 
0043 void BorderItem::updatePixmap()
0044 {
0045     setSpriteKey(s_elementNames[m_element]);
0046 }
0047 
0048 int BorderItem::type() const
0049 {
0050     return Type;
0051 }
0052 
0053 void BorderItem::fillNameHash()
0054 {
0055     s_elementNames[KMinesState::BorderNorth] = QStringLiteral( "border.edge.north" );
0056     s_elementNames[KMinesState::BorderSouth] = QStringLiteral( "border.edge.south" );
0057     s_elementNames[KMinesState::BorderEast] = QStringLiteral( "border.edge.east" );
0058     s_elementNames[KMinesState::BorderWest] = QStringLiteral( "border.edge.west" );
0059     s_elementNames[KMinesState::BorderCornerNE] = QStringLiteral( "border.outsideCorner.ne" );
0060     s_elementNames[KMinesState::BorderCornerNW] = QStringLiteral( "border.outsideCorner.nw" );
0061     s_elementNames[KMinesState::BorderCornerSW] = QStringLiteral( "border.outsideCorner.sw" );
0062     s_elementNames[KMinesState::BorderCornerSE] = QStringLiteral( "border.outsideCorner.se" );
0063 }