250 lines
7.3 KiB
C++
250 lines
7.3 KiB
C++
|
#include "debuginfodialog.h"
|
||
|
#include "ui_debuginfodialog.h"
|
||
|
|
||
|
DebugInfoDialog::DebugInfoDialog(QWidget *parent) :
|
||
|
QDialog(parent),
|
||
|
ui(new Ui::DebugInfoDialog),
|
||
|
m_itemPerPage(25)
|
||
|
{
|
||
|
ui->setupUi(this);
|
||
|
setWindowFlags (Qt::Window | Qt::FramelessWindowHint);
|
||
|
setAttribute(Qt::WA_TranslucentBackground, true);//设置窗体背景透明
|
||
|
setWindowModality(Qt::ApplicationModal);
|
||
|
connect(g_pMachine, SIGNAL(siDebugInfo()), this, SLOT(slotDebugInfo()));
|
||
|
|
||
|
initDialog();
|
||
|
initControl();
|
||
|
}
|
||
|
|
||
|
DebugInfoDialog::~DebugInfoDialog()
|
||
|
{
|
||
|
delete ui;
|
||
|
}
|
||
|
void DebugInfoDialog::initDialog()
|
||
|
{
|
||
|
m_curPages = 1;//当前页数
|
||
|
m_pageNums = 1;//总页数
|
||
|
m_infoList.clear();
|
||
|
}
|
||
|
void DebugInfoDialog::initControl()
|
||
|
{
|
||
|
m_DebugInfoBtnList.append(ui->button1);
|
||
|
m_DebugInfoBtnList.append(ui->button2);
|
||
|
m_DebugInfoBtnList.append(ui->button3);
|
||
|
m_DebugInfoBtnList.append(ui->button4);
|
||
|
m_DebugInfoBtnList.append(ui->button5);
|
||
|
m_DebugInfoBtnList.append(ui->button6);
|
||
|
m_DebugInfoBtnList.append(ui->button7);
|
||
|
m_DebugInfoBtnList.append(ui->button8);
|
||
|
m_DebugInfoBtnList.append(ui->button9);
|
||
|
m_DebugInfoBtnList.append(ui->button10);
|
||
|
m_DebugInfoBtnList.append(ui->button11);
|
||
|
m_DebugInfoBtnList.append(ui->button12);
|
||
|
m_DebugInfoBtnList.append(ui->button13);
|
||
|
m_DebugInfoBtnList.append(ui->button14);
|
||
|
m_DebugInfoBtnList.append(ui->button15);
|
||
|
m_DebugInfoBtnList.append(ui->button16);
|
||
|
m_DebugInfoBtnList.append(ui->button17);
|
||
|
m_DebugInfoBtnList.append(ui->button18);
|
||
|
m_DebugInfoBtnList.append(ui->button19);
|
||
|
m_DebugInfoBtnList.append(ui->button20);
|
||
|
m_DebugInfoBtnList.append(ui->button21);
|
||
|
m_DebugInfoBtnList.append(ui->button22);
|
||
|
m_DebugInfoBtnList.append(ui->button23);
|
||
|
m_DebugInfoBtnList.append(ui->button24);
|
||
|
m_DebugInfoBtnList.append(ui->button25);
|
||
|
//根据不同分辨率设置控件的位置和尺寸
|
||
|
switch (g_emResolut)
|
||
|
{
|
||
|
case resolution1910:
|
||
|
initResolution1910();
|
||
|
break;
|
||
|
case resolution1006:
|
||
|
initResolution1006();
|
||
|
break;
|
||
|
default:
|
||
|
this->resize(1920,1080);
|
||
|
break;
|
||
|
}
|
||
|
initControlStyle();//初始化窗体控件样式
|
||
|
//refreshUi();
|
||
|
}
|
||
|
|
||
|
void DebugInfoDialog::initResolution1910()
|
||
|
{
|
||
|
//上状态栏
|
||
|
this->resize(1322,935);
|
||
|
this->move(192,65);
|
||
|
ui->frameBack->setGeometry(0,0,1322,935);
|
||
|
ui->labelMainTitle->setGeometry(12,8,300,40);
|
||
|
for(int i = 0; i < m_itemPerPage; i++)
|
||
|
{
|
||
|
m_DebugInfoBtnList[i]->setGeometry(30,52 + i * 34,800,30);
|
||
|
}
|
||
|
ui->labelPage->setGeometry(12,890,400,40);
|
||
|
ui->buttonPgUp->setGeometry(1040,40,118,40);
|
||
|
ui->buttonPgDn->setGeometry(1178,40,118,40);
|
||
|
ui->buttonCancel->setGeometry(1040,100,118,40);
|
||
|
}
|
||
|
void DebugInfoDialog::initResolution1006()
|
||
|
{
|
||
|
m_itemPerPage = m_itemPerPage -8;
|
||
|
this->resize(707,513);
|
||
|
this->move(101,36);
|
||
|
ui->frameBack->setGeometry(0,0,710,513);
|
||
|
ui->labelMainTitle->setGeometry(10,6,300,28);
|
||
|
for(int i = 0; i < m_itemPerPage; i++)
|
||
|
{
|
||
|
m_DebugInfoBtnList[i]->setGeometry(10,30 + i * 27,500,24);
|
||
|
}
|
||
|
ui->labelPage->setGeometry(10,485,150,30);
|
||
|
ui->buttonPgUp->setGeometry(520,40,82,30);
|
||
|
ui->buttonPgDn->setGeometry(610,40,82,30);
|
||
|
ui->buttonCancel->setGeometry(520,80,82,30);
|
||
|
}
|
||
|
//初始化窗体控件样式
|
||
|
void DebugInfoDialog::initControlStyle()
|
||
|
{
|
||
|
SetControlStyle setControlStyle;
|
||
|
setControlStyle.setUiName(this->objectName());
|
||
|
//背景图
|
||
|
//QString style1 = "background-color: rgb(62, 62, 62);outline:none;border:0px;border-radius:10px;";
|
||
|
QString style1 = "background-color: rgb(246, 242, 239);outline:none;border:0px;border-radius:10px;";
|
||
|
ui->frameBack->setStyleSheet(style1);
|
||
|
ui->labelMainTitle->setFont(fontNormal_3);
|
||
|
ui->labelMainTitle->setStyleSheet(LABELGREYSTYLE);
|
||
|
|
||
|
QString style2 = "border:0px;text-align:left;background-color:rgba(255, 255, 255, 0);color: rgb(78, 78, 78);";//0, 183, 13
|
||
|
for(int i = 0; i < m_DebugInfoBtnList.size(); i++)
|
||
|
{
|
||
|
m_DebugInfoBtnList[i]->setStyleSheet(style2);//文本左对齐
|
||
|
m_DebugInfoBtnList[i]->setFont(fontNormal_4);
|
||
|
}
|
||
|
ui->labelPage->setFont(fontNormal_4);
|
||
|
ui->labelPage->setStyleSheet(LABELGREYSTYLE);
|
||
|
ui->buttonPgUp->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
|
ui->buttonPgUp->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgUp->objectName()),12);
|
||
|
ui->buttonPgDn->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
|
ui->buttonPgDn->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgDn->objectName()),12);
|
||
|
ui->buttonCancel->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
|
ui->buttonCancel->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonCancel->objectName()),12);
|
||
|
}
|
||
|
|
||
|
void DebugInfoDialog::addListInfo()
|
||
|
{
|
||
|
m_infoList = g_pSettings->readToCsv(TYPE_DEBUGINFO);//读取 QStringList
|
||
|
refreshUi();
|
||
|
}
|
||
|
|
||
|
void DebugInfoDialog::refreshUi()
|
||
|
{
|
||
|
int itemNum;
|
||
|
if (m_infoList.size() <= 0)
|
||
|
{
|
||
|
itemNum = 0;
|
||
|
|
||
|
for (int i = 0; i < m_itemPerPage; i++)
|
||
|
{
|
||
|
m_DebugInfoBtnList.at(i)->hide();
|
||
|
}
|
||
|
ui->labelPage->setText(tr("pageNum: 0/0"));//页数: 0/0
|
||
|
ui->buttonPgUp->setEnabled(false);
|
||
|
ui->buttonPgDn->setEnabled(false);
|
||
|
//ui->buttonOk->setEnabled(false);
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
itemNum = m_infoList.size();
|
||
|
}
|
||
|
|
||
|
m_pageNums = (itemNum + m_itemPerPage - 1)/m_itemPerPage;// 计算页数
|
||
|
if (m_curPages > m_pageNums)// 当前页
|
||
|
{
|
||
|
m_curPages = m_pageNums;
|
||
|
}
|
||
|
if (m_curPages <= 1 && itemNum != 0)
|
||
|
{
|
||
|
m_curPages = 1;
|
||
|
}
|
||
|
|
||
|
int itemidx = (m_curPages - 1) * m_itemPerPage;
|
||
|
|
||
|
for (int i = 0; i < m_itemPerPage; i++)
|
||
|
{
|
||
|
if (itemidx < itemNum)
|
||
|
{
|
||
|
//设置图标和文件夹名称
|
||
|
m_DebugInfoBtnList[i]->setText(m_infoList.at(itemidx));
|
||
|
m_DebugInfoBtnList.at(i)->show();
|
||
|
|
||
|
itemidx++;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
m_DebugInfoBtnList.at(i)->hide();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 翻页按钮
|
||
|
if (m_curPages <= 1)
|
||
|
{
|
||
|
ui->buttonPgUp->setEnabled(false);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ui->buttonPgUp->setEnabled(true);
|
||
|
}
|
||
|
if (m_curPages >= m_pageNums)
|
||
|
{
|
||
|
ui->buttonPgDn->setEnabled(false);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ui->buttonPgDn->setEnabled(true);
|
||
|
}
|
||
|
|
||
|
// 页信息
|
||
|
if(m_pageNums == 0)
|
||
|
{
|
||
|
m_curPages = 0;
|
||
|
}
|
||
|
|
||
|
QString str = tr("pageNum: ") + QString("%1/%2").arg(m_curPages).arg(m_pageNums);//页数:
|
||
|
ui->labelPage->setText(str);
|
||
|
}
|
||
|
void DebugInfoDialog::slotDebugInfo()
|
||
|
{
|
||
|
DebugInfo info;//调试信息
|
||
|
char mDebugInfoStr[1024+1];
|
||
|
|
||
|
info = g_pMachine->getDebugInfo();
|
||
|
memcpy(mDebugInfoStr, info.debugInfoStr, 1024);
|
||
|
mDebugInfoStr[1024] = 0;
|
||
|
|
||
|
QString strDebugInfoStr;
|
||
|
strDebugInfoStr.sprintf("%s", mDebugInfoStr);
|
||
|
QString strCurTime = QDateTime::currentDateTime().toString("yyyy/MM/dd/hh:mm:ss");//时间
|
||
|
QString strMessage;
|
||
|
strMessage = QString("%1//%2").arg(strCurTime).arg(strDebugInfoStr);//时间,内容
|
||
|
m_infoList.insert(0,strMessage);
|
||
|
|
||
|
//m_infoList = g_pSettings->readToCsv(TYPE_DEBUGINFO);//读取 QStringList
|
||
|
refreshUi();
|
||
|
}
|
||
|
void DebugInfoDialog::on_buttonCancel_clicked()
|
||
|
{
|
||
|
done(0);
|
||
|
}
|
||
|
void DebugInfoDialog::on_buttonPgUp_clicked()
|
||
|
{
|
||
|
m_curPages--;
|
||
|
refreshUi();
|
||
|
}
|
||
|
void DebugInfoDialog::on_buttonPgDn_clicked()
|
||
|
{
|
||
|
m_curPages++;
|
||
|
refreshUi();
|
||
|
}
|