File indexing completed on 2024-04-14 03:39:25

0001 /*
0002     SPDX-FileCopyrightText: 2005-2006 Albert Astals Cid <aacid@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "button.h"
0008 
0009 #include <KConfig>
0010 #include <KSharedConfig>
0011 #include <KConfigGroup>
0012 
0013 #include <QKeySequence>
0014 
0015 button::button(blinkenGame::color c) : m_selected(false), m_color(c)
0016 {
0017     KConfigGroup kc(KSharedConfig::openConfig(), QStringLiteral("General"));
0018     QString cs = getColorString();
0019     
0020     switch (c)
0021     {
0022         case blinkenGame::blue:
0023             m_key = kc.readEntry(cs, int(Qt::Key_3));
0024         break;
0025         
0026         case blinkenGame::yellow:
0027             m_key = kc.readEntry(cs, int(Qt::Key_1));
0028         break;
0029         
0030         case blinkenGame::red:
0031             m_key =kc.readEntry(cs, int(Qt::Key_2));
0032         break;
0033         
0034         case blinkenGame::green:
0035             m_key = kc.readEntry(cs, int(Qt::Key_4));
0036         break;
0037         
0038         default:
0039             // never happens
0040         break;
0041     }
0042 }
0043 
0044 button::~button()
0045 {
0046 }
0047 
0048 void button::setShortcut(int key)
0049 {
0050     m_key = key;
0051     m_selected = false;
0052     
0053     KConfigGroup kc(KSharedConfig::openConfig(), QStringLiteral("General"));
0054     kc.writeEntry(getColorString(), key);
0055     kc.sync();
0056 }
0057 
0058 QString button::shortcut() const
0059 {
0060     return QKeySequence(m_key).toString();
0061 }
0062 
0063 int button::key() const
0064 {
0065     return m_key;
0066 }
0067 
0068 void button::setSelected(bool b)
0069 {
0070     m_selected = b;
0071 }
0072 
0073 bool button::selected() const
0074 {
0075     return m_selected;
0076 }
0077 
0078 QString button::getColorString() const
0079 {
0080     switch (m_color)
0081     {
0082         case blinkenGame::blue:
0083             return QStringLiteral("blue");
0084         
0085         case blinkenGame::yellow:
0086             return QStringLiteral("yellow");
0087         
0088         case blinkenGame::red:
0089             return QStringLiteral("red");
0090         
0091         case blinkenGame::green:
0092             return QStringLiteral("green");
0093         
0094         default:
0095             // never happens
0096         break;
0097     }
0098     
0099     // never happens
0100     return QString();
0101 }