-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include "XGUI_TransparencyWidget.h"
#include <QCheckBox>
#include <QDoubleSpinBox>
+#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QSlider>
-XGUI_TransparencyWidget::XGUI_TransparencyWidget(QWidget* theParent, const QString& theLabelText)
+XGUI_TransparencyWidget::XGUI_TransparencyWidget(QWidget* theParent,
+ const QString& /*theLabelText*/)
: QWidget(theParent)
{
- QHBoxLayout* aLay = new QHBoxLayout(this);
+ QVBoxLayout* aLay = new QVBoxLayout(this);
aLay->setContentsMargins(0, 0, 0, 0);
- mySpinValue = new QDoubleSpinBox(this);
- mySpinValue->setRange(0, 1);
- mySpinValue->setSingleStep(0.1);
- mySliderValue = new QSlider(Qt::Horizontal, this);
- mySliderValue->setRange(0, 100);
+ QWidget* aInfoWgt = new QWidget(this);
+ QHBoxLayout* aInfoLay = new QHBoxLayout(aInfoWgt);
+ aInfoLay->setContentsMargins(0, 0, 0, 0);
+
+ aInfoLay->addWidget(new QLabel(tr("Opaque")));
+
+ myValLbl = new QLabel("0%", aInfoWgt);
+ myValLbl->setAlignment(Qt::AlignCenter);
+ aInfoLay->addWidget(myValLbl, 1);
- myPreview = new QCheckBox("Preview", this);
- myPreview->setChecked(true);
+ aInfoLay->addWidget(new QLabel(tr("Transparent")));
+ aLay->addWidget(aInfoWgt);
- if (!theLabelText.isEmpty())
- aLay->addWidget(new QLabel(theLabelText, this));
- aLay->addWidget(mySpinValue);
+ mySliderValue = new QSlider(Qt::Horizontal, this);
+ mySliderValue->setRange(0, 100);
aLay->addWidget(mySliderValue);
- aLay->addWidget(myPreview);
- connect(mySpinValue, SIGNAL(valueChanged(double)), this, SLOT(onSpinValueChanged(double)));
connect(mySliderValue, SIGNAL(valueChanged(int)), this, SLOT(onSliderValueChanged(int)));
- connect(myPreview, SIGNAL(toggled(bool)), this, SIGNAL(previewStateChanged()));
}
void XGUI_TransparencyWidget::setValue(double theValue)
{
- bool isSpinBlocked = mySpinValue->blockSignals(true);
bool isSliderBlocked = mySliderValue->blockSignals(true);
-
- mySpinValue->setValue(theValue);
- mySliderValue->setValue(theValue * 100);
-
- mySpinValue->blockSignals(isSpinBlocked);
+ int aVal = theValue * 100;
+ mySliderValue->setValue(aVal);
+ myValLbl->setText(QString("%1%").arg(aVal));
mySliderValue->blockSignals(isSliderBlocked);
}
double XGUI_TransparencyWidget::getValue() const
{
- return mySpinValue->value();
-}
-
-bool XGUI_TransparencyWidget::isPreviewNeeded() const
-{
- return myPreview->isChecked();
-}
-
-void XGUI_TransparencyWidget::onSpinValueChanged(double theValue)
-{
- setValue(theValue);
- emit transparencyValueChanged();
+ return mySliderValue->value() / 100.;
}
void XGUI_TransparencyWidget::onSliderValueChanged(int theValue)
{
- setValue((double)theValue / 100);
+ myValLbl->setText(QString("%1%").arg(theValue));
emit transparencyValueChanged();
}