смена пароля админа + иконка в 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

@@ -2,6 +2,12 @@ project(GUIdataBaseLMS LANGUAGES CXX)
common_info_for_project(GUIdataBaseLMS)
# Подключаем RC-файл (только для Windows)
if(WIN32)
# Предполагая, что файл app.rc расположен в корневом каталоге проекта
set(RC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/app.rc)
endif()
add_executable(GUIdataBaseLMS WIN32
main.cpp
mainwindow.cpp
@@ -10,6 +16,11 @@ mainwindow.ui
GUIdataBaseLMS.qrc
)
# Подключаем RC-файл к цели
if(RC_FILE)
target_sources(${PROJECT_NAME} PRIVATE ${RC_FILE})
endif()
target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Widgets)
target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Sql)
target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Xml)

View File

@@ -1,5 +1,6 @@
<RCC>
<qresource prefix="/">
<file>resources/lms.png</file>
<file>resources/IcoGUIRRJ.ico</file>
<file>resources/PngGUIRRJ.png</file>
</qresource>
</RCC>

1
GUIdataBaseLMS/app.rc Normal file
View File

@@ -0,0 +1 @@
IDI_APP_ICON ICON "resources\IcoGUIRRJ.ico"

View File

@@ -20,7 +20,7 @@
</property>
<property name="windowIcon">
<iconset resource="GUIdataBaseLMS.qrc">
<normaloff>:/resources/lms.png</normaloff>:/resources/lms.png</iconset>
<normaloff>:/resources/PngGUIRRJ.png</normaloff>:/resources/PngGUIRRJ.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonIconOnly</enum>

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

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>

View File

@@ -118,101 +118,101 @@
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="77"/>
<source>Host name</source>
<translation>Хост</translation>
<source>Local</source>
<translation>Локальная</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="97"/>
<source>Localhost</source>
<translation></translation>
<location filename="../settings/dialogsettingstray.ui" line="108"/>
<source>IP address</source>
<translation>IP адрес</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="121"/>
<location filename="../settings/dialogsettingstray.ui" line="132"/>
<source>Port</source>
<translation>Порт</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="145"/>
<location filename="../settings/dialogsettingstray.ui" line="156"/>
<source>Database name</source>
<translation>Имя базы данных</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="172"/>
<location filename="../settings/dialogsettingstray.ui" line="183"/>
<source>User name</source>
<translation>Имя пользователя</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="199"/>
<location filename="../settings/dialogsettingstray.ui" line="210"/>
<source>User password</source>
<translation>Пароль пользователя</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="245"/>
<source>Check</source>
<translation>Проверить</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="293"/>
<location filename="../settings/dialogsettingstray.ui" line="248"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="326"/>
<location filename="../settings/dialogsettingstray.ui" line="281"/>
<source>Additional</source>
<translation>Расширенные</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="340"/>
<location filename="../settings/dialogsettingstray.ui" line="295"/>
<source>Check DB</source>
<translation>Проверить БД</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.ui" line="334"/>
<source>Update Docs</source>
<translation>Обновить Docs</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="288"/>
<location filename="../settings/dialogsettingstray.cpp" line="338"/>
<location filename="../settings/dialogsettingstray.cpp" line="293"/>
<location filename="../settings/dialogsettingstray.cpp" line="343"/>
<location filename="../settings/dialogsettingstray.cpp" line="348"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="288"/>
<location filename="../settings/dialogsettingstray.cpp" line="293"/>
<source>Driver PostgreSQL is not installed!</source>
<translation>Драйвер PostgreSQL не установлен!</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="297"/>
<location filename="../settings/dialogsettingstray.cpp" line="302"/>
<source>Superuser PostgreSQL authorization</source>
<translation>Авторизация суперпользователя PostgreSQL</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="338"/>
<location filename="../settings/dialogsettingstray.cpp" line="343"/>
<location filename="../settings/dialogsettingstray.cpp" line="348"/>
<source>Error connecting to PostgreSQL!</source>
<translation>Ошибка соединения с PostgreSQL!</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="339"/>
<location filename="../settings/dialogsettingstray.cpp" line="344"/>
<location filename="../settings/dialogsettingstray.cpp" line="349"/>
<source>Possible reasons:</source>
<translation>Возможные причины:</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="340"/>
<location filename="../settings/dialogsettingstray.cpp" line="345"/>
<location filename="../settings/dialogsettingstray.cpp" line="350"/>
<source>*superuser PostgreSQL login or password is incorrect;</source>
<translation>*логин или пароль суперпользователя PostgreSQL некорректен;</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="341"/>
<location filename="../settings/dialogsettingstray.cpp" line="346"/>
<source>*Port is incorrect.</source>
<translation>*Порт некорректен.</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="346"/>
<location filename="../settings/dialogsettingstray.cpp" line="351"/>
<source>*Port is incorrect;</source>
<translation>*Порт некорректен;</translation>
</message>
<message>
<location filename="../settings/dialogsettingstray.cpp" line="347"/>
<location filename="../settings/dialogsettingstray.cpp" line="352"/>
<source>*file &apos;pg_hba.conf&apos; does not contain an entry for the IP address:</source>
<translation>*файл &apos;pg_hba.conf не содержит записи доступа для IP адреса:</translation>
</message>
@@ -220,136 +220,148 @@
<context>
<name>ServerLMSWidget</name>
<message>
<location filename="../serverlmswidget.ui" line="20"/>
<location filename="../serverlmswidget.ui" line="26"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="204"/>
<location filename="../serverlmswidget.ui" line="210"/>
<source>Logger</source>
<translation>Логгер</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="169"/>
<location filename="../serverlmswidget.ui" line="175"/>
<source>Clients</source>
<translation>Клиенты</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="142"/>
<location filename="../serverlmswidget.ui" line="148"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="257"/>
<location filename="../serverlmswidget.ui" line="263"/>
<source>Server: </source>
<translation>Сервер: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="315"/>
<location filename="../serverlmswidget.ui" line="321"/>
<source>Data base: </source>
<translation>База данных: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="276"/>
<location filename="../serverlmswidget.ui" line="328"/>
<location filename="../serverlmswidget.ui" line="365"/>
<location filename="../serverlmswidget.ui" line="282"/>
<location filename="../serverlmswidget.ui" line="334"/>
<location filename="../serverlmswidget.ui" line="371"/>
<source>...</source>
<translation></translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="352"/>
<location filename="../serverlmswidget.ui" line="358"/>
<source>Version of materials: </source>
<translation>Версия материалов: </translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="389"/>
<location filename="../serverlmswidget.ui" line="395"/>
<source>Authorization</source>
<translation>Авторизация</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="62"/>
<location filename="../serverlmswidget.ui" line="68"/>
<source>Start</source>
<translation>Запустить</translation>
</message>
<message>
<location filename="../serverlmswidget.ui" line="103"/>
<location filename="../serverlmswidget.ui" line="109"/>
<source>Stop</source>
<translation>Остановить</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="217"/>
<location filename="../serverlmswidget.cpp" line="223"/>
<source>Server is started!</source>
<translation>Сервер запущен!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="230"/>
<location filename="../serverlmswidget.cpp" line="236"/>
<source>Server is stoped!</source>
<translation>Сервер остановлен!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="269"/>
<location filename="../serverlmswidget.cpp" line="332"/>
<location filename="../serverlmswidget.cpp" line="275"/>
<location filename="../serverlmswidget.cpp" line="338"/>
<source>Warning!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="269"/>
<location filename="../serverlmswidget.cpp" line="275"/>
<source>Database settings have been changed.
The server will be restarted.</source>
<translation>Настройки Базы Данных были изменены.
Сервер будет перезапущен.</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="332"/>
<location filename="../serverlmswidget.cpp" line="338"/>
<source>The file could not be opened </source>
<translation>Файл не может быть открыт </translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="406"/>
<location filename="../serverlmswidget.cpp" line="410"/>
<location filename="../serverlmswidget.cpp" line="412"/>
<location filename="../serverlmswidget.cpp" line="416"/>
<source>Database connection error!</source>
<translation>Ошибка подключения Базы данных!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="240"/>
<location filename="../serverlmswidget.cpp" line="410"/>
<location filename="../serverlmswidget.cpp" line="246"/>
<location filename="../serverlmswidget.cpp" line="416"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="134"/>
<location filename="../serverlmswidget.cpp" line="139"/>
<source>Error PostgreSQL!</source>
<translation>Ошибка PostgreSQL!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="240"/>
<location filename="../serverlmswidget.cpp" line="246"/>
<source>Settings file could not be opened:</source>
<translation>Файл настроек не открыт:</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="427"/>
<location filename="../serverlmswidget.cpp" line="433"/>
<source>Database connection OK!</source>
<translation>База данных подключена!</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="441"/>
<location filename="../serverlmswidget.cpp" line="447"/>
<source>started</source>
<translation>запущен</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="446"/>
<location filename="../serverlmswidget.cpp" line="452"/>
<source>stoped</source>
<translation>остановлен</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="466"/>
<location filename="../serverlmswidget.cpp" line="472"/>
<source>connected</source>
<translation>подключена</translation>
</message>
<message>
<location filename="../serverlmswidget.cpp" line="475"/>
<location filename="../serverlmswidget.cpp" line="481"/>
<source>not connected</source>
<translation>не подключена</translation>
</message>
<message>
<location filename="../serverlmswidget.h" line="114"/>
<source>No Client files found!</source>
<translation>Файлы клиента не найдены!</translation>
</message>
<message>
<location filename="../serverlmswidget.h" line="115"/>
<source>* check Application for the presence of a folder with a build
* check SharedData for a folder with the base version and the name base</source>
<translation>* проверьте Application на наличие папки со сборкой
* проверьте SharedData на наличие папки с базовой версией и именем base</translation>
</message>
</context>
</TS>

View File

@@ -2,6 +2,12 @@ project(TrayServerLMS LANGUAGES CXX)
common_info_for_project(TrayServerLMS)
# Подключаем RC-файл (только для Windows)
if(WIN32)
# Предполагая, что файл app.rc расположен в корневом каталоге проекта
set(RC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/app.rc)
endif()
add_executable(TrayServerLMS WIN32
main.cpp
mainwindow.cpp
@@ -10,6 +16,11 @@ mainwindow.ui
TrayServerLMS.qrc
)
# Подключаем RC-файл к цели
if(RC_FILE)
target_sources(${PROJECT_NAME} PRIVATE ${RC_FILE})
endif()
target_link_libraries(TrayServerLMS PRIVATE Qt5::Widgets)
target_link_libraries(TrayServerLMS PRIVATE Qt5::Network)
target_link_libraries(TrayServerLMS PRIVATE Qt5::Sql)

View File

@@ -1,6 +1,6 @@
<RCC>
<qresource prefix="/">
<file>resources/PngServerRRJ.png</file>
<file>resources/IcoServerRRJ.ico</file>
<file>resources/database-management.png</file>
</qresource>
</RCC>

1
TrayServerLMS/app.rc Normal file
View File

@@ -0,0 +1 @@
IDI_APP_ICON ICON "resources\IcoServerRRJ.ico"

View File

@@ -21,7 +21,7 @@
</property>
<property name="windowIcon">
<iconset resource="TrayServerLMS.qrc">
<normaloff>:/resources/database-management.png</normaloff>:/resources/database-management.png</iconset>
<normaloff>:/resources/PngServerRRJ.png</normaloff>:/resources/PngServerRRJ.png</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout_2">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -9,47 +9,30 @@
<translation>Сервер Системы управления обучением (СУО)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<location filename="../mainwindow.cpp" line="230"/>
<location filename="../mainwindow.cpp" line="170"/>
<location filename="../mainwindow.cpp" line="218"/>
<source>Server LMS</source>
<translation>Сервер СУО</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="231"/>
<location filename="../mainwindow.cpp" line="219"/>
<source>Expand window</source>
<translation>Развернуть окно</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="232"/>
<location filename="../mainwindow.cpp" line="220"/>
<source>Minimize window</source>
<translation>Свернуть окно</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<location filename="../mainwindow.cpp" line="221"/>
<source>Exit</source>
<translation>Выход</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="68"/>
<location filename="../mainwindow.cpp" line="67"/>
<source>Starting the server...</source>
<translation>Запуск сервера...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="211"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="213"/>
<source>No Client files found!</source>
<translation>Файлы Клиента не найдены!</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="214"/>
<source>* check Application for the presence of a folder with a build
* check SharedData for a folder with the base version and the name base</source>
<translation>* проверьте Application на наличие папки со сборкой
* проверьте SharedData на наличие папки с базовой версией и именем base</translation>
</message>
</context>
</TS>