first commit

This commit is contained in:
2026-02-21 17:11:31 +09:00
commit 18b4338361
4001 changed files with 365464 additions and 0 deletions

View File

@@ -0,0 +1,402 @@
#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)