QTfrontend/chatwidget.cpp
changeset 5094 9c3553254100
parent 4976 088d40d8aba2
child 5140 932307228d05
equal deleted inserted replaced
5093:7eb35faa7f7a 5094:9c3553254100
    29 #include <QTextStream>
    29 #include <QTextStream>
    30 #include <QMenu>
    30 #include <QMenu>
    31 #include <QCursor>
    31 #include <QCursor>
    32 #include <QScrollBar>
    32 #include <QScrollBar>
    33 #include <QItemSelectionModel>
    33 #include <QItemSelectionModel>
       
    34 #include <QLabel>
    34 
    35 
    35 #include "hwconsts.h"
    36 #include "hwconsts.h"
    36 #include "SDLs.h"
    37 #include "SDLs.h"
    37 #include "gameuiconfig.h"
    38 #include "gameuiconfig.h"
    38 #include "chatwidget.h"
    39 #include "chatwidget.h"
   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();