From d27459602d814c7078626cf31c45fbfa7005edca Mon Sep 17 00:00:00 2001 From: JF Date: Fri, 6 Dec 2019 12:25:23 -0500 Subject: [PATCH] =?UTF-8?q?D=C3=A9veloppement=20et=20correction=20de=20bug?= =?UTF-8?q?s.=20V1.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cablotron.csf | Bin 39 -> 39 bytes Makefile | 84 ++++---- Makefile.Debug | 6 +- Makefile.Release | 6 +- Sources/CableTestBench.cpp | 8 +- Sources/CableTestEngine.cpp | 7 +- Sources/CableTestPage.cpp | 8 +- Sources/CableTestPage.ui | 230 +++++++++++++++------- Sources/IOModulesInterface.cpp | 15 ++ Sources/MainWindow.cpp | 3 - Sources/OptionsPage.ui | 78 ++++++-- Sources/TestBenchVersion.h | 9 +- Sources/VisualInspectionPage.ui | 59 +++--- Sources/Widgets/ConnectorSelectWidget.cpp | 24 +-- images/connecteurs.png | Bin 32972 -> 29135 bytes images/green-led-off-md.png | Bin 26020 -> 22121 bytes ui_CMainPage.h | 2 +- ui_CableTestPage.h | 114 ++++++----- ui_OptionsPage.h | 34 ++-- ui_VisualInspectionPage.h | 39 ++-- 20 files changed, 460 insertions(+), 266 deletions(-) diff --git a/Cablotron.csf b/Cablotron.csf index 373469cdb63e8a35b890124a0c32d0a5693f36fd..e3424db9894dc7b5ecaebe3060467ba01d6500e2 100644 GIT binary patch delta 15 WcmY#a=R6>L>K_9G!wJTToN@pq&jfw| delta 15 WcmY#a=R6>L>K_9G!wH6ooN@pq%LIJ@ diff --git a/Makefile b/Makefile index e4fe04e..a4ccbbe 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,14 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Tue May 14 11:42:47 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Thu Sep 19 06:47:00 2019 # Project: CableTestBench.pro # Template: app -# Command: c:\Qt\4.8.1\bin\qmake.exe -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro +# Command: c:\Qt\4.8.1\bin\qmake.exe -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=release -o Makefile CableTestBench.pro ############################################################################# -first: debug -install: debug-install -uninstall: debug-uninstall +first: release +install: release-install +uninstall: release-uninstall MAKEFILE = Makefile QMAKE = c:\Qt\4.8.1\bin\qmake.exe DEL_FILE = del @@ -27,25 +27,9 @@ MOVE = move CHK_DIR_EXISTS= if not exist MKDIR = mkdir SUBTARGETS = \ - debug \ - release + release \ + debug -debug: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug -debug-make_default: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug -debug-make_first: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug first -debug-all: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug all -debug-clean: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug clean -debug-distclean: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug distclean -debug-install: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug install -debug-uninstall: $(MAKEFILE).Debug FORCE - $(MAKE) -f $(MAKEFILE).Debug uninstall release: $(MAKEFILE).Release FORCE $(MAKE) -f $(MAKEFILE).Release release-make_default: $(MAKEFILE).Release FORCE @@ -62,6 +46,22 @@ release-install: $(MAKEFILE).Release FORCE $(MAKE) -f $(MAKEFILE).Release install release-uninstall: $(MAKEFILE).Release FORCE $(MAKE) -f $(MAKEFILE).Release uninstall +debug: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug +debug-make_default: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug +debug-make_first: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug first +debug-all: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug all +debug-clean: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug clean +debug-distclean: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug distclean +debug-install: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug install +debug-uninstall: $(MAKEFILE).Debug FORCE + $(MAKE) -f $(MAKEFILE).Debug uninstall Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../Qt/4.8.1/mkspecs/qconfig.pri \ ../../Qt/4.8.1/mkspecs/modules/qt_webkit_version.pri \ @@ -70,11 +70,10 @@ Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../ ../../Qt/4.8.1/mkspecs/features/exclusive_builds.prf \ ../../Qt/4.8.1/mkspecs/features/default_pre.prf \ ../../Qt/4.8.1/mkspecs/features/win32/default_pre.prf \ - ../../Qt/4.8.1/mkspecs/features/debug.prf \ + ../../Qt/4.8.1/mkspecs/features/release.prf \ ../../Qt/4.8.1/mkspecs/features/debug_and_release.prf \ ../../Qt/4.8.1/mkspecs/features/default_post.prf \ ../../Qt/4.8.1/mkspecs/features/win32/default_post.prf \ - ../../Qt/4.8.1/mkspecs/features/declarative_debug.prf \ ../../Qt/4.8.1/mkspecs/features/win32/rtti.prf \ ../../Qt/4.8.1/mkspecs/features/win32/exceptions.prf \ ../../Qt/4.8.1/mkspecs/features/win32/stl.prf \ @@ -89,8 +88,8 @@ Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../ ../../Qt/4.8.1/mkspecs/features/yacc.prf \ ../../Qt/4.8.1/mkspecs/features/lex.prf \ ../../Qt/4.8.1/mkspecs/features/include_source_dir.prf \ - c:/Qt/4.8.1/lib/qtmaind.prl - $(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro + c:/Qt/4.8.1/lib/qtmain.prl + $(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=release -o Makefile CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri: ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri: ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf: @@ -98,11 +97,10 @@ Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../ ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf: ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf: ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf: -..\..\Qt\4.8.1\mkspecs\features\debug.prf: +..\..\Qt\4.8.1\mkspecs\features\release.prf: ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf: ..\..\Qt\4.8.1\mkspecs\features\default_post.prf: ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf: -..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf: ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf: ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf: ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf: @@ -117,33 +115,33 @@ Makefile: CableTestBench.pro ../../Qt/4.8.1/mkspecs/win32-g++/qmake.conf ../../ ..\..\Qt\4.8.1\mkspecs\features\yacc.prf: ..\..\Qt\4.8.1\mkspecs\features\lex.prf: ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf: -c:\Qt\4.8.1\lib\qtmaind.prl: +c:\Qt\4.8.1\lib\qtmain.prl: qmake: qmake_all FORCE - @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=release -o Makefile CableTestBench.pro qmake_all: FORCE -make_default: debug-make_default release-make_default 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 +make_default: release-make_default debug-make_default FORCE +make_first: release-make_first debug-make_first FORCE +all: release-all debug-all FORCE +clean: release-clean debug-clean FORCE +distclean: release-distclean debug-distclean FORCE -$(DEL_FILE) Makefile check: first -debug-mocclean: $(MAKEFILE).Debug - $(MAKE) -f $(MAKEFILE).Debug mocclean release-mocclean: $(MAKEFILE).Release $(MAKE) -f $(MAKEFILE).Release mocclean -mocclean: debug-mocclean release-mocclean +debug-mocclean: $(MAKEFILE).Debug + $(MAKE) -f $(MAKEFILE).Debug mocclean +mocclean: release-mocclean debug-mocclean -debug-mocables: $(MAKEFILE).Debug - $(MAKE) -f $(MAKEFILE).Debug mocables release-mocables: $(MAKEFILE).Release $(MAKE) -f $(MAKEFILE).Release mocables -mocables: debug-mocables release-mocables +debug-mocables: $(MAKEFILE).Debug + $(MAKE) -f $(MAKEFILE).Debug mocables +mocables: release-mocables debug-mocables FORCE: -$(MAKEFILE).Debug: Makefile $(MAKEFILE).Release: Makefile +$(MAKEFILE).Debug: Makefile diff --git a/Makefile.Debug b/Makefile.Debug index 0b4e1df..1700ed4 100644 --- a/Makefile.Debug +++ b/Makefile.Debug @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Tue May 14 11:42:47 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Thu Sep 19 06:47:00 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -145,10 +145,10 @@ $(DESTDIR_TARGET): ui_CMainPage.h ui_VisualInspectionPage.h ui_CableTestPage.h u $(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.CableTestBench.Debug $(LIBS) qmake: FORCE - @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile.Debug CableTestBench.pro + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=release -o Makefile.Debug CableTestBench.pro dist: - $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\debug.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmaind.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES + $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\debug.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmaind.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES clean: compiler_clean -$(DEL_FILE) debug\MainWindow.o debug\main.o debug\MainPage.o debug\CableTestBench.o debug\VisualInspectionPage.o debug\ConnectorSelectWidget.o debug\CableTestPage.o debug\ConnectorClickZoneWidget.o debug\ONOFFStatusWidget.o debug\ConnectorTestVisualizationWidget.o debug\Connector.o debug\Cable.o debug\VisualInspectionResult.o debug\TestReport.o debug\CableTestEngine.o debug\OptionsPage.o debug\CableTestBenchDefs.o debug\IOModulesInterface.o debug\InputConnector.o debug\OutputConnector.o debug\CableParametersData.o debug\AutomatedTestReport.o debug\TestBenchSettings.o debug\moc_MainWindow.o debug\moc_MainPage.o debug\moc_CableTestBench.o debug\moc_VisualInspectionPage.o debug\moc_ConnectorSelectWidget.o debug\moc_CableTestPage.o debug\moc_ConnectorClickZoneWidget.o debug\moc_ONOFFStatusWidget.o debug\moc_ConnectorTestVisualizationWidget.o debug\moc_TestReport.o debug\moc_CableTestEngine.o debug\moc_OptionsPage.o debug\moc_IOModulesInterface.o debug\moc_AutomatedTestReport.o diff --git a/Makefile.Release b/Makefile.Release index e759126..a49d4c8 100644 --- a/Makefile.Release +++ b/Makefile.Release @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Tue May 14 11:42:47 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Thu Sep 19 06:47:00 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -145,10 +145,10 @@ $(DESTDIR_TARGET): ui_CMainPage.h ui_VisualInspectionPage.h ui_CableTestPage.h u $(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.CableTestBench.Release $(LIBS) qmake: FORCE - @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile.Release CableTestBench.pro + @$(QMAKE) -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=release -o Makefile.Release CableTestBench.pro dist: - $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\release.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmain.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES + $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\release.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmain.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES clean: compiler_clean -$(DEL_FILE) release\MainWindow.o release\main.o release\MainPage.o release\CableTestBench.o release\VisualInspectionPage.o release\ConnectorSelectWidget.o release\CableTestPage.o release\ConnectorClickZoneWidget.o release\ONOFFStatusWidget.o release\ConnectorTestVisualizationWidget.o release\Connector.o release\Cable.o release\VisualInspectionResult.o release\TestReport.o release\CableTestEngine.o release\OptionsPage.o release\CableTestBenchDefs.o release\IOModulesInterface.o release\InputConnector.o release\OutputConnector.o release\CableParametersData.o release\AutomatedTestReport.o release\TestBenchSettings.o release\moc_MainWindow.o release\moc_MainPage.o release\moc_CableTestBench.o release\moc_VisualInspectionPage.o release\moc_ConnectorSelectWidget.o release\moc_CableTestPage.o release\moc_ConnectorClickZoneWidget.o release\moc_ONOFFStatusWidget.o release\moc_ConnectorTestVisualizationWidget.o release\moc_TestReport.o release\moc_CableTestEngine.o release\moc_OptionsPage.o release\moc_IOModulesInterface.o release\moc_AutomatedTestReport.o diff --git a/Sources/CableTestBench.cpp b/Sources/CableTestBench.cpp index c3291d3..c4222eb 100644 --- a/Sources/CableTestBench.cpp +++ b/Sources/CableTestBench.cpp @@ -137,10 +137,16 @@ int CCableTestBench::StartPauseAutomaticTestRequest() { if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_TEST_STBY_MODE) { + int TestPinCount = mActualCable.GetOutputConnector()->GetPinCount(); + if(mActualCable.GetInputConnector()->GetPinCount() < TestPinCount) + { + TestPinCount = mActualCable.GetInputConnector()->GetPinCount(); + } + mCableTestPageHandle->FillReportCableParametersData(mCableTestReport.GetReportCableParameters()); mCableTestReport.GetReportCableParameters()->SetCableType(CConnectorDefs::GetConnectorDescription(mActualCable.GetInputConnector()->GetConnectorType()), CConnectorDefs::GetConnectorDescription(mActualCable.GetOutputConnector()->GetConnectorType())); - mCableTestReport.GetAutomatedTestReport()->SetPinCount(mActualCable.GetOutputConnector()->GetPinCount()); + mCableTestReport.GetAutomatedTestReport()->SetPinCount(TestPinCount); mCableTestEngine.StartAutomatedTest(); return RET_OK; diff --git a/Sources/CableTestEngine.cpp b/Sources/CableTestEngine.cpp index 791ea5e..ace7e0f 100644 --- a/Sources/CableTestEngine.cpp +++ b/Sources/CableTestEngine.cpp @@ -232,7 +232,12 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) } mCurPinUnderTest++; - if(mCurPinUnderTest > (mTestOutputConnectorHandle->GetPinCount())) + int TestPinCount = mTestOutputConnectorHandle->GetPinCount(); + if(mTestInputConnectorHandle->GetPinCount() < TestPinCount) + { + TestPinCount = mTestInputConnectorHandle->GetPinCount(); + } + if(mCurPinUnderTest > TestPinCount) { //Test finished. diff --git a/Sources/CableTestPage.cpp b/Sources/CableTestPage.cpp index b1e2e5a..876fc27 100644 --- a/Sources/CableTestPage.cpp +++ b/Sources/CableTestPage.cpp @@ -67,7 +67,7 @@ CCableTestPage::CCableTestPage(QWidget *parent) : ui->mCableIdentStepLabel->setText("1. Identification du câble: À REMPLIR"); ui->mConnectorSelStepLabel->setPalette(pal); - ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À SÉLECTIONNER"); + ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À FAIRE"); @@ -90,7 +90,7 @@ int CCableTestPage::SetVisualInspectionDone(bool Done) if(Done) { ui->mInspectionDoneIcon->setPixmap(mInspectionDonePixmap); - ui->mExecInspVisuelleBtn->setText(QString("Réviser Inspection").toUtf8()); + ui->mExecInspVisuelleBtn->setText(QString("Réviser\n Inspection").toUtf8()); QPalette pal; pal.setColor(QPalette::WindowText,Qt::darkGreen); @@ -100,7 +100,7 @@ int CCableTestPage::SetVisualInspectionDone(bool Done) else { ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap); - ui->mExecInspVisuelleBtn->setText("Effectuer Inspection"); + ui->mExecInspVisuelleBtn->setText("Effectuer\n Inspection"); QPalette pal; pal.setColor(QPalette::WindowText,Qt::red); @@ -124,7 +124,7 @@ int CCableTestPage::SetConnectorSelStep(bool done) { pal.setColor(QPalette::WindowText,Qt::red); ui->mConnectorSelStepLabel->setPalette(pal); - ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À SÉLECTIONNER"); + ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À FAIRE"); } return RET_OK; diff --git a/Sources/CableTestPage.ui b/Sources/CableTestPage.ui index 2badec7..2be34f4 100644 --- a/Sources/CableTestPage.ui +++ b/Sources/CableTestPage.ui @@ -22,14 +22,19 @@ 537 + + + 11 + + 50 - 50 + 40 471 - 121 + 161 @@ -46,9 +51,9 @@ 60 - 60 + 50 451 - 100 + 144 @@ -56,7 +61,7 @@ - 12 + 14 @@ -66,6 +71,11 @@ + + + 14 + + Permanent @@ -79,16 +89,28 @@ - + + + + 14 + + + - + + + + 14 + + + - 12 + 14 @@ -100,7 +122,7 @@ - 12 + 14 @@ -112,7 +134,7 @@ - 12 + 14 @@ -122,6 +144,11 @@ + + + 14 + + @@ -133,14 +160,14 @@ 60 - 20 + 10 271 20 - 12 + 16 @@ -187,13 +214,19 @@ 10 - 50 - 121 - 23 + 30 + 101 + 51 + + + 12 + + - Effectuer Inspection + Effectuer + Inspection @@ -213,7 +246,7 @@ - 10 + 500 410 461 351 @@ -222,6 +255,8 @@ false + mOutputContactsTextLabel + mOutputTestVisualisationWidget @@ -236,19 +271,6 @@ Qt::Horizontal - - - - 500 - 410 - 461 - 351 - - - - false - - @@ -265,9 +287,9 @@ - 130 + 620 370 - 161 + 241 41 @@ -280,33 +302,20 @@ Contacts entrée - + - 670 - 370 - 161 - 41 + 400 + 10 + 121 + 23 - 16 + 12 - - Contacts sortie - - - - - - 430 - 20 - 91 - 23 - - Nouveau Câble @@ -316,8 +325,8 @@ 50 220 - 621 - 131 + 661 + 141 @@ -329,9 +338,9 @@ - 310 + 360 10 - 121 + 141 91 @@ -343,10 +352,15 @@ 20 20 - 91 + 111 23 + + + 11 + + Démarrer test @@ -356,10 +370,15 @@ 20 50 - 91 + 111 23 + + + 11 + + Réinitialiser test @@ -368,7 +387,7 @@ - 480 + 530 10 111 80 @@ -386,6 +405,11 @@ 23 + + + 12 + + Exécuter @@ -394,12 +418,17 @@ - 480 - 100 - 121 - 23 + 470 + 102 + 161 + 31 + + + 12 + + Sauvegarder Rapport @@ -408,11 +437,16 @@ 20 - 20 - 201 + 30 + 341 16 + + + 14 + + 1. Identification du câble: À REMPLIR @@ -421,11 +455,16 @@ 20 - 50 - 201 + 70 + 331 16 + + + 14 + + 2. Inspection visuelle: À EXÉCUTER @@ -434,13 +473,18 @@ 20 - 80 - 271 + 110 + 451 16 + + + 14 + + - 3. Sélection du connecteur d'entrée: À SÉLECTIONNER + 3. Sélection du connecteur d'entrée: À FAIRE @@ -493,8 +537,8 @@ - 30 - 40 + 20 + 30 181 41 @@ -514,17 +558,53 @@ - 70 - 100 - 101 - 23 + 40 + 90 + 141 + 31 + + + 12 + + Ouvrir Rapport + + + + 20 + 410 + 461 + 351 + + + + false + + + + + + 190 + 370 + 221 + 41 + + + + + 16 + + + + Contacts sortie + + diff --git a/Sources/IOModulesInterface.cpp b/Sources/IOModulesInterface.cpp index 4ad7474..487208d 100644 --- a/Sources/IOModulesInterface.cpp +++ b/Sources/IOModulesInterface.cpp @@ -11,6 +11,7 @@ CIOModulesInterface::CIOModulesInterface() // mIOModulesQueryTimer->setInterval(IO_MODULES_REFRESH_INTERVAL); // mIOModulesQueryTimer->setSingleShot(true); + hndl=0; @@ -69,11 +70,15 @@ int CIOModulesInterface::OpenIOModules(QString IPAddress) ResetOutputs(); + return RET_OK; } int CIOModulesInterface::CloseIOModules() { + if(hndl == 0) + return RET_ERROR; + // mIOModulesQueryTimer->stop(); int ret = SM_Close(&hndl); @@ -93,6 +98,7 @@ int CIOModulesInterface::CloseIOModules() void CIOModulesInterface::IOModulesQueryTimerExpired() { + DoAllIOTransactions(); // mIOModulesQueryTimer->start(); qDebug("timerout"); @@ -100,6 +106,9 @@ void CIOModulesInterface::IOModulesQueryTimerExpired() int CIOModulesInterface::ReadInputModules() { + if(hndl == 0) + return RET_ERROR; + unsigned char TempBuf[4]; SM_SelectDevice(hndl,INPUTS_MODULE_1_SLAVE_ID); @@ -123,6 +132,9 @@ int CIOModulesInterface::ReadInputModules() int CIOModulesInterface::WriteOutputModules() { + if(hndl == 0) + return RET_ERROR; + SM_SelectDevice(hndl,OUTPUTS_MODULE_1_SLAVE_ID); SM_WriteDigitalOutputs(hndl,0,32,&mOutputsBuffer[0]); @@ -140,6 +152,9 @@ int CIOModulesInterface::WriteOutputModules() int CIOModulesInterface::ReadOutputStates() { + if(hndl == 0) + return RET_ERROR; + unsigned char TempBuf[4]; SM_SelectDevice(hndl,OUTPUTS_MODULE_1_SLAVE_ID); diff --git a/Sources/MainWindow.cpp b/Sources/MainWindow.cpp index 0cfbf48..fd73f4f 100644 --- a/Sources/MainWindow.cpp +++ b/Sources/MainWindow.cpp @@ -27,9 +27,6 @@ MainWindow::MainWindow(QWidget *parent,CCableTestBench* ProgramHandle) //setCentralWidget(mVisualInspPage); - - - } MainWindow::~MainWindow() diff --git a/Sources/OptionsPage.ui b/Sources/OptionsPage.ui index 2006cf4..1ddf88e 100644 --- a/Sources/OptionsPage.ui +++ b/Sources/OptionsPage.ui @@ -18,7 +18,7 @@ 170 40 - 181 + 321 31 @@ -53,15 +53,15 @@ - 140 + 100 110 - 171 + 211 20 - 10 + 12 @@ -71,12 +71,17 @@ - 140 + 131 361 - 42 + 51 22 + + + 11 + + 255 @@ -89,10 +94,15 @@ 190 361 - 42 + 51 22 + + + 11 + + 255 @@ -103,12 +113,17 @@ - 240 - 361 - 42 + 250 + 360 + 51 22 + + + 11 + + 255 @@ -116,12 +131,17 @@ - 290 - 361 - 42 + 300 + 360 + 51 22 + + + 11 + + 255 @@ -140,7 +160,7 @@ - 10 + 12 @@ -153,10 +173,15 @@ 170 470 - 131 + 181 23 + + + 11 + + Appliquer && Sauvegarder @@ -166,10 +191,15 @@ 140 160 - 221 - 17 + 321 + 21 + + + 12 + + Ignorer l'inspection visuelle @@ -179,10 +209,15 @@ 140 200 - 221 + 321 17 + + + 12 + + Inclure LOG dans le rapport @@ -192,10 +227,15 @@ 140 240 - 221 + 281 17 + + + 12 + + Exécuter 2è passe de tests diff --git a/Sources/TestBenchVersion.h b/Sources/TestBenchVersion.h index 927841a..405e830 100644 --- a/Sources/TestBenchVersion.h +++ b/Sources/TestBenchVersion.h @@ -2,11 +2,18 @@ #define TESTBENCHVERSION_H -#define TEST_BENCH_VERSION "V1.0" +#define TEST_BENCH_VERSION "V1.2" //LOG DES CHANGEMENTS +//Version 1.1 +//- Correction d'un bug qui testait 108 points pour le +// connecteur 90 points, il manquait la partie du rapport... +//Version 1.1 +//- Ajustements suite aux premiers essais à l'atelier +//- Correction d'un bug qui testait 108 points pour le +// connecteur 90 points. //Version 0.10_ING_DEV //-Version de développement, pré-production diff --git a/Sources/VisualInspectionPage.ui b/Sources/VisualInspectionPage.ui index 169a562..eae7e1e 100644 --- a/Sources/VisualInspectionPage.ui +++ b/Sources/VisualInspectionPage.ui @@ -17,9 +17,9 @@ 230 - 30 - 611 - 81 + 10 + 771 + 101 @@ -38,13 +38,13 @@ ont été complétés (chaque câble doit être vérifié) 380 230 - 261 - 16 + 411 + 21 - 12 + 14 @@ -56,13 +56,13 @@ ont été complétés (chaque câble doit être vérifié) 380 280 - 311 - 16 + 441 + 31 - 12 + 14 @@ -74,13 +74,13 @@ ont été complétés (chaque câble doit être vérifié) 380 330 - 311 - 16 + 511 + 21 - 12 + 14 @@ -92,13 +92,13 @@ ont été complétés (chaque câble doit être vérifié) 380 380 - 471 - 16 + 611 + 21 - 12 + 14 @@ -110,13 +110,13 @@ ont été complétés (chaque câble doit être vérifié) 380 430 - 471 - 16 + 591 + 21 - 12 + 14 @@ -128,7 +128,7 @@ ont été complétés (chaque câble doit être vérifié) 120 140 - 811 + 941 20 @@ -146,8 +146,8 @@ ont été complétés (chaque câble doit être vérifié) 330 200 - 46 - 13 + 81 + 16 @@ -159,7 +159,7 @@ ont été complétés (chaque câble doit être vérifié) 230 200 - 71 + 91 16 @@ -336,6 +336,11 @@ ont été complétés (chaque câble doit être vérifié) 23 + + + 12 + + OK @@ -349,6 +354,9 @@ ont été complétés (chaque câble doit être vérifié) 141 + + QFrame::Plain + @@ -373,10 +381,15 @@ ont été complétés (chaque câble doit être vérifié) 790 260 - 75 + 121 23 + + + 12 + + Réinitialiser diff --git a/Sources/Widgets/ConnectorSelectWidget.cpp b/Sources/Widgets/ConnectorSelectWidget.cpp index 7825370..9a37d22 100644 --- a/Sources/Widgets/ConnectorSelectWidget.cpp +++ b/Sources/Widgets/ConnectorSelectWidget.cpp @@ -14,7 +14,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //6 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_6_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(7,149,53,54); + InputClickZoneHandle->setGeometry(316,152,53,54); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -22,7 +22,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //14 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_14_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(7,23,53,54); + InputClickZoneHandle->setGeometry(316,21,53,54); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -30,7 +30,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //24 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_24_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(92,23,48,86); + InputClickZoneHandle->setGeometry(236,23,48,86); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -38,7 +38,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //72 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_72_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(92,149,47,120); + InputClickZoneHandle->setGeometry(234,150,47,120); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -46,7 +46,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //90 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_90_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(17,286,33,73); + InputClickZoneHandle->setGeometry(320,306,33,73); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -54,7 +54,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //108 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_108_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(92,308,47,149); + InputClickZoneHandle->setGeometry(235,308,47,149); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -62,7 +62,7 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //120 pins InputClickZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::INPUT_120_PINS_CONNECTOR_TYPE,this); - InputClickZoneHandle->setGeometry(13,382,42,74); + InputClickZoneHandle->setGeometry(316,403,42,74); InputClickZoneHandle->show(); InputClickZoneHandle->raise(); connect(InputClickZoneHandle,SIGNAL(ConnectorZoneClicked(CConnectorClickZoneWidget*)),this,SLOT(InputConnectorZoneClicked(CConnectorClickZoneWidget*))); @@ -73,35 +73,35 @@ CConnectorSelectWidget::CConnectorSelectWidget(QWidget *parent) : //6 pins OutputSelectZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::OUTPUT_6_PINS_CONNECTOR_TYPE,this); - OutputSelectZoneHandle->setGeometry(329,149,38,38); + OutputSelectZoneHandle->setGeometry(12,148,38,38); OutputSelectZoneHandle->show(); OutputSelectZoneHandle->raise(); mOutputSelectZoneList.append(OutputSelectZoneHandle); //14 pins OutputSelectZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::OUTPUT_14_PINS_CONNECTOR_TYPE,this); - OutputSelectZoneHandle->setGeometry(327,23,41,42); + OutputSelectZoneHandle->setGeometry(13,24,41,42); OutputSelectZoneHandle->show(); OutputSelectZoneHandle->raise(); mOutputSelectZoneList.append(OutputSelectZoneHandle); //24 pins OutputSelectZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::OUTPUT_24_PINS_CONNECTOR_TYPE,this); - OutputSelectZoneHandle->setGeometry(235,23,48,86); + OutputSelectZoneHandle->setGeometry(91,23,48,86); OutputSelectZoneHandle->show(); OutputSelectZoneHandle->raise(); mOutputSelectZoneList.append(OutputSelectZoneHandle); //72 pins OutputSelectZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::OUTPUT_72_PINS_CONNECTOR_TYPE,this); - OutputSelectZoneHandle->setGeometry(235,149,46,121); + OutputSelectZoneHandle->setGeometry(92,150,46,121); OutputSelectZoneHandle->show(); OutputSelectZoneHandle->raise(); mOutputSelectZoneList.append(OutputSelectZoneHandle); //108 pins OutputSelectZoneHandle = new CConnectorClickZoneWidget(CConnectorDefs::OUTPUT_108_PINS_CONNECTOR_TYPE,this); - OutputSelectZoneHandle->setGeometry(235,308,47,148); + OutputSelectZoneHandle->setGeometry(92,308,47,148); OutputSelectZoneHandle->show(); OutputSelectZoneHandle->raise(); mOutputSelectZoneList.append(OutputSelectZoneHandle); diff --git a/images/connecteurs.png b/images/connecteurs.png index b25666e3c4a83f555b510b823e37605b403a5c82..02f92540423e5bd0e5d667afdb561476536f85b6 100644 GIT binary patch literal 29135 zcmd3ubySpH+vt&ykVd+tq(r1U6#)UI1*PVZMtW$F4hf~Dm6B#ikr;ZEZifzOhK3=A zfpde;`+d**e&_r5tn-J1_mVV&V@M+@EhOh=}T7(4C40df43;_tG&a(aCTNzR?zh{ z+0NAZ;b7o(CB=P-KXtd617g!&R{v4h6LgUfKcf4-h~47ht=(4nhgkSj?oPPfK_)zT zLATNg^N8;`IJ0c9eEEw-5|74-ROn+it*T@-t)#oRKN^AZuNd^JLQVw?NTNz>2MzjHf^OvmDup1g2I%)oVOoCn7!E?5m4457VBSPYm2vc8=B}?5TvlA; zu2d8~-O?j2FdP{!cdE$evvcbj0RIJ_3$OA?C4dbU0 z*aImsnLWSG!7Nn9W%en&#Ipqh>-~6u#tW!jD1&pb)+2TUu25u#6w3wHh$bIA-vw4n z(o|h{tx{4sQcP&HVBnhC)0-Dk$?5Q^rXQO%(`tGjWlyDk+hSK8$6(znByxV&+84>_ zqUqY{&Fm%4d_HkU`g>SvT&>cYB_*bo{G`_jUg_2%LhEWM+%~PZ8lI5%E1>SIW-GIEQ#8#nWky?$4jPI=pu0^RY(xdKJIBv3&j%nce4)GU0 z*i)d>$UU0SwvWH%N(fP2Ax$*XEX65QiE|cQ)%mOSquFK%J^!ns^-cqwbXR;+sncP$ zC`LKUT49TDUZhc5_Z-b3H})l-lY9H9(z%O)g8?r*__cIPR7{!d&oR(FUht8US#1o_ z<6HAE7I3BWz=>ELC$>N5_sEU`J8NALk=u!(A?yn1!K;a=mdD0E&;k}tZ$-#xJM}~a z^-jb1DfTbjSBX*S@%!}?tK(EG&#~#Pwm_ym6wflO@d~DRHP8ER%hbuD5Y>(9DG#=@ zyjDNu>K$g3UY%uMd7Z51#u0;TaWZ8c6m+FIC`xbBP^Yoz(+F9FQ|v>QvM#PhQd)#N ziM_tU7b#=DZWFkd89vDW>!PgID+!0tItB~3SllkOS3i;i-|6z=%-ree$Q|kjgbrK& zk7pnX;2CEaW1|X_*RuWgcwt&;Wlg)TcFpb3z}33QkH(J8?tA;cnXgVCS~8>HuyQFu z$2Q)IrYb3qof&sXM+pnFU87NE)O&4boky1wQ%yaXyxQ_Bs(a|8LOB`ZDkAK|Bwm9s z5EMCOXQl4ZabX(6#cal+YtwwX^uEJ~1EY7hVJ&MmK}%MmX+DZ8%hSRGwOwyYL1NQp=~lc$--yx+;|UNJ<&em8wZ7x}IoeYl{{ z5CxiZa0G>Ws@1aYQEQC|S2Wz^j)z-DibD8tcu_r+FF~?pn_gf}Ht5BQ!0y||?YhO| zF#5M}^g#-gA-OQ8gT_g6aUaIajQl}%n!Z859apQ}y2ZtCW+r=x85fA9bhc~=7#X9QH6Bl$v{iO$~p z@@#Ez?se#!I@<~dhHgZgCGVb&Uu1VB(LK!3rHlQz0Or?_PIBh6=( zNMwXx?LagJxbe@r-cwiLjHgzMm^tK5ebLsh-5XIC*nZovl02)UCF5S#CHktx*Q@gV zyAEQ^&DC_rmhySKol!xf8j0}ZaGJ&D;_uWZp601Mw7p463Ry14Dm!FST5{;4=k}AB zC3Vh~$i0&p&OM?s#jhJz5Q`E2?p(zb2hUnX$2f`c5cKq;w+go#t6@w&_N2c8Q1t=y zJf3nI!PZT{alx#N-f7%r%J4cKHwcⅈB((F&wH%_nnq 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 literal 32972 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 literal 26020 zcmXt918`(*u#Gm>#&c?QFZ*1GPtvCOB^(r%Ut8V4ahd!sfzwUD* ze#?m?z~aDyfPf%KN{A?efPm8d_l1T8-tq8>bpc)=4W-3JK)(O`%k3&j1m1zMm(Xwm z0V&4%?+fbdG8*&WO;>v%v;Th{W5f*?sM@%Pq-x*k${>Y`M+rZsKY} zOur6h<%g@#fglJ(xFAF%D9Ip%Vj)#zy|H8p{b~yNYKrk_!UZXz27iM2Xc83x&5JlH zgk+oq1Sko(NT>udoPI#o=4f7tlY5P?pK{OERW@SHyjP9cThu*Mmycd)dG%Yjm)&MN z`H7LzeudsAjXwyOAQm(zYA>Qb9Fr#J5X~1Ndi5>nS7c9j|D{t1sn#tAcqJ%pujAl0 zx;`i;3>_FXkw&Z7mhbze9ES!WB7jrJpZ`KA;4iNrgeW^t087ASZ*!y(1hk@@;N}%= zf@7dGctx+wpaU!?qD+AVBj||_$vWN%>Jp@Iz+b`mNo1xU7eAhoKQ@ErlKQFW%hcWi zL@YEVlf<4V?BU(J4zB4UN9sX<�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 diff --git a/ui_CMainPage.h b/ui_CMainPage.h index 93c0b47..502efa7 100644 --- a/ui_CMainPage.h +++ b/ui_CMainPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'CMainPage.ui' ** -** Created: Tue May 14 11:42:48 2019 +** Created: Fri Dec 6 12:10:43 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! diff --git a/ui_CableTestPage.h b/ui_CableTestPage.h index 357787e..49c217b 100644 --- a/ui_CableTestPage.h +++ b/ui_CableTestPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'CableTestPage.ui' ** -** Created: Tue May 14 11:42:48 2019 +** Created: Fri Dec 6 12:10:44 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! @@ -51,10 +51,8 @@ public: QLabel *mInspectionDoneIcon; CConnectorTestVisualizationWidget *mInputTestVisualisationWidget; QFrame *line; - CConnectorTestVisualizationWidget *mOutputTestVisualisationWidget; QFrame *line_2; QLabel *mInputContactsTextLabel; - QLabel *mOutputContactsTextLabel; QPushButton *mNewCableBtn; QFrame *frame; QGroupBox *groupBox; @@ -71,6 +69,8 @@ public: QGroupBox *groupBox_3; QLabel *mAutoTestResultLabel; QPushButton *mOpenReportBtn; + CConnectorTestVisualizationWidget *mOutputTestVisualisationWidget; + QLabel *mOutputContactsTextLabel; void setupUi(QWidget *CCableTestPage) { @@ -80,72 +80,83 @@ public: mConnectorSelectWidget = new CConnectorSelectWidget(CCableTestPage); mConnectorSelectWidget->setObjectName(QString::fromUtf8("mConnectorSelectWidget")); mConnectorSelectWidget->setGeometry(QRect(970, 10, 376, 537)); + QFont font; + font.setPointSize(11); + mConnectorSelectWidget->setFont(font); mCableConfigFrame = new QFrame(CCableTestPage); mCableConfigFrame->setObjectName(QString::fromUtf8("mCableConfigFrame")); - mCableConfigFrame->setGeometry(QRect(50, 50, 471, 121)); + mCableConfigFrame->setGeometry(QRect(50, 40, 471, 161)); mCableConfigFrame->setFrameShape(QFrame::WinPanel); mCableConfigFrame->setFrameShadow(QFrame::Raised); mCableConfigFrame->setLineWidth(3); layoutWidget = new QWidget(CCableTestPage); layoutWidget->setObjectName(QString::fromUtf8("layoutWidget")); - layoutWidget->setGeometry(QRect(60, 60, 451, 100)); + layoutWidget->setGeometry(QRect(60, 50, 451, 144)); gridLayout = new QGridLayout(layoutWidget); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setContentsMargins(0, 0, 0, 0); mNomTesteurLabel = new QLabel(layoutWidget); mNomTesteurLabel->setObjectName(QString::fromUtf8("mNomTesteurLabel")); - QFont font; - font.setPointSize(12); - mNomTesteurLabel->setFont(font); + QFont font1; + font1.setPointSize(14); + mNomTesteurLabel->setFont(font1); gridLayout->addWidget(mNomTesteurLabel, 3, 0, 1, 1, Qt::AlignRight); mTypeCableCombo = new QComboBox(layoutWidget); mTypeCableCombo->setObjectName(QString::fromUtf8("mTypeCableCombo")); + mTypeCableCombo->setFont(font1); gridLayout->addWidget(mTypeCableCombo, 2, 1, 1, 2); mIdentCableEditBox = new QLineEdit(layoutWidget); mIdentCableEditBox->setObjectName(QString::fromUtf8("mIdentCableEditBox")); + mIdentCableEditBox->setFont(font1); gridLayout->addWidget(mIdentCableEditBox, 1, 1, 1, 2); mStationNameCombo = new QComboBox(layoutWidget); mStationNameCombo->setObjectName(QString::fromUtf8("mStationNameCombo")); + mStationNameCombo->setFont(font1); gridLayout->addWidget(mStationNameCombo, 0, 1, 1, 2); StationNameLabel = new QLabel(layoutWidget); StationNameLabel->setObjectName(QString::fromUtf8("StationNameLabel")); - StationNameLabel->setFont(font); + StationNameLabel->setFont(font1); gridLayout->addWidget(StationNameLabel, 0, 0, 1, 1, Qt::AlignRight); mTypeCableLabel = new QLabel(layoutWidget); mTypeCableLabel->setObjectName(QString::fromUtf8("mTypeCableLabel")); - mTypeCableLabel->setFont(font); + mTypeCableLabel->setFont(font1); gridLayout->addWidget(mTypeCableLabel, 2, 0, 1, 1, Qt::AlignRight); mIdentCableLabel = new QLabel(layoutWidget); mIdentCableLabel->setObjectName(QString::fromUtf8("mIdentCableLabel")); - mIdentCableLabel->setFont(font); + mIdentCableLabel->setFont(font1); gridLayout->addWidget(mIdentCableLabel, 1, 0, 1, 1); mNomTesteurEditBox = new QLineEdit(layoutWidget); mNomTesteurEditBox->setObjectName(QString::fromUtf8("mNomTesteurEditBox")); + mNomTesteurEditBox->setFont(font1); gridLayout->addWidget(mNomTesteurEditBox, 3, 1, 1, 2); mCableConfigLabel = new QLabel(CCableTestPage); mCableConfigLabel->setObjectName(QString::fromUtf8("mCableConfigLabel")); - mCableConfigLabel->setGeometry(QRect(60, 20, 271, 20)); - mCableConfigLabel->setFont(font); + mCableConfigLabel->setGeometry(QRect(60, 10, 271, 20)); + QFont font2; + font2.setPointSize(16); + mCableConfigLabel->setFont(font2); mInspVisuelleLabel = new QLabel(CCableTestPage); mInspVisuelleLabel->setObjectName(QString::fromUtf8("mInspVisuelleLabel")); mInspVisuelleLabel->setGeometry(QRect(600, 20, 271, 20)); - mInspVisuelleLabel->setFont(font); + QFont font3; + font3.setPointSize(12); + mInspVisuelleLabel->setFont(font3); mInspVisuelleFrame = new QFrame(CCableTestPage); mInspVisuelleFrame->setObjectName(QString::fromUtf8("mInspVisuelleFrame")); mInspVisuelleFrame->setGeometry(QRect(600, 40, 291, 121)); @@ -154,23 +165,20 @@ public: mInspVisuelleFrame->setLineWidth(3); mExecInspVisuelleBtn = new QPushButton(mInspVisuelleFrame); mExecInspVisuelleBtn->setObjectName(QString::fromUtf8("mExecInspVisuelleBtn")); - mExecInspVisuelleBtn->setGeometry(QRect(10, 50, 121, 23)); + mExecInspVisuelleBtn->setGeometry(QRect(10, 30, 101, 51)); + mExecInspVisuelleBtn->setFont(font3); mInspectionDoneIcon = new QLabel(mInspVisuelleFrame); mInspectionDoneIcon->setObjectName(QString::fromUtf8("mInspectionDoneIcon")); mInspectionDoneIcon->setGeometry(QRect(160, 20, 101, 91)); mInputTestVisualisationWidget = new CConnectorTestVisualizationWidget(CCableTestPage); mInputTestVisualisationWidget->setObjectName(QString::fromUtf8("mInputTestVisualisationWidget")); - mInputTestVisualisationWidget->setGeometry(QRect(10, 410, 461, 351)); + mInputTestVisualisationWidget->setGeometry(QRect(500, 410, 461, 351)); mInputTestVisualisationWidget->setAutoFillBackground(false); line = new QFrame(CCableTestPage); line->setObjectName(QString::fromUtf8("line")); line->setGeometry(QRect(30, 360, 901, 20)); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); - mOutputTestVisualisationWidget = new CConnectorTestVisualizationWidget(CCableTestPage); - mOutputTestVisualisationWidget->setObjectName(QString::fromUtf8("mOutputTestVisualisationWidget")); - mOutputTestVisualisationWidget->setGeometry(QRect(500, 410, 461, 351)); - mOutputTestVisualisationWidget->setAutoFillBackground(false); line_2 = new QFrame(CCableTestPage); line_2->setObjectName(QString::fromUtf8("line_2")); line_2->setGeometry(QRect(480, 390, 20, 371)); @@ -178,53 +186,55 @@ public: line_2->setFrameShadow(QFrame::Sunken); mInputContactsTextLabel = new QLabel(CCableTestPage); mInputContactsTextLabel->setObjectName(QString::fromUtf8("mInputContactsTextLabel")); - mInputContactsTextLabel->setGeometry(QRect(130, 370, 161, 41)); - QFont font1; - font1.setPointSize(16); - mInputContactsTextLabel->setFont(font1); - mOutputContactsTextLabel = new QLabel(CCableTestPage); - mOutputContactsTextLabel->setObjectName(QString::fromUtf8("mOutputContactsTextLabel")); - mOutputContactsTextLabel->setGeometry(QRect(670, 370, 161, 41)); - mOutputContactsTextLabel->setFont(font1); + mInputContactsTextLabel->setGeometry(QRect(620, 370, 241, 41)); + mInputContactsTextLabel->setFont(font2); mNewCableBtn = new QPushButton(CCableTestPage); mNewCableBtn->setObjectName(QString::fromUtf8("mNewCableBtn")); - mNewCableBtn->setGeometry(QRect(430, 20, 91, 23)); + mNewCableBtn->setGeometry(QRect(400, 10, 121, 23)); + mNewCableBtn->setFont(font3); frame = new QFrame(CCableTestPage); frame->setObjectName(QString::fromUtf8("frame")); - frame->setGeometry(QRect(50, 220, 621, 131)); + frame->setGeometry(QRect(50, 220, 661, 141)); frame->setFrameShape(QFrame::Box); frame->setFrameShadow(QFrame::Raised); groupBox = new QGroupBox(frame); groupBox->setObjectName(QString::fromUtf8("groupBox")); - groupBox->setGeometry(QRect(310, 10, 121, 91)); + groupBox->setGeometry(QRect(360, 10, 141, 91)); mStartTestBtn = new QPushButton(groupBox); mStartTestBtn->setObjectName(QString::fromUtf8("mStartTestBtn")); - mStartTestBtn->setGeometry(QRect(20, 20, 91, 23)); + mStartTestBtn->setGeometry(QRect(20, 20, 111, 23)); + mStartTestBtn->setFont(font); mReinitTestBtn = new QPushButton(groupBox); mReinitTestBtn->setObjectName(QString::fromUtf8("mReinitTestBtn")); - mReinitTestBtn->setGeometry(QRect(20, 50, 91, 23)); + mReinitTestBtn->setGeometry(QRect(20, 50, 111, 23)); + mReinitTestBtn->setFont(font); groupBox_2 = new QGroupBox(frame); groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); - groupBox_2->setGeometry(QRect(480, 10, 111, 80)); + groupBox_2->setGeometry(QRect(530, 10, 111, 80)); mStartManualTestBtn = new QPushButton(groupBox_2); mStartManualTestBtn->setObjectName(QString::fromUtf8("mStartManualTestBtn")); mStartManualTestBtn->setGeometry(QRect(20, 30, 75, 23)); + mStartManualTestBtn->setFont(font3); mSaveReportBtn = new QPushButton(frame); mSaveReportBtn->setObjectName(QString::fromUtf8("mSaveReportBtn")); - mSaveReportBtn->setGeometry(QRect(480, 100, 121, 23)); + mSaveReportBtn->setGeometry(QRect(470, 102, 161, 31)); + mSaveReportBtn->setFont(font3); mCableIdentStepLabel = new QLabel(frame); mCableIdentStepLabel->setObjectName(QString::fromUtf8("mCableIdentStepLabel")); - mCableIdentStepLabel->setGeometry(QRect(20, 20, 201, 16)); + mCableIdentStepLabel->setGeometry(QRect(20, 30, 341, 16)); + mCableIdentStepLabel->setFont(font1); mVisualInspectionStepLabel = new QLabel(frame); mVisualInspectionStepLabel->setObjectName(QString::fromUtf8("mVisualInspectionStepLabel")); - mVisualInspectionStepLabel->setGeometry(QRect(20, 50, 201, 16)); + mVisualInspectionStepLabel->setGeometry(QRect(20, 70, 331, 16)); + mVisualInspectionStepLabel->setFont(font1); mConnectorSelStepLabel = new QLabel(frame); mConnectorSelStepLabel->setObjectName(QString::fromUtf8("mConnectorSelStepLabel")); - mConnectorSelStepLabel->setGeometry(QRect(20, 80, 271, 16)); + mConnectorSelStepLabel->setGeometry(QRect(20, 110, 451, 16)); + mConnectorSelStepLabel->setFont(font1); mInspVisuelleLabel_2 = new QLabel(CCableTestPage); mInspVisuelleLabel_2->setObjectName(QString::fromUtf8("mInspVisuelleLabel_2")); mInspVisuelleLabel_2->setGeometry(QRect(50, 200, 221, 20)); - mInspVisuelleLabel_2->setFont(font); + mInspVisuelleLabel_2->setFont(font3); mTestLogTextBox = new QTextBrowser(CCableTestPage); mTestLogTextBox->setObjectName(QString::fromUtf8("mTestLogTextBox")); mTestLogTextBox->setGeometry(QRect(970, 550, 381, 201)); @@ -235,14 +245,23 @@ public: groupBox_3->setGeometry(QRect(720, 220, 231, 131)); mAutoTestResultLabel = new QLabel(groupBox_3); mAutoTestResultLabel->setObjectName(QString::fromUtf8("mAutoTestResultLabel")); - mAutoTestResultLabel->setGeometry(QRect(30, 40, 181, 41)); - QFont font2; - font2.setPointSize(26); - mAutoTestResultLabel->setFont(font2); + mAutoTestResultLabel->setGeometry(QRect(20, 30, 181, 41)); + QFont font4; + font4.setPointSize(26); + mAutoTestResultLabel->setFont(font4); mAutoTestResultLabel->setAlignment(Qt::AlignCenter); mOpenReportBtn = new QPushButton(groupBox_3); mOpenReportBtn->setObjectName(QString::fromUtf8("mOpenReportBtn")); - mOpenReportBtn->setGeometry(QRect(70, 100, 101, 23)); + mOpenReportBtn->setGeometry(QRect(40, 90, 141, 31)); + mOpenReportBtn->setFont(font3); + mOutputTestVisualisationWidget = new CConnectorTestVisualizationWidget(CCableTestPage); + mOutputTestVisualisationWidget->setObjectName(QString::fromUtf8("mOutputTestVisualisationWidget")); + mOutputTestVisualisationWidget->setGeometry(QRect(20, 410, 461, 351)); + mOutputTestVisualisationWidget->setAutoFillBackground(false); + mOutputContactsTextLabel = new QLabel(CCableTestPage); + mOutputContactsTextLabel->setObjectName(QString::fromUtf8("mOutputContactsTextLabel")); + mOutputContactsTextLabel->setGeometry(QRect(190, 370, 221, 41)); + mOutputContactsTextLabel->setFont(font2); retranslateUi(CCableTestPage); @@ -264,10 +283,10 @@ public: mNomTesteurEditBox->setText(QString()); mCableConfigLabel->setText(QApplication::translate("CCableTestPage", "Configuration du c\303\242ble", 0, QApplication::UnicodeUTF8)); mInspVisuelleLabel->setText(QApplication::translate("CCableTestPage", "Inspection visuelle", 0, QApplication::UnicodeUTF8)); - mExecInspVisuelleBtn->setText(QApplication::translate("CCableTestPage", "Effectuer Inspection", 0, QApplication::UnicodeUTF8)); + mExecInspVisuelleBtn->setText(QApplication::translate("CCableTestPage", "Effectuer\n" +" Inspection", 0, QApplication::UnicodeUTF8)); mInspectionDoneIcon->setText(QApplication::translate("CCableTestPage", "TextLabel", 0, QApplication::UnicodeUTF8)); mInputContactsTextLabel->setText(QApplication::translate("CCableTestPage", "Contacts entr\303\251e", 0, QApplication::UnicodeUTF8)); - mOutputContactsTextLabel->setText(QApplication::translate("CCableTestPage", "Contacts sortie", 0, QApplication::UnicodeUTF8)); mNewCableBtn->setText(QApplication::translate("CCableTestPage", "Nouveau C\303\242ble", 0, QApplication::UnicodeUTF8)); groupBox->setTitle(QApplication::translate("CCableTestPage", "Test Automatique", 0, QApplication::UnicodeUTF8)); mStartTestBtn->setText(QApplication::translate("CCableTestPage", "D\303\251marrer test", 0, QApplication::UnicodeUTF8)); @@ -277,11 +296,12 @@ public: mSaveReportBtn->setText(QApplication::translate("CCableTestPage", "Sauvegarder Rapport", 0, QApplication::UnicodeUTF8)); mCableIdentStepLabel->setText(QApplication::translate("CCableTestPage", "1. Identification du c\303\242ble: \303\200 REMPLIR", 0, QApplication::UnicodeUTF8)); mVisualInspectionStepLabel->setText(QApplication::translate("CCableTestPage", "2. Inspection visuelle: \303\200 EX\303\211CUTER", 0, QApplication::UnicodeUTF8)); - mConnectorSelStepLabel->setText(QApplication::translate("CCableTestPage", "3. S\303\251lection du connecteur d'entr\303\251e: \303\200 S\303\211LECTIONNER", 0, QApplication::UnicodeUTF8)); + mConnectorSelStepLabel->setText(QApplication::translate("CCableTestPage", "3. S\303\251lection du connecteur d'entr\303\251e: \303\200 FAIRE", 0, QApplication::UnicodeUTF8)); mInspVisuelleLabel_2->setText(QApplication::translate("CCableTestPage", "Contr\303\264le du test \303\251lectrique", 0, QApplication::UnicodeUTF8)); groupBox_3->setTitle(QApplication::translate("CCableTestPage", "R\303\251sultat du test", 0, QApplication::UnicodeUTF8)); mAutoTestResultLabel->setText(QApplication::translate("CCableTestPage", "En cours...", 0, QApplication::UnicodeUTF8)); mOpenReportBtn->setText(QApplication::translate("CCableTestPage", "Ouvrir Rapport", 0, QApplication::UnicodeUTF8)); + mOutputContactsTextLabel->setText(QApplication::translate("CCableTestPage", "Contacts sortie", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; diff --git a/ui_OptionsPage.h b/ui_OptionsPage.h index e41652a..cdd4725 100644 --- a/ui_OptionsPage.h +++ b/ui_OptionsPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'OptionsPage.ui' ** -** Created: Tue May 14 11:42:48 2019 +** Created: Fri Dec 6 12:10:44 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! @@ -46,7 +46,7 @@ public: COptionsPage->resize(564, 647); label_2 = new QLabel(COptionsPage); label_2->setObjectName(QString::fromUtf8("label_2")); - label_2->setGeometry(QRect(170, 40, 181, 31)); + label_2->setGeometry(QRect(170, 40, 321, 31)); QFont font; font.setPointSize(14); label_2->setFont(font); @@ -58,27 +58,33 @@ public: mTestHoldTimeHighSpinBx->setValue(1000); label_3 = new QLabel(COptionsPage); label_3->setObjectName(QString::fromUtf8("label_3")); - label_3->setGeometry(QRect(140, 110, 171, 20)); + label_3->setGeometry(QRect(100, 110, 211, 20)); QFont font1; - font1.setPointSize(10); + font1.setPointSize(12); label_3->setFont(font1); mIPAdd1SpinBox = new QSpinBox(COptionsPage); mIPAdd1SpinBox->setObjectName(QString::fromUtf8("mIPAdd1SpinBox")); - mIPAdd1SpinBox->setGeometry(QRect(140, 361, 42, 22)); + mIPAdd1SpinBox->setGeometry(QRect(131, 361, 51, 22)); + QFont font2; + font2.setPointSize(11); + mIPAdd1SpinBox->setFont(font2); mIPAdd1SpinBox->setMaximum(255); mIPAdd1SpinBox->setValue(192); mIPAdd2SpinBox = new QSpinBox(COptionsPage); mIPAdd2SpinBox->setObjectName(QString::fromUtf8("mIPAdd2SpinBox")); - mIPAdd2SpinBox->setGeometry(QRect(190, 361, 42, 22)); + mIPAdd2SpinBox->setGeometry(QRect(190, 361, 51, 22)); + mIPAdd2SpinBox->setFont(font2); mIPAdd2SpinBox->setMaximum(255); mIPAdd2SpinBox->setValue(168); mIPAdd3SpinBox = new QSpinBox(COptionsPage); mIPAdd3SpinBox->setObjectName(QString::fromUtf8("mIPAdd3SpinBox")); - mIPAdd3SpinBox->setGeometry(QRect(240, 361, 42, 22)); + mIPAdd3SpinBox->setGeometry(QRect(250, 360, 51, 22)); + mIPAdd3SpinBox->setFont(font2); mIPAdd3SpinBox->setMaximum(255); mIPAdd4SpinBox = new QSpinBox(COptionsPage); mIPAdd4SpinBox->setObjectName(QString::fromUtf8("mIPAdd4SpinBox")); - mIPAdd4SpinBox->setGeometry(QRect(290, 361, 42, 22)); + mIPAdd4SpinBox->setGeometry(QRect(300, 360, 51, 22)); + mIPAdd4SpinBox->setFont(font2); mIPAdd4SpinBox->setMaximum(255); mIPAdd4SpinBox->setValue(52); label_5 = new QLabel(COptionsPage); @@ -87,16 +93,20 @@ public: label_5->setFont(font1); mApplyAndSaveBtn = new QPushButton(COptionsPage); mApplyAndSaveBtn->setObjectName(QString::fromUtf8("mApplyAndSaveBtn")); - mApplyAndSaveBtn->setGeometry(QRect(170, 470, 131, 23)); + mApplyAndSaveBtn->setGeometry(QRect(170, 470, 181, 23)); + mApplyAndSaveBtn->setFont(font2); mIgnoreVisualInspChkBx = new QCheckBox(COptionsPage); mIgnoreVisualInspChkBx->setObjectName(QString::fromUtf8("mIgnoreVisualInspChkBx")); - mIgnoreVisualInspChkBx->setGeometry(QRect(140, 160, 221, 17)); + mIgnoreVisualInspChkBx->setGeometry(QRect(140, 160, 321, 21)); + mIgnoreVisualInspChkBx->setFont(font1); mIncludeLogInReportChkBx = new QCheckBox(COptionsPage); mIncludeLogInReportChkBx->setObjectName(QString::fromUtf8("mIncludeLogInReportChkBx")); - mIncludeLogInReportChkBx->setGeometry(QRect(140, 200, 221, 17)); + mIncludeLogInReportChkBx->setGeometry(QRect(140, 200, 321, 17)); + mIncludeLogInReportChkBx->setFont(font1); mExecSecondTestChkBx = new QCheckBox(COptionsPage); mExecSecondTestChkBx->setObjectName(QString::fromUtf8("mExecSecondTestChkBx")); - mExecSecondTestChkBx->setGeometry(QRect(140, 240, 221, 17)); + mExecSecondTestChkBx->setGeometry(QRect(140, 240, 281, 17)); + mExecSecondTestChkBx->setFont(font1); retranslateUi(COptionsPage); diff --git a/ui_VisualInspectionPage.h b/ui_VisualInspectionPage.h index 2303386..eb8430a 100644 --- a/ui_VisualInspectionPage.h +++ b/ui_VisualInspectionPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'VisualInspectionPage.ui' ** -** Created: Tue May 14 11:42:48 2019 +** Created: Fri Dec 6 12:10:44 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! @@ -57,42 +57,42 @@ public: CVisualInspectionPage->resize(1103, 710); label = new QLabel(CVisualInspectionPage); label->setObjectName(QString::fromUtf8("label")); - label->setGeometry(QRect(230, 30, 611, 81)); + label->setGeometry(QRect(230, 10, 771, 101)); QFont font; font.setPointSize(14); label->setFont(font); label_2 = new QLabel(CVisualInspectionPage); label_2->setObjectName(QString::fromUtf8("label_2")); - label_2->setGeometry(QRect(380, 230, 261, 16)); - QFont font1; - font1.setPointSize(12); - label_2->setFont(font1); + label_2->setGeometry(QRect(380, 230, 411, 21)); + label_2->setFont(font); label_3 = new QLabel(CVisualInspectionPage); label_3->setObjectName(QString::fromUtf8("label_3")); - label_3->setGeometry(QRect(380, 280, 311, 16)); - label_3->setFont(font1); + label_3->setGeometry(QRect(380, 280, 441, 31)); + label_3->setFont(font); label_4 = new QLabel(CVisualInspectionPage); label_4->setObjectName(QString::fromUtf8("label_4")); - label_4->setGeometry(QRect(380, 330, 311, 16)); - label_4->setFont(font1); + label_4->setGeometry(QRect(380, 330, 511, 21)); + label_4->setFont(font); label_5 = new QLabel(CVisualInspectionPage); label_5->setObjectName(QString::fromUtf8("label_5")); - label_5->setGeometry(QRect(380, 380, 471, 16)); - label_5->setFont(font1); + label_5->setGeometry(QRect(380, 380, 611, 21)); + label_5->setFont(font); label_6 = new QLabel(CVisualInspectionPage); label_6->setObjectName(QString::fromUtf8("label_6")); - label_6->setGeometry(QRect(380, 430, 471, 16)); - label_6->setFont(font1); + label_6->setGeometry(QRect(380, 430, 591, 21)); + label_6->setFont(font); label_7 = new QLabel(CVisualInspectionPage); label_7->setObjectName(QString::fromUtf8("label_7")); - label_7->setGeometry(QRect(120, 140, 811, 20)); + label_7->setGeometry(QRect(120, 140, 941, 20)); + QFont font1; + font1.setPointSize(12); label_7->setFont(font1); label_8 = new QLabel(CVisualInspectionPage); label_8->setObjectName(QString::fromUtf8("label_8")); - label_8->setGeometry(QRect(330, 200, 46, 13)); + label_8->setGeometry(QRect(330, 200, 81, 16)); label_9 = new QLabel(CVisualInspectionPage); label_9->setObjectName(QString::fromUtf8("label_9")); - label_9->setGeometry(QRect(230, 200, 71, 16)); + label_9->setGeometry(QRect(230, 200, 91, 16)); mVerif52DoneChkBx = new QCheckBox(CVisualInspectionPage); mVerif52DoneChkBx->setObjectName(QString::fromUtf8("mVerif52DoneChkBx")); mVerif52DoneChkBx->setGeometry(QRect(340, 230, 21, 17)); @@ -136,16 +136,19 @@ public: mOKBtn = new QPushButton(CVisualInspectionPage); mOKBtn->setObjectName(QString::fromUtf8("mOKBtn")); mOKBtn->setGeometry(QRect(110, 580, 75, 23)); + mOKBtn->setFont(font1); mNotesTextEditBx = new QTextEdit(CVisualInspectionPage); mNotesTextEditBx->setObjectName(QString::fromUtf8("mNotesTextEditBx")); mNotesTextEditBx->setGeometry(QRect(260, 530, 611, 141)); + mNotesTextEditBx->setFrameShadow(QFrame::Plain); label_10 = new QLabel(CVisualInspectionPage); label_10->setObjectName(QString::fromUtf8("label_10")); label_10->setGeometry(QRect(260, 500, 811, 20)); label_10->setFont(font1); mResetInspectionFormBtn = new QPushButton(CVisualInspectionPage); mResetInspectionFormBtn->setObjectName(QString::fromUtf8("mResetInspectionFormBtn")); - mResetInspectionFormBtn->setGeometry(QRect(790, 260, 75, 23)); + mResetInspectionFormBtn->setGeometry(QRect(790, 260, 121, 23)); + mResetInspectionFormBtn->setFont(font1); retranslateUi(CVisualInspectionPage);