144 lines
5.9 KiB
C++
144 lines
5.9 KiB
C++
#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);
|
|
}
|