void Adresis::getInfoModule(Logic::TypeModule module ) { D_FUNCINFO; if(m_user.permissions()[Logic::administrador]) { switch(module) { case Logic::users: { ADSelectPackage select(QStringList()<< "aduser", QStringList() << "nameuser"<< "loginuser" ); m_connector->sendQuery(Logic::fillUserModule, select); break; } case Logic::spaces: { ADSelectPackage select(QStringList()<< "adspace", QStringList() << "codespace" <<"typespace" << "namespace" ); m_connector->sendQuery(Logic::fillSpaceModule, select); break; } case Logic::audiovisuals: { ADSelectPackage select(QStringList()<< "adaudiovisual", QStringList() << "typeAV"<<"numberinventoryAV"); m_connector->sendQuery(Logic::fillAudiovisualModule, select); break; } case Logic::reserves: { ADSelectPackage selectSpace(QStringList()<< "adspacereserve"<< "adspace", QStringList() <<"idreserve as id" <<"typereserve as type"<<"namespace as name"); selectSpace.setWhere( "adspacereserve.idresource = adspace.codespace and isactive=true"); m_connector->sendQuery(Logic::fillReserveModule, selectSpace); ADSelectPackage selectAV(QStringList()<< "adavreserve"<< "adaudiovisual", QStringList() <<"idreserve as id" << "typereserve as type"<<"typeav as name"); selectAV.setWhere( "adavreserve.idresource = adaudiovisual.numberinventoryav and isactive=true" ); m_connector->sendQuery(Logic::fillReserveModule, selectAV); } } } else { ADSelectPackage selectSpace(QStringList()<< "adspacereserve"<< "adspace", QStringList() <<"idreserve as id" <<"typereserve as type"<<"namespace as name"); selectSpace.setWhere( "adspacereserve.idresource = adspace.codespace and isactive=true"); m_connector->sendQuery(Logic::fillReserveModule, selectSpace); ADSelectPackage selectAV(QStringList()<< "adavreserve"<< "adaudiovisual", QStringList() <<"idreserve as id" << "typereserve as type"<<"typeav as name"); selectAV.setWhere( "adavreserve.idresource = adaudiovisual.numberinventoryav and isactive=true" ); m_connector->sendQuery(Logic::fillReserveModule, selectAV); } }
/** * Verarbeitet das Touch-Event. */ void handleTouchEvent() { // Prüfung, ob ein Tipp auf den Touchscreen erkannt und dieser noch nicht verarbeitet wurde if (touchEvent.isTap && touchEvent.startTime > lastTapTime) { // Es wurde auf den Touchscreen getippt. Es wird versucht, an der Stelle ein Feld zu // erzeugen. QCAR::Vec3F intersection; // Projektion der Koordinaten, auf die getippt wurde, auf die Ebene des getrackten // Objektes projectScreenPointToPlane(screenWidth, screenHeight, QCAR::Vec2F(touchEvent.tapPosition.data[0], touchEvent.tapPosition.data[1]), inverseProjectionMatrix, modelViewMatrix, QCAR::Vec3F(0, 0, 0), QCAR::Vec3F(0, 0, 1), intersection); // Prüfung, ob sich an den projezierten Koordinaten bereits ein Feld befindet Space* space = selectSpace(QCAR::Vec2F(intersection.data[0], intersection.data[1])); if (space != NULL) { // Feld gefunden // normales Feld in Sonderfeld umwandeln und umgekehrt if (space->type == SPACE) { space->type = SPECIAL_SPACE; } else if (space->type == SPECIAL_SPACE) { space->type = SPACE; } } else if (canCreateSpace(QCAR::Vec2F(intersection.data[0], intersection.data[1]))) { // kein Feld gefunden, es kann ein neues erstellt werden // Feld erzeugen createSpace(QCAR::Vec2F(intersection.data[0], intersection.data[1])); // Weiter-Button beim Erreichen einer bestimmten Anzahl von Feldern anzeigen if (field.length == SPACE_COUNT_TO_SHOW_NEXT_BUTTON) { showView("nextButton"); } // Neustart-Button beim Erreichen einer bestimmten Anzahl von Feldern anzeigen if (field.length == SPACE_COUNT_TO_SHOW_RESTART_BUTTON) { showView("restartButton"); } } // Zeit des Verarbeitung manipulieren, damit dieser Tipp nicht mehr verarbeitet wird lastTapTime = touchEvent.startTime; } else if (touchEvent.isActive) { // Der User hat den Finger immer noch auf dem Touchscreen. Wenn der Finger über den // Bildschrim gezogen wird, dann wird versucht auf diesem Zieh-Pfad nacheinander Felder // zu erzeugen. // Touch-Ereignis ignorieren, wenn daraus noch ein Tipp werden könnte if (touchEvent.lifeTime > MAX_TAP_TIME || touchEvent.startPositionLastPositionDistance > MAX_TAP_SQUARED_DISTANCE) { QCAR::Vec3F intersection; // Projektion der Koordinaten, auf denen sich der Finger befindet, auf die Ebene des // getrackten Objektes projectScreenPointToPlane( screenWidth, screenHeight, QCAR::Vec2F(touchEvent.currentPosition.data[0], touchEvent.currentPosition.data[1]), inverseProjectionMatrix, modelViewMatrix, QCAR::Vec3F(0, 0, 0), QCAR::Vec3F(0, 0, 1), intersection); // Prüfung, ob an den projezierten Koordinaten ein Feld erzeugt werden kann if (canCreateSpace(QCAR::Vec2F(intersection.data[0], intersection.data[1]))) { // Feld erzeugen createSpace(QCAR::Vec2F(intersection.data[0], intersection.data[1])); // Weiter-Button beim Erreichen einer bestimmten Anzahl von Feldern anzeigen if (field.length == SPACE_COUNT_TO_SHOW_NEXT_BUTTON) { showView("nextButton"); } // Neustart-Button beim Erreichen einer bestimmten Anzahl von Feldern anzeigen if (field.length == SPACE_COUNT_TO_SHOW_RESTART_BUTTON) { showView("restartButton"); } } } } }