Сделал коннект и логин

This commit is contained in:
krivoshein
2024-12-03 17:38:06 +03:00
parent 27eda63932
commit c2ada0a8a5
219 changed files with 162385 additions and 1419 deletions

View File

@@ -1235,7 +1235,7 @@
} }
], ],
"type" : "STATIC", "type" : "STATIC",
"value" : "general;Qt5::Widgets;general;Qt5::Sql;general;Qt5::Xml;general;libDataBaseLMS.dll;" "value" : "general;Qt5::Widgets;general;Qt5::Sql;general;Qt5::Xml;general;Qt5::Network;general;libDataBaseLMS.dll;"
}, },
{ {
"name" : "InstructorsAndTrainees_SOURCE_DIR", "name" : "InstructorsAndTrainees_SOURCE_DIR",
@@ -1297,6 +1297,18 @@
"type" : "PATH", "type" : "PATH",
"value" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5LinguistTools" "value" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5LinguistTools"
}, },
{
"name" : "Qt5Network_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "The directory containing a CMake configuration file for Qt5Network."
}
],
"type" : "PATH",
"value" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network"
},
{ {
"name" : "Qt5Sql_DIR", "name" : "Qt5Sql_DIR",
"properties" : "properties" :

View File

@@ -4,25 +4,10 @@
{ {
"path" : "CMakeLists.txt" "path" : "CMakeLists.txt"
}, },
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeSystem.cmake.in"
},
{ {
"isGenerated" : true, "isGenerated" : true,
"path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeSystem.cmake" "path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeSystem.cmake"
}, },
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeNinjaFindMake.cmake"
},
{ {
"isCMake" : true, "isCMake" : true,
"isExternal" : true, "isExternal" : true,
@@ -33,256 +18,6 @@
"isExternal" : true, "isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Initialize.cmake" "path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Initialize.cmake"
}, },
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Determine-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompiler.cmake.in"
},
{ {
"isGenerated" : true, "isGenerated" : true,
"path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake" "path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
@@ -362,16 +97,6 @@
"isExternal" : true, "isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU.cmake" "path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU.cmake"
}, },
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineRCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeRCCompiler.cmake.in"
},
{ {
"isGenerated" : true, "isGenerated" : true,
"path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeRCCompiler.cmake" "path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeRCCompiler.cmake"
@@ -389,77 +114,13 @@
{ {
"isCMake" : true, "isCMake" : true,
"isExternal" : true, "isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeTestRCCompiler.cmake" "path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX-ABI.cmake"
}, },
{ {
"isCMake" : true, "isCMake" : true,
"isExternal" : true, "isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" "path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
}, },
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeTestCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompilerABI.cpp"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX-ABI.cmake"
},
{ {
"isExternal" : true, "isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake" "path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake"
@@ -687,6 +348,30 @@
"isExternal" : true, "isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfig.cmake" "path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfig.cmake"
}, },
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake"
},
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5Config.cmake"
},
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake"
},
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake"
},
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfig.cmake"
},
{
"isExternal" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake"
},
{ {
"path" : "resources.qrc" "path" : "resources.qrc"
} }

View File

@@ -41,7 +41,7 @@
{ {
"directoryIndex" : 0, "directoryIndex" : 0,
"id" : "InstructorsAndTrainees::@6890427a1f51a3e7e1df", "id" : "InstructorsAndTrainees::@6890427a1f51a3e7e1df",
"jsonFile" : "target-InstructorsAndTrainees-Debug-6cd9332aee539bb4baa2.json", "jsonFile" : "target-InstructorsAndTrainees-Debug-343ad0bc14328c7b83f6.json",
"name" : "InstructorsAndTrainees", "name" : "InstructorsAndTrainees",
"projectIndex" : 0 "projectIndex" : 0
}, },

View File

@@ -26,7 +26,7 @@
"objects" : "objects" :
[ [
{ {
"jsonFile" : "codemodel-v2-4f78c9417dcbb756933a.json", "jsonFile" : "codemodel-v2-478a3d1da4d80a7853f5.json",
"kind" : "codemodel", "kind" : "codemodel",
"version" : "version" :
{ {
@@ -35,7 +35,7 @@
} }
}, },
{ {
"jsonFile" : "cache-v2-44d9148afc12bcdbd01d.json", "jsonFile" : "cache-v2-2ac8e8715806154686d2.json",
"kind" : "cache", "kind" : "cache",
"version" : "version" :
{ {
@@ -44,7 +44,7 @@
} }
}, },
{ {
"jsonFile" : "cmakeFiles-v1-ec1df815ead005d69061.json", "jsonFile" : "cmakeFiles-v1-3b4f4291679e8b7577d6.json",
"kind" : "cmakeFiles", "kind" : "cmakeFiles",
"version" : "version" :
{ {
@@ -57,7 +57,7 @@
{ {
"cache-v2" : "cache-v2" :
{ {
"jsonFile" : "cache-v2-44d9148afc12bcdbd01d.json", "jsonFile" : "cache-v2-2ac8e8715806154686d2.json",
"kind" : "cache", "kind" : "cache",
"version" : "version" :
{ {
@@ -67,7 +67,7 @@
}, },
"cmakeFiles-v1" : "cmakeFiles-v1" :
{ {
"jsonFile" : "cmakeFiles-v1-ec1df815ead005d69061.json", "jsonFile" : "cmakeFiles-v1-3b4f4291679e8b7577d6.json",
"kind" : "cmakeFiles", "kind" : "cmakeFiles",
"version" : "version" :
{ {
@@ -77,7 +77,7 @@
}, },
"codemodel-v2" : "codemodel-v2" :
{ {
"jsonFile" : "codemodel-v2-4f78c9417dcbb756933a.json", "jsonFile" : "codemodel-v2-478a3d1da4d80a7853f5.json",
"kind" : "codemodel", "kind" : "codemodel",
"version" : "version" :
{ {

View File

@@ -40,37 +40,43 @@
{ {
"command" : 0, "command" : 0,
"file" : 0, "file" : 0,
"line" : 25, "line" : 26,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 1, "command" : 1,
"file" : 0, "file" : 0,
"line" : 87, "line" : 105,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 2, "command" : 2,
"file" : 0, "file" : 0,
"line" : 78, "line" : 95,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 2, "command" : 2,
"file" : 0, "file" : 0,
"line" : 79, "line" : 96,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 2, "command" : 2,
"file" : 0, "file" : 0,
"line" : 80, "line" : 97,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 2, "command" : 2,
"file" : 0, "file" : 0,
"line" : 91, "line" : 98,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 109,
"parent" : 0 "parent" : 0
}, },
{ {
@@ -81,34 +87,34 @@
}, },
{ {
"file" : 2, "file" : 2,
"parent" : 7 "parent" : 8
}, },
{ {
"command" : 5, "command" : 5,
"file" : 2, "file" : 2,
"line" : 28, "line" : 28,
"parent" : 8 "parent" : 9
}, },
{ {
"file" : 1, "file" : 1,
"parent" : 9 "parent" : 10
}, },
{ {
"command" : 4, "command" : 4,
"file" : 1, "file" : 1,
"line" : 185, "line" : 185,
"parent" : 10 "parent" : 11
}, },
{ {
"command" : 3, "command" : 3,
"file" : 1, "file" : 1,
"line" : 45, "line" : 45,
"parent" : 11 "parent" : 12
}, },
{ {
"command" : 6, "command" : 6,
"file" : 0, "file" : 0,
"line" : 82, "line" : 100,
"parent" : 0 "parent" : 0
}, },
{ {
@@ -120,31 +126,55 @@
{ {
"command" : 8, "command" : 8,
"file" : 0, "file" : 0,
"line" : 73, "line" : 88,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 8, "command" : 8,
"file" : 0, "file" : 0,
"line" : 74, "line" : 89,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 8, "command" : 8,
"file" : 0, "file" : 0,
"line" : 75, "line" : 90,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 8, "command" : 8,
"file" : 0, "file" : 0,
"line" : 76, "line" : 91,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 8, "command" : 8,
"file" : 0, "file" : 0,
"line" : 85, "line" : 92,
"parent" : 0
},
{
"command" : 8,
"file" : 0,
"line" : 93,
"parent" : 0
},
{
"command" : 8,
"file" : 0,
"line" : 103,
"parent" : 0
},
{
"command" : 8,
"file" : 0,
"line" : 112,
"parent" : 0
},
{
"command" : 8,
"file" : 0,
"line" : 113,
"parent" : 0 "parent" : 0
} }
] ]
@@ -161,14 +191,14 @@
"defines" : "defines" :
[ [
{ {
"backtrace" : 13, "backtrace" : 14,
"define" : "INSTRUCTORSANDTRAINEES_LIBRARY" "define" : "INSTRUCTORSANDTRAINEES_LIBRARY"
}, },
{ {
"define" : "InstructorsAndTrainees_EXPORTS" "define" : "InstructorsAndTrainees_EXPORTS"
}, },
{ {
"backtrace" : 14, "backtrace" : 15,
"define" : "PROJECT_TYPE_DEBUG" "define" : "PROJECT_TYPE_DEBUG"
}, },
{ {
@@ -179,6 +209,10 @@
"backtrace" : 3, "backtrace" : 3,
"define" : "QT_GUI_LIB" "define" : "QT_GUI_LIB"
}, },
{
"backtrace" : 6,
"define" : "QT_NETWORK_LIB"
},
{ {
"backtrace" : 4, "backtrace" : 4,
"define" : "QT_SQL_LIB" "define" : "QT_SQL_LIB"
@@ -205,25 +239,41 @@
"path" : "D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include" "path" : "D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include"
}, },
{ {
"backtrace" : 15, "backtrace" : 16,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/instructors" "path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/instructors"
}, },
{ {
"backtrace" : 16, "backtrace" : 17,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/trainees" "path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/trainees"
}, },
{ {
"backtrace" : 17, "backtrace" : 18,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/tasks" "path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/tasks"
}, },
{ {
"backtrace" : 18, "backtrace" : 19,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks" "path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks"
}, },
{ {
"backtrace" : 19, "backtrace" : 20,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer"
},
{
"backtrace" : 21,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core"
},
{
"backtrace" : 22,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS" "path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS"
}, },
{
"backtrace" : 23,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL"
},
{
"backtrace" : 24,
"path" : "D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL/Core"
},
{ {
"backtrace" : 3, "backtrace" : 3,
"isSystem" : true, "isSystem" : true,
@@ -263,6 +313,11 @@
"backtrace" : 5, "backtrace" : 5,
"isSystem" : true, "isSystem" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml" "path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml"
},
{
"backtrace" : 6,
"isSystem" : true,
"path" : "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtNetwork"
} }
], ],
"language" : "CXX", "language" : "CXX",
@@ -293,7 +348,13 @@
37, 37,
40, 40,
43, 43,
57 45,
47,
49,
51,
53,
55,
71
] ]
} }
], ],
@@ -335,16 +396,21 @@
}, },
{ {
"backtrace" : 6, "backtrace" : 6,
"fragment" : "C:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\lib\\libQt5Network.a",
"role" : "libraries"
},
{
"backtrace" : 7,
"fragment" : "-lDataBaseLMS", "fragment" : "-lDataBaseLMS",
"role" : "libraries" "role" : "libraries"
}, },
{ {
"backtrace" : 12, "backtrace" : 13,
"fragment" : "C:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\lib\\libQt5Gui.a", "fragment" : "C:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\lib\\libQt5Gui.a",
"role" : "libraries" "role" : "libraries"
}, },
{ {
"backtrace" : 12, "backtrace" : 13,
"fragment" : "C:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\lib\\libQt5Core.a", "fragment" : "C:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\lib\\libQt5Core.a",
"role" : "libraries" "role" : "libraries"
}, },
@@ -385,7 +451,13 @@
37, 37,
40, 40,
43, 43,
57 45,
47,
49,
51,
53,
55,
71
] ]
}, },
{ {
@@ -410,16 +482,24 @@
41, 41,
44, 44,
46, 46,
47,
48, 48,
49,
50, 50,
51,
52, 52,
53,
54, 54,
55, 56,
56 57,
58,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70
] ]
}, },
{ {
@@ -437,14 +517,14 @@
34, 34,
39, 39,
42, 42,
45 59
] ]
}, },
{ {
"name" : "CMake Rules", "name" : "CMake Rules",
"sourceIndexes" : "sourceIndexes" :
[ [
58 72
] ]
} }
], ],
@@ -693,6 +773,82 @@
"path" : "docTasks/module.h", "path" : "docTasks/module.h",
"sourceGroupIndex" : 1 "sourceGroupIndex" : 1
}, },
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/connectortoserver.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/connectortoserver.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/Core/sendsystem.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/sendsystem.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/Core/dataparser.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/dataparser.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/Core/recognizesystem.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/recognizesystem.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/Core/tcpclient.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/tcpclient.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "connectorToServer/Core/tools.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/tools.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "connectorToServer/Core/FileData.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "connectorToServer/Datas.h",
"sourceGroupIndex" : 1
},
{ {
"backtrace" : 1, "backtrace" : 1,
"path" : "resources.qrc", "path" : "resources.qrc",

Binary file not shown.

View File

@@ -1,100 +1,175 @@
# ninja log v5 # ninja log v5
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 3691 5492 7549320268564689 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/Core/recognizesystem.cpp.obj a5ca762c1d1effaf
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 3805 5203 7549320265684397 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/Core/tools.cpp.obj 7b47a3620d8e447d
1054 2275 7548353238926194 CMakeFiles/InstructorsAndTrainees.dir/docTasks/module.cpp.obj 6844afc0a996bca4 15 1341 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
1004 3579 7548353252238036 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj c76e9d885a71ec35 1486 3737 7549320250620266 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj 4b222ba2b5e6d65
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 2848 5071 7549320264364120 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/Core/sendsystem.cpp.obj 1ab762bd8ee49e47
1058 1319 7548353229582717 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 6bb046bc4c0980dc 1484 4497 7549320258604938 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 56e4101b855e49d7
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
1017 3225 7548353248654744 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 8735e9c834b0329c 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
953 1004 7548353226492165 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c 15 45 0 CMakeFiles/clean.additional 7155004b3956b606
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 45 57 0 clean 9c4b4372737ab8da
1039 3374 7548353250176879 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj 72b890f7503ce83b 1509 3890 7549320252126449 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj a2a04ba30378c5b0
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
10 33 0 CMakeFiles/clean.additional 7155004b3956b606 1481 3852 7549320251825193 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj ad1042c05171b40d
1023 3311 7548353249539465 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 37aaa363a444660 1524 4816 7549320261793747 CMakeFiles/InstructorsAndTrainees.dir/docTasks/doctaskswidget.cpp.obj 992b8759d03e1a3e
20 61 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 1342 1476 7549320228405842 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
20 61 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 1489 3804 7549320251222598 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 7a681375297df951
20 61 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 1495 4025 7549320253804520 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 85617ecfea88f1a7
1009 3264 7548353249057874 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 55d0b6fc5b3b11b4 1531 3691 7549320250218598 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/connectortoserver.cpp.obj a24ccab537f717e3
1050 3768 7548353254056131 CMakeFiles/InstructorsAndTrainees.dir/docTasks/doctaskswidget.cpp.obj fd99c106f9513402 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
20 61 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 1512 3892 7549320252226766 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj 90b4a8f9fdeb32c8
1032 3767 7548353254056131 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj 7d3ec639be3b100f 15 1341 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
953 1004 7548353226492165 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c 1516 4550 7549320259144394 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj d5b0f81d34f0b37c
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 1501 3963 7549320252831147 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj 3008fafbcf67f6eb
20 61 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
1012 3557 7548353252016427 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 3c5f63b90320820c 15 1341 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77 5492 6018 7549320273793195 libInstructorsAndTrainees.dll.a 8aea41d536358278
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
1047 3510 7548353251541602 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 42a4e1ce7a8816ef 3852 4162 7549320255262627 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 98cf76c71d2cc074
33 42 0 clean 9c4b4372737ab8da 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
1036 3265 7548353249078394 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj 92264628f7aa472b 1476 4474 7549320258365580 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj b6dfea7b857de57f
1029 3342 7548353249852699 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj c43df6b375cdff7b 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 1527 2983 7549320242887261 CMakeFiles/InstructorsAndTrainees.dir/docTasks/module.cpp.obj e487e4355d922bfe
3799 4203 7548353258465102 libInstructorsAndTrainees.dll df6929ab83dae889 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
3799 4203 7548353258465102 libInstructorsAndTrainees.dll.a df6929ab83dae889 1498 3970 7549320253112113 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj f8c0b68e92c1a943
20 61 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 3 1095 7549315866975889 build.ninja 76aa11f472515be0
1007 3799 7548353254439977 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 292dc993acccb16a 1492 2847 7549320241482017 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 874c99faea3654aa
1026 3448 7548353250924492 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj bf1e777c97db5d0b 1479 4949 7549320263113991 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj b73adedb147b47c9
3 1095 7548372965862719 build.ninja 76aa11f472515be0 2983 5134 7549320264982769 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/Core/dataparser.cpp.obj f8bae5b4aa3095d8
1020 2292 7548353238906014 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 3b334823afe234b7 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
1043 3607 7548353252449558 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj 39df8cbdac33ce35 15 1341 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
20 61 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
1014 3119 7548353247484564 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj efc351b55e068067 15 1341 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
20 61 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 1505 4703 7549320260665085 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj 23981ae39eb50c87
20 61 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 1342 1476 7549320228405842 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c
19 920 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 15 1341 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 3737 5309 7549320266723697 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/Core/tcpclient.cpp.obj 62a266159c7d4ccc
19 920 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 1520 4381 7549320257439278 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 1bb522d18f54fcd
19 920 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 5492 6018 7549320273793195 libInstructorsAndTrainees.dll 8aea41d536358278
19 920 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 15 1341 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 21 56 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
19 920 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77 21 56 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
19 920 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
921 972 7548373010373216 InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
921 972 7548373010373216 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp f2ed85aad0f78c7c 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
1026 1290 7548373013386183 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/EWIEGA46WW/qrc_resources.cpp.obj 6bb046bc4c0980dc 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
988 2157 7548373021922721 CMakeFiles/InstructorsAndTrainees.dir/trainees/computersLocations.cpp.obj 3b334823afe234b7 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
1023 2208 7548373022525485 CMakeFiles/InstructorsAndTrainees.dir/docTasks/module.cpp.obj 6844afc0a996bca4 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
982 3145 7548373031504019 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogeditgroup.cpp.obj efc351b55e068067 21 56 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
1008 3158 7548373032131913 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogauthorizationinstructor.cpp.obj 72b890f7503ce83b 16 373 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
1004 3268 7548373033199276 CMakeFiles/InstructorsAndTrainees.dir/instructors/dialogeditinstructor.cpp.obj 92264628f7aa472b 16 373 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
977 3309 7548373033688753 CMakeFiles/InstructorsAndTrainees.dir/commonview.cpp.obj 55d0b6fc5b3b11b4 16 373 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
985 3331 7548373033949640 CMakeFiles/InstructorsAndTrainees.dir/trainees/dialogedittrainee.cpp.obj 8735e9c834b0329c 16 373 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
1016 3476 7548373035392400 CMakeFiles/InstructorsAndTrainees.dir/tasks/taskswidget.cpp.obj 42a4e1ce7a8816ef 16 373 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
1001 3529 7548373035932405 CMakeFiles/InstructorsAndTrainees.dir/instructors/editorinstructors.cpp.obj 7d3ec639be3b100f 16 373 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
997 3535 7548373035992246 CMakeFiles/InstructorsAndTrainees.dir/instructors/viewerinstructors.cpp.obj c43df6b375cdff7b 16 373 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
994 3549 7548373036111934 CMakeFiles/InstructorsAndTrainees.dir/trainees/traineesview.cpp.obj bf1e777c97db5d0b 16 373 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
991 3551 7548373036141850 CMakeFiles/InstructorsAndTrainees.dir/trainees/viewertrainees.cpp.obj 37aaa363a444660 16 373 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
980 3599 7548373036640515 CMakeFiles/InstructorsAndTrainees.dir/trainees/editortrainees.cpp.obj 3c5f63b90320820c 16 373 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
1012 3646 7548373037039442 CMakeFiles/InstructorsAndTrainees.dir/instructors/instructorsview.cpp.obj 39df8cbdac33ce35 16 373 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
972 3689 7548373037488268 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj c76e9d885a71ec35 16 373 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
1019 3761 7548373038246234 CMakeFiles/InstructorsAndTrainees.dir/docTasks/doctaskswidget.cpp.obj fd99c106f9513402 16 373 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
975 3814 7548373038784781 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj 292dc993acccb16a 16 373 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
3814 4220 7548373042824198 libInstructorsAndTrainees.dll df6929ab83dae889 16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
3814 4220 7548373042824198 libInstructorsAndTrainees.dll.a df6929ab83dae889 16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
16 373 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
379 1484 7549334688093652 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/connectortoserver.cpp.obj a24ccab537f717e3
377 1865 7549334691903934 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj b73adedb147b47c9
374 1927 7549334692534451 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj b6dfea7b857de57f
1927 2454 7549334697768658 libInstructorsAndTrainees.dll 8aea41d536358278
1927 2454 7549334697768658 libInstructorsAndTrainees.dll.a 8aea41d536358278
21 453 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
21 453 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
21 453 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
459 1568 7549360033312826 CMakeFiles/InstructorsAndTrainees.dir/connectorToServer/connectortoserver.cpp.obj a24ccab537f717e3
456 1961 7549360037235114 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj b73adedb147b47c9
454 1990 7549360037524344 CMakeFiles/InstructorsAndTrainees.dir/InstructorsAndTrainees_autogen/mocs_compilation.cpp.obj b6dfea7b857de57f
1990 2527 7549360042863990 libInstructorsAndTrainees.dll 8aea41d536358278
1990 2527 7549360042863990 libInstructorsAndTrainees.dll.a 8aea41d536358278
20 60 0 CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
20 60 0 InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/CMakeFiles/InstructorsAndTrainees_autogen 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/mocs_compilation.cpp 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/ui_instructorsandtraineeswidget.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_editortrainees.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogeditgroup.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_dialogedittrainee.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/trainees/ui_viewertrainees.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_viewerinstructors.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_editorinstructors.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogeditinstructor.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/instructors/ui_dialogauthorizationinstructor.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/tasks/ui_taskswidget.h 325fc9931da2ad77
20 60 0 D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include/docTasks/ui_doctaskswidget.h 325fc9931da2ad77
60 1490 7549362395453903 CMakeFiles/InstructorsAndTrainees.dir/instructorsandtraineeswidget.cpp.obj b73adedb147b47c9
1490 2020 7549362400723943 libInstructorsAndTrainees.dll 8aea41d536358278
1490 2020 7549362400723943 libInstructorsAndTrainees.dll.a 8aea41d536358278

View File

@@ -233,7 +233,7 @@ InstructorsAndTrainees_BINARY_DIR:STATIC=D:/LMS/DB_IaT/Debug64
InstructorsAndTrainees_IS_TOP_LEVEL:STATIC=ON InstructorsAndTrainees_IS_TOP_LEVEL:STATIC=ON
//Dependencies for the target //Dependencies for the target
InstructorsAndTrainees_LIB_DEPENDS:STATIC=general;Qt5::Widgets;general;Qt5::Sql;general;Qt5::Xml;general;libDataBaseLMS.dll; InstructorsAndTrainees_LIB_DEPENDS:STATIC=general;Qt5::Widgets;general;Qt5::Sql;general;Qt5::Xml;general;Qt5::Network;general;libDataBaseLMS.dll;
//Value Computed by CMake //Value Computed by CMake
InstructorsAndTrainees_SOURCE_DIR:STATIC=D:/LMS/DB_IaT/InstructorsAndTrainees InstructorsAndTrainees_SOURCE_DIR:STATIC=D:/LMS/DB_IaT/InstructorsAndTrainees
@@ -250,6 +250,9 @@ Qt5Gui_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Gui
//The directory containing a CMake configuration file for Qt5LinguistTools. //The directory containing a CMake configuration file for Qt5LinguistTools.
Qt5LinguistTools_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5LinguistTools Qt5LinguistTools_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5LinguistTools
//The directory containing a CMake configuration file for Qt5Network.
Qt5Network_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network
//The directory containing a CMake configuration file for Qt5Sql. //The directory containing a CMake configuration file for Qt5Sql.
Qt5Sql_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Sql Qt5Sql_DIR:PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Sql

View File

@@ -7,62 +7,9 @@
"CMAKE_LIST_FILES" : "CMAKE_LIST_FILES" :
[ [
"D:/LMS/DB_IaT/InstructorsAndTrainees/CMakeLists.txt", "D:/LMS/DB_IaT/InstructorsAndTrainees/CMakeLists.txt",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineSystem.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeSystem.cmake.in",
"D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeSystem.cmake", "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeSystem.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeNinjaFindMake.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake", "C:/msys64/mingw64/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Initialize.cmake", "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Initialize.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-Determine-CXX.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompilerId.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCompilerIdDetection.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeFindBinUtils.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompiler.cmake.in",
"D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake", "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeSystemSpecificInformation.cmake", "C:/msys64/mingw64/share/cmake/Modules/CMakeSystemSpecificInformation.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeGenericSystem.cmake", "C:/msys64/mingw64/share/cmake/Modules/CMakeGenericSystem.cmake",
@@ -79,26 +26,11 @@
"C:/msys64/mingw64/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake", "C:/msys64/mingw64/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX.cmake", "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU.cmake", "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineRCCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeRCCompiler.cmake.in",
"D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeRCCompiler.cmake", "D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeRCCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeRCInformation.cmake", "C:/msys64/mingw64/share/cmake/Modules/CMakeRCInformation.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-windres.cmake", "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-windres.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeTestRCCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCommonLanguageInclude.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeTestCXXCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeTestCompilerCommon.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompilerABI.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeTestCompilerCommon.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompilerABI.cpp",
"C:/msys64/mingw64/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Internal/FeatureTesting.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCXXCompiler.cmake.in",
"D:/LMS/DB_IaT/Debug64/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake",
"C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX-ABI.cmake", "C:/msys64/mingw64/share/cmake/Modules/Platform/Windows-GNU-CXX-ABI.cmake",
"C:/msys64/mingw64/share/cmake/Modules/CMakeCommonLanguageInclude.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5Config.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5Config.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake",
@@ -155,6 +87,12 @@
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfigVersion.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfigVersion.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfig.cmake", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfig.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ConfigVersion.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5Config.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5/Qt5ModuleLocation.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfig.cmake",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake",
"D:/LMS/DB_IaT/InstructorsAndTrainees/resources.qrc" "D:/LMS/DB_IaT/InstructorsAndTrainees/resources.qrc"
], ],
"CMAKE_SOURCE_DIR" : "D:/LMS/DB_IaT/InstructorsAndTrainees", "CMAKE_SOURCE_DIR" : "D:/LMS/DB_IaT/InstructorsAndTrainees",
@@ -168,6 +106,54 @@
"EWIEGA46WW/moc_commonview.cpp", "EWIEGA46WW/moc_commonview.cpp",
null null
], ],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/FileData.h",
"MU",
"B2PLHLQ6FC/moc_FileData.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.h",
"MU",
"B2PLHLQ6FC/moc_dataparser.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h",
"MU",
"B2PLHLQ6FC/moc_recognizesystem.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.h",
"MU",
"B2PLHLQ6FC/moc_sendsystem.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.h",
"MU",
"B2PLHLQ6FC/moc_tcpclient.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.h",
"MU",
"B2PLHLQ6FC/moc_tools.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Datas.h",
"MU",
"XGTKJIRJR2/moc_Datas.cpp",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.h",
"MU",
"XGTKJIRJR2/moc_connectortoserver.cpp",
null
],
[ [
"D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h", "D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h",
"MU", "MU",
@@ -275,6 +261,7 @@
"PROJECT_TYPE_DEBUG", "PROJECT_TYPE_DEBUG",
"QT_CORE_LIB", "QT_CORE_LIB",
"QT_GUI_LIB", "QT_GUI_LIB",
"QT_NETWORK_LIB",
"QT_SQL_LIB", "QT_SQL_LIB",
"QT_WIDGETS_LIB", "QT_WIDGETS_LIB",
"QT_XML_LIB" "QT_XML_LIB"
@@ -294,7 +281,11 @@
"D:/LMS/DB_IaT/InstructorsAndTrainees/trainees", "D:/LMS/DB_IaT/InstructorsAndTrainees/trainees",
"D:/LMS/DB_IaT/InstructorsAndTrainees/tasks", "D:/LMS/DB_IaT/InstructorsAndTrainees/tasks",
"D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks", "D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks",
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer",
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core",
"D:/LMS/DB_LMS/DataBaseLMS", "D:/LMS/DB_LMS/DataBaseLMS",
"D:/LMS/testDB/testDBpgSQL",
"D:/LMS/testDB/testDBpgSQL/Core",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui",
@@ -303,6 +294,7 @@
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml", "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml",
"C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtNetwork",
"C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++", "C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32", "C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32",
"C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward", "C:/Qt/Qt5.14.2/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward",
@@ -336,6 +328,36 @@
"SOURCES" : "SOURCES" :
[ [
[ "D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp", "MU", null ], [ "D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp", "MU", null ],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp",
"MU",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp",
"MU",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.cpp",
"MU",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.cpp",
"MU",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.cpp",
"MU",
null
],
[
"D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp",
"MU",
null
],
[ [
"D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp", "D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp",
"MU", "MU",

View File

@@ -1,2 +1,2 @@
moc:98077fa4cdd643ac6fb3a1e3c1cb0f6ae460803fc2342339df0768d1c9c7f521 moc:fcc9dbbbad9c2af00c39fadb4132106199a36f22ddaf3bccc352ca307194d388
uic:441c9ac37665639d8707680455ada82ca7b89b59339626a1f5caa37d3d5f40e7 uic:441c9ac37665639d8707680455ada82ca7b89b59339626a1f5caa37d3d5f40e7

View File

@@ -1,61 +1,80 @@
# Generated by CMake. Changes will be overwritten. # Generated by CMake. Changes will be overwritten.
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
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h
mmc:Q_OBJECT
uic:ui_dialogeditgroup.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsAndTrainees_global.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.h
mmc:Q_OBJECT
uic:ui_dialogeditinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.h
mmc:Q_OBJECT
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.h
mmc:Q_OBJECT mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.cpp
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
uic:ui_instructorsandtraineeswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/module.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/trainees/dialogedittrainee.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.h D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.h
mmc:Q_OBJECT mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.h
mmc:Q_OBJECT mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h
mmc:Q_OBJECT mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/module.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp mmc:Q_OBJECT
uic:ui_dialogeditinstructor.h D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.h
uic:ui_dialogedittrainee.h mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsAndTrainees_global.h
D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h
uic:ui_taskswidget.h mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/traineesview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/editorinstructors.cpp
uic:ui_editorinstructors.h uic:ui_editorinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/tasks/taskswidget.cpp
uic:ui_taskswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/instructorsview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.h
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp
uic:ui_doctaskswidget.h uic:ui_doctaskswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.cpp
uic:ui_viewerinstructors.h uic:ui_viewerinstructors.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/FileData.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/module.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.h
mmc:Q_OBJECT
uic:ui_dialogeditgroup.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Datas.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructorsandtraineeswidget.cpp
uic:ui_instructorsandtraineeswidget.h
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.cpp
uic:ui_dialogauthorizationinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/computersLocations.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogeditgroup.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/dialogedittrainee.cpp
uic:ui_dialogedittrainee.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/editortrainees.cpp
uic:ui_editortrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/trainees/viewertrainees.cpp
uic:ui_viewertrainees.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/module.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/viewerinstructors.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.cpp
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
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp
uic:ui_dialogeditinstructor.h
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.h
mmc:Q_OBJECT
D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.cpp
D:/LMS/DB_IaT/InstructorsAndTrainees/instructors/dialogauthorizationinstructor.h
mmc:Q_OBJECT
uic:ui_dialogauthorizationinstructor.h

View File

@@ -5,7 +5,7 @@
<Option title="InstructorsAndTrainees"/> <Option title="InstructorsAndTrainees"/>
<Option makefile_is_custom="1"/> <Option makefile_is_custom="1"/>
<Option compiler="gcc"/> <Option compiler="gcc"/>
<Option virtualFolders="CMake Files\;CMake Files\Qt\;CMake Files\Qt\Qt5.14.2\;CMake Files\Qt\Qt5.14.2\5.14.2\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Widgets\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Gui\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Core\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Sql\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5LinguistTools\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Xml\;"/> <Option virtualFolders="CMake Files\;CMake Files\Qt\;CMake Files\Qt\Qt5.14.2\;CMake Files\Qt\Qt5.14.2\5.14.2\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Widgets\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Gui\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Core\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Sql\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5LinguistTools\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Xml\;CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Network\;"/>
<Build> <Build>
<Target title="all"> <Target title="all">
<Option working_dir="D:/LMS/DB_IaT/Debug64"/> <Option working_dir="D:/LMS/DB_IaT/Debug64"/>
@@ -31,6 +31,7 @@
<Add option="-DQT_CORE_LIB"/> <Add option="-DQT_CORE_LIB"/>
<Add option="-DQT_SQL_LIB"/> <Add option="-DQT_SQL_LIB"/>
<Add option="-DQT_XML_LIB"/> <Add option="-DQT_XML_LIB"/>
<Add option="-DQT_NETWORK_LIB"/>
<Add directory="D:/LMS/DB_IaT/Debug64"/> <Add directory="D:/LMS/DB_IaT/Debug64"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees"/>
<Add directory="D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include"/> <Add directory="D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include"/>
@@ -38,7 +39,11 @@
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/trainees"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/trainees"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/tasks"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/tasks"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL/Core"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui"/>
@@ -47,6 +52,7 @@
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/./mkspecs/win32-g++"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/./mkspecs/win32-g++"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtNetwork"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward"/>
@@ -75,6 +81,7 @@
<Add option="-DQT_CORE_LIB"/> <Add option="-DQT_CORE_LIB"/>
<Add option="-DQT_SQL_LIB"/> <Add option="-DQT_SQL_LIB"/>
<Add option="-DQT_XML_LIB"/> <Add option="-DQT_XML_LIB"/>
<Add option="-DQT_NETWORK_LIB"/>
<Add directory="D:/LMS/DB_IaT/Debug64"/> <Add directory="D:/LMS/DB_IaT/Debug64"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees"/>
<Add directory="D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include"/> <Add directory="D:/LMS/DB_IaT/Debug64/InstructorsAndTrainees_autogen/include"/>
@@ -82,7 +89,11 @@
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/trainees"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/trainees"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/tasks"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/tasks"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS"/> <Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../DB_LMS/DataBaseLMS"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL"/>
<Add directory="D:/LMS/DB_IaT/InstructorsAndTrainees/../../testDB/testDBpgSQL/Core"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtWidgets"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtGui"/>
@@ -91,6 +102,7 @@
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/./mkspecs/win32-g++"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/./mkspecs/win32-g++"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtSql"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml"/> <Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtXml"/>
<Add directory="C:/Qt/Qt5.14.2/5.14.2/mingw73_64/include/QtNetwork"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32"/>
<Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward"/> <Add directory="C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/backward"/>
@@ -184,6 +196,48 @@
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h"> <Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/commonview.h">
<Option target="InstructorsAndTrainees"/> <Option target="InstructorsAndTrainees"/>
</Unit> </Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/FileData.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/dataparser.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/sendsystem.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tcpclient.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Core/tools.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/Datas.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.h">
<Option target="InstructorsAndTrainees"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp"> <Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp">
<Option target="InstructorsAndTrainees"/> <Option target="InstructorsAndTrainees"/>
</Unit> </Unit>
@@ -451,5 +505,14 @@
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfigVersion.cmake"> <Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Xml/Qt5XmlConfigVersion.cmake">
<Option virtualFolder="CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Xml\"/> <Option virtualFolder="CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Xml\"/>
</Unit> </Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfig.cmake">
<Option virtualFolder="CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Network\"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake">
<Option virtualFolder="CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Network\"/>
</Unit>
<Unit filename="D:/LMS/DB_IaT/InstructorsAndTrainees/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake">
<Option virtualFolder="CMake Files\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\cmake\Qt5Network\"/>
</Unit>
</Project> </Project>
</CodeBlocks_project_file> </CodeBlocks_project_file>

View File

@@ -0,0 +1,119 @@
/****************************************************************************
** Meta object code from reading C++ file 'dataparser.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../InstructorsAndTrainees/connectorToServer/Core/dataparser.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'dataparser.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.14.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DataParser_t {
QByteArrayData data[3];
char stringdata0[29];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DataParser_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DataParser_t qt_meta_stringdata_DataParser = {
{
QT_MOC_LITERAL(0, 0, 10), // "DataParser"
QT_MOC_LITERAL(1, 11, 16), // "slotGetXmlAnswer"
QT_MOC_LITERAL(2, 28, 0) // ""
},
"DataParser\0slotGetXmlAnswer\0"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DataParser[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::QByteArray, QMetaType::QString, 2,
0 // eod
};
void DataParser::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DataParser *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: { QByteArray _r = _t->slotGetXmlAnswer((*reinterpret_cast< QString(*)>(_a[1])));
if (_a[0]) *reinterpret_cast< QByteArray*>(_a[0]) = std::move(_r); } break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject DataParser::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_DataParser.data,
qt_meta_data_DataParser,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DataParser::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DataParser::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DataParser.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int DataParser::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::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
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,286 @@
/****************************************************************************
** Meta object code from reading C++ file 'recognizesystem.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'recognizesystem.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.14.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_RecognizeSystem_t {
QByteArrayData data[18];
char stringdata0[250];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_RecognizeSystem_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_RecognizeSystem_t qt_meta_stringdata_RecognizeSystem = {
{
QT_MOC_LITERAL(0, 0, 15), // "RecognizeSystem"
QT_MOC_LITERAL(1, 16, 23), // "sigUpdateBytesAvailable"
QT_MOC_LITERAL(2, 40, 0), // ""
QT_MOC_LITERAL(3, 41, 15), // "sigLoadComplete"
QT_MOC_LITERAL(4, 57, 13), // "sigNeedUpdate"
QT_MOC_LITERAL(5, 71, 4), // "flag"
QT_MOC_LITERAL(6, 76, 4), // "size"
QT_MOC_LITERAL(7, 81, 9), // "fileCount"
QT_MOC_LITERAL(8, 91, 15), // "sigSendDebugLog"
QT_MOC_LITERAL(9, 107, 7), // "message"
QT_MOC_LITERAL(10, 115, 17), // "sigSocketDisabled"
QT_MOC_LITERAL(11, 133, 16), // "sigServerBlocked"
QT_MOC_LITERAL(12, 150, 16), // "sigSaveLoginData"
QT_MOC_LITERAL(13, 167, 20), // "ServerAuthorization*"
QT_MOC_LITERAL(14, 188, 10), // "serverAuth"
QT_MOC_LITERAL(15, 199, 25), // "sigSocketWaitForReadyRead"
QT_MOC_LITERAL(16, 225, 8), // "waitTime"
QT_MOC_LITERAL(17, 234, 15) // "sigStartCompare"
},
"RecognizeSystem\0sigUpdateBytesAvailable\0"
"\0sigLoadComplete\0sigNeedUpdate\0flag\0"
"size\0fileCount\0sigSendDebugLog\0message\0"
"sigSocketDisabled\0sigServerBlocked\0"
"sigSaveLoginData\0ServerAuthorization*\0"
"serverAuth\0sigSocketWaitForReadyRead\0"
"waitTime\0sigStartCompare"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_RecognizeSystem[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
9, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
9, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 59, 2, 0x06 /* Public */,
3, 0, 60, 2, 0x06 /* Public */,
4, 3, 61, 2, 0x06 /* Public */,
8, 1, 68, 2, 0x06 /* Public */,
10, 0, 71, 2, 0x06 /* Public */,
11, 0, 72, 2, 0x06 /* Public */,
12, 1, 73, 2, 0x06 /* Public */,
15, 1, 76, 2, 0x06 /* Public */,
17, 0, 79, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, QMetaType::LongLong, QMetaType::ULongLong, 5, 6, 7,
QMetaType::Void, QMetaType::QString, 9,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 13, 14,
QMetaType::Void, QMetaType::Int, 16,
QMetaType::Void,
0 // eod
};
void RecognizeSystem::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<RecognizeSystem *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sigUpdateBytesAvailable(); break;
case 1: _t->sigLoadComplete(); break;
case 2: _t->sigNeedUpdate((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2])),(*reinterpret_cast< quint64(*)>(_a[3]))); break;
case 3: _t->sigSendDebugLog((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 4: _t->sigSocketDisabled(); break;
case 5: _t->sigServerBlocked(); break;
case 6: _t->sigSaveLoginData((*reinterpret_cast< ServerAuthorization*(*)>(_a[1]))); break;
case 7: _t->sigSocketWaitForReadyRead((*reinterpret_cast< int(*)>(_a[1]))); break;
case 8: _t->sigStartCompare(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (RecognizeSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigUpdateBytesAvailable)) {
*result = 0;
return;
}
}
{
using _t = void (RecognizeSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigLoadComplete)) {
*result = 1;
return;
}
}
{
using _t = void (RecognizeSystem::*)(bool , qint64 , quint64 );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigNeedUpdate)) {
*result = 2;
return;
}
}
{
using _t = void (RecognizeSystem::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigSendDebugLog)) {
*result = 3;
return;
}
}
{
using _t = void (RecognizeSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigSocketDisabled)) {
*result = 4;
return;
}
}
{
using _t = void (RecognizeSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigServerBlocked)) {
*result = 5;
return;
}
}
{
using _t = void (RecognizeSystem::*)(ServerAuthorization * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigSaveLoginData)) {
*result = 6;
return;
}
}
{
using _t = void (RecognizeSystem::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigSocketWaitForReadyRead)) {
*result = 7;
return;
}
}
{
using _t = void (RecognizeSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&RecognizeSystem::sigStartCompare)) {
*result = 8;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject RecognizeSystem::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_RecognizeSystem.data,
qt_meta_data_RecognizeSystem,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *RecognizeSystem::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *RecognizeSystem::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_RecognizeSystem.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int RecognizeSystem::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::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 RecognizeSystem::sigUpdateBytesAvailable()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void RecognizeSystem::sigLoadComplete()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void RecognizeSystem::sigNeedUpdate(bool _t1, qint64 _t2, quint64 _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void RecognizeSystem::sigSendDebugLog(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void RecognizeSystem::sigSocketDisabled()
{
QMetaObject::activate(this, &staticMetaObject, 4, nullptr);
}
// SIGNAL 5
void RecognizeSystem::sigServerBlocked()
{
QMetaObject::activate(this, &staticMetaObject, 5, nullptr);
}
// SIGNAL 6
void RecognizeSystem::sigSaveLoginData(ServerAuthorization * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 6, _a);
}
// SIGNAL 7
void RecognizeSystem::sigSocketWaitForReadyRead(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 7, _a);
}
// SIGNAL 8
void RecognizeSystem::sigStartCompare()
{
QMetaObject::activate(this, &staticMetaObject, 8, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,154 @@
/****************************************************************************
** Meta object code from reading C++ file 'sendsystem.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../InstructorsAndTrainees/connectorToServer/Core/sendsystem.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'sendsystem.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.14.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_SendSystem_t {
QByteArrayData data[4];
char stringdata0[36];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_SendSystem_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_SendSystem_t qt_meta_stringdata_SendSystem = {
{
QT_MOC_LITERAL(0, 0, 10), // "SendSystem"
QT_MOC_LITERAL(1, 11, 7), // "sigSend"
QT_MOC_LITERAL(2, 19, 0), // ""
QT_MOC_LITERAL(3, 20, 15) // "sigGetXmlAnswer"
},
"SendSystem\0sigSend\0\0sigGetXmlAnswer"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_SendSystem[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x06 /* Public */,
3, 1, 25, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::QByteArray, QMetaType::QString, 2,
0 // eod
};
void SendSystem::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<SendSystem *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sigSend(); break;
case 1: { QByteArray _r = _t->sigGetXmlAnswer((*reinterpret_cast< QString(*)>(_a[1])));
if (_a[0]) *reinterpret_cast< QByteArray*>(_a[0]) = std::move(_r); } break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (SendSystem::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SendSystem::sigSend)) {
*result = 0;
return;
}
}
{
using _t = QByteArray (SendSystem::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SendSystem::sigGetXmlAnswer)) {
*result = 1;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject SendSystem::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_SendSystem.data,
qt_meta_data_SendSystem,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *SendSystem::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *SendSystem::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_SendSystem.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int SendSystem::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
// SIGNAL 0
void SendSystem::sigSend()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
QByteArray SendSystem::sigGetXmlAnswer(QString _t1)
{
QByteArray _t0{};
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t0))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
return _t0;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -0,0 +1,247 @@
/****************************************************************************
** Meta object code from reading C++ file 'tcpclient.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../InstructorsAndTrainees/connectorToServer/Core/tcpclient.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'tcpclient.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.14.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_TCPClient_t {
QByteArrayData data[14];
char stringdata0[172];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TCPClient_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TCPClient_t qt_meta_stringdata_TCPClient = {
{
QT_MOC_LITERAL(0, 0, 9), // "TCPClient"
QT_MOC_LITERAL(1, 10, 15), // "sigSendDebugLog"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 7), // "message"
QT_MOC_LITERAL(4, 35, 12), // "sigRecognize"
QT_MOC_LITERAL(5, 48, 11), // "QTcpSocket*"
QT_MOC_LITERAL(6, 60, 6), // "socket"
QT_MOC_LITERAL(7, 67, 19), // "sigServerDisconnect"
QT_MOC_LITERAL(8, 87, 18), // "sigConnectionState"
QT_MOC_LITERAL(9, 106, 4), // "flag"
QT_MOC_LITERAL(10, 111, 12), // "sigSetSocket"
QT_MOC_LITERAL(11, 124, 15), // "slotSendCommand"
QT_MOC_LITERAL(12, 140, 17), // "slotConnectNotify"
QT_MOC_LITERAL(13, 158, 13) // "slotReadyRead"
},
"TCPClient\0sigSendDebugLog\0\0message\0"
"sigRecognize\0QTcpSocket*\0socket\0"
"sigServerDisconnect\0sigConnectionState\0"
"flag\0sigSetSocket\0slotSendCommand\0"
"slotConnectNotify\0slotReadyRead"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TCPClient[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
8, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
5, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 54, 2, 0x06 /* Public */,
4, 1, 57, 2, 0x06 /* Public */,
7, 0, 60, 2, 0x06 /* Public */,
8, 1, 61, 2, 0x06 /* Public */,
10, 1, 64, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
11, 1, 67, 2, 0x0a /* Public */,
12, 0, 70, 2, 0x0a /* Public */,
13, 0, 71, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, 0x80000000 | 5, 6,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 9,
QMetaType::Void, 0x80000000 | 5, 6,
// slots: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void TCPClient::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<TCPClient *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sigSendDebugLog((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->sigRecognize((*reinterpret_cast< QTcpSocket*(*)>(_a[1]))); break;
case 2: _t->sigServerDisconnect(); break;
case 3: _t->sigConnectionState((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 4: _t->sigSetSocket((*reinterpret_cast< QTcpSocket*(*)>(_a[1]))); break;
case 5: _t->slotSendCommand((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 6: _t->slotConnectNotify(); break;
case 7: _t->slotReadyRead(); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 1:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QTcpSocket* >(); break;
}
break;
case 4:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QTcpSocket* >(); break;
}
break;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (TCPClient::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TCPClient::sigSendDebugLog)) {
*result = 0;
return;
}
}
{
using _t = void (TCPClient::*)(QTcpSocket * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TCPClient::sigRecognize)) {
*result = 1;
return;
}
}
{
using _t = void (TCPClient::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TCPClient::sigServerDisconnect)) {
*result = 2;
return;
}
}
{
using _t = void (TCPClient::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TCPClient::sigConnectionState)) {
*result = 3;
return;
}
}
{
using _t = void (TCPClient::*)(QTcpSocket * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TCPClient::sigSetSocket)) {
*result = 4;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject TCPClient::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_TCPClient.data,
qt_meta_data_TCPClient,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *TCPClient::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TCPClient::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_TCPClient.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int TCPClient::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 8)
qt_static_metacall(this, _c, _id, _a);
_id -= 8;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 8)
qt_static_metacall(this, _c, _id, _a);
_id -= 8;
}
return _id;
}
// SIGNAL 0
void TCPClient::sigSendDebugLog(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void TCPClient::sigRecognize(QTcpSocket * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void TCPClient::sigServerDisconnect()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void TCPClient::sigConnectionState(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void TCPClient::sigSetSocket(QTcpSocket * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -23,8 +23,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_InstructorsAndTraineesWidget_t { struct qt_meta_stringdata_InstructorsAndTraineesWidget_t {
QByteArrayData data[20]; QByteArrayData data[23];
char stringdata0[378]; char stringdata0[427];
}; };
#define QT_MOC_LITERAL(idx, ofs, len) \ #define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -49,10 +49,13 @@ QT_MOC_LITERAL(12, 196, 20), // "signal_InitMessanger"
QT_MOC_LITERAL(13, 217, 14), // "QList<Trainee>" QT_MOC_LITERAL(13, 217, 14), // "QList<Trainee>"
QT_MOC_LITERAL(14, 232, 12), // "listTrainees" QT_MOC_LITERAL(14, 232, 12), // "listTrainees"
QT_MOC_LITERAL(15, 245, 20), // "slot_LanguageChanged" QT_MOC_LITERAL(15, 245, 20), // "slot_LanguageChanged"
QT_MOC_LITERAL(16, 266, 28), // "on_btnConnectionToDB_clicked" QT_MOC_LITERAL(16, 266, 16), // "checkLoginResult"
QT_MOC_LITERAL(17, 295, 37), // "on_btnAuthorizationInstructor..." QT_MOC_LITERAL(17, 283, 20), // "ServerAuthorization*"
QT_MOC_LITERAL(18, 333, 22), // "on_btnDocTasks_clicked" QT_MOC_LITERAL(18, 304, 10), // "serverAuth"
QT_MOC_LITERAL(19, 356, 21) // "on_toolButton_clicked" QT_MOC_LITERAL(19, 315, 28), // "on_btnConnectionToDB_clicked"
QT_MOC_LITERAL(20, 344, 37), // "on_btnAuthorizationInstructor..."
QT_MOC_LITERAL(21, 382, 22), // "on_btnDocTasks_clicked"
QT_MOC_LITERAL(22, 405, 21) // "on_toolButton_clicked"
}, },
"InstructorsAndTraineesWidget\0" "InstructorsAndTraineesWidget\0"
@@ -63,7 +66,8 @@ QT_MOC_LITERAL(19, 356, 21) // "on_toolButton_clicked"
"signal_tabMessengerChanged\0" "signal_tabMessengerChanged\0"
"signal_InitMessanger\0QList<Trainee>\0" "signal_InitMessanger\0QList<Trainee>\0"
"listTrainees\0slot_LanguageChanged\0" "listTrainees\0slot_LanguageChanged\0"
"on_btnConnectionToDB_clicked\0" "checkLoginResult\0ServerAuthorization*\0"
"serverAuth\0on_btnConnectionToDB_clicked\0"
"on_btnAuthorizationInstructor_clicked\0" "on_btnAuthorizationInstructor_clicked\0"
"on_btnDocTasks_clicked\0on_toolButton_clicked" "on_btnDocTasks_clicked\0on_toolButton_clicked"
}; };
@@ -75,7 +79,7 @@ static const uint qt_meta_data_InstructorsAndTraineesWidget[] = {
8, // revision 8, // revision
0, // classname 0, // classname
0, 0, // classinfo 0, 0, // classinfo
11, 14, // methods 12, 14, // methods
0, 0, // properties 0, 0, // properties
0, 0, // enums/sets 0, 0, // enums/sets
0, 0, // constructors 0, 0, // constructors
@@ -83,19 +87,20 @@ static const uint qt_meta_data_InstructorsAndTraineesWidget[] = {
6, // signalCount 6, // signalCount
// signals: name, argc, parameters, tag, flags // signals: name, argc, parameters, tag, flags
1, 1, 69, 2, 0x06 /* Public */, 1, 1, 74, 2, 0x06 /* Public */,
4, 2, 72, 2, 0x06 /* Public */, 4, 2, 77, 2, 0x06 /* Public */,
7, 1, 77, 2, 0x06 /* Public */, 7, 1, 82, 2, 0x06 /* Public */,
9, 1, 80, 2, 0x06 /* Public */, 9, 1, 85, 2, 0x06 /* Public */,
11, 1, 83, 2, 0x06 /* Public */, 11, 1, 88, 2, 0x06 /* Public */,
12, 1, 86, 2, 0x06 /* Public */, 12, 1, 91, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags // slots: name, argc, parameters, tag, flags
15, 1, 89, 2, 0x0a /* Public */, 15, 1, 94, 2, 0x0a /* Public */,
16, 0, 92, 2, 0x08 /* Private */, 16, 1, 97, 2, 0x0a /* Public */,
17, 0, 93, 2, 0x08 /* Private */, 19, 0, 100, 2, 0x08 /* Private */,
18, 0, 94, 2, 0x08 /* Private */, 20, 0, 101, 2, 0x08 /* Private */,
19, 0, 95, 2, 0x08 /* Private */, 21, 0, 102, 2, 0x08 /* Private */,
22, 0, 103, 2, 0x08 /* Private */,
// signals: parameters // signals: parameters
QMetaType::Void, QMetaType::QString, 3, QMetaType::Void, QMetaType::QString, 3,
@@ -107,6 +112,7 @@ static const uint qt_meta_data_InstructorsAndTraineesWidget[] = {
// slots: parameters // slots: parameters
QMetaType::Void, QMetaType::QString, 3, QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, 0x80000000 | 17, 18,
QMetaType::Void, QMetaType::Void,
QMetaType::Void, QMetaType::Void,
QMetaType::Void, QMetaType::Void,
@@ -128,10 +134,11 @@ void InstructorsAndTraineesWidget::qt_static_metacall(QObject *_o, QMetaObject::
case 4: _t->signal_tabMessengerChanged((*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 5: _t->signal_InitMessanger((*reinterpret_cast< QList<Trainee>(*)>(_a[1]))); break;
case 6: _t->slot_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 6: _t->slot_LanguageChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 7: _t->on_btnConnectionToDB_clicked(); break; case 7: _t->checkLoginResult((*reinterpret_cast< ServerAuthorization*(*)>(_a[1]))); break;
case 8: _t->on_btnAuthorizationInstructor_clicked(); break; case 8: _t->on_btnConnectionToDB_clicked(); break;
case 9: _t->on_btnDocTasks_clicked(); break; case 9: _t->on_btnAuthorizationInstructor_clicked(); break;
case 10: _t->on_toolButton_clicked(); break; case 10: _t->on_btnDocTasks_clicked(); break;
case 11: _t->on_toolButton_clicked(); break;
default: ; default: ;
} }
} else if (_c == QMetaObject::IndexOfMethod) { } else if (_c == QMetaObject::IndexOfMethod) {
@@ -210,13 +217,13 @@ int InstructorsAndTraineesWidget::qt_metacall(QMetaObject::Call _c, int _id, voi
if (_id < 0) if (_id < 0)
return _id; return _id;
if (_c == QMetaObject::InvokeMetaMethod) { if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 11) if (_id < 12)
qt_static_metacall(this, _c, _id, _a); qt_static_metacall(this, _c, _id, _a);
_id -= 11; _id -= 12;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 11) if (_id < 12)
*reinterpret_cast<int*>(_a[0]) = -1; *reinterpret_cast<int*>(_a[0]) = -1;
_id -= 11; _id -= 12;
} }
return _id; return _id;
} }

View File

@@ -0,0 +1,215 @@
/****************************************************************************
** Meta object code from reading C++ file 'connectortoserver.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.14.2)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "../../../InstructorsAndTrainees/connectorToServer/connectortoserver.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'connectortoserver.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.14.2. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ConnectorToServer_t {
QByteArrayData data[16];
char stringdata0[223];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_ConnectorToServer_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_ConnectorToServer_t qt_meta_stringdata_ConnectorToServer = {
{
QT_MOC_LITERAL(0, 0, 17), // "ConnectorToServer"
QT_MOC_LITERAL(1, 18, 13), // "sigSetConnect"
QT_MOC_LITERAL(2, 32, 0), // ""
QT_MOC_LITERAL(3, 33, 15), // "ServerSettings*"
QT_MOC_LITERAL(4, 49, 14), // "serverSettings"
QT_MOC_LITERAL(5, 64, 8), // "QThread*"
QT_MOC_LITERAL(6, 73, 6), // "thread"
QT_MOC_LITERAL(7, 80, 19), // "sigInitializeClient"
QT_MOC_LITERAL(8, 100, 16), // "RecognizeSystem*"
QT_MOC_LITERAL(9, 117, 15), // "recognizeSystem"
QT_MOC_LITERAL(10, 133, 11), // "SendSystem*"
QT_MOC_LITERAL(11, 145, 10), // "sendSystem"
QT_MOC_LITERAL(12, 156, 19), // "sigSendAutorization"
QT_MOC_LITERAL(13, 176, 14), // "sigLoginResult"
QT_MOC_LITERAL(14, 191, 20), // "ServerAuthorization*"
QT_MOC_LITERAL(15, 212, 10) // "serverAuth"
},
"ConnectorToServer\0sigSetConnect\0\0"
"ServerSettings*\0serverSettings\0QThread*\0"
"thread\0sigInitializeClient\0RecognizeSystem*\0"
"recognizeSystem\0SendSystem*\0sendSystem\0"
"sigSendAutorization\0sigLoginResult\0"
"ServerAuthorization*\0serverAuth"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_ConnectorToServer[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
4, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 2, 34, 2, 0x06 /* Public */,
7, 3, 39, 2, 0x06 /* Public */,
12, 0, 46, 2, 0x06 /* Public */,
13, 1, 47, 2, 0x06 /* Public */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, 0x80000000 | 5, 4, 6,
QMetaType::Void, 0x80000000 | 8, 0x80000000 | 10, 0x80000000 | 5, 9, 11, 6,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 14, 15,
0 // eod
};
void ConnectorToServer::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<ConnectorToServer *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sigSetConnect((*reinterpret_cast< ServerSettings*(*)>(_a[1])),(*reinterpret_cast< QThread*(*)>(_a[2]))); break;
case 1: _t->sigInitializeClient((*reinterpret_cast< RecognizeSystem*(*)>(_a[1])),(*reinterpret_cast< SendSystem*(*)>(_a[2])),(*reinterpret_cast< QThread*(*)>(_a[3]))); break;
case 2: _t->sigSendAutorization(); break;
case 3: _t->sigLoginResult((*reinterpret_cast< ServerAuthorization*(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 1:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< RecognizeSystem* >(); break;
case 1:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< SendSystem* >(); break;
}
break;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (ConnectorToServer::*)(ServerSettings * , QThread * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ConnectorToServer::sigSetConnect)) {
*result = 0;
return;
}
}
{
using _t = void (ConnectorToServer::*)(RecognizeSystem * , SendSystem * , QThread * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ConnectorToServer::sigInitializeClient)) {
*result = 1;
return;
}
}
{
using _t = void (ConnectorToServer::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ConnectorToServer::sigSendAutorization)) {
*result = 2;
return;
}
}
{
using _t = void (ConnectorToServer::*)(ServerAuthorization * );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ConnectorToServer::sigLoginResult)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject ConnectorToServer::staticMetaObject = { {
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
qt_meta_stringdata_ConnectorToServer.data,
qt_meta_data_ConnectorToServer,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *ConnectorToServer::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *ConnectorToServer::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_ConnectorToServer.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int ConnectorToServer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
}
return _id;
}
// SIGNAL 0
void ConnectorToServer::sigSetConnect(ServerSettings * _t1, QThread * _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, 0, _a);
}
// SIGNAL 1
void ConnectorToServer::sigInitializeClient(RecognizeSystem * _t1, SendSystem * _t2, QThread * _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void ConnectorToServer::sigSendAutorization()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void ConnectorToServer::sigLoginResult(ServerAuthorization * _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

View File

@@ -246,6 +246,7 @@
#define __INT_LEAST16_MAX__ 0x7fff #define __INT_LEAST16_MAX__ 0x7fff
#define __DEC64_MANT_DIG__ 16 #define __DEC64_MANT_DIG__ 16
#define __UINT_LEAST32_MAX__ 0xffffffffU #define __UINT_LEAST32_MAX__ 0xffffffffU
#define QT_NETWORK_LIB 1
#define __SEG_GS 1 #define __SEG_GS 1
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 #define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
#define __GCC_ATOMIC_LONG_LOCK_FREE 2 #define __GCC_ATOMIC_LONG_LOCK_FREE 2

View File

@@ -1,5 +1,10 @@
// This file is autogenerated. Changes will be overwritten. // This file is autogenerated. Changes will be overwritten.
#include "EWIEGA46WW/moc_commonview.cpp" #include "EWIEGA46WW/moc_commonview.cpp"
#include "B2PLHLQ6FC/moc_dataparser.cpp"
#include "B2PLHLQ6FC/moc_recognizesystem.cpp"
#include "B2PLHLQ6FC/moc_sendsystem.cpp"
#include "B2PLHLQ6FC/moc_tcpclient.cpp"
#include "XGTKJIRJR2/moc_connectortoserver.cpp"
#include "L7Z45ONBWY/moc_doctaskswidget.cpp" #include "L7Z45ONBWY/moc_doctaskswidget.cpp"
#include "WUGNTYCFDG/moc_dialogauthorizationinstructor.cpp" #include "WUGNTYCFDG/moc_dialogauthorizationinstructor.cpp"
#include "WUGNTYCFDG/moc_dialogeditinstructor.cpp" #include "WUGNTYCFDG/moc_dialogeditinstructor.cpp"

File diff suppressed because one or more lines are too long

View File

@@ -21,6 +21,7 @@ find_package(Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt5 COMPONENTS Sql REQUIRED) find_package(Qt5 COMPONENTS Sql REQUIRED)
find_package(Qt5 COMPONENTS LinguistTools REQUIRED) find_package(Qt5 COMPONENTS LinguistTools REQUIRED)
find_package(Qt5 COMPONENTS Xml REQUIRED) find_package(Qt5 COMPONENTS Xml REQUIRED)
find_package(Qt5 COMPONENTS Network REQUIRED)
add_library(InstructorsAndTrainees SHARED add_library(InstructorsAndTrainees SHARED
instructorsAndTrainees_global.h instructorsAndTrainees_global.h
@@ -67,6 +68,20 @@ add_library(InstructorsAndTrainees SHARED
docTasks/doctaskswidget.ui docTasks/doctaskswidget.ui
docTasks/module.cpp docTasks/module.cpp
docTasks/module.h docTasks/module.h
connectorToServer/connectortoserver.cpp
connectorToServer/connectortoserver.h
connectorToServer/Core/sendsystem.cpp
connectorToServer/Core/sendsystem.h
connectorToServer/Core/dataparser.cpp
connectorToServer/Core/dataparser.h
connectorToServer/Core/recognizesystem.cpp
connectorToServer/Core/recognizesystem.h
connectorToServer/Core/tcpclient.cpp
connectorToServer/Core/tcpclient.h
connectorToServer/Core/tools.cpp
connectorToServer/Core/tools.h
connectorToServer/Core/FileData.h
connectorToServer/Datas.h
resources.qrc resources.qrc
) )
@@ -74,10 +89,13 @@ target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/trainees) target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/trainees)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tasks) target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tasks)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/docTasks) target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/docTasks)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/connectorToServer)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/connectorToServer/Core)
target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Widgets) target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Widgets)
target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Sql) target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Sql)
target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Xml) target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Xml)
target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Network)
target_compile_definitions(InstructorsAndTrainees PRIVATE INSTRUCTORSANDTRAINEES_LIBRARY) target_compile_definitions(InstructorsAndTrainees PRIVATE INSTRUCTORSANDTRAINEES_LIBRARY)
@@ -91,4 +109,8 @@ endif()
target_link_libraries(InstructorsAndTrainees PRIVATE libDataBaseLMS.dll) target_link_libraries(InstructorsAndTrainees PRIVATE libDataBaseLMS.dll)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../testDB/testDBpgSQL)
target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../testDB/testDBpgSQL/Core)
#install(TARGETS InstructorsAndTrainees DESTINATION ${VEYON_LIB_DIR}) #install(TARGETS InstructorsAndTrainees DESTINATION ${VEYON_LIB_DIR})

View File

@@ -0,0 +1,32 @@
#include <QList>
#include <QString>
#ifndef FILEDATA_H
#define FILEDATA_H
struct FileData
{
QString path;
QString hash;
bool operator==(const FileData& other)const{
if(this->path==(other.path)) return true;
return false;
}
}; //путь
struct SAttribute
{
QString name;
QString value;
};
struct SXmlAnswerTag{
QString elementName;
QList<SAttribute> attr;
};
#endif // FILEDATA_H

View File

@@ -0,0 +1,341 @@
#include "Core/dataparser.h"
#include "FileData.h"
#include "tools.h"
#include <QDir>
DataParser::DataParser(QObject *parent) :
QObject(parent)
{
if(!QDir(staticDataFolderName).exists()){
QDir().mkdir(staticDataFolderName);
}
}
QByteArray DataParser::slotGetXmlAnswer(QString answerCode)
{
if(answerCode == "END"){
return xmlAnswer_notify(answerCode);
}
return nullptr;
}
void DataParser::createFileDataList(QList<FileData> fileDataList,QString filename)
{
QFile file(filename);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("FileDataList");
foreach (FileData data,fileDataList)
{
xmlWriter.writeStartElement("FileData");
xmlWriter.writeAttribute("Path",data.path);
xmlWriter.writeAttribute("Hash",data.hash);
xmlWriter.writeEndElement();
}
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createAuthMessage(ClientAutorization *auth)
{
authPassCache = auth; //кэширование даных авторизации, для сохранения при успешном заходе
QFile file(tempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ClientAutorization");
xmlWriter.writeAttribute("Login",auth->Login);
xmlWriter.writeAttribute("Password",auth->Password);
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createServerSettings(QString address, QString port)
{
QFile file(settingsName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ServerSettingsContainer");
xmlWriter.writeStartElement("ServerSettings");
xmlWriter.writeAttribute("Address",address);
xmlWriter.writeAttribute("Port",port);
xmlWriter.writeAttribute("Language","RUS");
xmlWriter.writeAttribute("AutoStart",QString::number(false));
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createAuthData(ServerAuthorization *serverAuth)
{
QFile file(authTempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("AuthData");
xmlWriter.writeAttribute("Login",authPassCache->Login);
xmlWriter.writeAttribute("Password",authPassCache->Password);
xmlWriter.writeAttribute("InstructorName",serverAuth->InstructorName);
xmlWriter.writeAttribute("ClientName",serverAuth->ClientName);
xmlWriter.writeAttribute("AccessType",serverAuth->AccessType);
xmlWriter.writeEndElement();
file.close();
}
void DataParser::createAuthDataOffline(QString username, QString pass)
{
QFile file(authTempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("AuthData");
xmlWriter.writeAttribute("Login",username);
xmlWriter.writeAttribute("Password",pass);
xmlWriter.writeAttribute("InstructorName","empty");
xmlWriter.writeAttribute("ClientName","Offline");
xmlWriter.writeAttribute("AccessType","Offline");
xmlWriter.writeEndElement();
file.close();
}
QByteArray DataParser::xmlAnswer_notify(QString code)
{
QList<SXmlAnswerTag> listTag;
SAttribute attribute1 = {"Code", code};
QList<SAttribute> listAttr = {attribute1};
SXmlAnswerTag tag = {"ClientNotify", listAttr};
listTag.append(tag);
return xmlAnswer(listTag);
}
void DataParser::addRunData(QList<int> displays)
{
QFile file(displayTemp);
file.open(QIODevice::ReadWrite);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartElement("DisplayInfo");
xmlWriter.writeAttribute("DisplayCount",QString::number(displays.length()));
xmlWriter.writeEndElement();
file.close();
}
ServerSettings *DataParser::getServerSettings()
{
ServerSettings *settings = new ServerSettings;
QFile file(settingsName);
file.open(QIODevice::ReadOnly);
QXmlStreamReader xmlReader(&file);
while (!xmlReader.atEnd()){
if(xmlReader.isStartElement()){
if(xmlReader.name() == "ServerSettings"){
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Address"){
settings->Address = value;
}
if(name == "Port"){
settings->Port = value;
}
if(name == "Language"){
settings->Language = value;
}
if(name == "AutoStart"){
settings->isAutoStart = value.toInt();
}
}
}
}
xmlReader.readNext();
}
file.close();
return settings;
}
void DataParser::saveClientSettrings(QString language, bool isAutoStart)
{
QFile file(settingsName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString settings = file.readAll();
file.close();
file.remove();
file.open(QIODevice::WriteOnly | QIODevice::Text);
auto languagePos = settings.indexOf(XMLLanguageProperty) + XMLLanguageProperty.length();
settings = settings.replace(languagePos,language.size(),language);
auto autoStartPos = settings.indexOf(XMLAutoStartProperty) + XMLAutoStartProperty.length();
settings = settings.replace(autoStartPos,1,QString::number(isAutoStart));
file.write(settings.toUtf8());
file.close();
}
QList<FileData>* DataParser::xmlFileDataParse(QByteArray array, QString filter = "")
{
QXmlStreamReader xmlReader(array);
QList<FileData> *datas = new QList<FileData>;
xmlReader.readNext(); // Переходим к первому элементу в файле
//Крутимся в цикле до тех пор, пока не достигнем конца документа
while(!xmlReader.atEnd())
{
//Проверяем, является ли элемент началом тега
if(xmlReader.isStartElement())
{
if(xmlReader.name() == "FileData")
{
FileData data;
foreach(const QXmlStreamAttribute &attr,xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Path")
data.path = value;
else if(name == "Hash")
data.hash = value;
}
if(data.path.contains(filter))
datas->append(data);
}
}
xmlReader.readNext();
}
return datas;
}
QByteArray DataParser::xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1, QString elemUp2)
{
/* Открываем файл для Записи*/
QFile file(tempName);
file.open(QIODevice::WriteOnly);
/* Создаем объект, с помощью которого осуществляется запись в файл */
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true); // Устанавливаем автоформатирование текста
xmlWriter.writeStartDocument(); // Запускаем запись в документ
if(elemUp1 != "")
xmlWriter.writeStartElement(elemUp1); // Записываем тег
if(elemUp2 != "")
xmlWriter.writeStartElement(elemUp2); // Записываем тег
//Записываем все элементы
foreach(SXmlAnswerTag tag, listTag)
{
xmlWriter.writeStartElement(tag.elementName); // Записываем тег
// Записываем атрибуты
foreach(SAttribute attr, tag.attr)
xmlWriter.writeAttribute(attr.name, attr.value);
xmlWriter.writeEndElement(); // Закрываем тег
}
if(elemUp1 != "")
xmlWriter.writeEndElement(); // Закрываем тег
if(elemUp1 != "")
xmlWriter.writeEndElement(); // Закрываем тег
/* Завершаем запись в документ*/
xmlWriter.writeEndDocument();
file.close(); // Закрываем файл
QByteArray array;
/* Открываем файл для Чтения*/
QFile fileR(tempName);
if (!fileR.open(QFile::ReadOnly | QFile::Text))
{
QString str = "Не удалось открыть файл";
qDebug() << "xmlAnswer: " << str;
}
else
{
array = fileR.readAll();
fileR.close(); // Закрываем файл
}
return array;
}
DataParser::~DataParser()
{
}

View File

@@ -0,0 +1,42 @@
#ifndef DATAPARSER_H
#define DATAPARSER_H
#include "FileData.h"
#include <QObject>
#include <Datas.h>
#include <QFile>
#include <QXmlStreamWriter>
class DataParser : public QObject
{
Q_OBJECT
public:
explicit DataParser(QObject *parent = 0);
~DataParser();
ServerSettings* getServerSettings();
void createServerSettings(QString server,QString port);
void saveClientSettrings(QString language,bool isAutoStart);
void createFileDataList(QList<FileData> fileDataList,QString filename);
void createAuthMessage(ClientAutorization *auth);
void createAuthData(ServerAuthorization *serverAuth);
void createAuthDataOffline(QString username,QString pass);
void addRunData(QList<int> displays);
QByteArray xmlAnswer_notify(QString code);
QByteArray xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1 = "", QString elemUp2 = "");
QList<FileData>* xmlFileDataParse(QByteArray array,QString filter);
public slots:
QByteArray slotGetXmlAnswer(QString);
private:
const QString XMLLanguageProperty = "Language=\"";
const QString XMLAutoStartProperty = "AutoStart=\"";
ClientAutorization *authPassCache;
};
#endif // DATAPARSER_H

View File

@@ -0,0 +1,337 @@
#include "Core/recognizesystem.h"
#include <QThread>
#include <QDir>
RecognizeSystem::RecognizeSystem(QObject *parent):
QObject(parent)
{
packetType = PacketType::TYPE_NONE;
filePath.clear();
fileSize = 0;
message.clear();
sizeReceiveData = 0;
tmpBlock.clear();
countSend = 0;
folderList = new QList<QString>;
}
RecognizeSystem::~RecognizeSystem()
{
}
void RecognizeSystem::initialize(DataParser *dataParser/*,MainWindow *mainWindow*/)
{
this->dataParser = dataParser;
//this->mainWindow = mainWindow;
connect(this,&RecognizeSystem::sigSaveLoginData,dataParser,&DataParser::createAuthData);
}
void RecognizeSystem::recognize(QTcpSocket *socket)
{
qDebug() << "RecognizeThreadId " << QThread::currentThreadId();
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
while(socket->bytesAvailable())
{
if (socket->state() != QTcpSocket::ConnectedState) return;
if(packetType == PacketType::TYPE_NONE){ //определение первичного пакета
stream.startTransaction();
stream >> packetType;
if(!stream.commitTransaction()){
emit sigSendDebugLog(Tools::getTime() + " CLIENT: packetType - FAIL commitTransaction");
if(socket->waitForReadyRead(TCP_READ_TIMEOUT)){
emit sigSendDebugLog("ERROR: PACKET TYPE READ TIMEOUT");
return;
}
continue;
}
//qDebug() << Tools::GetTime() << "CLIENT: type: " << packetType;
}
if(packetType == PacketType::TYPE_FOLDER){ //создание папок
stream.startTransaction();
stream >> filePath;
if(!stream.commitTransaction()){
continue;
}
filePath = Tools::createFullPath(filePath);
QDir dir(filePath);
if(!dir.exists()){
if(dir.mkpath(filePath)){
qDebug() << "Dir Created";
}
}
packetType = PacketType::TYPE_NONE;
emit sigUpdateBytesAvailable();
continue;
}
if(packetType == PacketType::TYPE_FILE) //загрузка файлов
{
//ПОЛУЧЕНИЕ ПУТИ
//ПОЛУЧЕНИЕ РАЗМЕРА ФАЙЛА
forever
{
stream.startTransaction();
stream >> filePath;
stream >> fileSize;
if(!stream.commitTransaction()){
emit sigSendDebugLog(Tools::getTime() + "CLIENT: filePath, fileSize - FAIL commitTransaction");
if (!socket->waitForReadyRead(TCP_READ_TIMEOUT)) {
emit sigSendDebugLog(Tools::getTime() + "CLIENT: ERROR! readyRead timeout - filePath, fileSize!!!");
return;
}
continue;
}
filePath = Tools::createFullPath(filePath);
emit sigSendDebugLog("CLIENT: filesize: " + QString::number(fileSize));
emit sigSendDebugLog("CLIENT: filePath: " + filePath);
socket->waitForReadyRead(100);
break;
}
//ПОЛУЧЕНИЕ САМОГО ФАЙЛА
emit sigSendDebugLog(Tools::getTime() + "AfterRead size and path BytesAvailable: " + socket->bytesAvailable());
//УКАЗАНИЕ ПУТИ ФАЙЛА
QFile file(filePath);
if (file.exists())
{
file.remove(); //удаление файла, если он уже есть, но необходимо обновить
emit sigSendDebugLog(Tools::getTime() + "Delete exist file: " + filePath);
socket->waitForReadyRead(100);
}
file.open(QFile::Append);
forever
{
stream.startTransaction();
stream >> tmpBlock;
if(!stream.commitTransaction()){
if(socket->state() == QAbstractSocket::UnconnectedState){
emit sigSocketDisabled();
return;
}
if(socket->waitForReadyRead(TCP_READ_TIMEOUT)){
continue;
}
continue;
}
quint64 toFile = file.write(tmpBlock);
emit sigSendDebugLog(Tools::getTime() + "CLIENT: toFile :" + toFile);
sizeReceiveData += toFile;
countSend++;
tmpBlock.clear();
if(sizeReceiveData == fileSize){
emit sigSendDebugLog(Tools::getTime() + "FINAL Count send: " + QString::number(countSend));
emit sigSendDebugLog(Tools::getTime() + "FINAL Size received: " + QString::number(sizeReceiveData));
emit sigSendDebugLog(Tools::getTime() + "FINAL File size" + QString::number(fileSize));
emit sigUpdateBytesAvailable();
break;
}
}
file.close();
emit sigSendDebugLog(Tools::getTime() + "File loaded");
//ОЧИСТКА ПОСЛЕ ПЕРЕДАЧИ
filePath.clear();
fileSize = 0;
tmpBlock.clear();
sizeReceiveData = 0;
countSend = 0;
}
if(packetType == PacketType::TYPE_DELETE) //удаление лишних файлов (рекурсивно удаляет все содежимое)
{
stream.startTransaction();
stream >> filePath;
if(!stream.commitTransaction()){
continue;
}
filePath = Tools::createFullPath(filePath);
QFileInfo fileInfo(filePath);
if(fileInfo.exists())
{
if(fileInfo.isFile())
{
QFile file(filePath);
file.remove();
}
if(fileInfo.isDir()){
QDir dir(filePath);
dir.removeRecursively();
}
qDebug() << Tools::getTime() << "Deleted: " << filePath;
}
packetType = PacketType::TYPE_NONE;
continue;
}
if(packetType ==PacketType::TYPE_FINISH){ //для повторного создания хэша после загрузки
//updateController->calculateCommonHash();
emit sigLoadComplete();
packetType = PacketType::TYPE_NONE;
}
if(packetType == PacketType::TYPE_NEEDUPDATE){ //нужно обновление
bool flag = false;
quint64 size = 0;
quint64 fileCount = 0;
stream.startTransaction();
stream >> flag;
stream >> size;
stream >> fileCount;
if(!stream.commitTransaction()){
continue;
}
emit sigNeedUpdate(flag,size,fileCount);
packetType = PacketType::TYPE_NONE;
}
if(packetType == PacketType::TYPE_XMLANSWER){ //ответы формата XML
QByteArray array;
stream.startTransaction();
stream >> array;
if(!stream.commitTransaction()){
continue;
}
xmlParser(array);
packetType = PacketType::TYPE_NONE;
}
packetType = PacketType::TYPE_NONE;
}
}
void RecognizeSystem::xmlParser(QByteArray array)
{
QXmlStreamReader xmlReader(array);
xmlReader.readNext();
while(!xmlReader.atEnd())
{
if(!xmlReader.isStartElement()) {
xmlReader.readNext();
continue;
}
if(xmlReader.name() == "ServerNotify")
{
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Code")
{
if (value == "END")
{
emit sigSocketDisabled();
}
if(value == "BLOCKED")
{
emit sigServerBlocked();
}
if(value == "HASHSENDCOMPLETE")
{
emit sigStartCompare();
}
}
}
}
if(xmlReader.name() == "ServerAuthorization"){
ServerAuthorization *serverAuth = new ServerAuthorization;
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if (name == "Result"){
serverAuth->Result = value == "true" ? true : false;
}
if (name == "InstructorName"){
serverAuth->InstructorName = value;
}
if (name == "ClientName"){
serverAuth->ClientName = value;
}
if (name == "AccessType"){
serverAuth->AccessType = value;
checkAccessType(value);
}
}
emit sigSaveLoginData(serverAuth);
}
xmlReader.readNext();
}
}
void RecognizeSystem::checkAccessType(QString type)
{
if(type == "instructor")
{
//mainWindow->callUpdateList();
}
}

View File

@@ -0,0 +1,52 @@
#ifndef RECOGNIZESYSTEM_H
#define RECOGNIZESYSTEM_H
#include <QObject>
#include <QDataStream>
#include <QTcpSocket>
//#include <mainwindow.h>
#include <Core\tools.h>
#include "dataparser.h"
class RecognizeSystem : public QObject
{
Q_OBJECT
public:
explicit RecognizeSystem(QObject *parent = 0);
~RecognizeSystem();
void initialize(DataParser *dataParser/*,MainWindow *mainWindow*/);
void recognize(QTcpSocket *socket);
signals:
void sigUpdateBytesAvailable();
void sigLoadComplete();
void sigNeedUpdate(bool flag,qint64 size,quint64 fileCount);
void sigSendDebugLog(QString message);
void sigSocketDisabled();
void sigServerBlocked();
void sigSaveLoginData(ServerAuthorization *serverAuth);
void sigSocketWaitForReadyRead(int waitTime);
void sigStartCompare();
private:
QList<QString> *folderList;
//MainWindow *mainWindow;
DataParser *dataParser;
PacketType packetType;
QString message;
QString filePath;
QByteArray tmpBlock;
qint64 sizeReceiveData;
qint64 fileSize;
int countSend;
void xmlParser(QByteArray array);
void checkAccessType(QString type);
};
#endif // RECOGNIZESYSTEM_H

View File

@@ -0,0 +1,135 @@
#include "sendsystem.h"
#include "tools.h"
#include <QFile>
#include <QFileInfo>
#include <QThread>
SendSystem::SendSystem(QObject *)
{
}
void SendSystem::setSocket(QTcpSocket *socket)
{
this->socket = socket;
}
void SendSystem::sendDisable()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QByteArray data;
data = emit sigGetXmlAnswer("DISABLE");
stream << PacketType::TYPE_XMLANSWER;
stream << data;
socket->waitForBytesWritten();
}
void SendSystem::sendClientAutorization()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QFile file(tempName);
file.open(QIODevice::ReadOnly);
QByteArray array = file.readAll();
stream << PacketType::TYPE_XMLANSWER;
stream << array;
socket->waitForBytesWritten();
file.close();
}
void SendSystem::sendFileBlock(QString path)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QString fullPath = Tools::createFullPath(path);
quint64 fileSize = 0;
int countSend = 0;
QFile file(fullPath); //Открываем файл для чтения
QFileInfo fileInfo(file);
fileSize = fileInfo.size();
stream << PacketType::TYPE_FILE; //Отправляем тип блока
stream << path << fileSize;
socket->waitForReadyRead(20);
//socket->waitForBytesWritten();
if(file.open(QFile::ReadOnly)){
while(!file.atEnd()){
QByteArray data = file.read(1025*250);
stream << data;
socket->waitForBytesWritten();
countSend++;
}
qDebug() << Tools::getTime() << "count end Final: " << countSend;
}
file.close();
emit sigSend();
//qDebug() << "Transaction after send file: " << socket->isTransactionStarted();
countSend = 0;
//socket->waitForBytesWritten();
socket->waitForReadyRead(20);
}
void SendSystem::sendFolderBlock(QString path)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_FOLDER;
stream << path;
emit sigSend();
socket->waitForReadyRead(100);
}
void SendSystem::sendQTConnect()
{
QString value = QString::number(PacketType::TYPE_QT);
socket->write(value.toUtf8());
socket->waitForBytesWritten();
}
void SendSystem::sendXMLAnswer(QByteArray array)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_XMLANSWER;
stream << array;
socket->waitForBytesWritten();
socket->waitForReadyRead(100);
}
void SendSystem::sendFinish()
{
socket->waitForReadyRead(100);
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_FINISH;
socket->waitForReadyRead(100);
}
SendSystem::~SendSystem()
{
}

View File

@@ -0,0 +1,30 @@
#ifndef SENDSYSTEM_H
#define SENDSYSTEM_H
#include <QObject>
#include <QTcpSocket>
#include <QDataStream>
class SendSystem :public QObject
{
Q_OBJECT
public:
explicit SendSystem(QObject* parent = nullptr);
void setSocket(QTcpSocket *socket);
void sendClientAutorization();
void sendDisable();
void sendFileBlock(QString path);
void sendFolderBlock(QString path);
void sendQTConnect();
void sendXMLAnswer(QByteArray array);
~SendSystem();
void sendFinish();
signals:
void sigSend();
QByteArray sigGetXmlAnswer(QString);
private:
QTcpSocket *socket;
};
#endif // SENDSYSTEM_H

View File

@@ -0,0 +1,141 @@
#include "tcpclient.h"
#include <QDir>
TCPClient::TCPClient(QObject *parent) :
QObject(parent)
{
}
void TCPClient::initialize(RecognizeSystem *recognize,SendSystem *sendSystem)
{
this->recognizeSystem = recognize;
this->sendSystem = sendSystem;
isConnected = false;
emit sigSendDebugLog(Tools::getTime() + " Client started");
}
void TCPClient::setConnect(ServerSettings *serverSettings)
{
socket = new QTcpSocket();
qDebug() << "TCPCLient thread: " << thread();
if (socket != NULL && socket->state() == QTcpSocket::ConnectedState)
{
emit sigSendDebugLog("already connected");
return;
}
socket->connectToHost(serverSettings->Address,serverSettings->Port.toShort());
emit sigSendDebugLog("Try connect...");
isConnected = true;
if (socket->waitForConnected(2000))
{
connect(socket,&QTcpSocket::readyRead,this,&TCPClient::slotReadyRead,Qt::DirectConnection);
connect(socket,&QTcpSocket::disconnected,this,&TCPClient::setDisconnect);
//connect(socket,&QTcpSocket::connected,this,&TCPClient::slotConnectNotify);
connect(this,&TCPClient::sigRecognize,recognizeSystem,&RecognizeSystem::recognize,Qt::DirectConnection);
connect(this,&TCPClient::sigSetSocket,sendSystem,&SendSystem::setSocket);
emit sigSetSocket(socket);
slotConnectNotify();
}
else
{
isConnected = false;
emit sigServerDisconnect();
}
}
void TCPClient::setDisconnect()
{
socket->disconnect();
isConnected = false;
emit sigServerDisconnect();
emit sigSendDebugLog("Server disabled");
}
void TCPClient:: waitRead(int time)
{
socket->waitForReadyRead(time);
}
QTcpSocket *TCPClient::getSocket()
{
return socket;
}
void TCPClient::slotSendCommand(QString command)
{
QDataStream stream(socket);
QByteArray data;
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
if(!command.isEmpty() && socket->state() == QTcpSocket::ConnectedState){
if(command == "check")
{
stream << PacketType::TYPE_COMMAND;
stream << command;
socket->waitForBytesWritten();
sendSystem->sendFileBlock("/" + hashFilename);
emit sigSendDebugLog(Tools::getTime() + " Local checkFile sended");
socket->waitForReadyRead(1000);
}
else if(command == "update"){
emit sigSendDebugLog("Update started");
stream << PacketType::TYPE_COMMAND;
stream << command;
socket->waitForReadyRead(1000);
}
else if(command == "run"){
//externalExecuter->callApp();
}
}else{
emit sigSendDebugLog("WRONG SOCKET AFTER ENTERED");
}
}
void TCPClient::slotConnectNotify()
{
if(socket->state() != QTcpSocket::ConnectedState)
{
isConnected = false;
emit sigSendDebugLog("Connect invalid");
emit sigConnectionState(false);
return;
}
else
{
isConnected = true;
emit sigSendDebugLog("Connect complete");
emit sigConnectionState(true);
sendSystem->sendQTConnect();
}
}
void TCPClient::slotReadyRead()
{
if(!socket){
emit sigSendDebugLog("WRONG SOCKET");
return;
}
emit sigRecognize(socket);
}
bool TCPClient::getIsConnected() const
{
return isConnected;
}
TCPClient::~TCPClient()
{
}

View File

@@ -0,0 +1,60 @@
#ifndef TCPCLIENT_H
#define TCPCLIENT_H
#include <QObject>
#include <QTcpSocket>
#include <QHostAddress>
#include <QDataStream>
#include <QTcpServer>
#include <QFile>
#include <QCoreApplication>
#include "Core\recognizesystem.h"
#include "Core\tools.h"
#include "sendsystem.h"
#include "Datas.h"
class RecognizeSystem;
class SendSystem;
class TCPClient : public QObject
{
Q_OBJECT
public:
explicit TCPClient(QObject *parent = 0);
void initialize(RecognizeSystem *recognize,SendSystem *sendSystem);
void setConnect(ServerSettings *serverSettings);
void waitRead(int time);
QTcpSocket* getSocket();
~TCPClient();
bool getIsConnected() const;
signals:
void sigSendDebugLog(QString message);
void sigRecognize(QTcpSocket *socket);
void sigServerDisconnect();
void sigConnectionState(bool flag);
void sigSetSocket(QTcpSocket *socket);
public slots:
void slotSendCommand(QString message);
void slotConnectNotify();
private slots:
void slotReadyRead();
private:
SendSystem *sendSystem;
QTcpSocket *socket;
RecognizeSystem *recognizeSystem;
bool isConnected;
void setDisconnect();
};
#endif // TCPCLIENT_H

View File

@@ -0,0 +1,58 @@
#include "tools.h"
#include <qdir.h>
void Tools::printTime()
{
qDebug() << QTime::currentTime().toString("hh:mm:ss");
}
QString Tools::getTime()
{
return QTime::currentTime().toString(("hh:mm:ss"));
}
QString Tools::createLocalPath(QString path)
{
qDebug() << "Full path: " << path;
qint8 pos = path.indexOf("Application");
QString localPath = path.remove(0,--pos);
qDebug() << "Local path: " << localPath;
return localPath;
}
QString Tools::createFullPath(QString path)
{
QString fullPath;
qint8 pos = path.indexOf("Application");
QString localPath = path.remove(0,--pos);
qDebug() << "CLIENT: localPath" << localPath;
fullPath = QDir::currentPath() + localPath;
return fullPath;
}
QString Tools::convertFileSize(quint64 fileSize)
{
quint64 megaByte = fileSize / (1024 * 1024);
QString resultSize;
if (megaByte == 0)
{
auto kiloByte = fileSize / 1024;
resultSize = QString::number(kiloByte) + "кб. ";
}
else
{
resultSize = QString::number(megaByte) + "мб. ";
}
QString result = resultSize;
return result;
}

View File

@@ -0,0 +1,46 @@
#ifndef GLOBAL_H
#define GLOBAL_H
#include <QString>
#include <QTime>
#include <QDebug>
#define TCP_READ_TIMEOUT 2000
static QString applicationEXEName = "RRJ.exe";
static QString applicationFolderName = "/Application";
static QString staticDataFolderName = "StaticData";
static QString streamingAssetsPath = "/Application/RRJLoader/RRJ_Data/StreamingAssets";
static QString hashFilename = staticDataFolderName + "/clientHash.xml";
static QString settingsName = staticDataFolderName + "/settings.xml";
static QString tempName = staticDataFolderName + "/temp.xml";
static QString authTempName = staticDataFolderName + "/authData.xml";
static QString displayTemp = staticDataFolderName + "/displayData.xml";
static QString streamingHashFilename = staticDataFolderName + "/streamingHash.xml";
static QString serverHash = staticDataFolderName + "/serverHash.xml";
enum PacketType{
TYPE_NONE = 0,
TYPE_UNITY = 1,
TYPE_FILE = 2,
TYPE_COMMAND = 3,
TYPE_FOLDER = 4,
TYPE_DELETE = 5,
TYPE_FINISH = 6,
TYPE_NEEDUPDATE = 7,
TYPE_XMLANSWER = 8,
TYPE_QT = 9,
TYPE_DISABLE = 11
};
class Tools {
public:
static void printTime();
static QString getTime();
static QString createLocalPath(QString path);
static QString createFullPath(QString path);
static QString convertFileSize(quint64 fileSize);
};
#endif // GLOBAL_H

View File

@@ -0,0 +1,58 @@
#ifndef DATAS_H
#define DATAS_H
#include <QString>
class ServerSettings{
public:
QString Address;
QString Port;
QString Language;
bool isAutoStart;
};
class ServerAuthorization{
public:
QString InstructorName;
QString ClientName;
bool Result;
QString AccessType;
};
class ClientAutorization{
public:
QString Login;
QString Password;
};
class ServerMessage
{
public:
QString Text;
};
class ClientMessage
{
public:
QString Text;
};
class ServerTask
{
public:
QString Text;
};
class ServerNotify
{
public:
QString Code;
};
class ClientNotify
{
public:
QString Code;
};
#endif // DATAS_H

View File

@@ -0,0 +1,86 @@
#include "connectortoserver.h"
#include <QThread>
ConnectorToServer::ConnectorToServer(QObject *parent) :
QObject(parent),
connectionThread(nullptr),
client(nullptr),
dataParser(nullptr),
sendSystem(nullptr),
recognizeSystem(nullptr)
{
initialize();
}
bool ConnectorToServer::authorizationInstructorLocal(QString login, QString password)
{
if (!client->getIsConnected())
{
return false;
}
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = login;
autorization->Password = password;
dataParser->createAuthMessage(autorization);
emit sigSendAutorization();
return true;
}
void ConnectorToServer::initialize()
{
createObjects();
bindConnection();
emit sigInitializeClient(recognizeSystem,sendSystem,connectionThread);
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
void ConnectorToServer::bindConnection()
{
/*
connect(recognizeSystem,&RecognizeSystem::sigStartCompare,hashComparer,&HashComparer::CompareDeltas);
connect(recognizeSystem,&RecognizeSystem::sigUpdateBytesAvailable,this,&MainWindow::updateProgress,Qt::QueuedConnection);
connect(recognizeSystem,&RecognizeSystem::sigLoadComplete,this,&MainWindow::loadComplete);
connect(recognizeSystem,&RecognizeSystem::sigNeedUpdate,this,&MainWindow::setNeedUpdate);
connect(recognizeSystem,&RecognizeSystem::sigSocketDisabled,this,&MainWindow::lostConnection);
connect(recognizeSystem,&RecognizeSystem::sigSaveLoginData,this,&MainWindow::checkLoginResult);
connect(recognizeSystem,&RecognizeSystem::sigSocketWaitForReadyRead,client,&TCPClient::waitRead,Qt::DirectConnection);
connect(recognizeSystem,&RecognizeSystem::sigServerBlocked,this,&MainWindow::serverBlocked);
connect(sendSystem,&SendSystem::sigSend,this,&MainWindow::updateProgress);
connect(sendSystem,&SendSystem::sigGetXmlAnswer,dataParser,&DataParser::slotGetXmlAnswer);
connect(client,&TCPClient::sigConnectionState,this,&MainWindow::slotConnectionState,Qt::AutoConnection);
connect(client,&TCPClient::sigServerDisconnect,this,&MainWindow::slotServerDisconnect);
*/
connect(this,&ConnectorToServer::sigInitializeClient,client,&TCPClient::initialize,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSetConnect,client,&TCPClient::setConnect,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(recognizeSystem,&RecognizeSystem::sigSaveLoginData,this,&ConnectorToServer::sigLoginResult);
}
void ConnectorToServer::createObjects()
{
connectionThread = new QThread;
client = new TCPClient;
client->moveToThread(connectionThread);
dataParser = new DataParser;
sendSystem = new SendSystem;
sendSystem->moveToThread(connectionThread);
recognizeSystem = new RecognizeSystem;
recognizeSystem->moveToThread(connectionThread);
connectionThread->start();
connectionThread->setPriority(QThread::HighestPriority);
}

View File

@@ -0,0 +1,42 @@
#ifndef CONNECTORTOSERVER_H
#define CONNECTORTOSERVER_H
#include <QObject>
#include "Core\tcpclient.h"
#include "Core\dataparser.h"
#include "Core\sendsystem.h"
#include "Core\recognizesystem.h"
class ConnectorToServer : public QObject
{
Q_OBJECT
public:
explicit ConnectorToServer(QObject *parent = nullptr);
bool authorizationInstructorLocal(QString login, QString password);
private slots:
signals:
void sigSetConnect(ServerSettings* serverSettings,QThread *thread);
void sigInitializeClient(RecognizeSystem *recognizeSystem,
SendSystem *sendSystem,
QThread *thread);
void sigSendAutorization();
void sigLoginResult(ServerAuthorization * serverAuth);
private:
void initialize();
void bindConnection();
void createObjects();
private:
QThread *connectionThread;
TCPClient *client;
DataParser *dataParser;
SendSystem *sendSystem;
RecognizeSystem *recognizeSystem;
};
#endif // CONNECTORTOSERVER_H

View File

@@ -7,6 +7,7 @@
InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::InstructorsAndTraineesWidget), ui(new Ui::InstructorsAndTraineesWidget),
connectorToServer(nullptr),
dbLMS(nullptr), dbLMS(nullptr),
viewerTrainees(nullptr), viewerTrainees(nullptr),
viewerInstructors(nullptr), viewerInstructors(nullptr),
@@ -15,6 +16,9 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
connectorToServer = new ConnectorToServer(this);
connect(connectorToServer,&ConnectorToServer::sigLoginResult,this,&InstructorsAndTraineesWidget::checkLoginResult);
dbLMS = new InterfaceDataBaseLMS(this); dbLMS = new InterfaceDataBaseLMS(this);
connect(this, &InstructorsAndTraineesWidget::signal_LanguageChanged, dbLMS, &InterfaceDataBaseLMS::slot_LanguageChanged); connect(this, &InstructorsAndTraineesWidget::signal_LanguageChanged, dbLMS, &InterfaceDataBaseLMS::slot_LanguageChanged);
@@ -37,7 +41,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
viewerTrainees->setMinimumSize(1600, 600); viewerTrainees->setMinimumSize(1600, 600);
viewerInstructors->setMinimumSize(1600, 300); viewerInstructors->setMinimumSize(1600, 300);
ui->btnAuthorizationInstructor->setEnabled(false); //ui->btnAuthorizationInstructor->setEnabled(false);
//ui->btnConnectionToDB->click(); //ui->btnConnectionToDB->click();
} }
@@ -58,6 +62,7 @@ InstructorsAndTraineesWidget::~InstructorsAndTraineesWidget()
delete viewerInstructors; delete viewerInstructors;
delete viewerTrainees; delete viewerTrainees;
delete dbLMS; delete dbLMS;
delete connectorToServer;
delete ui; delete ui;
} }
@@ -90,6 +95,38 @@ void InstructorsAndTraineesWidget::slot_LanguageChanged(QString language)
Q_EMIT signal_LanguageChanged(language); Q_EMIT signal_LanguageChanged(language);
} }
void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverAuth)
{
if (serverAuth->Result)
{
loginInstructorLoggedInLocal = serverAuth->ClientName;
if(loginInstructorLoggedInLocal == 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);
ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
//updateLabelLoggedInInstructor();
//Q_EMIT signal_NeedUpdateUI(true, true);
QMessageBox::information(this, tr("Instructor authorization"), tr("Successfully!"));
}
else
{
QMessageBox::warning(this, tr("Instructor authorization"), tr("Invalid login or password!"));
}
}
bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent) bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent)
{ {
DialogAuthorizationInstructor dlg(parent); DialogAuthorizationInstructor dlg(parent);
@@ -104,31 +141,11 @@ bool InstructorsAndTraineesWidget::authorizationInstructorLocal(QWidget* parent)
QString login = dlg.getLogin(); QString login = dlg.getLogin();
QString password = dlg.getPassword(); QString password = dlg.getPassword();
if(authorizationInstructor(login, password)) //if(authorizationInstructor(login, password))
{ connectorToServer->authorizationInstructorLocal(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!"));
return true; return true;
} }
else
QMessageBox::warning(parent, tr("Instructor authorization"), tr("Invalid login or password!"));
break;
}
case QDialog::Rejected: case QDialog::Rejected:
return false; return false;
default: default:
@@ -366,11 +383,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{//Авторизация Инструктора локальная (Администратора) {//Авторизация Инструктора локальная (Администратора)
if(authorizationInstructorLocal(this)) if(authorizationInstructorLocal(this))
{ {
ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
updateLabelLoggedInInstructor();
Q_EMIT signal_NeedUpdateUI(true, true);
} }
else else
ui->btnAuthorizationInstructor->setChecked(false); ui->btnAuthorizationInstructor->setChecked(false);
@@ -383,7 +396,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{ {
ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor")); ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor"));
updateLabelLoggedInInstructor(); //updateLabelLoggedInInstructor();
Q_EMIT signal_NeedUpdateUI(true, true); Q_EMIT signal_NeedUpdateUI(true, true);
} }

View File

@@ -8,6 +8,7 @@
#include "viewerinstructors.h" #include "viewerinstructors.h"
#include "doctaskswidget.h" #include "doctaskswidget.h"
#include "interfacedatabaselms.h" #include "interfacedatabaselms.h"
#include "connectortoserver.h"
namespace Ui { namespace Ui {
class InstructorsAndTraineesWidget; class InstructorsAndTraineesWidget;
@@ -27,6 +28,7 @@ private:
public Q_SLOTS: public Q_SLOTS:
//Слот обработки смены языка //Слот обработки смены языка
void slot_LanguageChanged(QString language); void slot_LanguageChanged(QString language);
void checkLoginResult(ServerAuthorization * serverAuth);
Q_SIGNALS: Q_SIGNALS:
//сигнал об изменении языка интерфейса //сигнал об изменении языка интерфейса
@@ -79,6 +81,8 @@ private:
private: private:
Ui::InstructorsAndTraineesWidget *ui; Ui::InstructorsAndTraineesWidget *ui;
ConnectorToServer* connectorToServer;
InterfaceDataBaseLMS* dbLMS; InterfaceDataBaseLMS* dbLMS;
ViewerTrainees* viewerTrainees; ViewerTrainees* viewerTrainees;

View File

@@ -35,3 +35,7 @@
355 2551 7548372844375223 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59 355 2551 7548372844375223 CMakeFiles/DataBaseLMS.dir/databaselms.cpp.obj 202016fcb2dffc59
2551 2753 7548372846394482 libDataBaseLMS.dll 31a19f1f3436f66b 2551 2753 7548372846394482 libDataBaseLMS.dll 31a19f1f3436f66b
2551 2753 7548372846394482 libDataBaseLMS.dll.a 31a19f1f3436f66b 2551 2753 7548372846394482 libDataBaseLMS.dll.a 31a19f1f3436f66b
62 112 0 CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20
62 112 0 DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20
62 112 0 D:/LMS/DB_LMS/Debug64/CMakeFiles/DataBaseLMS_autogen b8e538c54fdbce20
62 112 0 D:/LMS/DB_LMS/Debug64/DataBaseLMS_autogen/mocs_compilation.cpp b8e538c54fdbce20

View File

@@ -0,0 +1,21 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 201402L
QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 7
QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3
QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_GCC_MAJOR_VERSION \
QMAKE_GCC_MINOR_VERSION \
QMAKE_GCC_PATCH_VERSION
QMAKE_CXX.INCDIRS = \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++ \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++/i686-w64-mingw32 \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++/backward \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include-fixed \
D:/QT/Tools/mingw730_32/i686-w64-mingw32/include
QMAKE_CXX.LIBDIRS = \
D:/QT/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0 \
D:/QT/Tools/mingw730_32/lib/gcc \
D:/QT/Tools/mingw730_32/i686-w64-mingw32/lib \
D:/QT/Tools/mingw730_32/lib

View File

@@ -0,0 +1 @@
[{"excluded":[],"includePaths":["D:/QT/5.14.2/mingw73_64/include","D:/QT/5.14.2/mingw73_64/include/QtWidgets","D:/QT/5.14.2/mingw73_64/include/QtGui","D:/QT/5.14.2/mingw73_64/include/QtANGLE","D:/QT/5.14.2/mingw73_64/include/QtNetwork","D:/QT/5.14.2/mingw73_64/include/QtCore","E:/Projects/QT/GUIProj/RRJClient/RRJClient","E:/Projects/QT/GUIProj/RRJClient/RRJClient"],"projectFile":"E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro","sources":["E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/FileData.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/dataparser.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/dataparser.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/externalexecuter.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/externalexecuter.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/recognizesystem.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/recognizesystem.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/screenchecker.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/screenchecker.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tcpclient.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tcpclient.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tools.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tools.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/updatecontroller.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/updatecontroller.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Datas.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/main.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.ui"],"translations":["E:/Projects/QT/GUIProj/RRJClient/RRJClient/QtLanguage_ru.ts","E:/Projects/QT/GUIProj/RRJClient/RRJClient/QtLanguage_eng.ts"]}]

View File

@@ -0,0 +1,32 @@
#include <QList>
#include <QString>
#ifndef FILEDATA_H
#define FILEDATA_H
struct FileData
{
QString path;
QString hash;
bool operator==(const FileData& other)const{
if(this->path==(other.path)) return true;
return false;
}
}; //путь
struct SAttribute
{
QString name;
QString value;
};
struct SXmlAnswerTag{
QString elementName;
QList<SAttribute> attr;
};
#endif // FILEDATA_H

View File

@@ -0,0 +1,138 @@
#include "UpdateController.h"
#include <QDialogButtonBox>
UpdateController::UpdateController(DataParser *parser,SendSystem *sendSystem, QObject *parent) :
QObject(parent)
{
this->dataParser = parser;
this->sendSystem = sendSystem;
localPath = QDir::currentPath() + applicationFolderName;
calculateStreamingHash();
}
void UpdateController::calculateCommonHash()
{
fileDataList.clear();
calculateHash(localPath);
dataParser->createFileDataList(fileDataList,hashFilename);
qDebug() << "UpdateController threadID " << QThread::currentThreadId();
qDebug() << " OR " << thread();
}
void UpdateController::calculateStreamingHash()
{
fileDataList.clear();
calculateHash(QDir::currentPath() + streamingAssetsPath);
dataParser->createFileDataList(fileDataList,streamingHashFilename);
}
void UpdateController::calculateHash(QString path)
{
qDebug() << "Try calculate";
QDirIterator iterator(path,QDirIterator::Subdirectories);
fileDataList.clear();
QList<FileData> *files = new QList<FileData>;
QList<FileData> * folders = new QList<FileData>;
if(!QDir(applicationFolderName).exists()){ //проверка на наличие папки
QDir().mkdir(applicationFolderName);
}
QDir dir(path);
QString hashString;
while (iterator.hasNext())
{
iterator.next();
QFileInfo fileInfo = iterator.fileInfo();
FileData currentFile;
QFile file(fileInfo.absoluteFilePath());
quint64 fileSize = file.size(); //буффер для хэширования крупных файлов
const quint64 bufferSize = 10240;
if(fileInfo.isHidden()) continue;
if(fileInfo.isFile() && file.open(QIODevice::ReadOnly))
{
char buffer[bufferSize];
int bytesRead;
int readSize = qMin(fileSize,bufferSize);
QCryptographicHash hash(QCryptographicHash::Md5);
while(readSize > 0 && (bytesRead = file.read(buffer,readSize)) > 0){
fileSize -= bytesRead;
hash.addData(buffer,bytesRead);
readSize = qMin(fileSize,bufferSize);
}
hashString = QString(hash.result().toHex());
currentFile.path = Tools::createLocalPath(fileInfo.absoluteFilePath());
currentFile.hash = hashString;
files->push_back(currentFile);
file.close();
}
else if (fileInfo.isDir() && !fileInfo.isRoot() && fileInfo.fileName() != "..")
{
currentFile.path = Tools::createLocalPath(fileInfo.path());
currentFile.hash = "FOLDER";
if(!folders->contains(currentFile)){
folders->push_back(currentFile);
}
}
}
fileDataList.append(*folders);
fileDataList.append(*files);
delete folders;
delete files;
}
void UpdateController::updateFilesOnServer(QList<FileData> *fileSendList){
QListIterator<FileData> serverIterator(*fileSendList);
try {
while(serverIterator.hasNext())
{
FileData data = serverIterator.next();
if (data.hash == "FOLDER")
{
sendSystem->sendFolderBlock(data.path);
}
else
{
sendSystem->sendFileBlock(data.path);
}
}
calculateCommonHash();
sendSystem->sendFinish();
emit sigUpdateComplete(true);
}
catch (...)
{
emit sigUpdateComplete(false);
}
}
UpdateController::~UpdateController()
{
}

View File

@@ -0,0 +1,49 @@
#ifndef UPDATECONTROLLER_H
#define UPDATECONTROLLER_H
#include "Core\FileData.h"
#include "Core\dataparser.h"
#include "Core\tcpclient.h"
#include <QXmlStreamWriter>
#include <QXmlStreamReader>
#include <QXmlStreamAttribute>
#include <QCryptographicHash>
#include <QDirIterator>
#include <QFile>
#include <QTextStream>
#include <QDateTime>
#include <QDebug>
#include <QList>
#include <QObject>
class SendSystem;
class UpdateController : public QObject
{
Q_OBJECT
public:
explicit UpdateController(DataParser *parser,SendSystem *sendSystem,QObject *parent = 0);
void calculateCommonHash();
void calculateStreamingHash();
~UpdateController();
void updateFilesOnServer(QList<FileData> *fileSendList);
signals:
void sigUpdateComplete(bool flag);
private:
DataParser *dataParser;
SendSystem *sendSystem;
QString localPath;
QList<FileData> fileDataList;
void calculateHash(QString path);
};
#endif // UPDATECONTROLLER_H

View File

@@ -0,0 +1,341 @@
#include "Core/dataparser.h"
#include "FileData.h"
#include "tools.h"
#include <QDir>
DataParser::DataParser(QObject *parent) :
QObject(parent)
{
if(!QDir(staticDataFolderName).exists()){
QDir().mkdir(staticDataFolderName);
}
}
QByteArray DataParser::slotGetXmlAnswer(QString answerCode)
{
if(answerCode == "END"){
return xmlAnswer_notify(answerCode);
}
return nullptr;
}
void DataParser::createFileDataList(QList<FileData> fileDataList,QString filename)
{
QFile file(filename);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("FileDataList");
foreach (FileData data,fileDataList)
{
xmlWriter.writeStartElement("FileData");
xmlWriter.writeAttribute("Path",data.path);
xmlWriter.writeAttribute("Hash",data.hash);
xmlWriter.writeEndElement();
}
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createAuthMessage(ClientAutorization *auth)
{
authPassCache = auth; //кэширование даных авторизации, для сохранения при успешном заходе
QFile file(tempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ClientAutorization");
xmlWriter.writeAttribute("Login",auth->Login);
xmlWriter.writeAttribute("Password",auth->Password);
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createServerSettings(QString address, QString port)
{
QFile file(settingsName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ServerSettingsContainer");
xmlWriter.writeStartElement("ServerSettings");
xmlWriter.writeAttribute("Address",address);
xmlWriter.writeAttribute("Port",port);
xmlWriter.writeAttribute("Language","RUS");
xmlWriter.writeAttribute("AutoStart",QString::number(false));
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createAuthData(ServerAuthorization *serverAuth)
{
QFile file(authTempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("AuthData");
xmlWriter.writeAttribute("Login",authPassCache->Login);
xmlWriter.writeAttribute("Password",authPassCache->Password);
xmlWriter.writeAttribute("InstructorName",serverAuth->InstructorName);
xmlWriter.writeAttribute("ClientName",serverAuth->ClientName);
xmlWriter.writeAttribute("AccessType",serverAuth->AccessType);
xmlWriter.writeEndElement();
file.close();
}
void DataParser::createAuthDataOffline(QString username, QString pass)
{
QFile file(authTempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("AuthData");
xmlWriter.writeAttribute("Login",username);
xmlWriter.writeAttribute("Password",pass);
xmlWriter.writeAttribute("InstructorName","empty");
xmlWriter.writeAttribute("ClientName","Offline");
xmlWriter.writeAttribute("AccessType","Offline");
xmlWriter.writeEndElement();
file.close();
}
QByteArray DataParser::xmlAnswer_notify(QString code)
{
QList<SXmlAnswerTag> listTag;
SAttribute attribute1 = {"Code", code};
QList<SAttribute> listAttr = {attribute1};
SXmlAnswerTag tag = {"ClientNotify", listAttr};
listTag.append(tag);
return xmlAnswer(listTag);
}
void DataParser::addRunData(QList<int> displays)
{
QFile file(displayTemp);
file.open(QIODevice::ReadWrite);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartElement("DisplayInfo");
xmlWriter.writeAttribute("DisplayCount",QString::number(displays.length()));
xmlWriter.writeEndElement();
file.close();
}
ServerSettings *DataParser::getServerSettings()
{
ServerSettings *settings = new ServerSettings;
QFile file(settingsName);
file.open(QIODevice::ReadOnly);
QXmlStreamReader xmlReader(&file);
while (!xmlReader.atEnd()){
if(xmlReader.isStartElement()){
if(xmlReader.name() == "ServerSettings"){
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Address"){
settings->Address = value;
}
if(name == "Port"){
settings->Port = value;
}
if(name == "Language"){
settings->Language = value;
}
if(name == "AutoStart"){
settings->isAutoStart = value.toInt();
}
}
}
}
xmlReader.readNext();
}
file.close();
return settings;
}
void DataParser::saveClientSettrings(QString language, bool isAutoStart)
{
QFile file(settingsName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString settings = file.readAll();
file.close();
file.remove();
file.open(QIODevice::WriteOnly | QIODevice::Text);
auto languagePos = settings.indexOf(XMLLanguageProperty) + XMLLanguageProperty.length();
settings = settings.replace(languagePos,language.size(),language);
auto autoStartPos = settings.indexOf(XMLAutoStartProperty) + XMLAutoStartProperty.length();
settings = settings.replace(autoStartPos,1,QString::number(isAutoStart));
file.write(settings.toUtf8());
file.close();
}
QList<FileData>* DataParser::xmlFileDataParse(QByteArray array, QString filter = "")
{
QXmlStreamReader xmlReader(array);
QList<FileData> *datas = new QList<FileData>;
xmlReader.readNext(); // Переходим к первому элементу в файле
//Крутимся в цикле до тех пор, пока не достигнем конца документа
while(!xmlReader.atEnd())
{
//Проверяем, является ли элемент началом тега
if(xmlReader.isStartElement())
{
if(xmlReader.name() == "FileData")
{
FileData data;
foreach(const QXmlStreamAttribute &attr,xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Path")
data.path = value;
else if(name == "Hash")
data.hash = value;
}
if(data.path.contains(filter))
datas->append(data);
}
}
xmlReader.readNext();
}
return datas;
}
QByteArray DataParser::xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1, QString elemUp2)
{
/* Открываем файл для Записи*/
QFile file(tempName);
file.open(QIODevice::WriteOnly);
/* Создаем объект, с помощью которого осуществляется запись в файл */
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true); // Устанавливаем автоформатирование текста
xmlWriter.writeStartDocument(); // Запускаем запись в документ
if(elemUp1 != "")
xmlWriter.writeStartElement(elemUp1); // Записываем тег
if(elemUp2 != "")
xmlWriter.writeStartElement(elemUp2); // Записываем тег
//Записываем все элементы
foreach(SXmlAnswerTag tag, listTag)
{
xmlWriter.writeStartElement(tag.elementName); // Записываем тег
// Записываем атрибуты
foreach(SAttribute attr, tag.attr)
xmlWriter.writeAttribute(attr.name, attr.value);
xmlWriter.writeEndElement(); // Закрываем тег
}
if(elemUp1 != "")
xmlWriter.writeEndElement(); // Закрываем тег
if(elemUp1 != "")
xmlWriter.writeEndElement(); // Закрываем тег
/* Завершаем запись в документ*/
xmlWriter.writeEndDocument();
file.close(); // Закрываем файл
QByteArray array;
/* Открываем файл для Чтения*/
QFile fileR(tempName);
if (!fileR.open(QFile::ReadOnly | QFile::Text))
{
QString str = "Не удалось открыть файл";
qDebug() << "xmlAnswer: " << str;
}
else
{
array = fileR.readAll();
fileR.close(); // Закрываем файл
}
return array;
}
DataParser::~DataParser()
{
}

View File

@@ -0,0 +1,42 @@
#ifndef DATAPARSER_H
#define DATAPARSER_H
#include "FileData.h"
#include <QObject>
#include <Datas.h>
#include <QFile>
#include <QXmlStreamWriter>
class DataParser : public QObject
{
Q_OBJECT
public:
explicit DataParser(QObject *parent = 0);
~DataParser();
ServerSettings* getServerSettings();
void createServerSettings(QString server,QString port);
void saveClientSettrings(QString language,bool isAutoStart);
void createFileDataList(QList<FileData> fileDataList,QString filename);
void createAuthMessage(ClientAutorization *auth);
void createAuthData(ServerAuthorization *serverAuth);
void createAuthDataOffline(QString username,QString pass);
void addRunData(QList<int> displays);
QByteArray xmlAnswer_notify(QString code);
QByteArray xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1 = "", QString elemUp2 = "");
QList<FileData>* xmlFileDataParse(QByteArray array,QString filter);
public slots:
QByteArray slotGetXmlAnswer(QString);
private:
const QString XMLLanguageProperty = "Language=\"";
const QString XMLAutoStartProperty = "AutoStart=\"";
ClientAutorization *authPassCache;
};
#endif // DATAPARSER_H

View File

@@ -0,0 +1,42 @@
#include "externalexecuter.h"
#include <QCoreApplication>
ExternalExecuter::ExternalExecuter()
{
}
ExternalExecuter::~ExternalExecuter()
{
}
void ExternalExecuter::callApp()
{
QProcess *myProcess = new QProcess(this);
QStringList args;
args << "1";
myProcess->start(programPath,args);
myProcess->waitForStarted();
QCoreApplication::exit();
}
bool ExternalExecuter::findApp()
{
QString localPath = QDir::currentPath() + applicationFolderName;
QDirIterator iterator(localPath,QDirIterator::Subdirectories);
while(iterator.hasNext()){
iterator.next();
if(iterator.fileInfo().fileName() == applicationEXEName){
programPath = iterator.fileInfo().absoluteFilePath();
return true;
}
}
return false;
}

View File

@@ -0,0 +1,26 @@
#ifndef EXTERNALEXECUTER_H
#define EXTERNALEXECUTER_H
#include <QObject>
#include <QString>
#include <QDir>
#include <QDirIterator>
#include <QProcess>
#include <QDebug>
#include "tools.h"
class ExternalExecuter : public QObject
{
Q_OBJECT
public:
ExternalExecuter();
void callApp();
bool findApp();
~ExternalExecuter();
private:
QString programPath;
};
#endif // EXTERNALEXECUTER_H

View File

@@ -0,0 +1,73 @@
#include "hashcomparer.h"
#include <QCoreApplication>
#include <updatenotifywidget.h>
HashComparer::HashComparer(DataParser *dataParser,QObject *)
{
this->dataParser = dataParser;
}
void HashComparer::CompareDeltas()
{
QList<FileData> *serverStreamingHash = new QList<FileData>;
QList<FileData> *localStreamingHash = new QList<FileData>;
QList<FileData> *files = new QList<FileData>;
QFile file(serverHash);
file.open(QIODevice::ReadOnly | QIODevice::Text);
serverStreamingHash = dataParser->xmlFileDataParse(file.readAll(),"StreamingAssets");
file.close();
QFile file2(streamingHashFilename);
file2.open(QIODevice::ReadOnly | QIODevice::Text);
localStreamingHash = dataParser->xmlFileDataParse(file2.readAll(),"StreamingAssets");
file2.close();
QMutableListIterator<FileData> iterator(*localStreamingHash);
for (auto &item:*localStreamingHash)
{
if(!serverStreamingHash->contains(item))
{
files->append(item);
}
}
filesForUpdate = files;
showDeltas();
}
void HashComparer::showDeltas()
{
if (filesForUpdate->length() <= 0)
{
emit sigCallCheck();
return;
}
for (auto &item:*filesForUpdate)
{
updateWidget->addToList(item);
}
emit sigHaveDelta();
}
void HashComparer::setWidget(UpdateNotifyWidget* updateWidget)
{
this->updateWidget = updateWidget;
}
QList<FileData> *HashComparer::getFilesForUpdate() const
{
return filesForUpdate;
}
HashComparer::~HashComparer()
{
}

View File

@@ -0,0 +1,34 @@
#ifndef HASHCOMPARER_H
#define HASHCOMPARER_H
#include "FileData.h"
#include "dataparser.h"
#include "tools.h"
#include <QObject>
#include <QFile>
#include <updatenotifywidget.h>
class UpdateNotifyWidget;
class HashComparer :public QObject
{
Q_OBJECT
public:
explicit HashComparer(DataParser *dataParser,QObject *parent = nullptr);
void CompareDeltas();
~HashComparer();
void showDeltas();
void setWidget(UpdateNotifyWidget *updateWidget);
QList<FileData> *getFilesForUpdate() const;
signals:
void sigCallCheck();
void sigHaveDelta();
private:
UpdateNotifyWidget* updateWidget;
QList<FileData> *filesForUpdate;
DataParser *dataParser;
};
#endif // HASHCOMPARER_H

View File

@@ -0,0 +1,36 @@
#include "UpdateController.h"
#include "dataparser.h"
#include "externalexecuter.h"
#include "screenchecker.h"
#include <QCoreApplication>
#include <QDebug>
#include <QObject>
#include <nonblockedinput.h>
#include <tcpclient.h>
#include <QTextCodec>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
setlocale(LC_ALL,"Russian");
NonBlockedInput cli;
TCPClient *client = new TCPClient;
DataParser *parser = new DataParser;
UpdateController *updateController = new UpdateController(parser);
RecognizeSystem *recognizeSystem = new RecognizeSystem;
ScreenChecker *screenChecker = new ScreenChecker;
ExternalExecuter *externalExecuter = new ExternalExecuter;
client->Initialize(updateController,recognizeSystem,externalExecuter);
recognizeSystem->Initialize(updateController);
QObject::connect(&cli,&NonBlockedInput::LineIsRead,client,&TCPClient::onMessageEntered);
//screenChecker->Check();
return a.exec();
}

View File

@@ -0,0 +1,18 @@
#include "nonblockedinput.h"
NonBlockedInput::NonBlockedInput(QObject *parent)
{
this->moveToThread(&thread);
connect(&thread,&QThread::started, this, &NonBlockedInput::ReadLine);
thread.start();
}
void NonBlockedInput::ReadLine()
{
QTextStream inputStream(stdin);
QString line;
while (inputStream.readLineInto(&line)){
emit LineIsRead(line);
}
}

View File

@@ -0,0 +1,24 @@
#ifndef NONBLOCKEDINPUT_H
#define NONBLOCKEDINPUT_H
#include <QTextStream>
#include <QDebug>
#include <QThread>
class NonBlockedInput : public QObject
{
Q_OBJECT
public:
explicit NonBlockedInput(QObject* parent = nullptr);
private:
QThread thread;
signals:
void LineIsRead(QString line);
private slots:
void ReadLine();
};
#endif // NONBLOCKEDINPUT_H

View File

@@ -0,0 +1,337 @@
#include "Core/recognizesystem.h"
#include <updatenotifywidget.h>
RecognizeSystem::RecognizeSystem(QObject *parent):
QObject(parent)
{
packetType = PacketType::TYPE_NONE;
filePath.clear();
fileSize = 0;
message.clear();
sizeReceiveData = 0;
tmpBlock.clear();
countSend = 0;
folderList = new QList<QString>;
}
RecognizeSystem::~RecognizeSystem()
{
}
void RecognizeSystem::initialize(UpdateController *updateController,DataParser *dataParser,MainWindow *mainWindow)
{
this->updateController = updateController;
this->dataParser = dataParser;
this->mainWindow = mainWindow;
connect(this,&RecognizeSystem::sigSaveLoginData,dataParser,&DataParser::createAuthData);
}
void RecognizeSystem::recognize(QTcpSocket *socket)
{
qDebug() << "RecognizeThreadId " << QThread::currentThreadId();
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
while(socket->bytesAvailable())
{
if (socket->state() != QTcpSocket::ConnectedState) return;
if(packetType == PacketType::TYPE_NONE){ //определение первичного пакета
stream.startTransaction();
stream >> packetType;
if(!stream.commitTransaction()){
emit sigSendDebugLog(Tools::getTime() + " CLIENT: packetType - FAIL commitTransaction");
if(socket->waitForReadyRead(TCP_READ_TIMEOUT)){
emit sigSendDebugLog("ERROR: PACKET TYPE READ TIMEOUT");
return;
}
continue;
}
//qDebug() << Tools::GetTime() << "CLIENT: type: " << packetType;
}
if(packetType == PacketType::TYPE_FOLDER){ //создание папок
stream.startTransaction();
stream >> filePath;
if(!stream.commitTransaction()){
continue;
}
filePath = Tools::createFullPath(filePath);
QDir dir(filePath);
if(!dir.exists()){
if(dir.mkpath(filePath)){
qDebug() << "Dir Created";
}
}
packetType = PacketType::TYPE_NONE;
emit sigUpdateBytesAvailable();
continue;
}
if(packetType == PacketType::TYPE_FILE) //загрузка файлов
{
//ПОЛУЧЕНИЕ ПУТИ
//ПОЛУЧЕНИЕ РАЗМЕРА ФАЙЛА
forever
{
stream.startTransaction();
stream >> filePath;
stream >> fileSize;
if(!stream.commitTransaction()){
emit sigSendDebugLog(Tools::getTime() + "CLIENT: filePath, fileSize - FAIL commitTransaction");
if (!socket->waitForReadyRead(TCP_READ_TIMEOUT)) {
emit sigSendDebugLog(Tools::getTime() + "CLIENT: ERROR! readyRead timeout - filePath, fileSize!!!");
return;
}
continue;
}
filePath = Tools::createFullPath(filePath);
emit sigSendDebugLog("CLIENT: filesize: " + QString::number(fileSize));
emit sigSendDebugLog("CLIENT: filePath: " + filePath);
socket->waitForReadyRead(100);
break;
}
//ПОЛУЧЕНИЕ САМОГО ФАЙЛА
emit sigSendDebugLog(Tools::getTime() + "AfterRead size and path BytesAvailable: " + socket->bytesAvailable());
//УКАЗАНИЕ ПУТИ ФАЙЛА
QFile file(filePath);
if (file.exists())
{
file.remove(); //удаление файла, если он уже есть, но необходимо обновить
emit sigSendDebugLog(Tools::getTime() + "Delete exist file: " + filePath);
socket->waitForReadyRead(100);
}
file.open(QFile::Append);
forever
{
stream.startTransaction();
stream >> tmpBlock;
if(!stream.commitTransaction()){
if(socket->state() == QAbstractSocket::UnconnectedState){
emit sigSocketDisabled();
return;
}
if(socket->waitForReadyRead(TCP_READ_TIMEOUT)){
continue;
}
continue;
}
quint64 toFile = file.write(tmpBlock);
emit sigSendDebugLog(Tools::getTime() + "CLIENT: toFile :" + toFile);
sizeReceiveData += toFile;
countSend++;
tmpBlock.clear();
if(sizeReceiveData == fileSize){
emit sigSendDebugLog(Tools::getTime() + "FINAL Count send: " + QString::number(countSend));
emit sigSendDebugLog(Tools::getTime() + "FINAL Size received: " + QString::number(sizeReceiveData));
emit sigSendDebugLog(Tools::getTime() + "FINAL File size" + QString::number(fileSize));
emit sigUpdateBytesAvailable();
break;
}
}
file.close();
emit sigSendDebugLog(Tools::getTime() + "File loaded");
//ОЧИСТКА ПОСЛЕ ПЕРЕДАЧИ
filePath.clear();
fileSize = 0;
tmpBlock.clear();
sizeReceiveData = 0;
countSend = 0;
}
if(packetType == PacketType::TYPE_DELETE) //удаление лишних файлов (рекурсивно удаляет все содежимое)
{
stream.startTransaction();
stream >> filePath;
if(!stream.commitTransaction()){
continue;
}
filePath = Tools::createFullPath(filePath);
QFileInfo fileInfo(filePath);
if(fileInfo.exists())
{
if(fileInfo.isFile())
{
QFile file(filePath);
file.remove();
}
if(fileInfo.isDir()){
QDir dir(filePath);
dir.removeRecursively();
}
qDebug() << Tools::getTime() << "Deleted: " << filePath;
}
packetType = PacketType::TYPE_NONE;
continue;
}
if(packetType ==PacketType::TYPE_FINISH){ //для повторного создания хэша после загрузки
updateController->calculateCommonHash();
emit sigLoadComplete();
packetType = PacketType::TYPE_NONE;
}
if(packetType == PacketType::TYPE_NEEDUPDATE){ //нужно обновление
bool flag = false;
quint64 size = 0;
quint64 fileCount = 0;
stream.startTransaction();
stream >> flag;
stream >> size;
stream >> fileCount;
if(!stream.commitTransaction()){
continue;
}
emit sigNeedUpdate(flag,size,fileCount);
packetType = PacketType::TYPE_NONE;
}
if(packetType == PacketType::TYPE_XMLANSWER){ //ответы формата XML
QByteArray array;
stream.startTransaction();
stream >> array;
if(!stream.commitTransaction()){
continue;
}
xmlParser(array);
packetType = PacketType::TYPE_NONE;
}
packetType = PacketType::TYPE_NONE;
}
}
void RecognizeSystem::xmlParser(QByteArray array)
{
QXmlStreamReader xmlReader(array);
xmlReader.readNext();
while(!xmlReader.atEnd())
{
if(!xmlReader.isStartElement()) {
xmlReader.readNext();
continue;
}
if(xmlReader.name() == "ServerNotify")
{
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Code")
{
if (value == "END")
{
emit sigSocketDisabled();
}
if(value == "BLOCKED")
{
emit sigServerBlocked();
}
if(value == "HASHSENDCOMPLETE")
{
emit sigStartCompare();
}
}
}
}
if(xmlReader.name() == "ServerAuthorization"){
ServerAuthorization *serverAuth = new ServerAuthorization;
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if (name == "Result"){
serverAuth->Result = value == "true" ? true : false;
}
if (name == "InstructorName"){
serverAuth->InstructorName = value;
}
if (name == "ClientName"){
serverAuth->ClientName = value;
}
if (name == "AccessType"){
serverAuth->AccessType = value;
checkAccessType(value);
}
}
emit sigSaveLoginData(serverAuth);
}
xmlReader.readNext();
}
}
void RecognizeSystem::checkAccessType(QString type)
{
if(type == "instructor")
{
mainWindow->callUpdateList();
}
}

View File

@@ -0,0 +1,55 @@
#ifndef RECOGNIZESYSTEM_H
#define RECOGNIZESYSTEM_H
#include <QObject>
#include <QDataStream>
#include <QTcpSocket>
#include <mainwindow.h>
#include <Core\tools.h>
#include <Core\UpdateController.h>
class UpdateController;
class MainWindow;
class RecognizeSystem : public QObject
{
Q_OBJECT
public:
explicit RecognizeSystem(QObject *parent = 0);
~RecognizeSystem();
void initialize(UpdateController* updateController,DataParser *dataParser,MainWindow *mainWindow);
void recognize(QTcpSocket *socket);
signals:
void sigUpdateBytesAvailable();
void sigLoadComplete();
void sigNeedUpdate(bool flag,qint64 size,quint64 fileCount);
void sigSendDebugLog(QString message);
void sigSocketDisabled();
void sigServerBlocked();
void sigSaveLoginData(ServerAuthorization *serverAuth);
void sigSocketWaitForReadyRead(int waitTime);
void sigStartCompare();
private:
QList<QString> *folderList;
MainWindow *mainWindow;
UpdateController *updateController;
DataParser *dataParser;
PacketType packetType;
QString message;
QString filePath;
QByteArray tmpBlock;
qint64 sizeReceiveData;
qint64 fileSize;
int countSend;
void xmlParser(QByteArray array);
void checkAccessType(QString type);
};
#endif // RECOGNIZESYSTEM_H

View File

@@ -0,0 +1,132 @@
#include "screenchecker.h"
#include <QLabel>
#include <QBitmap>
#include <QToolButton>
#include <QPainter>
ScreenChecker::ScreenChecker(QWidget *mainWidget,DataParser *dataParser, QHBoxLayout *layout, QObject *parent) :
QObject(parent)
{
screenCount = 0;
this->mainWidget = mainWidget;
this->layout = layout;
this->dataParser = dataParser;
}
void ScreenChecker::check()
{
screens = QGuiApplication::screens();
QPixmap checkedPixmap(":resource/Icons/checked.png");
checkedPixmap = checkedPixmap.scaled(20,20);
QPainter painter;
QColor color(51,153,0,255);
painter.begin(&checkedPixmap);
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
painter.fillRect(checkedPixmap.rect(),color);
painter.end();
QIcon checkedIcon;
checkedIcon.addPixmap(checkedPixmap,QIcon::Disabled,QIcon::On);
qint8 sizeVertical = 90;
quint16 sizeHorizontal = 150;
if(screens.length() > 3)
{
sizeVertical = 80;
sizeHorizontal = 120;
}
for (int i = 0; i < screens.length() ;i++)
{
QScreen *display = screens[i];
screenCount++;
QString sizeText = QString::number(display->size().width()) + "x" + QString::number(display->size().height());
sizeText.append("\n");
sizeText.append(QString::number(display->refreshRate()) + "Hz");
QToolButton *button = new QToolButton();
button->setText(sizeText);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setObjectName("displayView");
buttons.append(button);
layout->addWidget(button);
float width = display->size().width();
float height = display->size().height();
float ratio = width / height;
QSize *sizeResult;
QPushButton *checkedLabel = new QPushButton;
checkedLabel->setParent(button);
checkedLabel->setIcon(checkedIcon);
checkedLabel->setObjectName("checkedLabelButton");
checkedLabel->setGeometry(3,3,30,30);
if(height > width)
{
sizeResult = new QSize(sizeVertical,sizeVertical / ratio);
}
else
{
sizeResult = new QSize(sizeHorizontal,sizeHorizontal/ ratio);
}
button->setMinimumSize(*sizeResult);
button->setMaximumSize(*sizeResult);
button->setCheckable(true);
if(i == 0)
{
button->setChecked(true);
button->setEnabled(false);
}
labels.append(checkedLabel);
connect(button,&QToolButton::clicked,this,&ScreenChecker::updateDisplayData);
}
updateDisplayData();
}
void ScreenChecker::updateDisplayData()
{
QList<int> *displays = new QList<int>;
for (int i = 0; i <buttons.count();i++)
{
QToolButton *button = buttons[i];
if(button->isChecked())
{
displays->append(i);
labels[i]->show();
}
else
{
labels[i]->hide();
}
}
dataParser->addRunData(*displays);
}
QString ScreenChecker::getScreenCount() const
{
return QString::number(screenCount);
}
ScreenChecker::~ScreenChecker()
{
for (int i = 0; i < buttons.size(); i++)
{
delete buttons[i];
}
}

View File

@@ -0,0 +1,39 @@
#ifndef SCREENCHECKER_H
#define SCREENCHECKER_H
#include "dataparser.h"
#include <QObject>
#include <QScreen>
#include <QGuiApplication>
#include <QDebug>
#include <QPushButton>
#include <QHBoxLayout>
#include <QToolButton>
#include <QLabel>
class ScreenChecker : public QObject
{
Q_OBJECT
public:
explicit ScreenChecker(QWidget *widget,DataParser *dataParser, QHBoxLayout *layout,QObject *parent = nullptr);
~ScreenChecker();
void check();
QString getScreenCount() const;
private:
QWidget *mainWidget;
DataParser *dataParser;
QWidget *widget;
QHBoxLayout *layout;
qint64 screenCount;
QList<QScreen *> screens;
QList<QToolButton *> buttons;
QList<QPushButton *> labels;
void updateDisplayData();
};
#endif // SCREENCHECKER_H

View File

@@ -0,0 +1,135 @@
#include "sendsystem.h"
#include "tools.h"
#include <QFile>
#include <QFileInfo>
#include <QThread>
SendSystem::SendSystem(QObject *)
{
}
void SendSystem::setSocket(QTcpSocket *socket)
{
this->socket = socket;
}
void SendSystem::sendDisable()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QByteArray data;
data = emit sigGetXmlAnswer("DISABLE");
stream << PacketType::TYPE_XMLANSWER;
stream << data;
socket->waitForBytesWritten();
}
void SendSystem::sendClientAutorization()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QFile file(tempName);
file.open(QIODevice::ReadOnly);
QByteArray array = file.readAll();
stream << PacketType::TYPE_XMLANSWER;
stream << array;
socket->waitForBytesWritten();
file.close();
}
void SendSystem::sendFileBlock(QString path)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QString fullPath = Tools::createFullPath(path);
quint64 fileSize = 0;
int countSend = 0;
QFile file(fullPath); //Открываем файл для чтения
QFileInfo fileInfo(file);
fileSize = fileInfo.size();
stream << PacketType::TYPE_FILE; //Отправляем тип блока
stream << path << fileSize;
socket->waitForReadyRead(20);
//socket->waitForBytesWritten();
if(file.open(QFile::ReadOnly)){
while(!file.atEnd()){
QByteArray data = file.read(1025*250);
stream << data;
socket->waitForBytesWritten();
countSend++;
}
qDebug() << Tools::getTime() << "count end Final: " << countSend;
}
file.close();
emit sigSend();
//qDebug() << "Transaction after send file: " << socket->isTransactionStarted();
countSend = 0;
//socket->waitForBytesWritten();
socket->waitForReadyRead(20);
}
void SendSystem::sendFolderBlock(QString path)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_FOLDER;
stream << path;
emit sigSend();
socket->waitForReadyRead(100);
}
void SendSystem::sendQTConnect()
{
QString value = QString::number(PacketType::TYPE_QT);
socket->write(value.toUtf8());
socket->waitForBytesWritten();
}
void SendSystem::sendXMLAnswer(QByteArray array)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_XMLANSWER;
stream << array;
socket->waitForBytesWritten();
socket->waitForReadyRead(100);
}
void SendSystem::sendFinish()
{
socket->waitForReadyRead(100);
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << PacketType::TYPE_FINISH;
socket->waitForReadyRead(100);
}
SendSystem::~SendSystem()
{
}

View File

@@ -0,0 +1,30 @@
#ifndef SENDSYSTEM_H
#define SENDSYSTEM_H
#include <QObject>
#include <QTcpSocket>
#include <QDataStream>
class SendSystem :public QObject
{
Q_OBJECT
public:
explicit SendSystem(QObject* parent = nullptr);
void setSocket(QTcpSocket *socket);
void sendClientAutorization();
void sendDisable();
void sendFileBlock(QString path);
void sendFolderBlock(QString path);
void sendQTConnect();
void sendXMLAnswer(QByteArray array);
~SendSystem();
void sendFinish();
signals:
void sigSend();
QByteArray sigGetXmlAnswer(QString);
private:
QTcpSocket *socket;
};
#endif // SENDSYSTEM_H

View File

@@ -0,0 +1,145 @@
#include "tcpclient.h"
#include "UpdateController.h"
#include "externalexecuter.h"
#include <QDir>
TCPClient::TCPClient(QObject *parent) :
QObject(parent)
{
}
void TCPClient::initialize(RecognizeSystem *recognize,ExternalExecuter *externalExecuter,SendSystem *sendSystem)
{
this->recognizeSystem = recognize;
this->externalExecuter = externalExecuter;
this->sendSystem = sendSystem;
isConnected = false;
emit sigSendDebugLog(Tools::getTime() + " Client started");
}
void TCPClient::setConnect(ServerSettings *serverSettings)
{
socket = new QTcpSocket();
qDebug() << "TCPCLient thread: " << thread();
if (socket != NULL && socket->state() == QTcpSocket::ConnectedState)
{
emit sigSendDebugLog("already connected");
return;
}
socket->connectToHost(serverSettings->Address,serverSettings->Port.toShort());
emit sigSendDebugLog("Try connect...");
isConnected = true;
if (socket->waitForConnected(2000))
{
connect(socket,&QTcpSocket::readyRead,this,&TCPClient::slotReadyRead,Qt::DirectConnection);
connect(socket,&QTcpSocket::disconnected,this,&TCPClient::setDisconnect);
//connect(socket,&QTcpSocket::connected,this,&TCPClient::slotConnectNotify);
connect(this,&TCPClient::sigRecognize,recognizeSystem,&RecognizeSystem::recognize,Qt::DirectConnection);
connect(this,&TCPClient::sigSetSocket,sendSystem,&SendSystem::setSocket);
emit sigSetSocket(socket);
slotConnectNotify();
}
else
{
isConnected = false;
emit sigServerDisconnect();
}
}
void TCPClient::setDisconnect()
{
socket->disconnect();
isConnected = false;
emit sigServerDisconnect();
emit sigSendDebugLog("Server disabled");
}
void TCPClient:: waitRead(int time)
{
socket->waitForReadyRead(time);
}
QTcpSocket *TCPClient::getSocket()
{
return socket;
}
void TCPClient::slotSendCommand(QString command)
{
QDataStream stream(socket);
QByteArray data;
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
if(!command.isEmpty() && socket->state() == QTcpSocket::ConnectedState){
if(command == "check")
{
stream << PacketType::TYPE_COMMAND;
stream << command;
socket->waitForBytesWritten();
sendSystem->sendFileBlock("/" + hashFilename);
emit sigSendDebugLog(Tools::getTime() + " Local checkFile sended");
socket->waitForReadyRead(1000);
}
else if(command == "update"){
emit sigSendDebugLog("Update started");
stream << PacketType::TYPE_COMMAND;
stream << command;
socket->waitForReadyRead(1000);
}
else if(command == "run"){
externalExecuter->callApp();
}
}else{
emit sigSendDebugLog("WRONG SOCKET AFTER ENTERED");
}
}
void TCPClient::slotConnectNotify()
{
if(socket->state() != QTcpSocket::ConnectedState)
{
isConnected = false;
emit sigSendDebugLog("Connect invalid");
emit sigConnectionState(false);
return;
}
else
{
isConnected = true;
emit sigSendDebugLog("Connect complete");
emit sigConnectionState(true);
sendSystem->sendQTConnect();
}
}
void TCPClient::slotReadyRead()
{
if(!socket){
emit sigSendDebugLog("WRONG SOCKET");
return;
}
emit sigRecognize(socket);
}
bool TCPClient::getIsConnected() const
{
return isConnected;
}
TCPClient::~TCPClient()
{
}

View File

@@ -0,0 +1,61 @@
#ifndef TCPCLIENT_H
#define TCPCLIENT_H
#include <QObject>
#include <QTcpSocket>
#include <QHostAddress>
#include <QDataStream>
#include <QTcpServer>
#include <QFile>
#include <QCoreApplication>
#include "Core\recognizesystem.h"
#include "Core\tools.h"
#include "Core\UpdateController.h"
#include "Core\externalexecuter.h"
class UpdateController;
class RecognizeSystem;
class SendSystem;
class TCPClient : public QObject
{
Q_OBJECT
public:
explicit TCPClient(QObject *parent = 0);
void initialize(RecognizeSystem *recognize,ExternalExecuter *externalExecuter,SendSystem *sendSystem);
void setConnect(ServerSettings *serverSettings);
void waitRead(int time);
QTcpSocket* getSocket();
~TCPClient();
bool getIsConnected() const;
signals:
void sigSendDebugLog(QString message);
void sigRecognize(QTcpSocket *socket);
void sigServerDisconnect();
void sigConnectionState(bool flag);
void sigSetSocket(QTcpSocket *socket);
public slots:
void slotSendCommand(QString message);
void slotConnectNotify();
private slots:
void slotReadyRead();
private:
SendSystem *sendSystem;
QTcpSocket *socket;
RecognizeSystem *recognizeSystem;
ExternalExecuter * externalExecuter;
bool isConnected;
void setDisconnect();
};
#endif // TCPCLIENT_H

View File

@@ -0,0 +1,58 @@
#include "tools.h"
#include <qdir.h>
void Tools::printTime()
{
qDebug() << QTime::currentTime().toString("hh:mm:ss");
}
QString Tools::getTime()
{
return QTime::currentTime().toString(("hh:mm:ss"));
}
QString Tools::createLocalPath(QString path)
{
qDebug() << "Full path: " << path;
qint8 pos = path.indexOf("Application");
QString localPath = path.remove(0,--pos);
qDebug() << "Local path: " << localPath;
return localPath;
}
QString Tools::createFullPath(QString path)
{
QString fullPath;
qint8 pos = path.indexOf("Application");
QString localPath = path.remove(0,--pos);
qDebug() << "CLIENT: localPath" << localPath;
fullPath = QDir::currentPath() + localPath;
return fullPath;
}
QString Tools::convertFileSize(quint64 fileSize)
{
quint64 megaByte = fileSize / (1024 * 1024);
QString resultSize;
if (megaByte == 0)
{
auto kiloByte = fileSize / 1024;
resultSize = QString::number(kiloByte) + "кб. ";
}
else
{
resultSize = QString::number(megaByte) + "мб. ";
}
QString result = resultSize;
return result;
}

View File

@@ -0,0 +1,46 @@
#ifndef GLOBAL_H
#define GLOBAL_H
#include <QString>
#include <QTime>
#include <QDebug>
#define TCP_READ_TIMEOUT 2000
static QString applicationEXEName = "RRJ.exe";
static QString applicationFolderName = "/Application";
static QString staticDataFolderName = "StaticData";
static QString streamingAssetsPath = "/Application/RRJLoader/RRJ_Data/StreamingAssets";
static QString hashFilename = staticDataFolderName + "/clientHash.xml";
static QString settingsName = staticDataFolderName + "/settings.xml";
static QString tempName = staticDataFolderName + "/temp.xml";
static QString authTempName = staticDataFolderName + "/authData.xml";
static QString displayTemp = staticDataFolderName + "/displayData.xml";
static QString streamingHashFilename = staticDataFolderName + "/streamingHash.xml";
static QString serverHash = staticDataFolderName + "/serverHash.xml";
enum PacketType{
TYPE_NONE = 0,
TYPE_UNITY = 1,
TYPE_FILE = 2,
TYPE_COMMAND = 3,
TYPE_FOLDER = 4,
TYPE_DELETE = 5,
TYPE_FINISH = 6,
TYPE_NEEDUPDATE = 7,
TYPE_XMLANSWER = 8,
TYPE_QT = 9,
TYPE_DISABLE = 11
};
class Tools {
public:
static void printTime();
static QString getTime();
static QString createLocalPath(QString path);
static QString createFullPath(QString path);
static QString convertFileSize(quint64 fileSize);
};
#endif // GLOBAL_H

View File

@@ -0,0 +1,58 @@
#ifndef DATAS_H
#define DATAS_H
#include <QString>
class ServerSettings{
public:
QString Address;
QString Port;
QString Language;
bool isAutoStart;
};
class ServerAuthorization{
public:
QString InstructorName;
QString ClientName;
bool Result;
QString AccessType;
};
class ClientAutorization{
public:
QString Login;
QString Password;
};
class ServerMessage
{
public:
QString Text;
};
class ClientMessage
{
public:
QString Text;
};
class ServerTask
{
public:
QString Text;
};
class ServerNotify
{
public:
QString Code;
};
class ClientNotify
{
public:
QString Code;
};
#endif // DATAS_H

View File

@@ -0,0 +1 @@
[{"excluded":[],"includePaths":["D:/QT/5.14.2/mingw73_64/include","D:/QT/5.14.2/mingw73_64/include/QtWidgets","D:/QT/5.14.2/mingw73_64/include/QtGui","D:/QT/5.14.2/mingw73_64/include/QtANGLE","D:/QT/5.14.2/mingw73_64/include/QtNetwork","D:/QT/5.14.2/mingw73_64/include/QtCore","E:/Projects/QT/GUIProj/RRJClient/RRJClient","E:/Projects/QT/GUIProj/RRJClient/RRJClient"],"projectFile":"E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro","sources":["E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/FileData.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/dataparser.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/dataparser.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/externalexecuter.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/externalexecuter.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/recognizesystem.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/recognizesystem.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/screenchecker.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/screenchecker.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tcpclient.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tcpclient.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tools.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/tools.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/updatecontroller.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Core/updatecontroller.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/Datas.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/main.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.cpp","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.h","E:/Projects/QT/GUIProj/RRJClient/RRJClient/mainwindow.ui"],"translations":["E:/Projects/QT/GUIProj/RRJClient/RRJClient/QtLanguage_ru.ts","E:/Projects/QT/GUIProj/RRJClient/RRJClient/QtLanguage_eng.ts"]}]

View File

@@ -0,0 +1,524 @@
#############################################################################
# Makefile for building: RRJClient
# Generated by qmake (3.1) (Qt 5.14.2)
# Project: RRJClient.pro
# Template: app
# Command: D:\QT\5.14.2\mingw73_64\bin\qmake.exe -o Makefile RRJClient.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: debug
install: debug-install
uninstall: debug-uninstall
QMAKE = D:\QT\5.14.2\mingw73_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = D:\QT\5.14.2\mingw73_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = D:\QT\5.14.2\mingw73_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
debug \
release
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
Makefile: RRJClient.pro D:/QT/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf D:/QT/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/qdevice.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/features/device_config.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/sanitize.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/g++-base.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/angle.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/qconfig.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bodymovin_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri \
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt_config.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/QT/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/toolchain.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/default_pre.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/default_post.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/qml_debug.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/warn_on.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/resources.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/moc.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/uic.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/file_copies.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/exceptions.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/yacc.prf \
D:/QT/5.14.2/mingw73_64/mkspecs/features/lex.prf \
RRJClient.pro \
D:/QT/5.14.2/mingw73_64/lib/Qt5Widgets.prl \
D:/QT/5.14.2/mingw73_64/lib/Qt5Gui.prl \
D:/QT/5.14.2/mingw73_64/lib/Qt5Network.prl \
D:/QT/5.14.2/mingw73_64/lib/Qt5Core.prl \
D:/QT/5.14.2/mingw73_64/lib/qtmain.prl \
D:/QT/5.14.2/mingw73_64/mkspecs/features/build_pass.prf \
resources.qrc
$(QMAKE) -o Makefile RRJClient.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
D:/QT/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/qdevice.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/features/device_config.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/sanitize.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/g++-base.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/angle.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/qconfig.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bodymovin_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri:
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt_config.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/QT/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/toolchain.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/default_pre.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/default_post.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/qml_debug.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/warn_on.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/qt.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/resources.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/moc.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/uic.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/file_copies.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/exceptions.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/yacc.prf:
D:/QT/5.14.2/mingw73_64/mkspecs/features/lex.prf:
RRJClient.pro:
D:/QT/5.14.2/mingw73_64/lib/Qt5Widgets.prl:
D:/QT/5.14.2/mingw73_64/lib/Qt5Gui.prl:
D:/QT/5.14.2/mingw73_64/lib/Qt5Network.prl:
D:/QT/5.14.2/mingw73_64/lib/Qt5Core.prl:
D:/QT/5.14.2/mingw73_64/lib/qtmain.prl:
D:/QT/5.14.2/mingw73_64/mkspecs/features/build_pass.prf:
resources.qrc:
qmake: FORCE
@$(QMAKE) -o Makefile RRJClient.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
qmake_all: FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
check: first
benchmark: first
FORCE:
$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,262 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>MainWindow</name>
<message>
<location filename="mainwindow.ui" line="32"/>
<location filename="mainwindow.ui" line="1036"/>
<source>Тренажер процедур технического обслуживания самолета RRJ-95NEW-100</source>
<translation>Aircraft Maintenance Procedures Trainer RRJ-95NEW-100</translation>
</message>
<message>
<location filename="mainwindow.ui" line="363"/>
<source>Язык/Language</source>
<translation>Язык/Language</translation>
</message>
<message>
<location filename="mainwindow.ui" line="505"/>
<source>Вход в систему</source>
<translation>Login</translation>
</message>
<message>
<location filename="mainwindow.ui" line="530"/>
<source>Логин</source>
<translation>Login</translation>
</message>
<message>
<location filename="mainwindow.ui" line="549"/>
<source>Пароль</source>
<translation>Password</translation>
</message>
<message>
<source>Настройки</source>
<translation type="vanished">Settings</translation>
</message>
<message>
<location filename="mainwindow.ui" line="562"/>
<source>Войти</source>
<translation>Login</translation>
</message>
<message>
<location filename="mainwindow.ui" line="631"/>
<source>Связь с сервером не установлена! Проверьте настройки или запустите в автономном режиме</source>
<translation>No connection to server! Check settings or run offline</translation>
</message>
<message>
<location filename="mainwindow.ui" line="680"/>
<source>Настройки сервера</source>
<translation>Server settings</translation>
</message>
<message>
<location filename="mainwindow.ui" line="698"/>
<source>Сервер</source>
<translation>Server</translation>
</message>
<message>
<location filename="mainwindow.ui" line="715"/>
<source>Порт</source>
<translation>Port</translation>
</message>
<message>
<location filename="mainwindow.ui" line="736"/>
<source>Сохранить</source>
<translation>Save</translation>
</message>
<message>
<location filename="mainwindow.ui" line="904"/>
<source>Есть изменения в локальных файлах</source>
<translation>There are changes in local files</translation>
</message>
<message>
<location filename="mainwindow.ui" line="942"/>
<source>Выгрузить изменения</source>
<translation>Upload changes</translation>
</message>
<message>
<location filename="mainwindow.ui" line="955"/>
<source>Отменить изменения</source>
<translation>Cancel changes</translation>
</message>
<message>
<location filename="mainwindow.ui" line="968"/>
<source>Запустить без отправки</source>
<translation>Run without sending</translation>
</message>
<message>
<location filename="mainwindow.ui" line="1098"/>
<source>Запуск в автономном режиме</source>
<translation>Run offline</translation>
</message>
<message>
<source>Соединиться</source>
<translation type="vanished">Try connect</translation>
</message>
<message>
<location filename="mainwindow.ui" line="164"/>
<source>Запуск</source>
<translation>Start</translation>
</message>
<message>
<location filename="mainwindow.ui" line="133"/>
<source>Обновить</source>
<translation>Update</translation>
</message>
<message>
<location filename="mainwindow.ui" line="839"/>
<source>Автозапуск</source>
<translation>Autostart</translation>
</message>
<message>
<location filename="mainwindow.ui" line="787"/>
<source>Какая-то ошибка</source>
<translation>Something wrong</translation>
</message>
<message>
<location filename="mainwindow.ui" line="251"/>
<source>Выберите активные мониторы:</source>
<translation>Select active monitors:</translation>
</message>
<message>
<source>Язык</source>
<translation type="vanished">Language</translation>
</message>
<message>
<location filename="mainwindow.ui" line="396"/>
<source>RUS</source>
<translation>RUS</translation>
</message>
<message>
<location filename="mainwindow.ui" line="401"/>
<source>ENG</source>
<translation>ENG</translation>
</message>
<message>
<source>Обновление завершено...</source>
<translation type="vanished">Update complete...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="165"/>
<source>Доступно обновление: </source>
<translation>Update available: </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="166"/>
<source>Количество файлов: </source>
<translation>Files for update: </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="174"/>
<source>Установлена последняя версия</source>
<translation>Latest version installed</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="198"/>
<source>Сервер заблокирован</source>
<translation>Server is blocked</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="434"/>
<source>Отправка файлов...</source>
<translation>Sending files...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="496"/>
<source>Проверка обновлений...</source>
<translation>Checking for updates...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="503"/>
<source>Есть изменения в локальных файлах &lt;A HREF=&quot;LINK&quot; style=color:rgb(45,84,130)&gt;(список)&lt;/A&gt; </source>
<translation>There are changes in local files &lt;A HREF=&quot;LINK&quot; style=color:rgb(45,84,130)&gt;(list)&lt;/A&gt; </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="504"/>
<source>Возможные действия:
1. Выгрузить изменения на сервер
2. Отменить изменения с загрузкой версии с сервера
3. Запустить без отправки файлов, но с текущими изменениями</source>
<translation>Actions:
1. Upload changes to the server
2. Cancel changes by downloading the version from the server
3. Launch without sending files, but with current changes</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="523"/>
<source>Загрузка завершена</source>
<translation>Download complete</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="223"/>
<source>Неверный логин/пароль</source>
<translation>Invalid login/password</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="142"/>
<source>Обновление завершено</source>
<translation>Update complete</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="160"/>
<source>Восстановление версии...</source>
<translation>Recovery version...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="287"/>
<source>Соединение установлено</source>
<translation>Connection complete</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="296"/>
<location filename="mainwindow.cpp" line="353"/>
<source>Соединение отсутсвует</source>
<translation>No connection</translation>
</message>
</context>
<context>
<name>UpdateNotifyWidget</name>
<message>
<location filename="updatenotifywidget.ui" line="14"/>
<source>Form</source>
<translation>Update</translation>
</message>
<message>
<location filename="updatenotifywidget.ui" line="44"/>
<source>Закрыть</source>
<translation>Close</translation>
</message>
<message>
<source>Загрузить на сервер</source>
<translation type="vanished">Load to server</translation>
</message>
<message>
<source>Отмена</source>
<translation type="vanished">Cancel</translation>
</message>
<message>
<location filename="updatenotifywidget.ui" line="20"/>
<source>Обнаружены новые файлы:</source>
<translation>New files found:</translation>
</message>
<message>
<source>Отправка новых файлов</source>
<translation type="vanished">Send new files</translation>
</message>
<message>
<source>Информация</source>
<translation type="vanished">Info</translation>
</message>
<message>
<source>Загрузка завершена</source>
<translation type="vanished">Download complete</translation>
</message>
<message>
<source>Ошибка</source>
<translation type="vanished">Error</translation>
</message>
<message>
<source>Произошла ошибка при загрузке</source>
<translation type="vanished">Error loading</translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@@ -0,0 +1,262 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>MainWindow</name>
<message>
<location filename="mainwindow.ui" line="32"/>
<location filename="mainwindow.ui" line="1036"/>
<source>Тренажер процедур технического обслуживания самолета RRJ-95NEW-100</source>
<translation>Тренажер процедур технического обслуживания самолета RRJ-95NEW-100</translation>
</message>
<message>
<location filename="mainwindow.ui" line="363"/>
<source>Язык/Language</source>
<translation>Язык/Language</translation>
</message>
<message>
<location filename="mainwindow.ui" line="505"/>
<source>Вход в систему</source>
<translation>Вход в систему</translation>
</message>
<message>
<location filename="mainwindow.ui" line="530"/>
<source>Логин</source>
<translation>Логин</translation>
</message>
<message>
<location filename="mainwindow.ui" line="549"/>
<source>Пароль</source>
<translation>Пароль</translation>
</message>
<message>
<source>Настройки</source>
<translation type="vanished">Настройки</translation>
</message>
<message>
<location filename="mainwindow.ui" line="562"/>
<source>Войти</source>
<translation>Войти</translation>
</message>
<message>
<location filename="mainwindow.ui" line="631"/>
<source>Связь с сервером не установлена! Проверьте настройки или запустите в автономном режиме</source>
<translation>Связь с сервером не установлена! Проверьте настройки или запустите в автономном режиме</translation>
</message>
<message>
<location filename="mainwindow.ui" line="680"/>
<source>Настройки сервера</source>
<translation>Настройки сервера</translation>
</message>
<message>
<location filename="mainwindow.ui" line="698"/>
<source>Сервер</source>
<translation>Сервер</translation>
</message>
<message>
<location filename="mainwindow.ui" line="715"/>
<source>Порт</source>
<translation>Порт</translation>
</message>
<message>
<location filename="mainwindow.ui" line="736"/>
<source>Сохранить</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="mainwindow.ui" line="904"/>
<source>Есть изменения в локальных файлах</source>
<translation>Есть изменения в локальных файлах</translation>
</message>
<message>
<location filename="mainwindow.ui" line="942"/>
<source>Выгрузить изменения</source>
<translation>Выгрузить изменения</translation>
</message>
<message>
<location filename="mainwindow.ui" line="955"/>
<source>Отменить изменения</source>
<translation>Отменить изменения</translation>
</message>
<message>
<location filename="mainwindow.ui" line="968"/>
<source>Запустить без отправки</source>
<translation>Запустить без отправки</translation>
</message>
<message>
<location filename="mainwindow.ui" line="1098"/>
<source>Запуск в автономном режиме</source>
<translation>Запустить в автономном режиме</translation>
</message>
<message>
<source>Соединиться</source>
<translation type="vanished">Соединиться</translation>
</message>
<message>
<location filename="mainwindow.ui" line="164"/>
<source>Запуск</source>
<translation>Запуск</translation>
</message>
<message>
<location filename="mainwindow.ui" line="133"/>
<source>Обновить</source>
<translation>Обновить</translation>
</message>
<message>
<location filename="mainwindow.ui" line="839"/>
<source>Автозапуск</source>
<translation>Автозапуск</translation>
</message>
<message>
<location filename="mainwindow.ui" line="787"/>
<source>Какая-то ошибка</source>
<translation>Какая-то ошибка</translation>
</message>
<message>
<location filename="mainwindow.ui" line="251"/>
<source>Выберите активные мониторы:</source>
<translation>Выберите активные мониторы:</translation>
</message>
<message>
<source>Язык</source>
<translation type="vanished">Язык</translation>
</message>
<message>
<location filename="mainwindow.ui" line="396"/>
<source>RUS</source>
<translation>RUS</translation>
</message>
<message>
<location filename="mainwindow.ui" line="401"/>
<source>ENG</source>
<translation>ENG</translation>
</message>
<message>
<source>Обновление завершено...</source>
<translation type="vanished">Обновление завершено...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="165"/>
<source>Доступно обновление: </source>
<translation>Доступно обновление: </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="166"/>
<source>Количество файлов: </source>
<translation>Количество файлов: </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="174"/>
<source>Установлена последняя версия</source>
<translation>Установлена последняя версия</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="198"/>
<source>Сервер заблокирован</source>
<translation>Сервер заблокирован</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="434"/>
<source>Отправка файлов...</source>
<translation>Отправка файлов...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="496"/>
<source>Проверка обновлений...</source>
<translation>Проверка обновлений...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="503"/>
<source>Есть изменения в локальных файлах &lt;A HREF=&quot;LINK&quot; style=color:rgb(45,84,130)&gt;(список)&lt;/A&gt; </source>
<translation>Есть изменения в локальных файлах &lt;A HREF=&quot;LINK&quot; style=color:rgb(45,84,130)&gt;(список)&lt;/A&gt; </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="504"/>
<source>Возможные действия:
1. Выгрузить изменения на сервер
2. Отменить изменения с загрузкой версии с сервера
3. Запустить без отправки файлов, но с текущими изменениями</source>
<translation>Возможные действия:
1. Выгрузить изменения на сервер
2. Отменить изменения с загрузкой версии с сервера
3. Запустить без отправки файлов, но с текущими изменениями</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="523"/>
<source>Загрузка завершена</source>
<translation>Загрузка завершена</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="223"/>
<source>Неверный логин/пароль</source>
<translation>Неверный логин/пароль</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="142"/>
<source>Обновление завершено</source>
<translation>Обновление завершено</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="160"/>
<source>Восстановление версии...</source>
<translation>Восстановление версии...</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="287"/>
<source>Соединение установлено</source>
<translation>Соединение установлено</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="296"/>
<location filename="mainwindow.cpp" line="353"/>
<source>Соединение отсутсвует</source>
<translation>Соединение отсутсвует</translation>
</message>
</context>
<context>
<name>UpdateNotifyWidget</name>
<message>
<location filename="updatenotifywidget.ui" line="14"/>
<source>Form</source>
<translation>Обновление</translation>
</message>
<message>
<location filename="updatenotifywidget.ui" line="44"/>
<source>Закрыть</source>
<translation>Закрыть</translation>
</message>
<message>
<source>Загрузить на сервер</source>
<translation type="vanished">Загрузить на сервер</translation>
</message>
<message>
<source>Отмена</source>
<translation type="vanished">Отмена</translation>
</message>
<message>
<location filename="updatenotifywidget.ui" line="20"/>
<source>Обнаружены новые файлы:</source>
<translation>Обнаружены новые файлы:</translation>
</message>
<message>
<source>Отправка новых файлов</source>
<translation type="vanished">Отправка новых файлов</translation>
</message>
<message>
<source>Информация</source>
<translation type="vanished">Информация</translation>
</message>
<message>
<source>Загрузка завершена</source>
<translation type="vanished">Загрузка завершена</translation>
</message>
<message>
<source>Ошибка</source>
<translation type="vanished">Ошибка</translation>
</message>
<message>
<source>Произошла ошибка при загрузке</source>
<translation type="vanished">Произошла ошибка при загрузке</translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,63 @@
QT += core gui
QT +=network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
Core/sendsystem.cpp \
Core\updatecontroller.cpp \
Core\externalexecuter.cpp\
Core\dataparser.cpp\
Core\recognizesystem.cpp\
Core\screenchecker.cpp\
Core\tcpclient.cpp\
Core\tools.cpp\
Core\hashcomparer.cpp \
main.cpp \
mainwindow.cpp \
mywinheader.cpp \
updatenotifywidget.cpp
HEADERS += \
Core\sendsystem.h \
Core\updatecontroller.h \
Core\externalexecuter.h\
Core\dataparser.h\
Core\FileData.h\
Core\recognizesystem.h\
Core\screenchecker.h\
Core\tcpclient.h\
Core\tools.h\
Core\hashcomparer.h \
Datas.h \
mainwindow.h \
mywinheader.h \
updatenotifywidget.h
FORMS += \
mainwindow.ui \
updatenotifywidget.ui
TRANSLATIONS = QtLanguage_ru.ts\
QtLanguage_eng.ts
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
resources.qrc

View File

@@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2024-12-03T10:40:20. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{00ce76f6-77cf-4587-a216-9a8e243377cb}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/LMS/RRJClient/Debug64</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Отладка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/LMS/RRJClient/Release64</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Выпуск</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/LMS/RRJClient/build-RRJClient-Desktop_Qt_5_14_2_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Профилирование</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/LMS/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/LMS/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/LMS/RRJClient/Release64</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,562 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2024-12-02T10:01:45. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{02bbda2a-ba75-44de-8881-59c42e3619cd}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/BUILDS/RRJClientBuild</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Отладка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/BUILDS/RRJClientBuild</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Выпуск</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/GUIProj/RRJClient/build-RRJClient-Desktop_Qt_5_14_2_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Профилирование</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/Projects/QT/BUILDS/RRJClientBuild</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/BUILDS/RRJClientBuild</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Отладка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/GUIProj/RRJClient/RRJClient</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Выпуск</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Projects/QT/GUIProj/RRJClient/build-RRJClient-Desktop_Qt_5_14_2_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Сборка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Очистка</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Профилирование</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Развёртывание</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/Projects/QT/GUIProj/RRJClient/RRJClient/RRJClient.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<AuthData Login="O3" Password="3333" InstructorName="" ClientName="Петров П.П. (2)" AccessType="trainee"/>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<FileDataList>
<FileData Path="/Application" Hash="FOLDER"/>
</FileDataList>

View File

@@ -0,0 +1,2 @@
<DisplayInfo DisplayCount="1"/>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<FileDataList>
<FileData Path="/Application" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data/StreamingAssets" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data/StreamingAssets/RRJ-95NEW-100" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data/StreamingAssets/RUS" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data/StreamingAssets/Sounds" Hash="FOLDER"/>
<FileData Path="/Application/RRJLoader/RRJ_Data/StreamingAssets/Sounds/UI" Hash="FOLDER"/>
</FileDataList>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<ServerSettingsContainer>
<ServerSettings Address="192.168.100.87" Port="6000" Language="RUS" AutoStart="0"/>
</ServerSettingsContainer>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<FileDataList/>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<ClientAutorization Login="O3" Password="3333"/>

View File

@@ -0,0 +1,21 @@
#include "mainwindow.h"
#include "updatenotifywidget.h"
#include <QApplication>
#include <QFontDatabase>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFile file(":/style.css");
file.open(QFile::ReadOnly);
a.setStyleSheet(file.readAll());
a.setWindowIcon(QIcon(":/resource/Icons/plane.png"));
MainWindow w;
UpdateNotifyWidget *notifyWidget = new UpdateNotifyWidget;
w.bindNotifyWidget(notifyWidget);
w.show();
return a.exec();
}

View File

@@ -0,0 +1,617 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "updatenotifywidget.h"
#include "updatenotifywidget.h"
#include <QFontDatabase>
#include <QMessageBox>
#include <QMovie>
#include <QPaintEvent>
#include <QPainter>
#include <QTimer>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
isRecovery = false;
setWindowFlag(Qt::FramelessWindowHint);
painting();
initialize();
}
void MainWindow::initialize()
{
ui->loadingProgressBar->setValue(0);
ui->settingsWidget->hide();
ui->notificationLabel->hide();
ui->loadingProgressBar->hide();
ui->updateButton->hide();
ui->offlineWidget->hide();
ui->offlineStartButton->show();
ui->offlineStartButton->setEnabled(false);
ui->offlineStartButton->setGeometry(540,552,250,35);
ui->startButton->hide();
ui->startButton->setEnabled(false);
ui->displayGroupWidget->show();
ui->autostartCheckBox->hide();
ui->startButton->setEnabled(false);
ui->loginWidget->hide();
ui->updateWidget->hide();
ui->updateButtonGroup_2->hide();
createObjects();
bindConnection();
emit sigCalculateHash();
emit sigInitializeClient(recognizeSystem,externalExecuter,sendSystem,connectionThread);
recognizeSystem->initialize(updateController,dataParser,this);
screenChecker->check();
loadStaticData();
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
checkAppAvailable();
//test
}
void MainWindow::createObjects()
{
connectionThread = new QThread;
animationThread = new QThread;
client = new TCPClient;
client->moveToThread(connectionThread);
dataParser = new DataParser;
sendSystem = new SendSystem;
sendSystem->moveToThread(connectionThread);
updateController = new UpdateController(dataParser,sendSystem);
updateController->moveToThread(connectionThread);
recognizeSystem = new RecognizeSystem;
recognizeSystem->moveToThread(connectionThread);
screenChecker = new ScreenChecker(this,dataParser,ui->displayLayout);
externalExecuter = new ExternalExecuter;
hashComparer = new HashComparer(dataParser);
connectionThread->start();
connectionThread->setPriority(QThread::HighestPriority);
timer = new QTimer;
}
void MainWindow::bindConnection()
{
connect(timer,&QTimer::timeout,this,&MainWindow::slotDisableNotify);
connect(recognizeSystem,&RecognizeSystem::sigStartCompare,hashComparer,&HashComparer::CompareDeltas);
connect(recognizeSystem,&RecognizeSystem::sigUpdateBytesAvailable,this,&MainWindow::updateProgress,Qt::QueuedConnection);
connect(recognizeSystem,&RecognizeSystem::sigLoadComplete,this,&MainWindow::loadComplete);
connect(recognizeSystem,&RecognizeSystem::sigNeedUpdate,this,&MainWindow::setNeedUpdate);
connect(recognizeSystem,&RecognizeSystem::sigSocketDisabled,this,&MainWindow::lostConnection);
connect(recognizeSystem,&RecognizeSystem::sigSaveLoginData,this,&MainWindow::checkLoginResult);
connect(recognizeSystem,&RecognizeSystem::sigSocketWaitForReadyRead,client,&TCPClient::waitRead,Qt::DirectConnection);
connect(recognizeSystem,&RecognizeSystem::sigServerBlocked,this,&MainWindow::serverBlocked);
connect(updateController,&UpdateController::sigUpdateComplete,this,&MainWindow::showCompleteDialogBox);
connect(hashComparer,&HashComparer::sigCallCheck,this,&MainWindow::checkUpdate);
connect(hashComparer,&HashComparer::sigHaveDelta,this,&MainWindow::showUpdateInfo);
connect(sendSystem,&SendSystem::sigSend,this,&MainWindow::updateProgress);
connect(sendSystem,&SendSystem::sigGetXmlAnswer,dataParser,&DataParser::slotGetXmlAnswer);
connect(this,&MainWindow::sigUpdateFilesOnServer,updateController,&UpdateController::updateFilesOnServer);
connect(this,&MainWindow::sigInitializeClient,client,&TCPClient::initialize,Qt::AutoConnection);
connect(this,&MainWindow::sigSetConnect,client,&TCPClient::setConnect,Qt::AutoConnection);
connect(this,&MainWindow::sigSendCommand,client,&TCPClient::slotSendCommand,Qt::AutoConnection);
connect(client,&TCPClient::sigConnectionState,this,&MainWindow::slotConnectionState,Qt::AutoConnection);
connect(client,&TCPClient::sigServerDisconnect,this,&MainWindow::slotServerDisconnect);
connect(this,&MainWindow::sigGetConnected,client,&TCPClient::getIsConnected);
connect(this,&MainWindow::sigCalculateHash,updateController,&UpdateController::calculateCommonHash);
connect(this,&MainWindow::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization);
}
void MainWindow::updateProgress()
{
filesLoaded++;
float value = 100 / ((float)fileCountForUpdate / filesLoaded);
ui->loadingProgressBar->setValue(value);
}
void MainWindow::loadComplete()
{
externalExecuter->findApp();
ui->updateButton->setEnabled(false);
ui->startButton->setEnabled(true);
autoStart();
ui->inlineTextDebug->setText(tr("Обновление завершено"));
ui->loadingProgressBar->setValue(100);
ui->startButton->show();
ui->offlineStartButton->setEnabled(true);
ui->autostartCheckBox->hide();
ui->loadingProgressBar->hide();
ui->offlineStartButton->show();
}
void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount)
{
fileCountForUpdate = 0;
filesLoaded = 0;
fileCountForUpdate = fileCount;
QString availableSizeText;
if (flag && isRecovery)
{
ui->inlineTextDebug->setText(tr("Восстановление версии..."));
}
else if(flag)
{
QString result = tr("Доступно обновление: ") + Tools::convertFileSize(size);
result += tr("Количество файлов: ") + QString::number(fileCount);
ui->inlineTextDebug->setText(result);
ui->startButton->show();
ui->updateButton->setEnabled(flag);
ui->startButton->setEnabled(true);
ui->updateButton->show();
ui->autostartCheckBox->show();
stopLoadingMovie();
}
else
{
ui->inlineTextDebug->setText(tr("Установлена последняя версия"));
autoStart();
ui->loadingProgressBar->hide();
ui->startButton->show();
ui->offlineStartButton->setEnabled(true);
stopLoadingMovie();
}
}
void MainWindow::lostConnection()
{
ui->loadingProgressBar->setValue(0);
slotConnectionState(false);
}
void MainWindow::serverBlocked()
{
ui->notificationLabel->show();
QPalette palette = ui->notificationLabel->palette();
QColor orangeColor(255,165,0);
palette.setColor(ui->notificationLabel->foregroundRole(),orangeColor);
ui->notificationLabel->setText(tr("Сервер заблокирован"));
ui->notificationLabel->setPalette(palette);
timer->start(3000);
}
void MainWindow::checkLoginResult(ServerAuthorization *serverAuth)
{
if (serverAuth->Result)
{
if (serverAuth->AccessType != "instructor") //временно для отладки загрузки на сервер
{
checkUpdate();
}
dataParser->createAuthData(serverAuth);
ui->loginWidget->hide();
ui->LanguageWidget->hide();
ui->settingsButton->hide();
ui->offlineStartButton->show();
startLoadingAnim();
}
else
{
ui->notificationLabel->setText(tr("Неверный логин/пароль"));
timer->setInterval(3000);
timer->start();
QPalette palette = ui->notificationLabel->palette();
palette.setColor(ui->notificationLabel->foregroundRole(), Qt::red);
ui->notificationLabel->setPalette(palette);
ui->notificationLabel->show();
}
}
void MainWindow::checkAppAvailable()
{
bool isAvailable = externalExecuter->findApp();
ui->startButton->setEnabled(isAvailable);
ui->offlineStartButton->setEnabled(isAvailable);
}
void MainWindow::checkLanguage(QString language)
{
if (language == "RUS")
{
translator.load("QtLanguage_ru_RU",".");
}
else if(language == "ENG")
{
translator.load("QtLanguage_eng_EN",".");
}
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
void MainWindow::autoStart()
{
if(ui->autostartCheckBox->isChecked()){
on_startButton_clicked();
}
}
void MainWindow::loadStaticData()
{
ServerSettings *currentSettings = dataParser->getServerSettings();
ui->serverInputField->setText(currentSettings->Address);
ui->portInputField->setText(currentSettings->Port);
ui->languageComboBox->setCurrentText(currentSettings->Language);
ui->autostartCheckBox->setChecked(currentSettings->isAutoStart);
checkLanguage(currentSettings->Language);
}
void MainWindow::showConnectionEmpty()
{
QPalette palette = ui->notificationLabel->palette();
palette.setColor(ui->notificationLabel->foregroundRole(),Qt::red);
ui->notificationLabel->setText(tr("Соединение отсутсвует"));
ui->offlineWidget->show();
ui->offlineStartButton->show();
ui->offlineStartButton->setGeometry(280,340,250,35);
ui->settingsButton->show();
ui->loginWidget->hide();
ui->updateWidget->hide();
ui->updateButtonGroup_2->hide();
}
void MainWindow::slotConnectionState(bool flag)
{
ui->notificationLabel->show();
QPalette palette = ui->notificationLabel->palette();
stopLoadingMovie();
if(flag)
{
palette.setColor(ui->notificationLabel->foregroundRole(),Qt::green);
ui->notificationLabel->setText(tr("Соединение установлено"));
ui->loginWidget->show();
ui->offlineStartButton->show();
ui->offlineStartButton->setGeometry(540,552,250,35);
}
else
{
showConnectionEmpty();
}
ui->notificationLabel->setPalette(palette);
timer->start(3000);
}
void MainWindow::slotServerDisconnect()
{
ui->startButton->hide();
ui->loadingProgressBar->hide();
ui->updateButton->hide();
ui->autostartCheckBox->hide();
ui->inlineTextDebug->setText("");
ui->updateButton->setEnabled(false);
slotConnectionState(false);
}
void MainWindow::slotDisableNotify()
{
ui->notificationLabel->hide();
QPalette palette = ui->notificationLabel->palette();
palette.setColor(ui->notificationLabel->foregroundRole(), Qt::black);
ui->notificationLabel->setPalette(palette);
timer->stop();
}
void MainWindow::callUpdateList()
{
hashComparer->setWidget(updateWidget);
QByteArray answer = dataParser->xmlAnswer_notify("GETSERVERDATALIST");
sendSystem->sendXMLAnswer(answer);
updateWidget->initialize(this);
}
void MainWindow::bindNotifyWidget(UpdateNotifyWidget *widget)
{
updateWidget = widget;
}
void MainWindow::on_loginButton_clicked()
{
if (!client->getIsConnected())
{
showConnectionEmpty();
return;
}
QString username = ui->loginInputField->text();
QString password = ui->passwordInputField->text();
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = username;
autorization->Password = password;
dataParser->createAuthMessage(autorization);
emit sigSendAutorization();
}
void MainWindow::on_updateButton_clicked()
{
emit sigSendCommand("update");
ui->updateButton->hide();
ui->startButton->hide();
ui->loadingProgressBar->setValue(0);
ui->loadingProgressBar->show();
}
void MainWindow::on_startButton_clicked()
{
externalExecuter->callApp();
sendSystem->sendDisable();
}
void MainWindow::on_saveServerButton_clicked()
{
startLoadingAnim();
ui->settingsWidget->hide();
if(client->getIsConnected())
{
ui->loginWidget->show();
ui->offlineStartButton->show();
stopLoadingMovie();
return;
}
QString server = ui->serverInputField->text();
QString port = ui->portInputField->text();
dataParser->createServerSettings(server,port);
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
void MainWindow::on_settingsButton_clicked()
{
ui->settingsWidget->show();
ui->loginWidget->hide();
ui->offlineWidget->hide();
ui->offlineStartButton->hide();
}
void MainWindow::on_connectButton_clicked()
{
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
void MainWindow::on_languageComboBox_activated(const QString &arg1)
{
qDebug() << arg1;
dataParser->saveClientSettrings(arg1,ui->autostartCheckBox->isChecked());
checkLanguage(arg1);
ui->retranslateUi(this);
}
void MainWindow::on_loadToServerButton_clicked()
{
ui->inlineTextDebug->setText(tr("Отправка файлов..."));
ui->loadingProgressBar->show();
ui->updateButtonGroup_2->hide();
ui->offlineStartButton->setEnabled(false);
ui->updateWidget->hide();
emit sigUpdateFilesOnServer(hashComparer->getFilesForUpdate());
}
void MainWindow::on_undoChangesButton_clicked()
{
isRecovery = true;
emit sigSendCommand("check");
ui->loadingProgressBar->show();
ui->offlineStartButton->setEnabled(false);
ui->updateButtonGroup_2->hide();
ui->updateWidget->hide();
startLoadingAnim();
//delay
QTime dieTime= QTime::currentTime().addSecs(10);
while (QTime::currentTime() < dieTime)
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
startLoadingAnim();
ui->updateButton->hide();
on_updateButton_clicked();
isRecovery = false;
stopLoadingMovie();
}
void MainWindow::on_startWithCurrentChangesButton_clicked()
{
on_startButton_clicked();
}
void MainWindow::on_updateListGuideLabel_linkActivated(const QString &)
{
updateWidget->show();
}
void MainWindow::on_offlineStartButton_clicked()
{
QString username = "offlineUser";
QString password = "000000";
dataParser->createAuthDataOffline(username,password);
on_startButton_clicked();
}
void MainWindow::on_exitButton_clicked()
{
exit(0);
}
void MainWindow::checkUpdate()
{
emit sigSendCommand("check");
ui->inlineTextDebug->setText(tr("Проверка обновлений..."));
}
void MainWindow::showUpdateInfo()
{
stopLoadingMovie();
QString text = tr("Есть изменения в локальных файлах <A HREF=\"LINK\" style=color:rgb(45,84,130)>(список)</A> ");
QString list = tr("Возможные действия:\n"
" 1. Выгрузить изменения на сервер\n"
" 2. Отменить изменения с загрузкой версии с сервера \n"
" 3. Запустить без отправки файлов, но с текущими изменениями");
ui->updateListGuideLabel->setText(text);
ui->updateActionListLabel->setText(list);
ui->updateWidget->show();
ui->updateButtonGroup_2->show();
ui->offlineStartButton->setGeometry(540,552,250,35);
fileCountForUpdate = hashComparer->getFilesForUpdate()->length();
filesLoaded = 0;
}
void MainWindow::showCompleteDialogBox()
{
ui->inlineTextDebug->setText(tr("Загрузка завершена"));
startLoadingAnim();
QTime dieTime= QTime::currentTime().addSecs(10);
while (QTime::currentTime() < dieTime)
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
stopLoadingMovie();
checkUpdate();
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
{
if (ui->loginInputField->text().length() <= 0 || ui->passwordInputField->text() <= 0) return;
on_loginButton_clicked();
}
}
void MainWindow::painting()
{
QFontDatabase::addApplicationFont(":/resource/Fonts/Kanit Cyrillic.ttf");
QFontDatabase::addApplicationFont(":/resource/Fonts/HelveticaNeue-Medium.ttf");
//settings
QPixmap settingIcon(":resource/Icons/settingWhite.png");
QPainter painter;
QColor color(45,84,130);
painter.begin(&settingIcon);
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
painter.fillRect(settingIcon.rect(),color);
painter.end();
QIcon icon;
icon.addPixmap(settingIcon,QIcon::Normal,QIcon::Off);
ui->settingsButton->setIcon(icon);
//exit
QPixmap crossPixmap(":resource/Icons/crossInCircle.png");
QPainter painterCross;
QSize iconSize(30,30);
painter.begin(&crossPixmap);
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
painter.fillRect(crossPixmap.rect(),color);
painter.end();
QIcon crossIcon;
crossIcon.addPixmap(crossPixmap,QIcon::Normal,QIcon::Off);
ui->exitButton->setIcon(crossIcon);
ui->exitButton->setIconSize(iconSize);
//loading
movie = new QMovie(":/resource/Icons/762.gif");
movieLabel = new QLabel("No movie");
movieLabel->setParent(this);
movieLabel->setGeometry(367,300,70,70);
movieLabel->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
movieLabel->setMovie(movie);
startLoadingAnim();
}
void MainWindow::startLoadingAnim()
{
movie->start();
movieLabel->show();
}
void MainWindow::stopLoadingMovie()
{
movie->stop();
movieLabel->hide();
}
MainWindow::~MainWindow()
{
connectionThread->quit();
connectionThread->wait();
sendSystem->sendDisable();
delete connectionThread;
delete ui;
}

View File

@@ -0,0 +1,123 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QThread>
#include <QTranslator>
#include <Core/dataparser.h>
#include <Core/tcpclient.h>
#include <Core/screenchecker.h>
#include <Core/UpdateController.h>
#include <Core/sendsystem.h>
#include <Core/hashcomparer.h>
#include "Datas.h"
#include "mywinheader.h"
#include "updatenotifywidget.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class TCPClient;
class UpdateController;
class RecognizeSystem;
class ExternalExecuter;
class UpdateNotifyWidget;
class HashComparer;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
void callUpdateList();
void bindNotifyWidget(UpdateNotifyWidget *widget);
void checkUpdate();
~MainWindow();
void bindConnection();
signals:
void sigInitializeClient(RecognizeSystem *recognizeSystem,
ExternalExecuter *externalExecuter,
SendSystem *sendSystem,
QThread *thread);
void sigUpdateFilesOnServer(QList<FileData> *fileSendList);
void sigSetConnect(ServerSettings* serverSettings,QThread *thread);
void sigCalculateHash();
void sigSendCommand(QString message);
void sigSendAutorization();
bool sigGetConnected();
private slots:
void on_loginButton_clicked();
void on_updateButton_clicked();
void on_startButton_clicked();
void on_saveServerButton_clicked();
void on_settingsButton_clicked();
void on_connectButton_clicked();
void on_languageComboBox_activated(const QString &arg1);
void slotDisableNotify();
void slotConnectionState(bool flag);
void slotServerDisconnect();
void on_updateListGuideLabel_linkActivated(const QString &link);
void on_loadToServerButton_clicked();
void on_undoChangesButton_clicked();
void on_startWithCurrentChangesButton_clicked();
void on_exitButton_clicked();
void on_offlineStartButton_clicked();
private:
Ui::MainWindow *ui;
MyWinHeader *header;
UpdateNotifyWidget *updateWidget;
QTranslator translator;
TCPClient *client;
DataParser *dataParser;
UpdateController *updateController;
RecognizeSystem *recognizeSystem;
ScreenChecker *screenChecker;
ExternalExecuter *externalExecuter;
SendSystem *sendSystem;
HashComparer *hashComparer;
QThread *connectionThread;
QThread *animationThread;
QTimer *timer;
QMovie *movie;
QLabel *movieLabel;
QList<FileData> *updateList;
int fileCountForUpdate;
int filesLoaded;
bool isRecovery;
void painting();
void initialize();
void updateProgress();
void loadComplete();
void setNeedUpdate(bool flag,quint64 size,quint64 fileCount);
void lostConnection();
void serverBlocked();
void checkLoginResult(ServerAuthorization * serverAuth);
void checkAppAvailable();
void checkLanguage(QString language);
void autoStart();
void loadStaticData();
void bindClient();
void createObjects();
void showUpdateInfo();
void startLoadingAnim();
void stopLoadingMovie();
void showCompleteDialogBox();
void showConnectionEmpty();
protected:
virtual void keyPressEvent(QKeyEvent *event);
};
#endif // MAINWINDOW_H

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
#include "mywinheader.h"
MyWinHeader::MyWinHeader(QWidget*)
{
}
void MyWinHeader::mousePressEvent(QMouseEvent *event) {
winX = this->parentWidget()->window()->x(); winY = this->parentWidget()->window()->y();
mouseX = event->globalX(); mouseY = event->globalY();
isMousePressed = true;;
}
void MyWinHeader::mouseReleaseEvent(QMouseEvent*) {
isMousePressed = false;
}
void MyWinHeader::mouseMoveEvent(QMouseEvent *event) {
if(!isMousePressed) return;
this->parentWidget()->window()->move(winX + event->globalX()-mouseX, winY + event->globalY()-mouseY);
}

View File

@@ -0,0 +1,24 @@
#ifndef MYWINHEADER_H
#define MYWINHEADER_H
#include <QLabel>
#include <QObject>
#include <QEvent>
#include <QMouseEvent>
#include <QDebug>
class MyWinHeader : public QLabel
{
Q_OBJECT
public:
MyWinHeader(QWidget *parent = nullptr);
private:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
int mouseX, mouseY, winX, winY;
bool isMousePressed = false;
};
#endif // MYWINHEADER_H

View File

@@ -0,0 +1,25 @@
debug/sendsystem.o
debug/updatecontroller.o
debug/externalexecuter.o
debug/dataparser.o
debug/recognizesystem.o
debug/screenchecker.o
debug/tcpclient.o
debug/tools.o
debug/hashcomparer.o
debug/main.o
debug/mainwindow.o
debug/mywinheader.o
debug/updatenotifywidget.o
debug/qrc_resources.o
debug/moc_sendsystem.o
debug/moc_updatecontroller.o
debug/moc_externalexecuter.o
debug/moc_dataparser.o
debug/moc_recognizesystem.o
debug/moc_screenchecker.o
debug/moc_tcpclient.o
debug/moc_hashcomparer.o
debug/moc_mainwindow.o
debug/moc_mywinheader.o
debug/moc_updatenotifywidget.o

View File

@@ -0,0 +1,25 @@
release/sendsystem.o
release/updatecontroller.o
release/externalexecuter.o
release/dataparser.o
release/recognizesystem.o
release/screenchecker.o
release/tcpclient.o
release/tools.o
release/hashcomparer.o
release/main.o
release/mainwindow.o
release/mywinheader.o
release/updatenotifywidget.o
release/qrc_resources.o
release/moc_sendsystem.o
release/moc_updatecontroller.o
release/moc_externalexecuter.o
release/moc_dataparser.o
release/moc_recognizesystem.o
release/moc_screenchecker.o
release/moc_tcpclient.o
release/moc_hashcomparer.o
release/moc_mainwindow.o
release/moc_mywinheader.o
release/moc_updatenotifywidget.o

Some files were not shown because too many files have changed in this diff Show More