问题修改
This commit is contained in:
parent
7b5e773567
commit
9b92456f94
Binary file not shown.
@ -27,7 +27,7 @@
|
|||||||
#define JUDGE_VERSION_MAJOR 1
|
#define JUDGE_VERSION_MAJOR 1
|
||||||
#define JUDGE_VERSION_MINOR 0
|
#define JUDGE_VERSION_MINOR 0
|
||||||
#define JUDGE_VERSION_PATCH 3
|
#define JUDGE_VERSION_PATCH 3
|
||||||
#define JUDGE_VERSION_STAMP "2504191100b"
|
#define JUDGE_VERSION_STAMP "2504241045b"
|
||||||
#if JUDGE_USE_OLD
|
#if JUDGE_USE_OLD
|
||||||
# undef JUDGE_VERSION_STAMP
|
# undef JUDGE_VERSION_STAMP
|
||||||
# define JUDGE_VERSION_STAMP "2411121010b.old"
|
# define JUDGE_VERSION_STAMP "2411121010b.old"
|
||||||
|
|||||||
@ -261,6 +261,7 @@ class JUDGE_API SysSetTable : public IDBTable
|
|||||||
SYSSET_DECLARE(615); //侧方停车读卡前进时碰6线不合格 0
|
SYSSET_DECLARE(615); //侧方停车读卡前进时碰6线不合格 0
|
||||||
SYSSET_DECLARE(617, type_int); //参数617:语音实时播报项目是否合格(0-否 1-是)语音码:xmhg,xmbhg
|
SYSSET_DECLARE(617, type_int); //参数617:语音实时播报项目是否合格(0-否 1-是)语音码:xmhg,xmbhg
|
||||||
SYSSET_DECLARE(624); //考试评判车门模式
|
SYSSET_DECLARE(624); //考试评判车门模式
|
||||||
|
SYSSET_DECLARE(629); //默认的在车辆进入坡道区域才评判停车定点,坡道中停立刻评判,默认的在车辆进入定点10米区域才评判停车定点
|
||||||
SYSSET_DECLARE(641, type_int); //641=1 是车尾过5-6延长线结束
|
SYSSET_DECLARE(641, type_int); //641=1 是车尾过5-6延长线结束
|
||||||
SYSSET_DECLARE(660); //侧方停车项目 停车距离判断阈值控制参数
|
SYSSET_DECLARE(660); //侧方停车项目 停车距离判断阈值控制参数
|
||||||
SYSSET_DECLARE(668); //安全带评判模式
|
SYSSET_DECLARE(668); //安全带评判模式
|
||||||
@ -407,6 +408,7 @@ class JUDGE_API SysSetTable : public IDBTable
|
|||||||
SYSSET_ASSIGN(615);
|
SYSSET_ASSIGN(615);
|
||||||
SYSSET_ASSIGN(617);
|
SYSSET_ASSIGN(617);
|
||||||
SYSSET_ASSIGN(624);
|
SYSSET_ASSIGN(624);
|
||||||
|
SYSSET_ASSIGN(629);
|
||||||
SYSSET_ASSIGN(641);
|
SYSSET_ASSIGN(641);
|
||||||
SYSSET_ASSIGN(660);
|
SYSSET_ASSIGN(660);
|
||||||
SYSSET_ASSIGN(668);
|
SYSSET_ASSIGN(668);
|
||||||
|
|||||||
@ -91,46 +91,40 @@ ErrorCode ExamCarSub2::examBeginExam()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return QE(codeSuccess);
|
//2、执行扣分
|
||||||
}
|
int grade = 0;
|
||||||
|
for(size_t i = 0; i < m_stuInfo.kfxm.size(); i++)
|
||||||
|
{
|
||||||
|
const TKfXm& markItem = m_stuInfo.kfxm[i];
|
||||||
|
const TMarkRule* rule = TableMark->find(markItem.xmdm, markItem.kfdm);
|
||||||
|
if(nullptr == rule)
|
||||||
|
{
|
||||||
|
logwarning("not find mark-rule item=%d, serial=%s", markItem.xmdm, markItem.kfdm.c_str());
|
||||||
|
return QE(errorMarkNotFind);
|
||||||
|
}
|
||||||
|
grade += rule->markreal;
|
||||||
|
TMarkInfo mark(rule->itemno, rule->markserial, rule->markcatalog, 0, 0, 0);
|
||||||
|
m_marks.push_back(mark);
|
||||||
|
|
||||||
ErrorCode ExamCarSub2::examGoonExam()
|
IExamItem* item = findExamItem(markItem.xmdm);
|
||||||
{
|
TASSERT(item != nullptr, "");
|
||||||
|
if(item)
|
||||||
|
{
|
||||||
|
item->setMarkGrade(rule->markreal);
|
||||||
|
}
|
||||||
|
|
||||||
|
loginfo("ddxk-mark xmdm=%d,kfdm=%s", markItem.xmdm, markItem.kfdm.c_str());
|
||||||
|
}
|
||||||
|
m_grade -= grade;
|
||||||
|
if(m_grade < 0)
|
||||||
|
{
|
||||||
|
m_grade = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//3、处理断点续考
|
||||||
if(m_stuInfo.ddxk)
|
if(m_stuInfo.ddxk)
|
||||||
{
|
{
|
||||||
m_disForward = m_stuInfo.yklc;
|
m_disForward = m_stuInfo.yklc;
|
||||||
|
|
||||||
//1、处理已考项目
|
|
||||||
|
|
||||||
//2、执行扣分
|
|
||||||
int grade = 0;
|
|
||||||
for(size_t i = 0; i < m_stuInfo.kfxm.size(); i++)
|
|
||||||
{
|
|
||||||
const TKfXm& markItem = m_stuInfo.kfxm[i];
|
|
||||||
const TMarkRule* rule = TableMark->find(markItem.xmdm, markItem.kfdm);
|
|
||||||
if(nullptr == rule)
|
|
||||||
{
|
|
||||||
logwarning("not find mark-rule item=%d, serial=%s", markItem.xmdm, markItem.kfdm.c_str());
|
|
||||||
return QE(errorMarkNotFind);
|
|
||||||
}
|
|
||||||
grade += rule->markreal;
|
|
||||||
TMarkInfo mark(rule->itemno, rule->markserial, rule->markcatalog, 0, 0, 0);
|
|
||||||
m_marks.push_back(mark);
|
|
||||||
|
|
||||||
IExamItem* item = findExamItem(markItem.xmdm);
|
|
||||||
TASSERT(item != nullptr, "");
|
|
||||||
if(item)
|
|
||||||
{
|
|
||||||
item->setMarkGrade(rule->markreal);
|
|
||||||
}
|
|
||||||
|
|
||||||
loginfo("ddxk-mark xmdm=%d,kfdm=%s", markItem.xmdm, markItem.kfdm.c_str());
|
|
||||||
}
|
|
||||||
m_grade -= grade;
|
|
||||||
if(m_grade < 0)
|
|
||||||
{
|
|
||||||
m_grade = 0;
|
|
||||||
}
|
|
||||||
//m_timeBegin = m_stuInfo.ddkssj;
|
//m_timeBegin = m_stuInfo.ddkssj;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +135,6 @@ ErrorCode ExamCarSub2::examGoonExam()
|
|||||||
//createEventExamFinish(ExamFinishAuto); //杨 20240724 都由苏那边控制
|
//createEventExamFinish(ExamFinishAuto); //杨 20240724 都由苏那边控制
|
||||||
return QE(errorBeginNotQual); //已经不合格了
|
return QE(errorBeginNotQual); //已经不合格了
|
||||||
}
|
}
|
||||||
|
|
||||||
return QE(codeSuccess);
|
return QE(codeSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,6 @@ public:
|
|||||||
public: //for IExamCar override
|
public: //for IExamCar override
|
||||||
virtual ErrorCode examCarInitInfo(TInitInfo* info) override;
|
virtual ErrorCode examCarInitInfo(TInitInfo* info) override;
|
||||||
virtual ErrorCode examBeginExam() override;
|
virtual ErrorCode examBeginExam() override;
|
||||||
virtual ErrorCode examGoonExam() override;
|
|
||||||
virtual ErrorCode examEndExam() override;
|
virtual ErrorCode examEndExam() override;
|
||||||
virtual ErrorCode examJudgeExam() override;
|
virtual ErrorCode examJudgeExam() override;
|
||||||
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) override;
|
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) override;
|
||||||
|
|||||||
@ -66,7 +66,7 @@ ErrorCode ExamCarSub3::examBeginExam()
|
|||||||
TKM3Item* item = findExamItem(itemNo);
|
TKM3Item* item = findExamItem(itemNo);
|
||||||
if(item != nullptr)
|
if(item != nullptr)
|
||||||
{
|
{
|
||||||
KM3EndItem(itemNo, false);
|
KM3EndItem(itemNo, false, false);
|
||||||
//item->Item_Color = itemStateHg;
|
//item->Item_Color = itemStateHg;
|
||||||
//item->TestPro = ItemProFlagEnd;
|
//item->TestPro = ItemProFlagEnd;
|
||||||
//item->FinishFlag = true; //防止已考发项目结束事件
|
//item->FinishFlag = true; //防止已考发项目结束事件
|
||||||
@ -83,54 +83,43 @@ ErrorCode ExamCarSub3::examBeginExam()
|
|||||||
{
|
{
|
||||||
m_newSub3->examBegin();
|
m_newSub3->examBegin();
|
||||||
}
|
}
|
||||||
return QE(codeSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
ErrorCode ExamCarSub3::examGoonExam()
|
//2、执行扣分
|
||||||
{
|
int grade = 0;
|
||||||
//4、执行扣分(如果StuInfo.CSH_Marks 不为空)
|
for(size_t i = 0; i < m_stuInfo.kfxm.size(); i++)
|
||||||
//这个时候,Tds的Grade会被重新赋值
|
{
|
||||||
|
const TKfXm& markItem = m_stuInfo.kfxm[i];
|
||||||
|
const TMarkRule* rule = TableMark->find(markItem.xmdm, markItem.kfdm);
|
||||||
|
if(nullptr == rule)
|
||||||
|
{
|
||||||
|
logwarning("not find mark-rule item=%d, serial=%s", markItem.xmdm, markItem.kfdm.c_str());
|
||||||
|
return QE(errorMarkNotFind);
|
||||||
|
}
|
||||||
|
grade += rule->markreal;
|
||||||
|
TMarkInfo mark(rule->itemno, rule->markserial, rule->markcatalog, 0, 0, 0);
|
||||||
|
m_marks.push_back(mark);
|
||||||
|
|
||||||
|
//断点扣分不要生成任何事件通知,关心的就是本地扣出来即可 //???yhyflag
|
||||||
|
//Mark(markItem.xmdm, markItem.kfdm, false, true, 0, true); //Self.Mark(TempItemNo, Str3, False, True, 0, True);
|
||||||
|
//扣分只记录分数,不需要根据扣分记录项目状态 20240816 在洛阳确认的
|
||||||
|
//TKM3Item* item = findExamItem(markItem.xmdm);
|
||||||
|
//TASSERT(item != nullptr, "");
|
||||||
|
//if(item)
|
||||||
|
//{
|
||||||
|
// item->Item_Color = itemStateBhg;
|
||||||
|
//}
|
||||||
|
loginfo("ddxk-mark xmdm=%d,kfdm=%s", markItem.xmdm, markItem.kfdm.c_str());
|
||||||
|
}
|
||||||
|
m_grade -= grade;
|
||||||
|
if(m_grade < 0)
|
||||||
|
{
|
||||||
|
m_grade = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//3、处理断点续考
|
||||||
if(m_stuInfo.ddxk)
|
if(m_stuInfo.ddxk)
|
||||||
{
|
{
|
||||||
m_disForward = m_stuInfo.yklc;
|
m_disForward = m_stuInfo.yklc;
|
||||||
|
|
||||||
//1、处理已考项目
|
|
||||||
|
|
||||||
//2、执行扣分
|
|
||||||
int grade = 0;
|
|
||||||
for(size_t i = 0; i < m_stuInfo.kfxm.size(); i++)
|
|
||||||
{
|
|
||||||
const TKfXm& markItem = m_stuInfo.kfxm[i];
|
|
||||||
const TMarkRule* rule = TableMark->find(markItem.xmdm, markItem.kfdm);
|
|
||||||
if(nullptr == rule)
|
|
||||||
{
|
|
||||||
logwarning("not find mark-rule item=%d, serial=%s", markItem.xmdm, markItem.kfdm.c_str());
|
|
||||||
return QE(errorMarkNotFind);
|
|
||||||
}
|
|
||||||
grade += rule->markreal;
|
|
||||||
TMarkInfo mark(rule->itemno, rule->markserial, rule->markcatalog, 0, 0, 0);
|
|
||||||
m_marks.push_back(mark);
|
|
||||||
|
|
||||||
//断点扣分不要生成任何事件通知,关心的就是本地扣出来即可 //???yhyflag
|
|
||||||
//Mark(markItem.xmdm, markItem.kfdm, false, true, 0, true); //Self.Mark(TempItemNo, Str3, False, True, 0, True);
|
|
||||||
|
|
||||||
//扣分只记录分数,不需要根据扣分记录项目状态 20240816 在洛阳确认的
|
|
||||||
//TKM3Item* item = findExamItem(markItem.xmdm);
|
|
||||||
//TASSERT(item != nullptr, "");
|
|
||||||
//if(item)
|
|
||||||
//{
|
|
||||||
// item->Item_Color = itemStateBhg;
|
|
||||||
//}
|
|
||||||
|
|
||||||
loginfo("ddxk-mark xmdm=%d,kfdm=%s", markItem.xmdm, markItem.kfdm.c_str());
|
|
||||||
}
|
|
||||||
m_grade -= grade;
|
|
||||||
if(m_grade < 0)
|
|
||||||
{
|
|
||||||
m_grade = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//3、更新开始时间
|
//3、更新开始时间
|
||||||
//m_timeBegin = m_stuInfo.ddkssj != 0 ? m_stuInfo.ddkssj : Tools::nowTime();
|
//m_timeBegin = m_stuInfo.ddkssj != 0 ? m_stuInfo.ddkssj : Tools::nowTime();
|
||||||
//m_StartTime = GetCurrentTime2();
|
//m_StartTime = GetCurrentTime2();
|
||||||
@ -667,7 +656,7 @@ bool ExamCarSub3::Init_KM3_Global()
|
|||||||
//examItem->TestPro = ItemProFlagIdle;
|
//examItem->TestPro = ItemProFlagIdle;
|
||||||
//examItem->FinishFlag = true;
|
//examItem->FinishFlag = true;
|
||||||
examItem->NoID = true;
|
examItem->NoID = true;
|
||||||
KM3EndItem(itemNo,true,false);
|
KM3EndItem(itemNo,false,false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,6 @@ public:
|
|||||||
public: //for IExamCar override
|
public: //for IExamCar override
|
||||||
virtual ErrorCode examCarInitInfo(TInitInfo* info) override;
|
virtual ErrorCode examCarInitInfo(TInitInfo* info) override;
|
||||||
virtual ErrorCode examBeginExam() override;
|
virtual ErrorCode examBeginExam() override;
|
||||||
virtual ErrorCode examGoonExam() override;
|
|
||||||
virtual ErrorCode examEndExam() override;
|
virtual ErrorCode examEndExam() override;
|
||||||
virtual ErrorCode examJudgeExam() override;
|
virtual ErrorCode examJudgeExam() override;
|
||||||
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) override;
|
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) override;
|
||||||
|
|||||||
@ -107,12 +107,6 @@ int IExamCar::examJudgeBeginExam(const char* data, int len)
|
|||||||
{
|
{
|
||||||
return QE((ErrorCode)errCode);
|
return QE((ErrorCode)errCode);
|
||||||
}
|
}
|
||||||
//处理断点续考
|
|
||||||
errCode = examGoonExam();
|
|
||||||
if(errCode != codeSuccess)
|
|
||||||
{
|
|
||||||
return QE((ErrorCode)errCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_examState = examStateIng;
|
m_examState = examStateIng;
|
||||||
logtrace("begin-exam success %s", target().c_str());
|
logtrace("begin-exam success %s", target().c_str());
|
||||||
|
|||||||
@ -122,7 +122,6 @@ public:
|
|||||||
public:
|
public:
|
||||||
virtual ErrorCode examCarInitInfo(TInitInfo* info) = 0;
|
virtual ErrorCode examCarInitInfo(TInitInfo* info) = 0;
|
||||||
virtual ErrorCode examBeginExam() = 0;
|
virtual ErrorCode examBeginExam() = 0;
|
||||||
virtual ErrorCode examGoonExam() = 0;
|
|
||||||
virtual ErrorCode examEndExam() = 0;
|
virtual ErrorCode examEndExam() = 0;
|
||||||
virtual ErrorCode examJudgeExam() = 0;
|
virtual ErrorCode examJudgeExam() = 0;
|
||||||
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) = 0;
|
virtual ErrorCode examArtifMark(ExamItemCode itemno, const std::string& serial, MarkType type) = 0;
|
||||||
|
|||||||
@ -325,7 +325,8 @@ void Sub2Judge00Dcrk::divorcedItemArea()
|
|||||||
bool out = ((!in0 && in1) || !pureCarInItemArea()); //阶段10,后轮先不在项目区域结束项目,然后才会走道这里
|
bool out = ((!in0 && in1) || !pureCarInItemArea()); //阶段10,后轮先不在项目区域结束项目,然后才会走道这里
|
||||||
#else
|
#else
|
||||||
//bool out = (!pureCarInItemArea());
|
//bool out = (!pureCarInItemArea());
|
||||||
bool out = pureCarTouchSoloLine(m_model->L12_10(), II(13), 5);
|
bool out = pureCarTouchSoloLines({m_model->L12_10(), m_model->L78_11()}, II(13), 5) &&
|
||||||
|
!pureCarPointInPoly(II(1), m_model->poly1278());
|
||||||
#endif
|
#endif
|
||||||
if(out)
|
if(out)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -166,10 +166,19 @@ JUDGE_STAGE_IMPL(Sub2Judge02Pdqb, Sub2PdqbStage0)
|
|||||||
TGPSPoint pt2 = GpsMath::calcCenterPoint(m_model->P4(), m_model->P7());
|
TGPSPoint pt2 = GpsMath::calcCenterPoint(m_model->P4(), m_model->P7());
|
||||||
double gc = FactorySub2Survey->baseGc();
|
double gc = FactorySub2Survey->baseGc();
|
||||||
int distance = GpsMath::DianXianJL_GPS_CM(p1, pt1, pt2, gc);
|
int distance = GpsMath::DianXianJL_GPS_CM(p1, pt1, pt2, gc);
|
||||||
if(distance < m_800CM)
|
|
||||||
|
const std::string& s629 = TableSysSet->get629();
|
||||||
|
if(s629 == "1")
|
||||||
{
|
{
|
||||||
m_stage = Sub2PdqbStage1;
|
m_stage = Sub2PdqbStage1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(distance < m_1000CM)
|
||||||
|
{
|
||||||
|
m_stage = Sub2PdqbStage1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(m_endLineFlag == true)
|
if(m_endLineFlag == true)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -49,7 +49,7 @@ private:
|
|||||||
const int m_15CM = 15; //15厘米
|
const int m_15CM = 15; //15厘米
|
||||||
const int m_30CM = 30; //30厘米
|
const int m_30CM = 30; //30厘米
|
||||||
const int m_50CM = 50; //50厘米
|
const int m_50CM = 50; //50厘米
|
||||||
const int m_800CM = 800; //800厘米
|
const int m_1000CM = 1000; //1000厘米
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SUB2JUDGE02PDQB_H
|
#endif // SUB2JUDGE02PDQB_H
|
||||||
|
|||||||
@ -84,11 +84,12 @@ void Sub2Judge05Qxxs::judgeTouchLine()
|
|||||||
const TGPSPoints& right = m_model->right();
|
const TGPSPoints& right = m_model->right();
|
||||||
if(IS_C1C2C5(m_carType))
|
if(IS_C1C2C5(m_carType))
|
||||||
{
|
{
|
||||||
//1、车轮压线(存粹车轮) //只用车轮子计算
|
//1、车轮压线(纯粹车轮)只用车轮子计算
|
||||||
static constexpr int history = 2;
|
//注意:由于GPS可能漂移不能用这种方式计算,用历史车轮点判断会误判,无锡就出现这种情况 yhy 2025-04-23
|
||||||
const PointSets& wheels = m_car->carModel()->wheelAll();
|
//static constexpr int history = 2;
|
||||||
JUDGE_MARK_ITEM_EASY_ONCE(pureCarTouchSomePoints(left, wheels, history), MARK_SUB2_QXXS_61);
|
//const PointSets& wheels = m_car->carModel()->wheelAll();
|
||||||
JUDGE_MARK_ITEM_EASY_ONCE(pureCarTouchSomePoints(right, wheels, history), MARK_SUB2_QXXS_62);
|
//JUDGE_MARK_ITEM_EASY_ONCE(pureCarTouchSomePoints(left, wheels, history), MARK_SUB2_QXXS_61);
|
||||||
|
//JUDGE_MARK_ITEM_EASY_ONCE(pureCarTouchSomePoints(right, wheels, history), MARK_SUB2_QXXS_62);
|
||||||
|
|
||||||
//2、排线和边线相交,也算压线
|
//2、排线和边线相交,也算压线
|
||||||
const PointPairs& wind = m_car->carModel()->wheelWindAll();
|
const PointPairs& wind = m_car->carModel()->wheelWindAll();
|
||||||
|
|||||||
@ -558,8 +558,8 @@ JUDGE_CXX_API const char* stage2Describe(Sub2CftcStage code);
|
|||||||
#define MARK_SUB2_PDQB_203 "203"
|
#define MARK_SUB2_PDQB_203 "203"
|
||||||
#define MARK_SUB2_PDQB_41 "41"
|
#define MARK_SUB2_PDQB_41 "41"
|
||||||
#define EnumMakeSub2PdqbStage(declare) \
|
#define EnumMakeSub2PdqbStage(declare) \
|
||||||
declare(Sub2PdqbStage0, "", JUDGE_UTF8S("距离停车标杆大于8米")) \
|
declare(Sub2PdqbStage0, "", JUDGE_UTF8S("距离停车标杆大于10米")) \
|
||||||
declare(Sub2PdqbStage1, "", JUDGE_UTF8S("到达标杆8米处,未停车")) \
|
declare(Sub2PdqbStage1, "", JUDGE_UTF8S("到达标杆10米处,未停车")) \
|
||||||
declare(Sub2PdqbStage2, "", JUDGE_UTF8S("停车未起步阶段")) \
|
declare(Sub2PdqbStage2, "", JUDGE_UTF8S("停车未起步阶段")) \
|
||||||
declare(Sub2PdqbStage3, "", JUDGE_UTF8S("坡道起步阶段(后轮到达8,9位置结束)"))
|
declare(Sub2PdqbStage3, "", JUDGE_UTF8S("坡道起步阶段(后轮到达8,9位置结束)"))
|
||||||
enum Sub2PdqbStage{ EnumMakeSub2PdqbStage(ENUM_SELECT_1_CMD_3) Sub2PdqbStageUnknown };
|
enum Sub2PdqbStage{ EnumMakeSub2PdqbStage(ENUM_SELECT_1_CMD_3) Sub2PdqbStageUnknown };
|
||||||
|
|||||||
@ -457,9 +457,9 @@ struct TStuInfo
|
|||||||
int64 kskssj = 0; //考试开始时间 1970年到现在的毫秒数 "2023-03-21 10:05:23"
|
int64 kskssj = 0; //考试开始时间 1970年到现在的毫秒数 "2023-03-21 10:05:23"
|
||||||
std::vector<TItemExam> ksxm = {}; //监管返回本次考试所需项目 2023-04-24 杨海洋修改
|
std::vector<TItemExam> ksxm = {}; //监管返回本次考试所需项目 2023-04-24 杨海洋修改
|
||||||
std::vector<int32> ykxm = {}; //已考项目 "1,3" 对应枚举 ExamItemCode DuanDian_FinishItems
|
std::vector<int32> ykxm = {}; //已考项目 "1,3" 对应枚举 ExamItemCode DuanDian_FinishItems
|
||||||
|
std::vector<TKfXm> kfxm = {}; //扣分项目 "20,01;" 对应枚举 ExamItemCode DuanDian_Marks
|
||||||
int8 ddxk = 0; //是否断点续考,(0-否 1-是)
|
int8 ddxk = 0; //是否断点续考,(0-否 1-是)
|
||||||
int64 ddkssj = 0; //考试中断那次考试开始考试时间 1970年到现在的毫秒数
|
int64 ddkssj = 0; //考试中断那次考试开始考试时间 1970年到现在的毫秒数
|
||||||
std::vector<TKfXm> kfxm = {}; //扣分项目 "20,01;" 对应枚举 ExamItemCode DuanDian_Marks
|
|
||||||
int32 yklc = 0; //已考里程,单位厘米
|
int32 yklc = 0; //已考里程,单位厘米
|
||||||
|
|
||||||
int8 sczb = 0; //CS_Finish_SCZB_Flag:Boolan; //考前绕车一周(初始完成上车准备标志)(外壳传递的)Boolan
|
int8 sczb = 0; //CS_Finish_SCZB_Flag:Boolan; //考前绕车一周(初始完成上车准备标志)(外壳传递的)Boolan
|
||||||
|
|||||||
13
entry/src/main/cpp/svngit.bat
Normal file
13
entry/src/main/cpp/svngit.bat
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
@echo off
|
||||||
|
REM 设置控制台代码页为UTF-8
|
||||||
|
chcp 65001
|
||||||
|
@REM 先svn拉取
|
||||||
|
@echo 正在拉取svn代码...
|
||||||
|
svn update
|
||||||
|
@REM git提交
|
||||||
|
@echo 正在提交git代码...
|
||||||
|
git add .
|
||||||
|
git commit -m "脚本提交的代码"
|
||||||
|
git push
|
||||||
|
@echo 操作完成
|
||||||
|
pause
|
||||||
@ -19,7 +19,7 @@
|
|||||||
#define KIT_VERSION_MAJOR 1
|
#define KIT_VERSION_MAJOR 1
|
||||||
#define KIT_VERSION_MINOR 0
|
#define KIT_VERSION_MINOR 0
|
||||||
#define KIT_VERSION_PATCH 2
|
#define KIT_VERSION_PATCH 2
|
||||||
#define KIT_VERSION_STAMP "2504191102b"
|
#define KIT_VERSION_STAMP "2504241048b"
|
||||||
|
|
||||||
#define KIT_VERSION_STR JUDGE_STR(KIT_VERSION_MAJOR.KIT_VERSION_MINOR.KIT_VERSION_PATCH)
|
#define KIT_VERSION_STR JUDGE_STR(KIT_VERSION_MAJOR.KIT_VERSION_MINOR.KIT_VERSION_PATCH)
|
||||||
|
|
||||||
|
|||||||
@ -115,7 +115,17 @@ QString addContent(QString& out, const QString& name, const QString& info)
|
|||||||
|
|
||||||
void setStyleComboBox(QComboBox* combo, int count, int width)
|
void setStyleComboBox(QComboBox* combo, int count, int width)
|
||||||
{
|
{
|
||||||
combo->setStyle(QStyleFactory::create("Windows"));
|
constexpr static bool Fusion = true;
|
||||||
|
if(Fusion)
|
||||||
|
{
|
||||||
|
combo->setStyle(QStyleFactory::create("Fusion"));
|
||||||
|
combo->setStyleSheet("QComboBox { combobox-popup: 0; }");
|
||||||
|
combo->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
combo->setStyle(QStyleFactory::create("Windows"));
|
||||||
|
}
|
||||||
combo->setMaxVisibleItems(count);
|
combo->setMaxVisibleItems(count);
|
||||||
combo->view()->setMinimumWidth(width);
|
combo->view()->setMinimumWidth(width);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,6 +45,10 @@
|
|||||||
#include <QListWidgetItem>
|
#include <QListWidgetItem>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
|
#include <QStandardItem>
|
||||||
|
#include <QStandardItemModel>
|
||||||
|
#include <QStyledItemDelegate>
|
||||||
|
#include <QStyleOptionViewItem>
|
||||||
#include <QQueue>
|
#include <QQueue>
|
||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
|
|||||||
@ -71,15 +71,7 @@ void MainWindow::init()
|
|||||||
KIT_CONNECT(updateNextDoing());
|
KIT_CONNECT(updateNextDoing());
|
||||||
KIT_CONNECT(updateCheckVersion(int, const QString&));
|
KIT_CONNECT(updateCheckVersion(int, const QString&));
|
||||||
|
|
||||||
//connect(&m_audio, SIGNAL(QMediaPlayer::error(QMediaPlayer::Error)),
|
connect(&m_audio, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(slot_soundError(QMediaPlayer::Error)));
|
||||||
// SLOT([&](QMediaPlayer::Error error)
|
|
||||||
// {
|
|
||||||
// QMediaPlayer::Error err = m_audio.error();
|
|
||||||
// QString errStr = m_audio.errorString();
|
|
||||||
//
|
|
||||||
// logwarning("paly-audio file:%s, err:%d-%s ",
|
|
||||||
// filepath.toUtf8().data(), err, errStr.toUtf8().data());
|
|
||||||
// }));
|
|
||||||
|
|
||||||
m_ui->loop->clear();
|
m_ui->loop->clear();
|
||||||
m_ui->loop->addItem(CL8("否"), false);
|
m_ui->loop->addItem(CL8("否"), false);
|
||||||
@ -148,8 +140,9 @@ void MainWindow::init()
|
|||||||
//QString addr = kit::getMacAddress();
|
//QString addr = kit::getMacAddress();
|
||||||
//std::string md5s = Tools::md5sum(addr.toLocal8Bit().data());
|
//std::string md5s = Tools::md5sum(addr.toLocal8Bit().data());
|
||||||
//logtrace("uuid=[%s][%s]", addr.toUtf8().data(), md5s.data());
|
//logtrace("uuid=[%s][%s]", addr.toUtf8().data(), md5s.data());
|
||||||
logtrace("version-sdk=[%s][%s][%s]", JUDGE_VERSION_STR, JUDGE_VERSION_INFO, examJudgeVersion());
|
logtrace("version-sdk=[%s][%s][%s],version-toolkit=[%s]",
|
||||||
logtrace("version-kit=[%s]", KIT_VERSION_INFO);
|
JUDGE_VERSION_STR, JUDGE_VERSION_INFO, examJudgeVersion(),
|
||||||
|
KIT_VERSION_INFO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +290,7 @@ void MainWindow::wheelEvent(QWheelEvent *event)
|
|||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::resizeEvent(QResizeEvent *event)
|
void MainWindow::resizeEvent(QResizeEvent* event)
|
||||||
{
|
{
|
||||||
QMainWindow::resizeEvent(event);
|
QMainWindow::resizeEvent(event);
|
||||||
//QRect geome = geometry();
|
//QRect geome = geometry();
|
||||||
@ -638,6 +631,13 @@ void MainWindow::updateCheckVersion(int state, const QString& info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::slot_soundError(QMediaPlayer::Error error)
|
||||||
|
{
|
||||||
|
QMediaPlayer::Error err = m_audio.error();
|
||||||
|
QString errStr = m_audio.errorString();
|
||||||
|
logwarning("play-audio err:%d-%d-%s", err, error, errStr.toUtf8().data());
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_btnClearLog_clicked()
|
void MainWindow::on_btnClearLog_clicked()
|
||||||
{
|
{
|
||||||
m_logInfo->resetLog();
|
m_logInfo->resetLog();
|
||||||
@ -851,19 +851,12 @@ void MainWindow::on_displaySwitch_clicked()
|
|||||||
{
|
{
|
||||||
m_realExam->switchDisplay();
|
m_realExam->switchDisplay();
|
||||||
|
|
||||||
//CpuOccupyInfo occ;
|
//const char* data = examPeerOccupy();
|
||||||
//
|
//TOccupyInfo occ;
|
||||||
//bool usage = Tools::peerOccupyCpu(occ);
|
//if(!XParser::fromAny(data, occ))
|
||||||
//int cores = Tools::getCpuProcessors();
|
//{
|
||||||
//logtrace("CPU Usage:%0.4f cores=%d ", usage, cores);
|
// return;
|
||||||
|
//}
|
||||||
const char* data = examPeerOccupy();
|
//logtrace("occupy=%s", data);
|
||||||
TOccupyInfo occ;
|
//examFreeMemory(data);
|
||||||
if(!XParser::fromAny(data, occ))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
logtrace("occupy=%s", data);
|
|
||||||
examFreeMemory(data);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,7 +65,7 @@ protected:
|
|||||||
virtual void mousePressEvent(QMouseEvent* event) override;
|
virtual void mousePressEvent(QMouseEvent* event) override;
|
||||||
virtual void wheelEvent(QWheelEvent* event) override; //鼠标滚轮滚动事件
|
virtual void wheelEvent(QWheelEvent* event) override; //鼠标滚轮滚动事件
|
||||||
// 当窗口尺寸改变时,会调用这个方法
|
// 当窗口尺寸改变时,会调用这个方法
|
||||||
virtual void resizeEvent(QResizeEvent *event) override;
|
virtual void resizeEvent(QResizeEvent* event) override;
|
||||||
signals:
|
signals:
|
||||||
void sig_init();
|
void sig_init();
|
||||||
|
|
||||||
@ -86,7 +86,8 @@ private slots: //Q_SLOTS
|
|||||||
void updateNextDoing();
|
void updateNextDoing();
|
||||||
void updateCheckVersion(int state, const QString& info);
|
void updateCheckVersion(int state, const QString& info);
|
||||||
|
|
||||||
private slots:
|
void slot_soundError(QMediaPlayer::Error error);
|
||||||
|
|
||||||
void on_btnClearLog_clicked();
|
void on_btnClearLog_clicked();
|
||||||
void on_btnSelectTrackFile_clicked();
|
void on_btnSelectTrackFile_clicked();
|
||||||
void on_btnRunning_clicked();
|
void on_btnRunning_clicked();
|
||||||
|
|||||||
@ -68,10 +68,10 @@ background-color: rgb(255, 255, 255);</string>
|
|||||||
<widget class="QPushButton" name="btnSelectTrackFile">
|
<widget class="QPushButton" name="btnSelectTrackFile">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1530</x>
|
<x>1534</x>
|
||||||
<y>790</y>
|
<y>790</y>
|
||||||
<width>44</width>
|
<width>42</width>
|
||||||
<height>26</height>
|
<height>25</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -81,10 +81,10 @@ background-color: rgb(255, 255, 255);</string>
|
|||||||
<widget class="QTextEdit" name="outputLog">
|
<widget class="QTextEdit" name="outputLog">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>932</x>
|
<x>933</x>
|
||||||
<y>644</y>
|
<y>644</y>
|
||||||
<width>642</width>
|
<width>642</width>
|
||||||
<height>143</height>
|
<height>144</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
@ -106,7 +106,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QPushButton" name="btnClearLog">
|
<widget class="QPushButton" name="btnClearLog">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1500</x>
|
<x>1502</x>
|
||||||
<y>616</y>
|
<y>616</y>
|
||||||
<width>73</width>
|
<width>73</width>
|
||||||
<height>26</height>
|
<height>26</height>
|
||||||
@ -413,7 +413,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>600</x>
|
<x>600</x>
|
||||||
<y>180</y>
|
<y>180</y>
|
||||||
<width>111</width>
|
<width>121</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -426,7 +426,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>600</x>
|
<x>600</x>
|
||||||
<y>163</y>
|
<y>163</y>
|
||||||
<width>111</width>
|
<width>121</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -580,7 +580,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QPushButton" name="btnRunning">
|
<widget class="QPushButton" name="btnRunning">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1500</x>
|
<x>1502</x>
|
||||||
<y>495</y>
|
<y>495</y>
|
||||||
<width>73</width>
|
<width>73</width>
|
||||||
<height>28</height>
|
<height>28</height>
|
||||||
@ -635,9 +635,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>4</y>
|
<y>4</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -660,9 +660,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>38</y>
|
<y>38</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -685,9 +685,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>38</y>
|
<y>38</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -710,9 +710,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>72</y>
|
<y>72</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -735,9 +735,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>72</y>
|
<y>72</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -760,9 +760,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>106</y>
|
<y>106</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -785,9 +785,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>106</y>
|
<y>106</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -810,9 +810,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>140</y>
|
<y>140</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -835,9 +835,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>140</y>
|
<y>140</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -860,9 +860,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>174</y>
|
<y>174</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -885,9 +885,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>174</y>
|
<y>174</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -913,9 +913,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>208</y>
|
<y>208</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -938,9 +938,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>208</y>
|
<y>208</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -963,9 +963,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>242</y>
|
<y>242</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -988,9 +988,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>276</y>
|
<y>276</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1013,9 +1013,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>310</y>
|
<y>310</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1038,9 +1038,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>242</y>
|
<y>242</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1063,9 +1063,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>276</y>
|
<y>276</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1088,9 +1088,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>310</y>
|
<y>310</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1115,7 +1115,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>2</x>
|
<x>2</x>
|
||||||
<y>644</y>
|
<y>644</y>
|
||||||
<width>710</width>
|
<width>717</width>
|
||||||
<height>174</height>
|
<height>174</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1144,9 +1144,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>344</y>
|
<y>344</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1169,9 +1169,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>344</y>
|
<y>344</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1194,9 +1194,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>377</y>
|
<y>377</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1219,9 +1219,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>824</x>
|
<x>827</x>
|
||||||
<y>377</y>
|
<y>377</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1244,9 +1244,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>780</x>
|
<x>786</x>
|
||||||
<y>416</y>
|
<y>416</y>
|
||||||
<width>51</width>
|
<width>48</width>
|
||||||
<height>30</height>
|
<height>30</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1263,7 +1263,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:600; font-style:normal;">
|
</style></head><body style=" font-family:'Arial'; font-size:10pt; font-weight:600; font-style:normal;">
|
||||||
<p align="center" dir='rtl' style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QTextEdit" name="item00">
|
<widget class="QTextEdit" name="item00">
|
||||||
@ -1272,9 +1272,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>4</y>
|
<y>4</y>
|
||||||
<width>101</width>
|
<width>98</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1474,9 +1474,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="Line" name="borderBottom_5">
|
<widget class="Line" name="borderBottom_5">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>715</x>
|
<x>722</x>
|
||||||
<y>402</y>
|
<y>402</y>
|
||||||
<width>215</width>
|
<width>206</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1529,7 +1529,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLineEdit" name="playTimes">
|
<widget class="QLineEdit" name="playTimes">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1500</x>
|
<x>1502</x>
|
||||||
<y>526</y>
|
<y>526</y>
|
||||||
<width>73</width>
|
<width>73</width>
|
||||||
<height>28</height>
|
<height>28</height>
|
||||||
@ -1542,7 +1542,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLabel" name="cg_dcj_6">
|
<widget class="QLabel" name="cg_dcj_6">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1448</x>
|
<x>1450</x>
|
||||||
<y>527</y>
|
<y>527</y>
|
||||||
<width>51</width>
|
<width>51</width>
|
||||||
<height>30</height>
|
<height>30</height>
|
||||||
@ -1555,7 +1555,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLabel" name="cg_dcj_7">
|
<widget class="QLabel" name="cg_dcj_7">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>420</y>
|
<y>420</y>
|
||||||
<width>61</width>
|
<width>61</width>
|
||||||
<height>21</height>
|
<height>21</height>
|
||||||
@ -1570,7 +1570,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>933</x>
|
<x>933</x>
|
||||||
<y>790</y>
|
<y>790</y>
|
||||||
<width>592</width>
|
<width>596</width>
|
||||||
<height>26</height>
|
<height>26</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1597,7 +1597,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLabel" name="cg_dcj_9">
|
<widget class="QLabel" name="cg_dcj_9">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1448</x>
|
<x>1450</x>
|
||||||
<y>557</y>
|
<y>557</y>
|
||||||
<width>51</width>
|
<width>51</width>
|
||||||
<height>26</height>
|
<height>26</height>
|
||||||
@ -1610,7 +1610,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QComboBox" name="loop">
|
<widget class="QComboBox" name="loop">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>1500</x>
|
<x>1502</x>
|
||||||
<y>557</y>
|
<y>557</y>
|
||||||
<width>73</width>
|
<width>73</width>
|
||||||
<height>26</height>
|
<height>26</height>
|
||||||
@ -1635,7 +1635,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>400</x>
|
<x>400</x>
|
||||||
<y>277</y>
|
<y>277</y>
|
||||||
<width>315</width>
|
<width>322</width>
|
||||||
<height>2</height>
|
<height>2</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1646,7 +1646,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="Line" name="borderRight_3">
|
<widget class="Line" name="borderRight_3">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>705</x>
|
<x>712</x>
|
||||||
<y>2</y>
|
<y>2</y>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>810</height>
|
<height>810</height>
|
||||||
@ -1662,9 +1662,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>714</x>
|
<x>721</x>
|
||||||
<y>644</y>
|
<y>644</y>
|
||||||
<width>216</width>
|
<width>209</width>
|
||||||
<height>174</height>
|
<height>174</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1699,9 +1699,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLabel" name="pe_markGrade">
|
<widget class="QLabel" name="pe_markGrade">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>450</y>
|
<y>450</y>
|
||||||
<width>161</width>
|
<width>171</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1712,9 +1712,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QSlider" name="playSlider">
|
<widget class="QSlider" name="playSlider">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>939</x>
|
<x>934</x>
|
||||||
<y>592</y>
|
<y>590</y>
|
||||||
<width>550</width>
|
<width>562</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1877,9 +1877,9 @@ QSlider::sub-page:horizontal
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>835</x>
|
<x>838</x>
|
||||||
<y>416</y>
|
<y>416</y>
|
||||||
<width>88</width>
|
<width>86</width>
|
||||||
<height>30</height>
|
<height>30</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -2051,7 +2051,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<rect>
|
<rect>
|
||||||
<x>536</x>
|
<x>536</x>
|
||||||
<y>286</y>
|
<y>286</y>
|
||||||
<width>171</width>
|
<width>176</width>
|
||||||
<height>334</height>
|
<height>334</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -2068,9 +2068,9 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="Line" name="borderRight_4">
|
<widget class="Line" name="borderRight_4">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>526</x>
|
||||||
<y>278</y>
|
<y>278</y>
|
||||||
<width>20</width>
|
<width>10</width>
|
||||||
<height>366</height>
|
<height>366</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -2119,7 +2119,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QLabel" name="perform">
|
<widget class="QLabel" name="perform">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>720</x>
|
<x>726</x>
|
||||||
<y>472</y>
|
<y>472</y>
|
||||||
<width>201</width>
|
<width>201</width>
|
||||||
<height>106</height>
|
<height>106</height>
|
||||||
@ -2158,10 +2158,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<widget class="QTableWidget" name="radarTable">
|
<widget class="QTableWidget" name="radarTable">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>4</x>
|
<x>2</x>
|
||||||
<y>428</y>
|
<y>428</y>
|
||||||
<width>392</width>
|
<width>394</width>
|
||||||
<height>212</height>
|
<height>214</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@ -2232,7 +2232,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>显示切换</string>
|
<string>切换显示</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
|
|||||||
@ -7,6 +7,25 @@ ChoiceTrackFile::ChoiceTrackFile(MainWindow* mWindow)
|
|||||||
m_replay = mWindow->getReplay();
|
m_replay = mWindow->getReplay();
|
||||||
m_ui = mWindow->getUI();
|
m_ui = mWindow->getUI();
|
||||||
kit::setStyleComboBox(m_ui->trackFiles, 20, m_ui->trackFiles->width());
|
kit::setStyleComboBox(m_ui->trackFiles, 20, m_ui->trackFiles->width());
|
||||||
|
|
||||||
|
if(kit::authAllowable())
|
||||||
|
{
|
||||||
|
bool delegate = false;
|
||||||
|
#ifndef JUDGE_OS_WIN
|
||||||
|
delegate = true;
|
||||||
|
#endif
|
||||||
|
if(delegate)
|
||||||
|
{
|
||||||
|
// 设置自定义委托
|
||||||
|
m_delegate = __KIT_NEW__(ChoiceDelegate, m_ui->trackFiles);
|
||||||
|
m_ui->trackFiles->setItemDelegate(m_delegate);
|
||||||
|
// 连接按钮点击信号到槽函数
|
||||||
|
QObject::connect(m_delegate, &ChoiceDelegate::buttonClicked, [&](const QModelIndex& index)
|
||||||
|
{
|
||||||
|
this->operateItem(index); // 此处可执行删除项或其他操作
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ChoiceTrackFile::~ChoiceTrackFile()
|
ChoiceTrackFile::~ChoiceTrackFile()
|
||||||
@ -14,16 +33,16 @@ ChoiceTrackFile::~ChoiceTrackFile()
|
|||||||
m_mWindow = nullptr;
|
m_mWindow = nullptr;
|
||||||
m_replay = nullptr;
|
m_replay = nullptr;
|
||||||
m_ui = nullptr;
|
m_ui = nullptr;
|
||||||
|
|
||||||
|
__KIT_DEL__(m_delegate);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChoiceTrackFile::selectTrackFile()
|
void ChoiceTrackFile::selectTrackFile()
|
||||||
{
|
{
|
||||||
QString filter = CL8("轨迹文件1(%1.*);;轨迹文件2(*%2);;全部文件(*.*)").arg(KIT_TRACK_FILE).arg( TRACK_SUFFIX);
|
QString filter = CL8("轨迹文件1(%1.*);;轨迹文件2(*%2);;全部文件(*.*)").arg(KIT_TRACK_FILE).arg( TRACK_SUFFIX);
|
||||||
|
|
||||||
QString filename = QFileDialog::getOpenFileName(m_mWindow, CL8("选择轨迹文件"),
|
QString filename = QFileDialog::getOpenFileName(m_mWindow, CL8("选择轨迹文件"),
|
||||||
QCoreApplication::applicationDirPath(),
|
QCoreApplication::applicationDirPath(),
|
||||||
filter);
|
filter);
|
||||||
|
|
||||||
if(!filename.isEmpty() && QFile::exists(filename))
|
if(!filename.isEmpty() && QFile::exists(filename))
|
||||||
{
|
{
|
||||||
addTrackFile(filename);
|
addTrackFile(filename);
|
||||||
@ -64,7 +83,7 @@ void ChoiceTrackFile::loadTrack(QVector<QString>& files, const QString& dirpath)
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(mfi.isFile() && (KIT_TRACK_FILTER == "" || filepath.contains(KIT_TRACK_FILTER)) )
|
if(mfi.isFile() && (KIT_TRACK_FILTER == "" || filepath.contains(KIT_TRACK_FILTER)))
|
||||||
{
|
{
|
||||||
if(filepath.contains(TRACK_SUFFIX) || filepath.contains(KIT_TRACK_FILE)) //.txt
|
if(filepath.contains(TRACK_SUFFIX) || filepath.contains(KIT_TRACK_FILE)) //.txt
|
||||||
{
|
{
|
||||||
@ -88,7 +107,7 @@ void ChoiceTrackFile::addTrackFile(const QString& filepath)
|
|||||||
static int s_width = 0;
|
static int s_width = 0;
|
||||||
s_width = std::max(s_width, font.width(filepath));
|
s_width = std::max(s_width, font.width(filepath));
|
||||||
int w = m_ui->trackFiles->width();
|
int w = m_ui->trackFiles->width();
|
||||||
trackView->setMinimumWidth(std::max(s_width, w) + 40);
|
trackView->setMinimumWidth(std::max(s_width, w) + 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChoiceTrackFile::loadTrackFiles(const QString& dirpath)
|
void ChoiceTrackFile::loadTrackFiles(const QString& dirpath)
|
||||||
@ -139,3 +158,55 @@ QString ChoiceTrackFile::trackFiles_highlighted(int index)
|
|||||||
QString data = m_ui->trackFiles->itemData(index).toString();
|
QString data = m_ui->trackFiles->itemData(index).toString();
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ChoiceTrackFile::operateItem(const QModelIndex& index)
|
||||||
|
{
|
||||||
|
int idx = index.row();
|
||||||
|
TASSERT_VOID(idx >= 0 && idx < m_ui->trackFiles->count(), "");
|
||||||
|
|
||||||
|
QString text = m_ui->trackFiles->itemText(idx);
|
||||||
|
QString data = m_ui->trackFiles->itemData(idx).toString();
|
||||||
|
|
||||||
|
QDir dir = QFileInfo(text).absoluteDir();
|
||||||
|
QDir dirPrev = QFileInfo(dir.path()).absoluteDir();
|
||||||
|
QString affirm = CL8("确定删除轨迹:") + dir.path() + CL8("/???");
|
||||||
|
int id = QMessageBox::question(m_mWindow, CL8("提示"), affirm, CL8("删除当前"), CL8("删除上一层"), CL8("取消删除"));
|
||||||
|
//int id = 0;
|
||||||
|
if(0 == id)
|
||||||
|
{
|
||||||
|
m_ui->trackFiles->removeItem(idx);
|
||||||
|
dir.removeRecursively();
|
||||||
|
logdebug("remove current path=%s", dir.path().toUtf8().data());
|
||||||
|
|
||||||
|
if(dirPrev.isEmpty(QDir::AllEntries | QDir::NoDotAndDotDot))
|
||||||
|
{
|
||||||
|
dirPrev.removeRecursively();
|
||||||
|
logtrace("remove prev path=%s", dirPrev.path().toUtf8().data());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(1 == id)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < m_ui->trackFiles->count(); i++)
|
||||||
|
{
|
||||||
|
QString text_ = m_ui->trackFiles->itemText(i);
|
||||||
|
QString data_ = m_ui->trackFiles->itemData(i).toString();
|
||||||
|
|
||||||
|
QDir dir_ = QFileInfo(text_).absoluteDir();
|
||||||
|
QDir dirPrev_ = QFileInfo(dir_.path()).absoluteDir();
|
||||||
|
if(dirPrev_.path() == dirPrev.path())
|
||||||
|
{
|
||||||
|
m_ui->trackFiles->removeItem(i);
|
||||||
|
dir_.removeRecursively();
|
||||||
|
logdebug("remove current path=%s", dir_.path().toUtf8().data());
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dirPrev.isEmpty(QDir::AllEntries | QDir::NoDotAndDotDot))
|
||||||
|
{
|
||||||
|
dirPrev.removeRecursively();
|
||||||
|
logtrace("remove prev path=%s", dirPrev.path().toUtf8().data());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
#ifndef CHOICETRACKFILE_H
|
#ifndef CHOICETRACKFILE_H
|
||||||
#define CHOICETRACKFILE_H
|
#define CHOICETRACKFILE_H
|
||||||
|
|
||||||
|
|
||||||
#include "HToolkit.h"
|
#include "HToolkit.h"
|
||||||
#include "IToolkit.h"
|
#include "IToolkit.h"
|
||||||
#include "ReplayWrapper.h"
|
#include "ReplayWrapper.h"
|
||||||
@ -9,6 +8,7 @@
|
|||||||
class MainWindow;
|
class MainWindow;
|
||||||
namespace Ui { class MainWindow; }
|
namespace Ui { class MainWindow; }
|
||||||
|
|
||||||
|
class ChoiceDelegate;
|
||||||
class ChoiceTrackFile
|
class ChoiceTrackFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -24,10 +24,56 @@ public:
|
|||||||
QString trackFiles_currentIndexChanged(int index);
|
QString trackFiles_currentIndexChanged(int index);
|
||||||
QString trackFiles_highlighted(int index);
|
QString trackFiles_highlighted(int index);
|
||||||
|
|
||||||
|
void operateItem(const QModelIndex& index);
|
||||||
private:
|
private:
|
||||||
ReplayWrapper* m_replay = nullptr;
|
ReplayWrapper* m_replay = nullptr;
|
||||||
Ui::MainWindow* m_ui = nullptr;
|
Ui::MainWindow* m_ui = nullptr;
|
||||||
MainWindow* m_mWindow = nullptr;
|
MainWindow* m_mWindow = nullptr;
|
||||||
|
ChoiceDelegate* m_delegate = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ChoiceDelegate : public QStyledItemDelegate
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit ChoiceDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
virtual ~ChoiceDelegate()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
// 重写绘制方法
|
||||||
|
void paint(QPainter *painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override
|
||||||
|
{
|
||||||
|
QStyledItemDelegate::paint(painter, option, index); // 绘制默认内容(文本/图标)
|
||||||
|
QRect btnRect = option.rect.adjusted(option.rect.width() - 35, 1, -1, -1); // 定义按钮区域(右侧 20x20 区域)
|
||||||
|
QStyleOptionButton button; // 绘制按钮样式
|
||||||
|
button.rect = btnRect;
|
||||||
|
button.text = CL8("删除"); // 按钮显示为关闭符号
|
||||||
|
button.state = QStyle::State_Enabled;
|
||||||
|
QApplication::style()->drawControl(QStyle::CE_PushButton, &button, painter); //渲染按钮
|
||||||
|
}
|
||||||
|
// 重写事件处理
|
||||||
|
bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) override
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::MouseButtonPress)
|
||||||
|
{
|
||||||
|
QMouseEvent* mev = static_cast<QMouseEvent*>(event);
|
||||||
|
QRect btnRect = option.rect.adjusted(option.rect.width() - 35, 1, -1, -1);
|
||||||
|
if(btnRect.contains(mev->pos())) // 判断是否点击了按钮区域
|
||||||
|
{
|
||||||
|
emit buttonClicked(index); // 触发自定义信号
|
||||||
|
return true; // 事件已处理
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QStyledItemDelegate::editorEvent(event, model, option, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
signals:
|
||||||
|
// 自定义信号:按钮被点击时触发,传递项的索引
|
||||||
|
void buttonClicked(const QModelIndex& index);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CHOICETRACKFILE_H
|
#endif // CHOICETRACKFILE_H
|
||||||
|
|||||||
@ -12,6 +12,7 @@ ShowBeginExam::ShowBeginExam(MainWindow* mWindow)
|
|||||||
m_ui->item06,m_ui->item07,m_ui->item08,m_ui->item09,m_ui->item10,m_ui->item11,
|
m_ui->item06,m_ui->item07,m_ui->item08,m_ui->item09,m_ui->item10,m_ui->item11,
|
||||||
m_ui->item12,m_ui->item13,m_ui->item14,m_ui->item15,m_ui->item16,m_ui->item17,
|
m_ui->item12,m_ui->item13,m_ui->item14,m_ui->item15,m_ui->item16,m_ui->item17,
|
||||||
m_ui->item18,m_ui->item19,m_ui->item20,m_ui->item21,m_ui->item22,m_ui->item23};
|
m_ui->item18,m_ui->item19,m_ui->item20,m_ui->item21,m_ui->item22,m_ui->item23};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ShowBeginExam::~ShowBeginExam()
|
ShowBeginExam::~ShowBeginExam()
|
||||||
@ -115,7 +116,7 @@ void ShowBeginExam::updateBeginExam(const QString& info)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TASSERT(value.ddkssj == 0 && value.yklc == 0 && value.kfxm.empty(), "");
|
TASSERT(value.ddkssj == 0 && value.yklc == 0, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(value.sczb)
|
if(value.sczb)
|
||||||
|
|||||||
@ -25,8 +25,8 @@ void ShowInitExam::updateInitExam(const QString& info)
|
|||||||
|
|
||||||
m_ui->initData->clear();
|
m_ui->initData->clear();
|
||||||
TASSERT(m_ui->initData->count() == 0, "");
|
TASSERT(m_ui->initData->count() == 0, "");
|
||||||
m_ui->initData->addItem(CL8("评判版本号:") + value.sdkver.c_str(), JUDGE_STR(sdkver));
|
m_ui->initData->addItem(CL8("评判版本:") + value.sdkver.c_str(), JUDGE_STR(sdkver));
|
||||||
m_ui->initData->addItem(CL8("外壳版本号:") + value.appver.c_str(), JUDGE_STR(appver));
|
m_ui->initData->addItem(CL8("外壳版本:") + value.appver.c_str(), JUDGE_STR(appver));
|
||||||
m_ui->initData->addItem(CL8("考试科目:") + subject, JUDGE_STR(subject));
|
m_ui->initData->addItem(CL8("考试科目:") + subject, JUDGE_STR(subject));
|
||||||
m_ui->initData->addItem(CL8("考车号码:") + kit::toString(value.kchm) + CL8("号车"), JUDGE_STR(kchm));
|
m_ui->initData->addItem(CL8("考车号码:") + kit::toString(value.kchm) + CL8("号车"), JUDGE_STR(kchm));
|
||||||
m_ui->initData->addItem(CL8("考试车型:") + value.kscx.c_str(), JUDGE_STR(kscx));
|
m_ui->initData->addItem(CL8("考试车型:") + value.kscx.c_str(), JUDGE_STR(kscx));
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import { examJudgeVersion } from './judgeSDK/api';
|
|||||||
@Component
|
@Component
|
||||||
struct Index {
|
struct Index {
|
||||||
@State carNum: string = ''
|
@State carNum: string = ''
|
||||||
@State version: string = '2025.04.23.01'
|
@State version: string = '2025.04.24.01'
|
||||||
@State judgeVersion: string = ''
|
@State judgeVersion: string = ''
|
||||||
@State url: string = ''
|
@State url: string = ''
|
||||||
@State hasAuth: boolean = false;
|
@State hasAuth: boolean = false;
|
||||||
|
|||||||
@ -352,12 +352,17 @@ struct Index {
|
|||||||
//项目开始数据是否上传过
|
//项目开始数据是否上传过
|
||||||
isUpload,
|
isUpload,
|
||||||
}
|
}
|
||||||
|
// 夜考时
|
||||||
|
if (this.mode === 2 && no2 != 13) {
|
||||||
|
currentProject.ykType = isRequired ? "1" : "3"
|
||||||
|
currentProject.isEnd = !allItems.includes(no2 + '')
|
||||||
|
}
|
||||||
this.projectsObj[no2*1] = currentProject
|
this.projectsObj[no2*1] = currentProject
|
||||||
this.projectsCenterObj[txt2] = currentProject
|
this.projectsCenterObj[txt2] = currentProject
|
||||||
this.projects.push(currentProject);
|
this.projects.push(currentProject);
|
||||||
|
|
||||||
//真实监管下发考试项目
|
// 真实监管下发考试项目, 夜考模式、满分学习不进此逻辑
|
||||||
if (isInExam && !(kStringArr.includes(txt2) || kStringArr.includes(no2 + ''))) {
|
if (isInExam && this.mode !== 2 && this.mode !== 5 && !(kStringArr.includes(txt2) || kStringArr.includes(no2 + ''))) {
|
||||||
this.projectsObj[no2*1].type = '3'
|
this.projectsObj[no2*1].type = '3'
|
||||||
this.projectsObj[no2*1].isUpload = true
|
this.projectsObj[no2*1].isUpload = true
|
||||||
this.projectsObj[no2*1].isEnd = true
|
this.projectsObj[no2*1].isEnd = true
|
||||||
@ -1039,19 +1044,14 @@ struct Index {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case '1':
|
case '1':
|
||||||
return '#E6DECF';
|
return '#E6DECF';
|
||||||
break;
|
|
||||||
case '2':
|
case '2':
|
||||||
return '#FFAD33';
|
return '#FFAD33';
|
||||||
break;
|
|
||||||
case '3':
|
case '3':
|
||||||
return '#ff109d0a';
|
return '#ff109d0a';
|
||||||
break;
|
|
||||||
case '4':
|
case '4':
|
||||||
return '#FF7566';
|
return '#FF7566';
|
||||||
break;
|
|
||||||
case '5':
|
case '5':
|
||||||
return '#FF7566'
|
return '#FF7566'
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return '#E6DECF';
|
return '#E6DECF';
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user