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.
VideoClient98/src/streamaddrsettingsdlg.cpp

108 lines
4.1 KiB
C++

#include "streamaddrsettingsdlg.h"
#include "ui_streamaddrsettingsdlg.h"
StreamAddrSettingsDlg::StreamAddrSettingsDlg(QWidget *parent)
: QDialog(parent), ui(new Ui::StreamAddrSettingsDlg) {
ui->setupUi(this);
this->setWindowTitle(QStringLiteral("视频流设置"));
// 飞机类型
QStringList uavTypeList;
uavTypeList.append("FP98");
uavTypeList.append("FP985");
uavTypeList.append("FP981C");
uavTypeList.append("FP981CS");
uavTypeList.append("FP981A");
ui->uavTypeCombox->insertItems(0, uavTypeList);
//
ui->pushStreamIPCombox->insertItem(0, QStringLiteral("航天飞鹏服务器"));
ui->pushStreamIPCombox->insertItem(1,
QStringLiteral("航天飞鹏阿里云服务器"));
ui->pushStreamIPCombox->insertItem(2, QStringLiteral("自定义"));
}
StreamAddrSettingsDlg::~StreamAddrSettingsDlg() {
delete ui;
}
void StreamAddrSettingsDlg::showEvent(QShowEvent *event) {
initSavedParms();
}
void StreamAddrSettingsDlg::on_pushStreamIPCombox_currentIndexChanged(
int index) {
if (2 == index) {
ui->pushStreamIPCombox->setEditable(true);
} else {
ui->pushStreamIPCombox->setEditable(false);
}
}
// 保存设置
void StreamAddrSettingsDlg::on_saveBtn_clicked() {
if (!g_networkSettingInfo) {
this->close();
return;
}
g_networkSettingInfo->setValue("NetworkStreamSettings/uavType",
ui->uavTypeCombox->currentIndex());
g_networkSettingInfo->setValue("NetworkStreamSettings/uavID",
ui->uavIDspinBox->value());
g_networkSettingInfo->setValue("NetworkStreamSettings/podPullAddress",
ui->podPullStreamIPEdit->text());
g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress1",
ui->pullStreamAddrEdit1->text());
g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress2",
ui->pullStreamAddrEdit2->text());
g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress3",
ui->pullStreamAddrEdit3->text());
g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress4",
ui->pullStreamAddrEdit4->text());
int pushStreamIndex = ui->pushStreamIPCombox->currentIndex();
g_networkSettingInfo->setValue("NetworkStreamSettings/pushStreamType",
pushStreamIndex);
if (2 == pushStreamIndex) {
g_networkSettingInfo->setValue(
"NetworkStreamSettings/pushStreamAddress",
ui->pushStreamIPCombox->currentText());
}
this->close();
}
void StreamAddrSettingsDlg::initSavedParms() {
if (!g_networkSettingInfo) return;
ui->uavTypeCombox->setCurrentIndex(
g_networkSettingInfo->value("NetworkStreamSettings/uavType").toInt());
ui->uavIDspinBox->setValue(
g_networkSettingInfo->value("NetworkStreamSettings/uavID").toInt());
ui->podPullStreamIPEdit->setText(
g_networkSettingInfo->value("NetworkStreamSettings/podPullAddress")
.toString());
ui->pullStreamAddrEdit1->setText(
g_networkSettingInfo->value("NetworkStreamSettings/pullAddress1")
.toString());
ui->pullStreamAddrEdit2->setText(
g_networkSettingInfo->value("NetworkStreamSettings/pullAddress2")
.toString());
ui->pullStreamAddrEdit3->setText(
g_networkSettingInfo->value("NetworkStreamSettings/pullAddress3")
.toString());
ui->pullStreamAddrEdit4->setText(
g_networkSettingInfo->value("NetworkStreamSettings/pullAddress4")
.toString());
int pushStreamIndex =
g_networkSettingInfo->value("NetworkStreamSettings/pushStreamType")
.toInt();
ui->pushStreamIPCombox->setCurrentIndex(pushStreamIndex);
if (2 == pushStreamIndex) {
ui->pushStreamIPCombox->setItemText(
pushStreamIndex,
g_networkSettingInfo
->value("NetworkStreamSettings/pushStreamAddress")
.toString());
}
}