смена пароля админа + иконка в exe

This commit is contained in:
2025-12-02 15:10:23 +03:00
parent 2e807112f0
commit 75ffb5ceca
19 changed files with 243 additions and 197 deletions

View File

@@ -54,9 +54,15 @@ void DialogEditInstructor::setInstructor(Instructor instructor)
ui->checkLoggedIn->setChecked(instructor.getLoggedIn());
if(instructor.getIsAdmin())
{
ui->editName->setEnabled(false);
ui->editLogin->setEnabled(false);
}
else
{
ui->editName->setEnabled(true);
ui->editLogin->setEnabled(true);
}
if(instructor.getNeedSetPassword())
{

View File

@@ -162,7 +162,7 @@ void EditorInstructors::on_btnEdit_clicked()
int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt();
if(connectorToServer->isLoggedInInstructor(id))
if(connectorToServer->isLoggedInInstructor(id) && !adminMode)
{//Инструктор залогирован!
SpecMsgBox::CriticalClose(this, tr("You cannot edit a logged-in instructor."));
return;
@@ -233,9 +233,24 @@ void EditorInstructors::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current
ui->btnToOrFromArchive->setIcon(QIcon(QStringLiteral(":/resources/icons/instructorArchive.png")));
}
ui->btnNewInstructor->setEnabled(true);
ui->btnNewInstructor->setEnabled(true);
if(connectorToServer->isAdminInstructor(id) || connectorToServer->isLoggedInInstructor(id))
if(connectorToServer->isAdminInstructor(id))
{//Это Админ! Удалять/Архивировать/Редактировать нельзя! (Только сменить пароль, если это он сам)
if(adminMode)
{
ui->btnDeleteInstructor->setEnabled(false);
ui->btnToOrFromArchive->setEnabled(false);
ui->btnEdit->setEnabled(true);
}
else
{
ui->btnDeleteInstructor->setEnabled(false);
ui->btnToOrFromArchive->setEnabled(false);
ui->btnEdit->setEnabled(false);
}
}
else if(connectorToServer->isLoggedInInstructor(id))
{//Это Админ или залогированный! Удалять/Архивировать/Редактировать нельзя!
ui->btnDeleteInstructor->setEnabled(false);
ui->btnToOrFromArchive->setEnabled(false);

View File

@@ -34,56 +34,56 @@
<translation>Удалить</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="129"/>
<location filename="../tasks/ammtaskswidget.cpp" line="130"/>
<source>actual</source>
<translation>актуально</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="135"/>
<location filename="../tasks/ammtaskswidget.cpp" line="136"/>
<source>update required</source>
<translation>требуется обновление</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="400"/>
<location filename="../tasks/ammtaskswidget.cpp" line="402"/>
<location filename="../tasks/ammtaskswidget.cpp" line="404"/>
<source>DM code</source>
<translation>DM код</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="400"/>
<location filename="../tasks/ammtaskswidget.cpp" line="402"/>
<location filename="../tasks/ammtaskswidget.cpp" line="404"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="400"/>
<location filename="../tasks/ammtaskswidget.cpp" line="402"/>
<location filename="../tasks/ammtaskswidget.cpp" line="404"/>
<source>Procedure AMM</source>
<translation>Процедура AMM</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="400"/>
<location filename="../tasks/ammtaskswidget.cpp" line="402"/>
<location filename="../tasks/ammtaskswidget.cpp" line="404"/>
<source>Canplay</source>
<translation>Режимы</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.ui" line="144"/>
<location filename="../tasks/ammtaskswidget.cpp" line="400"/>
<location filename="../tasks/ammtaskswidget.cpp" line="402"/>
<location filename="../tasks/ammtaskswidget.cpp" line="404"/>
<source>Status</source>
<translation>Статус</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="507"/>
<location filename="../tasks/ammtaskswidget.cpp" line="509"/>
<source>The deletion will be irrevocable.
Delete it anyway?</source>
<translation>Удаление будет безвозвратным.
Всё равно удалить?</translation>
</message>
<message>
<location filename="../tasks/ammtaskswidget.cpp" line="328"/>
<location filename="../tasks/ammtaskswidget.cpp" line="350"/>
<location filename="../tasks/ammtaskswidget.cpp" line="330"/>
<location filename="../tasks/ammtaskswidget.cpp" line="352"/>
<source>Assign this task?</source>
<translation>Назначить эту задачу?</translation>
</message>
@@ -141,33 +141,33 @@ Delete it anyway?</source>
<translation>Новая</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="145"/>
<location filename="../tasks/checkertask.cpp" line="146"/>
<source>viewed</source>
<translation>Просмотрено</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="86"/>
<location filename="../tasks/checkertask.cpp" line="147"/>
<location filename="../tasks/checkertask.cpp" line="87"/>
<location filename="../tasks/checkertask.cpp" line="148"/>
<source>completed</source>
<translation>выполнена</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="91"/>
<location filename="../tasks/checkertask.cpp" line="92"/>
<source>failed</source>
<translation>неверно</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="96"/>
<location filename="../tasks/checkertask.cpp" line="97"/>
<source>checkup</source>
<translation>на проверке</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="101"/>
<location filename="../tasks/checkertask.cpp" line="102"/>
<source>new</source>
<translation>новая</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="169"/>
<location filename="../tasks/checkertask.cpp" line="170"/>
<source>Change task status?
The status will be set:
&apos;failed&apos;</source>
@@ -176,7 +176,7 @@ The status will be set:
&apos;неверно&apos;</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="175"/>
<location filename="../tasks/checkertask.cpp" line="176"/>
<source>Change task status?
The status will be set:
&apos;new&apos;</source>
@@ -185,8 +185,8 @@ The status will be set:
&apos;новая&apos;</translation>
</message>
<message>
<location filename="../tasks/checkertask.cpp" line="196"/>
<location filename="../tasks/checkertask.cpp" line="202"/>
<location filename="../tasks/checkertask.cpp" line="197"/>
<location filename="../tasks/checkertask.cpp" line="203"/>
<source>Change task status?
The status will be set:
&apos;completed&apos;</source>
@@ -364,7 +364,7 @@ The status will be set:
<translation>Сохранить</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.cpp" line="151"/>
<location filename="../instructors/dialogeditinstructor.cpp" line="157"/>
<source>Only Latin letters and numbers</source>
<translation>Только латинские буквы и цифры</translation>
</message>
@@ -617,40 +617,40 @@ The status will be set:
<translation>Управление версиями</translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="90"/>
<location filename="../settings/dialogversioncontrol.cpp" line="91"/>
<source>Yes</source>
<translation>Да</translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="91"/>
<location filename="../settings/dialogversioncontrol.cpp" line="92"/>
<source>No</source>
<translation>Нет</translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="100"/>
<location filename="../settings/dialogversioncontrol.cpp" line="101"/>
<source>Version name: </source>
<translation>Имя версии: </translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="101"/>
<location filename="../settings/dialogversioncontrol.cpp" line="102"/>
<source>Created: </source>
<translation>Создан: </translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="102"/>
<location filename="../settings/dialogversioncontrol.cpp" line="103"/>
<source>Changeable: </source>
<translation>Изменен: </translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="103"/>
<location filename="../settings/dialogversioncontrol.cpp" line="104"/>
<source>Author: </source>
<translation>Автор: </translation>
</message>
<message>
<location filename="../settings/dialogversioncontrol.cpp" line="116"/>
<location filename="../settings/dialogversioncontrol.cpp" line="129"/>
<location filename="../settings/dialogversioncontrol.cpp" line="162"/>
<location filename="../settings/dialogversioncontrol.cpp" line="174"/>
<location filename="../settings/dialogversioncontrol.cpp" line="117"/>
<location filename="../settings/dialogversioncontrol.cpp" line="130"/>
<location filename="../settings/dialogversioncontrol.cpp" line="163"/>
<location filename="../settings/dialogversioncontrol.cpp" line="175"/>
<source>Version not selected</source>
<translation>Версия не выбрана</translation>
</message>
@@ -674,7 +674,7 @@ The status will be set:
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="127"/>
<location filename="../instructors/editorinstructors.cpp" line="224"/>
<location filename="../instructors/editorinstructors.cpp" line="232"/>
<source>To archive</source>
<translation>Архивировать</translation>
</message>
@@ -689,60 +689,60 @@ The status will be set:
<translation>Показать архив</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="77"/>
<location filename="../instructors/editorinstructors.cpp" line="85"/>
<source>You cannot delete the Administrator.</source>
<translation>Нельзя удалить администратора.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="83"/>
<location filename="../instructors/editorinstructors.cpp" line="91"/>
<source>You cannot delete a logged-in instructor.</source>
<translation>Вы не можете удалить инструктора, вошедшего в систему.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="87"/>
<location filename="../instructors/editorinstructors.cpp" line="95"/>
<source>The deletion will be irrevocable.
Delete it anyway?</source>
<translation>Удаление будет безвозвратным.
Всё равно удалить?</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="122"/>
<location filename="../instructors/editorinstructors.cpp" line="130"/>
<source>You cannot archive a logged-in instructor.</source>
<translation>Вы не можете заархивировать инструктора, вошедшего в систему.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="159"/>
<location filename="../instructors/editorinstructors.cpp" line="167"/>
<source>You cannot edit a logged-in instructor.</source>
<translation>Вы не можете редактировать инструктора, вошедшего в систему.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="219"/>
<location filename="../instructors/editorinstructors.cpp" line="227"/>
<source>From archive</source>
<translation>Разархивировать</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="265"/>
<location filename="../instructors/editorinstructors.cpp" line="288"/>
<source>Unacceptable instructor name has been entered.
The changes will not be accepted.</source>
<translation>Введено неприемлемое имя инструктора.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="271"/>
<location filename="../instructors/editorinstructors.cpp" line="294"/>
<source>Unacceptable instructor login has been entered.
The changes will not be accepted.</source>
<translation>Введен неприемлемый логин инструктора.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="277"/>
<location filename="../instructors/editorinstructors.cpp" line="300"/>
<source>Unacceptable instructor password has been entered.
The changes will not be accepted.</source>
<translation>Введен неприемлемый пароль инструктора.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="286"/>
<location filename="../instructors/editorinstructors.cpp" line="309"/>
<source>An existing instructor or trainee login has been entered.
The changes will not be accepted.</source>
<translation>Введен существующий логин инструктора или обучаемого.
@@ -778,8 +778,8 @@ The changes will not be accepted.</source>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="206"/>
<location filename="../trainees/editortrainees.cpp" line="326"/>
<location filename="../trainees/editortrainees.cpp" line="351"/>
<location filename="../trainees/editortrainees.cpp" line="346"/>
<location filename="../trainees/editortrainees.cpp" line="371"/>
<source>To archive</source>
<translation>Архивировать</translation>
</message>
@@ -794,76 +794,76 @@ The changes will not be accepted.</source>
<translation>Показать архив</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="76"/>
<location filename="../trainees/editortrainees.cpp" line="96"/>
<source>The group is not empty.
It is not possible to delete a non-empty group.</source>
<translation>Группа не пуста. Невозможно удалить непустую группу.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="81"/>
<location filename="../trainees/editortrainees.cpp" line="136"/>
<location filename="../trainees/editortrainees.cpp" line="101"/>
<location filename="../trainees/editortrainees.cpp" line="156"/>
<source>The deletion will be irrevocable.
Delete it anyway?</source>
<translation>Удаление будет безвозвратным.
Всё равно удалить?</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="132"/>
<location filename="../trainees/editortrainees.cpp" line="152"/>
<source>You cannot delete a logged-in trainee.</source>
<translation>Вы не можете удалить обучаемого, вошедшего в систему.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="171"/>
<location filename="../trainees/editortrainees.cpp" line="191"/>
<source>You cannot archive a logged-in trainee.</source>
<translation>Вы не можете заархивировать обучаемого, вошедшего в систему.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="217"/>
<location filename="../trainees/editortrainees.cpp" line="237"/>
<source>You cannot edit a logged-in trainee.</source>
<translation>Вы не можете редактировать обучаемого, вошедшего в систему.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="344"/>
<location filename="../trainees/editortrainees.cpp" line="364"/>
<source>From archive</source>
<translation>Разархивировать</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="386"/>
<location filename="../trainees/editortrainees.cpp" line="406"/>
<source>Unacceptable group name has been entered.
The changes will not be accepted.</source>
<translation>Введено неприемлемое название группы.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="396"/>
<location filename="../trainees/editortrainees.cpp" line="416"/>
<source>An existing group name has been entered.
The changes will not be accepted.</source>
<translation>Введено существующее название группы.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="410"/>
<location filename="../trainees/editortrainees.cpp" line="430"/>
<source>Unacceptable trainee name has been entered.
The changes will not be accepted.</source>
<translation>Введено неприемлемое имя обучаемого.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="416"/>
<location filename="../trainees/editortrainees.cpp" line="436"/>
<source>Unacceptable trainee login has been entered.
The changes will not be accepted.</source>
<translation>Введен неприемлемый логин обучаемого.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="422"/>
<location filename="../trainees/editortrainees.cpp" line="442"/>
<source>Unacceptable trainee password has been entered.
The changes will not be accepted.</source>
<translation>Был введен неприемлемый пароль обучаемого.
Изменения приняты не будут.</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="431"/>
<location filename="../trainees/editortrainees.cpp" line="451"/>
<source>An existing instructor or trainee login has been entered.
The changes will not be accepted.</source>
<translation>Введен существующий логин инструктора или обучаемого.
@@ -893,32 +893,32 @@ The changes will not be accepted.</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../tasks/fimtaskswidget.cpp" line="307"/>
<location filename="../tasks/fimtaskswidget.cpp" line="309"/>
<location filename="../tasks/fimtaskswidget.cpp" line="310"/>
<location filename="../tasks/fimtaskswidget.cpp" line="312"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../tasks/fimtaskswidget.cpp" line="307"/>
<location filename="../tasks/fimtaskswidget.cpp" line="309"/>
<location filename="../tasks/fimtaskswidget.cpp" line="310"/>
<location filename="../tasks/fimtaskswidget.cpp" line="312"/>
<source>Status</source>
<translation>Статус</translation>
</message>
<message>
<location filename="../tasks/fimtaskswidget.cpp" line="307"/>
<location filename="../tasks/fimtaskswidget.cpp" line="309"/>
<location filename="../tasks/fimtaskswidget.cpp" line="310"/>
<location filename="../tasks/fimtaskswidget.cpp" line="312"/>
<source>Procedure FIM</source>
<translation>Процедура FIM</translation>
</message>
<message>
<location filename="../tasks/fimtaskswidget.cpp" line="396"/>
<location filename="../tasks/fimtaskswidget.cpp" line="399"/>
<source>The deletion will be irrevocable.
Delete it anyway?</source>
<translation>Удаление будет безвозвратным.
Всё равно удалить?</translation>
</message>
<message>
<location filename="../tasks/fimtaskswidget.cpp" line="440"/>
<location filename="../tasks/fimtaskswidget.cpp" line="443"/>
<source>Assign this task?</source>
<translation>Назначить эту задачу?</translation>
</message>
@@ -1003,7 +1003,7 @@ Delete it anyway?</source>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="375"/>
<location filename="../instructorsandtraineeswidget.ui" line="467"/>
<location filename="../instructorsandtraineeswidget.cpp" line="594"/>
<location filename="../instructorsandtraineeswidget.cpp" line="605"/>
<source>none</source>
<translation>нет</translation>
</message>
@@ -1013,73 +1013,75 @@ Delete it anyway?</source>
<translation>Файл не может быть открыт </translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="288"/>
<location filename="../instructorsandtraineeswidget.cpp" line="320"/>
<location filename="../instructorsandtraineeswidget.cpp" line="289"/>
<location filename="../instructorsandtraineeswidget.cpp" line="321"/>
<source>Instructor authorization.</source>
<translation>Авторизация инструктора.</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="276"/>
<location filename="../instructorsandtraineeswidget.cpp" line="277"/>
<source>Instructor deauthorization</source>
<translation>Деавторизация инструктора</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="276"/>
<location filename="../instructorsandtraineeswidget.cpp" line="277"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="288"/>
<location filename="../instructorsandtraineeswidget.cpp" line="289"/>
<source>Server blocked!</source>
<translation>Сервер заблокирован!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="305"/>
<location filename="../instructorsandtraineeswidget.cpp" line="306"/>
<source>Database error!</source>
<translation>Ошибка базы данных!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="309"/>
<location filename="../instructorsandtraineeswidget.cpp" line="310"/>
<source>The user is archived!</source>
<translation>Пользователь является архивным!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="313"/>
<location filename="../instructorsandtraineeswidget.cpp" line="314"/>
<source>The user is already logged in!</source>
<translation>Пользователь уже в сети!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="317"/>
<location filename="../instructorsandtraineeswidget.cpp" line="318"/>
<source>Login or password error!</source>
<translation>Ошибка логина или пароля!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="409"/>
<location filename="../instructorsandtraineeswidget.cpp" line="419"/>
<source>The server is not available!</source>
<translation>Сервер недоступен!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="606"/>
<location filename="../instructorsandtraineeswidget.cpp" line="617"/>
<source>Connection attempt</source>
<translation>Попытка соединения</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="613"/>
<location filename="../instructorsandtraineeswidget.cpp" line="624"/>
<source>connected</source>
<translation>подключен</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="616"/>
<location filename="../instructorsandtraineeswidget.cpp" line="627"/>
<source>not connected</source>
<translation>не подключен</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="657"/>
<source>Server settings have been changed. Please reconnect to the server.</source>
<translation>Настройки сервера изменены. Выполните переподключение к серверу.</translation>
<location filename="../instructorsandtraineeswidget.cpp" line="668"/>
<source>Server settings have been changed.
Please reconnect to the server.</source>
<translation>Настройки сервера были изменены.
Пожалуйста, переподключитесь к серверу.</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="469"/>
<location filename="../instructorsandtraineeswidget.cpp" line="480"/>
<source>Instructor authorization</source>
<translation>Авторизация инструктора</translation>
</message>
@@ -1297,6 +1299,36 @@ Delete it anyway?</source>
<translation>Это имя уже существует</translation>
</message>
</context>
<context>
<name>SpecMsgBox</name>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="18"/>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="23"/>
<source>Attention!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="25"/>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="32"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="30"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="37"/>
<source>Information</source>
<translation>Информация</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="39"/>
<source>Ok</source>
<translation>Хорошо</translation>
</message>
</context>
<context>
<name>SpecialMessageBox</name>
<message>
@@ -1319,33 +1351,6 @@ Delete it anyway?</source>
<source>No</source>
<translation>Нет</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="16"/>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="21"/>
<source>Attention!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="23"/>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="30"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="28"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="35"/>
<source>Information</source>
<translation>Информация</translation>
</message>
<message>
<location filename="../specialmessagebox/specialmessagebox.cpp" line="37"/>
<source>Ok</source>
<translation>Хорошо</translation>
</message>
</context>
<context>
<name>SubProcItemWidget</name>