Exemplo n.º 1
0
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;
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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)));
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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);
    }
}
Exemplo n.º 7
0
/**
 * @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;

}
Exemplo n.º 8
0
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;


            }
    }
}
}