19 |
19 |
20 #include <QDesktopServices> |
20 #include <QDesktopServices> |
21 #include <QTextBrowser> |
21 #include <QTextBrowser> |
22 #include <QLineEdit> |
22 #include <QLineEdit> |
23 #include <QAction> |
23 #include <QAction> |
24 #include <QApplication> |
|
25 #include <QTextDocument> |
24 #include <QTextDocument> |
26 #include <QDir> |
25 #include <QDir> |
27 #include <QSettings> |
26 #include <QSettings> |
28 #include <QFile> |
27 #include <QFile> |
29 #include <QTextStream> |
28 #include <QTextStream> |
30 #include <QMenu> |
29 #include <QMenu> |
31 #include <QCursor> |
30 #include <QCursor> |
32 #include <QScrollBar> |
31 #include <QScrollBar> |
33 #include <QItemSelectionModel> |
32 #include <QItemSelectionModel> |
34 #include <QLabel> |
|
35 |
33 |
36 #include "hwconsts.h" |
34 #include "hwconsts.h" |
37 #include "SDLs.h" |
35 #include "SDLs.h" |
38 #include "gameuiconfig.h" |
36 #include "gameuiconfig.h" |
39 #include "chatwidget.h" |
37 #include "chatwidget.h" |
163 connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)), |
161 connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)), |
164 this, SLOT(chatNickDoubleClicked(QListWidgetItem *))); |
162 this, SLOT(chatNickDoubleClicked(QListWidgetItem *))); |
165 connect(chatNicks, SIGNAL(currentRowChanged(int)), |
163 connect(chatNicks, SIGNAL(currentRowChanged(int)), |
166 this, SLOT(chatNickSelected(int))); |
164 this, SLOT(chatNickSelected(int))); |
167 |
165 |
168 mainLayout.addWidget(chatNicks, 1, 1, 2, 1); |
166 mainLayout.addWidget(chatNicks, 0, 1, 3, 1); |
169 |
|
170 lblCount = new QLabel(this); |
|
171 mainLayout.addWidget(lblCount, 0, 1); |
|
172 lblCount->setText("0"); |
|
173 lblCount->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); |
|
174 |
167 |
175 acInfo = new QAction(QAction::tr("Info"), chatNicks); |
168 acInfo = new QAction(QAction::tr("Info"), chatNicks); |
176 acInfo->setIcon(QIcon(":/res/info.png")); |
169 acInfo->setIcon(QIcon(":/res/info.png")); |
177 connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo())); |
170 connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo())); |
178 acKick = new QAction(QAction::tr("Kick"), chatNicks); |
171 acKick = new QAction(QAction::tr("Kick"), chatNicks); |
396 { |
389 { |
397 QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), ignoreList.contains(nick, Qt::CaseInsensitive)); |
390 QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), ignoreList.contains(nick, Qt::CaseInsensitive)); |
398 updateNickItem(item); |
391 updateNickItem(item); |
399 chatNicks->addItem(item); |
392 chatNicks->addItem(item); |
400 |
393 |
401 lblCount->setText(QString::number(chatNicks->count())); |
394 emit nickCountUpdate(chatNicks->count()); |
402 |
395 |
403 if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) { |
396 if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) { |
404 Mix_PlayChannel(-1, sound[rand()%4], 0); |
397 Mix_PlayChannel(-1, sound[rand()%4], 0); |
405 } |
398 } |
406 } |
399 } |
409 { |
402 { |
410 QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly); |
403 QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly); |
411 QListIterator<QListWidgetItem *> it(items); |
404 QListIterator<QListWidgetItem *> it(items); |
412 while(it.hasNext()) chatNicks->takeItem(chatNicks->row(it.next())); |
405 while(it.hasNext()) chatNicks->takeItem(chatNicks->row(it.next())); |
413 |
406 |
414 lblCount->setText(QString::number(chatNicks->count())); |
407 emit nickCountUpdate(chatNicks->count()); |
415 } |
408 } |
416 |
409 |
417 void HWChatWidget::clear() |
410 void HWChatWidget::clear() |
418 { |
411 { |
419 chatText->clear(); |
412 chatText->clear(); |