From 4fcd958d5b708cbde8f47f95b685fac22172f2f9 Mon Sep 17 00:00:00 2001 From: JF Date: Wed, 1 May 2019 16:27:59 -0400 Subject: [PATCH] Dev --- CableTestBench.pro | 8 +- CableTestBench.pro.user | 2 +- Makefile | 2 +- Makefile.Debug | 42 ++++++-- Makefile.Release | 42 ++++++-- Sources/CableTestBench.cpp | 8 ++ Sources/CableTestBench.h | 4 + Sources/CableTestBenchDefs.h | 3 + Sources/CableTestPage.cpp | 31 ++++++ Sources/CableTestPage.h | 7 ++ Sources/CableTestPage.ui | 58 +++++++++-- Sources/MainPage.cpp | 7 +- Sources/MainPage.h | 4 +- Sources/MainWindow.cpp | 1 + Sources/Widgets/ConnectorClickZoneWidget.cpp | 11 -- Sources/Widgets/ConnectorSelectWidget.cpp | 3 +- .../ConnectorTestVisualizationWidget.cpp | 51 +++++++++ .../ConnectorTestVisualizationWidget.h | 30 ++++++ Sources/Widgets/ONOFFStatusWidget.cpp | 97 ++++++++++++++++++ Sources/Widgets/ONOFFStatusWidget.h | 45 ++++++++ images/done1.png | Bin 0 -> 17529 bytes images/done2.png | Bin 0 -> 58860 bytes images/todo.png | Bin 0 -> 6845 bytes object_script.CableTestBench.Debug | 4 + object_script.CableTestBench.Release | 4 + ui_CMainPage.h | 2 +- ui_CableTestPage.h | 34 ++++-- ui_VisualInspectionPage.h | 2 +- 28 files changed, 446 insertions(+), 56 deletions(-) create mode 100644 Sources/Widgets/ConnectorTestVisualizationWidget.cpp create mode 100644 Sources/Widgets/ConnectorTestVisualizationWidget.h create mode 100644 Sources/Widgets/ONOFFStatusWidget.cpp create mode 100644 Sources/Widgets/ONOFFStatusWidget.h create mode 100644 images/done1.png create mode 100644 images/done2.png create mode 100644 images/todo.png diff --git a/CableTestBench.pro b/CableTestBench.pro index 394d160..42d775e 100644 --- a/CableTestBench.pro +++ b/CableTestBench.pro @@ -23,7 +23,9 @@ SOURCES += \ Sources/VisualInspectionPage.cpp \ Sources/Widgets/ConnectorSelectWidget.cpp \ Sources/CableTestPage.cpp \ - Sources/Widgets/ConnectorClickZoneWidget.cpp + Sources/Widgets/ConnectorClickZoneWidget.cpp \ + Sources/Widgets/ONOFFStatusWidget.cpp \ + Sources/Widgets/ConnectorTestVisualizationWidget.cpp HEADERS += \ Sources/MainWindow.h \ @@ -34,7 +36,9 @@ HEADERS += \ Sources/Widgets/ConnectorSelectWidget.h \ Sources/CableTestPage.h \ Sources/Widgets/ConnectorClickZoneWidget.h \ - Sources/CableTestBenchDefs.h + Sources/CableTestBenchDefs.h \ + Sources/Widgets/ONOFFStatusWidget.h \ + Sources/Widgets/ConnectorTestVisualizationWidget.h FORMS += \ Sources/CMainPage.ui \ diff --git a/CableTestBench.pro.user b/CableTestBench.pro.user index 69b7920..ba9ee97 100644 --- a/CableTestBench.pro.user +++ b/CableTestBench.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/Makefile b/Makefile index 23afd6b..c24aaab 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Tue Apr 16 11:09:51 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 1 16:11:22 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 diff --git a/Makefile.Debug b/Makefile.Debug index 107dfd9..4cbfaa1 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 Apr 16 11:09:51 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 1 16:11:22 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -48,13 +48,17 @@ SOURCES = Sources\MainWindow.cpp \ Sources\VisualInspectionPage.cpp \ Sources\Widgets\ConnectorSelectWidget.cpp \ Sources\CableTestPage.cpp \ - Sources\Widgets\ConnectorClickZoneWidget.cpp debug\moc_MainWindow.cpp \ + Sources\Widgets\ConnectorClickZoneWidget.cpp \ + Sources\Widgets\ONOFFStatusWidget.cpp \ + Sources\Widgets\ConnectorTestVisualizationWidget.cpp debug\moc_MainWindow.cpp \ debug\moc_MainPage.cpp \ debug\moc_CableTestBench.cpp \ debug\moc_VisualInspectionPage.cpp \ debug\moc_ConnectorSelectWidget.cpp \ debug\moc_CableTestPage.cpp \ - debug\moc_ConnectorClickZoneWidget.cpp + debug\moc_ConnectorClickZoneWidget.cpp \ + debug\moc_ONOFFStatusWidget.cpp \ + debug\moc_ConnectorTestVisualizationWidget.cpp OBJECTS = debug/MainWindow.o \ debug/main.o \ debug/MainPage.o \ @@ -63,13 +67,17 @@ OBJECTS = debug/MainWindow.o \ debug/ConnectorSelectWidget.o \ debug/CableTestPage.o \ debug/ConnectorClickZoneWidget.o \ + debug/ONOFFStatusWidget.o \ + debug/ConnectorTestVisualizationWidget.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_ConnectorClickZoneWidget.o \ + debug/moc_ONOFFStatusWidget.o \ + debug/moc_ConnectorTestVisualizationWidget.o DIST = QMAKE_TARGET = CableTestBench DESTDIR = debug\ #avoid trailing-slash linebreak @@ -107,7 +115,7 @@ 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 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\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 + -$(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\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 distclean: clean -$(DEL_FILE) $(DESTDIR_TARGET) @@ -119,9 +127,9 @@ mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all -compiler_moc_header_make_all: debug/moc_MainWindow.cpp debug/moc_MainPage.cpp debug/moc_CableTestBench.cpp debug/moc_VisualInspectionPage.cpp debug/moc_ConnectorSelectWidget.cpp debug/moc_CableTestPage.cpp debug/moc_ConnectorClickZoneWidget.cpp +compiler_moc_header_make_all: debug/moc_MainWindow.cpp debug/moc_MainPage.cpp debug/moc_CableTestBench.cpp debug/moc_VisualInspectionPage.cpp debug/moc_ConnectorSelectWidget.cpp debug/moc_CableTestPage.cpp debug/moc_ConnectorClickZoneWidget.cpp debug/moc_ONOFFStatusWidget.cpp debug/moc_ConnectorTestVisualizationWidget.cpp compiler_moc_header_clean: - -$(DEL_FILE) debug\moc_MainWindow.cpp debug\moc_MainPage.cpp debug\moc_CableTestBench.cpp debug\moc_VisualInspectionPage.cpp debug\moc_ConnectorSelectWidget.cpp debug\moc_CableTestPage.cpp debug\moc_ConnectorClickZoneWidget.cpp + -$(DEL_FILE) debug\moc_MainWindow.cpp debug\moc_MainPage.cpp debug\moc_CableTestBench.cpp debug\moc_VisualInspectionPage.cpp debug\moc_ConnectorSelectWidget.cpp debug\moc_CableTestPage.cpp debug\moc_ConnectorClickZoneWidget.cpp debug\moc_ONOFFStatusWidget.cpp debug\moc_ConnectorTestVisualizationWidget.cpp debug/moc_MainWindow.cpp: Sources/MainPage.h \ Sources/VisualInspectionPage.h \ Sources/CableTestPage.h \ @@ -151,6 +159,13 @@ debug/moc_CableTestPage.cpp: Sources/CableTestPage.h debug/moc_ConnectorClickZoneWidget.cpp: Sources/Widgets/ConnectorClickZoneWidget.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorClickZoneWidget.h -o debug\moc_ConnectorClickZoneWidget.cpp +debug/moc_ONOFFStatusWidget.cpp: Sources/Widgets/ONOFFStatusWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ONOFFStatusWidget.h -o debug\moc_ONOFFStatusWidget.cpp + +debug/moc_ConnectorTestVisualizationWidget.cpp: Sources/Widgets/ONOFFStatusWidget.h \ + Sources/Widgets/ConnectorTestVisualizationWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorTestVisualizationWidget.h -o debug\moc_ConnectorTestVisualizationWidget.cpp + compiler_rcc_make_all: compiler_rcc_clean: compiler_image_collection_make_all: qmake_image_collection.cpp @@ -226,6 +241,13 @@ debug/CableTestPage.o: Sources/CableTestPage.cpp Sources/CableTestPage.h \ debug/ConnectorClickZoneWidget.o: Sources/Widgets/ConnectorClickZoneWidget.cpp Sources/Widgets/ConnectorClickZoneWidget.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\ConnectorClickZoneWidget.o Sources\Widgets\ConnectorClickZoneWidget.cpp +debug/ONOFFStatusWidget.o: Sources/Widgets/ONOFFStatusWidget.cpp Sources/Widgets/ONOFFStatusWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\ONOFFStatusWidget.o Sources\Widgets\ONOFFStatusWidget.cpp + +debug/ConnectorTestVisualizationWidget.o: Sources/Widgets/ConnectorTestVisualizationWidget.cpp Sources/Widgets/ConnectorTestVisualizationWidget.h \ + Sources/Widgets/ONOFFStatusWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\ConnectorTestVisualizationWidget.o Sources\Widgets\ConnectorTestVisualizationWidget.cpp + debug/moc_MainWindow.o: debug/moc_MainWindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_MainWindow.o debug\moc_MainWindow.cpp @@ -247,6 +269,12 @@ debug/moc_CableTestPage.o: debug/moc_CableTestPage.cpp debug/moc_ConnectorClickZoneWidget.o: debug/moc_ConnectorClickZoneWidget.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_ConnectorClickZoneWidget.o debug\moc_ConnectorClickZoneWidget.cpp +debug/moc_ONOFFStatusWidget.o: debug/moc_ONOFFStatusWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_ONOFFStatusWidget.o debug\moc_ONOFFStatusWidget.cpp + +debug/moc_ConnectorTestVisualizationWidget.o: debug/moc_ConnectorTestVisualizationWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_ConnectorTestVisualizationWidget.o debug\moc_ConnectorTestVisualizationWidget.cpp + ####### Install install: FORCE diff --git a/Makefile.Release b/Makefile.Release index 500d468..ec4b999 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 Apr 16 11:09:51 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 1 16:11:22 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -48,13 +48,17 @@ SOURCES = Sources\MainWindow.cpp \ Sources\VisualInspectionPage.cpp \ Sources\Widgets\ConnectorSelectWidget.cpp \ Sources\CableTestPage.cpp \ - Sources\Widgets\ConnectorClickZoneWidget.cpp release\moc_MainWindow.cpp \ + Sources\Widgets\ConnectorClickZoneWidget.cpp \ + Sources\Widgets\ONOFFStatusWidget.cpp \ + Sources\Widgets\ConnectorTestVisualizationWidget.cpp release\moc_MainWindow.cpp \ release\moc_MainPage.cpp \ release\moc_CableTestBench.cpp \ release\moc_VisualInspectionPage.cpp \ release\moc_ConnectorSelectWidget.cpp \ release\moc_CableTestPage.cpp \ - release\moc_ConnectorClickZoneWidget.cpp + release\moc_ConnectorClickZoneWidget.cpp \ + release\moc_ONOFFStatusWidget.cpp \ + release\moc_ConnectorTestVisualizationWidget.cpp OBJECTS = release/MainWindow.o \ release/main.o \ release/MainPage.o \ @@ -63,13 +67,17 @@ OBJECTS = release/MainWindow.o \ release/ConnectorSelectWidget.o \ release/CableTestPage.o \ release/ConnectorClickZoneWidget.o \ + release/ONOFFStatusWidget.o \ + release/ConnectorTestVisualizationWidget.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_ConnectorClickZoneWidget.o \ + release/moc_ONOFFStatusWidget.o \ + release/moc_ConnectorTestVisualizationWidget.o DIST = QMAKE_TARGET = CableTestBench DESTDIR = release\ #avoid trailing-slash linebreak @@ -107,7 +115,7 @@ 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 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\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 + -$(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\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 distclean: clean -$(DEL_FILE) $(DESTDIR_TARGET) @@ -119,9 +127,9 @@ mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all -compiler_moc_header_make_all: release/moc_MainWindow.cpp release/moc_MainPage.cpp release/moc_CableTestBench.cpp release/moc_VisualInspectionPage.cpp release/moc_ConnectorSelectWidget.cpp release/moc_CableTestPage.cpp release/moc_ConnectorClickZoneWidget.cpp +compiler_moc_header_make_all: release/moc_MainWindow.cpp release/moc_MainPage.cpp release/moc_CableTestBench.cpp release/moc_VisualInspectionPage.cpp release/moc_ConnectorSelectWidget.cpp release/moc_CableTestPage.cpp release/moc_ConnectorClickZoneWidget.cpp release/moc_ONOFFStatusWidget.cpp release/moc_ConnectorTestVisualizationWidget.cpp compiler_moc_header_clean: - -$(DEL_FILE) release\moc_MainWindow.cpp release\moc_MainPage.cpp release\moc_CableTestBench.cpp release\moc_VisualInspectionPage.cpp release\moc_ConnectorSelectWidget.cpp release\moc_CableTestPage.cpp release\moc_ConnectorClickZoneWidget.cpp + -$(DEL_FILE) release\moc_MainWindow.cpp release\moc_MainPage.cpp release\moc_CableTestBench.cpp release\moc_VisualInspectionPage.cpp release\moc_ConnectorSelectWidget.cpp release\moc_CableTestPage.cpp release\moc_ConnectorClickZoneWidget.cpp release\moc_ONOFFStatusWidget.cpp release\moc_ConnectorTestVisualizationWidget.cpp release/moc_MainWindow.cpp: Sources/MainPage.h \ Sources/VisualInspectionPage.h \ Sources/CableTestPage.h \ @@ -151,6 +159,13 @@ release/moc_CableTestPage.cpp: Sources/CableTestPage.h release/moc_ConnectorClickZoneWidget.cpp: Sources/Widgets/ConnectorClickZoneWidget.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorClickZoneWidget.h -o release\moc_ConnectorClickZoneWidget.cpp +release/moc_ONOFFStatusWidget.cpp: Sources/Widgets/ONOFFStatusWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ONOFFStatusWidget.h -o release\moc_ONOFFStatusWidget.cpp + +release/moc_ConnectorTestVisualizationWidget.cpp: Sources/Widgets/ONOFFStatusWidget.h \ + Sources/Widgets/ConnectorTestVisualizationWidget.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorTestVisualizationWidget.h -o release\moc_ConnectorTestVisualizationWidget.cpp + compiler_rcc_make_all: compiler_rcc_clean: compiler_image_collection_make_all: qmake_image_collection.cpp @@ -226,6 +241,13 @@ release/CableTestPage.o: Sources/CableTestPage.cpp Sources/CableTestPage.h \ release/ConnectorClickZoneWidget.o: Sources/Widgets/ConnectorClickZoneWidget.cpp Sources/Widgets/ConnectorClickZoneWidget.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\ConnectorClickZoneWidget.o Sources\Widgets\ConnectorClickZoneWidget.cpp +release/ONOFFStatusWidget.o: Sources/Widgets/ONOFFStatusWidget.cpp Sources/Widgets/ONOFFStatusWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\ONOFFStatusWidget.o Sources\Widgets\ONOFFStatusWidget.cpp + +release/ConnectorTestVisualizationWidget.o: Sources/Widgets/ConnectorTestVisualizationWidget.cpp Sources/Widgets/ConnectorTestVisualizationWidget.h \ + Sources/Widgets/ONOFFStatusWidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\ConnectorTestVisualizationWidget.o Sources\Widgets\ConnectorTestVisualizationWidget.cpp + release/moc_MainWindow.o: release/moc_MainWindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_MainWindow.o release\moc_MainWindow.cpp @@ -247,6 +269,12 @@ release/moc_CableTestPage.o: release/moc_CableTestPage.cpp release/moc_ConnectorClickZoneWidget.o: release/moc_ConnectorClickZoneWidget.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_ConnectorClickZoneWidget.o release\moc_ConnectorClickZoneWidget.cpp +release/moc_ONOFFStatusWidget.o: release/moc_ONOFFStatusWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_ONOFFStatusWidget.o release\moc_ONOFFStatusWidget.cpp + +release/moc_ConnectorTestVisualizationWidget.o: release/moc_ConnectorTestVisualizationWidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_ConnectorTestVisualizationWidget.o release\moc_ConnectorTestVisualizationWidget.cpp + ####### Install install: FORCE diff --git a/Sources/CableTestBench.cpp b/Sources/CableTestBench.cpp index 9e66d06..8049893 100644 --- a/Sources/CableTestBench.cpp +++ b/Sources/CableTestBench.cpp @@ -20,6 +20,7 @@ int CCableTestBench::Start() mMainPageHandle = w->mMainPage; mVisualInspPageHandle = w->mVisualInspPage; + mCableTestPageHandle = w->mCableTestPage; return 1; } @@ -52,3 +53,10 @@ quint16 CCableTestBench::DecToBCDWord(const quint16 word) return out; } + +int CCableTestBench::ExecVisualInspectionRequest() +{ + qDebug("Exec Visual Inspection clicked"); + + mCableTestPageHandle->SetVisualInspectionDone(true); +} diff --git a/Sources/CableTestBench.h b/Sources/CableTestBench.h index 09c703f..02f94bf 100644 --- a/Sources/CableTestBench.h +++ b/Sources/CableTestBench.h @@ -7,6 +7,7 @@ class CMainPage; class CVisualInspectionPage; +class CCableTestPage; class CCableTestBench : public QObject { @@ -20,6 +21,9 @@ public: MainWindow *w; CMainPage *mMainPageHandle; CVisualInspectionPage *mVisualInspPageHandle; + CCableTestPage *mCableTestPageHandle; + + int ExecVisualInspectionRequest(); private: diff --git a/Sources/CableTestBenchDefs.h b/Sources/CableTestBenchDefs.h index cac92cb..b524542 100644 --- a/Sources/CableTestBenchDefs.h +++ b/Sources/CableTestBenchDefs.h @@ -4,6 +4,8 @@ class CConnectorDefs { +#define MAX_CONNECTOR_PIN_COUNT 108 + public: enum eConnectorType { @@ -23,6 +25,7 @@ public: }; + }; diff --git a/Sources/CableTestPage.cpp b/Sources/CableTestPage.cpp index 19b473c..60349f6 100644 --- a/Sources/CableTestPage.cpp +++ b/Sources/CableTestPage.cpp @@ -1,17 +1,48 @@ #include "CableTestPage.h" #include "ui_CableTestPage.h" #include "CableTestBench.h" +#include CCableTestPage::CCableTestPage(QWidget *parent) : QWidget(parent), ui(new Ui::CCableTestPage) { + + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + ui->setupUi(this); mProgramHandle = 0; + mInspectionNotDonePixmap = QPixmap("./images/todo.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height()); + mInspectionDonePixmap = QPixmap("./images/done1.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height()); + ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap); + + connect(ui->mExecInspVisuelleBtn,SIGNAL(clicked()),this,SLOT(InspVisuelleBtnClicked())); + ui->mConnectorTestVisualisationWidget->SetConnectorPinCount(108); } CCableTestPage::~CCableTestPage() { delete ui; } + +void CCableTestPage::InspVisuelleBtnClicked() +{ + mProgramHandle->ExecVisualInspectionRequest(); + +} + +int CCableTestPage::SetVisualInspectionDone(bool Done) +{ + if(Done) + { + ui->mInspectionDoneIcon->setPixmap(mInspectionDonePixmap); + ui->mExecInspVisuelleBtn->setText(QString("Réviser Inspection").toUtf8()); + } + else + { + ui->mInspectionDoneIcon->setPixmap(mInspectionDonePixmap); + ui->mExecInspVisuelleBtn->setText("Effectuer Inspection"); + } + return RET_OK; +} diff --git a/Sources/CableTestPage.h b/Sources/CableTestPage.h index 37bc751..1f907b4 100644 --- a/Sources/CableTestPage.h +++ b/Sources/CableTestPage.h @@ -18,9 +18,16 @@ public: ~CCableTestPage(); CCableTestBench *mProgramHandle; + + int SetVisualInspectionDone(bool Done = true); private: Ui::CCableTestPage *ui; + + QPixmap mInspectionDonePixmap, mInspectionNotDonePixmap; + +public slots: + void InspVisuelleBtnClicked(); }; #endif // CABLETESTPAGE_H diff --git a/Sources/CableTestPage.ui b/Sources/CableTestPage.ui index a2dc786..818b7a8 100644 --- a/Sources/CableTestPage.ui +++ b/Sources/CableTestPage.ui @@ -186,8 +186,8 @@ - 70 - 230 + 60 + 200 271 20 @@ -204,9 +204,9 @@ - 60 - 250 - 391 + 50 + 220 + 291 121 @@ -219,7 +219,7 @@ 3 - + 10 @@ -229,16 +229,58 @@ - Exécuter Inspection + Effectuer Inspection + + + + 160 + 20 + 101 + 91 + + + + TextLabel + + + + + + + 60 + 410 + 741 + 231 + + + + + + + 57 + 380 + 751 + 20 + + + + Qt::Horizontal + CConnectorSelectWidget QWidget -
connectorselectwidget.h
+
connectorselectwidget.h
+ 1 +
+ + CConnectorTestVisualizationWidget + QWidget +
connectortestvisualizationwidget.h
1
diff --git a/Sources/MainPage.cpp b/Sources/MainPage.cpp index b0d300f..534d41c 100644 --- a/Sources/MainPage.cpp +++ b/Sources/MainPage.cpp @@ -14,7 +14,7 @@ CMainPage::CMainPage(QWidget *parent) : // ui->mConnectorsImgLbl->setPixmap(QPixmap("./images/connecteurs.png").scaled(ui->mConnectorsImgLbl->size())); - mConnectorSelWidget = new CConnectorSelectWidget(); + // mConnectorSelWidget = new CConnectorSelectWidget(); @@ -41,10 +41,7 @@ CMainPage::~CMainPage() delete ui; } -void CMainPage::InspVisuelleBtnClicked() -{ - qDebug("clicked"); -} + int CMainPage::SetTestPageWidget(QWidget *PageHandle) { diff --git a/Sources/MainPage.h b/Sources/MainPage.h index 07688f4..6f0f337 100644 --- a/Sources/MainPage.h +++ b/Sources/MainPage.h @@ -24,7 +24,7 @@ public: QPixmap mLedONPixmap, mLedOFFPixmap; QLabel *test; - CConnectorSelectWidget *mConnectorSelWidget; + // CConnectorSelectWidget *mConnectorSelWidget; int SetTestPageWidget(QWidget *PageHandle); @@ -33,7 +33,7 @@ private: public slots: - void InspVisuelleBtnClicked(); + }; #endif // CMAINPAGE_H diff --git a/Sources/MainWindow.cpp b/Sources/MainWindow.cpp index 9404af7..5ad505b 100644 --- a/Sources/MainWindow.cpp +++ b/Sources/MainWindow.cpp @@ -15,6 +15,7 @@ MainWindow::MainWindow(QWidget *parent,CCableTestBench* ProgramHandle) mMainPage->mProgramHandle = ProgramHandle; mVisualInspPage->mProgramHandle = ProgramHandle; + mCableTestPage->mProgramHandle = ProgramHandle; // mMainPage->SetTestPageWidget(mCableTestPage); diff --git a/Sources/Widgets/ConnectorClickZoneWidget.cpp b/Sources/Widgets/ConnectorClickZoneWidget.cpp index 5a788b0..61a0275 100644 --- a/Sources/Widgets/ConnectorClickZoneWidget.cpp +++ b/Sources/Widgets/ConnectorClickZoneWidget.cpp @@ -33,17 +33,6 @@ void CConnectorClickZoneWidget::paintEvent(QPaintEvent *event) void CConnectorClickZoneWidget::mouseReleaseEvent(QMouseEvent *event) { - -// if(mConSelected == false) -// { -// mConSelected = true; -// } -// else if(mConSelected == true) -// { -// mConSelected = false; -// } - -// repaint(); emit ConnectorZoneClicked(this); } diff --git a/Sources/Widgets/ConnectorSelectWidget.cpp b/Sources/Widgets/ConnectorSelectWidget.cpp index 532244d..0673c02 100644 --- a/Sources/Widgets/ConnectorSelectWidget.cpp +++ b/Sources/Widgets/ConnectorSelectWidget.cpp @@ -137,7 +137,7 @@ void CConnectorSelectWidget::InputConnectorZoneClicked(CConnectorClickZoneWidget } else { - + ClearAllConnectorsSelections(); CConnectorClickZoneWidget *OutputSelZone = 0; switch(ConClickZone->GetConnectorType()) { @@ -181,6 +181,7 @@ void CConnectorSelectWidget::InputConnectorZoneClicked(CConnectorClickZoneWidget OutputSelZone->SelectConnector(true,Qt::darkGreen); } ConClickZone->SelectConnector(); + mCurSelConnector = ConClickZone->GetConnectorType(); } } diff --git a/Sources/Widgets/ConnectorTestVisualizationWidget.cpp b/Sources/Widgets/ConnectorTestVisualizationWidget.cpp new file mode 100644 index 0000000..063c182 --- /dev/null +++ b/Sources/Widgets/ConnectorTestVisualizationWidget.cpp @@ -0,0 +1,51 @@ +#include "ConnectorTestVisualizationWidget.h" +#include "GlobalDefine.h" + +CConnectorTestVisualizationWidget::CConnectorTestVisualizationWidget(QWidget *parent) : + QWidget(parent) +{ +} + +int CConnectorTestVisualizationWidget::SetConnectorPinCount(int Count) +{ + if(Count <= 0 || Count > MAX_CONNECTOR_PIN_COUNT) + { + return RET_ERROR; + } + + ClearConnectorsLists(); + + CONOFFStatusWidget *NewWidget; + for(int i = 0; i < Count; i++) + { + QString pin = QString("pin %1").arg(i); + NewWidget = new CONOFFStatusWidget(CONOFFStatusWidget::ON_OFF_LED_COLOR_GREEN,this,pin); + NewWidget->resize(ON_OFF_WIDGET_SIZE,ON_OFF_WIDGET_SIZE); + NewWidget->move((i+1)*(ON_OFF_WIDGET_SIZE+5),((i/10)*(ON_OFF_WIDGET_SIZE+5))); + mOutputCtorPinsWidgetsList.append(NewWidget); +// NewWidget = new CONOFFStatusWidget(CONOFFStatusWidget::ON_OFF_LED_COLOR_GREEN,this,pin); +// NewWidget->resize(ON_OFF_WIDGET_SIZE,ON_OFF_WIDGET_SIZE); +// NewWidget->move((i+1)*(ON_OFF_WIDGET_SIZE+5),((i%10)*(ON_OFF_WIDGET_SIZE+5))); +// mInputCtorPinsWidgetsList.append(NewWidget); + } + + repaint(); + return RET_OK; +} + +int CConnectorTestVisualizationWidget::ClearConnectorsLists() +{ + for(int i = 0; i < mOutputCtorPinsWidgetsList.size(); i++) + { + delete mOutputCtorPinsWidgetsList.at(i); + } + mOutputCtorPinsWidgetsList.clear(); + + for(int i = 0; i < mInputCtorPinsWidgetsList.size(); i++) + { + delete mInputCtorPinsWidgetsList.at(i); + } + mInputCtorPinsWidgetsList.clear(); + + return RET_OK; +} diff --git a/Sources/Widgets/ConnectorTestVisualizationWidget.h b/Sources/Widgets/ConnectorTestVisualizationWidget.h new file mode 100644 index 0000000..e3d0eb4 --- /dev/null +++ b/Sources/Widgets/ConnectorTestVisualizationWidget.h @@ -0,0 +1,30 @@ +#ifndef CONNECTORTESTVISUALIZATIONWIDGET_H +#define CONNECTORTESTVISUALIZATIONWIDGET_H + +#include +#include "ONOFFStatusWidget.h" +#include +#include "CableTestBenchDefs.h" + +#define ON_OFF_WIDGET_SIZE 30 +class CConnectorTestVisualizationWidget : public QWidget +{ + Q_OBJECT +public: + explicit CConnectorTestVisualizationWidget(QWidget *parent = 0); + + QList mInputCtorPinsWidgetsList; + QList mOutputCtorPinsWidgetsList; + + int SetConnectorPinCount(int count); + + int ClearConnectorsLists(); + +signals: + +public slots: + + +}; + +#endif // CONNECTORTESTVISUALIZATIONWIDGET_H diff --git a/Sources/Widgets/ONOFFStatusWidget.cpp b/Sources/Widgets/ONOFFStatusWidget.cpp new file mode 100644 index 0000000..b73ff44 --- /dev/null +++ b/Sources/Widgets/ONOFFStatusWidget.cpp @@ -0,0 +1,97 @@ +/******************************************************************************* +* * +* Société de Transports de Montréal. * +* 2013 * +* * +* Projet Zones Tests * +* * +* * +* * +*******************************************************************************/ +/* + Description: + . + +*/ + + +#include "ONOFFStatusWidget.h" +#include + +CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent, QString Label) +{ + setParent(Parent); + if(Color == ON_OFF_LED_COLOR_GREEN) + { + mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(10,10); + mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(10,10); + } + else + { + mLedOffPixmap = QPixmap("./Images/red-led-off-md.png").scaled(10,10); + mLedOnPixmap = QPixmap("./Images/red-led-on-md.png").scaled(10,10); + } + + mLabel = new QLabel(Label,this); + mLabel->move(0,15); +} + +CONOFFStatusWidget::~CONOFFStatusWidget() +{ +} + +void CONOFFStatusWidget::SetON() +{ + IsOn = true; +} + +void CONOFFStatusWidget::SetOFF() +{ + IsOn = true; +} + +void CONOFFStatusWidget::Toggle() +{ + if(IsOn) + { + SetOFF(); + } + else + { + SetON(); + } +} + +void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent) +{ + QPainter painter(this); + + if(IsOn) + { + painter.drawPixmap(0,0,mLedOnPixmap); + } + else + { + painter.drawPixmap(0,0,mLedOnPixmap); + } +} + +void CONOFFStatusWidget::resizeEvent(QResizeEvent *event) +{ + int width = geometry().width(); + int height; + if(mLabel->text().isEmpty()) + { + height = geometry().height(); + } + else + { + height = geometry().height() - mLabel->fontMetrics().height(); + } + mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(width,height); + mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(width,height); + + int LabelWidth = mLabel->fontMetrics().width(mLabel->text()); + mLabel->move((width/2)-(LabelWidth/2),height); + +} diff --git a/Sources/Widgets/ONOFFStatusWidget.h b/Sources/Widgets/ONOFFStatusWidget.h new file mode 100644 index 0000000..c5e5784 --- /dev/null +++ b/Sources/Widgets/ONOFFStatusWidget.h @@ -0,0 +1,45 @@ +#ifndef ONOFFSTATUSWIDGET_H +#define ONOFFSTATUSWIDGET_H + +#include +#include +#include +#include + +class CONOFFStatusWidget : public QWidget +{ + + + Q_OBJECT +public: + + enum eONOFFLedColor + { + ON_OFF_LED_COLOR_GREEN, + ON_OFF_LED_COLOR_RED + }; + + CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent = NULL,QString Label = QString()); + ~CONOFFStatusWidget(); + void paintEvent(QPaintEvent *PaintEvent); + void resizeEvent(QResizeEvent *); + + QLabel *mLabel; + QPixmap mLedOnPixmap,mLedOffPixmap; + + bool IsOn; + + void SetON(); + void SetOFF(); + void Toggle(); + + + + +public slots: + + + +}; + +#endif // ONOFFSTATUSWIDGET_H diff --git a/images/done1.png b/images/done1.png new file mode 100644 index 0000000000000000000000000000000000000000..71941fc87442151b2515f33185bb8c197ff5b6ed GIT binary patch literal 17529 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 Yn7QUvPL@>gPl`Z#T85fs>UI(T2jFy!sQ>@~ literal 0 HcmV?d00001 diff --git a/images/done2.png b/images/done2.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ffec942a4ec3d818f2fafdd1c62fcb7a309bbc GIT binary patch literal 58860 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 literal 0 HcmV?d00001 diff --git a/images/todo.png b/images/todo.png new file mode 100644 index 0000000000000000000000000000000000000000..4be5dc1156b3357273199d05b03792a529b8381e GIT binary patch literal 6845 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 #include #include -#include +#include "connectorselectwidget.h" +#include "connectortestvisualizationwidget.h" QT_BEGIN_NAMESPACE @@ -44,7 +45,10 @@ public: QLabel *mCableConfigLabel; QLabel *mInspVisuelleLabel; QFrame *mInspVisuelleFrame; - QPushButton *pushButton; + QPushButton *mExecInspVisuelleBtn; + QLabel *mInspectionDoneIcon; + CConnectorTestVisualizationWidget *mConnectorTestVisualisationWidget; + QFrame *line; void setupUi(QWidget *CCableTestPage) { @@ -118,17 +122,28 @@ public: mCableConfigLabel->setFont(font); mInspVisuelleLabel = new QLabel(CCableTestPage); mInspVisuelleLabel->setObjectName(QString::fromUtf8("mInspVisuelleLabel")); - mInspVisuelleLabel->setGeometry(QRect(70, 230, 271, 20)); + mInspVisuelleLabel->setGeometry(QRect(60, 200, 271, 20)); mInspVisuelleLabel->setFont(font); mInspVisuelleFrame = new QFrame(CCableTestPage); mInspVisuelleFrame->setObjectName(QString::fromUtf8("mInspVisuelleFrame")); - mInspVisuelleFrame->setGeometry(QRect(60, 250, 391, 121)); + mInspVisuelleFrame->setGeometry(QRect(50, 220, 291, 121)); mInspVisuelleFrame->setFrameShape(QFrame::StyledPanel); mInspVisuelleFrame->setFrameShadow(QFrame::Plain); mInspVisuelleFrame->setLineWidth(3); - pushButton = new QPushButton(mInspVisuelleFrame); - pushButton->setObjectName(QString::fromUtf8("pushButton")); - pushButton->setGeometry(QRect(10, 50, 121, 23)); + mExecInspVisuelleBtn = new QPushButton(mInspVisuelleFrame); + mExecInspVisuelleBtn->setObjectName(QString::fromUtf8("mExecInspVisuelleBtn")); + mExecInspVisuelleBtn->setGeometry(QRect(10, 50, 121, 23)); + mInspectionDoneIcon = new QLabel(mInspVisuelleFrame); + mInspectionDoneIcon->setObjectName(QString::fromUtf8("mInspectionDoneIcon")); + mInspectionDoneIcon->setGeometry(QRect(160, 20, 101, 91)); + mConnectorTestVisualisationWidget = new CConnectorTestVisualizationWidget(CCableTestPage); + mConnectorTestVisualisationWidget->setObjectName(QString::fromUtf8("mConnectorTestVisualisationWidget")); + mConnectorTestVisualisationWidget->setGeometry(QRect(60, 410, 741, 231)); + line = new QFrame(CCableTestPage); + line->setObjectName(QString::fromUtf8("line")); + line->setGeometry(QRect(57, 380, 751, 20)); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Sunken); retranslateUi(CCableTestPage); @@ -160,7 +175,8 @@ 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)); - pushButton->setText(QApplication::translate("CCableTestPage", "Ex\303\251cuter Inspection", 0, QApplication::UnicodeUTF8)); + mExecInspVisuelleBtn->setText(QApplication::translate("CCableTestPage", "Effectuer Inspection", 0, QApplication::UnicodeUTF8)); + mInspectionDoneIcon->setText(QApplication::translate("CCableTestPage", "TextLabel", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; diff --git a/ui_VisualInspectionPage.h b/ui_VisualInspectionPage.h index 9fcc74b..fc23469 100644 --- a/ui_VisualInspectionPage.h +++ b/ui_VisualInspectionPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'VisualInspectionPage.ui' ** -** Created: Tue Apr 16 11:09:53 2019 +** Created: Wed May 1 16:11:28 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file!