140 |
141 |
141 chatEditLine = new QLineEdit(this); |
142 chatEditLine = new QLineEdit(this); |
142 chatEditLine->setMaxLength(300); |
143 chatEditLine->setMaxLength(300); |
143 connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed())); |
144 connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed())); |
144 |
145 |
145 mainLayout.addWidget(chatEditLine, 1, 0); |
146 mainLayout.addWidget(chatEditLine, 2, 0); |
146 |
147 |
147 chatText = new QTextBrowser(this); |
148 chatText = new QTextBrowser(this); |
148 chatText->document()->setDefaultStyleSheet(STYLE); |
149 chatText->document()->setDefaultStyleSheet(STYLE); |
149 chatText->setMinimumHeight(20); |
150 chatText->setMinimumHeight(20); |
150 chatText->setMinimumWidth(10); |
151 chatText->setMinimumWidth(10); |
151 chatText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
152 chatText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
152 chatText->setOpenLinks(false); |
153 chatText->setOpenLinks(false); |
153 connect(chatText, SIGNAL(anchorClicked(const QUrl&)), |
154 connect(chatText, SIGNAL(anchorClicked(const QUrl&)), |
154 this, SLOT(linkClicked(const QUrl&))); |
155 this, SLOT(linkClicked(const QUrl&))); |
155 mainLayout.addWidget(chatText, 0, 0); |
156 mainLayout.addWidget(chatText, 0, 0, 2, 1); |
156 |
157 |
157 chatNicks = new QListWidget(this); |
158 chatNicks = new QListWidget(this); |
158 chatNicks->setMinimumHeight(10); |
159 chatNicks->setMinimumHeight(10); |
159 chatNicks->setMinimumWidth(10); |
160 chatNicks->setMinimumWidth(10); |
160 chatNicks->setSortingEnabled(true); |
161 chatNicks->setSortingEnabled(true); |
163 connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)), |
164 connect(chatNicks, SIGNAL(itemDoubleClicked(QListWidgetItem *)), |
164 this, SLOT(chatNickDoubleClicked(QListWidgetItem *))); |
165 this, SLOT(chatNickDoubleClicked(QListWidgetItem *))); |
165 connect(chatNicks, SIGNAL(currentRowChanged(int)), |
166 connect(chatNicks, SIGNAL(currentRowChanged(int)), |
166 this, SLOT(chatNickSelected(int))); |
167 this, SLOT(chatNickSelected(int))); |
167 |
168 |
168 mainLayout.addWidget(chatNicks, 0, 1, -1, 1); |
169 mainLayout.addWidget(chatNicks, 1, 1, 2, 1); |
|
170 |
|
171 lblCount = new QLabel(this); |
|
172 mainLayout.addWidget(lblCount, 0, 1); |
|
173 lblCount->setText("0"); |
|
174 lblCount->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); |
169 |
175 |
170 acInfo = new QAction(QAction::tr("Info"), chatNicks); |
176 acInfo = new QAction(QAction::tr("Info"), chatNicks); |
171 acInfo->setIcon(QIcon(":/res/info.png")); |
177 acInfo->setIcon(QIcon(":/res/info.png")); |
172 connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo())); |
178 connect(acInfo, SIGNAL(triggered(bool)), this, SLOT(onInfo())); |
173 acKick = new QAction(QAction::tr("Kick"), chatNicks); |
179 acKick = new QAction(QAction::tr("Kick"), chatNicks); |
391 { |
397 { |
392 QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), ignoreList.contains(nick, Qt::CaseInsensitive)); |
398 QListWidgetItem * item = new ListWidgetNickItem(nick, friendsList.contains(nick, Qt::CaseInsensitive), ignoreList.contains(nick, Qt::CaseInsensitive)); |
393 updateNickItem(item); |
399 updateNickItem(item); |
394 chatNicks->addItem(item); |
400 chatNicks->addItem(item); |
395 |
401 |
|
402 lblCount->setText(QString::number(chatNicks->count())); |
|
403 |
396 if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) { |
404 if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool()) { |
397 Mix_PlayChannel(-1, sound[rand()%4], 0); |
405 Mix_PlayChannel(-1, sound[rand()%4], 0); |
398 } |
406 } |
399 } |
407 } |
400 |
408 |
403 QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly); |
411 QList<QListWidgetItem *> items = chatNicks->findItems(nick, Qt::MatchExactly); |
404 for(QList<QListWidgetItem *>::iterator it=items.begin(); it!=items.end();) { |
412 for(QList<QListWidgetItem *>::iterator it=items.begin(); it!=items.end();) { |
405 chatNicks->takeItem(chatNicks->row(*it)); |
413 chatNicks->takeItem(chatNicks->row(*it)); |
406 ++it; |
414 ++it; |
407 } |
415 } |
|
416 |
|
417 lblCount->setText(QString::number(chatNicks->count())); |
408 } |
418 } |
409 |
419 |
410 void HWChatWidget::clear() |
420 void HWChatWidget::clear() |
411 { |
421 { |
412 chatText->clear(); |
422 chatText->clear(); |