qt/LedOK/devicectrlpanel.cpp

144 lines
5.9 KiB
C++
Raw Normal View History

2023-04-18 14:14:46 +08:00
#include "devicectrlpanel.h"
#include "devicepanel.h"
#include "tools.h"
#include <QEvent>
#include <QGridLayout>
#include <QButtonGroup>
#include <QToolButton>
#include <device/ctrlbrightpanel.h>
#include <device/controlpowerwidget.h>
#include <device/ctrlnetworkpanel.h>
#include <device/ctrlverifyclockpanel.h>
#include <device/ctrlhdmipanel.h>
#include <device/controlvolumewidget.h>
#include <device/ctrlpwdpanel.h>
#include <device/ctrladvancedpanel.h>
#include <device/controltestwidget.h>
QTextEdit *gFdResInfo;
DeviceCtrlPanel::DeviceCtrlPanel(DevicePanel *parent) : QWidget(parent), mDevWgt(parent) {
auto vBox = new QVBoxLayout(this);
vBox->setContentsMargins(0,0,0,0);
vBox->setSpacing(0);
auto hBox = new QHBoxLayout;
hBox->setSpacing(2);
mBtnGrp = new QButtonGroup(this);
for(int i=0; i<Setting_End; i++) {
auto btn = new QToolButton();
auto policy = btn->sizePolicy();
policy.setHorizontalPolicy(QSizePolicy::Preferred);
btn->setSizePolicy(policy);
btn->setIconSize(QSize(48, 48));
btn->setCheckable(true);
btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
btn->setProperty("ss", "CtrlTab");
hBox->addWidget(btn);
mBtnGrp->addButton(btn, i);
}
mBtnGrp->button(Setting_Bright)->setIcon(QIcon(":/res/bnBrightnessAdjustMent_s.png"));
mBtnGrp->button(Setting_PowerControl)->setIcon(QIcon(":/res/bnPowerControl_s.png"));
mBtnGrp->button(Setting_NetCfg)->setIcon(QIcon(":/res/bnNetConfig_s.png"));
mBtnGrp->button(Setting_VerifyClock)->setIcon(QIcon(":/res/bnVerifyClock_s.png"));
mBtnGrp->button(Setting_Encrypt)->setIcon(QIcon(":/res/encrypt.png"));
mBtnGrp->button(Setting_HDMI)->setIcon(QIcon(":/res/Hdmi.png"));
mBtnGrp->button(Setting_Volume)->setIcon(QIcon(":/res/volume.png"));
mBtnGrp->button(Setting_Advanced)->setIcon(QIcon(":/res/AdvParam.png"));
mBtnGrp->button(Setting_Test)->setIcon(QIcon(":/res/test.png"));
connect(mBtnGrp, &QButtonGroup::idToggled, this, [this](int index, bool checked) {
if(!checked || index==curIndex) return;
curIndex = index;
if(wgts[index]==0) {
if(index==Setting_Bright) wgts[index] = new CtrlBrightPanel(this);
else if(index==Setting_PowerControl) wgts[index] = new ControlPowerWidget(this, gSelCards);
else if(index==Setting_NetCfg) wgts[index] = new CtrlNetworkPanel(this);
else if(index==Setting_VerifyClock) wgts[index] = new CtrlVerifyClockPanel(this);
else if(index==Setting_Encrypt) wgts[index] = new CtrlPwdPanel(this);
else if(index==Setting_HDMI) wgts[index] = new CtrlHdmiPanel(this);
else if(index==Setting_Volume) wgts[index] = new ControlVolumeWidget(this, gSelCards);
else if(index==Setting_Advanced) wgts[index] = new CtrlAdvancedPanel(this);
else if(index==Setting_Test) wgts[index] = new ControlTestWidget(this, gSelCards);
}
scrollArea->takeWidget();
scrollArea->setWidget(wgts[index]);
emit sigSwitchIndexChanged(curIndex);
});
vBox->addLayout(hBox);
auto line = new QFrame;
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
vBox->addWidget(line);
hBox = new QHBoxLayout();
scrollArea = new QScrollArea();
scrollArea->setWidgetResizable(true);
hBox->addWidget(scrollArea);
auto vBox2 = new QVBoxLayout();
fdInfo = new QTextEdit();
gFdResInfo = fdInfo;
fdInfo->setReadOnly(true);
fdInfo->setMaximumWidth(360);
vBox2->addWidget(fdInfo);
btnClear = new QPushButton(tr("Clear"));
btnClear->setMinimumHeight(30);
btnClear->setProperty("ssType", "progManageTool");
connect(btnClear, &QPushButton::clicked, fdInfo, &QTextEdit::clear);
vBox2->addWidget(btnClear);
hBox->addLayout(vBox2);
vBox->addLayout(hBox);
connect(mDevWgt, &DevicePanel::sigSelectedDeviceList, this, [this]() {
if(gSelCards->count() < 2) {
if(gSelCards->count()==1) mDevWgt->fdCardNumInfo->setText(tr("Current Screen")+": "+gSelCards->at(0)->m_strCardId);
else mDevWgt->fdCardNumInfo->setText(tr("Current Screen")+": "+tr("none"));
fdInfo->hide();
btnClear->hide();
} else {
mDevWgt->fdCardNumInfo->setText(tr("Multi screen operation")+". "+tr("selected num")+": "+QString::number(gSelCards->count()));
fdInfo->clear();
fdInfo->show();
btnClear->show();
}
});
transUi();
mBtnGrp->button(0)->setChecked(true);
}
void DeviceCtrlPanel::changeEvent(QEvent *event) {
QWidget::changeEvent(event);
if(event->type() == QEvent::LanguageChange) transUi();
}
void DeviceCtrlPanel::transUi() {
mBtnGrp->button(Setting_Bright)->setText(tr("Brightness Adjustment"));
mBtnGrp->button(Setting_PowerControl)->setText(tr("Power Control"));
mBtnGrp->button(Setting_NetCfg)->setText(tr("Net Config"));
mBtnGrp->button(Setting_VerifyClock)->setText(tr("Time Sync"));
mBtnGrp->button(Setting_HDMI)->setText(tr("Video source"));
mBtnGrp->button(Setting_Encrypt)->setText(tr("Password"));
mBtnGrp->button(Setting_Advanced)->setText(tr("Advanced"));
mBtnGrp->button(Setting_Volume)->setText(tr("Volume Adj."));
mBtnGrp->button(Setting_Test)->setText(tr("Test"));
if(gSelCards->count() < 1) mDevWgt->fdCardNumInfo->setText(tr("Current Screen")+": "+tr("none"));
else if(gSelCards->count()==1) mDevWgt->fdCardNumInfo->setText(tr("Current Screen")+": "+gSelCards->at(0)->m_strCardId);
else mDevWgt->fdCardNumInfo->setText(tr("Multi screen operation")+". "+tr("selected num")+": "+QString::number(gSelCards->count()));
btnClear->setText(tr("Clear"));
}
void DeviceCtrlPanel::OnOutputInfo(QString strInfo) {
if(isVisible() && fdInfo->isVisible()) fdInfo->append(strInfo);
}