From cfa6891b5b18ea69bbc9bcca37492d0e06577826 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 1 Feb 2008 08:27:09 +0000 Subject: [PATCH] fix for multicolor LED, still not solved: LED in list view not working --- src/multicolorled.cpp | 41 ++++++++++++++++++----------------------- src/multicolorled.h | 23 ++++++++--------------- 2 files changed, 26 insertions(+), 38 deletions(-) diff --git a/src/multicolorled.cpp b/src/multicolorled.cpp index 9f177c46..dec07a28 100755 --- a/src/multicolorled.cpp +++ b/src/multicolorled.cpp @@ -30,7 +30,7 @@ /* Implementation *************************************************************/ -CMultiColorLEDbase::CMultiColorLEDbase ( QWidget* parent, Qt::WindowFlags f ) +CMultiColorLED::CMultiColorLED ( QWidget* parent, Qt::WindowFlags f ) : QLabel ( parent, f ), BitmCubeGreen ( LED_WIDTH_HEIGHT_SIZE_PIXEL, LED_WIDTH_HEIGHT_SIZE_PIXEL ), BitmCubeRed ( LED_WIDTH_HEIGHT_SIZE_PIXEL, LED_WIDTH_HEIGHT_SIZE_PIXEL ), @@ -46,8 +46,13 @@ CMultiColorLEDbase::CMultiColorLEDbase ( QWidget* parent, Qt::WindowFlags f ) // init color flags Reset(); + // set modified style of label + setFrameShape ( QFrame::Panel ); + setFrameShadow ( QFrame::Sunken ); + setIndent ( 0 ); + // set init bitmap - SetPixmap ( BitmCubeGrey ); + setPixmap ( BitmCubeGrey ); eColorFlag = RL_GREY; // init update time @@ -62,7 +67,7 @@ CMultiColorLEDbase::CMultiColorLEDbase ( QWidget* parent, Qt::WindowFlags f ) this, SLOT ( OnTimerYellowLight() ) ); } -void CMultiColorLEDbase::Reset() +void CMultiColorLED::Reset() { // reset color flags bFlagRedLi = false; @@ -72,25 +77,25 @@ void CMultiColorLEDbase::Reset() UpdateColor(); } -void CMultiColorLEDbase::OnTimerRedLight() +void CMultiColorLED::OnTimerRedLight() { bFlagRedLi = false; UpdateColor(); } -void CMultiColorLEDbase::OnTimerGreenLight() +void CMultiColorLED::OnTimerGreenLight() { bFlagGreenLi = false; UpdateColor(); } -void CMultiColorLEDbase::OnTimerYellowLight() +void CMultiColorLED::OnTimerYellowLight() { bFlagYellowLi = false; UpdateColor(); } -void CMultiColorLEDbase::UpdateColor() +void CMultiColorLED::UpdateColor() { /* Red light has highest priority, then comes yellow and at the end, we decide to set green light. Allways check the current color of the @@ -99,7 +104,7 @@ void CMultiColorLEDbase::UpdateColor() { if ( eColorFlag != RL_RED ) { - SetPixmap ( BitmCubeRed ); + setPixmap ( BitmCubeRed ); eColorFlag = RL_RED; } return; @@ -109,7 +114,7 @@ void CMultiColorLEDbase::UpdateColor() { if ( eColorFlag != RL_YELLOW ) { - SetPixmap ( BitmCubeYellow ); + setPixmap ( BitmCubeYellow ); eColorFlag = RL_YELLOW; } return; @@ -119,7 +124,7 @@ void CMultiColorLEDbase::UpdateColor() { if ( eColorFlag != RL_GREEN ) { - SetPixmap ( BitmCubeGreen ); + setPixmap ( BitmCubeGreen ); eColorFlag = RL_GREEN; } return; @@ -128,12 +133,12 @@ void CMultiColorLEDbase::UpdateColor() // if no color is active, set control to grey light if ( eColorFlag != RL_GREY ) { - SetPixmap ( BitmCubeGrey ); + setPixmap ( BitmCubeGrey ); eColorFlag = RL_GREY; } } -void CMultiColorLEDbase::SetLight ( const int iNewStatus ) +void CMultiColorLED::SetLight ( const int iNewStatus ) { switch ( iNewStatus ) { @@ -159,7 +164,7 @@ void CMultiColorLEDbase::SetLight ( const int iNewStatus ) UpdateColor(); } -void CMultiColorLEDbase::SetUpdateTime ( const int iNUTi ) +void CMultiColorLED::SetUpdateTime ( const int iNUTi ) { // avoid too short intervals if ( iNUTi < MIN_TIME_FOR_RED_LIGHT ) @@ -171,13 +176,3 @@ void CMultiColorLEDbase::SetUpdateTime ( const int iNUTi ) iUpdateTime = iNUTi; } } - - -CMultiColorLED::CMultiColorLED ( QWidget* parent, Qt::WindowFlags f ) - : CMultiColorLEDbase ( parent, f ) -{ - // set modified style - setFrameShape ( QFrame::Panel ); - setFrameShadow ( QFrame::Sunken ); - setIndent ( 0 ); -} diff --git a/src/multicolorled.h b/src/multicolorled.h index e927c28a..7cf840e2 100755 --- a/src/multicolorled.h +++ b/src/multicolorled.h @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) 2004-2006 + * Copyright (c) 2004-2008 * * Author(s): * Volker Fischer @@ -49,12 +49,12 @@ /* Classes ********************************************************************/ -class CMultiColorLEDbase : public QLabel +class CMultiColorLED : public QLabel { Q_OBJECT public: - CMultiColorLEDbase ( QWidget* parent = 0, Qt::WindowFlags f = 0 ); + CMultiColorLED ( QWidget* parent = 0, Qt::WindowFlags f = 0 ); void Reset(); void SetUpdateTime ( const int iNUTi ); @@ -64,7 +64,6 @@ protected: enum ELightColor { RL_GREY, RL_RED, RL_GREEN, RL_YELLOW }; ELightColor eColorFlag; - virtual void SetPixmap ( QPixmap& NewBitmap ) {} // must be implemented in derived class void UpdateColor(); QPixmap BitmCubeGreen; @@ -89,17 +88,11 @@ protected slots: }; -class CMultiColorLED : public CMultiColorLEDbase -{ -public: - CMultiColorLED ( QWidget* parent = 0, Qt::WindowFlags f = 0 ); - -protected: - virtual void SetPixmap ( QPixmap& NewBitmap ) { setPixmap ( NewBitmap ); } -}; -class CMultColLEDListViewItem : public CMultiColorLEDbase +// TODO list view item LED does not work anymore + +class CMultColLEDListViewItem : public CMultiColorLED { public: CMultColLEDListViewItem ( const int iNewCol ) : iColumn ( iNewCol ), @@ -119,8 +112,8 @@ protected: } } - QTreeWidgetItem* pListViewItem; - int iColumn; + QTreeWidgetItem* pListViewItem; + int iColumn; };