21 #include <QtGui/QLabel>
22 #include <QtGui/QVBoxLayout>
23 #include <QtGui/QHBoxLayout>
24 #include <QtGui/QGridLayout>
25 #include <QtGui/QSpacerItem>
26 #include <QtGui/QCheckBox>
28 #include <KDE/KLineEdit>
29 #include <KDE/KKeySequenceWidget>
30 #include <KDE/KLocalizedString>
35 m_selectCheckBox =
new QCheckBox;
36 m_selectCheckBox->setChecked(m_playerSettings->
enabled(playerId));
37 m_playerName =
new KLineEdit(m_playerSettings->
playerName(playerId));
38 m_playerName->setFixedWidth(200);
39 m_playerPreviewPixmap =
new QPixmap(QSize(64, 64));
40 m_playerPreviewPixmapAlphaChannel =
new QPixmap(QSize(64, 64));
41 m_playerPreviewPixmapLabel =
new QLabel;
42 m_playerAuthor =
new QLabel;
44 QHBoxLayout* mainLayout =
new QHBoxLayout(
this);
45 mainLayout->setMargin(6);
47 QGridLayout* gridLayoutPlayer =
new QGridLayout();
48 gridLayoutPlayer->setMargin(0);
50 QVBoxLayout* verticalLayoutKeySequence =
new QVBoxLayout();
51 verticalLayoutKeySequence->setMargin(0);
53 mainLayout->addLayout(gridLayoutPlayer);
54 mainLayout->addSpacerItem(
new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum));
55 mainLayout->addLayout(verticalLayoutKeySequence);
56 mainLayout->addSpacerItem(
new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum));
58 gridLayoutPlayer->addWidget(m_selectCheckBox, 0, 0);
59 gridLayoutPlayer->addWidget(m_playerName, 0, 1, 1, 3);
60 gridLayoutPlayer->addWidget(m_playerPreviewPixmapLabel, 1, 1, 2, 1);
61 gridLayoutPlayer->addWidget(m_playerAuthor, 2, 2);
63 QGridLayout* gridLayoutKeySequence =
new QGridLayout();
64 gridLayoutKeySequence->setMargin(0);
66 verticalLayoutKeySequence->addSpacerItem(
new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));
67 verticalLayoutKeySequence->addLayout(gridLayoutKeySequence);
68 verticalLayoutKeySequence->addSpacerItem(
new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));
70 m_moveLeft =
new KKeySequenceWidget(
this);
71 m_moveLeft->setMultiKeyShortcutsAllowed(
false);
72 m_moveLeft->setModifierlessAllowed(
true);
73 m_moveLeft->setClearButtonShown(
false);
74 m_moveLeft->setKeySequence(m_playerSettings->
keyLeft(playerId));
75 m_labelMoveLeft =
new QLabel(i18nc(
"Label for the key sequence to move the player.",
"Left:"));
76 gridLayoutKeySequence->addWidget(m_labelMoveLeft, 1, 1, Qt::AlignRight);
77 gridLayoutKeySequence->addWidget(m_moveLeft, 1, 2);
79 m_moveUp =
new KKeySequenceWidget(
this);
80 m_moveUp->setMultiKeyShortcutsAllowed(
false);
81 m_moveUp->setModifierlessAllowed(
true);
82 m_moveUp->setClearButtonShown(
false);
83 m_moveUp->setKeySequence(m_playerSettings->
keyUp(playerId));
84 m_labelMoveUp =
new QLabel(i18nc(
"Label for the key sequence to move the player.",
"Up:"));
85 gridLayoutKeySequence->addWidget(m_labelMoveUp, 0, 3, Qt::AlignRight);
86 gridLayoutKeySequence->addWidget(m_moveUp, 0, 4);
88 m_moveRight =
new KKeySequenceWidget(
this);
89 m_moveRight->setMultiKeyShortcutsAllowed(
false);
90 m_moveRight->setModifierlessAllowed(
true);
91 m_moveRight->setClearButtonShown(
false);
92 m_moveRight->setKeySequence(m_playerSettings->
keyRight(playerId));
93 m_labelMoveRight =
new QLabel(i18nc(
"Label for the key sequence to move the player.",
"Right:"));
94 gridLayoutKeySequence->addWidget(m_labelMoveRight, 1, 5, Qt::AlignRight);
95 gridLayoutKeySequence->addWidget(m_moveRight, 1, 6);
97 m_moveDown =
new KKeySequenceWidget(
this);
98 m_moveDown->setMultiKeyShortcutsAllowed(
false);
99 m_moveDown->setModifierlessAllowed(
true);
100 m_moveDown->setClearButtonShown(
false);
101 m_moveDown->setKeySequence(m_playerSettings->
keyDown(playerId));
102 m_labelMoveDown =
new QLabel(i18nc(
"Label for the key sequence to move the player.",
"Down:"));
103 gridLayoutKeySequence->addWidget(m_labelMoveDown, 2, 3, Qt::AlignRight);
104 gridLayoutKeySequence->addWidget(m_moveDown, 2, 4);
106 m_dropBomb =
new KKeySequenceWidget(
this);
107 m_dropBomb->setMultiKeyShortcutsAllowed(
false);
108 m_dropBomb->setModifierlessAllowed(
true);
109 m_dropBomb->setClearButtonShown(
false);
110 m_dropBomb->setKeySequence(m_playerSettings->
keyPutBomb(playerId));
111 m_labelDropBomb =
new QLabel(i18nc(
"Label for the key sequence to move the player.",
"Bomb:"));
112 gridLayoutKeySequence->addWidget(m_labelDropBomb, 1, 3, Qt::AlignRight);
113 gridLayoutKeySequence->addWidget(m_dropBomb, 1, 4);
115 selectionChanged(m_selectCheckBox->isChecked());
116 connect(m_selectCheckBox, SIGNAL(toggled(
bool)),
this, SLOT(selectionChanged(
bool)));
117 connect(m_selectCheckBox, SIGNAL(toggled(
bool)),
this, SLOT(settingsChanged()));
118 connect(m_playerName, SIGNAL(textEdited(QString)),
this, SLOT(settingsChanged()));
119 connect(m_moveLeft, SIGNAL(keySequenceChanged(QKeySequence)),
this, SLOT(settingsChanged()));
120 connect(m_moveUp, SIGNAL(keySequenceChanged(QKeySequence)),
this, SLOT(settingsChanged()));
121 connect(m_moveRight, SIGNAL(keySequenceChanged(QKeySequence)),
this, SLOT(settingsChanged()));
122 connect(m_moveDown, SIGNAL(keySequenceChanged(QKeySequence)),
this, SLOT(settingsChanged()));
123 connect(m_dropBomb, SIGNAL(keySequenceChanged(QKeySequence)),
this, SLOT(settingsChanged()));
128 delete m_selectCheckBox;
131 delete m_playerPreviewPixmap;
132 delete m_playerPreviewPixmapAlphaChannel;;
133 delete m_playerPreviewPixmapLabel;
134 delete m_playerAuthor;
142 delete m_labelMoveLeft;
143 delete m_labelMoveUp;
144 delete m_labelMoveRight;
145 delete m_labelMoveDown;
146 delete m_labelDropBomb;
151 delete m_playerPreviewPixmap;
152 m_playerPreviewPixmap =
new QPixmap(pixmap);
154 QPixmap tempPixmap(*m_playerPreviewPixmap);
155 tempPixmap.setAlphaChannel(*m_playerPreviewPixmapAlphaChannel);
156 m_playerPreviewPixmapLabel->setPixmap(tempPixmap);
164 mailString =
"<br />" + mail;
166 m_playerAuthor->setText(
"<i>" + i18nc(
"Author attribution, e.g. \"by Jack\"",
"by %1", name) +
"</i>" + mailString);
169 void PlayerSelectorItem::selectionChanged(
bool selectionState)
171 m_playerName->setEnabled(selectionState);
172 m_playerAuthor->setEnabled(selectionState);
174 if(selectionState ==
true)
176 m_playerPreviewPixmapAlphaChannel->fill(QColor(255, 255, 255, 255));
180 m_playerPreviewPixmapAlphaChannel->fill(QColor(64, 64, 64, 255));
182 QPixmap tempPixmap(*m_playerPreviewPixmap);
183 tempPixmap.setAlphaChannel(*m_playerPreviewPixmapAlphaChannel);
184 m_playerPreviewPixmapLabel->setPixmap(tempPixmap);
186 m_moveLeft->setEnabled(selectionState);
187 m_moveUp->setEnabled(selectionState);
188 m_moveRight->setEnabled(selectionState);
189 m_moveDown->setEnabled(selectionState);
190 m_dropBomb->setEnabled(selectionState);
192 m_labelMoveLeft->setEnabled(selectionState);
193 m_labelMoveUp->setEnabled(selectionState);
194 m_labelMoveRight->setEnabled(selectionState);
195 m_labelMoveDown->setEnabled(selectionState);
196 m_labelDropBomb->setEnabled(selectionState);
199 void PlayerSelectorItem::settingsChanged()
201 m_playerSettings->
setEnabled(m_playerId, m_selectCheckBox->isChecked());
202 m_playerSettings->
setPlayerName(m_playerId, m_playerName->text());
203 m_playerSettings->
setKeyLeft(m_playerId, m_moveLeft->keySequence());
204 m_playerSettings->
setKeyUp(m_playerId, m_moveUp->keySequence());
205 m_playerSettings->
setKeyRight(m_playerId, m_moveRight->keySequence());
206 m_playerSettings->
setKeyDown(m_playerId, m_moveDown->keySequence());
207 m_playerSettings->
setKeyPutBomb(m_playerId, m_dropBomb->keySequence());
const QKeySequence keyUp(const QString &strPlayerID) const
void setPlayerAuthor(const QString &name, const QString &mail)
const QString playerName(const QString &strPlayerID) const
void setKeyLeft(const QString &strPlayerID, const QKeySequence &key)
const QKeySequence keyRight(const QString &strPlayerID) const
void setPlayerPreviewPixmap(const QPixmap &pixmap)
bool enabled(const QString &strPlayerID) const
const QKeySequence keyDown(const QString &strPlayerID) const
void setKeyDown(const QString &strPlayerID, const QKeySequence &key)
const QKeySequence keyPutBomb(const QString &strPlayerID) const
PlayerSelectorItem(const QString &playerId, PlayerSettings *playerSettings, QWidget *parent=0)
void setKeyPutBomb(const QString &strPlayerID, const QKeySequence &key)
void setKeyUp(const QString &strPlayerID, const QKeySequence &key)
void setKeyRight(const QString &strPlayerID, const QKeySequence &key)
const QKeySequence keyLeft(const QString &strPlayerID) const
void setEnabled(const QString &strPlayerID, const bool enabled)
void setPlayerName(const QString &strPlayerID, const QString &strName)