XSteam/src/xsteam_view.cpp
2024-10-11 19:40:20 +08:00

75 lines
2.4 KiB
C++

#include "xsteam_view.h"
xsteam_view::xsteam_view(QTableView *parent) : QTableView(parent)
{
}
xsteam_view::~xsteam_view()
{
}
void xsteam_view::item_clear()
{
m_model->removeRows(0, m_model->rowCount());
}
void xsteam_view::init_view(VIEW_MODE view_mode)
{
m_model = new QStandardItemModel();
if (view_mode == VIEW_MODE::UID_INFO)
{
m_model->setColumnCount(ex_uid_table_head_tips.count());
m_model->setHorizontalHeaderLabels(ex_uid_table_head_tips);
setItemDelegate(new xsteam_view_item());
}
else if (view_mode == VIEW_MODE::ALL_DLC_INFO)
{
m_model->setColumnCount(ex_all_dlc_table_head_tips.count());
m_model->setHorizontalHeaderLabels(ex_all_dlc_table_head_tips);
}
else if (view_mode == VIEW_MODE::IN_DLC_INFO)
{
m_model->setColumnCount(ex_in_dlc_table_head_tips.count());
m_model->setHorizontalHeaderLabels(ex_in_dlc_table_head_tips);
}
horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
setSelectionBehavior(QAbstractItemView::SelectRows);
setEditTriggers(QAbstractItemView::NoEditTriggers);
verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自动设置行高
verticalHeader()->hide();
setModel(m_model);
}
void xsteam_view::item_append(UidData& data, VIEW_MODE mode)
{
QList<QStandardItem *> rows;
std::vector<std::string> dlc_uid;
if (mode == VIEW_MODE::UID_INFO)
{
rows.push_back(new QStandardItem(QString::fromStdString(data.ico)));
rows.push_back(new QStandardItem(QString::fromStdString(data.uid)));
rows.push_back(new QStandardItem(QString::fromStdString(data.name)));
rows.push_back(new QStandardItem(QString::fromStdString(data.m_time)));
rows.push_back(new QStandardItem(QString::fromStdString(data.i_time)));
for (auto row : rows)
{
row->setTextAlignment(Qt::AlignCenter);
}
m_model->appendRow(rows);
}
else
{
item_clear();
if (mode == VIEW_MODE::ALL_DLC_INFO)
{
dlc_uid = data.r_dlc;
}
else if (mode == VIEW_MODE::IN_DLC_INFO)
{
dlc_uid = data.n_dlc;
}
for (auto x : dlc_uid)
{
rows.clear();
rows.push_back(new QStandardItem(QString::fromStdString(x)));
m_model->appendRow(rows);
}
}
}