before task parser

This commit is contained in:
krivoshein
2024-11-25 15:25:55 +03:00
parent 2ed1eac956
commit 7637922872
401 changed files with 39759 additions and 1630 deletions

Binary file not shown.

View File

@@ -1,84 +1,157 @@
# ninja log v5
13 48 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
13 48 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
1259 1589 7531967299846854 libInstructorsAndTrainees.dll cd38f6c1daa989e3
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
340 1451 7531891592368819 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e
13 48 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
13 48 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
1259 1589 7531967299846854 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
13 48 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
13 48 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
370 2084 7531889428326638 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
938 2940 7531867532885084 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 544a146272360182
51 1215 7531967296138667 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1
13 48 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
47 1327 7531963604681452 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
13 48 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
1441 1785 7542296074365226 libInstructorsAndTrainees.dll cd38f6c1daa989e3
17 55 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
99 1744 7542228778869859 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
89 1816 7542228779531400 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b
1012 3479 7520793522676004 CMakeFiles/InstructorsAndTrainees.dir/instructorsAndTrainees.cpp.obj ff3fcdc370580ca2
973 1182 7531867515312420 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 54d07c59b3f7a2cf
961 2858 7531867532057401 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj f1f85077e88e8c7
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
930 2864 7531867532107266 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 3bdbb777b1ca4f9f
13 48 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
935 2871 7531867532186950 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj 4bd8bab8b1110ba7
13 48 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
372 1824 7531894999707827 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
377 1605 7531894997516144 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b
13 36 0 CMakeFiles/clean.additional 7155004b3956b606
50 1294 7531963604356798 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8
879 926 7531867512750692 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
379 1604 7531894997494205 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b
957 2932 7531867532805295 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj e02fcfe10480c54f
36 45 0 clean 9c4b4372737ab8da
13 253 7531890272071193 build.ninja 76aa11f472515be0
48 1258 7531967296567511 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881
941 2002 7531867523395468 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 7aaac6302b47a301
13 48 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
13 48 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
13 48 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
13 48 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
879 926 7531867512750692 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
18 51 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 51 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 51 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
72 1496 7532064782900759 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 187ec526627f696e
63 1588 7532064783819090 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 2aa58696f5232c4b
58 1603 7532064783969569 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b
66 1703 7532064784979828 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8
61 1727 7532064785210452 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881
69 1784 7532064785778944 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1
54 1830 7532064786249528 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
56 1842 7532064786369203 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173
51 1888 7532064786840646 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
1888 2228 7532064790207416 libInstructorsAndTrainees.dll cd38f6c1daa989e3
1888 2228 7532064790207416 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
946 1175 7538984294876218 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 54d07c59b3f7a2cf
912 2938 7538984312513836 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 544a146272360182
79 1720 7542228778631666 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 3bdbb777b1ca4f9f
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
81 1925 7542228780671452 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 2e9a885629b6e173
17 55 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
96 1787 7542228779301133 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d1fea9a96fa095b1
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
934 2858 7538984311680650 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj f1f85077e88e8c7
853 899 7538984292135969 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
92 1969 7542228781131073 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj b8e3d2e3a65912a8
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
853 899 7538984292135969 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
15 39 0 CMakeFiles/clean.additional 7155004b3956b606
84 1829 7542228779720009 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 99b246ecbf2b6f9b
931 2946 7538984312596574 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj e02fcfe10480c54f
39 49 0 clean 9c4b4372737ab8da
17 55 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
350 1721 7542294613242973 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
909 2877 7538984311906395 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj 4bd8bab8b1110ba7
56 1441 7542296070953843 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
17 55 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
915 1958 7538984302730092 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 7aaac6302b47a301
86 1672 7542228778131275 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj a6ea1bfa14213881
13 238 7542179980182826 build.ninja 76aa11f472515be0
1441 1785 7542296074365226 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
17 55 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
17 55 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
17 55 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
18 360 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 360 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 360 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
361 1770 7542311570035956 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
364 1797 7542311570307587 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
1797 2167 7542311573994272 libInstructorsAndTrainees.dll cd38f6c1daa989e3
1797 2167 7542311573994272 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
18 350 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 350 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 350 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
350 1716 7542315176774947 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
353 1797 7542315177582824 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
1797 2143 7542315181010505 libInstructorsAndTrainees.dll cd38f6c1daa989e3
1797 2143 7542315181010505 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
18 359 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 359 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
18 359 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
360 1753 7542366833691044 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj 639ec716a2902c9f
362 1818 7542366834343736 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 8e8beb29ba6ba100
1818 2166 7542366837794215 libInstructorsAndTrainees.dll cd38f6c1daa989e3
1818 2166 7542366837794215 libInstructorsAndTrainees.dll.a cd38f6c1daa989e3
17 49 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
17 49 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
17 49 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77

View File

@@ -11,6 +11,7 @@
"D:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/instructors.xml",
"D:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/groupsTrainees.xml",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorArchive.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/login-user.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/newGroup.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/traineeFromArchive.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteGroup.png",
@@ -29,6 +30,7 @@
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-instructors.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/edit.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructor.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/connectDB.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteInstructor.png",
"D:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-trainees.png"
],

View File

@@ -1 +1 @@
rcc:dfa86f2f94529b76e2e7a6864a3462d5073d6c64745b566d86cfa7ec82b46f30
rcc:9871ac8b163da5e3d028c19ac0bfaed1c08caf687619231e1a9ada3450949a0f

View File

@@ -1,4 +1,31 @@
# Generated by CMake. Changes will be overwritten.
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp
uic:ui_editortrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp
uic:ui_viewertrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp
uic:ui_viewerinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.cpp
uic:ui_dialogedittrainee.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp
uic:ui_dialogeditinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp
uic:ui_editorinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp
uic:ui_taskswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.h
mmc:Q_OBJECT
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.h
mmc:Q_OBJECT
uic:ui_dialogeditinstructor.h
@@ -6,15 +33,15 @@ D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
uic:ui_instructorsandtraineeswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h
mmc:Q_OBJECT
uic:ui_dialogeditgroup.h
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.cpp
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h
mmc:Q_OBJECT
uic:ui_dialogeditgroup.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsAndTrainees_global.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h
mmc:Q_OBJECT
@@ -26,30 +53,3 @@ D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.h
mmc:Q_OBJECT
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp
uic:ui_taskswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp
uic:ui_editorinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp
uic:ui_dialogeditinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.cpp
uic:ui_dialogedittrainee.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp
uic:ui_viewerinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp
uic:ui_viewertrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp
uic:ui_editortrainees.h

View File

@@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_TraineesView_t {
QByteArrayData data[1];
char stringdata0[13];
QByteArrayData data[5];
char stringdata0[59];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -32,10 +32,15 @@ struct qt_meta_stringdata_TraineesView_t {
)
static const qt_meta_stringdata_TraineesView_t qt_meta_stringdata_TraineesView = {
{
QT_MOC_LITERAL(0, 0, 12) // "TraineesView"
QT_MOC_LITERAL(0, 0, 12), // "TraineesView"
QT_MOC_LITERAL(1, 13, 17), // "slot_NeedUpdateUI"
QT_MOC_LITERAL(2, 31, 0), // ""
QT_MOC_LITERAL(3, 32, 14), // "treeInstructor"
QT_MOC_LITERAL(4, 47, 11) // "treeTrainee"
},
"TraineesView"
"TraineesView\0slot_NeedUpdateUI\0\0"
"treeInstructor\0treeTrainee"
};
#undef QT_MOC_LITERAL
@@ -45,22 +50,32 @@ static const uint qt_meta_data_TraineesView[] = {
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 2, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, 3, 4,
0 // eod
};
void TraineesView::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<TraineesView *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->slot_NeedUpdateUI((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject TraineesView::staticMetaObject = { {
@@ -89,6 +104,17 @@ void *TraineesView::qt_metacast(const char *_clname)
int TraineesView::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = CommonView::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP

View File

@@ -23,7 +23,7 @@ QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ViewerTrainees_t {
QByteArrayData data[12];
char stringdata0[184];
char stringdata0[197];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -33,23 +33,24 @@ struct qt_meta_stringdata_ViewerTrainees_t {
static const qt_meta_stringdata_ViewerTrainees_t qt_meta_stringdata_ViewerTrainees = {
{
QT_MOC_LITERAL(0, 0, 14), // "ViewerTrainees"
QT_MOC_LITERAL(1, 15, 22), // "signal_traineeSelected"
QT_MOC_LITERAL(2, 38, 0), // ""
QT_MOC_LITERAL(3, 39, 5), // "login"
QT_MOC_LITERAL(4, 45, 20), // "slot_LanguageChanged"
QT_MOC_LITERAL(5, 66, 8), // "language"
QT_MOC_LITERAL(6, 75, 25), // "on_treeWidget_itemClicked"
QT_MOC_LITERAL(7, 101, 16), // "QTreeWidgetItem*"
QT_MOC_LITERAL(8, 118, 4), // "item"
QT_MOC_LITERAL(9, 123, 6), // "column"
QT_MOC_LITERAL(10, 130, 28), // "on_btnEditorTrainees_clicked"
QT_MOC_LITERAL(11, 159, 24) // "slot_tabMessengerChanged"
QT_MOC_LITERAL(1, 15, 24), // "signal_BlockAutorization"
QT_MOC_LITERAL(2, 40, 0), // ""
QT_MOC_LITERAL(3, 41, 5), // "block"
QT_MOC_LITERAL(4, 47, 22), // "signal_traineeSelected"
QT_MOC_LITERAL(5, 70, 5), // "login"
QT_MOC_LITERAL(6, 76, 28), // "on_btnEditorTrainees_clicked"
QT_MOC_LITERAL(7, 105, 32), // "on_treeWidget_currentItemChanged"
QT_MOC_LITERAL(8, 138, 16), // "QTreeWidgetItem*"
QT_MOC_LITERAL(9, 155, 7), // "current"
QT_MOC_LITERAL(10, 163, 8), // "previous"
QT_MOC_LITERAL(11, 172, 24) // "slot_tabMessengerChanged"
},
"ViewerTrainees\0signal_traineeSelected\0"
"\0login\0slot_LanguageChanged\0language\0"
"on_treeWidget_itemClicked\0QTreeWidgetItem*\0"
"item\0column\0on_btnEditorTrainees_clicked\0"
"ViewerTrainees\0signal_BlockAutorization\0"
"\0block\0signal_traineeSelected\0login\0"
"on_btnEditorTrainees_clicked\0"
"on_treeWidget_currentItemChanged\0"
"QTreeWidgetItem*\0current\0previous\0"
"slot_tabMessengerChanged"
};
#undef QT_MOC_LITERAL
@@ -65,25 +66,25 @@ static const uint qt_meta_data_ViewerTrainees[] = {
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 39, 2, 0x06 /* Public */,
4, 1, 42, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 1, 42, 2, 0x0a /* Public */,
6, 2, 45, 2, 0x08 /* Private */,
10, 0, 50, 2, 0x08 /* Private */,
6, 0, 45, 2, 0x08 /* Private */,
7, 2, 46, 2, 0x08 /* Private */,
11, 1, 51, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::Bool, 3,
QMetaType::Void, QMetaType::QString, 5,
// slots: parameters
QMetaType::Void, QMetaType::QString, 5,
QMetaType::Void, 0x80000000 | 7, QMetaType::Int, 8, 9,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, 0x80000000 | 8, 0x80000000 | 8, 9, 10,
QMetaType::Void, QMetaType::QString, 5,
0 // eod
};
@@ -94,19 +95,26 @@ void ViewerTrainees::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _
auto *_t = static_cast<ViewerTrainees *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->signal_traineeSelected((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->slot_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 2: _t->on_treeWidget_itemClicked((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 3: _t->on_btnEditorTrainees_clicked(); break;
case 0: _t->signal_BlockAutorization((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 1: _t->signal_traineeSelected((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 2: _t->on_btnEditorTrainees_clicked(); break;
case 3: _t->on_treeWidget_currentItemChanged((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QTreeWidgetItem*(*)>(_a[2]))); break;
case 4: _t->slot_tabMessengerChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (ViewerTrainees::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ViewerTrainees::signal_BlockAutorization)) {
*result = 0;
return;
}
}
{
using _t = void (ViewerTrainees::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ViewerTrainees::signal_traineeSelected)) {
*result = 0;
*result = 1;
return;
}
}
@@ -154,10 +162,17 @@ int ViewerTrainees::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
}
// SIGNAL 0
void ViewerTrainees::signal_traineeSelected(QString _t1)
void ViewerTrainees::signal_BlockAutorization(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void ViewerTrainees::signal_traineeSelected(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -10,6 +10,7 @@
#include "../../../InstructorsAndTrainees/instructorsandtraineeswidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#include <QtCore/QList>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'instructorsandtraineeswidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
@@ -22,8 +23,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_InstructorsAndTraineesWidget_t {
QByteArrayData data[1];
char stringdata0[29];
QByteArrayData data[18];
char stringdata0[333];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -32,10 +33,36 @@ struct qt_meta_stringdata_InstructorsAndTraineesWidget_t {
)
static const qt_meta_stringdata_InstructorsAndTraineesWidget_t qt_meta_stringdata_InstructorsAndTraineesWidget = {
{
QT_MOC_LITERAL(0, 0, 28) // "InstructorsAndTraineesWidget"
QT_MOC_LITERAL(0, 0, 28), // "InstructorsAndTraineesWidget"
QT_MOC_LITERAL(1, 29, 22), // "signal_LanguageChanged"
QT_MOC_LITERAL(2, 52, 0), // ""
QT_MOC_LITERAL(3, 53, 8), // "language"
QT_MOC_LITERAL(4, 62, 19), // "signal_NeedUpdateUI"
QT_MOC_LITERAL(5, 82, 14), // "treeInstructor"
QT_MOC_LITERAL(6, 97, 11), // "treeTrainee"
QT_MOC_LITERAL(7, 109, 24), // "signal_BlockAutorization"
QT_MOC_LITERAL(8, 134, 5), // "block"
QT_MOC_LITERAL(9, 140, 22), // "signal_traineeSelected"
QT_MOC_LITERAL(10, 163, 5), // "login"
QT_MOC_LITERAL(11, 169, 26), // "signal_tabMessengerChanged"
QT_MOC_LITERAL(12, 196, 20), // "signal_InitMessanger"
QT_MOC_LITERAL(13, 217, 14), // "QList<Trainee>"
QT_MOC_LITERAL(14, 232, 12), // "listTrainees"
QT_MOC_LITERAL(15, 245, 20), // "slot_LanguageChanged"
QT_MOC_LITERAL(16, 266, 28), // "on_btnConnectionToDB_clicked"
QT_MOC_LITERAL(17, 295, 37) // "on_btnAuthorizationInstructor..."
},
"InstructorsAndTraineesWidget"
"InstructorsAndTraineesWidget\0"
"signal_LanguageChanged\0\0language\0"
"signal_NeedUpdateUI\0treeInstructor\0"
"treeTrainee\0signal_BlockAutorization\0"
"block\0signal_traineeSelected\0login\0"
"signal_tabMessengerChanged\0"
"signal_InitMessanger\0QList<Trainee>\0"
"listTrainees\0slot_LanguageChanged\0"
"on_btnConnectionToDB_clicked\0"
"on_btnAuthorizationInstructor_clicked"
};
#undef QT_MOC_LITERAL
@@ -45,22 +72,104 @@ static const uint qt_meta_data_InstructorsAndTraineesWidget[] = {
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
9, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
6, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 59, 2, 0x06 /* Public */,
4, 2, 62, 2, 0x06 /* Public */,
7, 1, 67, 2, 0x06 /* Public */,
9, 1, 70, 2, 0x06 /* Public */,
11, 1, 73, 2, 0x06 /* Public */,
12, 1, 76, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
15, 1, 79, 2, 0x0a /* Public */,
16, 0, 82, 2, 0x08 /* Private */,
17, 0, 83, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, 5, 6,
QMetaType::Void, QMetaType::Bool, 8,
QMetaType::Void, QMetaType::QString, 10,
QMetaType::Void, QMetaType::QString, 10,
QMetaType::Void, 0x80000000 | 13, 14,
// slots: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void InstructorsAndTraineesWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<InstructorsAndTraineesWidget *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->signal_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->signal_NeedUpdateUI((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
case 2: _t->signal_BlockAutorization((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 3: _t->signal_traineeSelected((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 4: _t->signal_tabMessengerChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 5: _t->signal_InitMessanger((*reinterpret_cast< QList<Trainee>(*)>(_a[1]))); break;
case 6: _t->slot_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 7: _t->on_btnConnectionToDB_clicked(); break;
case 8: _t->on_btnAuthorizationInstructor_clicked(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (InstructorsAndTraineesWidget::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_LanguageChanged)) {
*result = 0;
return;
}
}
{
using _t = void (InstructorsAndTraineesWidget::*)(bool , bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_NeedUpdateUI)) {
*result = 1;
return;
}
}
{
using _t = void (InstructorsAndTraineesWidget::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_BlockAutorization)) {
*result = 2;
return;
}
}
{
using _t = void (InstructorsAndTraineesWidget::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_traineeSelected)) {
*result = 3;
return;
}
}
{
using _t = void (InstructorsAndTraineesWidget::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_tabMessengerChanged)) {
*result = 4;
return;
}
}
{
using _t = void (InstructorsAndTraineesWidget::*)(QList<Trainee> );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&InstructorsAndTraineesWidget::signal_InitMessanger)) {
*result = 5;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject InstructorsAndTraineesWidget::staticMetaObject = { {
@@ -89,7 +198,60 @@ void *InstructorsAndTraineesWidget::qt_metacast(const char *_clname)
int InstructorsAndTraineesWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 9)
qt_static_metacall(this, _c, _id, _a);
_id -= 9;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 9)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 9;
}
return _id;
}
// SIGNAL 0
void InstructorsAndTraineesWidget::signal_LanguageChanged(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void InstructorsAndTraineesWidget::signal_NeedUpdateUI(bool _t1, bool _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void InstructorsAndTraineesWidget::signal_BlockAutorization(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void InstructorsAndTraineesWidget::signal_traineeSelected(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void InstructorsAndTraineesWidget::signal_tabMessengerChanged(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void InstructorsAndTraineesWidget::signal_InitMessanger(QList<Trainee> _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -225,6 +225,182 @@ static const unsigned char qt_resource_data[] = {
0x7d,0x5e,0xa4,0x99,0x45,0x10,0xaf,0x41,0x14,0xca,0xe8,0x58,0x9,0x4d,0xf1,0xc5,
0x56,0x8d,0x4d,0x39,0x39,0x2f,0x65,0x56,0xf0,0x73,0x2c,0x0,0xf0,0x3f,0x16,0x77,
0x75,0x59,0x4d,0x63,0xa1,0x7d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
0x60,0x82,
// D:/LMS/DB_IaT/InstructorsAndTrainees/icons/login-user.png
0x0,0x0,0xa,0xc3,
0x89,
0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
0x0,0x0,0x40,0x0,0x0,0x0,0x40,0x8,0x6,0x0,0x0,0x0,0xaa,0x69,0x71,0xde,
0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x1,0xd8,0x0,0x0,0x1,0xd8,
0x1,0xfa,0x5c,0xa6,0x72,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
0x74,0x77,0x61,0x72,0x65,0x0,0x77,0x77,0x77,0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,
0x70,0x65,0x2e,0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x0,0x0,0xa,0x50,0x49,0x44,
0x41,0x54,0x78,0x9c,0xed,0x5b,0xcf,0xab,0x5d,0x57,0x15,0xfe,0xd6,0xb9,0x37,0x9,
0x6d,0xd2,0x90,0x12,0x4a,0x2c,0x6d,0x7e,0x4c,0x9c,0xb4,0x14,0x27,0xf5,0xf,0x48,
0x6b,0x91,0x16,0xc4,0xc0,0x33,0x9,0xb6,0x15,0x8c,0x29,0x76,0x60,0x1e,0x98,0x56,
0xa9,0x98,0xc9,0x99,0xb4,0xd2,0x81,0x3f,0x48,0x22,0xb4,0xcf,0xc6,0x2a,0x3c,0x90,
0xfa,0x8,0x74,0x22,0x42,0x8c,0x3a,0x77,0xe4,0xa0,0x16,0xa4,0x51,0x1e,0x69,0x48,
0xa2,0xd1,0xb6,0x98,0x5a,0x69,0xee,0xbd,0x7b,0x39,0x38,0x67,0xef,0xbd,0xd6,0xda,
0x6b,0xdf,0x73,0x5f,0x14,0x27,0xbe,0xd,0x2f,0xef,0xb1,0xcf,0x3b,0xe7,0xac,0xf5,
0xed,0x6f,0x7f,0xeb,0x5b,0xfb,0xbe,0x0,0x9b,0x63,0x73,0x6c,0x8e,0xff,0xe7,0x41,
0x43,0xbf,0x70,0xf2,0xd5,0xf7,0x1e,0x1a,0x5,0x7e,0x86,0x1b,0x7a,0xb4,0x21,0x1c,
0x0,0x61,0x3b,0x81,0xba,0x3b,0x89,0x40,0xd4,0x3d,0x85,0xa8,0x9b,0xcb,0xd7,0xc4,
0x5c,0xba,0xd6,0xdd,0xd3,0xcd,0xc9,0xfb,0xbb,0x30,0xec,0x5c,0x7c,0x36,0xe0,0xcc,
0xc5,0x9f,0x51,0xbc,0xe7,0x9f,0x20,0xac,0x13,0xd1,0xc5,0x0,0xbc,0x76,0xea,0x20,
0xbd,0x75,0x5b,0x0,0x2c,0x9f,0x7e,0x67,0xdb,0x96,0xf1,0xdd,0xdf,0x27,0xe0,0x59,
0x10,0x35,0x7d,0x1c,0xe9,0x65,0x2a,0xf9,0xb9,0x80,0xc8,0xa4,0x75,0xf2,0x3a,0xf8,
0x21,0x40,0x64,0xd2,0xe5,0x7b,0x3c,0x40,0x40,0x34,0x3,0xe1,0x95,0x5b,0x37,0xf0,
0x5c,0x7b,0x84,0x6e,0x2d,0xc,0xc0,0xf2,0xe9,0x77,0xb6,0x8d,0xb1,0xeb,0x97,0x44,
0x38,0x38,0x84,0x7a,0x91,0xb4,0xba,0x66,0x56,0x7,0x76,0x4e,0x27,0xe5,0x2,0x21,
0x40,0x74,0x1,0x81,0x13,0x83,0x59,0x18,0x22,0xfa,0xcd,0xc7,0x7f,0xc3,0xe3,0x1e,
0x8,0x8d,0x7,0x40,0x13,0x76,0xfd,0x0,0xcc,0x7,0x99,0x19,0xe9,0x2b,0x0,0x8,
0xc,0xe,0xc,0x66,0xf4,0xf3,0x0,0xb8,0x9b,0x43,0x80,0xb9,0xc6,0x0,0xa3,0xbf,
0x16,0xef,0xeb,0xe7,0xba,0x5f,0x2,0xc7,0x7b,0x82,0x98,0x4b,0xcf,0x14,0xf7,0xc6,
0xb9,0x14,0x8b,0x88,0x27,0xdd,0xd7,0xbf,0x3b,0x88,0x78,0x38,0xc5,0xf3,0xc8,0xd6,
0x7b,0xc2,0x77,0x17,0x62,0xc0,0xc9,0xef,0x5d,0x7f,0x28,0x10,0xfd,0x9e,0x8,0xcd,
0xfc,0xbd,0xe7,0xcc,0xdd,0x16,0xb,0xfe,0x67,0xfa,0x30,0x6b,0x1a,0xfa,0xd4,0xb7,
0x1e,0xa1,0x3f,0xcc,0x65,0x40,0x60,0x3c,0x83,0xc0,0xd,0x7,0xa4,0x15,0x29,0x50,
0xf,0x62,0x35,0x38,0xcf,0xb9,0x2c,0x90,0xab,0x6c,0x59,0x10,0x9f,0x25,0xee,0x81,
0x5a,0xc9,0x9e,0x5,0x92,0x19,0x62,0x95,0x73,0x8c,0x3e,0x53,0xc1,0x8a,0x5,0xa3,
0xd9,0x2c,0x1c,0xb7,0xf9,0x8e,0xed,0x4,0x7,0xfe,0x4c,0x7,0x5f,0xf7,0x80,0xb8,
0x22,0x1c,0xe7,0xfa,0x25,0x24,0x66,0x30,0x11,0x88,0x18,0x1c,0xf7,0x70,0x7f,0x43,
0x77,0xad,0x43,0x9f,0x89,0xa1,0xae,0x72,0x3f,0x97,0x56,0x97,0x41,0x20,0x30,0x18,
0xc4,0xfd,0x7b,0x88,0xbb,0x7b,0xc1,0x88,0xbf,0x1,0x8e,0xf7,0xf4,0xf1,0xa4,0xbb,
0x0,0x70,0x8c,0xa3,0xff,0x2e,0xdf,0xc8,0x39,0x46,0x22,0x7a,0x6c,0x1,0x0,0xb0,
0xaf,0xb,0xa0,0xb,0x26,0x85,0xc1,0x62,0xae,0x7f,0x59,0x2,0x44,0xbd,0x4,0x1a,
0x10,0x16,0x40,0xf4,0xc9,0xf5,0x10,0x82,0x99,0xc5,0x35,0x9,0x48,0x97,0x6f,0x9a,
0x8b,0xf1,0xc4,0xa4,0xb9,0x7f,0x4e,0xa2,0x7b,0x86,0xaa,0x43,0xd9,0xc4,0x13,0x1,
0x61,0xde,0x3f,0xc,0x0,0xf3,0x8e,0x79,0xa8,0xe7,0xa4,0xa1,0x1,0xa9,0xa0,0x9e,
0xd8,0x94,0x82,0x87,0x4e,0x3a,0x73,0xaa,0xdb,0x2,0x32,0x69,0x8,0x16,0xa4,0xa4,
0xe3,0x35,0x98,0xa4,0x61,0x16,0x2d,0x25,0x2d,0x1,0xb9,0x6b,0x1,0x6,0x70,0x81,
0x7a,0x7a,0x83,0x65,0x81,0x2,0x44,0x26,0xad,0xd2,0x8a,0x31,0x18,0x40,0x7c,0x16,
0xe4,0xa4,0x3d,0x40,0x52,0x24,0x9,0x10,0x8f,0xa9,0x8a,0x19,0xa4,0xb7,0xca,0x20,
0x0,0x1d,0xa0,0x6c,0x5e,0xd2,0x5,0xa8,0x0,0xb1,0xa8,0xb,0x16,0x14,0xfa,0x20,
0x59,0x60,0xf5,0x41,0xb2,0x40,0xe9,0x3,0x34,0x20,0x42,0x1f,0xa,0x16,0x70,0xb9,
0x68,0x39,0x69,0x28,0x40,0x16,0x64,0x40,0x89,0x7a,0x5c,0x65,0x17,0xf5,0x62,0xef,
0x79,0x82,0xe9,0xe8,0x83,0x4a,0xda,0xe8,0x3,0xb8,0x22,0x98,0x10,0x89,0xc9,0xa4,
0x61,0x0,0x11,0xf1,0xe8,0x2c,0x6,0x0,0x60,0x85,0x9f,0x48,0xba,0x67,0x81,0xc,
0xc3,0x0,0x52,0xd5,0x7,0x25,0x8a,0x4a,0x95,0xfb,0x2a,0xe1,0xea,0xc3,0xf9,0x66,
0x3c,0x5e,0x7e,0xe9,0x4b,0xdb,0xaf,0x79,0x81,0xb7,0xab,0x1f,0xdd,0x3f,0x19,0x85,
0x15,0x2,0x1e,0x2f,0xf4,0x41,0x9,0x26,0x4c,0x25,0xd3,0xa3,0x74,0x82,0xa9,0x6e,
0x67,0x37,0x95,0xea,0xa9,0xac,0xcd,0xca,0x85,0x89,0x39,0xeb,0x1f,0x54,0x6d,0x8e,
0xd7,0xb4,0xbf,0x28,0x1d,0x26,0x23,0x60,0x7c,0xa2,0x96,0x3c,0x0,0xb4,0x4f,0xdf,
0x79,0x5,0x68,0x9e,0xd5,0x2e,0xd2,0x3a,0x4c,0xe3,0x1f,0xb8,0x64,0x41,0x1,0x80,
0xb2,0xb1,0x29,0x69,0x6d,0x2c,0xe6,0x99,0x15,0xae,0x2,0xb2,0x31,0x5b,0xd,0x7c,
0x54,0xcb,0x3d,0x8d,0x17,0xbf,0x78,0xe7,0xbb,0x43,0xb6,0x9a,0xc5,0x35,0x84,0x45,
0x0,0x8,0x1a,0xc1,0x9c,0xb4,0x40,0x35,0x25,0xad,0x57,0x59,0xae,0x66,0xdd,0x45,
0x8a,0x7b,0x58,0x30,0xc3,0x3a,0xc2,0xd9,0x96,0xb3,0xdf,0x7e,0xf5,0xc6,0xbd,0x43,
0x20,0xe8,0xa4,0x21,0x1c,0xa6,0xcf,0x54,0x3b,0x1c,0xd,0x40,0x52,0x0,0x5d,0x8a,
0x60,0xca,0x14,0xc4,0xfe,0x1a,0xd6,0x7,0xe5,0xeb,0xd8,0xea,0x43,0x1c,0x42,0x30,
0x19,0x4b,0x13,0x1a,0x2d,0x7d,0xf3,0x47,0xef,0xe7,0x3e,0x3,0x84,0x97,0x8f,0xef,
0xd2,0x1b,0x39,0x56,0x2d,0x8e,0x65,0x16,0x46,0x30,0x75,0x95,0x18,0x4,0x20,0x21,
0x95,0x4a,0xce,0x50,0x6d,0xf6,0x4,0xb3,0xff,0x51,0x1,0x2,0x23,0x46,0xb6,0x4a,
0x78,0x82,0x69,0xfc,0x83,0x93,0x80,0xaa,0x5a,0xb5,0x18,0x85,0xad,0x1e,0x4,0x20,
0x1a,0xa1,0xc4,0x2,0x5b,0xa6,0x4,0x20,0xb9,0xc6,0x3a,0x2c,0xb0,0xb5,0x59,0x78,
0x81,0xd2,0x56,0xcb,0x0,0x4c,0x95,0x30,0x2e,0xb2,0x5c,0xaf,0x9c,0x74,0x6,0xcb,
0x67,0x2a,0x9c,0x2a,0xe0,0x6f,0x1,0xe6,0x2,0xf5,0x14,0xbe,0xa8,0xcd,0x19,0x59,
0x9,0x48,0x89,0xba,0xee,0x25,0xe0,0xd8,0xea,0xc5,0x9a,0x19,0x2f,0x1,0x4,0x8,
0x43,0x35,0x87,0x5,0x92,0xa9,0x62,0xf8,0x22,0xe8,0xa8,0x32,0x1b,0x1,0xcb,0xa2,
0xe8,0x9,0x26,0x3b,0x82,0x19,0x5,0x2e,0x5c,0xc,0xd3,0xe9,0xde,0xd9,0xa4,0xb9,
0xf,0x81,0xdf,0xdc,0x68,0xdb,0xed,0x31,0x60,0x23,0x6d,0xf7,0x20,0x0,0xb1,0xa4,
0xcc,0x2b,0x53,0xfa,0x25,0x16,0x90,0x52,0x95,0x75,0x95,0x8,0xc7,0xce,0xbc,0x70,
0xff,0x95,0xb3,0x2f,0xdc,0x73,0xf5,0xee,0x9b,0x7b,0xe,0x7,0xe6,0x37,0xb2,0xef,
0x30,0xfe,0xc1,0x56,0x9,0x67,0xf,0xe8,0xd3,0x1f,0x11,0x8f,0xf1,0x2,0x31,0x9e,
0x5,0x18,0x60,0x2,0x30,0x5e,0x20,0x1b,0xb,0x87,0x5,0x12,0x75,0x1,0x8,0x44,
0x6d,0x9e,0x4c,0x72,0x16,0x6d,0x4b,0xd3,0xdd,0x37,0xf7,0x3c,0x1d,0x18,0x6f,0x28,
0xb3,0xa2,0x92,0x36,0xf1,0x94,0xeb,0xe5,0xb3,0xc0,0xc4,0x18,0xaf,0xd,0x3,0x60,
0x3,0x30,0x6e,0xa,0x72,0x95,0x2d,0xb,0x24,0xea,0x6,0x90,0x78,0x4f,0xd3,0x34,
0x67,0xdb,0x96,0x93,0xf6,0xb4,0x2d,0x4d,0x77,0x7f,0xd8,0x81,0xe0,0xb2,0x20,0xe8,
0x78,0x8a,0x61,0x58,0xe7,0x6e,0x5d,0xce,0x5f,0x83,0x0,0xd4,0x69,0x28,0xf7,0x24,
0x9c,0xa4,0xd,0xea,0x82,0xf6,0x52,0x1f,0x88,0xf9,0xd0,0x8d,0xad,0xd7,0x7e,0x66,
0x41,0xb8,0xbe,0x6f,0xcf,0x53,0x60,0xac,0x72,0x5a,0x31,0x76,0x6d,0xb5,0xb7,0x60,
0x3a,0x69,0xbb,0x75,0x35,0xb,0x16,0x62,0x80,0x75,0x53,0x3a,0xe9,0x39,0xa8,0x1b,
0x16,0x54,0xf5,0x21,0x84,0x2f,0xdc,0xd8,0xa2,0x41,0x58,0x3b,0x42,0xb3,0x6b,0xfb,
0xf7,0x7c,0x19,0x1,0xab,0xa5,0x28,0xa,0x40,0x6c,0xbc,0x35,0xbd,0x92,0xdb,0x4f,
0xea,0x80,0x19,0xde,0x91,0x98,0x6a,0x69,0xbb,0x3a,0x2a,0xda,0x5c,0x51,0x72,0x8,
0x8c,0xc0,0x38,0x3f,0x1a,0xd1,0xf2,0xca,0x8b,0x7,0xaa,0x8d,0xcb,0xa2,0x63,0xed,
0x8,0xcd,0xda,0x96,0x8f,0xfd,0xfd,0x8e,0xbf,0xec,0x0,0xf1,0x21,0xb7,0xed,0xb6,
0xf1,0xa6,0xa4,0x86,0xda,0x6e,0x18,0xd7,0xd9,0x8d,0xa,0x3,0x34,0xd,0xd5,0x1e,
0x32,0x55,0x62,0x16,0xe8,0xc4,0xca,0x4b,0xff,0x79,0xf2,0x71,0xb4,0x2d,0x4d,0x81,
0xe9,0xb2,0x66,0x41,0x8e,0xa7,0x18,0xa6,0x4a,0x54,0x59,0x50,0x11,0xd1,0xd2,0xa,
0x7,0x16,0xc7,0x5a,0x9e,0x77,0x97,0x96,0xb4,0xf7,0xbb,0xff,0xe5,0x31,0x9b,0x10,
0x35,0x23,0x54,0x6c,0xb5,0x1e,0x5d,0x52,0x15,0x43,0xe5,0xd8,0x6a,0x3b,0x1c,0x6,
0x40,0xed,0x65,0x98,0xbd,0x65,0xab,0x44,0xc3,0xd3,0xb3,0x5f,0xfd,0xfa,0xfa,0x60,
0xd7,0xb6,0xe8,0x68,0x5b,0x1e,0x83,0x70,0xba,0xda,0x76,0xdb,0x78,0xb,0xc1,0x14,
0x5f,0x5e,0x97,0x69,0x86,0xdb,0xb,0xe4,0x3d,0x4,0x68,0x16,0x38,0xcd,0x4c,0xa0,
0xa5,0x69,0x33,0x5d,0xfa,0xca,0xf3,0x7f,0x4a,0xcd,0x4e,0x77,0x14,0xd5,0x7f,0x8f,
0x8f,0x48,0x73,0x9d,0x85,0x26,0xc2,0xda,0x27,0x9a,0x7d,0x4f,0x76,0x94,0xef,0xc6,
0xe1,0x9f,0xf3,0xe8,0xaf,0x7f,0xbc,0xfa,0x13,0x30,0x1f,0x62,0x46,0x61,0xab,0xdd,
0xc1,0x42,0x1f,0x38,0xbe,0x87,0xb,0x5b,0x1d,0x1b,0xae,0x61,0x0,0xba,0x37,0x3,
0x6c,0xe,0x43,0x2b,0xcd,0x4c,0x16,0x45,0x18,0xc1,0x8c,0x89,0xf7,0x1,0xe8,0x23,
0xaf,0xb5,0x7b,0xb7,0xec,0xd7,0xc9,0x1f,0xe6,0xd1,0xee,0xb7,0xaf,0xfc,0x94,0x9,
0x4f,0xe9,0x3e,0xa3,0xa7,0x79,0x3f,0x57,0x2e,0x18,0xaa,0x6d,0xb7,0x6,0xc4,0xc7,
0xcf,0xd1,0x0,0xf4,0x49,0x4b,0xd4,0xeb,0xcd,0x8c,0x5b,0x25,0x22,0xea,0x60,0x3,
0x8,0x1,0xe0,0x37,0xef,0xdb,0xba,0xfe,0x64,0xdb,0x1e,0x48,0xc9,0xb7,0x2d,0x8f,
0xaf,0x85,0xcb,0xab,0x60,0x3a,0xca,0xf1,0x4e,0xe6,0x85,0x9a,0x99,0xae,0x1b,0x84,
0x49,0xba,0xde,0x76,0xf,0x2,0xa0,0xf6,0x49,0x5e,0x31,0x73,0x24,0x6e,0xda,0xdc,
0xfe,0x60,0xb3,0x14,0x4c,0x8,0x91,0xec,0x2,0x98,0x61,0xfc,0xb5,0xb6,0x3d,0xa8,
0x92,0xbf,0x3a,0xbd,0xbc,0x4a,0xc0,0xd1,0x45,0xda,0xee,0x22,0xde,0x90,0xef,0xd9,
0x50,0xdb,0x5d,0x5,0x20,0x48,0xea,0xd7,0x4f,0x87,0x63,0x52,0x73,0xf5,0xc1,0x39,
0xec,0x18,0x37,0x13,0xe1,0x0,0x7f,0x3b,0xbe,0xfa,0xf1,0xfa,0x2a,0x13,0x1d,0x55,
0xdb,0x8,0xf5,0xb6,0xbb,0x44,0x0,0x1b,0x6a,0xbb,0x7,0x1,0x88,0xf,0x8c,0x8,
0x96,0x87,0x1d,0x7d,0xa0,0x5c,0xd1,0x7,0xaf,0x6c,0xa,0x40,0x66,0x1,0x3f,0x3e,
0xfe,0xfc,0x9f,0x8f,0x7,0xe,0xe1,0xca,0xbf,0x9a,0x33,0x20,0x7c,0xbe,0x7a,0xf8,
0x2,0xc9,0x2,0xb9,0xbd,0x44,0xb8,0x9c,0xf7,0x7a,0xf1,0x69,0x96,0x3d,0x96,0xdb,
0xc8,0x7,0x23,0xb9,0xfe,0x56,0xe,0x3b,0x24,0xb,0xaa,0x82,0x89,0x54,0x7f,0x85,
0x60,0x3e,0xa,0xc2,0x7a,0xd3,0x90,0x70,0x9d,0x10,0x49,0xcb,0xf3,0x7c,0xb1,0x1d,
0xc8,0xf3,0x81,0x82,0xb1,0x15,0xa6,0x16,0xfa,0x30,0x8,0x0,0x73,0x89,0xba,0xa0,
0xa1,0x36,0x16,0x52,0x1f,0xe2,0x70,0xaa,0xc4,0xc2,0x82,0x29,0x6c,0xac,0x3c,0x96,
0x4b,0xa2,0x58,0xd9,0x2,0x73,0x98,0x5a,0x7e,0x78,0x33,0x4,0x40,0x5f,0x56,0x24,
0xea,0x92,0x5,0x79,0x7f,0x79,0x55,0xa2,0x14,0xcc,0x42,0x1f,0x4,0xd,0x4b,0xc1,
0xcc,0x5b,0xa9,0x38,0x96,0xeb,0x1,0x29,0xe3,0xf5,0x4,0xb3,0xc2,0x82,0x45,0xaa,
0x40,0x67,0x2c,0xc,0xea,0x1e,0xb,0x2c,0xea,0x34,0xf,0xf5,0xc5,0xf4,0x21,0x27,
0xd,0xed,0x1f,0x12,0x58,0x45,0xb4,0xbd,0x6,0x94,0x31,0xfa,0x80,0x94,0xf7,0xcf,
0xfd,0x78,0x5c,0xd2,0x50,0x27,0x6d,0xf4,0x41,0x25,0xed,0x55,0x89,0x8a,0x3e,0xa4,
0xc4,0xb4,0x77,0x27,0x30,0x98,0xe8,0xfc,0xa8,0xa1,0xe5,0xa1,0x46,0x2b,0x39,0x57,
0x9,0x97,0x28,0x9b,0xc5,0xe1,0xec,0x20,0x0,0x8c,0x12,0x75,0x11,0x60,0x55,0x1f,
0x48,0xa3,0xae,0x45,0x31,0xa5,0xeb,0xd4,0x66,0x5d,0xa6,0xe2,0x5c,0x0,0x9d,0x38,
0xf7,0xf2,0x81,0xeb,0xf3,0x92,0xef,0xee,0x41,0x95,0xa9,0x9e,0xa1,0x1a,0x4,0x20,
0x77,0x83,0x46,0x95,0xfb,0x0,0x13,0x33,0x88,0x7,0x51,0xd7,0x49,0x3b,0x86,0xca,
0x15,0xcc,0xc5,0xc7,0xb1,0x53,0x97,0xf6,0x16,0x9f,0x63,0xa8,0xa4,0xa1,0xf5,0xc1,
0x19,0xd5,0xf3,0x0,0xdd,0x89,0xe9,0x6e,0x2b,0x75,0x5d,0xce,0x91,0x97,0x3c,0xc9,
0x49,0x1d,0x65,0xba,0x66,0xcf,0x1a,0x74,0xf,0x2f,0xcf,0x1a,0x30,0x9d,0xdf,0x65,
0x1e,0x3b,0x75,0x69,0xef,0x28,0x8c,0x56,0xf4,0xb1,0x37,0x9c,0x23,0x71,0x11,0xa3,
0x73,0xa2,0x34,0xb7,0xa,0xe4,0x4a,0xe0,0xd5,0x66,0xc3,0x2,0x16,0x73,0x96,0x5,
0xc,0xa8,0xad,0xa2,0xaa,0x84,0xd1,0x87,0x54,0x36,0xb1,0x34,0xc1,0x64,0xe9,0xd8,
0xc9,0x4b,0x9d,0x78,0xa5,0xad,0xd8,0x7f,0x9f,0x74,0x71,0xb2,0xc3,0xd4,0xb9,0x86,
0x6a,0x10,0x0,0xd1,0x5c,0xc4,0x66,0x46,0xfd,0x45,0x96,0x74,0x3,0xd6,0xac,0x20,
0xee,0x66,0xa7,0x4a,0x2c,0x2c,0x98,0xa6,0x6c,0x16,0x55,0x42,0xc4,0x93,0x9e,0xea,
0x94,0x4d,0x88,0x78,0x64,0xe,0x43,0x0,0x74,0xf4,0x96,0x49,0x23,0x3,0x52,0xa9,
0xcd,0xae,0x3e,0x14,0xb5,0x59,0xb3,0x20,0xbf,0xcf,0xa,0xa6,0xaf,0xf,0xf5,0x73,
0xca,0xfc,0xec,0xf4,0x46,0xf1,0x4c,0xcb,0xd4,0x61,0x6,0xc4,0xfe,0x5a,0x25,0x3d,
0x8c,0x7a,0x7e,0x49,0x89,0xba,0x57,0x9b,0xdd,0x86,0x4b,0x25,0xd,0xb5,0x55,0x32,
0x58,0x56,0x30,0xab,0x6d,0x77,0x66,0x81,0x64,0xea,0x20,0x0,0xcc,0x37,0x89,0x71,
0x97,0xfa,0x8b,0x2c,0x58,0x40,0x1c,0xd4,0x3d,0x16,0xc8,0xab,0xae,0xad,0xae,0xb0,
0x60,0x6e,0x95,0x98,0xc3,0x2,0x5,0x88,0x48,0x3a,0x33,0xf5,0x1f,0xb,0x30,0x80,
0xdf,0x5,0xd1,0x3,0xf9,0x25,0x6,0x75,0x45,0x35,0xa3,0xf,0x24,0xd6,0xd9,0xea,
0x3,0xcd,0xd1,0x87,0x39,0xcd,0x4c,0x7c,0x9f,0xab,0xf,0x92,0x5,0xa6,0xed,0xce,
0x49,0xcb,0xe3,0x72,0xba,0x3c,0x8,0x0,0x18,0xbf,0x62,0xe6,0x7,0xe6,0xa1,0x9e,
0x98,0x41,0x56,0x30,0x5,0x33,0x2a,0xcd,0x4c,0xa1,0xf,0xae,0x60,0xa,0xe9,0xbb,
0xcd,0xb6,0xdb,0x63,0x2a,0x10,0x2e,0xd8,0x74,0xb,0x1f,0x30,0x9b,0xd2,0x6b,0xcc,
0x3c,0xcb,0xb5,0x59,0xd6,0x6d,0x51,0xaf,0x45,0xdd,0xf6,0xfe,0x22,0xb,0x6c,0x6b,
0x33,0xd2,0x7d,0xca,0x3f,0x54,0x3e,0x43,0xb4,0x9f,0xfa,0x66,0xff,0x20,0xe2,0x91,
0xfe,0x42,0xc6,0x68,0x3f,0xcd,0xea,0xbc,0xc5,0x6c,0x8a,0xd1,0xb9,0x41,0x0,0x7e,
0x71,0xe1,0xd3,0x6f,0x51,0xa0,0x57,0xaa,0x66,0x45,0xbe,0xc4,0xfe,0x47,0x87,0x50,
0x3,0x84,0xe1,0x1b,0x2a,0x94,0x80,0xa4,0xa4,0x3c,0x43,0xc5,0xe,0x20,0xf2,0x99,
0xa5,0xa1,0x8a,0x31,0x6,0xe0,0x87,0xaf,0x7f,0x67,0xff,0xdb,0x83,0x0,0x0,0xc0,
0xb6,0x9d,0xdb,0x9f,0x63,0xe,0xbf,0xce,0x49,0xeb,0xa4,0xf4,0x27,0xc2,0x16,0x75,
0xb,0x88,0xe,0xb0,0x64,0x81,0x7,0x48,0x6,0xdf,0x77,0x91,0x12,0x10,0xb8,0x80,
0x98,0x4f,0xb3,0x2e,0x8e,0x3f,0x78,0xef,0x1b,0x5e,0xae,0x2e,0x0,0x6b,0x6b,0xf,
0xde,0xba,0x63,0xe7,0xce,0x27,0x78,0x16,0xce,0x22,0xf0,0xac,0xfc,0x94,0x55,0x53,
0xdb,0x45,0xbd,0xa0,0x61,0x8d,0x5,0x66,0xab,0x58,0x16,0x98,0xf,0x39,0x15,0xb,
0xcc,0x9f,0xe6,0x39,0x4c,0x9d,0x81,0x71,0x7a,0x7c,0xf3,0x83,0x27,0x56,0x56,0x1e,
0x9e,0x78,0xb9,0x3a,0xde,0x48,0x8f,0xcf,0x7d,0xf6,0x77,0xf,0x6,0x9e,0x1d,0x6f,
0xa8,0x79,0xc,0x84,0x3,0x20,0xec,0xb0,0xff,0x5,0x26,0xda,0xd3,0xa8,0xf6,0xc9,
0xb2,0xc2,0x99,0x4b,0xd7,0x9c,0xb9,0x24,0x9e,0xc8,0xcf,0x17,0xdf,0xd1,0x8b,0x67,
0x31,0x17,0x7f,0xaf,0xfb,0xe7,0x43,0x22,0x5a,0x27,0xa2,0xb,0x4,0x9c,0x7b,0xfd,
0xcc,0x27,0xb,0xda,0x6f,0x8e,0xcd,0xb1,0x39,0x36,0x47,0x1c,0xff,0x6,0x11,0x1,
0x8,0xa9,0x83,0x79,0x44,0x46,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
0x60,0x82,
// D:/LMS/DB_IaT/InstructorsAndTrainees/icons/newGroup.png
0x0,0x0,0xc,0xe5,
@@ -3087,6 +3263,212 @@ static const unsigned char qt_resource_data[] = {
0xf5,0x3f,0x9f,0x57,0x5c,0x40,0xb8,0x80,0xe2,0x30,0xc2,0x1,0x11,0x4a,0x2d,0x55,
0xd5,0x9b,0x37,0xbf,0x98,0x7f,0xc6,0x97,0xfe,0xfd,0xf,0xae,0xc2,0x77,0x8,0x6f,
0x22,0xa7,0xd5,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
// D:/LMS/DB_IaT/InstructorsAndTrainees/icons/connectDB.png
0x0,0x0,0xc,0xa9,
0x89,
0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
0x0,0x0,0x40,0x0,0x0,0x0,0x40,0x8,0x6,0x0,0x0,0x0,0xaa,0x69,0x71,0xde,
0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x1,0xd8,0x0,0x0,0x1,0xd8,
0x1,0xfa,0x5c,0xa6,0x72,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
0x74,0x77,0x61,0x72,0x65,0x0,0x77,0x77,0x77,0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,
0x70,0x65,0x2e,0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x0,0x0,0xc,0x26,0x49,0x44,
0x41,0x54,0x78,0x9c,0xdd,0x9b,0x79,0x74,0x54,0xd5,0x1d,0xc7,0x3f,0x6f,0x32,0x33,
0xc9,0x24,0x99,0x4c,0x56,0xb2,0x91,0x44,0x30,0x9,0x49,0x58,0xa,0x24,0x1a,0x10,
0xc4,0xb5,0x75,0xc1,0x85,0x28,0xa2,0x28,0x52,0xad,0x3d,0x88,0x9e,0xaa,0xd5,0x83,
0x7a,0xaa,0x70,0xb4,0x95,0xba,0xb4,0x2e,0x3d,0x56,0x5,0xb5,0xe8,0xa9,0xdb,0x39,
0x6a,0x11,0x10,0x6b,0xa9,0x8a,0x8,0x45,0x14,0x4c,0x8,0x8b,0x12,0x22,0x3b,0x9,
0x99,0x6c,0x90,0x99,0x4c,0x96,0x49,0x66,0x26,0xaf,0x7f,0xfc,0x66,0x26,0x93,0xbc,
0x24,0x24,0x30,0x9,0xcb,0xf7,0x9c,0xdf,0x99,0xc9,0xcd,0xbd,0xef,0xde,0xfb,0x9d,
0xf7,0x7e,0xeb,0x7d,0x70,0xf6,0x21,0x9,0x58,0x7,0xb8,0x0,0x15,0x68,0x7,0xfe,
0xd,0x44,0x9f,0xca,0x45,0xd,0x25,0x5e,0x43,0x36,0xde,0x5d,0x16,0xf7,0xd4,0x59,
0x37,0x74,0xeb,0x1a,0x32,0x64,0x1,0x8c,0xc8,0x9b,0x4b,0xe1,0xaf,0x96,0x91,0x96,
0x35,0xd3,0xd7,0x9e,0xdd,0x53,0xe7,0xb3,0x91,0x0,0x0,0xc,0xa1,0x16,0xc2,0x22,
0x92,0x30,0x18,0xcd,0x7d,0xf6,0x3b,0x6b,0x9,0xe8,0x2f,0xf4,0x3,0xec,0x1f,0xe,
0xa4,0x2,0x89,0x40,0xa,0x10,0x83,0x28,0x17,0xb,0x10,0x5,0x18,0x10,0x52,0x2d,
0xde,0xfe,0x1d,0x80,0xdd,0xfb,0xbd,0x15,0x68,0xc,0x90,0x1a,0xa0,0x16,0x38,0xe2,
0xfd,0xde,0x76,0xa2,0x9b,0x38,0x19,0xf4,0x46,0x80,0x11,0x98,0xc,0x14,0x0,0xa3,
0x80,0x5c,0xaf,0xc4,0xd,0xe2,0x5a,0x2a,0x81,0xdd,0x5e,0xd9,0x5,0x7c,0xf,0x6c,
0x43,0x14,0xd8,0xa0,0x21,0x90,0x80,0x68,0xe0,0x36,0xe0,0x2a,0xe0,0x62,0x20,0xa2,
0xa7,0x1,0x61,0xa1,0x3a,0xd2,0x52,0x8d,0x24,0xc4,0x19,0x88,0xb6,0xe8,0x89,0xb6,
0x84,0x10,0x6d,0xd1,0x63,0x8e,0xc,0x1,0xc0,0x68,0x50,0x88,0x8,0xf,0xf1,0xf7,
0x6f,0x74,0x78,0xf0,0x74,0xc8,0x1e,0x6c,0x76,0x37,0x36,0xbb,0x47,0x3e,0x1b,0x3d,
0x58,0x6b,0xda,0xb1,0xd6,0xb4,0xe3,0x72,0xa9,0x0,0xc3,0xbd,0x72,0x79,0xc0,0x74,
0xb5,0xc0,0x57,0xc0,0x6a,0xe0,0x13,0xc4,0xa4,0x5,0x15,0x7a,0x20,0x4,0x58,0x0,
0x2c,0x4,0x22,0x7d,0xff,0x88,0x8b,0xd5,0x33,0xb9,0xc0,0xcc,0xb8,0xbc,0x8,0x46,
0xe7,0x84,0x93,0x9b,0x6d,0x22,0x2d,0xd5,0x48,0x7c,0xac,0x21,0xa8,0xb,0x50,0x55,
0xa8,0xae,0x6d,0xe7,0xe0,0xe1,0x36,0x76,0xfd,0xdc,0xc2,0xee,0x3d,0xad,0x14,0x6f,
0x6b,0xa6,0x78,0x5b,0x13,0x4d,0xcd,0x9e,0x61,0xc0,0xad,0x5e,0xa9,0x2,0xee,0x7,
0x96,0x7,0x73,0x7e,0x3d,0xf0,0x2c,0x42,0x0,0x63,0x72,0xc3,0x99,0x33,0x33,0x81,
0xeb,0xae,0x8c,0x25,0x27,0xcb,0x84,0xa2,0x4,0x73,0xaa,0x9e,0xa1,0x28,0x90,0x9c,
0x68,0x24,0x39,0xd1,0xc8,0xe4,0xf3,0x3a,0x35,0xb6,0xdb,0xad,0x52,0xb2,0xbd,0x89,
0x55,0x6b,0x1a,0x78,0xf7,0xa3,0x5a,0x2a,0xab,0xda,0x53,0x80,0x8f,0x81,0xd9,0xc0,
0x87,0xc1,0x9a,0x5f,0x7,0xcc,0x3,0x78,0x66,0x61,0x6,0x3b,0xd6,0x8f,0xe7,0xd1,
0xfb,0x53,0xc9,0xcd,0x1e,0x9a,0xcd,0xf7,0x5,0xbd,0x5e,0xa1,0x30,0xdf,0xcc,0xd3,
0x8f,0xa7,0xb3,0xbf,0x38,0x9f,0x5b,0x8a,0xe2,0x1,0x14,0xbc,0xeb,0xd,0xda,0x3c,
0x88,0xf6,0xe6,0x95,0x65,0x56,0xd5,0x60,0x50,0x94,0x9b,0x67,0xc4,0x33,0x3c,0xc5,
0x18,0xcc,0x39,0x4e,0x18,0xaa,0xa,0xa5,0x3b,0x9b,0x59,0xf6,0x7e,0xd,0x2b,0x3f,
0x3f,0xe6,0x6b,0xb6,0xf4,0x35,0x66,0xa0,0xf0,0x2b,0xc1,0x23,0xd6,0x76,0x65,0xc1,
0x13,0x7,0x79,0xf8,0xc9,0x83,0x8c,0xcb,0x8b,0x60,0x4a,0xa1,0x99,0xc2,0x89,0x66,
0xc6,0xe6,0x85,0x93,0x93,0x65,0xc2,0x14,0x36,0xf8,0x2e,0x43,0x83,0xcd,0x4d,0xf9,
0xde,0x56,0x4a,0xb6,0x37,0xf3,0x5d,0xb1,0x83,0xf5,0x9b,0xec,0x54,0x56,0xd,0x58,
0xef,0x19,0x0,0x9c,0x2d,0xb5,0x38,0x6c,0x7b,0x69,0x73,0xd6,0x77,0x69,0xef,0xe,
0x5,0xaf,0x99,0xf9,0xdb,0x42,0xf8,0x62,0x23,0xfc,0xf7,0x7f,0xe0,0xf1,0x74,0xed,
0xa4,0xd3,0x41,0x7a,0x6a,0x28,0x69,0xa9,0xa1,0xa4,0xf,0xf,0x25,0x35,0xd9,0x48,
0x62,0x82,0xd7,0xa,0x44,0x89,0x15,0xb0,0x44,0x89,0xe6,0xf,0x9,0x51,0x88,0x32,
0x77,0x5a,0x81,0x6,0x9b,0x1b,0x90,0x5f,0xd3,0x66,0xf7,0xd0,0x60,0x77,0x63,0xb3,
0xbb,0x69,0xb0,0xb9,0xb1,0xd6,0xb4,0x73,0xc4,0x2a,0xb2,0xef,0xa0,0x93,0x9a,0x3a,
0x97,0x66,0x81,0xe1,0x26,0x98,0x79,0x25,0x24,0xc6,0xc3,0x5f,0xdf,0x4,0xa0,0x4,
0x31,0xcf,0x81,0x88,0x4,0x1e,0x5,0x7e,0x8b,0x4,0x43,0xbd,0xa1,0x2,0x58,0x2,
0xbc,0x88,0xd7,0xef,0xf0,0x13,0xb0,0x6f,0x1d,0x8c,0x4c,0x83,0x9a,0x7a,0x58,0xbf,
0x5,0x36,0x16,0xc3,0xa6,0xad,0xb0,0x7b,0x1f,0x34,0xb7,0xf6,0x71,0xc9,0x20,0x23,
0x36,0x1a,0xc6,0x64,0xc1,0x94,0x7c,0x98,0x5a,0x0,0x17,0x9e,0x7,0xe6,0x8,0xf8,
0xf8,0x3f,0x30,0xeb,0x3e,0x40,0x4b,0x40,0x3a,0xf0,0x25,0x81,0xbe,0x7e,0x44,0x40,
0xe0,0xa7,0xaa,0xd0,0xe1,0x1,0x67,0x53,0xe0,0x34,0xa5,0xc0,0x15,0x40,0x9d,0xc6,
0x11,0x4a,0x8c,0x87,0x59,0x57,0x8b,0xf8,0xc6,0x57,0x58,0xe1,0xe7,0x3,0x50,0x59,
0x2d,0xdf,0xab,0xeb,0xa0,0xee,0x18,0xd8,0x1c,0xe0,0x68,0x82,0xc6,0x26,0x70,0x34,
0x43,0x53,0xb,0xb4,0x3a,0xc1,0x19,0xe0,0xd3,0x45,0x98,0xc0,0x68,0x84,0x68,0x33,
0x98,0x23,0x65,0x33,0xe6,0x8,0xb0,0x98,0x65,0xae,0xd4,0x44,0x48,0x1e,0x6,0x23,
0x86,0xc3,0xa8,0x91,0x90,0x10,0x3b,0x20,0xbe,0x4c,0x48,0xa8,0x9b,0x8d,0x65,0x18,
0xca,0x9c,0xc5,0x28,0x85,0x33,0x20,0x34,0xbc,0x6b,0x2f,0x4f,0x7,0x94,0x95,0xc0,
0xe6,0x95,0x74,0xac,0x5f,0x6,0x6d,0x4d,0x13,0x80,0x15,0xc0,0x45,0x1a,0x2,0x16,
0xbf,0xa,0x2f,0xbe,0x5,0x6b,0xdf,0x85,0x9,0x79,0x62,0xa6,0xd2,0x53,0x44,0x4e,
0x43,0xdc,0x3,0x8c,0xc1,0x1c,0x87,0xee,0xa9,0xb5,0x90,0x38,0xa2,0xe7,0x5e,0x21,
0x3a,0x18,0x35,0x1e,0xc5,0x3,0xba,0xe1,0xa3,0xe9,0x78,0xef,0x1,0x68,0x6f,0x9d,
0x2,0xdc,0xa6,0xd1,0x6c,0x75,0xc7,0xe4,0x17,0x6d,0x6a,0x1e,0xdc,0x95,0x7,0x9,
0x73,0x1,0x94,0xa2,0x87,0x7b,0xdf,0xbc,0xf,0x6,0x3,0xc4,0x26,0xa0,0x24,0x8c,
0x44,0xc9,0xbf,0xc1,0x3f,0x5e,0x43,0xc0,0x4b,0x8f,0x43,0xed,0x66,0x79,0xf6,0x4e,
0x73,0x84,0x0,0x63,0x1,0x94,0x89,0x57,0xf5,0x6b,0x80,0x1a,0x29,0x8e,0x96,0x92,
0x39,0xc9,0xd7,0x34,0x41,0x43,0x80,0x4e,0x27,0x8a,0xe8,0xc,0x80,0x19,0x5f,0x38,
0x1f,0xd5,0xcf,0x18,0x4d,0x2f,0x4f,0xbc,0x12,0xee,0xdf,0x60,0xac,0x86,0x80,0xd5,
0x5f,0x8b,0xb6,0xb5,0xd6,0x6,0x61,0x89,0x83,0x8b,0xa0,0xf8,0xaa,0x1a,0x25,0xf8,
0xca,0x3b,0xe2,0xf,0x5c,0x31,0xd,0xee,0xba,0x29,0x18,0x53,0xc,0xc,0x75,0xc7,
0xa0,0x74,0x17,0x94,0xfe,0x24,0x16,0xe7,0x91,0x79,0xc7,0x57,0xc0,0xea,0x6b,0xf3,
0x41,0x6f,0x80,0x98,0x24,0x94,0xdb,0x16,0x83,0x21,0x14,0xe,0xff,0x84,0xba,0xea,
0x5,0x70,0x7,0xf8,0x16,0x6e,0x17,0x6a,0x93,0x3,0x5c,0x4e,0x7f,0x93,0x86,0x0,
0x6f,0xe4,0xaa,0x71,0x86,0x82,0x8d,0xd2,0x5d,0xf0,0xc3,0xe,0x31,0xad,0x87,0x8e,
0xc8,0xa7,0xcf,0xd4,0x6,0x22,0x2d,0x19,0x1e,0xbd,0xbb,0xef,0x6b,0xa9,0xc5,0x9f,
0xf9,0xbf,0x2b,0xd3,0x66,0xc3,0xc8,0x89,0xa8,0x1b,0x3e,0x40,0xdd,0xf8,0xd1,0x71,
0xd7,0xa1,0x21,0x20,0x2c,0x54,0x3e,0x4d,0x61,0xc7,0xdf,0xc4,0x89,0xe2,0x98,0xd,
0xce,0x2f,0x2,0x77,0x2f,0x24,0xf,0x4f,0x12,0x13,0x9c,0x3f,0x6,0xee,0x9e,0x7d,
0xfc,0xeb,0x29,0x33,0x1f,0x3,0x63,0x18,0xc4,0xa6,0xc0,0xc8,0x89,0xd2,0x76,0xfd,
0x43,0x10,0x93,0xc,0xee,0x0,0x57,0xba,0xcd,0x89,0x52,0x5f,0x8b,0xea,0x74,0xa0,
0x6e,0x96,0x80,0xd2,0x4f,0x40,0x85,0x55,0x3c,0xc1,0x67,0x1f,0x86,0xb,0xb,0xc4,
0xfd,0x1c,0x2c,0x58,0xcc,0x70,0x7b,0x11,0x54,0xd5,0x40,0x6a,0x92,0xfc,0xca,0x69,
0xc9,0x90,0x91,0x2,0xe3,0xf3,0x20,0x3e,0x46,0x3b,0xa6,0xc2,0xda,0xfb,0xf5,0x94,
0xab,0xef,0xed,0xea,0xfd,0x1,0x98,0xe3,0x50,0xa6,0xff,0xae,0x6b,0x9b,0xc3,0x8e,
0xb2,0xa7,0xc,0xc5,0x66,0xc5,0xe3,0x25,0xc0,0xef,0xa,0x87,0x1a,0x51,0xe7,0x16,
0xa1,0xcc,0xbe,0x56,0x4c,0xa0,0x3e,0x84,0x53,0x8e,0x56,0x27,0x7c,0xf9,0x2d,0xbc,
0xfd,0x2f,0xf8,0xf4,0x2b,0xff,0xe3,0xe9,0x73,0x85,0xcd,0x48,0x6e,0x11,0xe5,0xd7,
0xcf,0x81,0xd1,0x74,0xfc,0xb,0x3a,0x5b,0x51,0x6a,0xab,0xa1,0xd5,0x4e,0xc7,0x86,
0xb7,0x0,0xdc,0x7e,0x2,0x2,0x11,0x15,0x9,0x93,0x27,0xc0,0xa4,0x9,0x30,0x36,
0x1b,0xf2,0xb2,0x20,0x33,0x3,0xc,0x3,0x4d,0xa1,0xe,0x0,0xce,0x36,0x28,0xdf,
0xf,0xbb,0xf7,0xc3,0xb6,0x32,0xd8,0x54,0x2,0x3f,0xec,0x14,0x12,0xba,0x21,0x30,
0x16,0xd8,0xa,0x4c,0x38,0x89,0x69,0xd7,0xfa,0x9,0x58,0x7e,0xb7,0xc2,0xba,0x72,
0x95,0xf7,0xb7,0x40,0x43,0x8b,0xb6,0xa7,0x3e,0x4,0x92,0x12,0x44,0x23,0xa7,0x26,
0xc2,0xb0,0x38,0x88,0x8e,0xea,0x14,0x8b,0x37,0x99,0x13,0xa2,0x13,0x2,0x7d,0xb0,
0x39,0x24,0x9e,0x0,0x68,0xb0,0x83,0xad,0xd1,0x2b,0xe,0x31,0xb5,0x55,0xb5,0x50,
0x69,0x85,0xea,0x7a,0xe8,0xe8,0xd0,0xce,0x9b,0x11,0xb,0x77,0x5e,0x0,0x91,0xa1,
0xa,0xb,0x96,0xab,0xdd,0x9,0x48,0x7,0x16,0x1,0xe7,0x78,0xff,0x3e,0x1f,0xc9,
0x6f,0xec,0x44,0x32,0xcd,0x3e,0xa4,0x22,0x49,0xdd,0x63,0x8,0x69,0x0,0xe5,0xc0,
0x53,0x9d,0xd1,0xe0,0x62,0x85,0x91,0xf1,0xe0,0xee,0x80,0x6d,0x15,0xb0,0x71,0x2f,
0x6c,0xda,0xaf,0x52,0x66,0x85,0x3d,0xb5,0xd0,0xe6,0xee,0x27,0xa7,0x27,0x1,0x73,
0x18,0x8c,0x4a,0x84,0xd1,0x29,0x30,0xf5,0x5c,0x85,0xa9,0x99,0x90,0xe3,0xd,0x6e,
0x3f,0x2e,0x81,0x59,0x6f,0x6a,0x8,0xe8,0x8e,0x62,0x20,0x1f,0x98,0x85,0xa4,0xcf,
0x7c,0x98,0x7,0xbc,0x8e,0x24,0x58,0x7f,0x19,0x38,0x40,0x73,0x53,0xeb,0x14,0x18,
0x11,0xf,0x5,0x19,0xf0,0xfb,0xcb,0xc4,0xd7,0xf0,0x74,0xc0,0xa1,0x63,0x50,0x71,
0xc,0x2a,0x6d,0x60,0xb5,0x43,0x7d,0x93,0x8a,0xad,0x5,0x1a,0x9d,0xe0,0x70,0x82,
0xa3,0xd,0x9a,0x9c,0xd0,0xea,0x2,0x67,0x80,0xe9,0x8d,0x8,0x5,0x63,0x8,0x58,
0x4c,0x10,0x65,0x2,0x73,0xa8,0x6c,0xd4,0x62,0x82,0xc4,0x28,0x85,0x14,0xb,0xa4,
0x44,0xc3,0x88,0x38,0xf9,0x1c,0x6a,0x68,0x8,0x78,0xe0,0x43,0x95,0x25,0x1b,0xe0,
0xeb,0x7,0x15,0xa6,0x65,0x49,0x5b,0x88,0xe,0x46,0xc6,0x8b,0x74,0xe2,0x14,0x27,
0xd,0x83,0x4,0x8d,0x2b,0x9c,0x64,0x51,0x88,0x36,0x41,0xd4,0x20,0xfa,0x1,0xa7,
0x13,0x34,0x4,0x3c,0x7e,0x15,0xd4,0xbf,0xa0,0x30,0x3e,0xed,0x54,0x2c,0xe7,0xa4,
0x51,0xc,0x34,0x3,0x3f,0x76,0x6b,0xdf,0x81,0xa4,0xc0,0xb6,0x74,0x1f,0x30,0x88,
0x86,0xed,0x94,0x60,0x3e,0x70,0x1f,0x72,0x38,0x22,0x10,0xdf,0x23,0x7e,0x83,0x26,
0xe9,0xa8,0xb9,0x3,0xfe,0xb1,0x11,0xa,0x9e,0x56,0xd9,0x5b,0x37,0x28,0xb,0x1c,
0xa,0x68,0x33,0xab,0x7d,0xb4,0x6b,0xee,0x80,0x8f,0x4a,0x54,0x4a,0xe,0xc3,0xba,
0x72,0xc8,0x4c,0x8,0xea,0xc2,0x8e,0x8b,0x56,0x17,0xec,0xa8,0x84,0xd2,0xa,0x28,
0xad,0x50,0xa9,0x68,0x80,0xe7,0x8a,0x14,0xc6,0xa6,0xe,0xde,0x9c,0x1a,0x2,0x7c,
0x6e,0xa1,0x3a,0xa8,0x35,0x59,0x58,0xb5,0x1d,0xbe,0xdb,0xaf,0x52,0xd9,0x20,0x26,
0xb6,0xb2,0x1,0x2a,0x1a,0xc4,0xe4,0x6,0xe2,0xf2,0x1c,0xfa,0x22,0x20,0x3,0x71,
0x84,0x32,0x4e,0x60,0x9,0x7b,0x80,0x3f,0x69,0x8,0xb0,0x78,0xb5,0x7f,0x74,0x78,
0xf7,0xff,0x4,0xf,0xf5,0x4d,0x50,0xb4,0x54,0xed,0x91,0x64,0x8b,0x9,0xc6,0xa7,
0xc1,0xf8,0xe1,0x90,0x9f,0xa1,0x30,0x2b,0xbf,0xcf,0x4b,0xad,0x2,0x7e,0x71,0x82,
0xcb,0xb8,0x1c,0x18,0xe5,0x27,0x60,0xcb,0x41,0xb1,0xf3,0x7f,0xbf,0x45,0x61,0xf6,
0xf9,0x30,0xe3,0x44,0x2f,0xdb,0xf,0xc4,0x45,0xc0,0x9f,0xae,0x55,0xa8,0xb2,0xab,
0xa4,0x46,0x2b,0xa4,0xc5,0x40,0x7a,0xac,0xb8,0xbd,0xe7,0xc4,0xa1,0xa9,0x4b,0xaa,
0x2a,0x94,0x1c,0xd6,0xb0,0x65,0xc6,0xbb,0xf9,0x93,0x8,0x86,0xa6,0x75,0x9,0x86,
0xa6,0x66,0xc2,0xad,0xe7,0x29,0x5c,0x33,0xe,0xd2,0x7a,0x8,0x49,0x87,0x1a,0x7,
0xea,0xe1,0xd3,0x1d,0xf0,0xf6,0x26,0x95,0xed,0x95,0xfe,0x66,0x9f,0x2b,0x1c,0x83,
0xf8,0xf6,0xe8,0xde,0xaa,0xd4,0x86,0xc3,0x3d,0xc1,0x1b,0xe,0x63,0xb3,0xe2,0x79,
0xfd,0x76,0x20,0x20,0x1c,0xd6,0xe9,0xba,0x6,0x23,0xe9,0xb1,0x30,0xe5,0x5c,0x18,
0x9b,0xaa,0x90,0x9b,0x4,0xb9,0xc9,0xf2,0xb,0x85,0x5,0xf7,0x78,0x0,0x20,0xae,
0xf3,0xc1,0xa3,0x50,0x56,0xd,0xe5,0xd5,0xb0,0xad,0x52,0xe5,0xdb,0x7d,0xa2,0x17,
0x7c,0x8,0x58,0x9f,0x86,0x0,0x7f,0x42,0xa4,0x3b,0xc,0x61,0x28,0x17,0xcf,0x81,
0xf0,0x28,0xe8,0xf0,0xa0,0xae,0x79,0x3,0xe5,0x60,0x79,0x97,0x84,0x88,0x9f,0x80,
0xef,0x97,0x4b,0x29,0xec,0x9f,0x9f,0xc0,0x8e,0xdd,0xbd,0x2b,0xc1,0x4,0x33,0xa4,
0x46,0x43,0xa2,0x19,0x62,0xc2,0x21,0x26,0x2,0xa2,0x4d,0x60,0x31,0xc9,0x7d,0x1b,
0xa2,0xeb,0xea,0x45,0xda,0x5a,0x3,0xa2,0xc1,0x16,0x89,0x1f,0x6c,0xad,0x60,0x6b,
0x91,0x98,0xa2,0xca,0x2e,0x3a,0xa1,0x27,0xe8,0x43,0x24,0x37,0x71,0xc7,0x8d,0x72,
0x8d,0x3b,0x1e,0xe9,0x99,0x80,0xbe,0xa0,0xcc,0x7e,0x12,0x65,0xc6,0x2,0xd4,0x1d,
0x6b,0x51,0xff,0x7c,0xbd,0x76,0xe,0xff,0xc6,0x62,0xe1,0xc1,0x3b,0x45,0x8e,0xda,
0xe0,0xdb,0x12,0x21,0xa4,0x6c,0xaf,0xc4,0xe8,0x7,0x2a,0xc0,0xe5,0x86,0x3a,0x87,
0x88,0x16,0x27,0x67,0x36,0x4c,0x61,0x90,0x3d,0x2,0xb2,0xcf,0x81,0x31,0xd9,0x52,
0x17,0x2c,0x1c,0x2f,0xa5,0x35,0x90,0xda,0x60,0xaf,0x9b,0x2c,0xb8,0x46,0x92,0xa2,
0xdd,0x61,0xc,0x43,0x99,0x7c,0xa3,0xf4,0xc9,0x2a,0x84,0x8b,0xe7,0x42,0xf5,0x21,
0x70,0x39,0x51,0xf7,0x6d,0x6,0x7a,0x30,0x83,0xcd,0xad,0x92,0xa4,0xbc,0xee,0x32,
0x11,0x1f,0x5c,0x6e,0xa9,0x9,0x56,0x56,0x4b,0x1c,0x5f,0xdf,0x20,0x71,0xbd,0xaf,
0x2e,0xe8,0x68,0x96,0x6a,0x52,0x8b,0x13,0xda,0x2,0xd2,0x70,0xe1,0x61,0x10,0x6a,
0x94,0x7c,0x41,0x54,0x64,0x67,0x7d,0xd0,0x57,0x1b,0x4c,0x19,0x26,0x92,0x94,0xa0,
0x55,0x7e,0xfd,0x85,0x72,0xef,0xd2,0xe3,0xeb,0x0,0x53,0x24,0xca,0x9c,0x67,0x3a,
0x75,0x40,0x6f,0x4,0xdc,0xb3,0x8,0xde,0x5d,0x9,0x9f,0xbd,0x9,0xd3,0x2f,0xe9,
0x6c,0x37,0xe8,0x3b,0x73,0x77,0xa7,0x9,0x82,0xe1,0xa9,0xa8,0x1a,0x57,0xf8,0xa2,
0x42,0x28,0x18,0x2b,0x95,0xda,0xd3,0x1c,0xe,0xe4,0x1c,0x22,0x34,0x1e,0xed,0xdf,
0x8,0xb7,0xf7,0xac,0x42,0x8b,0xcd,0xd7,0xd2,0xa0,0x21,0xe0,0xae,0x9b,0xe0,0x87,
0x15,0x92,0x3,0x3c,0xcd,0xe1,0x41,0xa2,0x3c,0xd4,0x92,0xcf,0xfb,0x35,0x40,0x69,
0x6e,0x4,0x40,0xdd,0xfb,0x9d,0xaf,0x69,0xeb,0x99,0x7e,0x54,0xf6,0x1d,0x0,0x75,
0xc5,0x5f,0xa0,0xe6,0x40,0xdf,0x3d,0xdd,0x2e,0xa8,0xaf,0x47,0xad,0xdd,0x87,0x5a,
0xfc,0x89,0x7f,0xbc,0x86,0x80,0xc5,0xaf,0x42,0x6c,0xbe,0x54,0x6e,0xce,0x0,0x2c,
0x1,0x76,0xd2,0xd4,0x40,0xc7,0xc2,0x4b,0x51,0xbf,0x79,0xf,0xda,0x7a,0xa8,0xeb,
0x7b,0x3a,0x60,0xd7,0x56,0xd4,0x92,0x15,0x74,0x7c,0xf0,0x90,0xaf,0x34,0xb6,0x11,
0xf8,0x40,0xa3,0x4,0xd7,0x6f,0x91,0xec,0x6d,0xf1,0x4e,0xa9,0xce,0xc,0x15,0x8e,
0xda,0xa4,0x34,0xe6,0xab,0xb,0x96,0xee,0x2,0xbb,0x3,0x96,0x3d,0xb,0xd3,0x7a,
0x2f,0xd5,0x3b,0x81,0xe9,0xc0,0x17,0x34,0xd6,0xe5,0xa8,0x4b,0xe6,0xa3,0x2e,0x99,
0xdf,0x9f,0x23,0x32,0x25,0xc0,0xd,0x80,0xa7,0xd7,0x84,0xc8,0x60,0x47,0x83,0x4f,
0xbe,0x2c,0x7e,0x46,0xa5,0x15,0xe,0x55,0x41,0x4b,0x2f,0xe7,0x90,0xca,0xf6,0xf6,
0x49,0x0,0xc8,0xc1,0xa7,0x2,0xe0,0x11,0xe4,0x90,0x54,0xa,0xcd,0xb6,0xde,0xfa,
0x1e,0x42,0xee,0x9a,0x97,0xf0,0x1e,0xbb,0xd5,0x10,0x90,0xec,0xcd,0x1,0xa4,0x26,
0x1e,0x7f,0x13,0x27,0x8a,0x9a,0x7a,0xf8,0xe3,0xcb,0xda,0x76,0x83,0x1e,0x46,0x67,
0x49,0x79,0xcc,0x57,0x1b,0x9c,0xd2,0x77,0x34,0xe8,0x43,0x33,0xf0,0x84,0x57,0xbe,
0x1,0x2e,0x4a,0x1f,0x75,0x33,0xf1,0x29,0x17,0x50,0x73,0xf8,0x2b,0x8e,0xec,0x5b,
0xd,0xb0,0x12,0x28,0xea,0x3e,0x50,0x43,0xc0,0xd2,0xa7,0xe0,0xc1,0xdf,0xc,0xee,
0xed,0x9f,0x18,0xf,0xef,0xbf,0x8,0x47,0x6a,0xa4,0x10,0x9a,0x96,0x2c,0x5,0x97,
0xe4,0x61,0x41,0xa9,0x3e,0xb9,0x0,0xc2,0xc2,0x87,0x61,0x8e,0xce,0xc4,0x56,0xbb,
0xad,0x4b,0x7b,0x77,0xe8,0x91,0xf3,0xfc,0x96,0x2f,0x37,0xc2,0xbc,0x5b,0xe4,0x5c,
0xde,0x50,0x3c,0xfb,0xb7,0x5e,0xd7,0xff,0xbe,0x2e,0x37,0xac,0xdf,0xec,0xff,0xd3,
0xde,0x47,0xd7,0x1,0x43,0x87,0x54,0x4c,0x98,0xbf,0x8,0xc6,0x4d,0x87,0x67,0x96,
0xc2,0xce,0xf2,0x9e,0xcb,0x54,0x43,0x9,0xb7,0x7,0x36,0x6f,0x87,0xc7,0x9e,0x87,
0xcc,0x4b,0xe1,0xd5,0xf7,0x0,0xf1,0xfe,0x96,0x6,0x73,0x1e,0x3d,0xf0,0x7,0xa0,
0xe,0x58,0xf4,0xe3,0xcf,0x44,0x3d,0xf6,0xbc,0x4c,0x1a,0x1d,0x5,0x93,0xc6,0xc3,
0xb8,0x1c,0xc8,0x3d,0x17,0x72,0x33,0x21,0x3d,0xf9,0xe4,0x7c,0xf6,0x9e,0xe0,0xf1,
0x48,0x5d,0x70,0xff,0x61,0x9,0xba,0x76,0xef,0x83,0xad,0x3f,0xc9,0xe1,0x89,0x6e,
0x7,0x34,0x2b,0x90,0xe3,0xf2,0x2b,0x83,0x37,0xbb,0x10,0xd0,0x1,0x3c,0xf,0xbc,
0x81,0x9c,0xcb,0xbf,0x12,0xb8,0xc4,0xd6,0x48,0xd4,0x9a,0xd,0xb0,0x66,0x43,0xd7,
0x1,0x46,0x3,0xa4,0x24,0x42,0xa2,0xb7,0x38,0x1a,0x63,0x11,0xf1,0x15,0x44,0xf5,
0x21,0x12,0xec,0xf8,0xd0,0x20,0xce,0x97,0x1c,0x95,0x6d,0x14,0x13,0xdb,0xe0,0x2d,
0x90,0x5a,0x6b,0x65,0xf3,0x7d,0x9c,0x46,0xa9,0x46,0x4e,0x81,0xae,0x46,0x36,0xde,
0x5b,0xc6,0xf7,0x84,0x11,0xa8,0x72,0x1a,0x91,0xdb,0x6b,0xa9,0xb7,0x7d,0x12,0x52,
0x68,0xcc,0x5,0x72,0x80,0x3c,0x20,0xa1,0xdd,0x5,0x7,0x2b,0x45,0x82,0x8c,0x43,
0x48,0xc5,0x76,0x17,0x50,0x86,0xe4,0xf2,0x77,0x32,0x84,0xaf,0xcc,0x4,0xc2,0x8d,
0x78,0x4a,0x1b,0xbb,0xb5,0x9b,0x90,0xc3,0xc8,0xc9,0xc0,0x30,0xaf,0x44,0xd1,0xf9,
0xd2,0x94,0x2f,0x15,0xe2,0x4b,0xa8,0xb9,0x91,0xa0,0x5,0xc4,0x54,0xd9,0x11,0xa2,
0xed,0xc8,0x63,0x57,0x8d,0xbc,0x9,0x52,0xcb,0x20,0xfc,0xba,0xfd,0xc1,0x40,0x8d,
0x4e,0x2b,0x70,0xc0,0x2b,0x67,0x5,0xce,0xf4,0x60,0xe8,0xa4,0x71,0xd6,0x12,0xe0,
0x6a,0xb3,0xe3,0x6c,0xae,0xc6,0xd5,0xde,0x63,0xfe,0xee,0xac,0x46,0x6f,0x2f,0x4f,
0x3f,0x75,0x2a,0x17,0x35,0x94,0x48,0x2,0xd6,0xd2,0xf5,0xf5,0xf9,0xd5,0xf4,0xf2,
0xfa,0xfc,0xff,0x1,0xbb,0x5b,0x2d,0xb9,0x2,0x36,0x55,0xe1,0x0,0x0,0x0,0x0,
0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
// D:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteInstructor.png
0x0,0x0,0xc,0x43,
0x89,
@@ -3604,6 +3986,11 @@ static const unsigned char qt_resource_name[] = {
0x0,0x69,
0x0,0x6e,0x0,0x73,0x0,0x74,0x0,0x72,0x0,0x75,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x41,0x0,0x72,0x0,0x63,0x0,0x68,0x0,0x69,0x0,0x76,0x0,0x65,
0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
// login-user.png
0x0,0xe,
0x2,0x5,0x62,0x7,
0x0,0x6c,
0x0,0x6f,0x0,0x67,0x0,0x69,0x0,0x6e,0x0,0x2d,0x0,0x75,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
// newGroup.png
0x0,0xc,
0x8,0x5a,0x2a,0x67,
@@ -3701,6 +4088,11 @@ static const unsigned char qt_resource_name[] = {
0x0,0x32,0x7c,0x7,
0x0,0x69,
0x0,0x6e,0x0,0x73,0x0,0x74,0x0,0x72,0x0,0x75,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
// connectDB.png
0x0,0xd,
0xc,0x4f,0xc1,0xa7,
0x0,0x63,
0x0,0x6f,0x0,0x6e,0x0,0x6e,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x44,0x0,0x42,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
// deleteInstructor.png
0x0,0x14,
0x0,0x80,0xf3,0x67,
@@ -3720,7 +4112,7 @@ static const unsigned char qt_resource_struct[] = {
0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
// :/icons
0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x5,
0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x17,0x0,0x0,0x0,0x5,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
// :/blankXML
0x0,0x0,0x0,0x10,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x3,
@@ -3732,67 +4124,73 @@ static const unsigned char qt_resource_struct[] = {
0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
0x0,0x0,0x1,0x8f,0x3c,0xd3,0xb3,0x10,
// :/icons/archive.png
0x0,0x0,0x1,0xc2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x4b,0xe6,
0x0,0x0,0x1,0xe4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x56,0xad,
0x0,0x0,0x1,0x8e,0xe5,0x61,0xed,0x40,
// :/icons/instructor.png
0x0,0x0,0x3,0x6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xb1,0x4e,
0x0,0x0,0x3,0x28,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xbc,0x15,
0x0,0x0,0x1,0x8f,0x37,0xdf,0xf0,0x30,
// :/icons/deleteTrainee.png
0x0,0x0,0x2,0x76,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x7f,0x5,
0x0,0x0,0x2,0x98,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x89,0xcc,
0x0,0x0,0x1,0x8e,0xa2,0x7c,0xe5,0x70,
// :/icons/deleteInstructor.png
0x0,0x0,0x3,0x28,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xbc,0x42,
0x0,0x0,0x3,0x6a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xd3,0xb6,
0x0,0x0,0x1,0x8f,0x4c,0x25,0x16,0x10,
// :/icons/addTrainee.png
0x0,0x0,0x1,0xa0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x41,0xf0,
0x0,0x0,0x1,0xc2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x4c,0xb7,
0x0,0x0,0x1,0x8e,0xa2,0x7c,0x31,0xc0,
// :/icons/addInstructor.png
0x0,0x0,0x2,0x9e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x89,0x39,
0x0,0x0,0x2,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x94,0x0,
0x0,0x0,0x1,0x8f,0x4c,0x22,0x5e,0xc0,
// :/icons/DB-instructors.png
0x0,0x0,0x2,0xc6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x95,0x3a,
0x0,0x0,0x2,0xe8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa0,0x1,
0x0,0x0,0x1,0x8f,0x71,0x7a,0x10,0x0,
// :/icons/login-user.png
0x0,0x0,0x0,0xa4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xd,0x19,
0x0,0x0,0x1,0x91,0x92,0xb9,0xf4,0x90,
// :/icons/DB-trainees.png
0x0,0x0,0x3,0x56,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xc8,0x89,
0x0,0x0,0x3,0x98,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xdf,0xfd,
0x0,0x0,0x1,0x8f,0x71,0x78,0xa0,0xd0,
// :/icons/deleteGroup.png
0x0,0x0,0x0,0xf4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x24,0x58,
0x0,0x0,0x1,0x16,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2f,0x1f,
0x0,0x0,0x1,0x8e,0xa2,0x78,0x3a,0x20,
// :/icons/admin.png
0x0,0x0,0x1,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3a,0xb9,
0x0,0x0,0x1,0x64,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x45,0x80,
0x0,0x0,0x1,0x8f,0x57,0x70,0x81,0x30,
// :/icons/trainee.png
0x0,0x0,0x2,0x2e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x69,0x5a,
0x0,0x0,0x2,0x50,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x74,0x21,
0x0,0x0,0x1,0x8e,0x8a,0x13,0x52,0xd0,
// :/icons/instructorFromArchive.png
0x0,0x0,0x1,0xf6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x5c,0xf4,
0x0,0x0,0x2,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x67,0xbb,
0x0,0x0,0x1,0x8f,0x7b,0x72,0x10,0x80,
// :/icons/group.png
0x0,0x0,0x1,0xde,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x51,0xc2,
0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x5c,0x89,
0x0,0x0,0x1,0x8e,0x8a,0x11,0x5e,0xd0,
// :/icons/instructorArchive.png
0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xa2,
0x0,0x0,0x1,0x8f,0x70,0x2c,0x14,0x0,
// :/icons/instructorAdmin.png
0x0,0x0,0x2,0x4a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x72,0x3a,
0x0,0x0,0x2,0x6c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x7d,0x1,
0x0,0x0,0x1,0x8f,0x57,0x71,0xc1,0x80,
// :/icons/newGroup.png
0x0,0x0,0x0,0xa4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xd,0x19,
0x0,0x0,0x0,0xc6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x17,0xe0,
0x0,0x0,0x1,0x8e,0xa2,0x7a,0x9b,0x80,
// :/icons/traineeArchive.png
0x0,0x0,0x1,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x30,0x71,
0x0,0x0,0x1,0x3a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3b,0x38,
0x0,0x0,0x1,0x8e,0xe6,0x68,0x78,0x30,
// :/icons/circleGray.png
0x0,0x0,0x1,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3d,0x50,
0x0,0x0,0x1,0x7c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x48,0x17,
0x0,0x0,0x1,0x8f,0x9,0x68,0x18,0x40,
// :/icons/circleGreen.png
0x0,0x0,0x1,0x7c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3e,0xdc,
0x0,0x0,0x1,0x9e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x49,0xa3,
0x0,0x0,0x1,0x8f,0x9,0x69,0xb6,0x50,
// :/icons/edit.png
0x0,0x0,0x2,0xf0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa6,0x69,
0x0,0x0,0x3,0x12,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xb1,0x30,
0x0,0x0,0x1,0x8e,0x99,0xb2,0x8f,0x80,
// :/icons/connectDB.png
0x0,0x0,0x3,0x4a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xc7,0x9,
0x0,0x0,0x1,0x93,0x3f,0x60,0x70,0xee,
// :/icons/traineeFromArchive.png
0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1a,0x2,
0x0,0x0,0x0,0xe4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x24,0xc9,
0x0,0x0,0x1,0x8f,0x7b,0x8d,0xdd,0xb0,
};

View File

@@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_InstructorsView_t {
QByteArrayData data[1];
char stringdata0[16];
QByteArrayData data[5];
char stringdata0[62];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -32,10 +32,15 @@ struct qt_meta_stringdata_InstructorsView_t {
)
static const qt_meta_stringdata_InstructorsView_t qt_meta_stringdata_InstructorsView = {
{
QT_MOC_LITERAL(0, 0, 15) // "InstructorsView"
QT_MOC_LITERAL(0, 0, 15), // "InstructorsView"
QT_MOC_LITERAL(1, 16, 17), // "slot_NeedUpdateUI"
QT_MOC_LITERAL(2, 34, 0), // ""
QT_MOC_LITERAL(3, 35, 14), // "treeInstructor"
QT_MOC_LITERAL(4, 50, 11) // "treeTrainee"
},
"InstructorsView"
"InstructorsView\0slot_NeedUpdateUI\0\0"
"treeInstructor\0treeTrainee"
};
#undef QT_MOC_LITERAL
@@ -45,22 +50,32 @@ static const uint qt_meta_data_InstructorsView[] = {
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 2, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, 3, 4,
0 // eod
};
void InstructorsView::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<InstructorsView *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->slot_NeedUpdateUI((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject InstructorsView::staticMetaObject = { {
@@ -89,6 +104,17 @@ void *InstructorsView::qt_metacast(const char *_clname)
int InstructorsView::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = CommonView::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP

View File

@@ -23,7 +23,7 @@ QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ViewerInstructors_t {
QByteArrayData data[5];
char stringdata0[81];
char stringdata0[82];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -33,14 +33,14 @@ struct qt_meta_stringdata_ViewerInstructors_t {
static const qt_meta_stringdata_ViewerInstructors_t qt_meta_stringdata_ViewerInstructors = {
{
QT_MOC_LITERAL(0, 0, 17), // "ViewerInstructors"
QT_MOC_LITERAL(1, 18, 20), // "slot_LanguageChanged"
QT_MOC_LITERAL(2, 39, 0), // ""
QT_MOC_LITERAL(3, 40, 8), // "language"
QT_MOC_LITERAL(4, 49, 31) // "on_btnEditorInstructors_clicked"
QT_MOC_LITERAL(1, 18, 24), // "signal_BlockAutorization"
QT_MOC_LITERAL(2, 43, 0), // ""
QT_MOC_LITERAL(3, 44, 5), // "block"
QT_MOC_LITERAL(4, 50, 31) // "on_btnEditorInstructors_clicked"
},
"ViewerInstructors\0slot_LanguageChanged\0"
"\0language\0on_btnEditorInstructors_clicked"
"ViewerInstructors\0signal_BlockAutorization\0"
"\0block\0on_btnEditorInstructors_clicked"
};
#undef QT_MOC_LITERAL
@@ -55,14 +55,18 @@ static const uint qt_meta_data_ViewerInstructors[] = {
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 24, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
1, 1, 24, 2, 0x0a /* Public */,
4, 0, 27, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::Bool, 3,
// slots: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
0 // eod
@@ -74,10 +78,19 @@ void ViewerInstructors::qt_static_metacall(QObject *_o, QMetaObject::Call _c, in
auto *_t = static_cast<ViewerInstructors *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->slot_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 0: _t->signal_BlockAutorization((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 1: _t->on_btnEditorInstructors_clicked(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (ViewerInstructors::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ViewerInstructors::signal_BlockAutorization)) {
*result = 0;
return;
}
}
}
}
@@ -120,5 +133,12 @@ int ViewerInstructors::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
}
return _id;
}
// SIGNAL 0
void ViewerInstructors::signal_BlockAutorization(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -42,6 +42,7 @@ public:
DialogAuthorizationInstructor->resize(300, 140);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
DialogAuthorizationInstructor->setFont(font);
gridLayout = new QGridLayout(DialogAuthorizationInstructor);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
@@ -51,11 +52,15 @@ public:
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
label = new QLabel(DialogAuthorizationInstructor);
label->setObjectName(QString::fromUtf8("label"));
QFont font1;
font1.setPointSize(10);
label->setFont(font1);
horizontalLayout->addWidget(label);
editLogin = new QLineEdit(DialogAuthorizationInstructor);
editLogin->setObjectName(QString::fromUtf8("editLogin"));
editLogin->setFont(font1);
horizontalLayout->addWidget(editLogin);
@@ -66,11 +71,13 @@ public:
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
label_2 = new QLabel(DialogAuthorizationInstructor);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setFont(font1);
horizontalLayout_2->addWidget(label_2);
editPassword = new QLineEdit(DialogAuthorizationInstructor);
editPassword->setObjectName(QString::fromUtf8("editPassword"));
editPassword->setFont(font1);
horizontalLayout_2->addWidget(editPassword);
@@ -79,6 +86,7 @@ public:
buttonBox = new QDialogButtonBox(DialogAuthorizationInstructor);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
buttonBox->setFont(font1);
buttonBox->setLocale(QLocale(QLocale::English, QLocale::UnitedStates));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

View File

@@ -39,6 +39,7 @@ public:
DialogEditGroup->resize(300, 96);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
DialogEditGroup->setFont(font);
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/group.png"), QSize(), QIcon::Normal, QIcon::Off);
@@ -51,11 +52,15 @@ public:
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
label_2 = new QLabel(DialogEditGroup);
label_2->setObjectName(QString::fromUtf8("label_2"));
QFont font1;
font1.setPointSize(10);
label_2->setFont(font1);
horizontalLayout->addWidget(label_2);
editName = new QLineEdit(DialogEditGroup);
editName->setObjectName(QString::fromUtf8("editName"));
editName->setFont(font1);
horizontalLayout->addWidget(editName);
@@ -67,6 +72,7 @@ public:
buttonBox = new QDialogButtonBox(DialogEditGroup);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
buttonBox->setFont(font1);
buttonBox->setLocale(QLocale(QLocale::English, QLocale::UnitedStates));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

View File

@@ -53,6 +53,7 @@ public:
DialogEditInstructor->resize(300, 286);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
DialogEditInstructor->setFont(font);
gridLayout = new QGridLayout(DialogEditInstructor);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
@@ -62,6 +63,9 @@ public:
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
label_2 = new QLabel(DialogEditInstructor);
label_2->setObjectName(QString::fromUtf8("label_2"));
QFont font1;
font1.setPointSize(10);
label_2->setFont(font1);
horizontalLayout->addWidget(label_2);
@@ -78,6 +82,7 @@ public:
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
label_3 = new QLabel(DialogEditInstructor);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setFont(font1);
horizontalLayout_2->addWidget(label_3);
@@ -93,6 +98,7 @@ public:
horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
label_4 = new QLabel(DialogEditInstructor);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setFont(font1);
horizontalLayout_3->addWidget(label_4);
@@ -109,6 +115,7 @@ public:
checkIsAdmin = new QCheckBox(DialogEditInstructor);
checkIsAdmin->setObjectName(QString::fromUtf8("checkIsAdmin"));
checkIsAdmin->setEnabled(false);
checkIsAdmin->setFont(font1);
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/admin.png"), QSize(), QIcon::Normal, QIcon::Off);
icon.addFile(QString::fromUtf8(":/icons/admin.png"), QSize(), QIcon::Disabled, QIcon::Off);
@@ -125,6 +132,7 @@ public:
checkArchived = new QCheckBox(DialogEditInstructor);
checkArchived->setObjectName(QString::fromUtf8("checkArchived"));
checkArchived->setEnabled(false);
checkArchived->setFont(font1);
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/icons/archive.png"), QSize(), QIcon::Normal, QIcon::Off);
icon1.addFile(QString::fromUtf8(":/icons/archive.png"), QSize(), QIcon::Disabled, QIcon::Off);
@@ -141,6 +149,7 @@ public:
checkLoggedIn = new QCheckBox(DialogEditInstructor);
checkLoggedIn->setObjectName(QString::fromUtf8("checkLoggedIn"));
checkLoggedIn->setEnabled(false);
checkLoggedIn->setFont(font1);
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/icons/circleGreen.png"), QSize(), QIcon::Normal, QIcon::Off);
icon2.addFile(QString::fromUtf8(":/icons/circleGreen.png"), QSize(), QIcon::Disabled, QIcon::Off);
@@ -157,6 +166,7 @@ public:
buttonBox = new QDialogButtonBox(DialogEditInstructor);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
buttonBox->setFont(font1);
buttonBox->setLocale(QLocale(QLocale::English, QLocale::UnitedStates));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

View File

@@ -51,6 +51,7 @@ public:
DialogEditTrainee->resize(300, 252);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
DialogEditTrainee->setFont(font);
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/trainee.png"), QSize(), QIcon::Normal, QIcon::Off);
@@ -59,6 +60,9 @@ public:
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
buttonBox = new QDialogButtonBox(DialogEditTrainee);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
QFont font1;
font1.setPointSize(10);
buttonBox->setFont(font1);
buttonBox->setLocale(QLocale(QLocale::English, QLocale::UnitedStates));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
@@ -71,11 +75,13 @@ public:
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
label_2 = new QLabel(DialogEditTrainee);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setFont(font1);
horizontalLayout->addWidget(label_2);
editName = new QLineEdit(DialogEditTrainee);
editName->setObjectName(QString::fromUtf8("editName"));
editName->setFont(font1);
horizontalLayout->addWidget(editName);
@@ -86,11 +92,13 @@ public:
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
label_3 = new QLabel(DialogEditTrainee);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setFont(font1);
horizontalLayout_2->addWidget(label_3);
editLogin = new QLineEdit(DialogEditTrainee);
editLogin->setObjectName(QString::fromUtf8("editLogin"));
editLogin->setFont(font1);
horizontalLayout_2->addWidget(editLogin);
@@ -101,11 +109,13 @@ public:
horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
label_4 = new QLabel(DialogEditTrainee);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setFont(font1);
horizontalLayout_3->addWidget(label_4);
editPassword = new QLineEdit(DialogEditTrainee);
editPassword->setObjectName(QString::fromUtf8("editPassword"));
editPassword->setFont(font1);
horizontalLayout_3->addWidget(editPassword);
@@ -117,6 +127,7 @@ public:
checkArchived = new QCheckBox(DialogEditTrainee);
checkArchived->setObjectName(QString::fromUtf8("checkArchived"));
checkArchived->setEnabled(false);
checkArchived->setFont(font1);
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/icons/archive.png"), QSize(), QIcon::Normal, QIcon::Off);
icon1.addFile(QString::fromUtf8(":/icons/archive.png"), QSize(), QIcon::Disabled, QIcon::Off);
@@ -133,6 +144,7 @@ public:
checkLoggedIn = new QCheckBox(DialogEditTrainee);
checkLoggedIn->setObjectName(QString::fromUtf8("checkLoggedIn"));
checkLoggedIn->setEnabled(false);
checkLoggedIn->setFont(font1);
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/icons/circleGreen.png"), QSize(), QIcon::Normal, QIcon::Off);
icon2.addFile(QString::fromUtf8(":/icons/circleGreen.png"), QSize(), QIcon::Disabled, QIcon::Off);

View File

@@ -15,10 +15,8 @@
#include <QtWidgets/QDialog>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
@@ -32,7 +30,6 @@ public:
QGridLayout *gridLayout;
QHBoxLayout *horizontalLayout_1;
QVBoxLayout *verticalLayout_1;
QTreeWidget *treeWidget;
QWidget *widget_2;
QGridLayout *gridLayout_3;
QVBoxLayout *verticalLayout_2;
@@ -48,12 +45,14 @@ public:
if (EditorInstructors->objectName().isEmpty())
EditorInstructors->setObjectName(QString::fromUtf8("EditorInstructors"));
EditorInstructors->resize(1300, 800);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
EditorInstructors->setFont(font);
gridLayout_2 = new QGridLayout(EditorInstructors);
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
widget = new QWidget(EditorInstructors);
widget->setObjectName(QString::fromUtf8("widget"));
QFont font;
font.setPointSize(12);
widget->setFont(font);
widget->setStyleSheet(QString::fromUtf8("background-color: rgb(240, 240, 240);"));
gridLayout = new QGridLayout(widget);
@@ -62,20 +61,6 @@ public:
horizontalLayout_1->setObjectName(QString::fromUtf8("horizontalLayout_1"));
verticalLayout_1 = new QVBoxLayout();
verticalLayout_1->setObjectName(QString::fromUtf8("verticalLayout_1"));
treeWidget = new QTreeWidget(widget);
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
treeWidget->setHeaderItem(__qtreewidgetitem);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
QFont font1;
font1.setFamily(QString::fromUtf8("Tahoma"));
font1.setPointSize(10);
treeWidget->setFont(font1);
treeWidget->setIconSize(QSize(20, 20));
treeWidget->setColumnCount(1);
verticalLayout_1->addWidget(treeWidget);
horizontalLayout_1->addLayout(verticalLayout_1);
@@ -87,9 +72,7 @@ public:
sizePolicy.setHeightForWidth(widget_2->sizePolicy().hasHeightForWidth());
widget_2->setSizePolicy(sizePolicy);
widget_2->setMinimumSize(QSize(127, 0));
QFont font2;
font2.setFamily(QString::fromUtf8("Tahoma"));
widget_2->setFont(font2);
widget_2->setFont(font);
widget_2->setStyleSheet(QString::fromUtf8("background-color: rgb(180, 180, 180);"));
gridLayout_3 = new QGridLayout(widget_2);
gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
@@ -103,7 +86,7 @@ public:
sizePolicy1.setHeightForWidth(btnNewInstructor->sizePolicy().hasHeightForWidth());
btnNewInstructor->setSizePolicy(sizePolicy1);
btnNewInstructor->setMinimumSize(QSize(160, 55));
btnNewInstructor->setFont(font1);
btnNewInstructor->setFont(font);
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/addInstructor.png"), QSize(), QIcon::Normal, QIcon::Off);
btnNewInstructor->setIcon(icon);
@@ -117,7 +100,7 @@ public:
sizePolicy1.setHeightForWidth(btnDeleteInstructor->sizePolicy().hasHeightForWidth());
btnDeleteInstructor->setSizePolicy(sizePolicy1);
btnDeleteInstructor->setMinimumSize(QSize(160, 55));
btnDeleteInstructor->setFont(font1);
btnDeleteInstructor->setFont(font);
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/icons/deleteInstructor.png"), QSize(), QIcon::Normal, QIcon::Off);
btnDeleteInstructor->setIcon(icon1);
@@ -129,7 +112,7 @@ public:
btnToOrFromArchive = new QToolButton(widget_2);
btnToOrFromArchive->setObjectName(QString::fromUtf8("btnToOrFromArchive"));
btnToOrFromArchive->setMinimumSize(QSize(160, 55));
btnToOrFromArchive->setFont(font1);
btnToOrFromArchive->setFont(font);
QIcon icon2;
icon2.addFile(QString::fromUtf8(":/icons/instructorArchive.png"), QSize(), QIcon::Normal, QIcon::Off);
btnToOrFromArchive->setIcon(icon2);
@@ -143,7 +126,7 @@ public:
sizePolicy1.setHeightForWidth(btnEdit->sizePolicy().hasHeightForWidth());
btnEdit->setSizePolicy(sizePolicy1);
btnEdit->setMinimumSize(QSize(160, 55));
btnEdit->setFont(font1);
btnEdit->setFont(font);
QIcon icon3;
icon3.addFile(QString::fromUtf8(":/icons/edit.png"), QSize(), QIcon::Normal, QIcon::Off);
btnEdit->setIcon(icon3);
@@ -161,7 +144,7 @@ public:
sizePolicy1.setHeightForWidth(btnArchive->sizePolicy().hasHeightForWidth());
btnArchive->setSizePolicy(sizePolicy1);
btnArchive->setMinimumSize(QSize(160, 55));
btnArchive->setFont(font1);
btnArchive->setFont(font);
QIcon icon4;
icon4.addFile(QString::fromUtf8(":/icons/archive.png"), QSize(), QIcon::Normal, QIcon::Off);
btnArchive->setIcon(icon4);

View File

@@ -15,10 +15,8 @@
#include <QtWidgets/QDialog>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
@@ -32,7 +30,6 @@ public:
QGridLayout *gridLayout;
QHBoxLayout *horizontalLayout_1;
QVBoxLayout *verticalLayout_1;
QTreeWidget *treeWidget;
QWidget *widget_2;
QGridLayout *gridLayout_3;
QVBoxLayout *verticalLayout_2;
@@ -58,9 +55,7 @@ public:
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
widget = new QWidget(EditorTrainees);
widget->setObjectName(QString::fromUtf8("widget"));
QFont font1;
font1.setPointSize(12);
widget->setFont(font1);
widget->setFont(font);
widget->setStyleSheet(QString::fromUtf8("background-color: rgb(240, 240, 240);"));
gridLayout = new QGridLayout(widget);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
@@ -68,17 +63,6 @@ public:
horizontalLayout_1->setObjectName(QString::fromUtf8("horizontalLayout_1"));
verticalLayout_1 = new QVBoxLayout();
verticalLayout_1->setObjectName(QString::fromUtf8("verticalLayout_1"));
treeWidget = new QTreeWidget(widget);
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
treeWidget->setHeaderItem(__qtreewidgetitem);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
treeWidget->setFont(font);
treeWidget->setIconSize(QSize(20, 20));
treeWidget->setColumnCount(1);
verticalLayout_1->addWidget(treeWidget);
horizontalLayout_1->addLayout(verticalLayout_1);
@@ -90,9 +74,7 @@ public:
sizePolicy.setHeightForWidth(widget_2->sizePolicy().hasHeightForWidth());
widget_2->setSizePolicy(sizePolicy);
widget_2->setMinimumSize(QSize(130, 0));
QFont font2;
font2.setFamily(QString::fromUtf8("Tahoma"));
widget_2->setFont(font2);
widget_2->setFont(font);
widget_2->setStyleSheet(QString::fromUtf8("background-color: rgb(180, 180, 180);"));
gridLayout_3 = new QGridLayout(widget_2);
gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));

View File

@@ -10,10 +10,14 @@
#define UI_INSTRUCTORSANDTRAINEESWIDGET_H
#include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
@@ -27,27 +31,84 @@ public:
QGroupBox *groupBox;
QGridLayout *gridLayout_2;
QVBoxLayout *verticalLayout;
QVBoxLayout *verticalLayout_2;
QHBoxLayout *horizontalLayout_2;
QToolButton *btnConnectionToDB;
QToolButton *btnAuthorizationInstructor;
QSpacerItem *horizontalSpacer;
QLabel *label;
QLabel *lblLoggedInInstructor;
void setupUi(QWidget *InstructorsAndTraineesWidget)
{
if (InstructorsAndTraineesWidget->objectName().isEmpty())
InstructorsAndTraineesWidget->setObjectName(QString::fromUtf8("InstructorsAndTraineesWidget"));
InstructorsAndTraineesWidget->resize(400, 300);
InstructorsAndTraineesWidget->resize(1000, 800);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
InstructorsAndTraineesWidget->setFont(font);
gridLayout = new QGridLayout(InstructorsAndTraineesWidget);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
groupBox = new QGroupBox(InstructorsAndTraineesWidget);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
QFont font;
font.setPointSize(10);
groupBox->setFont(font);
gridLayout_2 = new QGridLayout(groupBox);
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
verticalLayout = new QVBoxLayout();
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
gridLayout_2->addLayout(verticalLayout, 0, 0, 1, 1);
gridLayout_2->addLayout(verticalLayout, 1, 0, 1, 1);
verticalLayout_2 = new QVBoxLayout();
verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
btnConnectionToDB = new QToolButton(groupBox);
btnConnectionToDB->setObjectName(QString::fromUtf8("btnConnectionToDB"));
btnConnectionToDB->setMinimumSize(QSize(130, 58));
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/connectDB.png"), QSize(), QIcon::Normal, QIcon::Off);
btnConnectionToDB->setIcon(icon);
btnConnectionToDB->setIconSize(QSize(32, 32));
btnConnectionToDB->setCheckable(true);
btnConnectionToDB->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
horizontalLayout_2->addWidget(btnConnectionToDB);
btnAuthorizationInstructor = new QToolButton(groupBox);
btnAuthorizationInstructor->setObjectName(QString::fromUtf8("btnAuthorizationInstructor"));
btnAuthorizationInstructor->setMinimumSize(QSize(140, 58));
QIcon icon1;
icon1.addFile(QString::fromUtf8(":/icons/login-user.png"), QSize(), QIcon::Normal, QIcon::Off);
btnAuthorizationInstructor->setIcon(icon1);
btnAuthorizationInstructor->setIconSize(QSize(32, 32));
btnAuthorizationInstructor->setCheckable(true);
btnAuthorizationInstructor->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
horizontalLayout_2->addWidget(btnAuthorizationInstructor);
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
label = new QLabel(groupBox);
label->setObjectName(QString::fromUtf8("label"));
horizontalLayout_2->addWidget(label);
lblLoggedInInstructor = new QLabel(groupBox);
lblLoggedInInstructor->setObjectName(QString::fromUtf8("lblLoggedInInstructor"));
horizontalLayout_2->addWidget(lblLoggedInInstructor);
verticalLayout_2->addLayout(horizontalLayout_2);
gridLayout_2->addLayout(verticalLayout_2, 0, 0, 1, 1);
horizontalLayout->addWidget(groupBox);
@@ -65,6 +126,10 @@ public:
{
InstructorsAndTraineesWidget->setWindowTitle(QCoreApplication::translate("InstructorsAndTraineesWidget", "Form", nullptr));
groupBox->setTitle(QCoreApplication::translate("InstructorsAndTraineesWidget", "Database LMS", nullptr));
btnConnectionToDB->setText(QCoreApplication::translate("InstructorsAndTraineesWidget", "Connection to DB", nullptr));
btnAuthorizationInstructor->setText(QCoreApplication::translate("InstructorsAndTraineesWidget", "Authorization Instructor", nullptr));
label->setText(QCoreApplication::translate("InstructorsAndTraineesWidget", "Logged in instructor:", nullptr));
lblLoggedInInstructor->setText(QCoreApplication::translate("InstructorsAndTraineesWidget", "none", nullptr));
} // retranslateUi
};

View File

@@ -15,10 +15,8 @@
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
@@ -35,7 +33,6 @@ public:
QVBoxLayout *verticalLayout;
QToolButton *btnEditorInstructors;
QSpacerItem *verticalSpacer;
QTreeWidget *treeWidget;
void setupUi(QWidget *ViewerInstructors)
{
@@ -44,6 +41,7 @@ public:
ViewerInstructors->resize(400, 300);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
ViewerInstructors->setFont(font);
gridLayout = new QGridLayout(ViewerInstructors);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
@@ -62,6 +60,7 @@ public:
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
btnEditorInstructors = new QToolButton(groupBox);
btnEditorInstructors->setObjectName(QString::fromUtf8("btnEditorInstructors"));
btnEditorInstructors->setEnabled(false);
btnEditorInstructors->setMinimumSize(QSize(130, 58));
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/DB-instructors.png"), QSize(), QIcon::Normal, QIcon::Off);
@@ -78,19 +77,6 @@ public:
horizontalLayout_2->addLayout(verticalLayout);
treeWidget = new QTreeWidget(groupBox);
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
treeWidget->setHeaderItem(__qtreewidgetitem);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
QFont font2;
font2.setFamily(QString::fromUtf8("Tahoma"));
font2.setPointSize(10);
treeWidget->setFont(font2);
treeWidget->setIconSize(QSize(20, 20));
horizontalLayout_2->addWidget(treeWidget);
gridLayout_2->addLayout(horizontalLayout_2, 0, 0, 1, 1);

View File

@@ -15,10 +15,8 @@
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
@@ -35,7 +33,6 @@ public:
QVBoxLayout *verticalLayout;
QToolButton *btnEditorTrainees;
QSpacerItem *verticalSpacer;
QTreeWidget *treeWidget;
void setupUi(QWidget *ViewerTrainees)
{
@@ -44,6 +41,7 @@ public:
ViewerTrainees->resize(400, 300);
QFont font;
font.setFamily(QString::fromUtf8("Tahoma"));
font.setPointSize(10);
ViewerTrainees->setFont(font);
gridLayout = new QGridLayout(ViewerTrainees);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
@@ -62,6 +60,7 @@ public:
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
btnEditorTrainees = new QToolButton(groupBox);
btnEditorTrainees->setObjectName(QString::fromUtf8("btnEditorTrainees"));
btnEditorTrainees->setEnabled(false);
btnEditorTrainees->setMinimumSize(QSize(130, 58));
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/DB-trainees.png"), QSize(), QIcon::Normal, QIcon::Off);
@@ -78,20 +77,6 @@ public:
horizontalLayout_2->addLayout(verticalLayout);
treeWidget = new QTreeWidget(groupBox);
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
treeWidget->setHeaderItem(__qtreewidgetitem);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
QFont font2;
font2.setFamily(QString::fromUtf8("Tahoma"));
font2.setPointSize(10);
treeWidget->setFont(font2);
treeWidget->setIconSize(QSize(20, 20));
treeWidget->setColumnCount(1);
horizontalLayout_2->addWidget(treeWidget);
gridLayout_2->addLayout(horizontalLayout_2, 0, 0, 1, 1);

View File

@@ -230,7 +230,7 @@ build InstructorsAndTrainees_autogen: phony CMakeFiles/InstructorsAndTrainees_au
#############################################
# Custom command for InstructorsAndTrainees_autogen\EWIEGA46WW\qrc_resources.cpp
build InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp | ${cmake_ninja_workdir}InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp: CUSTOM_COMMAND D$:/LMS/DB_IaT/InstructorsAndTrainees/resources.qrc CMakeFiles/InstructorsAndTrainees_autogen.dir/AutoRcc_resources_EWIEGA46WW_Info.json D$:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/instructors.xml D$:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/groupsTrainees.xml D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/newGroup.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/traineeFromArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteGroup.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/traineeArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/admin.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/circleGray.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/circleGreen.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/addTrainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/archive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/group.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorFromArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/trainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorAdmin.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteTrainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/addInstructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-instructors.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/edit.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteInstructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-trainees.png C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/rcc.exe || InstructorsAndTrainees_autogen
build InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp | ${cmake_ninja_workdir}InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp: CUSTOM_COMMAND D$:/LMS/DB_IaT/InstructorsAndTrainees/resources.qrc CMakeFiles/InstructorsAndTrainees_autogen.dir/AutoRcc_resources_EWIEGA46WW_Info.json D$:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/instructors.xml D$:/LMS/DB_IaT/InstructorsAndTrainees/blankXML/groupsTrainees.xml D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/login-user.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/newGroup.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/traineeFromArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteGroup.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/traineeArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/admin.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/circleGray.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/circleGreen.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/addTrainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/archive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/group.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorFromArchive.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/trainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructorAdmin.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteTrainee.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/addInstructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-instructors.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/edit.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/instructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/connectDB.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/deleteInstructor.png D$:/LMS/DB_IaT/InstructorsAndTrainees/icons/DB-trainees.png C$:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/rcc.exe || InstructorsAndTrainees_autogen
COMMAND = C:\Windows\system32\cmd.exe /C "cd /D D:\LMS\DB_IaT\Debug64 && C:\msys64\mingw64\bin\cmake.exe -E cmake_autorcc D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen.dir/AutoRcc_resources_EWIEGA46WW_Info.json Debug"
DESC = Automatic RCC for resources.qrc
restat = 1

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2024-11-13T17:15:54. -->
<!-- Written by QtCreator 4.11.1, 2024-11-25T15:15:00. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

View File

@@ -1,15 +1,17 @@
#include "commonview.h"
CommonView::CommonView(TypeView type, bool adminMode, QWidget *parent):
CommonView::CommonView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent):
QWidget(parent),
dbLMS(dbLMS),
treeWidget(nullptr),
typeView(type),
archiveVisible(false),
notLoggedInVisible(false),
adminMode(adminMode)
adminMode(false),
authComplited(false)
{
treeWidget = new QTreeWidget();
}
void CommonView::setItemColorArchive(QTreeWidgetItem *item)
@@ -24,8 +26,8 @@ void CommonView::setItemColorNoArchive(QTreeWidgetItem *item)
void CommonView::setItemColor(QTreeWidgetItem *item, QColor color)
{
int columnCount = treeWidget->columnCount();
//int columnCount = treeWidget->columnCount();
for (int i = 0; i < columnCount; i++)
for (int i = 0; i < item->columnCount(); i++)
item->setBackground(i, color);
}

View File

@@ -3,7 +3,9 @@
#include <QTreeWidget>
#include <QTranslator>
#include <QMutex>
#include "instructorsAndTrainees_global.h"
#include "interfacedatabaselms.h"
//Родительский класс представления БД Инструкторов/Обучаемых (самого верхнего уровня)
@@ -19,7 +21,17 @@ public:
};
public:
CommonView(TypeView type, bool adminMode, QWidget *parent = nullptr);
CommonView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent = nullptr);
public:
void setAdminMode(bool adminMode)
{
this->adminMode = adminMode;
}
void setAuthComplited(bool authComplited)
{
this->authComplited = authComplited;
}
protected:
void setArchiveVisible(bool archiveVisible)
@@ -37,14 +49,14 @@ protected:
void setItemColor(QTreeWidgetItem* item, QColor color);
protected:
InterfaceDataBaseLMS* dbLMS;
QTreeWidget* treeWidget;
QMutex mtxTreeWidget;
TypeView typeView;
bool archiveVisible;
bool notLoggedInVisible;
bool adminMode;
protected:
QTranslator qtLanguageTranslator;
bool authComplited;
};
#endif // COMMONVIEW_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -25,6 +26,11 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Login</string>
</property>
@@ -32,6 +38,11 @@
</item>
<item>
<widget class="QLineEdit" name="editLogin">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>admin</string>
</property>
@@ -43,6 +54,11 @@
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Password</string>
</property>
@@ -50,6 +66,11 @@
</item>
<item>
<widget class="QLineEdit" name="editPassword">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>admin</string>
</property>
@@ -59,6 +80,11 @@
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -25,6 +26,11 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Name</string>
</property>
@@ -43,6 +49,11 @@
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Login</string>
</property>
@@ -57,6 +68,11 @@
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Password</string>
</property>
@@ -74,6 +90,11 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Administrator</string>
</property>
@@ -96,6 +117,11 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Archived</string>
</property>
@@ -118,6 +144,11 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Logged</string>
</property>
@@ -137,6 +168,11 @@
</item>
<item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>

View File

@@ -4,17 +4,23 @@
#include "ui_editorinstructors.h"
EditorInstructors::EditorInstructors(InterfaceDataBaseLMS* dbLMS, bool adminMode, QWidget *parent) :
InstructorsView(dbLMS, CommonView::TypeView::control, adminMode, parent),
InstructorsView(dbLMS, CommonView::TypeView::control, parent),
ui(new Ui::EditorInstructors)
{
ui->setupUi((QDialog*)this);
preparationTreeWidget(ui->treeWidget);
setNotLoggedInVisible(true);
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &EditorInstructors::on_treeWidget_currentItemChanged);
ui->verticalLayout_1->addWidget(treeWidget);
this->adminMode = adminMode;
preparationTreeWidget(/*ui->treeWidget*/);
//setNotLoggedInVisible(true);
loadInstructorsFromDB();
if(adminMode)
ui->btnArchive->click();
ui->btnArchive->click();
}
EditorInstructors::~EditorInstructors()
@@ -72,7 +78,7 @@ void EditorInstructors::on_btnNewInstructor_clicked()
void EditorInstructors::on_btnDeleteInstructor_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -88,6 +94,12 @@ void EditorInstructors::on_btnDeleteInstructor_clicked()
return;
}
if(dbLMS->isLoggedInInstructor(id))
{//Инструктор залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot delete a logged-in instructor."));
return;
}
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
if(dbLMS->delInstructor(id))
@@ -99,7 +111,7 @@ void EditorInstructors::on_btnDeleteInstructor_clicked()
void EditorInstructors::on_btnToOrFromArchive_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -124,6 +136,12 @@ void EditorInstructors::on_btnToOrFromArchive_clicked()
}
else
{//Не Архивный
if(dbLMS->isLoggedInInstructor(id))
{//Инструктор залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot archive a logged-in instructor."));
return;
}
instructor.setArchived(true);
if(int id_edit = dbLMS->editInstructor(instructor))
{
@@ -140,7 +158,7 @@ void EditorInstructors::on_btnToOrFromArchive_clicked()
void EditorInstructors::on_btnEdit_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent == nullptr)
return;
@@ -151,6 +169,12 @@ void EditorInstructors::on_btnEdit_clicked()
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
if(dbLMS->isLoggedInInstructor(id))
{//Инструктор залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot archive a logged-in instructor."));
return;
}
DialogEditInstructor dlg(this);
Instructor instructor = dbLMS->getInstructor(id);
@@ -225,10 +249,11 @@ void EditorInstructors::on_treeWidget_currentItemChanged(QTreeWidgetItem *curren
ui->btnNewInstructor->setEnabled(true);
if(dbLMS->isAdminInstructor(id))
{//Это Админ! Удалять/Архивировать нельзя!
if(dbLMS->isAdminInstructor(id) || dbLMS->isLoggedInInstructor(id))
{//Это Админ или залогированный! Удалять/Архивировать/Редактировать нельзя!
ui->btnDeleteInstructor->setEnabled(false);
ui->btnToOrFromArchive->setEnabled(false);
ui->btnEdit->setEnabled(false);
}
else
{
@@ -238,9 +263,11 @@ void EditorInstructors::on_treeWidget_currentItemChanged(QTreeWidgetItem *curren
ui->btnDeleteInstructor->setEnabled(true);
else
ui->btnDeleteInstructor->setEnabled(false);
ui->btnEdit->setEnabled(true);
}
ui->btnEdit->setEnabled(true);
//ui->btnEdit->setEnabled(true);
ui->btnArchive->setEnabled(true);
}
}

View File

@@ -10,6 +10,12 @@
<height>800</height>
</rect>
</property>
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
<string>List instructors</string>
</property>
@@ -18,7 +24,8 @@
<widget class="QWidget" name="widget" native="true">
<property name="font">
<font>
<pointsize>12</pointsize>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">
@@ -28,32 +35,7 @@
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_1">
<item>
<layout class="QVBoxLayout" name="verticalLayout_1">
<item>
<widget class="QTreeWidget" name="treeWidget">
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="columnCount">
<number>1</number>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
<layout class="QVBoxLayout" name="verticalLayout_1"/>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
@@ -72,6 +54,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">

View File

@@ -2,33 +2,72 @@
#include <QTranslator>
#include "instructorsview.h"
InstructorsView::InstructorsView(InterfaceDataBaseLMS* dbLMS, TypeView type, bool adminMode, QWidget *parent):
CommonView(type, adminMode, parent),
dbLMS(dbLMS)
InstructorsView::InstructorsView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent):
CommonView(dbLMS, type, parent)
{
}
void InstructorsView::preparationTreeWidget(QTreeWidget* tree)
void InstructorsView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
{
treeWidget = tree;
if(typeView == TypeView::onlyView)
{
if(adminMode)
archiveVisible = true;
else
archiveVisible = false;
}
else
{
archiveVisible = true;
}
if(adminMode)
{
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, false);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, false);
}
else
{
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true);
}
updateButtons();
if(treeInstructor)
loadInstructorsFromDB();
}
void InstructorsView::preparationTreeWidget(/*QTreeWidget* tree*/)
{
mtxTreeWidget.lock();
//treeWidget = tree;
/*
if(treeWidget == nullptr)
{
mtxTreeWidget.unlock();
return;
}
*/
treeWidget->setColumnCount(7);
reSetHeadTreeWidget();
treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
//treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
treeWidget->setStyleSheet(QStringLiteral("font-size: 10pt;"
"font-family: Tahoma;"));
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_ID, 50);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Instructor, 250);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Login, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Password, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Administrator, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 80);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 80);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 100);
if(typeView == TypeView::onlyView)
{//onlyView
@@ -37,13 +76,22 @@ void InstructorsView::preparationTreeWidget(QTreeWidget* tree)
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Password, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Administrator, true);
if(adminMode)
archiveVisible = true;
else
archiveVisible = false;
notLoggedInVisible = true;
}
else
{//control
archiveVisible = true;
notLoggedInVisible = true;
if(adminMode)
{
archiveVisible = true;
notLoggedInVisible = true;
}
else
{
@@ -54,16 +102,27 @@ void InstructorsView::preparationTreeWidget(QTreeWidget* tree)
treeWidget->setSortingEnabled(true);
treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder);
mtxTreeWidget.unlock();
}
void InstructorsView::loadInstructorsFromDB()
{
/*
if(treeWidget == nullptr)
return;
return;*/
mtxTreeWidget.lock();
//Обновление дерева
treeWidget->clear();
if(!dbLMS->DBisConnected())
{
mtxTreeWidget.unlock();
return;
}
//Инструкторы
QList<Instructor> listInstructors;
listInstructors = dbLMS->getListInstructors();
@@ -77,7 +136,8 @@ void InstructorsView::loadInstructorsFromDB()
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, instructor.getPassword());
//Сокрытие пароля
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******"));
if(!adminMode)
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******"));
if(instructor.getArchived())
{//Архивный
@@ -132,6 +192,8 @@ void InstructorsView::loadInstructorsFromDB()
if(item != nullptr)
treeWidget->setCurrentItem(item);
}
mtxTreeWidget.unlock();
}
void InstructorsView::reSetHeadTreeWidget()

View File

@@ -2,7 +2,6 @@
#define INSTRUCTORSVIEW_H
#include "instructorsAndTrainees_global.h"
#include "interfacedatabaselms.h"
#include "commonview.h"
//Родительский класс представления БД Инструкторов (для просмотра и управления)
@@ -12,7 +11,7 @@ class InstructorsView: public CommonView
Q_OBJECT
public:
InstructorsView(InterfaceDataBaseLMS* dbLMS, TypeView type, bool adminMode, QWidget *parent = nullptr);
InstructorsView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent = nullptr);
protected:
enum ColumnsTreeInsructors{
@@ -25,14 +24,16 @@ protected:
clmn_ID
};
public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса
void slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee);
protected:
void preparationTreeWidget(QTreeWidget* tree);
virtual void updateButtons(){};
void preparationTreeWidget(/*QTreeWidget* tree*/);
void loadInstructorsFromDB();
void reSetHeadTreeWidget();
protected:
InterfaceDataBaseLMS* dbLMS;
};
#endif // INSTRUCTORSVIEW_H

View File

@@ -3,24 +3,16 @@
#include "viewerinstructors.h"
#include "ui_viewerinstructors.h"
ViewerInstructors::ViewerInstructors(InterfaceDataBaseLMS* db, bool adminMode, QWidget *parent) :
InstructorsView(db, CommonView::TypeView::onlyView, adminMode, parent),
ViewerInstructors::ViewerInstructors(InterfaceDataBaseLMS* db, QWidget *parent) :
InstructorsView(db, CommonView::TypeView::onlyView, parent),
ui(new Ui::ViewerInstructors)
{
ui->setupUi(this);
this->adminMode = adminMode;
ui->horizontalLayout_2->addWidget(treeWidget);
// Сделаем первоначальную инициализацию перевода для окна виджета
qtLanguageTranslator.load(QString(QStringLiteral("translations/InstructorsAndTrainees_")) + QString(QStringLiteral("ru_RU")), QStringLiteral("."));
qApp->installTranslator(&qtLanguageTranslator);
preparationTreeWidget(ui->treeWidget);
preparationTreeWidget(/*ui->treeWidget*/);
setNotLoggedInVisible(true);
loadInstructorsFromDB();
if(! this->adminMode)
ui->btnEditorInstructors->setEnabled(false);
}
ViewerInstructors::~ViewerInstructors()
@@ -28,38 +20,22 @@ ViewerInstructors::~ViewerInstructors()
delete ui;
}
void ViewerInstructors::setFilterInstructorLoggedIn(bool enabled)
{
setNotLoggedInVisible(!enabled);
loadInstructorsFromDB();
}
void ViewerInstructors::changeEvent(QEvent *event)
{
// В случае получения события изменения языка приложения
if (event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this); // переведём окно заново
{// переведём окно заново
ui->retranslateUi(this);
reSetHeadTreeWidget();
loadInstructorsFromDB();
//loadInstructorsFromDB();
slot_NeedUpdateUI(true, false);
}
}
void ViewerInstructors::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString(QStringLiteral("translations/InstructorsAndTrainees_")) + language, QStringLiteral("."));
qApp->installTranslator(&qtLanguageTranslator);
}
void ViewerInstructors::on_btnEditorInstructors_clicked()
{
if(! adminMode)
{
QMessageBox::warning(this, tr("Attention!"),
tr("Only the Administrator has the right to edit instructors."));
return;
}
Q_EMIT signal_BlockAutorization(true);
EditorInstructors editorInstructors(dbLMS, adminMode);
QDialog* dialog = new QDialog(this);
@@ -70,4 +46,18 @@ void ViewerInstructors::on_btnEditorInstructors_clicked()
dialog->exec();
loadInstructorsFromDB();
Q_EMIT signal_BlockAutorization(false);
}
void ViewerInstructors::updateButtons()
{
if(adminMode && authComplited)
{
ui->btnEditorInstructors->setEnabled(true);
}
else
{
ui->btnEditorInstructors->setEnabled(false);
}
}

View File

@@ -1,9 +1,6 @@
#ifndef INSTRUCTORSWIDGET_H
#define INSTRUCTORSWIDGET_H
#include <QWidget>
#include "instructorsAndTrainees_global.h"
#include "interfacedatabaselms.h"
#include "instructorsview.h"
namespace Ui {
@@ -17,23 +14,22 @@ class ViewerInstructors : public InstructorsView
Q_OBJECT
public:
explicit ViewerInstructors(InterfaceDataBaseLMS* db, bool adminMode, QWidget *parent = nullptr);
explicit ViewerInstructors(InterfaceDataBaseLMS* db, QWidget *parent = nullptr);
~ViewerInstructors();
protected:
// Метод получения событий
// В нём будет производиться проверка события смены перевода приложения
void changeEvent(QEvent * event) override;
public Q_SLOTS:
void slot_LanguageChanged(QString language);
Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);
public:
void setFilterInstructorLoggedIn(bool enabled);
private slots:
private Q_SLOTS:
void on_btnEditorInstructors_clicked();
private:
void updateButtons() override;
private:
Ui::ViewerInstructors *ui;
};

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -38,6 +39,9 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QToolButton" name="btnEditorInstructors">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>130</width>
@@ -77,27 +81,6 @@
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="treeWidget">
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
</layout>

View File

@@ -6,40 +6,91 @@
InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::InstructorsAndTraineesWidget),
dbLMS(nullptr),
viewerTrainees(nullptr),
viewerInstructors(nullptr),
adminMode(false),
loginInstructorLoggedInLocal(QStringLiteral(""))
{
ui->setupUi(this);
dbLMS = new InterfaceDataBaseLMS();
dbLMS = new InterfaceDataBaseLMS(this);
//Авторизация Инструктора локальная (Администратора)
authorizationInstructorLocal(this);
connect(this, &InstructorsAndTraineesWidget::signal_LanguageChanged, dbLMS, &InterfaceDataBaseLMS::slot_LanguageChanged);
m_viewerTrainees = new ViewerTrainees(dbLMS, adminMode);
m_viewerInstructors = new ViewerInstructors(dbLMS, adminMode);
viewerTrainees = new ViewerTrainees(dbLMS);
viewerInstructors = new ViewerInstructors(dbLMS);
ui->verticalLayout->addWidget(m_viewerTrainees);
ui->verticalLayout->addWidget(m_viewerInstructors);
connect(this, &InstructorsAndTraineesWidget::signal_NeedUpdateUI, viewerTrainees, &ViewerTrainees::slot_NeedUpdateUI);
connect(this, &InstructorsAndTraineesWidget::signal_NeedUpdateUI, viewerInstructors, &ViewerInstructors::slot_NeedUpdateUI);
m_viewerTrainees->setMinimumSize(1600, 700);
m_viewerInstructors->setMinimumSize(1600, 400);
connect(viewerInstructors, &ViewerInstructors::signal_BlockAutorization, this, &InstructorsAndTraineesWidget::signal_BlockAutorization);
connect(viewerTrainees, &ViewerTrainees::signal_BlockAutorization, this, &InstructorsAndTraineesWidget::signal_BlockAutorization);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, this, &InstructorsAndTraineesWidget::signal_traineeSelected);
connect(this, &InstructorsAndTraineesWidget::signal_tabMessengerChanged, viewerTrainees, &ViewerTrainees::slot_tabMessengerChanged);
ui->verticalLayout->addWidget(viewerTrainees);
ui->verticalLayout->addWidget(viewerInstructors);
viewerTrainees->setMinimumSize(1600, 500);
viewerInstructors->setMinimumSize(1600, 400);
ui->btnAuthorizationInstructor->setEnabled(false);
}
InstructorsAndTraineesWidget::~InstructorsAndTraineesWidget()
{
deAuthorizationInstructor(loginInstructorLoggedInLocal);
if(authorizationIsCompleted())
deAuthorizationInstructor(loginInstructorLoggedInLocal);
delete m_viewerInstructors;
delete m_viewerTrainees;
if(dbLMS->DBisConnected())
{
dbLMS->deAuthorizationAllInstructors();
dbLMS->deAuthorizationAllTrainees();
dbLMS->DisConnectionFromDB();
}
delete viewerInstructors;
delete viewerTrainees;
delete dbLMS;
delete ui;
}
void InstructorsAndTraineesWidget::changeEvent(QEvent *event)
{
// В случае получения события изменения языка приложения
if (event->type() == QEvent::LanguageChange)
{// переведём окно заново
ui->retranslateUi(this);
if(ui->btnAuthorizationInstructor->isChecked())
ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
else
ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor"));
if(ui->btnConnectionToDB->isChecked())
ui->btnConnectionToDB->setText(tr("Disconnection DB"));
else
ui->btnConnectionToDB->setText(tr("Connection DB"));
updateLabelLoggedInInstructor();
}
}
void InstructorsAndTraineesWidget::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString(QStringLiteral("translations/InstructorsAndTraineesWidget_")) + language, QStringLiteral("."));
qApp->installTranslator(&qtLanguageTranslator);
Q_EMIT signal_LanguageChanged(language);
}
bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent)
{
DialogAuthorizationInstructor dlg(parent);
dlg.setWindowTitle(tr("Instructor authorithation"));
dlg.setWindowTitle(tr("Instructor authorization"));
do
{
@@ -50,12 +101,21 @@ bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent)
QString login = dlg.getLogin();
QString password = dlg.getPassword();
if(dbLMS->AuthorizationInstructor(login, password))
if(authorizationInstructor(login, password))
{
loginInstructorLoggedInLocal = login;
if(login == QStringLiteral("admin"))
adminMode = true;
else
adminMode = false;
viewerInstructors->setAdminMode(adminMode);
viewerTrainees->setAdminMode(adminMode);
viewerInstructors->setAuthComplited(true);
viewerTrainees->setAuthComplited(true);
Q_EMIT signal_NeedUpdateUI(true, true);
QMessageBox::information(parent, tr("Instructor authorization"), tr("Successfully!"));
@@ -87,20 +147,262 @@ bool InstructorsAndTraineesWidget::authorizationIsCompleted()
bool InstructorsAndTraineesWidget::authorizationTrainee(QString login, QString password, QString classroom_name, QString computer_name)
{
return dbLMS->AuthorizationTrainee(login, password, classroom_name, computer_name);
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return false;
}
Q_EMIT signal_BlockAutorization(true);
bool res = dbLMS->AuthorizationTrainee(login, password, classroom_name, computer_name);
Q_EMIT signal_BlockAutorization(false);
if(res)
Q_EMIT signal_NeedUpdateUI(false, true);
mtxAccess.unlock();
return res;
}
bool InstructorsAndTraineesWidget::deAuthorizationTrainee(QString login)
{
return dbLMS->deAuthorizationTrainee(login);
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return false;
}
Q_EMIT signal_BlockAutorization(true);
bool res = dbLMS->deAuthorizationTrainee(login);
Q_EMIT signal_BlockAutorization(false);
if(res)
Q_EMIT signal_NeedUpdateUI(false, true);
mtxAccess.unlock();
return res;
}
QString InstructorsAndTraineesWidget::getNameTraineeByLogin(QString login)
{
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return QStringLiteral("");
}
QString res = dbLMS->getNameTraineeByLogin(login);
mtxAccess.unlock();
return res;
}
bool InstructorsAndTraineesWidget::authorizationInstructor(QString login, QString password)
{
return dbLMS->AuthorizationInstructor(login, password);
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return false;
}
Q_EMIT signal_BlockAutorization(true);
bool res = dbLMS->AuthorizationInstructor(login, password);
Q_EMIT signal_BlockAutorization(false);
if(res)
Q_EMIT signal_NeedUpdateUI(true, false);
mtxAccess.unlock();
return res;
}
bool InstructorsAndTraineesWidget::deAuthorizationInstructor(QString login)
{
return dbLMS->deAuthorizationInstructor(login);
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return false;
}
Q_EMIT signal_BlockAutorization(true);
bool res = dbLMS->deAuthorizationInstructor(login);
Q_EMIT signal_BlockAutorization(false);
if(res)
{
if(loginInstructorLoggedInLocal == login)
{
loginInstructorLoggedInLocal = QStringLiteral("");
adminMode = false;
viewerInstructors->setAdminMode(adminMode);
viewerTrainees->setAdminMode(adminMode);
viewerInstructors->setAuthComplited(false);
viewerTrainees->setAuthComplited(false);
Q_EMIT signal_NeedUpdateUI(true, false);
}
else
Q_EMIT signal_NeedUpdateUI(true, false);
}
mtxAccess.unlock();
return res;
}
QString InstructorsAndTraineesWidget::getNameInstructorByLogin(QString login)
{
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return QStringLiteral("");
}
QString res = dbLMS->getNameInstructorByLogin(login);
mtxAccess.unlock();
return res;
}
QString InstructorsAndTraineesWidget::getMainInstructorName()
{
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return QStringLiteral("");
}
QString res = dbLMS->getNameInstructorByLogin(loginInstructorLoggedInLocal);
mtxAccess.unlock();
return res;
}
QList<Trainee> InstructorsAndTraineesWidget::getListTrainees()
{
return dbLMS->getListTrainees();
}
void InstructorsAndTraineesWidget::on_btnConnectionToDB_clicked()
{
mtxAccess.lock();
bool stateIsChecked = ui->btnConnectionToDB->isChecked();
if(stateIsChecked)
{//Подключение к БД
if(! dbLMS->DBisConnected())
{
if(dbLMS->ConnectionToDB())
{
ui->btnConnectionToDB->setText(tr("Disconnection DB"));
ui->btnAuthorizationInstructor->setEnabled(true);
Q_EMIT signal_NeedUpdateUI(true, true);
Q_EMIT signal_BlockAutorization(false);
Q_EMIT signal_InitMessanger(dbLMS->getListTrainees());
}
}
}
else
{//Отключение от БД
bool stateIsCheckedAuthorization = ui->btnAuthorizationInstructor->isChecked();
if(stateIsCheckedAuthorization)
ui->btnAuthorizationInstructor->click();
if(dbLMS->DBisConnected())
{
Q_EMIT signal_BlockAutorization(true);
dbLMS->DisConnectionFromDB();
ui->btnConnectionToDB->setText(tr("Connection DB"));
ui->btnAuthorizationInstructor->setEnabled(false);
Q_EMIT signal_NeedUpdateUI(true, true);
}
}
mtxAccess.unlock();
}
void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{
bool stateIsChecked = ui->btnAuthorizationInstructor->isChecked();
if(stateIsChecked)
{//Авторизация Инструктора локальная (Администратора)
if(authorizationInstructorLocal(this))
{
ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
updateLabelLoggedInInstructor();
Q_EMIT signal_NeedUpdateUI(true, true);
}
else
ui->btnAuthorizationInstructor->setChecked(false);
}
else
{//ДеАвторизация Инструктора локальная (Администратора)
if(authorizationIsCompleted())
{
if(deAuthorizationInstructor(loginInstructorLoggedInLocal))
{
ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor"));
updateLabelLoggedInInstructor();
Q_EMIT signal_NeedUpdateUI(true, true);
}
}
}
}
void InstructorsAndTraineesWidget::updateLabelLoggedInInstructor()
{
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return;
}
if(authorizationIsCompleted())
{
QString nameLoggedInInstructor = QString("%1 (%2)").arg(
dbLMS->getNameInstructorByLogin(loginInstructorLoggedInLocal), loginInstructorLoggedInLocal);
ui->lblLoggedInInstructor->setText(nameLoggedInInstructor);
}
else
{
ui->lblLoggedInInstructor->setText(tr("none"));
}
mtxAccess.unlock();
}

View File

@@ -2,6 +2,7 @@
#define INSTRUCTORSANDTRAINEESWIDGET_H
#include <QWidget>
#include <QTranslator>
#include "instructorsAndTrainees_global.h"
#include "viewertrainees.h"
#include "viewerinstructors.h"
@@ -19,29 +20,71 @@ public:
explicit InstructorsAndTraineesWidget(QWidget *parent = nullptr);
~InstructorsAndTraineesWidget();
private:
void changeEvent(QEvent * event) override;
public Q_SLOTS:
//Слот обработки смены языка
void slot_LanguageChanged(QString language);
Q_SIGNALS:
//сигнал об изменении языка интерфейса
void signal_LanguageChanged(QString language);
//сигнал о необходимости обновления интерфейса
void signal_NeedUpdateUI(bool treeInstructor, bool treeTrainee);
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);
//сигнал о выборе обучаемого (в списке)
void signal_traineeSelected(QString login);
//сигнал об изменении вкладки диалога (в мессенджере)
void signal_tabMessengerChanged(QString login);
//сигнал об инициализации мессенджера
void signal_InitMessanger(QList<Trainee> listTrainees);
public:
//Авторизация инструктора локальная
bool authorizationInstructorLocal(QWidget* parent = nullptr);
bool authorizationIsCompleted();
QString getMainInstructorName();
QList<Trainee> getListTrainees();
//Авторизация обучаемого на клиенте
bool authorizationTrainee(QString login, QString password, QString classroom_name = QStringLiteral(""), QString computer_name = QStringLiteral(""));
bool deAuthorizationTrainee(QString login);
QString getNameTraineeByLogin(QString login);
//Авторизация инструктора на клиенте
bool authorizationInstructor(QString login, QString password);
bool deAuthorizationInstructor(QString login);
QString getNameInstructorByLogin(QString login);
private Q_SLOTS:
void on_btnConnectionToDB_clicked();
void on_btnAuthorizationInstructor_clicked();
private:
void updateLabelLoggedInInstructor();
//Авторизация инструктора локальная
bool authorizationInstructorLocal(QWidget* parent = nullptr);
bool authorizationIsCompleted();
private:
Ui::InstructorsAndTraineesWidget *ui;
InterfaceDataBaseLMS* dbLMS;
ViewerTrainees* m_viewerTrainees;
ViewerInstructors* m_viewerInstructors;
ViewerTrainees* viewerTrainees;
ViewerInstructors* viewerInstructors;
bool adminMode;
QString loginInstructorLoggedInLocal;
QTranslator qtLanguageTranslator;
QMutex mtxAccess;
};
#endif // INSTRUCTORSANDTRAINEESWIDGET_H

View File

@@ -6,10 +6,16 @@
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>1000</width>
<height>800</height>
</rect>
</property>
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
@@ -20,6 +26,7 @@
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
@@ -27,9 +34,102 @@
<string>Database LMS</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout"/>
</item>
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QToolButton" name="btnConnectionToDB">
<property name="minimumSize">
<size>
<width>130</width>
<height>58</height>
</size>
</property>
<property name="text">
<string>Connection to DB</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/connectDB.png</normaloff>:/icons/connectDB.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnAuthorizationInstructor">
<property name="minimumSize">
<size>
<width>140</width>
<height>58</height>
</size>
</property>
<property name="text">
<string>Authorization Instructor</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/login-user.png</normaloff>:/icons/login-user.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Logged in instructor:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblLoggedInInstructor">
<property name="text">
<string>none</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
@@ -37,6 +137,8 @@
</item>
</layout>
</widget>
<resources/>
<resources>
<include location="resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -23,5 +23,7 @@
<file>icons/admin.png</file>
<file>icons/DB-instructors.png</file>
<file>icons/DB-trainees.png</file>
<file>icons/connectDB.png</file>
<file>icons/login-user.png</file>
</qresource>
</RCC>

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -29,13 +30,24 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="editName"/>
<widget class="QLineEdit" name="editName">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
@@ -43,6 +55,11 @@
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -25,6 +26,11 @@
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
@@ -42,13 +48,24 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="editName"/>
<widget class="QLineEdit" name="editName">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
@@ -56,13 +73,24 @@
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Login</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="editLogin"/>
<widget class="QLineEdit" name="editLogin">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
@@ -70,13 +98,24 @@
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="editPassword"/>
<widget class="QLineEdit" name="editPassword">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
@@ -87,6 +126,11 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Archived</string>
</property>
@@ -109,6 +153,11 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Logged</string>
</property>

View File

@@ -5,13 +5,19 @@
#include "dialogedittrainee.h"
EditorTrainees::EditorTrainees(InterfaceDataBaseLMS* dbLMS, bool adminMode, QWidget *parent) :
TraineesView(dbLMS, CommonView::TypeView::control, adminMode, parent),
TraineesView(dbLMS, CommonView::TypeView::control, parent),
ui(new Ui::EditorTrainees)
{
ui->setupUi((QDialog*)this);
preparationTreeWidget(ui->treeWidget);
setNotLoggedInVisible(true);
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &EditorTrainees::on_treeWidget_currentItemChanged);
ui->verticalLayout_1->addWidget(treeWidget);
this->adminMode = adminMode;
preparationTreeWidget(/*ui->treeWidget*/);
//setNotLoggedInVisible(true);
loadTraineesFromDB();
if(adminMode)
@@ -74,7 +80,7 @@ void EditorTrainees::on_btnNewGroup_clicked()
void EditorTrainees::on_btnDeleteGroup_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -90,13 +96,16 @@ void EditorTrainees::on_btnDeleteGroup_clicked()
}
else
{//Пустая группа
if(int id = dbLMS->delGroup(id_group))
{//Удалено
loadTraineesFromDB();
}
else
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
//Ошибка удаления
if(int id = dbLMS->delGroup(id_group))
{//Удалено
loadTraineesFromDB();
}
else
{
//Ошибка удаления
}
}
}
}
@@ -105,7 +114,7 @@ void EditorTrainees::on_btnDeleteGroup_clicked()
void EditorTrainees::on_btnNewTrainee_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -168,7 +177,7 @@ void EditorTrainees::on_btnNewTrainee_clicked()
void EditorTrainees::on_btnDeleteTrainee_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -179,6 +188,12 @@ void EditorTrainees::on_btnDeleteTrainee_clicked()
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
int id_group = treeItemParent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(dbLMS->isLoggedInTrainee(id_trainee))
{//Обучаемый залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot delete a logged-in trainee."));
return;
}
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
if(int id = dbLMS->delTrainee(id_trainee))
@@ -197,7 +212,7 @@ void EditorTrainees::on_btnDeleteTrainee_clicked()
void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent != nullptr)
{
@@ -225,7 +240,13 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
}
}
else
{//Не Архивный
{//Не Архивный
if(dbLMS->isLoggedInTrainee(id_trainee))
{//Обучаемый залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot archive a logged-in trainee."));
return;
}
trainee.setArchived(true);
if(int id = dbLMS->editTrainee(trainee))
{//Отредактировано
@@ -246,7 +267,7 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
void EditorTrainees::on_btnEdit_clicked()
{
QTreeWidgetItem *treeItemCurrent = ui->treeWidget->currentItem();
QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem();
if(treeItemCurrent == nullptr)
return;
@@ -301,6 +322,12 @@ void EditorTrainees::on_btnEdit_clicked()
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(dbLMS->isLoggedInTrainee(id_trainee))
{//Обучаемый залогирован!
QMessageBox::critical(this, tr("Error!"), tr("You cannot archive a logged-in trainee."));
return;
}
DialogEditTrainee dlg(this);
Trainee trainee = dbLMS->getTrainee(id_trainee);
@@ -399,22 +426,40 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
if(dbLMS->isArchivedTrainee(id_trainee))
{//Архивный
ui->btnDeleteTrainee->setEnabled(true);
//ui->btnDeleteTrainee->setEnabled(true);
ui->btnToOrFromArchiveTrainee->setText(tr("From archive"));
ui->btnToOrFromArchiveTrainee->setIcon(QIcon(QStringLiteral(":/icons/traineeFromArchive.png")));
}
else
{//Не Архивный
ui->btnDeleteTrainee->setEnabled(false);
//ui->btnDeleteTrainee->setEnabled(false);
ui->btnToOrFromArchiveTrainee->setText(tr("To archive"));
ui->btnToOrFromArchiveTrainee->setIcon(QIcon(QStringLiteral(":/icons/traineeArchive.png")));
}
ui->btnToOrFromArchiveTrainee->setEnabled(true);
if(dbLMS->isLoggedInTrainee(id_trainee))
{//Это залогированный! Удалять/Архивировать/Редактировать нельзя!
ui->btnDeleteTrainee->setEnabled(false);
ui->btnToOrFromArchiveTrainee->setEnabled(false);
ui->btnEdit->setEnabled(false);
}
else
{
ui->btnToOrFromArchiveTrainee->setEnabled(true);
ui->btnEdit->setEnabled(true);
if(dbLMS->isArchivedTrainee(id_trainee))
ui->btnDeleteTrainee->setEnabled(true);
else
ui->btnDeleteTrainee->setEnabled(false);
ui->btnEdit->setEnabled(true);
}
//ui->btnToOrFromArchiveTrainee->setEnabled(true);
//ui->btnEdit->setEnabled(true);
ui->btnArchive->setEnabled(true);
}
}

View File

@@ -3,9 +3,8 @@
#include <QDialog>
#include <QTreeWidget>
//#include "computersLocations.h"
#include "interfacedatabaselms.h"
#include "traineesview.h"
//#include "computersLocations.h"
namespace Ui {
class EditorTrainees;
@@ -13,7 +12,7 @@ class EditorTrainees;
//Виджет для редактирования БД Обучаемых
class EditorTrainees : /*public QDialog,*/ public TraineesView
class EditorTrainees : public TraineesView
{
Q_OBJECT

View File

@@ -24,7 +24,8 @@
<widget class="QWidget" name="widget" native="true">
<property name="font">
<font>
<pointsize>12</pointsize>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">
@@ -34,32 +35,7 @@
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_1">
<item>
<layout class="QVBoxLayout" name="verticalLayout_1">
<item>
<widget class="QTreeWidget" name="treeWidget">
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="columnCount">
<number>1</number>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
<layout class="QVBoxLayout" name="verticalLayout_1"/>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
@@ -78,6 +54,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">

View File

@@ -1,25 +1,59 @@
#include <QHeaderView>
#include "traineesview.h"
TraineesView::TraineesView(InterfaceDataBaseLMS* dbLMS, TypeView type, bool adminMode, QWidget *parent):
CommonView(type, adminMode, parent),
dbLMS(dbLMS)
TraineesView::TraineesView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent):
CommonView(dbLMS, type, parent)
{
}
void TraineesView::preparationTreeWidget(QTreeWidget *tree)
void TraineesView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
{
treeWidget = tree;
if(typeView == TypeView::onlyView)
{
if(adminMode)
archiveVisible = true;
else
archiveVisible = false;
}
else
{
archiveVisible = true;
}
if(adminMode)
{
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, false);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, false);
}
else
{
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true);
}
updateButtons();
if(treeTrainee)
loadTraineesFromDB();
}
void TraineesView::preparationTreeWidget(/*QTreeWidget *tree*/)
{
//treeWidget = tree;
/*
if(treeWidget == nullptr)
return;
*/
treeWidget->setColumnCount(10);
reSetHeadTreeWidget();
treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
//treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
treeWidget->setStyleSheet(QStringLiteral("font-size: 10pt;"
"font-family: Tahoma;"));
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_ID, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Trainee, 250);
@@ -28,8 +62,8 @@ void TraineesView::preparationTreeWidget(QTreeWidget *tree)
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Class, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Computer, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_IP_address, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Tasks, 200);
@@ -40,15 +74,21 @@ void TraineesView::preparationTreeWidget(QTreeWidget *tree)
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Password, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true);
archiveVisible = false;
if(adminMode)
archiveVisible = true;
else
archiveVisible = false;
notLoggedInVisible = true;
}
else
{//control
archiveVisible = true;
notLoggedInVisible = true;
if(adminMode)
{
archiveVisible = true;
notLoggedInVisible = true;
}
else
{
@@ -63,19 +103,23 @@ void TraineesView::preparationTreeWidget(QTreeWidget *tree)
void TraineesView::loadTraineesFromDB()
{
QList <Group> listGroups;
QList <Trainee> listTrainees;
//dbTrainees->transactionBegin();
listGroups = dbLMS->getListGroups();
listTrainees = dbLMS->getListTrainees();
//dbTrainees->transactionEnd();
/*
if(treeWidget == nullptr)
return;
return;*/
//Обновление дерева
treeWidget->clear();
if(!dbLMS->DBisConnected())
return;
QList <Group> listGroups;
QList <Trainee> listTrainees;
//dbLMS->transactionBegin();
listGroups = dbLMS->getListGroups();
listTrainees = dbLMS->getListTrainees();
//dbLMS->transactionEnd();
for(Group group : listGroups)
{
//Группа
@@ -102,7 +146,8 @@ void TraineesView::loadTraineesFromDB()
ItemTrainee->setText(ColumnsTreeTrainees::clmn_IP_address, trainee.getComputer().getIpAddress());
//Сокрытие пароля
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******"));
if(!adminMode)
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******"));
if(trainee.getArchived())
{//Архивный

View File

@@ -2,7 +2,6 @@
#define TRAINEESVIEW_H
#include "instructorsAndTrainees_global.h"
#include "interfacedatabaselms.h"
#include "commonview.h"
//Родительский класс представления БД Обучаемых (для просмотра и управления)
@@ -12,7 +11,7 @@ class TraineesView: public CommonView
Q_OBJECT
public:
TraineesView(InterfaceDataBaseLMS* dbLMS, TypeView type, bool adminMode, QWidget *parent = nullptr);
TraineesView(InterfaceDataBaseLMS* dbLMS, TypeView type, QWidget *parent = nullptr);
protected:
enum ColumnsTreeTrainees{
@@ -28,14 +27,16 @@ protected:
clmn_ID
};
public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса
void slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee);
protected:
void preparationTreeWidget(QTreeWidget* tree);
virtual void updateButtons(){};
void preparationTreeWidget(/*QTreeWidget* tree*/);
void loadTraineesFromDB();
void reSetHeadTreeWidget();
protected:
InterfaceDataBaseLMS* dbLMS;
};
#endif // TRAINEESVIEW_H

View File

@@ -2,21 +2,18 @@
#include "viewertrainees.h"
#include "ui_viewertrainees.h"
ViewerTrainees::ViewerTrainees(InterfaceDataBaseLMS* db, bool adminMode, QWidget *parent) :
TraineesView(db, CommonView::TypeView::onlyView, adminMode, parent),
ViewerTrainees::ViewerTrainees(InterfaceDataBaseLMS* db, QWidget *parent) :
TraineesView(db, CommonView::TypeView::onlyView, parent),
ui(new Ui::ViewerTrainees)
{
ui->setupUi(this);
this->adminMode = adminMode;
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &ViewerTrainees::on_treeWidget_currentItemChanged);
// Сделаем первоначальную инициализацию перевода для окна виджета
qtLanguageTranslator.load(QString(QStringLiteral("translations/InstructorsAndTrainees_")) + QString(QStringLiteral("ru_RU")), QStringLiteral("."));
qApp->installTranslator(&qtLanguageTranslator);
ui->horizontalLayout_2->addWidget(treeWidget);
preparationTreeWidget(ui->treeWidget);
preparationTreeWidget(/*ui->treeWidget*/);
setNotLoggedInVisible(true);
loadTraineesFromDB();
}
ViewerTrainees::~ViewerTrainees()
@@ -24,12 +21,7 @@ ViewerTrainees::~ViewerTrainees()
delete ui;
}
void ViewerTrainees::setFilterTraineeLoggedIn(bool enabled)
{
setNotLoggedInVisible(!enabled);
loadTraineesFromDB();
}
/*
void ViewerTrainees::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column)
{
if(item->childCount() == 0)
@@ -37,20 +29,20 @@ void ViewerTrainees::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column
QString login = item->text(ColumnsTreeTrainees::clmn_Login);
Q_EMIT signal_traineeSelected(login);
}
}
}*/
void ViewerTrainees::slot_tabMessengerChanged(QString login)
{
for (int i = 0; i < ui->treeWidget->topLevelItemCount(); i++)
for (int i = 0; i < treeWidget->topLevelItemCount(); i++)
{//Проход по группам
int countChild = ui->treeWidget->topLevelItem(i)->childCount();
int countChild = treeWidget->topLevelItem(i)->childCount();
for (int j = 0; j < countChild; j++)
{//Проход по обучаемым
QString loginChild = ui->treeWidget->topLevelItem(i)->child(j)->text(ColumnsTreeTrainees::clmn_Login);
QString loginChild = treeWidget->topLevelItem(i)->child(j)->text(ColumnsTreeTrainees::clmn_Login);
if(loginChild == login)
{
ui->treeWidget->setCurrentItem(ui->treeWidget->topLevelItem(i)->child(j));
treeWidget->setCurrentItem(treeWidget->topLevelItem(i)->child(j));
Q_EMIT signal_traineeSelected(login);
return;
}
@@ -62,22 +54,19 @@ void ViewerTrainees::changeEvent(QEvent *event)
{
// В случае получения события изменения языка приложения
if (event->type() == QEvent::LanguageChange)
{
ui->retranslateUi(this); // переведём окно заново
{// переведём окно заново
ui->retranslateUi(this);
reSetHeadTreeWidget();
loadTraineesFromDB();
//loadTraineesFromDB();
slot_NeedUpdateUI(false, true);
}
}
void ViewerTrainees::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString(QStringLiteral("translations/InstructorsAndTrainees_")) + language, QStringLiteral("."));
qApp->installTranslator(&qtLanguageTranslator);
}
void ViewerTrainees::on_btnEditorTrainees_clicked()
{
Q_EMIT signal_BlockAutorization(true);
EditorTrainees editorTraineesGroups(dbLMS, adminMode);
QDialog* dialog = new QDialog(this);
QHBoxLayout *layout = new QHBoxLayout(dialog);
@@ -87,4 +76,30 @@ void ViewerTrainees::on_btnEditorTrainees_clicked()
dialog->exec();
loadTraineesFromDB();
Q_EMIT signal_BlockAutorization(false);
}
void ViewerTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
{
if(current == nullptr)
return;
if(current->childCount() == 0)
{//Выбран обучаемый
QString login = current->text(ColumnsTreeTrainees::clmn_Login);
Q_EMIT signal_traineeSelected(login);
}
}
void ViewerTrainees::updateButtons()
{
if(authComplited)
{
ui->btnEditorTrainees->setEnabled(true);
}
else
{
ui->btnEditorTrainees->setEnabled(false);
}
}

View File

@@ -1,11 +1,6 @@
#ifndef TRAINEESWIDGET_H
#define TRAINEESWIDGET_H
#include <QWidget>
#include <QObject>
#include <QEvent>
#include "instructorsAndTrainees_global.h"
#include "interfacedatabaselms.h"
#include "traineesview.h"
namespace Ui {
@@ -19,24 +14,20 @@ class ViewerTrainees : public TraineesView
Q_OBJECT
public:
explicit ViewerTrainees(InterfaceDataBaseLMS* db, bool adminMode, QWidget *parent = nullptr);
explicit ViewerTrainees(InterfaceDataBaseLMS* db, QWidget *parent = nullptr);
~ViewerTrainees();
protected:
// Метод получения событий
// В нём будет производиться проверка события смены перевода приложения
void changeEvent(QEvent * event) override;
public Q_SLOTS:
void slot_LanguageChanged(QString language);
public:
void setFilterTraineeLoggedIn( bool enabled );
Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);
private Q_SLOTS:
void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column);
//void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column);
void on_btnEditorTrainees_clicked();
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
public Q_SLOTS:
//слот обработки сигнала об изменении вкладки диалога в мессенджере
@@ -46,6 +37,9 @@ Q_SIGNALS:
//сигнал о выборе обучаемого
void signal_traineeSelected(QString login);
private:
void updateButtons() override;
private:
Ui::ViewerTrainees *ui;
};

View File

@@ -13,6 +13,7 @@
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="windowTitle">
@@ -38,6 +39,9 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QToolButton" name="btnEditorTrainees">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>130</width>
@@ -77,30 +81,6 @@
</item>
</layout>
</item>
<item>
<widget class="QTreeWidget" name="treeWidget">
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="columnCount">
<number>1</number>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
</layout>

View File

@@ -0,0 +1,492 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>DialogAuthorizationInstructor</name>
<message>
<location filename="../instructors/dialogauthorizationinstructor.ui" line="19"/>
<source>Instructor authorization</source>
<translation>Авторизация инструктора</translation>
</message>
<message>
<location filename="../instructors/dialogauthorizationinstructor.ui" line="29"/>
<source>Login</source>
<translation>Логин</translation>
</message>
<message>
<location filename="../instructors/dialogauthorizationinstructor.ui" line="36"/>
<location filename="../instructors/dialogauthorizationinstructor.ui" line="54"/>
<source>admin</source>
<translation></translation>
</message>
<message>
<location filename="../instructors/dialogauthorizationinstructor.ui" line="47"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
</context>
<context>
<name>DialogEditGroup</name>
<message>
<location filename="../trainees/dialogeditgroup.ui" line="19"/>
<source>Group</source>
<translation>Группа</translation>
</message>
<message>
<location filename="../trainees/dialogeditgroup.ui" line="33"/>
<source>Name</source>
<translation>Имя</translation>
</message>
</context>
<context>
<name>DialogEditInstructor</name>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="19"/>
<source>Instructor</source>
<translation>Инструктор</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="29"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="47"/>
<source>Login</source>
<translation>Логин</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="61"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="78"/>
<source>Administrator</source>
<translation>Администратор</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="100"/>
<source>Archived</source>
<translation>Архивный</translation>
</message>
<message>
<location filename="../instructors/dialogeditinstructor.ui" line="122"/>
<source>Logged</source>
<translation>Залогирован</translation>
</message>
</context>
<context>
<name>DialogEditTrainee</name>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="19"/>
<source>Trainee</source>
<translation>Обучаемый</translation>
</message>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="46"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="60"/>
<source>Login</source>
<translation>Логин</translation>
</message>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="74"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="91"/>
<source>Archived</source>
<translation>Архивный</translation>
</message>
<message>
<location filename="../trainees/dialogedittrainee.ui" line="113"/>
<source>Logged</source>
<translation>Залогирован</translation>
</message>
</context>
<context>
<name>EditorInstructors</name>
<message>
<location filename="../instructors/editorinstructors.ui" line="14"/>
<source>List instructors</source>
<translation>Список инструкторов</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="104"/>
<source>New instructor</source>
<translation>Новый инструктор</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="142"/>
<source>Delete instructor</source>
<translation>Удалить инструктора</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="174"/>
<location filename="../instructors/editorinstructors.cpp" line="224"/>
<source>To archive</source>
<translation>Архивировать</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="212"/>
<source>Edit</source>
<translation>Редактировать</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.ui" line="263"/>
<source>Show archive</source>
<translation>Показать архив</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="89"/>
<source>Error!</source>
<translation>Ошибка!</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="89"/>
<source>You cannot delete the Administrator.</source>
<translation>Нельзя удалить администратора.</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="93"/>
<source>Attention!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="93"/>
<source>The deletion will be irrevocable.
Delete it anyway?</source>
<translation>Удаление будет безвозвратным.
Всё равно удалить?</translation>
</message>
<message>
<location filename="../instructors/editorinstructors.cpp" line="219"/>
<source>From archive</source>
<translation>Разархивировать</translation>
</message>
</context>
<context>
<name>EditorTrainees</name>
<message>
<location filename="../trainees/editortrainees.ui" line="20"/>
<source>List trainees</source>
<translation>Список обучаемых</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="113"/>
<source>New group</source>
<translation>Новая группа</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="151"/>
<source>Delete group</source>
<translation>Удалить группу</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="189"/>
<source>New trainee</source>
<translation>Новый обучаемый</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="227"/>
<source>Delete trainee</source>
<translation>Удалить обучаемого</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="265"/>
<location filename="../trainees/editortrainees.cpp" line="394"/>
<location filename="../trainees/editortrainees.cpp" line="416"/>
<source>To archive</source>
<translation>Архивировать</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="303"/>
<source>Edit</source>
<translation>Редактировать</translation>
</message>
<message>
<location filename="../trainees/editortrainees.ui" line="354"/>
<source>Show archive</source>
<translation>Показать архив</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="90"/>
<source>Editing error!</source>
<translation>Ошибка редактирования!</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="90"/>
<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="95"/>
<location filename="../trainees/editortrainees.cpp" line="187"/>
<source>Attention!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="95"/>
<location filename="../trainees/editortrainees.cpp" line="187"/>
<source>The deletion will be irrevocable.
Delete anyway?</source>
<translation>Удаление будет безвозвратным. Всё равно удалить?</translation>
</message>
<message>
<location filename="../trainees/editortrainees.cpp" line="409"/>
<source>From archive</source>
<translation>Разархивировать</translation>
</message>
</context>
<context>
<name>InstructorsAndTraineesWidget</name>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="14"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="27"/>
<source>Database LMS</source>
<translation>База данных СУО</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="46"/>
<source>Connection to DB</source>
<translation>Соединиться с БД</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="75"/>
<location filename="../instructorsandtraineeswidget.cpp" line="55"/>
<location filename="../instructorsandtraineeswidget.cpp" line="215"/>
<source>Authorization Instructor</source>
<translation>Авторизация инструктора</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="111"/>
<source>Logged in instructor:</source>
<translation>Авторизованный инструктор:</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.ui" line="118"/>
<location filename="../instructorsandtraineeswidget.cpp" line="236"/>
<source>none</source>
<translation>нет</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="53"/>
<location filename="../instructorsandtraineeswidget.cpp" line="199"/>
<source>Deauthorization Instructor</source>
<translation>Деавторизация инструктора</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="59"/>
<location filename="../instructorsandtraineeswidget.cpp" line="164"/>
<source>Disconnection DB</source>
<translation>Отключение БД</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="61"/>
<location filename="../instructorsandtraineeswidget.cpp" line="181"/>
<source>Connection DB</source>
<translation>Подключение БД</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="78"/>
<location filename="../instructorsandtraineeswidget.cpp" line="98"/>
<location filename="../instructorsandtraineeswidget.cpp" line="103"/>
<source>Instructor authorization</source>
<translation>Авторизация инструктора</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="98"/>
<source>Successfully!</source>
<translation>Успешно!</translation>
</message>
<message>
<location filename="../instructorsandtraineeswidget.cpp" line="103"/>
<source>Invalid login or password!</source>
<translation>Неправильный логин или пароль!</translation>
</message>
</context>
<context>
<name>InstructorsView</name>
<message>
<location filename="../instructors/instructorsview.cpp" line="92"/>
<location filename="../instructors/instructorsview.cpp" line="105"/>
<location filename="../instructors/instructorsview.cpp" line="115"/>
<source>yes</source>
<translation>да</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="98"/>
<location filename="../instructors/instructorsview.cpp" line="110"/>
<location filename="../instructors/instructorsview.cpp" line="120"/>
<source>no</source>
<translation>нет</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Instructor</source>
<translation>Инструктор</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Login</source>
<translation>Логин</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Administrator</source>
<translation>Администратор</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Archived</source>
<translation>Архивный</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>Logged</source>
<translation>Залогирован</translation>
</message>
<message>
<location filename="../instructors/instructorsview.cpp" line="147"/>
<source>ID</source>
<translation>ID</translation>
</message>
</context>
<context>
<name>TasksWidget</name>
<message>
<location filename="../tasks/taskswidget.ui" line="14"/>
<location filename="../tasks/taskswidget.ui" line="22"/>
<source>Task manager</source>
<translation>Менеджер задач</translation>
</message>
</context>
<context>
<name>TraineesView</name>
<message>
<location filename="../trainees/traineesview.cpp" line="114"/>
<location filename="../trainees/traineesview.cpp" line="127"/>
<source>yes</source>
<translation>да</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="120"/>
<location filename="../trainees/traineesview.cpp" line="132"/>
<source>no</source>
<translation>нет</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Trainee</source>
<translation>Обучаемый</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Login</source>
<translation>Логин</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Password</source>
<translation>Пароль</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Class</source>
<translation>Класс</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Computer</source>
<translation>Компьютер</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>IP address</source>
<translation>IP адрес</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Archived</source>
<translation>Архивный</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Logged</source>
<translation>Залогирован</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>Tasks</source>
<translation>Задачи</translation>
</message>
<message>
<location filename="../trainees/traineesview.cpp" line="169"/>
<source>ID</source>
<translation>ID</translation>
</message>
</context>
<context>
<name>ViewerInstructors</name>
<message>
<location filename="../instructors/viewerinstructors.ui" line="19"/>
<location filename="../instructors/viewerinstructors.ui" line="32"/>
<source>Instructors</source>
<translation>Инструкторы</translation>
</message>
<message>
<location filename="../instructors/viewerinstructors.ui" line="51"/>
<source>Editor of Instructors</source>
<translation>Редактор инструкторов</translation>
</message>
<message>
<location filename="../instructors/viewerinstructors.cpp" line="63"/>
<source>Attention!</source>
<translation>Внимание!</translation>
</message>
<message>
<location filename="../instructors/viewerinstructors.cpp" line="64"/>
<source>Only the Administrator has the right to edit instructors.</source>
<translation>Только Администратор имеет право редактировать инструкторов.</translation>
</message>
<message>
<location filename="../instructors/viewerinstructors.cpp" line="72"/>
<source>Editor of instructors</source>
<translation>Редактор инструкторов</translation>
</message>
</context>
<context>
<name>ViewerTrainees</name>
<message>
<location filename="../trainees/viewertrainees.ui" line="19"/>
<location filename="../trainees/viewertrainees.ui" line="32"/>
<source>Trainees</source>
<translation>Обучаемые</translation>
</message>
<message>
<location filename="../trainees/viewertrainees.ui" line="51"/>
<source>Editor of Trainees</source>
<translation>Редактор обучаемых</translation>
</message>
<message>
<location filename="../trainees/viewertrainees.cpp" line="92"/>
<source>Editor of trainees</source>
<translation>Редактор обучаемых</translation>
</message>
</context>
</TS>