75 lines
2.1 KiB
C++
75 lines
2.1 KiB
C++
#include "wattrview.h"
|
||
#include "ui_wattrview.h"
|
||
#include <wProgramManager/wEditProgram/wpageitem.h>
|
||
#include <wProgramManager/wEditProgram/wpageattr.h>
|
||
#include <wProgramManager/wEditProgram/wElement/eobject.h>
|
||
|
||
wAttrView::wAttrView(QWidget *parent) :
|
||
QTabWidget(parent),
|
||
ui(new Ui::wAttrView),
|
||
m_page(nullptr),
|
||
m_element(nullptr)
|
||
{
|
||
setAttribute(Qt::WA_DeleteOnClose);
|
||
ui->setupUi(this);
|
||
ui->wPage->setWidget(wEmpty());
|
||
ui->wElement->setWidget(wEmpty());
|
||
setTabText(0, tr("widget properties"));
|
||
setTabText(1, tr("Page properties"));
|
||
}
|
||
|
||
wAttrView::~wAttrView()
|
||
{
|
||
delete ui;
|
||
}
|
||
|
||
void wAttrView::paintEvent(QPaintEvent *event)
|
||
{
|
||
Q_UNUSED(event);
|
||
QStyleOption opt;
|
||
opt.init(this);
|
||
QPainter p(this);
|
||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||
}
|
||
|
||
QWidget* wAttrView::wEmpty()
|
||
{
|
||
QWidget *w = new QWidget();
|
||
w->setProperty("ssBackground", "dark");
|
||
w->setAttribute(Qt::WA_DeleteOnClose);
|
||
QVBoxLayout *playout = new QVBoxLayout();
|
||
playout->addStretch(1);
|
||
w->setLayout(playout);
|
||
return w;
|
||
}
|
||
//左边幻灯片选中后端响应函数
|
||
void wAttrView::onSlotPageSelected(wPageItem *page)
|
||
{
|
||
setCurrentIndex(1);
|
||
if(m_page != page)//如果先前的属性页不是当前选中的幻灯片,切换ui的幻灯片属性页为新选中的属性
|
||
{
|
||
m_page = page;
|
||
if(nullptr != m_page) {
|
||
ui->wPage->setWidget(m_page->wAttr());
|
||
} else {
|
||
ui->wPage->setWidget(wEmpty());
|
||
}
|
||
}
|
||
}
|
||
|
||
void wAttrView::onSlotElementSelected(eObject *element)
|
||
{
|
||
if(m_element != element) {
|
||
m_element = element;
|
||
if(nullptr != m_element)//如果先前的媒体元素不是当前选中的媒体元素,切换ui的媒体元素属性页为新选中的属性
|
||
{
|
||
setCurrentIndex(0);
|
||
ui->wElement->takeWidget()->close();
|
||
ui->wElement->setWidget(m_element->wAttr());//该widget赋值新的widget时,会析构掉上一个widget
|
||
} else {
|
||
setCurrentIndex(1);
|
||
ui->wElement->setWidget(wEmpty());
|
||
}
|
||
}
|
||
}
|