Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); closeid=0; this->setWindowFlags(Qt::WindowFullscreenButtonHint); //this->setWindowFlags(Qt::WindowCloseButtonHint); _serv = new server(this,this); encrypt=false; ctx= new BLOWFISH_CTX; slotInitPass(); connect(ui->btn_start,SIGNAL(clicked()),this,SLOT(runServer())); connect(ui->btn_send,SIGNAL(clicked()),this,SLOT(slotSendMessae())); connect(ui->tabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(closeTab(int))); connect(_serv,SIGNAL(newRoom(QString)),this,SLOT(addNewRoom(QString))); ui->ln_addr->setVisible(false); createMenuUserList(); #ifdef Q_OS_WIN32 tray = new QSystemTrayIcon(QIcon(":/icon/resource/icon/icon.ico"),this); // tray->setProperty("_sni_qt_category", "ApplicationStatus"); tray->show(); QMenu *Menu = new QMenu(this); QAction *showw = new QAction("Show", this); connect(showw, SIGNAL(triggered()), this, SLOT(showEvent())); QAction *quitAction = new QAction("Quit", this); connect(quitAction, SIGNAL(triggered()), this, SLOT(closeEvent2())); Menu->addAction(showw); Menu->addAction(quitAction); tray->setContextMenu(Menu); #endif }
bool SimpleDungeonMapGenerator::CreateRoom(Map* theMap,Vec2i location,Vec2i halfSize) { Vec2f aabbMin = Vec2f( (float)(location.x - halfSize.x), (float)(location.y - halfSize.y)); Vec2f aabbMax = Vec2f( (float)(location.x + halfSize.x), (float)(location.y + halfSize.y)); AABB2 newRoom(aabbMin,aabbMax); for(size_t index = 0; index < m_roomList.size(); index++) { Room currentRoom = m_roomList[index]; if(currentRoom.m_aabb.isOverlap(&newRoom))// && currentRoom.m_overlapTime > m_overlapLimit) return false; } m_roomList.push_back(Room(newRoom,0)); for(int x = location.x - halfSize.x; x < location.x + halfSize.x; x++) { for(int y = location.y - halfSize.y; y < location.y + halfSize.y; y++) { theMap->SetCellType(x,y,AIR); } } return true; }
void NewRoomWindow::onOk() { QString s = ui->lineEdit->text(); if(s.isEmpty() || s.length() > 16){ QString errmsg = tr("Your room name is empty or too long!"); QMessageBox::StandardButton reply; reply = QMessageBox::critical(this, tr("Error!"), errmsg, QMessageBox::Abort); if(reply == QMessageBox::Abort){ return; } } s = ui->plainTextEdit->toPlainText(); if(s.length()>40){ QString errmsg = tr("Your welcome message is too long!"); QMessageBox::StandardButton reply; reply = QMessageBox::critical(this, tr("Error!"), errmsg, QMessageBox::Abort); if(reply == QMessageBox::Abort){ return; } } int width = ui->width_input->text().toInt(); int height = ui->height_input->text().toInt(); if(width > 3240 || height > 2160){ QMessageBox::warning(this, tr("Large Canvas!"), tr("You set a large canvas size, " "which may have high load on " "low-memory computers.")); } QJsonObject sizeMap; sizeMap.insert("width", width); sizeMap.insert("height", height); QString pw; if(ui->checkBox->isChecked()){ pw = ui->lineEdit_2->text(); } QJsonObject map; map.insert("name", ui->lineEdit->text()); map.insert("welcomemsg", ui->plainTextEdit->toPlainText()); map.insert("maxload", ui->spinBox->value()); map.insert("password", pw); map.insert("emptyclose", ui->checkBox_2->isChecked()); map.insert("size", sizeMap); ui->progressBar->setValue(30); emit newRoom(map); }
Listening::Listening(MainWindow *mainWindow, Socket *socket, Book *book) { this->mainWindow = mainWindow; this->listenSocket = socket; this->book = book; this->udp = new NetworkUDP(); this->rfc = new RFC1664(); QString global_room_name(this->book->getRooms().at(0).getName().c_str()); this->mainWindow->getUi()->QTabWidget_onglets->setTabText(0, global_room_name); this->keepalive = NULL; QObject::connect(this, SIGNAL(statusBarChanged(QString)),this->mainWindow->getUi()->statusBar, SLOT(showMessage(QString))); QObject::connect(this, SIGNAL(newRoom(QString)),this, SLOT(createNewTab(QString))); }
void NewRoomWindow::onOk() { QString s = ui->lineEdit->text(); if(s.isEmpty() || s.length() > 16){ QString errmsg = tr("Your room name is empty or too long!"); QMessageBox::StandardButton reply; reply = QMessageBox::critical(this, tr("Error!"), errmsg, QMessageBox::Abort); if(reply == QMessageBox::Abort){ return; } } s = ui->plainTextEdit->toPlainText(); if(s.length()>40){ QString errmsg = tr("Your welcome message is too long!"); QMessageBox::StandardButton reply; reply = QMessageBox::critical(this, tr("Error!"), errmsg, QMessageBox::Abort); if(reply == QMessageBox::Abort){ return; } } QString pw; if(ui->checkBox->isChecked()){ pw = ui->lineEdit_2->text(); } QVariantMap map; map.insert("name", ui->lineEdit->text()); map.insert("welcomemsg", ui->plainTextEdit->toPlainText()); map.insert("maxload", ui->spinBox->value()); map.insert("password", pw); map.insert("emptyclose", ui->checkBox_2->isChecked()); // TODO: send to server qDebug()<<"client: request"<<map; ui->progressBar->setValue(30); emit newRoom(map); }
int VSReceiver::onGlobalRenderpolygonSiVarFs(const char *path, const char *types,lo_arg **argv, int argc, lo_message msg) { if(listener_ == nullptr || types[0] != 's' || types[1] != 'i'){ return 0; } else { // create Room object: const std::string roomName = &(argv[0]->s); const int nOfVerts = argv[1]->i; wonder::Room newRoom(roomName, nOfVerts); for (int i=0; i< nOfVerts; i++){ wonder::Room::Vertex vertx(argv[2 + i * 3]->f, argv[2 + i * 3 + 1]->f, argv[2 + i * 3 + 2]->f); newRoom.setVertex(i, vertx); } return listener_->onGlobalRenderpolygon(newRoom); } }
/** * @brief CalendarData::loadDataFromXmlFile * @param path * @return ci dopadlo vsetko okej * */ bool CrCalendar::readXmlFile(QString path) { bool result; bool state,convertResult; int uniqeId = 1; int counter = 1; int errCounter = 0; QFile file(path); result = file.open(QIODevice::ReadOnly | QIODevice::Text); if(!result){ emit signalErrorMsg("subor sa nepodarilo otvorit"); return false; } emit signalInfoMsg("otvoreny subor: "+path); QDomDocument mDocument; QDomElement rootElement; result = mDocument.setContent(file.readAll()); if(!result){ return false; } rootElement = mDocument.documentElement(); QDomNodeList eventList = rootElement.childNodes(); QList<CrEvent> listEvents; QList<CrEvent> listEventsAfterDeadline; QList<CrEvent> listWorkAction; emit signalInfoMsg("zaciatok nacitania dat z xml suboru"); for(int i = 0; i < eventList.count(); i++) { state = true; convertResult = true; QColor color; QColor colorCoach, colorRoom; /* * treba error handling - ak vrateny QString je prazdny, tak doslo ku chybe * pripadne, ak sa string neda skonvertovat na int */ QDomNode node = eventList.at(i); QString courseName = loadTagValue("kurz_nazov", &node); if(courseName.isEmpty()) { state = false; } QString courseIdStr = loadTagValue("kurz_id", &node); int courseId; if(courseIdStr.isEmpty()) { state = false; } else { courseId = courseIdStr.toInt(&convertResult); if(!convertResult) { state = false; } } QString durationDaysStr = loadTagValue("dni_trvanie", &node); int durationDays; if(durationDaysStr.isEmpty()) { state = false; } else { durationDays = durationDaysStr.toInt(&convertResult); if(!convertResult) { state = false; } } QString durationHoursStr = loadTagValue("hod_trvanie", &node); int durationHours; if(durationHoursStr.isEmpty()) { } else { durationHours = durationHoursStr.toInt(&convertResult); if(!convertResult) { state = false; } } QString eventTypeStr = loadTagValue("typ_skolenia", &node); if(eventTypeStr.isEmpty()) { state = false; } CrEvent::EventType eventType; if(eventTypeStr.compare("prac_aktivita",Qt::CaseInsensitive) == 0) { eventType = CrEvent::workAction; } else { eventType = CrEvent::Course; } QString dateBeginStr = loadTagValue("datum_zaciatok", &node); if(dateBeginStr.isEmpty()) { state = false; } QDate dateBegin = QDate::fromString(dateBeginStr, "yyyy-MM-ddT00:00:00"); //v pripade chyby vrati 1.1.1900 !!! if (dateBegin == QDate(1900,1,1)) { state = false; } QString roomName = loadTagValue("skoliaca_miestnost_nazov", &node); if(roomName.isEmpty() && eventType != CrEvent::workAction) { state = false; } QString roomIdStr = loadTagValue("skoliaca_miestnost_id", &node); int roomId; if(roomIdStr.isEmpty() && eventType != CrEvent::workAction) { state = false; } else { roomId = roomIdStr.toInt(&convertResult); if(!convertResult) { state = false; } } QString coachName = loadTagValue("skolitel_nazov", &node); if(coachName.isEmpty() && eventType != CrEvent::workAction) { state = false; } QString coachIdStr = loadTagValue("skolitel_id", &node); int coachId; if(coachIdStr.isEmpty() && eventType != CrEvent::workAction) { state = false; } else { coachId = coachIdStr.toInt(&convertResult); if(!convertResult) { state = false; } } QString activeDays = loadTagValue("aktiv_den", &node); if(activeDays.isEmpty()) { state = false; } QString rgbColorStr = loadTagValue("farba_skolenia", &node); if(rgbColorStr.isEmpty()) { emit signalErrorMsg("udalost zacinajuca v "+dateBeginStr+" nema farbu ! bude pouzita #000000."); } //v pripade chyby sa nacita defaultna farba = #000000 color.setNamedColor(rgbColorStr); QString department = loadTagValue("utvar_cislo", &node); if(department.isEmpty() && eventType != CrEvent::workAction) { state = false; } QString deadlineStr = loadTagValue("zamok_stav", &node); //bool afterDeadline = false; CalendarData::Deadline deadline = CalendarData::before; if(!deadlineStr.isEmpty()) { if(deadlineStr.compare("po_zamknuti",Qt::CaseInsensitive) == 0) { deadline = CalendarData::after; } } QString colorCoachStr = loadTagValue("farba_skolitela", &node); if(colorCoachStr.isEmpty()) { emit signalErrorMsg("udalost zacinajuca v "+dateBeginStr+" nema farbu skolitela ! bude pouzita #000000."); } //v pripade chyby sa nacita defaultna farba = #000000 colorCoach.setNamedColor(colorCoachStr); QString colorRoomStr = loadTagValue("farba_miestnosti", &node); if(colorRoomStr.isEmpty()) { emit signalErrorMsg("udalost zacinajuca v "+dateBeginStr+" nema farbu miestnosti ! bude pouzita #000000."); } //v pripade chyby sa nacita defaultna farba = #000000 colorRoom.setNamedColor(colorRoomStr); /* qDebug() << "courseName:" << courseName; qDebug() << "courseId:" << courseId; qDebug() << "durationDays:" << durationDays; qDebug() << "durationHours:" << durationHours; qDebug() << "dateBegin:" << dateBegin.toString("dd.MM.yyyy"); qDebug() << "roomName:" << roomName; qDebug() << "roomId:" << roomId; qDebug() << "coachName:" << coachName; qDebug() << "coachId:" << coachId; qDebug() << "--------"; */ //error msg if(!state) { QString msg; msg += "==chyba v zazname:<br>"; msg += "kurz_nazov= \""+courseName+"\"<br>"; msg += "kurz_id= \""+courseIdStr+"\"<br>"; msg += "utvar= \""+department+"\"<br>"; msg += "dni_trvanie= \""+durationDaysStr+"\"<br>"; msg += "hod_trvanie= \""+durationHoursStr+"\"<br>"; msg += "typ_skolenia= \""+eventTypeStr+"\"<br>"; msg += "datum_zaciatok= \""+dateBeginStr+"\"<br>"; msg += "skoliaca_miestnost_nazov= \""+roomName+"\"<br>"; msg += "skoliaca_miestnost_id= \""+roomIdStr+"\"<br>"; msg += "skolitel_nazov= \""+coachName+"\"<br>"; msg += "skolitel_id= \""+coachIdStr+"\"<br>"; msg += "aktiv_den= \""+activeDays+"\"<br>"; msg += "=> zaznam bude vynechany !!<br>"; msg += "----------------"; emit signalErrorMsg(msg); //skip this event errCounter++; continue; } counter++; /** * + active days */ QList<CrEvent> *list; if(eventType == CrEvent::workAction) { list = &listWorkAction; } else { if(deadline == CalendarData::after) { list = &listEventsAfterDeadline; } else { list = &listEvents; } } //add event to list list->append(CrEvent(courseName,courseId, dateBegin, durationDays, roomId, durationHours, color, department, uniqeId)); list->last().addActiveDay(activeDays); list->last().calculateDateEnd(); list->last().setEventType(eventType); if(eventType != CrEvent::workAction) { //room staffs if( _calendarData._trainingRooms.contains(roomId)) { _calendarData._trainingRooms.operator [](roomId).addDay(list->last().getEventDays()); } else { TrainingRoom newRoom(roomName, roomId, colorRoom); newRoom.addDay(list->last().getEventDays()); _calendarData._trainingRooms.insert(roomId, newRoom); } //coach staffs if( _calendarData._trainingCoach.contains(coachId)) { _calendarData._trainingCoach.operator [](coachId).addDay(list->last().getEventDays()); } else { TrainingRoom newCoach(coachName, coachId, colorCoach); newCoach.addDay(list->last().getEventDays()); _calendarData._trainingCoach.insert(coachId, newCoach); } } uniqeId++; } emit signalInfoMsg("koniec nacitania dat z xml suboru"); emit signalInfoMsg("nacitanych zaznamov: "+QString::number(counter)); emit signalInfoMsg("preskocenych zaznamov: "+QString::number(errCounter)); //create compressed list //sortList(list); //presunute do funkcie createCompresed... //sortList(listWorkAction); _calendarData._listOfEvents = CalendarData::createCompressedEventList(listEvents); _calendarData._listOfEventsAfterDeadline = CalendarData::createCompressedEventList(listEventsAfterDeadline); _calendarData.createCompressedWorkActivityList(listWorkAction); qDebug() << "list of work actions:"; _calendarData.printCompressedList(_calendarData._listOfWorkAction); return result; }
void Listening::run() { while(!end) { while (1) { cout << "Main() -> Attente d'un nouveau message" << endl; memset(this->message, 0, sizeof this->message); //vide le message SOCKADDR_IN addr_in; this->udp->receiveDatagrams(listenSocket->getSocket(), this->message, sizeof this->message, (SOCKADDR*)&addr_in, this->listenSocket->getAddrinfo()); cout << "Main() -> Message reçu : " << this->message << endl; cout << "Main() -> Type du message reçu : " << this->rfc->type(this->message) << endl; string testString(message); string champ1(rfc->fieldFromMesg(testString, 1, "§")); string champ2(rfc->fieldFromMesg(testString, 2, "§")); string champ3(rfc->fieldFromMesg(testString, 3, "§")); string champ4(rfc->fieldFromMesg(testString, 4, "§")); string champ5(rfc->fieldFromMesg(testString, 5, "§")); QString chaine1(champ1.c_str()); QString chaine2(champ2.c_str()); QString chaine3(champ3.c_str()); QString chaine4(champ4.c_str()); QString chaine5(champ5.c_str()); QString msg_com = ""; switch (rfc->type(message)) { case MSG_COM: cout << "Debug :" << champ2 << " a envoyé un message" << endl; msg_com = chaine2; msg_com += " - "; msg_com += chaine4; msg_com += "\n"; mainWindow->getUi()->textEdit->moveCursor(QTextCursor::End); mainWindow->getUi()->textEdit->insertPlainText(msg_com); break; case MSG_BOOK_LIST_RESP: cout << "Debug :j'ai reçu l'annuaire" << endl; this->book->addNewClient(chaine2.toStdString(), chaine3.toStdString(), chaine4.toStdString(), &addr_in); mainWindow->getUi()->listWidget->addItem(chaine2); break; case MSG_ACK: if(champ2 == MSG_ACK_CONNEXION_FAILED) { this->mainWindow->setConnected(false); emit statusBarChanged(QString("Connexion échouée")); } if(champ2 == MSG_ACK_CONNEXION_SUCCESS) { this->mainWindow->setConnected(true); this->mainWindow->getUi()->action_Cr_er_un_nouveau_salon->setEnabled(true); this->mainWindow->getUi()->action_Joindre_un_salon->setEnabled(true); this->mainWindow->getUi()->label_pseudo->setEnabled(true); this->mainWindow->getUi()->lineEdit->setEnabled(true); this->mainWindow->getUi()->pushButton->setEnabled(true); this->mainWindow->getUi()->action_Connexion_au_serveur->setEnabled(false); keepalive = new Signalisation(mainWindow->getUi()->label_pseudo->text().toStdString(), mainWindow->getSocket()); this->mainWindow->setSig(keepalive); keepalive->start(); emit statusBarChanged(QString("Connexion effectuée avec succès")); } if(champ2 == MSG_ACK_REMOVE_CLIENT_FAILED) { } if(champ2 == MSG_ACK_REMOVE_CLIENT_SUCCESS) { this->keepalive->stop(); emit statusBarChanged(QString("Déconnexion effectuée avec succès")); } if(champ2 == MSG_ACK_ADD_CLIENT_TO_ROOM_FAILED) { } if(champ2 == MSG_ACK_ADD_CLIENT_TO_ROOM_SUCCESS) { } if(champ2 == MSG_ACK_REMOVE_CLIENT_TO_ROOM_FAILED) { } if(champ2 == MSG_ACK_REMOVE_CLIENT_TO_ROOM_SUCCESS) { } if(champ2 == MSG_ACK_ROOM_CREATE_FAILED) { } if(champ2 == MSG_ACK_ROOM_CREATE_SUCCESS) { emit statusBarChanged(QString("Le salon a été créé avec succès")); emit newRoom(QString(champ2.c_str())); } if(champ2 == MSG_ACK_UNKNOWN_CLIENT) { emit statusBarChanged(QString("Vous n'etes pas connecté")); } break; default: break; } } } }