Files
fmviewer3/project/fm_viewer/cfg/window_settings_xdr6688.cpp
2026-02-21 17:11:31 +09:00

403 lines
12 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "window_settings_xdr6688.h"
#if (USE_DEVICE_SETTINGS)
#include "../fm_dimensions.h"
#if (RM_MODEL == RM_MODEL_TYPE_XLDR_88)
#include "../ui/title_widget.h"
#include "rm_combo_box.h"
#include "rm_radio_buttons.h"
#include "rm_group_combo_box.h"
#include "rm_group_radio_buttons.h"
#include "rm_settings_cfg_xdr6688.h"
#include "rm_setting_time.h"
#include "rm_admin_passwd.h"
#include <QComboBox>
#include <QGridLayout>
#include <QDir>
#include "../ui/rm_widget_checkbox.h"
#if (DETECT_SETTING_USB_EJECT)
#include "../core/rm_usb.h"
#include "../rm_application.h"
#endif
// 문자열 처리 UTF
// https://www.branah.com/unicode-converter
const int gComboBoxWidth = 200;
const int gTitleWidth = 50;
static const QString glevel = MKU8("\xe3\x83\xac\xe3\x83\x99\xe3\x83\xab");
static const QStringList gEOffOn = QStringList() << "OFF" << "ON";
WindowSettings::WindowSettings(QWidget *parent) : RMSettingsWindowBase(parent)
{
//_createRowA();
}
WindowSettings::~WindowSettings()
{
}
//-------------------------------------------------------------
// XDR-66
WindowSettings66::WindowSettings66(QWidget *parent) : WindowSettings(parent)
{
_wwidth = SETTINGS_WINDOW_WIDTH;
_wheight = 600;
setFixedSize(_wwidth,_wheight);
_createRowA();
}
QVBoxLayout* WindowSettings66::_createRow(QWidget** rw)
{
*rw = new QWidget(_contentWidget);
(*rw)->setFixedWidth(_wwidth-(8*2));
layout->addWidget(*rw);
QVBoxLayout* l = new QVBoxLayout(*rw);
l->setMargin(0);
l->setSpacing(4);
l->setAlignment(Qt::AlignTop);
return l;
}
void WindowSettings66::_createRowA()
{
QWidget* row = NULL;
QVBoxLayout* rowLayout = NULL;
rowLayout = _createRow(&row);
int fh = 65;
RMGroupComboBox* gs = new RMGroupComboBox(row,
MKU8("\x33\x47\xe3\x82\xbb\xe3\x83\xb3\xe3\x82\xb5\xe3\x83\xbc\xe6\x84\x9f\xe5\xba\xa6"),
QStringList() << glevel + "1" << glevel + "2" << glevel + "3" \
<< glevel + "4" << glevel + "5",
&CFG::data[SD_SENSOR]);
rowLayout->addWidget(gs);
gs->comboBox->setFixedWidth(gComboBoxWidth);
gs->setFixedHeight(fh);
// 画像 SIZE_800x600, SIZE_640x320
RMGroupRadioButtons* gr = _MGR(row,MKU8("\xe7\x94\xbb\xe5\x83\x8f"),rowLayout,QStringList() << "800x600" << "640x320",SD_SIZE);
gr->setFixedHeight(fh);
// 録画フレームレート
gr = _MGR(row,
MKU8("\xe9\x8c\xb2\xe7\x94\xbb\xe3\x83\x95\xe3\x83\xac\xe3\x83\xbc\xe3\x83\xa0\xe3\x83\xac\xe3\x83\xbc\xe3\x83\x88"),
rowLayout,
QStringList()
<< "20 fps"
<< "25 fps"
<< "30 fps",SD_FRAME);
gr->setFixedHeight(fh);
// 音量調整
gr = _MGR(row,
MKU8("\xe9\x9f\xb3\xe9\x87\x8f\xe8\xaa\xbf\xe6\x95\xb4") + " ",
rowLayout,
QStringList() << "0" << "1" << "2" << "3" << "4" << "5",
SD_VOLUME);
gr->setFixedHeight(fh);
// ボイス
gr = _MGR(row,
MKU8("\xe3\x83\x9c\xe3\x82\xa4\xe3\x82\xb9") + " ",
rowLayout,
QStringList() << MKU8("\xe3\x82\xaa\xe3\x83\x95") << MKU8("\xe3\x82\xaa\xe3\x83\xb3"),
SD_VOICE);
gr->setFixedHeight(fh);
time = new RMSettingTime(row);
rowLayout->addWidget(time);
}
void WindowSettings66::afterSave()
{
if(time->check->isChecked()) {
time->onSave();
}
}
//-------------------------------------------------------------
// XDR-88
WindowSettings88::WindowSettings88(QWidget *parent) : WindowSettings(parent)
{
_wwidth = 800;
_wheight = 550;
setFixedSize(_wwidth,_wheight);
_createRowA();
_createRowB();
}
QVBoxLayout* WindowSettings88::_createRow(QWidget** rw)
{
*rw = new QWidget(_contentWidget);
(*rw)->setFixedWidth((_wwidth-(8*4))/2);
layout->addWidget(*rw);
QVBoxLayout* l = new QVBoxLayout(*rw);
l->setMargin(0);
l->setSpacing(4);
l->setAlignment(Qt::AlignTop);
return l;
}
void WindowSettings88::_createRowA()
{
QWidget* row = NULL;
QVBoxLayout* rowLayout = NULL;
QLabel* tl;
RMRadioButtons* rb;
rowLayout = _createRow(&row);
// システム
QGroupBox* g = new QGroupBox(row);
g->setObjectName("settings");
rowLayout->addWidget(g);
const int lbWidth = 130;
const int cWidth = 150;
const int rWidth = 220;
g->setTitle(MKU8("\xe3\x82\xb7\xe3\x82\xb9\xe3\x83\x86\xe3\x83\xa0"));
QGridLayout* gl = new QGridLayout(g);
gl->setMargin(8);
gl->setSpacing(4);
g->setFixedHeight(160);
// 画面表示
// 1分後画面OFF
// 常時ON
// 1分後時計画面
// RMComboBox* RMSettingsWindowBase::_MC(QWidget *parent,QString title,QLayout* layout, QStringList items,int type,QList<int> indexMap,QLabel** titleLabel)
RMComboBox* tc;
tc = _MC(g,
MKU8("\xe7\x94\xbb\xe9\x9d\xa2\xe8\xa1\xa8\xe7\xa4\xba"),
gl,
QStringList() << MKU8("\x31\xe5\x88\x86\xe5\xbe\x8c\xe7\x94\xbb\xe9\x9d\xa2\x4f\x46\x46") \
<< MKU8("\xe5\xb8\xb8\xe6\x99\x82\x4f\x4e") \
<< MKU8("\x31\xe5\x88\x86\xe5\xbe\x8c\xe6\x99\x82\xe8\xa8\x88\xe7\x94\xbb\xe9\x9d\xa2"),
SD88_SCREEN_SAVEER,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// 録画画面
// フロント
// リア
// フロント/リア
// リア/フロント
tc = _MC(g,
MKU8("\xe9\x8c\xb2\xe7\x94\xbb\xe7\x94\xbb\xe9\x9d\xa2"),
gl,
QStringList() << FM_WSTR(L"フロント") << FM_WSTR(L"サブ") << FM_WSTR(L"フロント/サブ") << FM_WSTR(L"サブ/フロント"),
SD88_SCREEN_PIP,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// スピーカー音量
tc = _MC(g,
MKU8("\xe3\x82\xb9\xe3\x83\x94\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc\xe9\x9f\xb3\xe9\x87\x8f"),
gl,
QStringList() << "Off" << "1" << "2" << "3" << "4" << "5",
SD88_SPEAKER,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// MIC
rb = _MR(g,FM_WSTR(L"録音設定"),gl,gEOffOn,SD88_MIC,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// GROUP 2 STORAGE, メモリ割当
g = new QGroupBox(row);
g->setObjectName("settings");
rowLayout->addWidget(g);
g->setTitle(MKU8("\xe3\x83\xa1\xe3\x83\xa2\xe3\x83\xaa\xe5\x89\xb2\xe5\xbd\x93"));
g->setFixedHeight(89);
gl = new QGridLayout(g);
gl->setMargin(8);
gl->setSpacing(4);
// メモリ割当情報
// 常時録画重視
// 駐車録画重視
// イベント録画重視
tc = _MC(g,
MKU8("\xe3\x83\xa1\xe3\x83\xa2\xe3\x83\xaa\xe5\x89\xb2\xe5\xbd\x93\xe6\x83\x85\xe5\xa0\xb1"),
gl,
QStringList() << MKU8("\xe5\xb8\xb8\xe6\x99\x82\xe9\x8c\xb2\xe7\x94\xbb\xe9\x87\x8d\xe8\xa6\x96") \
<< MKU8("\xe9\xa7\x90\xe8\xbb\x8a\xe9\x8c\xb2\xe7\x94\xbb\xe9\x87\x8d\xe8\xa6\x96") \
<< MKU8("\xe3\x82\xa4\xe3\x83\x99\xe3\x83\xb3\xe3\x83\x88\xe9\x8c\xb2\xe7\x94\xbb\xe9\x87\x8d\xe8\xa6\x96"),
SD88_VOLUME,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// GROUP 3 G-SENSOR, センサー感度
g = new QGroupBox(row);
g->setObjectName("settings");
rowLayout->addWidget(g);
g->setTitle(MKU8("\xe3\x82\xbb\xe3\x83\xb3\xe3\x82\xb5\xe3\x83\xbc\xe6\x84\x9f\xe5\xba\xa6"));
g->setFixedHeight(120);
gl = new QGridLayout(g);
gl->setMargin(8);
gl->setSpacing(4);
// 常時センサー感度
//QStringList sensors = QStringList() << "Low" << "Middle-Low" << "Middle" << "Middle-High" << "High";
QStringList sensors = QStringList() << "1" << "2" << "3" << "4" << "5";
tc = _MC(g,
MKU8("\xe5\xb8\xb8\xe6\x99\x82\xe3\x82\xbb\xe3\x83\xb3\xe3\x82\xb5\xe3\x83\xbc\xe6\x84\x9f\xe5\xba\xa6"),
gl,
sensors,
SD88_GSENSOR_NORMAL,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// 駐車センサー感度
tc = _MC(g,
MKU8("\xe9\xa7\x90\xe8\xbb\x8a\xe3\x82\xbb\xe3\x83\xb3\xe3\x82\xb5\xe3\x83\xbc\xe6\x84\x9f\xe5\xba\xa6"),
gl,
sensors,
SD88_GSENSOR_PARKING,
QList<int>(),&tl);
tl->setFixedWidth(lbWidth);
tc->comboBox->setFixedWidth(cWidth);
// GROUP 4 PARKING MODE, 駐車録画
g = new QGroupBox(row);
g->setObjectName("settings");
rowLayout->addWidget(g);
g->setTitle(MKU8("\xe9\xa7\x90\xe8\xbb\x8a\xe9\x8c\xb2\xe7\x94\xbb"));
gl = new QGridLayout(g);
gl->setMargin(8);
gl->setSpacing(4);
//駐車録画機能
rb = _MR(g,MKU8("\xe9\xa7\x90\xe8\xbb\x8a\xe9\x8c\xb2\xe7\x94\xbb\xe6\xa9\x9f\xe8\x83\xbd"),gl,gEOffOn,SD88_PARKING_ON,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
rb->setFixedHeight(45);
// 放電遮断電圧
/*
tl = new QLabel(this);
tl->setObjectName("text_normal_label");
tl->setText(MKU8("\xe6\x94\xbe\xe9\x9b\xbb\xe9\x81\xae\xe6\x96\xad\xe9\x9b\xbb\xe5\x9c\xa7"));
gl->addWidget(tl,1,0,Qt::AlignLeft);
*/
}
void WindowSettings88::_createRowB()
{
QWidget* row = NULL;
QVBoxLayout* rowLayout = NULL;
QLabel* tl;
RMRadioButtons* rb;
const int lbWidth = 130;
//const int cWidth = 150;
const int rWidth = 220;
rowLayout = _createRow(&row);
//int fh = 55;
QGroupBox* g;
QGridLayout* gl;
//暗証番号暗証番号設定OFF 0 ON暗証番号変更暗証番号設定をONにしているとき暗証番号変更4桁の入力が可能。
// GROUP 5 VIDEO, 録画設定
g = new QGroupBox(row);
g->setObjectName("settings");
rowLayout->addWidget(g);
g->setTitle(MKU8("\xe9\x8c\xb2\xe7\x94\xbb\xe8\xa8\xad\xe5\xae\x9a"));
g->setFixedHeight(220);
gl = new QGridLayout(g);
gl->setMargin(8);
gl->setSpacing(4);
// 解像度
rb = _MR(g,MKU8("\xe8\xa7\xa3\xe5\x83\x8f\xe5\xba\xa6"),gl,QStringList() << "FHD" << "HD",SD88_VIDEO_RESOLUTION,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// 画質
// 低
// 中
// 高
/* 2021/11/22 수정제거
rb = _MR(g,MKU8("\xe7\x94\xbb\xe8\xb3\xaa"),gl,QStringList() << MKU8("\xe4\xbd\x8e") << MKU8("\xe4\xb8\xad") << MKU8("\xe9\xab\x98"),SD88_VIDEO_QUALITY,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
*/
// 録画フレーム数
rb = _MR(g,MKU8("\xe9\x8c\xb2\xe7\x94\xbb\xe3\x83\x95\xe3\x83\xac\xe3\x83\xbc\xe3\x83\xa0\xe6\x95\xb0"),gl,QStringList() << "4.9 fps" << "19.1 fps" << "29.1 fps",SD88_VIDEO_FRAME,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// サブカメラ録画
rb = _MR(g,MKU8("\xe3\x82\xb5\xe3\x83\x96\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9\xe9\x8c\xb2\xe7\x94\xbb"),gl,gEOffOn,SD88_VIDEO_SUB_CAMERA,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// HDR
rb = _MR(g,"HDR",gl,gEOffOn,SD88_VIDEO_HDR,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// ナイトビジョン
rb = _MR(g,MKU8("\xe3\x83\x8a\xe3\x82\xa4\xe3\x83\x88\xe3\x83\x93\xe3\x82\xb8\xe3\x83\xa7\xe3\x83\xb3"),gl,gEOffOn,SD88_VIDEO_NIGHT_VISION,QList<int>(),&tl);;
tl->setFixedWidth(lbWidth);
rb->setFixedWidth(rWidth);
// 관리자 암호 설정도 저장
pw = new RMSettingAdminPW(&CFG::data[SD88_ADMIN_PW],(QList<int>() << 1 << 0), row);
rowLayout->addWidget(pw);
//time = new RMSettingTime(row);
//time->setFixedHeight(100);
//rowLayout->addWidget(time);
}
void WindowSettings88::afterSave()
{
// if(time->check->isChecked()) {
// time->onSave();
// }
#if (REMOVE_ADMIN_PW_CHECKBOX)
// 저장
if(CFG::data[SD88_ADMIN_PW] == 0) { // pw->buttons.at(1)->isChecked()) {
#else
if(pw->saveCheckbox->isChecked()) {
#endif
pw->onSave();
}
//qInfo() << __FUNCTION__;
}
#endif // #if (USE_DEVICE_SETTINGS)
#endif // #if (RM_MODEL)