You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
3.0 KiB
C++

#include "PropertyWidget.h"
#include "ui_PropertyWidget.h"
#include "PostGraphAdaptor/PostGraphObjectManager.h"
#include "PostGraphAdaptor/PostGraphObjectBase.h"
#include "PostGraphAdaptor/PostGraphProperty.h"
#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPost3DManager.h"
#include "FITK_Interface/FITKInterfaceCFDPost/FITKAbstractCFDPostData.h"
namespace GUI
{
PropertyWidget::PropertyWidget(QWidget * parent) :
GUIWidgetBase(parent)
{
_ui = new Ui::PropertyWidget();
_ui->setupUi(this);
init();
}
PropertyWidget::~PropertyWidget()
{
if (_ui) {
delete _ui;
_ui = nullptr;
}
}
void PropertyWidget::init()
{
//关闭滑块跟踪
_ui->horizontalSlider_Opacity->setTracking(false);
updateCurrentGraphObj(-1);
}
void PropertyWidget::updateCurrentGraphObj(int postDataID)
{
_currentDataID = postDataID;
Interface::FITKAbstractCFDPostData* currentData = _postDataManager->getDataByID(postDataID);
_ui->label_NameInfo->setText("");
if (currentData) {
_ui->label_NameInfo->setText(currentData->getDataObjectName());
}
updateOpacity();
}
void PropertyWidget::on_horizontalSlider_Opacity_valueChanged(int value)
{
Q_UNUSED(value);
QSignalBlocker blocker(_ui->spinBox_Opacity);
Interface::PostGraphObjectBase* currentGraphObj = _postGraphManager->getGraphObjectBase(_currentDataID);
if (currentGraphObj == nullptr)return;
double opacity = _ui->horizontalSlider_Opacity->value();
currentGraphObj->getProperty()->setOpacity(opacity / 100);
_ui->spinBox_Opacity->setValue(opacity);
reRender();
}
void PropertyWidget::on_spinBox_Opacity_editingFinished()
{
QSignalBlocker blocker(_ui->horizontalSlider_Opacity);
Interface::PostGraphObjectBase* currentGraphObj = _postGraphManager->getGraphObjectBase(_currentDataID);
if (currentGraphObj == nullptr)return;
double opacity = _ui->spinBox_Opacity->value();
currentGraphObj->getProperty()->setOpacity(opacity / 100);
_ui->horizontalSlider_Opacity->setValue(opacity);
reRender();
}
void PropertyWidget::updateOpacity()
{
QSignalBlocker blocker1(_ui->horizontalSlider_Opacity);
QSignalBlocker blocker2(_ui->spinBox_Opacity);
_ui->horizontalSlider_Opacity->setValue(100);
_ui->spinBox_Opacity->setValue(100);
Interface::PostGraphObjectBase* currentGraphObj = _postGraphManager->getGraphObjectBase(_currentDataID);
if (currentGraphObj == nullptr)return;
double opacity = currentGraphObj->getProperty()->getOpacity();
_ui->horizontalSlider_Opacity->setValue(opacity * 100);
_ui->spinBox_Opacity->setValue(opacity * 100);
}
}