2
This file is part of the KDE games library
3
Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de)
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Library General Public
7
License version 2 as published by the Free Software Foundation.
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
Library General Public License for more details.
14
You should have received a copy of the GNU Library General Public License
15
along with this library; see the file COPYING.LIB. If not, write to
16
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17
Boston, MA 02110-1301, USA.
20
#include "kchatdialog.h"
22
#include "kchatbase.h"
25
#include <kfontdialog.h>
27
#include <klineedit.h>
31
#include <QPushButton>
34
class KChatDialogPrivate
43
mSystemNamePreview = 0;
44
mSystemTextPreview = 0;
53
QLabel* mSystemNamePreview;
54
QLabel* mSystemTextPreview;
56
KLineEdit* mMaxMessages;
61
KChatDialog::KChatDialog(KChatBase* chat, QWidget* parent, bool modal)
63
d( new KChatDialogPrivate )
65
setCaption(i18n("Configure Chat"));
66
setButtons(Ok|Default|Apply|Cancel);
72
KChatDialog::KChatDialog(QWidget* parent, bool modal)
74
d( new KChatDialogPrivate )
76
setCaption(i18n("Configure Chat"));
77
setButtons(Ok|Default|Apply|Cancel);
83
KChatDialog::~KChatDialog()
88
void KChatDialog::init()
90
d->mTextPage = new QFrame( this );
91
setMainWidget( d->mTextPage );
92
QGridLayout* layout = new QGridLayout(d->mTextPage);
93
layout->setMargin(KDialog::marginHint());
94
layout->setSpacing(KDialog::spacingHint());
97
QPushButton* nameFont = new QPushButton(i18n("Name Font..."), d->mTextPage);
98
connect(nameFont, SIGNAL(pressed()), this, SLOT(slotGetNameFont()));
99
layout->addWidget(nameFont, 0, 0);
100
QPushButton* textFont = new QPushButton(i18n("Text Font..."), d->mTextPage);
101
connect(textFont, SIGNAL(pressed()), this, SLOT(slotGetTextFont()));
102
layout->addWidget(textFont, 0, 1);
104
QFrame* messagePreview = new QFrame(d->mTextPage);
105
messagePreview->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
106
QHBoxLayout* messageLayout = new QHBoxLayout(messagePreview);
107
layout->addWidget(messagePreview, 1, 0, 1, 2);
109
d->mNamePreview = new QLabel(i18n("Player: "), messagePreview);
110
messageLayout->addWidget(d->mNamePreview, 0);
111
d->mTextPreview = new QLabel(i18n("This is a player message"), messagePreview);
112
messageLayout->addWidget(d->mTextPreview, 1);
114
layout->addItem(new QSpacerItem(0, 10), 2, 0);
116
// System Message fonts
117
QLabel* systemMessages = new QLabel(i18n("System Messages - Messages directly sent from the game"), d->mTextPage);
118
layout->addWidget(systemMessages, 3, 0, 1, 2);
119
QPushButton* systemNameFont = new QPushButton(i18n("Name Font..."), d->mTextPage);
120
connect(systemNameFont, SIGNAL(pressed()), this, SLOT(slotGetSystemNameFont()));
121
layout->addWidget(systemNameFont, 4, 0);
122
QPushButton* systemTextFont = new QPushButton(i18n("Text Font..."), d->mTextPage);
123
connect(systemTextFont, SIGNAL(pressed()), this, SLOT(slotGetSystemTextFont()));
124
layout->addWidget(systemTextFont, 4, 1);
126
QFrame* systemMessagePreview = new QFrame(d->mTextPage);
127
systemMessagePreview->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
128
QHBoxLayout* systemMessageLayout = new QHBoxLayout(systemMessagePreview);
129
layout->addWidget(systemMessagePreview, 5, 0, 1, 2);
131
d->mSystemNamePreview = new QLabel(i18n("--- Game: "), systemMessagePreview);
132
systemMessageLayout->addWidget(d->mSystemNamePreview, 0);
133
d->mSystemTextPreview = new QLabel(i18n("This is a system message"), systemMessagePreview);
134
systemMessageLayout->addWidget(d->mSystemTextPreview, 1);
137
QLabel* maxMessages = new QLabel(i18n("Maximum number of messages (-1 = unlimited):"), d->mTextPage);
138
layout->addWidget(maxMessages, 6, 0);
139
d->mMaxMessages = new KLineEdit(d->mTextPage);
140
d->mMaxMessages->setText(QString::number(-1));
141
layout->addWidget(d->mMaxMessages, 6, 1);
142
connect(this, SIGNAL(applyClicked()),this,SLOT(slotApply()));
143
connect(this, SIGNAL(okClicked()),this,SLOT(slotOk()));
146
void KChatDialog::slotGetNameFont()
148
QFont font = nameFont();
149
KFontDialog::getFont(font);
153
void KChatDialog::slotGetTextFont()
155
QFont font = textFont();
156
KFontDialog::getFont(font);
160
void KChatDialog::slotGetSystemNameFont()
162
QFont font = systemNameFont();
163
KFontDialog::getFont(font);
164
setSystemNameFont(font);
167
void KChatDialog::slotGetSystemTextFont()
169
QFont font = systemTextFont();
170
KFontDialog::getFont(font);
171
setSystemTextFont(font);
174
QFont KChatDialog::nameFont() const
176
return d->mNamePreview->font();
179
QFont KChatDialog::textFont() const
181
return d->mTextPreview->font();
184
QFont KChatDialog::systemNameFont() const
186
return d->mSystemNamePreview->font();
189
QFont KChatDialog::systemTextFont() const
191
return d->mSystemTextPreview->font();
194
void KChatDialog::plugChatWidget(KChatBase* widget, bool applyFonts)
197
if (applyFonts && d->mChat) {
198
setNameFont(d->mChat->nameFont());
199
setTextFont(d->mChat->messageFont());
200
setSystemNameFont(d->mChat->systemNameFont());
201
setSystemTextFont(d->mChat->systemMessageFont());
202
setMaxMessages(d->mChat->maxItems());
206
void KChatDialog::configureChatWidget(KChatBase* widget)
211
widget->setNameFont(nameFont());
212
widget->setMessageFont(textFont());
214
widget->setSystemNameFont(systemNameFont());
215
widget->setSystemMessageFont(systemTextFont());
217
widget->setMaxItems(maxMessages());
218
widget->saveConfig();
219
kDebug() << "Saved configuration";
222
void KChatDialog::slotOk()
228
void KChatDialog::slotApply()
230
configureChatWidget(d->mChat);
233
void KChatDialog::setNameFont(QFont f)
235
d->mNamePreview->setFont(f);
238
void KChatDialog::setTextFont(QFont f)
240
d->mTextPreview->setFont(f);
243
void KChatDialog::setSystemNameFont(QFont f)
245
d->mSystemNamePreview->setFont(f);
248
void KChatDialog::setSystemTextFont(QFont f)
250
d->mSystemTextPreview->setFont(f);
253
void KChatDialog::setMaxMessages(int max)
255
d->mMaxMessages->setText(QString::number(max));
258
int KChatDialog::maxMessages() const
261
int max = d->mMaxMessages->text().toInt(&ok);
263
return -1; // unlimited is default
268
#include "kchatdialog.moc"