mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Переработан порядок передачи списков 0
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
|
||||
enum TypeQueryToDB{
|
||||
TYPE_QUERY_GET_ALL_LISTS,
|
||||
TYPE_QUERY_GET_ALL_INSTRUCTORS,
|
||||
TYPE_QUERY_GET_ALL_TRAINEES,
|
||||
TYPE_QUERY_GET_ALL_GROUPS,
|
||||
TYPE_QUERY_NEW_INSTRUCTOR,
|
||||
TYPE_QUERY_DEL_INSTRUCTOR,
|
||||
TYPE_QUERY_EDIT_INSTRUCTOR,
|
||||
|
||||
@@ -29,6 +29,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
|
||||
flTryConnectToServer(false),
|
||||
cntTryConnectToServer(0),
|
||||
flTryLogin(false),
|
||||
flTryReceiveFIM(false),
|
||||
flTryReceiveAMM(false),
|
||||
language(languageENG),
|
||||
versionStr("..."),
|
||||
ui(new Ui::InstructorsAndTraineesWidget)
|
||||
@@ -58,6 +60,10 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
|
||||
connect(connectorToServer, &ConnectorToServer::signal_AnswerDocsChanged,this, &InstructorsAndTraineesWidget::slot_AnswerDocsChanged);
|
||||
connect(connectorToServer, &ConnectorToServer::signal_ServerBlockState, this, &InstructorsAndTraineesWidget::slot_ServerBlockState);
|
||||
|
||||
|
||||
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, this, &InstructorsAndTraineesWidget::slot_UpdateTasksFIM);
|
||||
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, this, &InstructorsAndTraineesWidget::slot_UpdateTasksAMM);
|
||||
|
||||
messangerController = new MessangerController(connectorToServer, this);
|
||||
|
||||
viewerTrainees = new ViewerTrainees(connectorToServer, messangerController, this);
|
||||
@@ -244,13 +250,15 @@ void InstructorsAndTraineesWidget::slot_checkLoginResult(ServerAuthorization *se
|
||||
|
||||
messangerController->setUserLocalGUI_ID(serverAuth->Id.toInt());
|
||||
|
||||
/*
|
||||
connectorToServer->sendQueryTasksXML("fim");
|
||||
connectorToServer->sendQueryTasksXML("amm");
|
||||
*/
|
||||
|
||||
viewerTrainees->activate();
|
||||
viewerInstructors->activate();
|
||||
|
||||
waitAnimationWidget->hideWithStop();
|
||||
//waitAnimationWidget->hideWithStop();
|
||||
|
||||
flTryLogin = false;
|
||||
}
|
||||
@@ -258,6 +266,8 @@ void InstructorsAndTraineesWidget::slot_checkLoginResult(ServerAuthorization *se
|
||||
{
|
||||
//waitAnimationWidget->hideWithStop();
|
||||
//ui->btnAuthorizationInstructor->setChecked(false);
|
||||
flTryReceiveFIM = false;
|
||||
flTryReceiveAMM = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,6 +310,8 @@ void InstructorsAndTraineesWidget::slot_ServerBlocked()
|
||||
if(flTryLogin)
|
||||
{
|
||||
flTryLogin = false;
|
||||
flTryReceiveFIM = false;
|
||||
flTryReceiveAMM = false;
|
||||
waitAnimationWidget->hideWithStop();
|
||||
|
||||
ui->btnAuthorizationInstructor->setChecked(false);
|
||||
@@ -312,6 +324,8 @@ void InstructorsAndTraineesWidget::slot_ErrorAuth(QString error)
|
||||
if(flTryLogin)
|
||||
{
|
||||
flTryLogin = false;
|
||||
flTryReceiveFIM = false;
|
||||
flTryReceiveAMM = false;
|
||||
waitAnimationWidget->hideWithStop();
|
||||
|
||||
ui->btnAuthorizationInstructor->setChecked(false);
|
||||
@@ -441,6 +455,8 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
|
||||
updateLabelServer();
|
||||
|
||||
flTryLogin = false;
|
||||
flTryReceiveFIM = false;
|
||||
flTryReceiveAMM = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,6 +517,26 @@ void InstructorsAndTraineesWidget::slot_needShowWait(bool flNeed)
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
|
||||
void InstructorsAndTraineesWidget::slot_UpdateTasksAMM()
|
||||
{
|
||||
if(flTryReceiveAMM)
|
||||
{
|
||||
flTryReceiveAMM = false;
|
||||
if(!flTryReceiveAMM && !flTryReceiveFIM)
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
}
|
||||
|
||||
void InstructorsAndTraineesWidget::slot_UpdateTasksFIM()
|
||||
{
|
||||
if(flTryReceiveFIM)
|
||||
{
|
||||
flTryReceiveFIM = false;
|
||||
if(!flTryReceiveAMM && !flTryReceiveFIM)
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
}
|
||||
|
||||
bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent)
|
||||
{
|
||||
dlgAuthorization = new DialogAuthorization(parent);
|
||||
@@ -528,6 +564,8 @@ bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent
|
||||
waitAnimationWidget->showWithPlay();
|
||||
|
||||
flTryLogin = true;
|
||||
flTryReceiveFIM = true;
|
||||
flTryReceiveAMM = true;
|
||||
|
||||
connectorToServer->sendAuthorizationInstructorLocal(login, password);
|
||||
|
||||
|
||||
@@ -72,6 +72,9 @@ public Q_SLOTS:
|
||||
|
||||
void slot_needShowWait(bool flNeed);
|
||||
|
||||
void slot_UpdateTasksAMM();
|
||||
void slot_UpdateTasksFIM();
|
||||
|
||||
Q_SIGNALS:
|
||||
//сигнал смены языка
|
||||
void signal_LanguageChanged(QString language);
|
||||
@@ -118,6 +121,8 @@ private:
|
||||
int cntTryConnectToServer;
|
||||
|
||||
bool flTryLogin;
|
||||
bool flTryReceiveFIM;
|
||||
bool flTryReceiveAMM;
|
||||
|
||||
QTranslator qtLanguageTranslator;
|
||||
QString language;
|
||||
|
||||
@@ -36,7 +36,32 @@ void CommonClientHandler::sendCurrentVersionToAllClient()
|
||||
}
|
||||
}
|
||||
|
||||
void CommonClientHandler::slot_ListsInstructorsTraineesChanged()
|
||||
void CommonClientHandler::slot_ListsInstructorsTraineesChanged_forUserID(int id_user)
|
||||
{
|
||||
//Проходим все открытые сокеты
|
||||
foreach(int idSocket, clientsMap->keys())
|
||||
{
|
||||
ClientHandler *handler = clientsMap->value(idSocket);
|
||||
//Проверяем, есть ли клиенты TYPE_GUI с нужным ID
|
||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI &&
|
||||
handler->getClient()->getId() == QString::number(id_user))
|
||||
{//Отправляем этому клиенту обновление списков
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_ALL_LISTS;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
|
||||
/*
|
||||
if(handler->getClient()->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
|
||||
{
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_CONTACT_LIST;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
void CommonClientHandler::slot_ListInstructorsChanged()
|
||||
{
|
||||
//Проходим все открытые сокеты
|
||||
foreach(int idSocket, clientsMap->keys())
|
||||
@@ -46,7 +71,53 @@ void CommonClientHandler::slot_ListsInstructorsTraineesChanged()
|
||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
|
||||
{//Отправляем этому клиенту обновление списков
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_ALL_LISTS;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_ALL_INSTRUCTORS;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
|
||||
if(handler->getClient()->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
|
||||
{
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_CONTACT_LIST;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CommonClientHandler::slot_ListTraineesChanged()
|
||||
{
|
||||
//Проходим все открытые сокеты
|
||||
foreach(int idSocket, clientsMap->keys())
|
||||
{
|
||||
ClientHandler *handler = clientsMap->value(idSocket);
|
||||
//Проверяем, есть ли клиенты TYPE_GUI
|
||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
|
||||
{//Отправляем этому клиенту обновление списков
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_ALL_TRAINEES;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
|
||||
if(handler->getClient()->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
|
||||
{
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_CONTACT_LIST;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CommonClientHandler::slot_ListGroupsChanged()
|
||||
{
|
||||
//Проходим все открытые сокеты
|
||||
foreach(int idSocket, clientsMap->keys())
|
||||
{
|
||||
ClientHandler *handler = clientsMap->value(idSocket);
|
||||
//Проверяем, есть ли клиенты TYPE_GUI
|
||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
|
||||
{//Отправляем этому клиенту обновление списков
|
||||
ClientQueryToDB queryToDB;
|
||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_GET_ALL_GROUPS;
|
||||
processingSystem->processingClientQueryToDB(handler, queryToDB);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,10 @@ public:
|
||||
|
||||
void sendNewVersionListToAllClient();
|
||||
void sendCurrentVersionToAllClient();
|
||||
void slot_ListsInstructorsTraineesChanged();
|
||||
void slot_ListsInstructorsTraineesChanged_forUserID(int id_user);
|
||||
void slot_ListInstructorsChanged();
|
||||
void slot_ListTraineesChanged();
|
||||
void slot_ListGroupsChanged();
|
||||
void slot_StatusTasksAMMofTraineeChanged(int trainee_id);
|
||||
void slot_StatusTasksFIMofTraineeChanged(int trainee_id);
|
||||
|
||||
|
||||
@@ -27,7 +27,10 @@ void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataPar
|
||||
this->updateController = updateController;
|
||||
this->chatSystem = chatSystem;
|
||||
|
||||
connect(this,&ProcessingSystem::sigListsInstructorsTraineesChanged,commonClientHandler, &CommonClientHandler::slot_ListsInstructorsTraineesChanged,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigListsInstructorsTraineesChanged_forUserID,commonClientHandler, &CommonClientHandler::slot_ListsInstructorsTraineesChanged_forUserID,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigListInstructorsChanged,commonClientHandler, &CommonClientHandler::slot_ListInstructorsChanged,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigListTraineesChanged,commonClientHandler, &CommonClientHandler::slot_ListTraineesChanged,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigListGroupsChanged,commonClientHandler, &CommonClientHandler::slot_ListGroupsChanged,Qt::AutoConnection);
|
||||
|
||||
connect(this,&ProcessingSystem::sigStatusTasksAMMofTraineeChanged,commonClientHandler, &CommonClientHandler::slot_StatusTasksAMMofTraineeChanged,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigStatusTasksFIMofTraineeChanged,commonClientHandler, &CommonClientHandler::slot_StatusTasksFIMofTraineeChanged,Qt::AutoConnection);
|
||||
@@ -98,6 +101,18 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
||||
{
|
||||
client->sendVersion();
|
||||
|
||||
|
||||
if(clientAutorization.TypeClient == TypeClientAutorization::TYPE_GUI)
|
||||
{//Отправляем этому клиенту обновление ВСЕХ списков
|
||||
emit sigListsInstructorsTraineesChanged_forUserID(clientID);
|
||||
|
||||
ClientQueryTasksXML clientQueryTasksXML;
|
||||
clientQueryTasksXML.Type = "fim";
|
||||
processingClientQueryTasksXML(client, clientQueryTasksXML);
|
||||
clientQueryTasksXML.Type = "amm";
|
||||
processingClientQueryTasksXML(client, clientQueryTasksXML);
|
||||
}
|
||||
|
||||
//Отправляем состояние блокировки
|
||||
/*
|
||||
if(server->getStateBlockAutorization() == EStateBlockAutorization::blocked)
|
||||
@@ -110,7 +125,13 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
||||
//client->sendPacketType(PacketType::FREE);
|
||||
|
||||
//Извещаем об изменениях в авторизации
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
if(client->getClient()->getAccessType() == UserType::INSTRUCTOR)
|
||||
{
|
||||
//emit sigListGroupsChanged();
|
||||
emit sigListInstructorsChanged();
|
||||
}
|
||||
else if(client->getClient()->getAccessType() == UserType::TRAINEE)
|
||||
emit sigListTraineesChanged();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -169,7 +190,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
||||
client->sendXmlAnswer(arrayAnswer);
|
||||
|
||||
//Извещаем об изменениях в авторизации
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListTraineesChanged();
|
||||
}
|
||||
else if(providerDBLMS->deAuthorizationInstructor(clientDeAutorization.Login))
|
||||
{//ДеАвторизуется инструктор
|
||||
@@ -187,7 +208,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
||||
providerDBLMS->signal_BlockAutorization(false, fullName, "DeAuthorizationInstructor");
|
||||
|
||||
//Извещаем об изменениях в авторизации
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListInstructorsChanged();
|
||||
}
|
||||
else
|
||||
{//Никто не ДеАвторизовался
|
||||
@@ -311,6 +332,43 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
||||
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_GET_ALL_INSTRUCTORS:
|
||||
{
|
||||
QList<Instructor> listInstructors = providerDBLMS->GetListAllInstructors();
|
||||
|
||||
QByteArray arrayAnswer;
|
||||
|
||||
arrayAnswer = dataParser->DbAnswer()->listInstructors(true, &listInstructors);
|
||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS);
|
||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS);
|
||||
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_GET_ALL_TRAINEES:
|
||||
{
|
||||
QList<Trainee> listTrainees = providerDBLMS->GetListAllTrainees();
|
||||
|
||||
QByteArray arrayAnswer;
|
||||
|
||||
arrayAnswer = dataParser->DbAnswer()->listTrainees(true, &listTrainees);
|
||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_TRAINEES);
|
||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_TRAINEES);
|
||||
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_GET_ALL_GROUPS:
|
||||
{
|
||||
QList<Group> listGroups = providerDBLMS->GetListAllGroups();
|
||||
|
||||
QByteArray arrayAnswer;
|
||||
|
||||
arrayAnswer = dataParser->DbAnswer()->listGroups(true, &listGroups);
|
||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_GROUPS);
|
||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_GROUPS);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case TypeQueryToDB::TYPE_QUERY_NEW_INSTRUCTOR:
|
||||
{
|
||||
int id_new;
|
||||
@@ -320,19 +378,19 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
||||
(*(Instructor*)data).setID(id_new);
|
||||
providerDBLMS->editInstructor(*(Instructor*)data);
|
||||
}
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListInstructorsChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_DEL_INSTRUCTOR:
|
||||
{
|
||||
providerDBLMS->delInstructor(id);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListInstructorsChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_EDIT_INSTRUCTOR:
|
||||
{
|
||||
providerDBLMS->editInstructor(*(Instructor*)data);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListInstructorsChanged();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -345,19 +403,19 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
||||
(*(Trainee*)data).setID(id_new);
|
||||
providerDBLMS->editTrainee(*(Trainee*)data);
|
||||
}
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListTraineesChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_DEL_TRAINEE:
|
||||
{
|
||||
providerDBLMS->delTrainee(id);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListTraineesChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_EDIT_TRAINEE:
|
||||
{
|
||||
providerDBLMS->editTrainee(*(Trainee*)data);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListTraineesChanged();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -370,19 +428,19 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
||||
(*(Group*)data).setID(id_new);
|
||||
providerDBLMS->editGroup(*(Group*)data);
|
||||
}
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListGroupsChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_DEL_GROUP:
|
||||
{
|
||||
providerDBLMS->delGroup(id);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListGroupsChanged();
|
||||
break;
|
||||
}
|
||||
case TypeQueryToDB::TYPE_QUERY_EDIT_GROUP:
|
||||
{
|
||||
providerDBLMS->editGroup(*(Group*)data);
|
||||
emit sigListsInstructorsTraineesChanged();
|
||||
emit sigListGroupsChanged();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,10 @@ public:
|
||||
void processingExitUnityClient(ClientHandler *client);
|
||||
signals:
|
||||
void sigUpdateListClients();
|
||||
void sigListsInstructorsTraineesChanged();
|
||||
void sigListsInstructorsTraineesChanged_forUserID(int id_user);
|
||||
void sigListInstructorsChanged();
|
||||
void sigListTraineesChanged();
|
||||
void sigListGroupsChanged();
|
||||
void sigStatusTasksAMMofTraineeChanged(int trainee_id);
|
||||
void sigStatusTasksFIMofTraineeChanged(int trainee_id);
|
||||
void sigAddToMessanger(QString login,QString text);
|
||||
|
||||
@@ -34,56 +34,56 @@
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="151"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="157"/>
|
||||
<source>actual</source>
|
||||
<translation>актуально</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="157"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="163"/>
|
||||
<source>update required</source>
|
||||
<translation>требуется обновление</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="431"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="433"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="437"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="439"/>
|
||||
<source>DM code</source>
|
||||
<translation>DM код</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="431"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="433"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="437"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="439"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="431"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="433"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="437"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="439"/>
|
||||
<source>Procedure AMM</source>
|
||||
<translation>Процедура AMM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="431"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="433"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="437"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="439"/>
|
||||
<source>Canplay</source>
|
||||
<translation>Режимы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.ui" line="144"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="431"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="433"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="437"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="439"/>
|
||||
<source>Status</source>
|
||||
<translation>Статус</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="538"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="544"/>
|
||||
<source>The deletion will be irrevocable.
|
||||
Delete it anyway?</source>
|
||||
<translation>Удаление будет безвозвратным.
|
||||
Всё равно удалить?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="359"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="381"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="365"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp" line="387"/>
|
||||
<source>Assign this task?</source>
|
||||
<translation>Назначить эту задачу?</translation>
|
||||
</message>
|
||||
@@ -238,67 +238,67 @@ The status will be set:
|
||||
<context>
|
||||
<name>CommonView</name>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="117"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="122"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="126"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="131"/>
|
||||
<source>Login</source>
|
||||
<translation>Логин</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="118"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="123"/>
|
||||
<source>Password</source>
|
||||
<translation>Пароль</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="119"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="124"/>
|
||||
<source>Class</source>
|
||||
<translation>Класс</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="120"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="125"/>
|
||||
<source>Computer</source>
|
||||
<translation>Компьютер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="121"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="126"/>
|
||||
<source>IP address</source>
|
||||
<translation>IP адрес</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="122"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="127"/>
|
||||
<source>Administrator</source>
|
||||
<translation>Администратор</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="123"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="128"/>
|
||||
<source>Archived</source>
|
||||
<translation>Архивный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="124"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="129"/>
|
||||
<source>Tasks AMM</source>
|
||||
<translation>Задачи AMM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="125"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="130"/>
|
||||
<source>Tasks FIM</source>
|
||||
<translation>Задачи FIM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="128"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="133"/>
|
||||
<source>Online</source>
|
||||
<translation>В сети</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="129"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="134"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="127"/>
|
||||
<location filename="../LibInstructorsAndTrainees/commonview.cpp" line="132"/>
|
||||
<source>Messages</source>
|
||||
<translation>Сообщения</translation>
|
||||
</message>
|
||||
@@ -804,47 +804,47 @@ Please try again later.</source>
|
||||
<translation>Обновить Docs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="295"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="303"/>
|
||||
<source>Driver PostgreSQL is not installed!</source>
|
||||
<translation>Драйвер PostgreSQL не установлен!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="305"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="313"/>
|
||||
<source>Superuser PostgreSQL authorization</source>
|
||||
<translation>Авторизация суперпользователя PostgreSQL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="348"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="355"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="356"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="363"/>
|
||||
<source>Error connecting to PostgreSQL!</source>
|
||||
<translation>Ошибка соединения с PostgreSQL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="349"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="356"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="357"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="364"/>
|
||||
<source>Possible reasons:</source>
|
||||
<translation>Возможные причины:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="350"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="357"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="358"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="365"/>
|
||||
<source>superuser PostgreSQL login or password is incorrect;</source>
|
||||
<translation>неверный логин или пароль суперпользователя PostgreSQL;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="351"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="358"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="359"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="366"/>
|
||||
<source>port is incorrect;</source>
|
||||
<translation>порт некорректен;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="352"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="360"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="368"/>
|
||||
<source>PostgreSQL is not installed.</source>
|
||||
<translation>PostgreSQL не установлен.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="359"/>
|
||||
<location filename="../LibServer/settings/dialogsettingstray.cpp" line="367"/>
|
||||
<source>file 'pg_hba.conf' does not contain an entry for the IP address:</source>
|
||||
<translation>файл 'pg_hba.conf' не содержит запись для IP-адреса:</translation>
|
||||
</message>
|
||||
@@ -1188,38 +1188,38 @@ The changes will not be accepted.</source>
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="313"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="315"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="318"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="320"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="313"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="315"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="318"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="320"/>
|
||||
<source>Status</source>
|
||||
<translation>Статус</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="313"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="315"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="318"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="320"/>
|
||||
<source>Procedure FIM</source>
|
||||
<translation>Процедура FIM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="313"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="315"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="318"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="320"/>
|
||||
<source>Device</source>
|
||||
<translation>Устройство</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="404"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="409"/>
|
||||
<source>The deletion will be irrevocable.
|
||||
Delete it anyway?</source>
|
||||
<translation>Удаление будет безвозвратным.
|
||||
Всё равно удалить?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="448"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp" line="453"/>
|
||||
<source>Assign this task?</source>
|
||||
<translation>Назначить эту задачу?</translation>
|
||||
</message>
|
||||
@@ -1431,7 +1431,7 @@ Please reconnect to the server.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.ui" line="31"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="126"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="131"/>
|
||||
<source>DM code</source>
|
||||
<translation>DM код</translation>
|
||||
</message>
|
||||
@@ -1446,12 +1446,12 @@ Please reconnect to the server.</source>
|
||||
<translation>Назначить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="126"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="131"/>
|
||||
<source>Subprocedure</source>
|
||||
<translation>Подпроцедура</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="126"/>
|
||||
<location filename="../LibInstructorsAndTrainees/tasks/listsubproc.cpp" line="131"/>
|
||||
<source>Canplay</source>
|
||||
<translation>Режимы</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user