diff --git a/Sources/AvReceiver/AvReceiverGui.cpp b/Sources/AvReceiver/AvReceiverGui.cpp index f1a2d96..3a2fc1e 100644 --- a/Sources/AvReceiver/AvReceiverGui.cpp +++ b/Sources/AvReceiver/AvReceiverGui.cpp @@ -8,6 +8,10 @@ CAvReceiverGui::CAvReceiverGui(QWidget *parent) : ui(new Ui::CAvReceiverGui) { ui->setupUi(this); + mVolumeBarMovementTimer = new QTimer(); + mVolumeBarMovementTimer->setInterval(500); + mVolumeBarMovementTimer->setSingleShot(true); + connect(mVolumeBarMovementTimer,SIGNAL(timeout()),this,SLOT(VolumeBarMovementTimerExpired())); connect(ui->mSpkBCheckBox,SIGNAL(clicked(bool)),this,SLOT(SpeakerBRadioClicked(bool))); connect(ui->mSpkACheckBox,SIGNAL(clicked(bool)),this,SLOT(SpeakerARadioClicked(bool))); @@ -15,13 +19,14 @@ CAvReceiverGui::CAvReceiverGui(QWidget *parent) : connect(ui->MainZoneScene2Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene2BtnClicked(bool))); connect(ui->MainZoneScene3Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene3BtnClicked(bool))); connect(ui->MainZoneScene4Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene4BtnClicked(bool))); - connect(ui->mMainZoneVolumeSldBar,SIGNAL(sliderMoved(int)),this,SLOT(MainZoneVolumeSetChanged())); - connect(ui->mZone2VolumeSldBar,SIGNAL(sliderMoved(int)),this,SLOT(Zone2VolumeSetChanged())); + connect(ui->mMainZoneVolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(MainZoneVolumeSetChanged(int))); + connect(ui->mZone2VolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(Zone2VolumeSetChanged(int))); } CAvReceiverGui::~CAvReceiverGui() { delete ui; + delete mVolumeBarMovementTimer; } void CAvReceiverGui::SpeakerBRadioClicked(bool checked) @@ -85,8 +90,11 @@ int CAvReceiverGui::UpdateReceiverStatus(CAvReceiverMainStatus Status, CAvReceiv ui->mRcvrStatusLabel->setText(StatusText); - if(ui->mMainZoneVolumeSldBar->isSliderDown() == false) + if(/*ui->mMainZoneVolumeSldBar->isSliderDown() == false && */mVolumeBarMovementTimer->isActive() == false) + { ui->mMainZoneVolumeSldBar->setValue(ConvertVolumeToBarPosition(Status.mMainVolume)); + ui->mMainZoneSliderValueLbl->setText(""); + } @@ -139,8 +147,11 @@ int CAvReceiverGui::UpdateReceiverStatus(CAvReceiverMainStatus Status, CAvReceiv ui->mZone2StatusLabel->setText(StatusText); - if(ui->mZone2VolumeSldBar->isSliderDown() == false) + if(/*ui->mZone2VolumeSldBar->isSliderDown() == false && */mVolumeBarMovementTimer->isActive() == false) + { ui->mZone2VolumeSldBar->setValue(ConvertVolumeToBarPosition(Zone2Status.mMainVolume)); + ui->mZone2SliderValueLbl->setText(""); + } return RET_OK; } @@ -179,19 +190,28 @@ float CAvReceiverGui::ConvertBarPositionToVolume(int position) return Volume; } -void CAvReceiverGui::MainZoneVolumeSetChanged() +void CAvReceiverGui::MainZoneVolumeSetChanged(int value) { int BarPosition = ui->mMainZoneVolumeSldBar->value(); float Volume = ConvertBarPositionToVolume(BarPosition); + ui->mMainZoneSliderValueLbl->setText(QString("%1").arg(Volume)); mProgramHandle->MainZoneVolumeChanged(Volume); + mVolumeBarMovementTimer->start(); } -void CAvReceiverGui::Zone2VolumeSetChanged() +void CAvReceiverGui::Zone2VolumeSetChanged(int value) { int BarPosition = ui->mZone2VolumeSldBar->value(); float Volume = ConvertBarPositionToVolume(BarPosition); - + ui->mZone2SliderValueLbl->setText(QString("%1").arg(Volume)); mProgramHandle->Zone2VolumeChanged(Volume); + mVolumeBarMovementTimer->start(); + +} + +void CAvReceiverGui::VolumeBarMovementTimerExpired() +{ + } diff --git a/Sources/AvReceiver/AvReceiverGui.h b/Sources/AvReceiver/AvReceiverGui.h index 3729679..24fba2f 100644 --- a/Sources/AvReceiver/AvReceiverGui.h +++ b/Sources/AvReceiver/AvReceiverGui.h @@ -4,6 +4,7 @@ #include class CAvReceiver; #include "AvReceiverData.h" +#include namespace Ui { class CAvReceiverGui; @@ -22,6 +23,7 @@ public: int UpdateReceiverStatus(CAvReceiverMainStatus Status, CAvReceiverMainStatus Zone2Status); int ConvertVolumeToBarPosition(float Volume); float ConvertBarPositionToVolume(int position); + QTimer *mVolumeBarMovementTimer; private: Ui::CAvReceiverGui *ui; @@ -33,8 +35,9 @@ public slots: void MainZoneScene2BtnClicked(bool); void MainZoneScene3BtnClicked(bool); void MainZoneScene4BtnClicked(bool); - void MainZoneVolumeSetChanged(); - void Zone2VolumeSetChanged(); + void MainZoneVolumeSetChanged(int); + void Zone2VolumeSetChanged(int); + void VolumeBarMovementTimerExpired(); }; #endif // AVRECEIVERGUI_H diff --git a/Sources/AvReceiver/AvReceiverGui.ui b/Sources/AvReceiver/AvReceiverGui.ui index 551b9b8..4b1bfc5 100644 --- a/Sources/AvReceiver/AvReceiverGui.ui +++ b/Sources/AvReceiver/AvReceiverGui.ui @@ -169,9 +169,9 @@ 500 - 110 - 16 - 160 + 119 + 20 + 151 @@ -181,6 +181,38 @@ Qt::Vertical + + + + 180 + 100 + 47 + 14 + + + + TextLabel + + + Qt::AlignCenter + + + + + + 490 + 100 + 51 + 16 + + + + TextLabel + + + Qt::AlignCenter + + diff --git a/SystemGui.pro.user.5a351af b/SystemGui.pro.user.5a351af new file mode 100644 index 0000000..c763f1f --- /dev/null +++ b/SystemGui.pro.user.5a351af @@ -0,0 +1,264 @@ + + + + + + EnvironmentId + {5a351af6-dc3b-4afc-af92-7da5e3a5cd12} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Qt 5.14.2 + Qt 5.14.2 + {dc2b548b-27bc-4e25-8500-cc36640735d8} + 0 + 0 + 0 + + D:/Main/PicDev/Projets/MasterCtrl/SystemGui + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + D:/Main/PicDev/Projets/MasterCtrl/SystemGui + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 2 + + + 0 + Deploy + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy locally + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + SystemGui + + Qt4ProjectManager.Qt4RunConfiguration:D:/Main/PicDev/Projets/MasterCtrl/SystemGui/SystemGui.pro + true + + SystemGui.pro + false + + D:/Main/PicDev/Projets/MasterCtrl/SystemGui + 3768 + false + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 18 + + + Version + 18 + + diff --git a/ui_AvReceiverGui.h b/ui_AvReceiverGui.h index 00fbcb9..32d024d 100644 --- a/ui_AvReceiverGui.h +++ b/ui_AvReceiverGui.h @@ -35,6 +35,8 @@ public: QPushButton *MainZoneScene4Btn; QSlider *mMainZoneVolumeSldBar; QSlider *mZone2VolumeSldBar; + QLabel *mMainZoneSliderValueLbl; + QLabel *mZone2SliderValueLbl; void setupUi(QWidget *CAvReceiverGui) { @@ -80,9 +82,17 @@ public: mMainZoneVolumeSldBar->setOrientation(Qt::Vertical); mZone2VolumeSldBar = new QSlider(CAvReceiverGui); mZone2VolumeSldBar->setObjectName(QString::fromUtf8("mZone2VolumeSldBar")); - mZone2VolumeSldBar->setGeometry(QRect(500, 110, 16, 160)); + mZone2VolumeSldBar->setGeometry(QRect(500, 119, 20, 151)); mZone2VolumeSldBar->setMaximum(182); mZone2VolumeSldBar->setOrientation(Qt::Vertical); + mMainZoneSliderValueLbl = new QLabel(CAvReceiverGui); + mMainZoneSliderValueLbl->setObjectName(QString::fromUtf8("mMainZoneSliderValueLbl")); + mMainZoneSliderValueLbl->setGeometry(QRect(180, 100, 47, 14)); + mMainZoneSliderValueLbl->setAlignment(Qt::AlignCenter); + mZone2SliderValueLbl = new QLabel(CAvReceiverGui); + mZone2SliderValueLbl->setObjectName(QString::fromUtf8("mZone2SliderValueLbl")); + mZone2SliderValueLbl->setGeometry(QRect(490, 100, 51, 16)); + mZone2SliderValueLbl->setAlignment(Qt::AlignCenter); retranslateUi(CAvReceiverGui); @@ -102,6 +112,8 @@ public: MainZoneScene2Btn->setText(QCoreApplication::translate("CAvReceiverGui", "2", nullptr)); MainZoneScene3Btn->setText(QCoreApplication::translate("CAvReceiverGui", "3", nullptr)); MainZoneScene4Btn->setText(QCoreApplication::translate("CAvReceiverGui", "4", nullptr)); + mMainZoneSliderValueLbl->setText(QCoreApplication::translate("CAvReceiverGui", "TextLabel", nullptr)); + mZone2SliderValueLbl->setText(QCoreApplication::translate("CAvReceiverGui", "TextLabel", nullptr)); } // retranslateUi };