// This function gets called whenever the chat server has sent us some text: void MainWindow::readyRead() { // We'll loop over every (complete) line of text that the server has sent us: while(socket->canReadLine()) { // Here's the line the of text the server sent us (we use UTF-8 so // that non-English speakers can chat in their native language) QString line = QString::fromUtf8(socket->readLine()).trimmed(); // These two regular expressions describe the kinds of messages // the server can send us: // Normal messges look like this: "username:The message" QRegExp messageRegex("^([^:]+):(.*)$"); // Any message that starts with "/users:" is the server sending us a // list of users so we can show that list in our GUI: QRegExp usersRegex("^/users:(.*)$"); // Is this a users message: if(usersRegex.indexIn(line) != -1) { // If so, udpate our users list on the right: QStringList users = usersRegex.cap(1).split(","); userListWidget->clear(); foreach(QString user, users) { new QListWidgetItem(QPixmap(":/user.png"), user, userListWidget); userListWidget->sortItems(Qt::AscendingOrder); } }
void Client::readyRead() { while(socket->canReadLine()) { QString line = QString::fromUtf8(socket->readLine()).trimmed(); QRegExp usersRegex("^/usernames:(.*)$"); QRegExp commandRegex("^/command:(.*)$"); if(usersRegex.indexIn(line) != -1) ///az auth rész { players = usersRegex.cap(1).split(","); emit refreshPlayers(); } else if(commandRegex.indexIn(line) != -1) ///command jön a servertõl { uchar id,type; int msg; QStringList command = commandRegex.cap(1).split(' '); id=(uchar)command.at(0).toInt(); type=(uchar)command.at(1).toInt(); msg=command.at(2).toInt(); emit CommandReceivedFromServer(Command(id,type,msg)); } else ///egyéb hülyeség jön a servertõl { qDebug() << "hülyeség jött"; } } }
// Called when the chat server sends the client some text void MainWindow::readyRead() { while(socket->canReadLine()) { // TODO Handle Error QString line = QString::fromUtf8(socket->readLine()).trimmed(); // Regex to describe normal messages // "username:message" QRegExp messageRegex("^([^:]+):(.*)$"); // Regex to describe a user for the user list // Starts with "/users:" QRegExp usersRegex("^/users:(.*)$"); if(usersRegex.indexIn(line) != -1) { // Update the users list QStringList users = usersRegex.cap(1).split(","); userListWidget->clear(); foreach(QString user, users) new QListWidgetItem(QPixmap(":/user.png"), user, userListWidget); } else if(messageRegex.indexIn(line) != -1) { // Append the message to the chatbox QString user = messageRegex.cap(1); QString message = messageRegex.cap(2); roomTextEdit->append("<b>" + user + "</b>: " + message); } } }
void MainWindow::readyRead(){ while(socket->canReadLine()) { QString line = QString::fromUtf8(socket->readLine()).trimmed(); QRegExp usersRegex("^/users:(.*)$"); QRegExp idRegex("^/i:(.*)$"); QRegExp deplacementRegex("^/p:(.*)$"); QRegExp bombeRegex("^/bom:(.*)$"); QRegExp declenchementRegex("^/t:(.*)$"); QRegExp addBonusRegex("^/abon:(.*)$"); QRegExp removeBonusRegex("^/rbon:(.*)$"); QRegExp killsRegex("^/k:(.*)$"); QRegExp erreurRegex("^/erreur:(.*)$"); if(idRegex.indexIn(line) != -1){ QStringList mots = idRegex.cap(1).split(" "); chargerNiveau(mots[2]); personnages.resize(mots[1].toInt()); // mots[1] étant le nbre max de joueurs id = mots[0].toInt(); QPair<int,int> pair; //Cherche une entrée sur la map if(entrer.size() > id){ pair = entrer.at(id); ajouterPersonnage(id,pair.second,pair.first); } else ajouterPersonnage(id,4,2); //Entrée par default } // Nouveau Joueur else if(usersRegex.indexIn(line) != -1) { QStringList users = usersRegex.cap(1).split(","); foreach(QString user, users){ QStringList J = user.split(" "); bool present = false; /* * J[0] id joueur */ foreach(Joueur *j ,personnages){ if(j != NULL && j->getId() == J[0].toInt()) present = true; } if(!present) ajouterPersonnage(J[0].toInt(),5,3); } }
void MainWindow::readyRead() { // We'll loop over every (complete) line of text that the server has sent us: while(socket->canReadLine()) { // Here's the line the of text the server sent us (we use UTF-8 so // that non-English speakers can chat in their native language) QString line = QString::fromUtf8(socket->readLine()).trimmed(); QObject* textedit = Root->findChild<QObject*>("textedit1"); QString text =textedit->property("text").toString(); QRegExp messageRegex("^([^:]+):(.*)$"); QRegExp usersRegex("^/users:(.*)$"); QObject* textinput = Root->findChild<QObject*>("textinput2"); QString str; str=(textinput->property("text")).toString(); // Is this a users message: QString smileok= QString("=)"); QString smilesad= QString("=("); if(usersRegex.indexIn(line) != -1) { } // Is this a normal chat message: else if(messageRegex.indexIn(line) != -1) { if (line.contains(smileok)) { int k = line.indexOf(smileok); line.replace(k,2,"<img src=\":/crazy.gif\"/>"); } if (line.contains(smilesad)) { int k = line.indexOf(smilesad); line.replace(k,2,"<img src=\":/beee.gif\"/>"); } text=text+"\n"+line; textedit->setProperty("text",text); } } }
void MainWindow::readyRead(){ while(socket->canReadLine()){ //sa ovim Utf8 moze da se koriste i nasa slova QString line = QString::fromUtf8(socket->readLine()).trimmed(); //normalne poruke sa servera su "korisnickoime: poruka..." QRegExp messageRegex("^([^:]+):(.*)$"); //poruke servera "/users:..." salju nam korisnike , koje stavljamo u listu QRegExp usersRegex("^/users:(.*)$"); QRegExp usersRegex2("^/users:(.*)$"); if(usersRegex.indexIn(line) != -1) // -1 ako ne nadje { QStringList users = usersRegex.cap(1).split(","); (ui->listWidget)->clear(); //brisem sve korisnike iz liste , zbog update /* int c = ui->listWidget->count(); for(int row = 0; row < c; row++) { delete ui->listWidget->takeItem(0); qDebug() << "count after iteration" << row << "is " << listWidget->count(); } */ foreach(QString user, users) new QListWidgetItem(user, ui->listWidget); //QPixmap(":/user.png"), kao prvi argument za ikonice korisnika } else if(messageRegex.indexIn(line) != -1) { QString user = messageRegex.cap(1); QString message = messageRegex.cap(2); ui->textEdit->append("<b>" + user + "</b>: " + message); } } }